Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) |
![]() |
|
![]() |
#1 |
初级会员
注册日期: 2009-05-16
帖子: 2
声望力: 0 ![]() |
![]()
需要计算这样一个表达式 其中J 和H分别是第一类贝塞尔函数和Hankel函数,阶数均为v=n+1/2
P是n介勒让德函数,kb=50 kr=10000 theta为0到180 请问这样的无限求和 应该怎样计算比较精确,是把n选的很大吗? 大家帮我看看我的程序哪里不对 为什么只能算到80阶? 再往高阶算出的就是未知数了 此帖于 2009-09-28 10:51 被 snipercl 编辑。 |
![]() |
![]() |
![]() |
#2 |
初级会员
注册日期: 2009-05-16
帖子: 2
声望力: 0 ![]() |
![]()
以下是我的程序
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 |
![]() |
![]() |