Я использую NumPy для операций над матрицами, для вычисления матрицы A * матрицы B, следа матрицы и т. Д. И элементы моих матриц являются целыми числами. Но я хочу знать, есть ли возможность работать с матрицами многочленов. Так, например, я могу работать с такими матрицами, как [x,y;a,b]
, а не [1,1;1,1]
, и когда я вычисляю трассировку, он предоставляет мне полином x + b, а не 2. Есть ли в NumPy некоторый полиномиальный класс, с которым могут работать матрицы?Матрица полиномиальных элементов
4
A
ответ
2
Один из вариантов заключается в использовании SymPy Matrices module. SymPy - это символическая библиотека математики для Python, которая вполне совместима с NumPy, особенно для простых задач манипуляции матрицами, таких как это.
>>> from sympy import symbols, Matrix
>>> from numpy import trace
>>> x, y, a, b = symbols('x y a b')
>>> M = Matrix(([x, y], [a, b]))
>>> M
Matrix([
[x, y],
[a, b]])
>>> trace(M)
b + x
>>> M.dot(M)
[a*y + x**2, a*b + a*x, b*y + x*y, a*y + b**2]
Большое спасибо! – Aleksa