被积函数为-40*sin(x),积分下上限分别为k,k+2*pi,k的范围是0-2pi,我编了如下程序,结果出错,由于刚接触matlab,不知道错在哪里,请帮我看看,谢谢大家了。
w0=1;
w=5;
Omg=2;
D=1;
b1=0.08;
b2=0.005;
E=0.2;
e=0.5;
function f=fx(x)
f=exp(-2.*((Omg-2.*w0).*x+E.*sin(x)./(2.*w0))./b2);
y=0;
for k=0:2pi;
g=k;
gl=k+2.*pi;
y=y+quad(fx,g,gl);
end
y
function y=fajessmi(w0,w,Omg,D,b1,b2,E,e)
%利用内嵌函数(nested function)结构建立被积函数
function f=fx(x)
f=exp(-2.*((Omg-2.*w0).*x+E.*sin(x)./(2.*w0))./b2);
end
%给y预分配存储空间,大小等于下面k的循环次数;
y=zeros(size(0:20));
%计算积分
for k=0:20
g=k*pi/10;
gl=g+2*pi;
y(k+1)=quad(@fx,g,gl);
end
%逐次累加y
y=cumsum(y);
end
把上面函数保存,运行
y=fajessmi(1,5,2,1,0.08,0.005,0.2,0.5)
应该是你想要的吧
不清楚的函数再help之