2016-07-28 3 views
4

Я использую NumPy для операций над матрицами, для вычисления матрицы A * матрицы B, следа матрицы и т. Д. И элементы моих матриц являются целыми числами. Но я хочу знать, есть ли возможность работать с матрицами многочленов. Так, например, я могу работать с такими матрицами, как [x,y;a,b], а не [1,1;1,1], и когда я вычисляю трассировку, он предоставляет мне полином x + b, а не 2. Есть ли в NumPy некоторый полиномиальный класс, с которым могут работать матрицы?Матрица полиномиальных элементов

ответ

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] 
+0

Большое спасибо! – Aleksa