Python Sympy与astropy结合使用单位进行数值求解?

Python Sympy与astropy结合使用单位进行数值求解?,python,sympy,solver,astropy,Python,Sympy,Solver,Astropy,有没有办法将Symphy的解算器与Astropy结合起来?例如,如果我想为所有其他变量的给定值解p的开普勒第三定律: from sympy import solveset, Poly, Eq, Function, exp from sympy import Symbol, pi Ms = Symbol('Ms') # mass of sun Mp = Symbol('Mp') # mass of planet G = Symbol('G') # Gravitational consatant a

有没有办法将Symphy的解算器与Astropy结合起来?例如,如果我想为所有其他变量的给定值解p的开普勒第三定律:

from sympy import solveset, Poly, Eq, Function, exp
from sympy import Symbol, pi
Ms = Symbol('Ms') # mass of sun
Mp = Symbol('Mp') # mass of planet
G = Symbol('G') # Gravitational consatant
a = Symbol('a') # semi jamor axes
P = Symbol('P') # period
solveset(G * (Ms + Mp) / 4 * pi**2 - a**3/P**2, a)
然后,我如何使用astropy向所有变量添加具有相应单位的值并获得数字输出

import astropy.units as u
from astropy.constants import G
Ms = 1 * u.M_sun
Mp = 1 * u.M_jup
s = 5 * u.pc
P = 1 * u.yr
这是否可以与Symphy收到的结果结合起来,用预期的单位和数值结果求解a中的值


非常感谢您的建议。

我没有使用过
astropy
,但知道将
sympy
numpy
一起使用是很棘手的。通常,最好单独使用
sympy
(它有某种
单元
系统),或者使用
lambdify
sympy
表达式转换为
numpy
(或其他数学)。astropy量与numpy一起工作吗?我希望这在lambdify中是可能的,但我不确定您想要使用什么
modules=
参数。这一切都可以用Mathematica很好地完成,但如果可能的话,我更愿意用python来完成。我没有使用
astropy
,但我知道将
sympy
numpy
一起使用是很棘手的。通常,最好单独使用
sympy
(它有某种
单元
系统),或者使用
lambdify
sympy
表达式转换为
numpy
(或其他数学)。astropy量与numpy一起工作吗?我希望这在lambdify中是可能的,但我不确定您想要使用什么
modules=
参数。这一切都可以用Mathematica很好地完成,但如果可能的话,我更愿意用python来完成。