独立小桥风满袖 发表于 2010-1-27 00:21

拜求一个二重积分问题:)

求一个复指数函数的二重积分问题,

问题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 编辑 ]

maigicku 发表于 2010-1-27 09:57

LZ的i值是什么?而且如果i=1的话,被积函数不收敛。。。

独立小桥风满袖 发表于 2010-1-27 14:05

回复 沙发 maigicku 的帖子

i是虚数符号~    我的积分是复数的积分

maigicku 发表于 2010-1-28 08:46

因为是复数,用dblquad可能不太合适,用符号积分可解:

syms x1 k x y
k=5e7;
x1=-2:2;
l=int(int(exp(i*k*((x1-x).^2+y.^2)),x,0,1e7),y,-1e7,1e7);
vpa(l)

还有,积分上下限不能为无穷,因为被积函数可能不收敛。。

ChaChing 发表于 2010-1-28 23:53

首先说明个人水平专业有限, 并未使用过dblquad函数!
只是感觉运行都已警告singularity likely了, 是否应先检查是否真的可用dblquad积分!?
LZ所积的函数大约可简化为exp(i*w)之类别, 依exp(i*w)=cos(w)+u*sin(w), 怀疑此类型函数可能不收敛, 即不可用dblquad积分? 是否可能需采用特殊方法了!?
离学校太久了, 一些基本数学好几年没碰了, 所以仅说说浅见, 待高人路过!

独立小桥风满袖 发表于 2010-1-29 14:31

回复 地板 maigicku 的帖子

谢谢您!
不过还想请教一下,int是符号积分,是不是只有被积函数有解析的原函数时才能用呢?
如果我的函数再复杂一些,没有解析的原函数,int好像就不能用了,这时候只能用数值积分了。这种情况用dblquad、或者用两次quadl,运算速度都会非常非常慢,有时也会出现上述警告。请问还有什么解决办法吗?

ChaChing 发表于 2010-1-29 15:26

试试选用quadgk method, 现在没新版可试

ChaChing 发表于 2010-1-31 00:22

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,'quadgk') ;
end
>> l
l =
Columns 1 through 4
-0.2815 - 0.2010i-0.1598 + 0.2396i-0.1307 + 0.0002i-0.1307 + 0.0002i
Column 5
-0.1598 + 0.2396i
页: [1]
查看完整版本: 拜求一个二重积分问题:)