professor.luzerna.ifc.edu.brprofessor.luzerna.ifc.edu.br/david-jose/wp-content/... · Created Date:...
Transcript of professor.luzerna.ifc.edu.brprofessor.luzerna.ifc.edu.br/david-jose/wp-content/... · Created Date:...
1/30Prof. MSc. David Roza José[email protected]
2/30Prof. MSc. David Roza José[email protected]
Fatoração LU
Objetivos:
– Compreender que a fatoração LU envolve a decomposição da matriz de
coeficientes em duas matrizes triangulares que podem ser utilizadas para
avaliar diferentes vetores de termos independentes;
– Saber como expressar a Eliminação de Gauss como uma fatoração LU;
– Dada uma fatoração LU, saber avaliar diversos vetores de termos
independentes;
– Reconhecer que o método de Cholesky fornece uma maneira eficiente de
decompor uma matriz simétrica e que a matriz triangular e sua transposta
podem ser utilizadas para avaliar vetores independentes eficientemente;
– Compreender em termos gerais o quê acontece quando utilizamos o operador
“\” no MATLAB para resolver sistemas lineares.
3/30Prof. MSc. David Roza José[email protected]
Motivação
Vimos na aula anterior, através da Eliminação de Gauss, como resolver sistemas do tipo:
Apesar da metodologia ser robusta e eficiente, ela peca quando necessita-se resolver
equações com a mesma matriz de coeficientes [A], mas com termos independentes {b}
distintos.
A Eliminação de Gauss era composta por duas fases: eliminação progressiva e
substituição regressiva. Vimos também que a eliminação progressiva é a fase
computacionalmente mais dispendiosa.
A fatoração LU separa a fase da eliminação progressiva da matriz [A] das manipulações
dos termos independentes {b}. Assim, uma vez que a matriz [A] foi fatorada, diversos
vetores de termos independentes {b} podem ser avaliados de uma maneira eficiente.
Coincidentemente, a Eliminação de Gauss pode ser exposta como uma fatoração LU.
4/30Prof. MSc. David Roza José[email protected]
Visão geral da Fatoração LU
Assim como a Eliminação de Gauss, a fatoração LU necessita de pivotamento para evitar
divisão por zero. Neste overview omitiremos por questão de simplicidade. A equação:
Pode ser reescrita como:
Supondo que este sistema possa ser representado por um sistema triangular superior
cuja notação matricial é
5/30Prof. MSc. David Roza José[email protected]
Visão geral da Fatoração LU
Agora suponha que exista outra matriz diagonal inferior com unidade na diagonal
principal:
E que esta matriz possua a propriedade de que quando o seguinte sistema
For pré-multiplicado por [L], a seguinte igualdade é válida
Da qual podemos inferir duas igualdades:
6/30Prof. MSc. David Roza José[email protected]
Visão geral da Fatoração LU
O que nos gera um algoritmo de dois passos para obter as soluções:
(1) Fatoração: A matriz [A] é fatorada ou “decomposta” numa triangular inferior [L]
e numa triangular superior [U];
(2) Substituição: [L] e [U] são utilizados para determinar a solução {x} para o vetor
de termos independentes {b}. Este passo consiste de outros dois:
● [L]{d} = {b} é utilizado para gerar um vetor intermediário {d} por substituição
progressiva;
● O resultado é substituído em [U]{x} − {d} = 0 e resolvido por substituição
regressiva para {x}.
7/30Prof. MSc. David Roza José[email protected]
Visão geral da Fatoração LU
8/30Prof. MSc. David Roza José[email protected]
Eliminação de Gauss
Vejamos como a eliminação de Gauss pode ser escrita como uma fatoração LU. Apesar
de parecerem não correlatos, a eliminação de Gauss pode ser utilizada para decompor
[A] em [L] e [U]. Isto é visto facilmente para [U], que é o resultado direto da eliminação
progressiva.
Apesar de não ser tão aparente, a matriz [L] também é produzida durante estes passos.
Isso pode ser ilustrado para o sistema abaixo:
9/30Prof. MSc. David Roza José[email protected]
Eliminação de Gauss
O primeiro passo na Eliminação de Gauss é multiplicar a primeira linha pelo fator:
e subtrair o resultado da segunda linha para eliminar a21. De maneira similar, a primeira
linha é multiplicada por
e o resultado subtraído da terceira linha para eliminar a31. O passo final é multiplicar a
segunda linha, agora modificada, por
e subtrair da terceira linha para eliminar a'32.
10/30Prof. MSc. David Roza José[email protected]
Eliminação de Gauss
Agora suponha que nós tenhamos feitos todas essas manipulações na matriz [A]. Se nós
não quisermos mudar as equações, devemos fazer as mesmas operações no vetor de
termos independentes {b}. Mas não existe razão alguma pela qual nós devemos fazer
estas operações simultaneamente. Assim, poderíamos salvar os f's e manipular {b}
depois.
Onde guardaremos os fatores f21, f31 e f32? Toda a ideia por trás da eliminação
progressiva era gerar zeros abaixo da diagonal principal. Assim, podemos guardar os
fatores f's nesses espaços vazios. Após a eliminação progressiva, a matriz [A] pode ser
escrita como:
11/30Prof. MSc. David Roza José[email protected]
Eliminação de Gauss
Esta matriz, de fato, representa o modo de armazenagem mais eficiente da fatoração LU
de [A].
12/30Prof. MSc. David Roza José[email protected]
Exemplo
Efetuar a fatoração LU da seguinte matriz:
Temos o seguinte fator, resultando na seguinte substituição
E na sequência:
13/30Prof. MSc. David Roza José[email protected]
Exemplo
E por último:
Ou seja:
Onde pequenas variações no valor de [A] se dão devido a erros de arredondamento.
14/30Prof. MSc. David Roza José[email protected]
Eliminação de Gauss
Após a matriz ser decomposta, uma solução pode ser gerada para um vetor de termos
independentes particular {b}. Isso é feito em dois passos: primeiro, uma substituição
progressiva é efetuada a se resolver [L]{d} = {b} para {d}.
O processo de substituição progressiva pode ser representado de maneira concisa
como:
E em seguida efetua-se a substituição regressiva para solucionar [U]{x} − {d} = 0.
15/30Prof. MSc. David Roza José[email protected]
Exemplo
Vamos supor que a matriz decomposta anteriormente possua o seguinte vetor de
termos independentes, para o qual buscaremos a solução:
Devemos resolver o sistema [L]{d}={b} :
Cuja solução é:
16/30Prof. MSc. David Roza José[email protected]
Exemplo
E em seguida fazer a substituição regressiva para [U]{x}={d} :
Resultando em:
Que é a solução do sistema original:
17/30Prof. MSc. David Roza José[email protected]
Fatoração LU com pivotamento
Assim como para a Eliminação de Gauss, o pivotamento parcial é necessário para se
obter uma solução robusta com a fatoração LU. Uma maneira de fazer isso é com uma
matriz de permutação. O método consiste dos seguintes passos:
(1) Eliminação: A fatoração LU com pivotamento da matriz [A] pode ser
representada na forma matricial como: [P][A] = [L][U] . A matriz triangular
superior, [U], é gerada por eliminação com pivotamento parcial, enquanto se
armazena os fatores de multiplicação em [L] e utiliza-se a matriz de permutação,
[P], para manter registro das trocas de linhas.
(2) Substituição progressiva: As matrizes [L] e [P] são utilizadas para fazer o passo
da eliminação com pivotamento em {b} de maneira a gerar o vetor
intermediário {d}. Este passo pode ser representado como a solução da seguinte
formulação matricial: [L]{d} = [P]{b} .
(3) Substituição regressiva: A solução final é gerada da mesma maneira que
anteriormente, através da solução de [U]{x} = {d} .
18/30Prof. MSc. David Roza José[email protected]
Exemplo
Resolver o seguinte sistema:
Solução: Antes de fazer o passo da eliminação, definimos a matriz inicial de permutação:
Sabemos que o pivotamento de [A] é necessário, então antes de iniciar a eliminação
trocamos a ordem das linhas. Fazemos o mesmo na matriz de permutação:
19/30Prof. MSc. David Roza José[email protected]
Exemplo
Eliminaremos a21 ao subtrair o fator l21=a21/a11=0.0003/1=0.0003 da segunda linha de A.
Ao fazer isso, calculamos o novo valor de a'22=3-0.0003(1)=2.9997. Assim, o passo de
eliminação está completo com o seguinte resultado:
Antes de implementar a substituição progressiva, a matriz de permutação é utilizada
para reorganizar o vetor de termos independentes para refletir as mudanças efetuadas.
20/30Prof. MSc. David Roza José[email protected]
Exemplo
O sistema a ser resolvido é [L]{d} = {b} para {d}.
Cuja solução nos fornece d1 = 1 e d2 = 2.0001 - 0.0003(1) = 1.9998 .
A próxima etapa é da substituição regressiva:
Que resulta em:
21/30Prof. MSc. David Roza José[email protected]
MATLAB
O MATLAB possui a função intrínseca lu que gera uma fatoração LU. A sintaxe é:
[L, U] = lu(X)
tal que L e U são as matrizes triangular inferior e superior, respectivamente, da matriz
quadrada X.
22/30Prof. MSc. David Roza José[email protected]
Fatoração de Cholesky
A fatoração de Cholesky é utilizada para resolver sistemas onde a matriz de coeficientes
é simétrica, ou seja, [A] = [A]T. O algoritmo é baseado no fato que uma matriz simétrica
pode ser decomposta da seguinte forma:
[A] = [U]T[U]
Ou seja, as matrizes triangulares são transpostas entre si. A fatoração pode ser gerada
eficientemente através de relações de recorrência. Para a i-éstima linha:
23/30Prof. MSc. David Roza José[email protected]
Exemplo
Calcular a fatoração de Cholesky para a seguinte matriz simétrica
Solução: Para a primeira linha ( i=1 )
25/30Prof. MSc. David Roza José[email protected]
Exemplo
Para a terceira linha ( i = 3 ):
Assim, a fatoração de Cholesky resulta em:
26/30Prof. MSc. David Roza José[email protected]
Exemplo
A validade pode ser conferida da seguinte forma:
27/30Prof. MSc. David Roza José[email protected]
Fatoração de Cholesky
Após a fatoração ter sido efetuada, ela pode ser utilizada para se solucionar o vetor {b}
da mesma maneira que na fatoração LU.
Primeiro resolve-se para o vetor intermediário {d}:
E em seguida obtém-se a solução final através de:
28/30Prof. MSc. David Roza José[email protected]
MATLAB
O MATLAB possui uma função intrínseca chamada de chol que gera a fatoração de
Cholesky. Sua sintaxe é:
U = chol(X)
Tal que U é a matriz triangular superior de forma que U'*U = X.
29/30Prof. MSc. David Roza José[email protected]
Divisão “à esquerda” \
Quanto se utiliza a divisão à esquerda “\” no MATLAB, um algoritmo sofisticado é
chamado para obter a solução. O programa verifica a estrutura da matriz de coeficientes
e implementa o método ótimo para obter a solução.
Primeiro o MATLAB confere para ver se [A] está num formato adequado para a
Eliminação de Gauss. Estes sistemas incluem: (a) esparsos e em banda, (b) triangular (ou
facilmente transformáveis em triangular) e (c) simétrico. Se algum destes casos é
detectado, a solução é obtida com a técnica mais adequada para o mesmo. Algumas das
técnicas incluem resolução em banda, substituição progressiva e regressiva e a fatoração
de Cholesky.
Se nenhuma dessas simplificações for possível e a matriz é quadrada, uma fatoração
triangular genérica é aplicada através da eliminação de Gauss com pivotamento parcial e
a solução é obtida com substituição regressiva.
30/30Prof. MSc. David Roza José[email protected]
Informações
Exercícios: 10.03 10.05 10.06 10.08 10.09 10.10