Loading [MathJax]/jax/element/mml/optable/BasicLatin.js

6 votos

¿Hay una manera fácil de calcular el determinante de esta matriz de bloque?

M=[X[I\I\-I\-I] [IIII]O]

¿Hay una manera fácil de calcular el determinante de la matriz del bloque anterior? ¿O, al menos, puedo saber si det si X es positiva definida?

X es, por ejemplo, una matriz de 8 \times 8 I es la identidad de 2 \times 2 y O la la matriz de 2 \times 2 cero.

6voto

Rodrigo de Azevedo Puntos 608

\mathrm M := \left[\begin{array}{c|c} \,\mathrm X & \mathrm C\\ \hline -\mathrm C^\top & \,\,\mathrm O_2\end{array}\right]

where n \times n matrix \rm X is positive definite and, thus, invertible. Using Gaussian elimination,

\left[\begin{array}{c|c} \mathrm I_n & \mathrm O_{n \times 2}\\ \hline \mathrm C^\top \mathrm X^{-1} & \mathrm I_2\end{array}\right] \left[\begin{array}{c|c} \,\mathrm X & \mathrm C\\ \hline -\mathrm C^\top & \,\,\mathrm O_2\end{array}\right] = \left[\begin{array}{c|c} \mathrm X & \mathrm C\\ \hline \quad\mathrm O_{2 \times n} & \,\,\mathrm C^\top \mathrm X^{-1} \mathrm C\end{array}\right]

Since the determinant of a block triangular matrix is the product of the determinants of the diagonal blocks,

\det (\mathrm M) = \det (\mathrm X) \cdot \det \Big(\mathrm C^\top \mathrm X^{-1} \mathrm C \Big)

where the Schur complement \mathrm C^\top \mathrm X^{-1} \mathrm C is a 2 \times 2 matrix (whose determinant is easy to compute). Note that \det (\mathrm X) > 0 and that n \times 2 matrix \mathrm X^{-1} \mathrm C puede ser calculada usando eliminación Gaussiana.


El uso de SymPy para verificar:

>>> from sympy import *
>>> n = Symbol('n', integer=True)
>>> X = MatrixSymbol('X',n,n)
>>> C = MatrixSymbol('C',n,2)
>>> O = ZeroMatrix(2,2)
>>> M = BlockMatrix([[   X,  C],
                     [-C.T,  O]])

La construcción de la eliminación de la matriz,

>>> E = BlockMatrix([[     Identity(n), ZeroMatrix(n,2)],
                     [C.T * Inverse(X),     Identity(2)]])

La realización de la eliminación Gaussiana,

>>> block_collapse(E * M)
Matrix([[X,         C],
        [0, C'*X^-1*C]])

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X