mathematica计算结果有问题,亲高手解答
mathematica吧
全部回复
仅看楼主
level 6
一笑飘 楼主
计算公式:
当SNR为1时,mathematica计算的结果为:108.52196838104936
同样的参数,用maple或者matlab计算的结果为:12.83559958
maple计算的结果应该是正确的,不知为啥mathematica计算的结果与maple的结果不一致(即两个程序中p2的结果不一致)。
mathematica程序:
ClearAll["Global`"]
alpha = 6.39;
beta = 3.69;
a1 = (1 - alpha)/2;
a2 = (2 - alpha)/2;
a3 = (1 - beta)/2;
a4 = (2 - beta)/2;
a5 = 1;
b1 = 0;
b2 = 1.0/2;
z = 2*(SNR0/(alpha*beta))^2;
p1 = 2^(alpha + beta - 3)/(Pi*Sqrt[Pi]*Gamma[alpha]*Gamma[beta]);
p2 = MeijerG[{{a1, a2, a3, a4}, {a5}}, {{b1, b2}, { }}, z];
pb = p1*p2;
SNR0 = 10^(SNR/10);
min = 0;
max = 25;
step = 1;
table1 = Table [{SNR, z, p2, pb}, {SNR, min, max, step}];
TableForm[table1, TableHeadings -> {None, {"SNR", "z", "p2", "pb"}}];
LogPlot[pb, {SNR, min, max}, PlotRange -> {{min, max}, {10^-6, 1}},
Frame -> True]
Export["F:/360data/Win8Desktop/Data.txt", table1, "Table"]
maple程序:
alpha1 := 6.39;
beta1 := 3.69;
a1 := (1-alpha1)*(1/2);
a2 := (2-alpha1)*(1/2);
a3 := (1-beta1)*(1/2);
a4 := (2-beta1)*(1/2);
a5 := 1;
b1 := 0;
b2 := 1.0*(1/2);
SNR := 0;
SNR0 := 10^((1/10)*SNR);
z := 2*(SNR0/(alpha1*beta1))^2;
p1 := 2^(alpha1+beta1-3)/(3.1415926*sqrt(3.1415926)*GAMMA(alpha1)*GAMMA(beta1)); p2 := MeijerG([[a1, a2, a3, a4], [a5]], [[b1, b2], []], z)
望高手解答,谢谢!
2015年08月05日 03点08分 1
level 11
前面用直接赋值,后面用延迟赋值,有什么特别意图么?
2015年08月05日 05点08分 3
您好,mathematica里面没有延迟赋值,后面程序中:=是maple里面的直接赋值用法。谢谢。
2015年08月05日 05点08分
level 6
一笑飘 楼主
回复 妙谛莲花 :您好,更改为延迟赋值后数值也没有变化。我把具体数值代入,麻烦您在看一下。谢谢。
mathematica计算:
In[1]:= MeijerG[{{-2.695, -2.195, -1.345, -0.845}, {1}}, {{0, 0.5}, {}}, 0.0035972908002298485]
Out[1]= 108.52197
maple计算:
MeijerG([[-2.695000000, -2.195000000, -1.345000000, -0.845000000], [1]], [[0, 0.5], []], 0.3597290800e-2);
结果: 12.83559958
同样的数值代入两个程序计算的结果不一样,根据文献中图形数值判断,maple计算的结果是对的。
2015年08月05日 10点08分 4
level 6
一笑飘 楼主
回复 妙谛莲花 :
您好:您用修改后的程序计算的结果是图1吗?谢谢。
图1
2015年08月05日 11点08分 6
level 6
一笑飘 楼主
图1
2015年08月05日 11点08分 7
level 8
确实不可思议。。。
2015年08月05日 21点08分 8
level 8
SE上一个大牛的回复
2015年08月05日 22点08分 9
谢谢,您的解答。
2015年08月06日 00点08分
吧务
level 12
有可能是mma中MeijeiG的定义与maple不一样-_-||
2015年08月06日 00点08分 10
谢谢!你的解答!
2015年08月06日 00点08分
一样的 我看过了
2015年08月06日 11点08分
level 8
2015年08月06日 12点08分 11
谢谢。现在是一样的了。请问SE是StackExchange吗?谢谢!
2015年08月07日 07点08分
回复 一笑飘 :嗯
2015年08月07日 07点08分
回复
GTOGTOGTOGTO
: 3Q!
2015年08月07日 07点08分
回复 一笑飘 :QQQ
2015年08月07日 08点08分
1