使用 octave syms 包将变量表示为矩阵

计算科学 矩阵 八度
2021-12-21 20:52:02

我想使用 syms 包为我做一些代数,但基线假设似乎是变量是标量。我想将一些变量表示为矩阵。这将改变符号输出/计算。例如:逆不是除法,运算不是全可交换的,事物可以转置。下面我已经说明了一些我想做的事情。

syms x
b=(x' * x)^(-1)
b=(x' * x)^(-1) * x

我希望这段代码将 'x' 视为一个矩阵,这样我应该得到,并且不会有任何简化。但是,输出用于第一行和第二行。有没有办法在八度音阶中做到这一点?(XX)1X1/x^21/x

2个回答

我不认为 Octave 的 syms 包支持这种矩阵代数运算,但你可以在Mathematica中做到这一点。

编辑:也在Sympy中。

您可以定义矩阵的元素,然后按预期进行其余的计算。

例如:

syms a b c d
x = [a b; c d]
y = (x' .* x)^(-1)
z = y * x

编辑: 我找到了一个相关的帖子,我在此编辑的第一部分中使用了它。

另一种方法是创建一个确定大小的矩阵:

a = sym('a' ,[2 3])

转置a'按预期工作。

我也试过:

n = sym('n')
m = sym('m')
a = sym('a' ,[n m])

它创建了矩阵a但是,当我尝试时,a'我收到一条错误消息。