|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?我要加入
x
求一个复指数函数的二重积分问题,
问题1:
出问题处的代码如下:
x1=-2:1:2;
k=5e7;
for n=1:5
l(n)=dblquad(@(x,y)exp(i*k*((x1(n)-x).^2+y.^2)),0,1, -1,1) ;
end
运行后的警告:
Warning: Maximum function count exceeded; singularity likely.
> In quad at 106
In dblquad>innerintegral at 84
In quad at 77
In dblquad at 60
In example at 8
并且一直计算,一个多小时都算不出结果。
于是我把k改成很小的数值,k=5;很快计算出结果。
但是我需要的积分中,k就是很大,1e7量级以上,这怎么办呢?
问题2:
事实上,我的积分限并不是上述中的0,1, -1,1,而应该是0,inf,-inf,inf。但是好像dblquad的积分限不能是无穷大吧,于是用一个很大的数代替,我用1e7,即积分限为0,1e7,-1e7,1e7,(此时取k=5)
即程序代码变为:
x1=-2:1:2;
k=5;
for n=1:5
l(n)=dblquad(@(x,y)exp(i*k*((x1(n)-x).^2+y.^2)),0,1e7,-1e7,1e7) ;
end
但是运行时仍然显示如下警告:
Warning: Maximum function count exceeded; singularity likely.
> In quad at 106
In dblquad>innerintegral at 84
In quad at 77
In dblquad at 60
In example at 8
即使我把积分限改为0,1e2,-1e2,1e2也仍然显示上述警告,一直计算不出来。
请问高手这又该怎么办呢?
总结一下:我的积分有两处条件都会出现警告,使程序一直运行不出结果:
一处是我的k值太大;一处是我的积分限太大。
这个怎么解决呢?两天了我都苦思不得其解。拜求高手指点!!!!!!!!!!!!
[ 本帖最后由 独立小桥风满袖 于 2010-1-27 00:23 编辑 ] |
|