Пытаюсь решить набор од в компактной или матричной форме в python. Ода имеет следующую форму:
dydt = (np.dot((A-D),y) - np.dot(np.dot(np.diag(y),A),y))
В которой A
и D
- это матрицы N на N, а y
- это N на 1, поэтому dydt
также равно N на 1. Проблема в том, что функция ode возвращает список списков с размером (N, 1), но решатель odeint принимает только список с размером (N,). Итак, это дает мне эту ошибку:
RuntimeError: массив, возвращаемый fun c, должен быть одномерным, но получил ndim = 2.
Я ушел через множество примеров и вопросов, заданных другими пользователями, но я не смог найти свой ответ.