请问matlab如何画出积分函数的图像

题目如图,还望各位解答!

clc;clear
rho = @(r,lambda,n) pi*r./lambda*(n-1);
LBD = @(R,r)7.41*R.^(-0.0527).*(2*r).^0.452;
nr = @(R,r)2.306e5*R.^0.364.*(2*r).^0.274.*exp(-LBD(R,r)); 
Qr = @(r,lambda,n) 2-4./rho(r,lambda,n).*sin(rho(r,lambda,n))+...
    4./rho(r,lambda,n).^2.*(1-cos(rho(r,lambda,n)));
ealpha = @(R,r,lambda,n)4343*Qr(r,lambda,n).*nr(R,r);
n = 1.33;
lambda = 1550e-6;
R = 1:0.5:100;
m = 5000;
h = (4-0.5)/m;
r = linspace(0.5,4,m+1);
[RR,rr] = meshgrid(R,r);
S = ealpha(RR,rr,lambda,n)';
% 用复化辛普森求积分
alpha = (sum(S(:,[1 end]),2)+4*sum(S(:,2:2:end-1),2)+2*sum(S(:,3:2:end-1),2))*h/3;
plot(R,alpha,'r-.','linewidth',2)
xlabel('$$\alpha$$','interpreter','latex')
ylabel('$$R$$','interpreter','latex')
set(gca,'fontsize',14)
box off
grid on

温馨提示:答案为网友推荐,仅供参考
第1个回答  2019-04-17

用matlab画积分函数的图像,可以来处理。通过for循环语句,求出对应ω的f(ω)的值,其实现方法为:

w0=linspace(0,2.2*10^(-5),20);

for i=1:length(w0);

syms x

w=w0(i);

f = int(。。。);

f0(i)=f;

end

plot(w0,f0);

xlabel('ω'),ylabel('f(ω)')

相似回答