Я немного смущен odeint
.Решение системы связанных дифференциальных уравнений с использованием scipy odeint
Я нашел один пример ниже, чтобы решить y"=ay + by'
. Таким образом, кажется, что y[0]
является функцией, y[1]
является первой производной.
Соответствует ли следующее выражение y[1] =y'
и y'[1]= a*y[0]+b*y[1]
?
Если бы это было y[2], a*y[0]+b*y[1]
, что бы это значило?
Я немного смущен, так как выражение не говорит левой части уравнения.
Я также встречал выражения, подобные [a(y[0], y[1]), b(y[0], y[1])]
, но не имеют понятия дифференциального уравнения.
Вот один пример:
from scipy.integrate import odeint
from pylab import * # for plotting commands
def deriv(y,t): # return derivatives of the array y
a = -2.0
b = -0.1
return array([ y[1], a*y[0]+b*y[1] ])
time = linspace(0.0,10.0,1000)
yinit = array([0.0005,0.2]) # initial values
y = odeint(deriv,yinit,time)
figure()
plot(time,y[:,0])
xlabel('t')
ylabel('y')
show()
Я нашел ответ, уравнения должны быть представлены следующим образом: y1 = y2, y2 = y3, .., уп '= F (х, ..), и для решения дифференциального уравнения должны быть заданы только правые части уравнений. – pappu