Python решает ОДУ 2-го порядка с четырехъядерной функциейPython

Программы на Python
Anonymous
Python решает ОДУ 2-го порядка с четырехъядерной функцией

Сообщение Anonymous »


Я изучаю динамику затухающего приводного маятника с ОДУ второго порядка, определенного следующим образом, и конкретно занимаюсь программированием:

Код: Выделить всё

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))
This problem does look quite similar to Need help solving a second order non-linear ODE in python, but I am getting the error

Код: Выделить всё

Supplied function does not return a valid float.
What am I doing wrong??


Источник: https://stackoverflow.com/questions/267 ... d-function

Вернуться в «Python»