我在用Sympy解方程时遇到了麻烦。当我运行代码时,例如:
print(correction(10))
我希望它能打印出一个f的数字,但它却给了我一个错误:executionaborted。在
def correction(r):
from sympy import cosh, log, exp, symbols, solve
f = symbols('f')
def equation():
return cosh(((r - 1.0)/(r + 1.0))*(log(2.0)/f)) - 0.5*exp(log(2.0)/f)
correction = solve(equation(),f)
return correction
有什么问题吗?在
你的方程是高度非线性的,我的猜测是,一个封闭形式的解是找不到的。这就是
sympy.solve
失败的原因。你唯一的选择就是用数值方法求解这个方程。Sympy为此提供了nsolve
函数,这在数值求解器中是典型的,需要对解进行估计。在相关问题 更多 >
编程相关推荐