我刚刚开始试用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)
的对称方程共同描述了次星系上的引力加速度。
开普勒告诉我们,在合理的起始条件下,解应该是一个椭圆。
我现在找到了,解决方案很简单:需要告诉SymPy
x
是t
的函数,所以
print(Eq(Derivative(x(t), t, 2), G * M * x(t) / (x(t) * x(t) + y(t) * y(t))**1.5))
可以。