基本上就是标题所说的。我得到了我认为是在我的代码中传播的数字错误,所以我试图通过将所有类型更改为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
发布于 2016-05-06 04:46:09
更新了以下评论:
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
https://stackoverflow.com/questions/37054917
复制相似问题