Scipy.fsolve | Восстановить якобиан из QRPython

Программы на Python
Ответить
Anonymous
 Scipy.fsolve | Восстановить якобиан из QR

Сообщение Anonymous »

Я пытаюсь понять, возможно ли восстановить полный якобиан или хотя бы один элемент якобиана из инфодикта scipy.fsolve
Чтобы сделать запрос конкретным, скажем, я пытаюсь решить приведенное ниже нелинейное уравнение
Изображение

Таким образом, аналитический якобиан должен быть

Изображение

Учитывая тот факт, что решением является x=2, y=3, результирующий якобиан должен быть таким;

Код: Выделить всё

[[ 7. 2.],
[27. 37.]]
Минимальный рабочий пример

Код: Выделить всё

import numpy as np
from scipy.optimize import fsolve

def func(state):
x, y = state
return np.array([
x*x + x*y - 10,
y + 3*x*y*y - 57
])

root, infodict, ier, msg = fsolve(func, [1, 1], full_output=1)

infodict
{
'nfev': 17,
'fjac': array([[-0.37752111, -0.92600098],
[ 0.92600098, -0.37752111]]),
'r': array([-19.75658594, -31.31465043, -10.37441936]),
'qtf': array([-3.76551619e-10, -1.76781500e-10]),
'fvec': array([ 2.13162821e-14, -4.19220214e-13])
}
Что я пробовал до сих пор.
Я пытался создать полный R из заданного верхнего треугольного R и выполнить инверсию матрицы.

Код: Выделить всё

R = np.zeros((2, 2))
r = infodict['r']
Q = infodict['fjac'].T

R[0,0] = r[0]
R[0,1] = r[1]
R[1,1] = r[2]

J = Q.T @ R
Возможно, я двигаюсь в совершенно неправильном направлении, поскольку результат, который я получаю, сильно отличается от того, что я ожидал.
Может ли кто-нибудь пролить свет на этот вопрос? Мне нужен только один элемент якобиана, если это проще, чем восстанавливать весь якобиан.
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/798 ... an-from-qr
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»