24小时热门版块排行榜    

查看: 360  |  回复: 2

hrbeu2219136

金虫 (小有名气)

[求助] 积分求助

如附件所示的积分,在一个计算程序中需要多次计算,m和n的上限为截断值,但截断值不一样的时候,调用计算积分点次数不一样,从而导致计算时间的长短,现在但m和n取为20的时候计算时间就很长了,请问大家有什么好的办法进行计算吗?
现在采用这样的方式计算的
function y = fx1(m,m1,R,r0,t)

FF = @(x)cos(lam(R,m)*x).*cos(lam(R,m1)*x)./(x+r0).^t;
y = quad(FF,0,R);

请大家多多指点,谢谢


[ Last edited by hrbeu2219136 on 2012-3-9 at 11:30 ]
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cars

金虫 (小有名气)

【答案】应助回帖

感谢参与,应助指数 +1
sin(mpix/R)sin(npix/R)=cos[(m+n)*pi*x/R]/2-cos[(m-n)*pi*x/R]/2,可以让双循环变单循环,不过此级数估计不收敛,不知你的截断是否有根据。
此积分实际是可积的,只不过积分结果中包含超越函数cosint(x)
[见http://www.mathworks.cn/help/toolbox/symbolic/cosint.html]。
因此没必要用数值积分。
2楼2012-03-09 15:38:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hrbeu2219136

金虫 (小有名气)

引用回帖:
: Originally posted by cars at 2012-03-09 15:38:56:
sin(mpix/R)sin(npix/R)=cos/2-cos/2,可以让双循环变单循环,不过此级数估计不收敛,不知你的截断是否有根据。
此积分实际是可积的,只不过积分结果中包含超越函数cosint(x)

因此没必要用数值积分。

我的截断是根据整个程序得来的。是的,我用mathematica计算出来有超越函数,但是带进数值后计算出来有复数,不知道这个怎么解决?
3楼2012-03-09 22:04:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 hrbeu2219136 的主题更新
信息提示
请填处理意见