Tengo este problema en mi libro de texto:
Sugiera un algoritmo eficiente para resolver un sistema de ecuaciones lineales con matriz cíclica de tres diagonales, que tiene la forma: sin intercambiar filas y columnas. Estime la complejidad.
Y no sé cómo abordar esto. Eliminación clásica funcionaría muy eficiente en tiempo con esta matriz, pero el problema es cuando, digamos, quiero eliminar con fila -st que es añadir a segunda fila y cuando . No puedo hacer eso, e incluso si entonces el mismo problema puede ocurrir en algún lugar en medio de este proceso. Además, como dice el texto del problema, no se me permite intercambiar filas o columnas, por lo que no sé si este enfoque se puede solucionar de alguna manera. ¿Alguien puede ayudar?
Respuestas:
No es difícil determinar la complejidad de una eliminación / reducción directa a la forma triangular superior. Tenga en cuenta que la matriz inicial:
se convierte después de un paso de eliminación:
El costo de este paso es constante , y deja una submatriz cíclica de tres diagonales en la esquina inferior derecha. Por lo tanto, la reducción total implicará un costo de . Para resolver un sistema lineal, uno podría realizar las mismas operaciones en el lado derecho, también un costo . Entonces, también se debe realizar una resolución posterior con una matriz triangular superior que tenga como máximo tres entradas distintas de cero por fila, otra tarea . Eso representa la complejidad de resolver sistemas con tales matrices de coeficientes.O(1) (n−1)×(n−1) O(n) O(n) O(n)
fuente