Я пытаюсь решить систему дифференциальных уравнений
x´=Ax с x(0) = f(x)
в питоне, где A действительно является сложной разреженной матрицей.
На данный момент я решаю систему, используя класс scipy.integrate.complex_ode следующим образом.
def to_solver_function(time,vector):
sendoff = np.dot(A, np.transpose(vector))
return sendoff
solver = complex_ode(to_solver_function)
solver.set_initial_value(f(x),0)
solution = [f(x)]
for time in time_grid:
next = solver.integrate(time)
solution.append(next)
Это работает нормально, но мне нужно «сказать решателю», что моя матрица разрежена. Я понял, что я должен использовать
Asparse = sparse.lil_matrix(A)
но как мне изменить мой решатель для работы с этим?