Fatoração PLU
Teoria
Lembra de quando vimos as técnicas de pivoteamento que iriam resolver aquele problema da eliminação de Gauss?
Então, na fatoração nós precisamos aplicar a eliminação de Gauss, ou seja, novamente podemos ter o problema de um pivô ser igual ou muito próximo de zero! E é aí que entra a fatoração , que é simplesmente a fatoração com o pivoteamento!
A única diferença é que só vamos estudar o pivoteamento parcial (que bom né!). O que acontece agora é que teremos uma terceira matriz que guardará essa informação da troca de linhas. Daí o nome fatoração .
E como obtemos essa matriz ? É bem simples na verdade, é só pegarmos a matriz identidade e fazermos as mesmas trocas de linha que fizermos durante a eliminação de Gauss só que de trás pra frente. É como se tivéssemos desfazendo as trocas. Vamos ver um exemplo :
Aplicando o pivoteamento parcial, fazemos :
E a matriz de pivoteamento será dada por:
Que é exatamente a matriz identidade com as primeiras duas linhas trocadas. Se mais alguma troca tivesse sido feita depois teríamos de aplicar essa última troca primeiro para dar certo!
Então, seja o sistema linear , temos:
Onde é a inversa de , que é obtida simplesmente fazendo as mudanças de linhas na matriz identidade na mesma ordem em que fizemos no escalonamento. Ou seja, para obtermos a matriz da fatoração aplicamos as mudanças de linha na ordem inversa. Se quisermos resolver o sistema encontramos aplicando as mudanças de linha na ordem certa. Assim, precisamos resolver dois sistemas triangulares:
E assim vamos obter a solução do nosso sistema.
Obs.: O chato aqui é que se forem feitas trocas de linhas no depois de já termos definido parte da matriz , esta será alterada. Então eu recomendo ir completando a matriz junto da eliminação de Gauss, só não pode aplicar o escalonamento nos multiplicadores sem querer! Vai ficar mais claro no exemplo:
Encontre a fatoração do sistema abaixo:
Passando para a forma matricial:
Aplicando a eliminação de Gauss com pivoteamento parcial na matriz :
:
:
Entendeu o que eu quis dizer agora? Nós vamos botando os multiplicadores junto, mas marcando que eles não fazem parte da matriz em si! Aqui eu estou pondo em chaves, mas vocês podem marcar isso de outra forma! Só não pode confundir haha.
:
Já está pivoteado, então continuamos a eliminação.
:
Então ficamos com:
Que foi formada da matriz identidade com as linhas e trocadas.
Prontinho! Se tivéssemos que resolver o sistema era só botarmos na forma e resolver como de costume. Repare que quando fazemos apenas uma troca de linhas, temos .
Algoritmo
Novamente podemos dividir esse algoritmo em três fases bem distintas. Fase 1 será a eliminação de Gauss. Só que agora com o pivoteamento! E além das matrizes e essa fase também teria como saída a matriz . A Fase 2 receberia a matriz vinda da Fase 1 e o vetor para resolver o sistema , que seria resolvido não por retrosubstituição, mas por substituição simples. A Fase 3 receberia o resultado da fase , o vetor , e a matriz da Fase 1, e aplicaríamos nosso algoritmo da retrosubstituição. Vamos lá então:
Algoritmo da Fase 1:
Passo 1. Dados iniciais (o que seu programa vai receber de você):
a. Matriz quadrada
Passo 2. Definimos como a matriz identidade
Passo 3. Percorremos as linhas de com uma variável (de a ).
Passo 4.
Passo 5.
Passo 6.
Passo 7. Se , então e .
Passo 8.
Passo 9. Enquanto , volte para o Passo 6. Caso contrário, continue.
Passo 10. Troque as linhas e de e de .
Passo 11. Escolher pivô da -ésima linha de e armazenar na variável .
Passo 12. Para cada ‘’, percorremos as linhas de de até com uma variável .
Passo 13. Definimos o multiplicador .
Passo 14. Guardar na posição linha e coluna de .
Passo 15. Para cada ‘’, percorremos as colunas de até com uma variável .
Passo 16.
Passo 17. Depois que acabarem todos os do Passo 4, é importante separarmos as matrizes e da matriz . A matriz será uma matriz triangular inferior com na diagonal e elementos com iguais ao da matriz . Já a matriz será uma matriz triangular superior com os elementos com iguais ao da matriz .
Esse último passo é necessário por causa daquela história de armazenar os multiplicadores na própria matriz que estamos escalonando. Então temos que separar no final. Repare também que como o objetivo aqui é resolver sistemas no algoritmo é o nosso da teoria já que fazemos as mudanças na ordem que elas acontecem.
Pronto, tá feito o nosso algoritmo. Daí vamos tirar nossas matrizes , e . Agora o algoritmo da Fase 2 segue igual ao da fatoração , mas recebendo o vetor ao invés de , então não vale a pena escrevê-lo aqui de novo.
Para a Fase 3 também temos exatamente a mesma coisa da fatoração .
Algoritmo
Exercícios Resolvidos
Exercício Resolvido #1
Richard L. Burden e J. Douglas Faires, Numerical Analysis, 9ª ed. Brooks/Cole, Cengage Learning, pag 409, exercício 3.
Considere as seguintes matrizes. Encontre a matriz de permutação tal que pode ser fatorada no produto , onde é uma matriz triangular inferior com s em sua diagonal e é triangular superior.
Passo 1
A primeira coisa que temos que perceber é que não devemos usar a fatoração em si! Ele apenas quer que façamos o pivoteamento quando for necessário para a fatoração ! Vamos lá.
Passo 2
Realizando a Eliminação de Gauss:
:
Repare que agora, para continuarmos com o processo precisamos fazer a troca das linhas.
:
Pronto. Repare que aí já terminamos o processo da fatoração. Mas ele não está interessado nas matrizes e , apenas na que é dada pela matriz identidade com as linhas e trocadas.
Passo 3
Realizando a Eliminação de Gauss:
:
:
:
Trocamos apenas as linhas e , então:
Passo 4
Realizando a Eliminação de Gauss:
:
:
:
:
:
Trocamos apenas as linhas e , então:
Passo 5
Realizando a Eliminação de Gauss:
:
:
:
:
:
Trocamos as linhas e , e em seguida as linhas e , então:
Resposta
Exercício Resolvido #2
Richard L. Burden e J. Douglas Faires, Numerical Analysis, 9ª ed. Brooks/Cole, Cengage Learning, pag 411, exercício 9.
Obtenha a fatoração na forma para as seguintes matrizes.
Passo 1
Realizando a Eliminação de Gauss com pivoteamento parcial:
:
:
Então ficamos com:
Passo 2
Realizando a Eliminação de Gauss com pivoteamento parcial:
:
:
:
:
Então ficamos com:
Passo 3
Realizando a Eliminação de Gauss:
:
:
:
:
:
Reparou o que aconteceu?? Os multiplicadores trocaram de lugar junto com as linhas! É nesses casos que armazenar os multiplicadores junto da matriz que estamos escalonando é útil pois evita problemas no final!
:
Eita, várias trocas de linha né? Vamos ver com calma como ficou nossa matriz . Lembrando que temos que fazer as trocas de trás pra frente:
Então ficamos com:
Passo 4
Realizando a Eliminação de Gauss:
:
:
:
:
:
:
Então ficamos com:
Resposta
Exercício Resolvido #3
Márcia A. Gomes Ruggiero e Vera Lúcia da Rocha Lopes, Cálculo Numérico – Aspectos Teóricos e Computacionais, 2ª ed. São Paulo: MAKRON Books, 1996, pag 185, exercício 19.
Justifique se for verdadeira ou dê um contraexemplo se for falsa a afirmação:
“Dada uma matriz , , sua fatoração , obtida com estratégia de pivoteamento parcial, é tal que todos os elementos da matriz têm módulo menor ou igual a .”
Passo 1
Essa afirmativa é verdadeira! Mas por quê? Bom, quais são os elementos que compõe a matriz ? De forma geral ela é dada por:
Ou seja, ela é uma matriz triangular inferior cuja diagonal é toda igual a e contém os multiplicadores usados na eliminação de Gauss.
Bom, a única coisa que pode ter módulo maior ou igual a são os multiplicadores certo? E como eles são formados? Assim:
onde é o pivô da linha . Como estamos usando a estratégia de pivoteamento parcial, o pivô de uma linha, se comparado com todos os números abaixo dele na coluna, será sempre maior em módulo, e isso é garantido pelo pivoteamento.
Sendo assim, a divisão terá sempre seu módulo menor ou igual a . Logo, a afirmativa é verdadeira.
Resposta
Ei, a resposta está no passo a passo :)
Exercício Resolvido #4
Lista 4 – Professora Luziane – UFRJ – Questão 4
Resolva os sistemas lineares abaixo através da fatoração com estratégia de pivoteamento parcial. Discuta a existência ou não de soluções.
Passo 1
Se liga numa coisa, a matriz do sistema matricial associado é a mesma pros dois casos né? Então vamos achar a decomposição dela:
Aplicando a eliminação de Gauss com pivoteamento parcial:
:
:
:
:
Então ficamos com:
Passo 2
Beleza, agora podemos resolver os sistemas!
Resolvendo :
Lembrando que como só houve uma troca de linhas, !
Resolvendo :
Então a solução é
Como podemos ver, esse sistema tem infinitas soluções ;)
Passo 3
Como a matriz é a mesma não tem necessidade de fatorarmos ela novamente. É só alterar o vetor :
Resolvendo :
Lembrando que como só houve uma troca de linhas, !
Resolvendo :
Opa, olha a última equação! Temos ! Ou seja, esse sistema não tem solução.
Resposta
Não possui solução.
Exercício Resolvido #5
Lista 4 – Professora Luziane – UFRJ – Questão 5
Resolva o sistema linear abaixo através da fatoração com estratégia de pivoteamento parcial:
Passo 1
Primeiro precisamos saber quem é :
Aplicando a eliminação de Gauss com pivoteamento parcial:
:
:
:
:
:
:
:
:
A vai ficar:
Então ficamos com:
Passo 2
Agora é só resolver os sistemas!
Resolvendo :
Resolvendo :
Então a solução é