¿Cuál es más lento entre: encontrar el inverso de una matriz y el determinante de una matriz? ¿Por qué?

No sé por qué todos aquí parecen estar diciendo que encontrar el inverso es más lento que encontrar el determinante. De hecho, tienen aproximadamente la misma complejidad temporal, aunque realmente depende del algoritmo que use para cada uno.

De hecho, si usa el método de eliminación de Gauss-Jordan para encontrar el inverso y usa la expansión de Laplace para encontrar el determinante, entonces encontrar el inverso es más rápido: es [matemáticas] O (n ^ 3) [/ matemáticas] versus lo terrible [matemáticas] O (n!) [/ ​​matemáticas] para determinantes. El número [math] n [/ math] aquí es el tamaño de la matriz. (Tenga en cuenta que [math] n!> N ^ 3 [/ math] para todos [math] n \ geq 6 [/ math].) Por supuesto, no estoy siendo justo aquí, ya que no estoy comparando más métodos eficientes para cada operación.

Por ejemplo, uno puede usar una variante de eliminación gaussiana para encontrar el determinante de una matriz. Todo lo que necesitamos es ‘reducir’ la matriz a forma triangular, luego multiplicar las entradas diagonales. Es importante darse cuenta aquí de que solo podemos usar ‘operaciones de fila’ que no cambien demasiado el determinante. Para ser específicos, debemos tener esto en cuenta:

  1. Intercambiar dos filas consecutivas invierte el signo del determinante;
  2. Agregar un múltiplo escalar de una fila a otra fila no cambia el determinante;
  3. Multiplicar una fila por un escalar multiplica el determinante por el mismo escalar.

Vamos a ilustrar este método encontrando el determinante

[matemáticas] \ begin {vmatrix} 1 y 2 y 4 \\ -1 y 3 y 5 \\ 6 y 1 y -2 \ end {vmatrix}. [/ math]

Agregamos dos veces la tercera fila a la primera fila:

[matemáticas] \ begin {vmatrix} 13 y 4 y 0 \\ -1 y 3 y 5 \\ 6 y 1 y -2 \ end {vmatrix}. [/ matemáticas]

Luego agregamos [math] 5/2 [/ math] de la tercera fila a la segunda fila:

[matemáticas] \ begin {vmatrix} 13 & 4 & 0 \\ 14 & \ frac {11} {2} & 0 \\ 6 & 1 & -2 \ end {vmatrix}. [/ math]

Luego agregamos [math] -8/11 [/ math] de la segunda fila a la primera fila:

[matemáticas] \ begin {vmatrix} \ frac {31} {11} & 0 & 0 \\ 14 & \ frac {11} {2} & 0 \\ 6 & 1 & -2 \ end {vmatrix}. [/ matemáticas]

Por lo tanto, todos estos determinantes son iguales a [matemática] \ frac {31} {11} \ veces \ frac {11} {2} \ veces (-2) = – 31 [/ matemática].

Este algoritmo es [matemático] O (n ^ 3) [/ matemático], la misma complejidad que el método de eliminación de Gauss-Jordan utilizado para encontrar inversos.

En la práctica, se utilizan algoritmos aún mejores para obtener determinantes, y mejores algoritmos para obtener inversas de matriz. Resulta que encontrar el determinante de una matriz todavía tiene aproximadamente la misma complejidad algorítmica que encontrar su inverso: uno no es más lento que el otro.

Lo primero que me viene a la mente:

Realice la descomposición LU y tendrá una matriz triangular inferior L y una matriz triangular superior U. La complejidad del tiempo es [matemática] n ^ 3 [/ matemática] en una matriz [matemática] n X n [/ matemática]. Esto se debe a que realiza cálculos [matemáticos] O (n ^ 2) [/ matemáticos] (restando elementos con fila x por fila y) [matemática] n [/ matemática] veces (Columna 1 con 2,3, .. n. Columna 2 con 3,4,5, .. n, y finalmente columna n-1 con n).

Ahora puede encontrar su determinante a través de:

  • Inversa: Encontrar la inversa de la matriz L o U es bastante simple. Si un número no es cero, simplemente niegue su signo. Tendrás que mirar los números [matemáticos] n ^ 2 [/ matemáticos]. Por lo tanto, esto se puede hacer solo en [matemáticas] O (n ^ 2) [/ matemáticas] que todavía es menor que [matemáticas] O (n ^ 3) [/ matemáticas]
  • Determinante: realiza un seguimiento del número de intercambios de filas. Digamos que esto es [matemáticas] m [/ matemáticas]. Encontrar el determinante de una matriz triangular (tanto superior como inferior) es sencillo. Simplemente multiplicando los elementos en diagonal.

    Usando la información anterior:
    [matemática] Det (A) = (-1) ^ m Det (L) Det (U) [/ matemática]

    Con términos de orden inferior que no afectan la complejidad, incluso esto da lugar a [matemáticas] O (n ^ 3) [/ matemáticas]

Como saben, siempre intentamos impulsar mejores y mejores complejidades de tiempo. Puede ver que la forma más rápida de encontrar el determinante y también la inversa es [matemática] O (n ^ {2.373}) [/ matemática]

Complejidad computacional de las operaciones matemáticas.

Encontrar determinante de matriz es fácil que Inverso de matriz.

El determinante de 2 órdenes se puede resolver en pocos pasos y para el determinante de 3 órdenes, también hay un método de acceso directo.

El determinante de 4 y más órdenes se calcula mediante el determinante de 2 y 3 órdenes.

Por el contrario, para calcular el inverso de la matriz, encontrar el determinante de la matriz es el primer paso.

Así es como funciona:

Determinante de matriz

Inverso de matriz

Para matrices densas, el enfoque prototípico tanto para la inversión de la matriz como para el cálculo determinante es la eliminación gaussiana, que es un proceso [matemático] O (n ^ 3) [/ matemático]. En ambos casos, configura la matriz en forma escalonada. Luego, puede calcular el producto de los elementos diagonales ([matemática] O (n) [/ matemática]) o realizar una sustitución hacia atrás ([matemática] O (n ^ 2) [/ matemática]).

Desde un punto de vista puramente asintótico, estas operaciones tienen un costo equivalente. Desde un punto de vista práctico, calcular el determinante requiere un poco menos de operaciones (de hecho, es un subproducto de la inversión de la matriz).

Son aproximadamente la misma complejidad de tiempo.

Hay varias descomposiciones de matrices para encontrar el inverso de una matriz alrededor de [math] \ mathcal {O} (n ^ {3}) [/ math]

normalmente para tomar el determinante es [math] \ mathcal {O} (n!) [/ ​​math]

en su lugar tome una matriz [matemática] A = QR [/ matemática]

[matemática] det (A) = det (QR) = det (Q) det (R) = det (R) [/ math]

el determinante de una matriz unitaria 1. Y el determinante de R es el producto de la diagonal. Por lo tanto, es principalmente la complejidad del tiempo de la descomposición QR.

Encontrar el inverso es mucho más lento.

El determinante es solo una serie de operaciones aritméticas. Si encontramos lo inverso tan rápido, esencialmente podríamos resolver

[math] \ mathbf {A} \ mathbf {x} = \ mathbf {b} [/ math]

rápidamente, que no podemos.

Para matrices de dimensiones superiores esto es muy difícil de hacer de manera eficiente.