24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1893  |  回复: 6

puchuanxia

铜虫 (小有名气)

[求助] MATLAB无法计算出这个含【级数和超几何函数】的式子

如题,我试图让m的值变大以更接近真值,但超过37就算不出来。
请问各位高手遇到这种不报错又算不出的情况怎样处理?
(注:式中1F2为超几何函数,T(m+n)为伽马函数)
代码如下:
clc
clear all
close all
r=3.;
lam=5.32e-4;
k=2*pi/lam;
n=25;
f=500;
alpha=9.9;
rho=linspace(0.,1,100);
len=length(rho);
y=zeros(1,len);f1=zeros(1,len);f2=zeros(1,len);
tic;
h=waitbar(0,'calculation');
for ii=1:len
     waitbar(ii/100);
     f1(ii)=k/alpha/f/factorial(n)*(k*alpha*rho(ii)*r^2/4/f)^n;
        for m=0:30
            f2(ii)=f2(ii)+(-alpha^2*r^2/4)^m/factorial(m)/gamma(m+n)/(m+n)*hypergeom(m+n,[m+n+1,n+1],-(k*r*rho(ii)/2/f)^2);
        end
     y(ii)=(f1(ii)*f2(ii))^2;
end
close(h)
figure(1)
plot(rho,y);
toc;

MATLAB无法计算出这个含【级数和超几何函数】的式子
要计算的式子
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

徐谊

木虫 (著名写手)

帮顶一下
2楼2014-04-20 11:13:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

puchuanxia

铜虫 (小有名气)

引用回帖:
2楼: Originally posted by 徐谊 at 2014-04-20 11:13:59
帮顶一下

谢谢捧场 朋友
这个问题你怎么看
3楼2014-04-20 14:09:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

徐谊

木虫 (著名写手)

引用回帖:
3楼: Originally posted by puchuanxia at 2014-04-20 14:09:03
谢谢捧场 朋友
这个问题你怎么看...

我表示不懂
4楼2014-04-20 20:01:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

puchuanxia

铜虫 (小有名气)

引用回帖:
4楼: Originally posted by 徐谊 at 2014-04-20 20:01:03
我表示不懂...

我自己也不明白 被这问题搞的没有周末
5楼2014-04-21 10:30:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

徐谊

木虫 (著名写手)

引用回帖:
5楼: Originally posted by puchuanxia at 2014-04-21 10:30:11
我自己也不明白 被这问题搞的没有周末...

可以去matlab论文问问
6楼2014-04-21 13:24:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

puchuanxia

铜虫 (小有名气)

我后来这样解决了问题:
1.当n=30时,所得结果已经收敛为真值,没必要再去增大n值;
2.matlab算不出的原因是无法计算出以下一类超几何函数
         hypergeom(86,[87,31],-400)
  而改用其它软件,如mathematica则可以算出;
3.我的程序仍不够精简,还望大家提出修改意见!

希望以上对大家有所帮助!
7楼2014-05-04 09:35:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 puchuanxia 的主题更新
信息提示
请填处理意见