MATLAB爱好者论坛-LabFans.com

MATLAB爱好者论坛-LabFans.com (https://www.labfans.com/bbs/index.php)
-   MATLAB论坛 (https://www.labfans.com/bbs/forumdisplay.php?f=6)
-   -   [MATLAB数学相关] 有关贝塞尔函数和勒让德函数的无限和 (https://www.labfans.com/bbs/showthread.php?t=9785)

snipercl 2009-09-28 10:49

有关贝塞尔函数和勒让德函数的无限和
 
1 个附件
[SIZE="5"]需要计算这样一个表达式 其中J 和H分别是第一类贝塞尔函数和Hankel函数,阶数均为v=n+1/2
P是n介勒让德函数,kb=50 kr=10000 theta为0到180
请问这样的无限求和 应该怎样计算比较精确,是把n选的很大吗?

大家帮我看看我的程序哪里不对 为什么只能算到80阶? 再往高阶算出的就是未知数了[/SIZE]

snipercl 2009-09-28 10:50

回复: 有关贝塞尔函数和勒让德函数的无限和
 
[SIZE="5"]以下是我的程序

b=5;
r=1000;
k=10;
T=0;
for n=0:1:80
v=n+0.5;
T=T+(-j)^(n+1)*(n+0.5)*besselj(v,k*b)*besselh(v,k*r)*lerangde(n,cos(theta))/besselh(v,k*b);
end


勒让德函数是我自己写的

function pn=lerangde(l,x)
pn=0;
for i=0:l/2
pn=pn+(-1)^i*jiecheng(2*l-2*i)*x.^(l-2*i)/(2^l*jiecheng(i)*jiecheng(l-i)*jiecheng(l-2*i));
end

阶乘函数
function m=jiecheng(n);
if (n==0)
m=1;
else
m=1;
for i=1:n;
m=m*i;
end
end[/SIZE]


所有时间均为北京时间。现在的时间是 03:24

Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.