Algoritmo para decomposição LU
Construção e análise do algoritmo para a decomposição LU
Vamos lá?
Na aula anterior vimos como o processo de escalonamento deu origem à decomposição LU, através de um exemplo. Nesta aula vamos escrever o algoritmo para a decomposição LU e analisá-lo.
- 1
- 2
- 3
- 4
Sempre é possível computar a decomposição LU de uma matriz quadrada?
Se a matriz não tiver decomposição LU, o que acontecerá ao aplicar o algoritmo?
Qual o custo da decomposição LU, em termos no número de operações de ponto flutuante?
O experimento numérico do final do vídeo...
- A. refutou o cálculo do número de operações de ponto flutuante feito para o algoritmo.
- B. validou o cálculo do número de operações de ponto flutuante feito para o algoritmo.
- C. mostrou que o tempo de execução não é proporcional ao número de operações de ponto flutuante no algoritmo.
- D. indicou que outros fatores também contribuem para o tempo de execução, além do número de operações de ponto flutuante do algoritmo.
Nem toda matriz tem decomposição LU. O teorema a seguir caracteriza exatamente quais matrizes a têm, em termo de seus menores principais. Um menor principal de ordem
Teorema: Seja
Talvez você fique com a impressão de que antes de tentar aplicar o algoritmo para computar a decomposição LU é necessário verificar se matriz atende às condições do teorema. Será? Observe o algoritmo para decomposição LU apresentado no vídeo.
-
- Para
- Se
então não tem decomposição LU. FIM. - Para
-
-
- Para
-
Na prática, caso a matriz
Na aula passada, vimos que um sistema linear qualquer pode ser resolvido em duas etapas: (1) computa-se a decomposição LU e (2) resolvem-se dois sistemas lineares triangulares. Já vimos em outra aula o algoritmo para a resolução de um sistema linear triangular superior e contamos o número de operações de ponto flutuante realizadas. Para saber o custo total da resolução de um sistema linear geral, resta computar quantas operações de ponto flutuante são consumidas no algoritmo acima.
No passo 2.2.3.1, duas operações são realizadas. Como esse passo é repetido para
Portanto, o custo para resolver o sistema linear original (soma do custo da decomposição LU com o custo dos dois sistemas triangulares) é
Para verificar se de fato o tempo computacional para o cálculo da decomposição é LU é diretamente proporcional ao número de operações de ponto flutuante, foi realizado um experimento numérico. Para matrizes aleatórias de diferentes dimensões, foi medido o tempo gasto na decomposição LU, computada pela rotina interna do Octave. Essa mediação de tempo foi repetida 100 vezes em cada experimento e o valor considerado foi a média de todas essas repetições. Os dados assim coletados estão no gráfico abaixo.
Usando o a técnica de ajuste de curvas por quadrados mínimos, descobriu-se que o tempo de cálculo da decomposição LU, em função da dimensão da matriz, é dado por
Para a próxima aula, veremos um exemplo computacional pequeno onde a resolução do sistema linear não sai como o esperado.
Referência
Lloyd N. Trefethen e David Bau, III. Numerical Linear Algebra. SIAM, 1997.
1. Compute a decomposição LU e utilize-a para resolver os sistemas lineares abaixo.
A solução do primeiro sistema é
2. Verifique que
A matriz
3. Considerando o seu computador, qual a ordem da maior matriz quadrada capaz de ser armazenada em memória (cada número em ponto flutuante ocupa 4 bytes)? Para simplificar, suponha que 100% da memória do seu computador está disponível para isso. Quantas operações de ponto flutuante seriam necessárias para computar a decomposição LU dessa matriz? Usando a fórmula para