登录论坛

查看完整版本 : [求助]贝塞尔函数的无穷积分怎么求解?


ppunix
2008-11-16, 21:30
1303
如图,谢谢大家了!!

laosam280
2008-11-17, 16:15
对于这种积分格式,上限是正无穷,下限是zero,我编了个函数文件,回头你自己把函数的表达式代入就可以了。

function I = IntGaussLager(f,n,AK,XK)
if(n<6 && nargin == 2)
AK = 0;
XK = 0;
else
I=sum(AK.*subs(sym(f),findsym(sym(f)),XK));
end

switch n
case 2,
I=0.853553*subs(sym(f),findsym(sym(f)),-0.585786)+...
0.146447*subs(sym(f),findsym(sym(f)),3.414214);

case 3,
I=0.711093*subs(sym(f),findsym(sym(f)),0.415575)+...
0.278518*subs(sym(f),findsym(sym(f)),2.294280)+...
0.0103893*subs(sym(f),findsym(sym(f)),6.289945);

case 4,
I=0.603154*subs(sym(f),findsym(sym(f)),0.322548)+...
0.357419*subs(sym(f),findsym(sym(f)),1.745761)+...
0.0388879*subs(sym(f),findsym(sym(f)),4.536620)+...
0.000539295*subs(sym(f),findsym(sym(f)),9.395071);

case 5,
I=0.521756*subs(sym(f),findsym(sym(f)),0.263560)+...
0.398667*subs(sym(f),findsym(sym(f)),1.413403)+...
0.0759424*subs(sym(f),findsym(sym(f)),3.596426)+...
0.00361176*subs(sym(f),findsym(sym(f)),7.085810)+...
0.0000233700*subs(sym(f),findsym(sym(f)),12.640801);
end

PS:f是被积函数,n是积分所用的项,AK是积分格式的系数,XK是积分节点的系数,I是积分的结果。

ppunix
2008-11-18, 13:17
对于这种积分格式,上限是正无穷,下限是zero,我编了个函数文件,回头你自己把函数的表达式代入就可以了。

function I = IntGaussLager(f,n,AK,XK)
if(n<6 && nargin == 2)
AK = 0;
XK ...

能否具体解释一下!谢谢

ppunix
2008-11-18, 16:56
哈哈,原来是用的高斯-拉盖尔公式啊!明白了,试一下啊,谢谢!:tongue:

ppunix
2008-11-20, 14:58
不行啊,误差还是很大!