Sympy 解决不会 return 一个答案
Sympy solve will not return an answer
我正在尝试使用 sympy 来求解太阳风的一维稳态模型的方程。我有下面的代码
from sympy import Eq, var, solve
var('r',real=True)
eq = Eq((1./2.)*((CF**2)/(r))+CT*r**(gamma)+bm/(2.*muo) - CM)
a = solve(eq,r)
其中 CF、CT、CM、gamma、muo 和 bm 只是实数。我试图在 bm 值的范围内求解 r 的方程,但它不会 return 任何数字。在 运行 代码块上,我的 python 笔记本只显示代码是 运行 但没有 return 值也不会停止。是否有替代功能或某种命令我应该给 sympy 以使其更快地工作?
该方程涉及 r 的两个幂的和,包括 r**gamma。除非 gamma 是一个非常小的整数(介于 -4 和 4 之间),否则没有希望以符号方式解决这个问题(这就是 sympy 的目的)。
要用数字求解,你需要 scipy 而不是 sympy。例如:
from scipy.optimize import fsolve
func = lambda r : (1./2.)*((CF**2)/(r))+CT*r**(gamma)+bm/(2.*muo) - CM
# assign some numeric values to CF, CT, gamma, bm, muo, CM
sol = fsolve(func, 1) # 1 is the initial guess for the solver
我正在尝试使用 sympy 来求解太阳风的一维稳态模型的方程。我有下面的代码
from sympy import Eq, var, solve
var('r',real=True)
eq = Eq((1./2.)*((CF**2)/(r))+CT*r**(gamma)+bm/(2.*muo) - CM)
a = solve(eq,r)
其中 CF、CT、CM、gamma、muo 和 bm 只是实数。我试图在 bm 值的范围内求解 r 的方程,但它不会 return 任何数字。在 运行 代码块上,我的 python 笔记本只显示代码是 运行 但没有 return 值也不会停止。是否有替代功能或某种命令我应该给 sympy 以使其更快地工作?
该方程涉及 r 的两个幂的和,包括 r**gamma。除非 gamma 是一个非常小的整数(介于 -4 和 4 之间),否则没有希望以符号方式解决这个问题(这就是 sympy 的目的)。
要用数字求解,你需要 scipy 而不是 sympy。例如:
from scipy.optimize import fsolve
func = lambda r : (1./2.)*((CF**2)/(r))+CT*r**(gamma)+bm/(2.*muo) - CM
# assign some numeric values to CF, CT, gamma, bm, muo, CM
sol = fsolve(func, 1) # 1 is the initial guess for the solver