有没有办法在Matlab中执行第一类融合的yypergeometric函数的计算(特别是在R2013a中)?
在Mathematica中,此函数称为Hypergeometric1F1
。我在Matlab中看到kummerU
,但定义看起来不同。
在Mathematica中,definition is:
在Matlab中,definition is给出为:
如何在Matlab中计算第一类融合超几何函数,即两个积分中的第一个?
答案 0 :(得分:3)
这两者是不同的,因为它们为同一个二阶ODE返回不同的解决方案,但名称可以使它们容易混淆。 Mathematica的Hypergeometric1F1
计算confluent hypergeometric function,也称为Kummer函数。 Matlab的kummeru
计算汇合的超几何Kummer U 函数,也称为Tricomi的汇合超几何函数。这两者通过简单的关系as shown here相关联(另请参阅关系here和here)。
在Matlab中,您可以通过通用hypergeom
函数象征性地计算汇合超几何函数(如果所有输入参数都是浮点数,则返回数值解法):
A = hypergeom(a,b,z);
这将返回与Mathematica的Hypergeometric1F1
相同的结果。如果您需要更快的解决方案,可以尝试hypergeomq
中描述的优化this Math.SE answer。对于纯数字解决方案,您还可以尝试this File Exchange submission
在Mathematica中,您可以使用HypergeometricU
生成相当于Matlab kummeru
的结果。