gpt4 book ai didi

python - odeint 的非线性 ODE 解

转载 作者:太空宇宙 更新时间:2023-11-03 19:42:05 27 4
gpt4 key购买 nike

我必须求解以下微分方程:

enter image description here

enter image description here

如果没有 F_1 术语,代码就很简单。但我无法用包含 F_1 项来解决它,尽管我知道解决方案应该看起来像阻尼谐振。

from scipy.integrate import odeint
import numpy as np
import matplotlib.pyplot as plt

def harmonic_motion(X,t,k,m,tau):
x,v=X
F=-(k/m)*x


F_1=tau/v*(np.gradient(x,t)**2) # This line doesn't work.

dx_dt=v
dv_dt=F-F_1
dX_dt=[dx_dt,dv_dt]
return dX_dt


m=1
k=1
tau=0.1
X0=-3
V0=0

t = np.linspace(0, 15, 250)
sol = odeint(harmonic_motion, [X0,V0], t,args=(k,m,tau))
x=sol[:,0]
v=sol[:,1]

plt.plot(t,x,label='x')
plt.plot(t,v,label='v')
plt.legend()
plt.xlabel('t (s)')
plt.ylabel('x,v (m,m/s)')
plt.show()

最佳答案

具有空气摩擦的 Spring 的正确版本是

m*x'' + tau*abs(x')*x' + k*x = 0

第一个订单系统是

def harmonic_motion(X,t,k,m,tau):
x,v = X
return v, -(tau*abs(v)*v + k*x)/m

现在,该相位图应该为原点提供一个漂亮的螺旋。

关于python - odeint 的非线性 ODE 解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60365165/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com