Определитель матрицы Якоби точек сетки

У меня есть функция, в которой ее якобиан является матрицей 2x2, я вычислил ее для любого вектора (teta1,teta5), а затем вычислил якобиан.

from numpy import linspace, meshgrid
from numpy import linalg as LA
import numdifftools as nd

tetas = [np.radians(40),np.radians(-10)]
Ja,Jb = nd.Jacobian(f_xyz_A),nd.Jacobian(f_xyz_B)
J = block_diag(Ja(tetas), Jb(tetas))
print("J is:",J)
print("J determinant",LA.det(J))

Теперь у меня есть Meshgrid

t1,t5 =  
np.radians(np.linspace(-50,50,100)),np.radians(np.linspace(-50,50,500))
np.errstate(invalid='ignore')
TETA1, TETA5 = meshgrid(t1,-t5,indexing='ij')

Ja,Jb = nd.Jacobian(f_xyz_A),nd.Jacobian(f_xyz_B)
J = block_diag(Ja(tetas), Jb(tetas))
determinant = LA.det(J([TETA1, TETA5]))

в которой я хотел бы оценить определитель Якобиана, однако, как вы, возможно, знаете, nd.Jacobian не поддерживает вещание и векторизацию, и, похоже, здесь должен быть установлен цикл! Как вы можете видеть, я хотел бы, чтобы моя матрица Якоби идеально вписывалась в трехмерный массив в зависимости от входов Meshgrid, но я понятия не имею, как это сделать, не нашел ничего полезного ни вокруг...

У любого тела есть подсказка? Спасибо за любой вклад.

0 ответов

Другие вопросы по тегам