首页 文章

计算机代数系统支持可变大小的矩阵

提问于
浏览
2

我熟悉sympy,matlab符号包,减少,并尝试过其他一些计算机代数系统 . 但是,据我所知,它们似乎都不能在可变大小的矩阵上进行代数 - 它们只能用于固定大小的矩阵 .

是否可以为可变大小的矩阵做代数?我知道会有相当多的重大案例,但我觉得有很大一部分是可行的,因为很容易进行许多简化/代数,可以用R ^ nxn中的矩阵手工完成 .

可以在许多这些中使用非共同代数元素,因此涵盖了矩阵的加法和Hadamard乘积,这是有用的和开始 . 然而,它覆盖了实际使用矩阵的一小部分(例如,转置,反转,特征值分解,使用R ^ nxm中的矩阵等) . 是否存在更通用的软件?

1 回答

  • 0

    SymPy有一个matrix expressions模块可以做到这一点 . 例:

    >>> 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'
    

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

    它's also worth noting that there are a lot of things that aren' t记录在我链接到的doc页面中,因此请查看https://github.com/sympy/sympy/tree/master/sympy/matrices/expressions以获取完整功能 .

相关问题