Я хочу создать функцию символьной матрицы в sympy, а затем ламбдифицировать ее для оценки в numpy. Давайте попробуем простую функцию, которая возвращает именно то, что я ей подаю, f(x) = x, но в конечном итоге я хотел бы сделать что-то вроде следа матрицы или что-то более причудливое.
Это нормально, когда x является sympy.Symbol:
import sympy as sy
from sympy import Matrix, MatrixSymbol
x = sy.Symbol('x')
f = sy.lambdify(x, x, 'numpy')
f(Matrix((3,))) # returns Matrix([[3]])
Но не тогда, когда x является sympy.MatrixSymbol:
import sympy as sy
from sympy import Matrix, MatrixSymbol
x = sy.MatrixSymbol('x', 2, 2)
f = sy.lambdify(x, x, 'numpy')
f(Matrix((3,))) # should return Matrix((3,)), right?
Он говорит мне:
lambda() takes no arguments (1 given)
Спасибо за любые идеи или рекомендации!