【发布时间】:2016-07-28 11:53:01
【问题描述】:
我正在使用 NumPy 对矩阵进行运算,计算矩阵 A * 矩阵 B、矩阵的轨迹等……我的矩阵的元素是整数。但我想知道的是是否有可能使用多项式矩阵。因此,例如我可以使用矩阵,例如[x,y;a,b],而不是[1,1;1,1],当我计算轨迹时,它为我提供多项式 x + b,而不是 2。NumPy 中是否有一些矩阵可以工作的多项式类和?
【问题讨论】:
我正在使用 NumPy 对矩阵进行运算,计算矩阵 A * 矩阵 B、矩阵的轨迹等……我的矩阵的元素是整数。但我想知道的是是否有可能使用多项式矩阵。因此,例如我可以使用矩阵,例如[x,y;a,b],而不是[1,1;1,1],当我计算轨迹时,它为我提供多项式 x + b,而不是 2。NumPy 中是否有一些矩阵可以工作的多项式类和?
【问题讨论】:
一种选择是使用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]
【讨论】: