我想使用 syms 包为我做一些代数,但基线假设似乎是变量是标量。我想将一些变量表示为矩阵。这将改变符号输出/计算。例如:逆不是除法,运算不是全可交换的,事物可以转置。下面我已经说明了一些我想做的事情。
syms x
b=(x' * x)^(-1)
b=(x' * x)^(-1) * x
我希望这段代码将 'x' 视为一个矩阵,这样我应该得到,并且不会有任何简化。但是,输出用于第一行和第二行。有没有办法在八度音阶中做到这一点?1/x^21/x
我想使用 syms 包为我做一些代数,但基线假设似乎是变量是标量。我想将一些变量表示为矩阵。这将改变符号输出/计算。例如:逆不是除法,运算不是全可交换的,事物可以转置。下面我已经说明了一些我想做的事情。
syms x
b=(x' * x)^(-1)
b=(x' * x)^(-1) * x
我希望这段代码将 'x' 视为一个矩阵,这样我应该得到,并且不会有任何简化。但是,输出用于第一行和第二行。有没有办法在八度音阶中做到这一点?1/x^21/x
我不认为 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'我收到一条错误消息。