odeint для матриц - PullRequest
       75

odeint для матриц

0 голосов
/ 28 января 2020

Я хотел бы закодировать в python связанную систему дифференциальных уравнений, такую ​​как:

$dF_{ij}/dt=A_{ij}$ where $A_{ij}$ является функцией матрицы $F$.

Значение системы Дифференциальные уравнения 1-го порядка.

Для той же системы, но с векторами: $dF_{i}/dt=A_{i}$ Я использую scipy.integrate.odeint.

Но я пытался, и это не работает для матриц.

tmin, tmax, tstep = (0., 200., 1)
t_test=np.arange(tmin, tmax, tstep) #time vector

dydt_testm=np.array([[0.,1.],[2.,3.]])
Y0_test=np.array([[0,1],[0,1]])

def dydt_test(y,t):
    return dydt_testm

result = si.odeint(dydt_test, #Computes the derivative of y at t (voir ligne 82)
                                     Y0_test,               #Initial condition on y (can be a vector).
                                     t_test)

ValueError: Начальное условие y0 должно быть одномерным.

Как мне это исправить?

1 Ответ

0 голосов
/ 30 января 2020

Как прокомментировал Уоррен Векессер в комментариях, odeintw делает свою работу.

from odeintw import odeintw
import numpy as np

Y0_test=np.array([[0,1],[0,1]])
tmin, tmax, tstep = (0., 200., 1)
t_test=np.arange(tmin, tmax, tstep) #time vector

dydt_testm=np.array([[0.,1.],[2.,3.]])

def dydt_test(y,t):
    return dydt_testm

result = odeintw(dydt_test, #Computes the derivative of y at t 
                                     Y0_test,               #Initial condition on y (can be a vector).
                                     t_test)
plt.plot(t_test,result[:,0,1])
plt.show()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...