[已答复] 第一类修正贝塞尔函数0到无穷的定积分

[复制链接]
沈爱松 发表于 2016-4-21 10:38:20
QQ截图20160421103908.png
这是我要求的积分,其中除了t都是已知数值,下面是我的程序:

     K=1;T=0;
     f1=@(t)((1/Rs)*((t/(K*ts*ts)).^((K-1)/2)));
     f2=@(t)(exp(-(t+K*ts*ts)/Rs));
     f3=@(t)(besseli(K-1,2*sqrt(K*t)*ts/Rs));
     F=@(t)(f1(t).*f2(t).*f3(t));
     Pd=quadgk(F,0,+inf);

结果返回NaN,求大神看看错在哪里?

5 条回复


fengshenone 发表于 2016-4-21 16:41:42
主要是数值积分,当x趋于inf时,f3=inf,所以你算F会出现NAN,要么你把上限取为一个相当大的数,要么你用符号积分吧
syms t
f1=((1/Rs)*((t/(K*ts*ts)).^((K-1)/2)));
f2=(exp(-(t+K*ts*ts)/Rs));
f3=(besseli(K-1,2*sqrt(K*t)*ts/Rs));
F=f1*f2*f3;
Pd=int(F,0,+inf);

沈爱松 发表于 2016-4-21 16:57:11
fengshenone 发表于 2016-4-21 16:41
主要是数值积分,当x趋于inf时,f3=inf,所以你算F会出现NAN,要么你把上限取为一个相当大的数,要么你用符 ...

谢谢!但用int积分得到的结果是Pd =
(5070602400912917867481580172717*exp(3041195641769239551/19452925797000748569982272536576))/5070602400912917605986812821504这样的形式,可以化成一个具体的数值吗?

fengshenone 发表于 2016-4-21 17:01:28
沈爱松 发表于 2016-4-21 16:57
谢谢!但用int积分得到的结果是Pd =
(5070602400912917867481580172717*exp(3041195641769239551/1945292 ...

额,我直接得到的是1啊。。。。
你在前面加format short 试试,我也不确定倒是。

沈爱松 发表于 2016-4-21 17:10:35
fengshenone 发表于 2016-4-21 17:01
额,我直接得到的是1啊。。。。
你在前面加format short 试试,我也不确定倒是。 ...

结果还会不一样的啊,我试过format short了,不行哎。总之谢谢啦

fengshenone 发表于 2016-4-21 17:46:51
沈爱松 发表于 2016-4-21 17:10
结果还会不一样的啊,我试过format short了,不行哎。总之谢谢啦

好吧,我翻了一下,vpa(Pd)大概也许可能可以~
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表