PythonOdeint解决方案

PythonOdeint解决方案,python,odeint,Python,Odeint,问题是经典力学中的氢原子。解应该是围绕中心的椭圆旋转。然而,我得到了一个毫无意义的结果(见图)。无数次地检查方程和物理。这里有什么问题?与odeint函数相关的东西?结果对我来说真是个麻烦:-(( 代码如下: c1 = -1710.82735072 x0 = 0.0 y0 = 1.0 vx0 = 15.0 vy0 = 0.0 from scipy.integrate import odeint from pylab import * def deriv(z,t): return ar

问题是经典力学中的氢原子。解应该是围绕中心的椭圆旋转。然而,我得到了一个毫无意义的结果(见图)。无数次地检查方程和物理。这里有什么问题?与odeint函数相关的东西?结果对我来说真是个麻烦:-((

代码如下:

c1 = -1710.82735072
x0 = 0.0
y0 = 1.0
vx0 = 15.0
vy0 = 0.0
from scipy.integrate import odeint
from pylab import *
def deriv(z,t):   
   return array([z[1],c1*z[0]/((z[0]**2+z[2]**2)**1.5),z[3],c1*z[2]/((z[0]**2+z[2]**2)**1.5)])
time = linspace(0,0.06,1000)
zinit = array([x0,vx0,y0,vy0])
z = odeint(deriv,zinit,time)
figure()
plot(z[:,0],z[:,2])
xlabel('x')
ylabel('y')
show()
在这里,革命不是围绕着中心的


如果你绘制速度(z[1],z[3])与时间等的关系图,它们也会被弄乱

如果你给公式添加一个链接并给轴贴上标签那就好了如果你提供雅可比矩阵(你的系统应该可以)。你把z[:,2]和z[:,3]弄混了吗?因为最后一个(轨道?)是居中的