【问题标题】:Solving a linear system with matrices用矩阵求解线性系统
【发布时间】:2018-01-17 10:56:06
【问题描述】:

谁能告诉我是否有一个matlab函数来求解以下方程以找到X

AXA=B

其中ABX都是方阵(n×n)

补充资料:

  • A X 和 B 都是对称的。

  • B 和 X 是肯定的,

  • det(A)=0。

【问题讨论】:

  • 特征分解:en.wikipedia.org/wiki/…
  • 您能否说得更准确些。 X 不是对角线,它也是一个矩阵。
  • 您要进行 LU 分解吗?
  • X = inv(A)*B*inv(A) 根据矩阵方程的定义......如果A 没有逆矩阵,你将很难找到解决方案,因为det(A) = 0。遇到困难,我的意思是要么没有解决方案,要么有无限多的解决方案(相关,see here
  • 我投票结束这个问题,因为这是一个数学问题,而不是编程问题。

标签: matlab math linear-algebra


【解决方案1】:

没有解,因为左边的行列式是 0(因为 det(A) = 0)而右边的行列式是正的(因为 B 是正定的)。

【讨论】:

    【解决方案2】:

    一般不会有解决方案。特别是只有当 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是任意的

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-18
      • 1970-01-01
      • 2017-12-13
      • 2013-01-12
      • 1970-01-01
      • 2013-06-12
      相关资源
      最近更新 更多