Numerical ODE solving in Python

前端 未结 4 557
失恋的感觉
失恋的感觉 2020-12-30 06:06

How do I numerically solve an ODE in Python?

Consider

\"equation

\\ddot{u}(         


        
4条回答
  •  刺人心
    刺人心 (楼主)
    2020-12-30 06:38

    import scipy.integrate as integrate
    import matplotlib.pyplot as plt
    import numpy as np
    
    pi = np.pi
    sqrt = np.sqrt
    cos = np.cos
    sin = np.sin
    
    def deriv_z(z, phi):
        u, udot = z
        return [udot, -u + sqrt(u)]
    
    phi = np.linspace(0, 7.0*pi, 2000)
    zinit = [1.49907, 0]
    z = integrate.odeint(deriv_z, zinit, phi)
    u, udot = z.T
    # plt.plot(phi, u)
    fig, ax = plt.subplots()
    ax.plot(1/u*cos(phi), 1/u*sin(phi))
    ax.set_aspect('equal')
    plt.grid(True)
    plt.show()
    

    enter image description here

提交回复
热议问题