Sistemas de Equa¸oes Lineares c˜

Sistemas de Equa¸˜es Lineares co
Decomposi¸˜o LU: Algoritmos e Aplica¸˜es ca co Eduardo Camponogara
Departamento de Automa¸˜o e Sistemas ca Universidade Federal de Santa Catarina

DAS-5103: C´lculo Num´rico para Controle e Automa¸˜o a e ca

Sistemas de Equa¸oes Lineares c˜ Sum´rio a

Introdu¸˜o ca Substitui¸˜o Direta ca Retrosubstitui¸˜o ca Obtendo LU sem Permuta¸˜es co Decomposi¸˜o LU com Pivoteamento ca M´todo de Crout e

Sistemas de Equa¸oes Lineares c˜ Introdu¸˜o ca

Sum´rio a
Introdu¸˜o ca Substitui¸˜o Direta ca Retrosubstitui¸˜o ca Obtendo LU sem Permuta¸˜es co Decomposi¸˜o LU com Pivoteamento ca M´todo de Crout e

Sistemas de Equa¸oes Lineares c˜ Introdu¸˜o ca

Decomposi¸˜o LU ca
Dado um sistema de equa¸˜es lineares, com A n˜o-singular: co a A·x =b A decomposi¸˜o LU busca encontrar trˆs matrizes n × n de ca e maneira que P ·A=L·U onde:

(1)

(2)

P ´ uma matriz de pivoteamento (tamb´m indicada na e e literatura como matriz de permuta¸˜o); ca L ´ uma matriz diagonal inferior (Lower); e e U ´ uma matriz diagonal superior (Upper). e

◮ ◮

e ca obtendo: P · P −1 · L · y L·y = P ·b = P ·b (4) . o m´todo de resolu¸˜o ´: e ca e A·x P −1 = b = b (3) ·L·U ·x ◮ Definimos y = Ux e pr´-multiplicamos a equa¸˜o (3) por P. Quest˜o a ◮ Qual ´ a vantagem de quebrarmos A em duas matrizes e triangulares? A vantagem ´ que a solu¸˜o de sistemas triangulares ´ trivial e ca e (retrossubstitui¸˜o). que ´ a resolu¸˜o de sistemas lineares a e ca com matrizes triangulares.Sistemas de Equa¸oes Lineares c˜ Introdu¸˜o ca Decomposi¸˜o LU ca Este m´todo busca transformar o problema em dois problemas e f´ceis de serem resolvidos. ca ◮ Sistemas de Equa¸oes Lineares c˜ Introdu¸˜o ca Decomposi¸˜o LU ca M´todo de Resolu¸˜o e ca ◮ De posse das matrizes PLU.

o que nos leva a encontrar y .Sistemas de Equa¸oes Lineares c˜ Introdu¸˜o ca Decomposi¸˜o LU ca M´todo de Resolu¸˜o: Continua¸˜o e ca ca ◮ O sistema na equa¸˜o (4) pode ser resolvido por substitui¸˜o ca ca direta. Assim. possu´ ımos elementos para resolver: U ·x =y por retrosubstitui¸˜o. ca (5) ◮ Sistemas de Equa¸oes Lineares c˜ Substitui¸˜o Direta ca Sum´rio a Introdu¸˜o ca Substitui¸˜o Direta ca Retrosubstitui¸˜o ca Obtendo LU sem Permuta¸˜es co Decomposi¸˜o LU com Pivoteamento ca M´todo de Crout e .

Sistemas de Equa¸oes Lineares c˜ Substitui¸˜o Direta ca Substitui¸˜o Direta ca Admita o sistema de equa¸˜es lineares: co L·y =b onde L ´ uma matriz diagonal inferior. Usaremos um exemplo com e L ∈ R3×3 para exemplificar o processo. ent˜o pode-se obter o valor de y2 . y3 e eventuais yn podem ser calculados sucessivamente. . onde:       y1 b1 l11 0 0  l21 l22 0  ·  y2  =  b2  y3 b3 l31 l32 l33 Sistemas de Equa¸oes Lineares c˜ Substitui¸˜o Direta ca Substitui¸˜o Direta ca Podemos observar que y1 = b1 l11 e obtemos seu valor de imediato. No passo seguinte temos que l21 y1 + l22 y2 = b2 1 y2 = (b2 − l21 y1 ) l22 mas y1 j´ ´ conhecido. Desta ae a maneira.

Sistemas de Equa¸oes Lineares c˜ Retrosubstitui¸˜o ca Sum´rio a Introdu¸˜o ca Substitui¸˜o Direta ca Retrosubstitui¸˜o ca Obtendo LU sem Permuta¸˜es co Decomposi¸˜o LU com Pivoteamento ca M´todo de Crout e Sistemas de Equa¸oes Lineares c˜ Retrosubstitui¸˜o ca Retrossubstitui¸˜o ca Admita agora o sistema de equa¸˜es lineares: co U ·x =y onde U ´ uma matriz diagonal superior. e exemplo com U ∈ R3×3 para apresentar    x1 u11 u12 u13  0 u22 u23  ·  x2 0 0 u33 x3 Utilizamos novamente um o processo. onde:    y1  =  y2  y3 .

Sistemas de Equa¸oes Lineares c˜ Obtendo LU sem Permuta¸oes c˜ Sum´rio a Introdu¸˜o ca Substitui¸˜o Direta ca Retrosubstitui¸˜o ca Obtendo LU sem Permuta¸˜es co Decomposi¸˜o LU com Pivoteamento ca M´todo de Crout e .Sistemas de Equa¸oes Lineares c˜ Retrosubstitui¸˜o ca Retrossubstitui¸˜o ca Da mesma maneira que na se¸˜o anterior. mas iniciando a partir ca da ultima linha de U. . . temos que: ´ x3 = x2 y3 u33 1 = (y2 − u23 x3 ) u22 .

Sistemas de Equa¸oes Lineares c˜ Obtendo LU sem Permuta¸oes c˜ Obtendo LU sem Permuta¸˜es co ◮ Primeiro consideraremos o problema da obten¸˜o da fatora¸˜o ca ca sem a matriz de permuta¸˜es. a A22 . Sistemas de Equa¸oes Lineares c˜ Obtendo LU sem Permuta¸oes c˜ Obtendo LU sem Permuta¸˜es co Do produto obtemos: a11 A12 A21 A22 = u11 U12 u11 L21 L21 U12 + L22 U22 . L22 . U22 ∈ R(n−1)×(n−1) agrupam o restante das matrizes originais. Este caso especial ´ obtido co e fazendo P = I (identidade) no caso geral. a A12 e U12 ∈ R1×(n−1) s˜o matrizes linhas. Admita a seguinte divis˜o das matrizes A = L · U: a a11 A12 A21 A22 = 1 0 L21 L22 u11 U12 0 U22 onde ◮ ◮ ◮ A21 e L21 ∈ R(n−1)×1 s˜o matrizes colunas.

chegamos ao seguinte algoritmo recursivo: 1) calcular a primeira linha de U: u11 = a11 e U12 = A12 .Sistemas de Equa¸oes Lineares c˜ Obtendo LU sem Permuta¸oes c˜ Obtendo LU sem Permuta¸˜es co Assim podemos obter a primeira linha de U e a primeira coluna de L. 2) calcular a primeira coluna de L: L21 = ( a1 )A21 . . fazendo: u11 = a11 U12 = A12 1 L21 = A21 u11 e ainda obtemos: L22 U22 = A22 − L21 U12 = A22 − 1 A21 A12 a11 que nos permite calcular L22 e U22 fatorando A22 − L21 U12 . 11 3) calcular a decomposi¸˜o das sub-matrizes L22 e U22 : ca L22 U22 = A22 − L21 U12 . Sistemas de Equa¸oes Lineares c˜ Obtendo LU sem Permuta¸oes c˜ Obtendo LU sem Permuta¸˜es co Assim.

Sistemas de Equa¸oes Lineares c˜ Obtendo LU sem Permuta¸oes c˜ Obtendo LU sem Permuta¸˜es co Este algoritmo fica da seguinte maneira em pseudo-c´digo: o Algoritmo LU-Solve(A) 1 n ← rows[A] 2 for k ← 1 to n 3 ukk ← akk 4 for i ← k + 1 to n 5 lik ← aik /ukk 6 uki ← aki 7 for i ← k + 1 to n 8 for j ← k + 1 to n 9 aij ← aij − lik ukj 10 return L and U Sistemas de Equa¸oes Lineares c˜ Obtendo LU sem Permuta¸oes c˜ Exemplo Calcular a fatora¸˜o LU de ca  2 3 1 A =  6 13 5  2 19 10  .

assim ´ poss´ que as matrizes L e U sejam ca e ıvel montadas na pr´pria matriz A. o .Sistemas de Equa¸oes Lineares c˜ Obtendo LU sem Permuta¸oes c˜ Exemplo: Continua¸˜o ca It k = 1:     2 3 1 1 0 0 2 3 1  6 4 2  =⇒  3 1 0   0  2 16 9 1 1 0 0  It k = 2:     1 0 0 2 3 1 2 3 1  6 4 2  =⇒  3 1 0   0 4 2  1 4 1 0 0 2 16 1  It k = 3:      2 3 1 1 0 0 2 3 1  6 4 2  =⇒  3 1 0   0 4 2  2 16 1 1 4 1 0 0 1 Sistemas de Equa¸oes Lineares c˜ Obtendo LU sem Permuta¸oes c˜ Discuss˜o do Algoritmo a Discuss˜o do Algoritmo a ◮ Podemos observar que o algoritmo modifica a matriz A e que os valores contidos nas linhas e colunas k s´ s˜o utilizados em o a sua itera¸˜o.

a troca de linhas ´ bastante comum. procurando que o e pivˆ assuma o elemento de maior norma da coluna restante. e . salvo em casos raros. Esta o heur´ ıstica se mostra bastante eficiente para manter a estabilidade num´rica do algoritmo. a 11 elementos nulos na posi¸˜o do “pivˆ” devem ser evitados ca o utilizando. uma troca de linhas. Para calcularmos L21 = u1 A21 .Sistemas de Equa¸oes Lineares c˜ Obtendo LU sem Permuta¸oes c˜ Problemas do N˜o-Pivoteamento a ◮ Um exemplo simples mostra que nem todas as matrizes n˜o-singulares podem ser fatoradas por A = LU: a A= 0 1 1 −1 ◮ Se aplicarmos o algoritmo. Assim. Sistemas de Equa¸oes Lineares c˜ Obtendo LU sem Permuta¸oes c˜ Problemas do N˜o-Pivoteamento a Observa¸˜o ca De fato. teremos uma divis˜o por zero. por exemplo. teremos u11 = 0.

co a No vetor. Estas nota¸˜es s˜o equivalentes. ◮ ◮ Sistemas de Equa¸oes Lineares c˜ Obtendo LU sem Permuta¸oes c˜ O Vetor de Pivoteamento Exemplo O vetor π = (2. o elemento π[i] indica qual ´ a linha da matriz I que e deve estar no local de i. 4. ´ utilizado um a e vetor π ao inv´s da matriz para representar a permuta¸˜o e ca entre linhas.Sistemas de Equa¸oes Lineares c˜ Obtendo LU sem Permuta¸oes c˜ O Vetor de Pivoteamento ◮ No algoritmo que ser´ apresentado a seguir. 1. 3) ´ equivalente ` e a  0 1 0  0 0 0 P=  1 0 0 0 0 1 matriz  0 1   0  0 .

co a ◮ ◮ ◮ . o ca As permuta¸˜es ser˜o representadas pelo vetor π. obtendo a representa¸˜o apresentada acima. Foi demonstrado que esta decomposi¸˜o existe sempre se a ca matriz A for n˜o-singular. a Nesta implementa¸˜o a decomposi¸˜o ser´ executada na ca ca a pr´pria matriz A. e n˜o ser´ coberta a a neste material.Sistemas de Equa¸oes Lineares c˜ Decomposi¸˜o LU com Pivoteamento ca Sum´rio a Introdu¸˜o ca Substitui¸˜o Direta ca Retrosubstitui¸˜o ca Obtendo LU sem Permuta¸˜es co Decomposi¸˜o LU com Pivoteamento ca M´todo de Crout e Sistemas de Equa¸oes Lineares c˜ Decomposi¸˜o LU com Pivoteamento ca Decomposi¸˜o LU com Pivoteamento ca ◮ A demonstra¸˜o formal do algoritmo com pivoteamento ´ um ca e pouco mais complicada que do primeiro.

Sistemas de Equa¸oes Lineares c˜ Decomposi¸˜o LU com Pivoteamento ca Decomposi¸˜o LU com Pivoteamento ca Algoritmo LUP-Solve(A) 1 n ← rows[A] 2 for i ← 1 to n 3 π[i] ← i 4 for k ← 1 to n 5 p←0 6 for i ← k to n 7 if |aik | > p 8 p ← |aik | 9 k′ ← i Sistemas de Equa¸oes Lineares c˜ Decomposi¸˜o LU com Pivoteamento ca Decomposi¸˜o LU com Pivoteamento ca Algoritmo 10 11 12 13 14 15 16 17 18 19 if p = 0 error “matriz singular” exchange π[k] ↔ π[k ′ ] for i ← 1 to n exchange aki ↔ ak ′ i for i ← k + 1 to n aik ← aik /akk for j ← k + 1 to n aij ← aij − aik akj return A and π .

6 −2 2 −1 2 −3. 4 2 −2 0. 6 4 −2   4 2  3. 2 −0. 4 4 −0. 6    1  0. 4 −1 Sistemas de Equa¸oes Lineares c˜ Decomposi¸˜o LU com Pivoteamento ca Exemplo: Continua¸˜o ca Itera¸˜o k=1 ca   1 2  2  3    3  (5) −1 4  (5) 3  2  0. 4 5 4 0 1. 2 0. 2 −0. 6 −2 0. 6   3 (5) 5  2  3 3    1  2 0 −1 −2 4 4 4 2 3.Sistemas de Equa¸oes Lineares c˜ Decomposi¸˜o LU com Pivoteamento ca Exemplo Exemplo Calcular a fatora¸˜o LUP da matriz ca  2 0  3 3 A=  5 5 −1 −2  2 0. 2  0 2 3 4 5 4 −2 3. 4 −1 4. 6 −1 .

5 5 −2 0. 2 −0. 2 0. 2 −0. 5 0 4 0. 6 4 −0. 4 2 −0. 5 −3. 2 4 0. 4 1. 2 −3. 2 2 −0. 5  5 3  1  0. 2 −3. 4 (4) 1. 4 1. 2 −0. 2 4  5 0 (−2) −1 5 (−2) 0 0. 2 4  5 3  1  0. 6 0. 5 4 1. 2 2 0. 4    2  0. 6 2 −0. 6 (4) 4 0. 4    2  0. 2 −0. 2   5 3  1  0. 6 4. 6 4 2 −3. 6 2 5 −2 0. 2  5 (−2) 0 −1 4 0. 6 −0. 6 −0.Sistemas de Equa¸oes Lineares c˜ Decomposi¸˜o LU com Pivoteamento ca Exemplo: Continua¸˜o ca Itera¸˜o k = 2 ca  5 3  2  0. 2 −0. 4 4 −0. 2 . 6 Sistemas de Equa¸oes Lineares c˜ Decomposi¸˜o LU com Pivoteamento ca Exemplo: Continua¸˜o ca Itera¸˜o k = 3 ca   3 5  1  0. 6    1  0. 5 0 4 0. 4    4  −0. 6  5 −2 0 0. 4    2  0. 4 (4) 0. 4 4. 2 −0. 4    4  −0. 6 2 −0. 2 −3. 4 1. 5 −3   3 5  1  0. 5 2 −0. 2 −0.

4  0. 5  −3 5 4 −2 0. 5 0 1 0 0 0  0 2 0  3  1  5 −1 0 =  0 0 0 0   1 0  0. 4   −0. 4 1 0 3 5 −2 5 0 0 0 2 4 4 3. 4 0 4 0 0 Sistemas de Equa¸oes Lineares c˜ M´todo de Crout e Sum´rio a Introdu¸˜o ca Substitui¸˜o Direta ca Retrosubstitui¸˜o ca Obtendo LU sem Permuta¸˜es co Decomposi¸˜o LU com Pivoteamento ca M´todo de Crout e . 2   −0.Sistemas de Equa¸oes Lineares c˜ Decomposi¸˜o LU com Pivoteamento ca Exemplo: Continua¸˜o ca Assim  0  1   0 0  1  0. 6 0 0 0 1 0 1 0. 2 0. 6 −2   2  −1  2 −0.

+ αin βnj . Podemos obter LU ca resolvendo um sistema de equa¸˜es n˜o lineares conforme segue: co a L 0 0 0 α11  α21 α22 0 0   α31 α32 α33 0 α41 α42 α43 α44  = U   β11   0     0  0 a11  a21   a31 a41 β12 β22 0 0 a12 a22 a32 a42 β13 β23 β33 0 a13 a23 a33 a43 β14 β24 β34 β44 a14 a24 a34 a44  = A        Sistemas de Equa¸oes Lineares c˜ M´todo de Crout e M´todo de Crout e Isto significa que: aij = αi1 β1j + αi2 β2j + . . .Sistemas de Equa¸oes Lineares c˜ M´todo de Crout e M´todo de Crout e Aqui apresentamos um algoritmo alternativo para encontrar a decomposi¸˜o LU sem pivoteamento.

.Sistemas de Equa¸oes Lineares c˜ M´todo de Crout e M´todo de Crout e Alguns exemplos de equa¸˜es: co a13 = α11 β13 + α12 β23 + α13 β33 + α14 β43 = α11 β13 a32 = α31 β12 + α32 β22 + α33 β32 + α34 β42 = α31 β12 + α32 β22 a22 = α21 β12 + α22 β22 + α23 β32 + α24 β42 = α21 β12 + α22 β12 Sistemas de Equa¸oes Lineares c˜ M´todo de Crout e M´todo de Crout e H´ trˆs casos: a e 1) i < j : 2) i = j : 3) i > j : aij = αi1 β1j + αi2 β2j + . . + αii βij aij = αi1 β1j + αi2 β2j + . . . + αij βjj (6) (7) (8) . + αii βij aij = αi1 β1j + αi2 β2j + . . .

resolve o a 2 + N equa¸˜es (6). a αii = 1. . (8). e (9) atrav´s de uma sistema de N co e simples reordena¸˜o das equa¸˜es. (7). Ent˜o fazemos. ∀i = 1. . n (9) ◮ ◮ Sistemas de Equa¸oes Lineares c˜ M´todo de Crout e M´todo de Crout e Algoritmo de Crout O algoritmo de Crout. a e Uma vez que o n´mero de vari´veis ´ maior que o n´mero de u a e u inc´gnitas. podemos especificar n das inc´gnitas o o arbitrariamente. ca co . e (8) possui n2 equa¸˜es e co co n2 + n vari´veis (a diagonal ´ representada duas vezes). . (7). que ser´ apresentado a seguir.Sistemas de Equa¸oes Lineares c˜ M´todo de Crout e M´todo de Crout e ◮ O sistema de equa¸˜es (6). .

. . . . . n 2) Para cada j = 1. n Para i = 1. i = 1. . j + 2.Sistemas de Equa¸oes Lineares c˜ M´todo de Crout e M´todo de Crout e Algoritmo de Crout 1) Defina αii = 1. . . . n Use a equa¸˜o (8) para resolver αij ca αij = 1 βjj (aij j−1 − k=1 αik βkj ) Sistemas de Equa¸oes Lineares c˜ M´todo de Crout e Exemplo Aqui vamos aplicar o Algoritmo de Crout para encontrar a decomposi¸˜o LU da matriz: ca   10 −7 0 2 6  A =  −3 5 −1 5 . . . . . . . (7). precisamente i−1 βij = aij − k=1 αik βkj Para i = j + 1. e (9) co para encontrar βij . j Use as equa¸˜es (6). .

Sistemas de Equa¸oes Lineares c˜ M´todo de Crout e Exemplo: Continua¸˜o ca Passos executados pelo algoritmo: 1) β11 = a11 − 2) α21 = 3) α31 = 1 β11 (a21 1 β11 (a31 1−1 k=1 αik βkj 1−1 = a11 = 10 − k=1 1−1 αik βkj ) = −0.1 = 0.3 αik βkj ) = 0.5 k=1 − 1−1 4) β12 = a12 − k=1 αik βkj = a12 = −7 Sistemas de Equa¸oes Lineares c˜ M´todo de Crout e Exemplo: Continua¸˜o ca 5) β22 = a22 − 2 − 2.1 6) α32 = 1 β22 (a32 2−1 k=1 αik βkj 2−1 = a22 − α21 β12 = 2 − (0.3)(0) = 6 α3k βk3 = a33 − α31 β13 − α32 β23 = k=1 9) β33 = a33 − 5 − (0.5)(0) − (−25)6 = 155 .3)(−7) = − k=1 α3k βk2 ) = −25 αik βkj = a13 = 0 1−1 7) β13 = a13 − k=1 2−1 8) β23 = a23 − k=1 3−1 α2k βk3 = a23 − α31 β13 = 6 − (0.

3 0.5 −25 1 0 0 155 .Sistemas de Equa¸oes Lineares c˜ M´todo de Crout e Exemplo: Continua¸˜o ca Portanto.5 −25 1   10 −7 0 6  U =  0 −0.  1 0 0 1 0  L =  −0.3 5 −1 5 0.1 6  =  −3 LU =  −0.1 0 0 155  Sistemas de Equa¸oes Lineares c˜ M´todo de Crout e Exemplo: Continua¸˜o ca o que nos permite verificar que:      10 −7 0 1 0 0 10 −7 0 2 6  1 0   0 −0.

Sistemas de Equa¸oes Lineares c˜ M´todo de Crout e Coment´rios Finais a ◮ ◮ Fim! Obrigado pela presen¸a c .

Sign up to vote on this title
UsefulNot useful