Sympy solve不会返回ans

2024-09-27 19:21:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用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的方程,但它不会返回任何数字。运行代码块后,我的python笔记本只显示代码正在运行,但不会返回值,也不会停止。为了让sympy更快地工作,我是否应该给它一个替代功能或某种命令?在


Tags: 代码varcmbmcfeq方程sympy
1条回答
网友
1楼 · 发布于 2024-09-27 19:21:03

这个方程包含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

相关问题 更多 >

    热门问题