Caroli 发表于 2008-6-12 20:51

用quadl算积分时的积分限的取值

被积函数为:besselh(0,k*l*x)
积分区间是:(0,inf),我近似取inf=20;
可是由于被积函数随自变量的增大而迅速衰减,因此本来inf不用取太大,且取大和取小的差异应该很小,但是计算结果取显示当inf=40是inf=20时的10000倍,不知道是怎么回事?请教各位高手。
计算过程中出现以下warning:
Warning: Maximum function count exceeded; singularity likely.。

happy 发表于 2008-6-12 21:10

积分奇异,对besselh积分的时候刨去零点

Caroli 发表于 2008-6-14 10:12

回复 2楼 的帖子

是刚用matlab编程的,有很多不懂,谢谢指导。
再请教一下:用quad和quadl算同一个积分时,为什么结果有不同?
另外:交换quadl的积分上下限为什么结果不是互为相反数?而是两种结果相差很多。(结果为复数)
谢谢

sigma665 发表于 2008-6-14 12:42

回复 3楼 的帖子

quadl精度应该更高点

另外,被积函数奇异了,结果当然不准,后面的那些问题也就不是问题了
你可以用简单的被积函数,验证你那2个问题

Caroli 发表于 2008-6-14 14:12

回复 4楼 的帖子

我试了一下:
我的被积函数是:
function y=myfun(x)
rr =0.40000000000000;
k =1.84799567858223;
hr=besselh(0,-k*rr*cosh(x));
y=hr.*(-cosh(x));
分别有quad和quadl计算得到的结果为:
>> a=quadl('myfun',0,10)
Warning: Maximum function count exceeded; singularity likely.
> In quadl at 98

a =

-89.3828 +33.0058i

>> a=quad('myfun',0,10)
Warning: Maximum function count exceeded; singularity likely.
> In quad at 92

a =

91.7643 + 9.4596i

既然差不多,只是一个比一个精度差点,为什么结果会相差这么多呢?
如果没有办法让warning不出现,那么哪个计算结果更可信一点呢?谢谢各位高手了。

w89986581 发表于 2008-6-14 14:49

原帖由 happy 于 2008-6-12 21:10 发表 http://www.chinavib.com/forum/images/common/back.gif
积分奇异,对besselh积分的时候刨去零点

赞成,关于特殊函数的运算(求值,积分),不是交给matlab就能自动得到准确结果的.

sigma665 发表于 2008-6-14 15:24

既然差不多,只是一个比一个精度差点,为什么结果会相差这么多呢?

那是因为被积函数奇异了

参考2楼的做法

Caroli 发表于 2008-6-14 19:15

回复 7楼 的帖子

>> a=quadl('myfun',0.001,10)
Warning: Maximum function count exceeded; singularity likely.
> In quadl at 98

因为besselh在综量等于零时是无穷大,综量为零是奇点故挖去‘0’改为‘0.001’可是结果还是有问题,再次请教各位。
附计算结果:
a =

-81.3031 +45.3588i

>> a=quad('myfun',0.001,10)
Warning: Maximum function count exceeded; singularity likely.
> In quad at 92

a =

91.0831 -16.0628i

gxumwl 发表于 2008-6-27 10:14

那试用quadgk函数什么样?

vegetarian 发表于 2010-1-27 12:59

原帖由 happy 于 2008-6-12 21:10 发表 http://www.chinavib.com/forum/images/common/back.gif
积分奇异,对besselh积分的时候刨去零点

这个具体怎么操作啊?

ChaChing 发表于 2010-1-28 00:50

回复 8楼 Caroli 的帖子

官网是这样说的
http://www.mathworks.com/support/solutions/en/data/1-2ZAPLB/?solution=1-2ZAPLB
页: [1]
查看完整版本: 用quadl算积分时的积分限的取值