用mpmath mpc类型解决一个象征性的同情

时间:2016-05-05 15:52:19

标签: python sympy mpmath

基本上标题是什么。我得到了我认为在我的代码中传播的数值错误,所以我试图通过将所有类型更改为mpcs来提高,具有高精度。但是,我的一些计算是象征性的,并且同情并不像mpcs。

val += (1.0/2.0)*(1.0/kConversionFactor)**(ci) * ( A*k**(ln-lm+2*ci) - 1.0j*B*k**(ln+lm+1+2*ci) )
TypeError: unsupported operand type(s) for *: 'mpc' and 'Symbol'

k是同情符号A和B是mpc'

1 个答案:

答案 0 :(得分:0)

更新了以下评论:

val += (1.0/2.0)*(1.0/kConversionFactor)**(ci) * (mpcToSympy(A)*k**(ln-lm+2*ci) - sy.I*mpcToSympy(B)*k**(ln+lm+1+2*ci) )
....
def mpcToSympy(mpc_):
    return ( sy.Float(str(mpc_.real),DPS) + sy.Float(str(mpc_.imag),DPS)*sy.I )

见这里:Convert from mpf to Sympy Float without losing precision