我在研究一个阻尼的,驱动摆的动力学,二阶常微分方程定义为so,特别是我正在编程:
d^2y/dt^2+c*dy/dt+sin(y)=a*cos(wt)
import numpy as np
import matplotlib.pyplot as plt
from scipy import integrate
def pendeq(t,y,a,c,w):
y0 = -c*y[1] - np.sin(y[0]) + a*np.cos(w*t)
y1 = y[1]
z = np.array([y0, y1])
return z
a = 2.1
c = 1e-4
w = 0.666667 # driving angular frequency
t = np.array([0, 5000]) # interval of integration
y = np.array([0, 0]) # initial conditions
yp = integrate.quad(pendeq, t[0], t[1], args=(y,a,c,w))
这个问题看起来确实与Need help solving a second order non-linear ODE in python非常相似,但是我得到了错误
^{pr2}$我做错什么了??在
integrate.quad
要求提供的函数(pendeq
,在您的例子中)只返回一个float。您的函数返回一个数组。在相关问题 更多 >
编程相关推荐