基本上标题是什么。我得到了我认为在我的代码中传播的数值错误,所以我试图通过将所有类型更改为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'
答案 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