Интеграторы ODE общего назначения ожидают, что динамическая система сведена к абстрактной системе первого порядка.Такая система имеет векторное пространство состояний, а дифференциальное уравнение обеспечивает векторы скорости для этого пространства.Здесь состояние имеет 3 скалярных компонента, которые дают трехмерный вектор в качестве состояния.Если вы хотите использовать компоненты отдельно, первым шагом в функции ODE является извлечение этих компонентов из вектора состояния, а последним шагом является составление вектора возврата из производных компонентов в правильном порядке.
Кроме того, вам необходимо упорядочить шаги вычисления в порядке зависимости
def model(u,t):
w, y, z = u
a=0.1
H=sqrt((1+z)**3+w+u**2/(2*a))
dwdx=y
dydx=-a-3*H*y
dzdx=-H*(1+z)
return [dwdx, dydx, dzdx]
, а затем вызвать интегратор один раз с комбинированным начальным состоянием
u0 = [ w0, y0, z0]
u = odeint(model, u0, x)
w,y,z = u.T
Пожалуйста, проверьте также аргументыфункции графика, общая схема plot(x,y)
.