我可以在下面的矩阵方程中找到矩阵B吗?
AB=C
A is n*m
B is m*m
C is n*m
换句话说,我有A和C,我正在寻找B
答案 0 :(得分:0)
您应该查看广义逆和 Moore-Penrose逆概念。
B可能不存在,可能有多种解决方案。
另一种方法是每列求解色谱柱。
答案 1 :(得分:0)
(根据需要定义A和C)
> with(LinearAlgebra):
> A:=Matrix([[0,0,0],[0,0,0],[0,0,0]]);
> C:=Matrix([[0,0,0],[0,0,0],[0,0,0]]);
> Multiply(A^(-1),C)
答案 2 :(得分:0)
您还没有告诉我们m>n
或m=n
或m<n
。
而且我们不知道您的线性系统是否过度确定,或者是不确定,还是有一个确切的解决方案,等等。
可能有多个确切的解决方案。可能没有确切的解决方案。您可能正在寻找解决方案(虽然不是一个精确的解决方案)可以最大限度地减少错误。
尝试使用以下Maple代码进行试验,对于上述三种情况,请使用m
和n
的值。 (代码扰乱了确切的C=A.B
,这样当扰动的C
将导致没有精确的解决方案时,你可以看到获得近似解的效果。)
restart;
randomize():
with(LinearAlgebra):
# Experiment with the following computations, using case each of:
# 1) m > n
# 2) n > m
# 3) m = n
m,n:=2,3;
A:=RandomMatrix(n,m, generator=-10..10);
B:=RandomMatrix(m,m, generator=-10..10);
C:=A.B;
C[2,..]:=C[2,..]*1.01: # add some error
C[..,2]:=C[..,2]*1.01: # add some error
C;
Bhat1:=LeastSquares(A, C, method=SVD);
A.Bhat1, C;
Norm(A.Bhat1 - C);
Bhat2:=LinearAlgebra:-MatrixInverse(A) . C;
A.Bhat2, C;
Norm(A.Bhat2 - C);