当我们有一个矩阵而不是一个向量时,求解矩阵方程

时间:2017-12-26 16:18:02

标签: maple

我可以在下面的矩阵方程中找到矩阵B吗?

AB=C
A is n*m
B is m*m
C is n*m

换句话说,我有A和C,我正在寻找B

3 个答案:

答案 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>nm=nm<n

而且我们不知道您的线性系统是否过度确定,或者是不确定,还是有一个确切的解决方案,等等。

可能有多个确切的解决方案。可能没有确切的解决方案。您可能正在寻找解决方案(虽然不是一个精确的解决方案)可以最大限度地减少错误。

尝试使用以下Maple代码进行试验,对于上述三种情况,请使用mn的值。 (代码扰乱了确切的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);