2

我熟悉 sympy、matlab 符号包、reduce,并尝试过其他一些计算机代数系统。然而,据我所知,他们似乎都不能在可变大小的矩阵上做代数——它们只能处理固定大小的矩阵。

有没有可以为可变大小的矩阵做代数?我知道会有相当多的总案例,但我觉得有很多是可行的,仅仅是因为可以轻松地使用 R^nxn 中的矩阵进行许多简化/代数。

可以在其中许多中仅使用非交际代数元素,因此涵盖了矩阵的加法和 Hadamard 乘积,这很有用并且是一个开始。然而,它涵盖了对矩阵的实际操作的一小部分(例如,转置、求逆、特征值分解、在 R^nxm 中使用矩阵等)。有没有更通用的软件?

4

1 回答 1

0

SymPy 有一个执行此操作的矩阵表达式模块。例子:

>>> from sympy import MatrixSymbol, Matrix, symbols
>>> n, m = symbols('n m', integer=True)
>>> X = MatrixSymbol('X', n, m)
>>> Y = MatrixSymbol('Y', m, n)
>>> (X*Y).T
Y'*X'

矩阵表达式可以具有符号大小(如nand m)或显式整数大小,在这种情况下,它们可以与显式矩阵组合。

还值得注意的是,我链接到的文档页面中没有记录很多内容,因此请查看https://github.com/sympy/sympy/tree/master/sympy/matrices/expressions为完整的功能。

于 2015-11-23T17:24:23.190 回答