Основываясь на примере, который я нашел здесь, я пытаюсь создать функцию из диагональной матрицы, которая была создана с помощью sumpy.diag
myM = Matrix([
[x1, 4, 4],
[4, x2, 4],
[4, 4, x3]])
Если это было создано с использованием этой процедуры, например:
import sympy as sp
import numpy as np
x1 = sp.Symbol('x1')
x2 = sp.Symbol('x2')
x3 = sp.Symbol('x3')
X = sp.Matrix([x1, x2, x3])
myM = 4 * sp.ones(3, 3)
sp.diag(*X) + myM - sp.diag(*np.diag(myM))
теперь я хотел бы создать функцию, используя lambdify
of ufuncify
, которая принимает в качестве ввода значение numpy.array
или length 3 (например, np.array([0.1,0.2,0.3])
) и дает результат в виде матрицы в соответствии с myM
myM = Matrix([
[0.1, 4, 4],
[4, 0.2, 4],
[4, 4, 0.3]])
В конце концов мне нужно создать матрицу якобиана, символически используя этот метод: И так как функциональная форма может меняться во время вычисления, то использование Якобиана, рассчитанное символически, было бы очень полезно.