feinman 发表于 2009-3-4 16:09

初学者求助复杂函数定积分

初学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 编辑 ]

无水1324 发表于 2009-3-4 17:57

for 给定一个值,t
   那么下面只要一个参数进行数值积分,用quad就可以了
end
只是增加一个循环而已

ChaChing 发表于 2009-3-4 18:40

回复 楼主 feinman 的帖子

列出LZ的程序吧!

feinman 发表于 2009-3-4 19:04

回复 沙发 无水1324 的帖子

尝试了一下,似乎不行啊
首先 for 的步长必须是整数,我尝试用i=,t=i/10来解决这个问题;
但是t 此时不能出现在积分运算中,否则quadl无法应用。
继续请教!

sigma665 发表于 2009-3-5 15:43

t=linspace(0,10);
for ii=1:length(t)
    quad()
end

feinman 发表于 2009-3-6 11:21

回复 5楼 feinman 的帖子

这样可能还是不行
我在quad命令后加了个句柄函数@(k),虽然可以运行,但是无法绘制图像。

leezzbb 发表于 2009-3-7 22:01

继续观望结果中。。。

feinman 发表于 2009-3-19 12:55

采纳了主任的建议,将程序修改为:
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]
查看完整版本: 初学者求助复杂函数定积分