Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-09-28, 10:49   #1
snipercl
初级会员
 
注册日期: 2009-05-16
帖子: 2
声望力: 0
snipercl 正向着好的方向发展
默认 有关贝塞尔函数和勒让德函数的无限和

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

大家帮我看看我的程序哪里不对 为什么只能算到80阶? 再往高阶算出的就是未知数了
上传的图像
文件类型: jpg 1.JPG (8.0 KB, 4 次查看)

此帖于 2009-09-28 10:51 被 snipercl 编辑。
snipercl 当前离线   回复时引用此帖
旧 2009-09-28, 10:50   #2
snipercl
初级会员
 
注册日期: 2009-05-16
帖子: 2
声望力: 0
snipercl 正向着好的方向发展
默认 回复: 有关贝塞尔函数和勒让德函数的无限和

以下是我的程序

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
snipercl 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 09:08


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