Я хочу найти точку равновесия дифференциального уравнения и проверить, устойчива ли точка равновесия.
Вот минимальный рабочий пример
import numpy as np
from scipy.optimize import fsolve
dim = 2
A = np.random.uniform(size = (dim,dim))
sol, infodict, ier, mesg = fsolve(lambda x: 1-np.dot(A,x),
np.ones(dim), full_output = True)
Чтобы определить, устойчиво ли решение sol
, все собственные значения якобиана должны иметь отрицательную вещественную часть. Однако якобиан не сохраняется в infodict
, а QR-разложение сохраняется в infodict
.
Как мне вернуть якояна из разложения QR fsolve
?
Все, что я мог сделать, было что-то вроде
eigenvalues = np.linalg.eigvals(infodict["fjac"])*infodict["r"][ind]
Где ind
- это диагональные элементы r
, однако я сомневаюсь, что это наилучший из возможных способов.