如何使用Matlab在Mathematica中获取Gamma功能

时间:2014-08-11 07:27:58

标签: matlab function symbolic-math

在Mathematica中,Gamma[a, z]指的是上部不完整的Gamma函数,而在Matlab中,gammainc(z, a)指的是正则化的下部不完全Gamma函数。我想知道如何使用Matlab获得Mathematica结果?在这个link中,解释了使用Mathematica获得相同Matlab结果的方法,但我找不到通过Matlab获得一个的策略。

2 个答案:

答案 0 :(得分:1)

您有几种选择。除了@MarkMcClure提供的版本

y = (1-gammainc(z,a)).*gamma(a)

您还可以使用其他参数直接获得上层正则化伽马函数:

y = gammainc(z,a,'upper').*gamma(a)

请注意,参数的顺序与Mathematica函数的顺序相反。

以上是严格的数字函数,但Mathematica的Gamma符号进行评估。您可以在符号工具箱中使用Matlab的igamma。请注意,此函数不是正则化的,并且使用与Mathematica函数相同的参数顺序 - 它与您找到的直接等价物接近(但数值评估显然较慢):

syms a z;
y = igamma(a,z)

在旧版本的Matlab中,此功能可能无法直接使用。但是,您仍然可以通过以下方式访问MuPAD version

y = feval(symengine,'igamma',a,z)

或类似

y = evalin(symengine,['igamma(' char(a) ',' char(z) ')'])

答案 1 :(得分:0)

根据维基百科,

enter image description here

因此,在Mathematica中你可能有

Gamma[1, 2] // N

在Matlab中你可以拥有

gamma(1)-gammainc(2,1)

两者都返回0.135335