Solving ODEs with SymPy



我刚刚开始试用SymPy。不幸的是,我已经被难住了。看这个:

from sympy import *
t, G, M = symbols('t G M', real = True)
x = Function('x')
y = Function('y')
print(Eq(Derivative(x, t, 2),  G * M * x(t) / (x(t) * x(t) + y(t) * y(t))**1.5))

…它只是打印False。文件说,这意味着可以证明是假的关系。我知道我可以通过使用evaluation = False来防止求值,但最终我想解微分方程组,然后这个假设将再次发挥作用。

那么,有人能看出我在这里做错了什么吗?

附录:

我想做的是玩耍和two-body-problem轨道力学。用引力常数G和主星系M在原点的质量,与y(t)的对称方程共同描述了次星系上的引力加速度。

开普勒告诉我们,在合理的起始条件下,解应该是一个椭圆。

我现在找到了,解决方案很简单:需要告诉SymPyxt的函数,所以

print(Eq(Derivative(x(t), t, 2),  G * M * x(t) / (x(t) * x(t) + y(t) * y(t))**1.5))

可以。

最新更新