任何人都可以告诉我,如果有一个matlab函数来解决以下等式来找到 X :
A X A = B
A , B 和 X 都是平方矩阵(n乘n)。
其他信息:
X和B都是对称的。
B和X肯定是肯定的,
DET(A)= 0。
答案 0 :(得分:0)
没有解决方案,因为左侧的行列式是0(因为det(A)= 0)而右侧的行列式是正的(因为B是正定的)。
答案 1 :(得分:-1)
一般来说,没有解决方案。特别是如果B是单数的,那么只有一个解决方案,
det( AXA ) = det(A)*det(X)*det(A) = 0
进行的一种方法是对角线A,即找到正交U和对角线D使得
A = U*D*U'
如果我们将其替换为等式,我们得到(*)
D*X~*D = B~
其中
X~ = U'*X*U
B~ = U'*B*U
为简单起见,假设D的形式为
D = ( d 0 )
( 0 0 )
其中d是非奇异的。如果X~和B~被一致地划分为
X~ = (X11 X12)
(X21 X22)
B~ = (B11 B12)
(B21 B22)
然后从(*)得到
( d*X11*d 0 ) = ( B11 B12 )
( 0 0 ) ( B21 B22 )
因此,如果B12,B21和B22全部为零,那么只有一个解决方案,然后
X = U*( X11 X12 ) * U'
( X21 X22 )
,其中
X11 = inv(d)*B11*inv(d)
和X12 X21和X22是任意的