如果我想向mpmath.mpf
传递一个float并用mp.findroot
找到根,我会遇到一些麻烦。在
问题继续前面一个问题的故事:Polynomial function cannot be solved by Python sympy
import sympy
omega = sympy.symbols('omega')
from sympy import I
import mpmath as mp
import numpy as np
# Definition of simplified function
def function(omega):
return sympy.Poly((-1.16*omega**4), omega)
# This function does not work
def doesntwork(omega):
return (mp.mpf(str(np.real(sympy.lambdify( (I),function(omega).coeffs()[0])(1j)))) * omega ** 4)
# This function does work, but I need to handover the value due to its not constant
def doeswork(omega):
return (mp.mpf('-1.16') * omega ** 4)
#print mp.findroot(doesntwork, 1) # error message
print mp.findroot(doeswork, 1) # result is obtained
如果我用字符串输入系数,mp.findroot
命令可以工作,但如果我通过自动过程读取系数,则不起作用。问题似乎是由mpmath.mpf
的输入引起的,该输入未被识别为字符串。我需要这个自动的过程,因为系数并不像这个简单的例子中那样是恒定的。在
函数doesnwork的错误消息是:
^{pr2}$谢谢你的帮助!在
我解决了问题。显然,如果之前将系数存储在变量中,则会有所不同。在
输出
^{pr2}$相关问题 更多 >
编程相关推荐