初学者求助复杂函数定积分
初学matlab,很多不懂,求教各位大侠。函数为fun=1./(2.*pi).*((cos(k./2).^2)/(1.-cos(k./2).^2)).*(sin(sqrt(1.-cos(k./2).^2)).^2).*t;先对变量k求定积分,范围为[-pi,pi],得到一个只含变量t 的函数,再作出关于变量t 的函数图像。
由于函数复杂,int不能给出结果。
求教各位!
[ 本帖最后由 ChaChing 于 2009-3-4 22:02 编辑 ] for 给定一个值,t
那么下面只要一个参数进行数值积分,用quad就可以了
end
只是增加一个循环而已
回复 楼主 feinman 的帖子
列出LZ的程序吧!回复 沙发 无水1324 的帖子
尝试了一下,似乎不行啊首先 for 的步长必须是整数,我尝试用i=,t=i/10来解决这个问题;
但是t 此时不能出现在积分运算中,否则quadl无法应用。
继续请教! t=linspace(0,10);
for ii=1:length(t)
quad()
end
回复 5楼 feinman 的帖子
这样可能还是不行我在quad命令后加了个句柄函数@(k),虽然可以运行,但是无法绘制图像。 继续观望结果中。。。 采纳了主任的建议,将程序修改为:
t=linspace(0,10,1001);
y=zeros(size(t))
for i=1:length(t)
y(i)=quadl(@(k)1/(2*pi)*((cos(k).^2)/(1-cos(k).^2)).*(sin((sqrt(1-cos(k).^2))*t(i)).^2),-pi,pi);
end
plot(t,y)
即可做出图像,但是如何剔除奇异点呢?
页:
[1]