Preview only show first 10 pages with watermark. For full document please download

Métodos De Decomposição Lu

Métodos de decomposição LU utilizados em cálculo numérico

   EMBED


Share

Transcript

Métodos de decomposição LU A decomposição LU é das técnicas mais usadas para resolver sistemas de equações algébricas. Vamos abordar dois tipos de decomposição LU: por eliminação de Gauss e pelo método de Crout. 1. Eliminação de Gauss e decomposição LU A eliminação de Gauss pode ser usada para decompor uma matriz dos coeficientes [A], em duas matrizes [L] e [U], onde [U] é uma matriz triangular superior (todos os elementos abaixo da diagonal principal são nulos), e [L] é uma matriz triangular inferior. Seja [A] uma matriz quadrada, por exemplo 3x3,  a11 A =  a 21  a 31 a12 a 22 a 32 a13  a 23  a 33  Através de passos de eliminação, podemos reduzir a matriz original dos coeficientes, [A], numa matriz [U]  a11 A =  a 21  a 31 a12 a 22 a 32 a13  a 23  a 33   a11 ⇔ U =  0  0 a12 a' 22 0 a13  a´23  a' 33  O 1º passo na eliminação de Gauss é multiplicar a 1ª linha da matriz [A] pelo factor f21= a 21 e subtrair este resultado à 2ª linha de [A], eliminando a 21 . Igualmente, a11 multiplica-se a 1ª linha pelo factor f 31= a 31 , e subtrai-se este resultado à 3ª linha de a11 modo a eliminar a31 . O passo final (note-se que é uma matriz 3x3) consiste em multiplicar a 2ª linha pelo factor f 32= a ' 32 , e subtrair à 3ª linha eliminando a' 32 . a' 22 A matriz [L]é uma matriz triangular inferior, cujos os elementos da diagonal principal são 1’s e os restantes elementos são os factores f21, f31, f32 1 L =  f 21  f 31 0 1 f 32 0 0 1 Multiplicando as matrizes [L] e [U], obtemos a matriz original [A]. A eliminação de Gauss representa uma decomposição LU de [A]. O exemplo seguinte mostra uma aplicação deste método. Considerando um sistema de três equações:  2x + y + 4z = 2   6 x + y = −10 − x + 2 y − 10 z = −4  Este sistema pode ser representado matricialmente por Ax = b, ou seja 4  2 1 6 1 0    − 1 2 − 10  x  2   y  =  − 10      z   − 4  Aplicando os passos de eliminação, que consistem em subtrair a certas linhas múltiplos de outras linhas, obteve-se um sistema Ux = d 4  2 1 0 − 2 − 12    0 0 − 23  x  2   y  =  − 16       z   − 23 O 1º passo da eliminação consistiu em subtrair à 2ª linha a 1ª multiplicada por 3. No 2º passo multiplicou-se a 1ª linha por –1/2 e subtraiu-se à 3ª linha. O último passo (neste caso por ser uma matriz 3x3), consistiu em subtrair à 3ª linha a 2ª multiplicada por –5/4. A matriz [L] será: 0 0  1  1 0 L=  3  − 1 / 2 − 5 / 4 1  Note-se que os elementos por baixo da diagonal principal são exactamente os multiplicadores 3,-1/2, -5/4, utilizados nos passos do processo de eliminação, e verificase a seguinte igualdade: [L]{ Ux – d } = Ax – b, de onde se conclui que: 4  4  0 0  2 1  1 2 1      LU = A ⇔  3 0  1 0 0 − 2 − 12  =  6 1  − 1 2 − 10  − 1 / 2 − 5 / 4 1  0 0 − 23 e que 0 0  2   1  2      Ld = b ⇔  3 1 0  − 16  =  − 10  − 1 / 2 − 5 / 4 1   − 23  − 4  2. Método de decomposição de Crout Esta decomposição é um algoritmo eficiente para decompor a matriz [A] nas matrizes [L] e [U]. Seja [U] uma matriz 4x4, triangular superior com 1’s na diagonal principal: 1 u12 u13 u14  0 1 u u24  23  U= 0 0 1 u34    0 1 0 0 e [L] uma matriz triangular inferior  l11 0 l l L =  21 22 l31 l32  l41 l42 0 0 l33 l43 0 0  0  l44  Poderemos então escrever LU = A,  l11 l  21 l 31  l 41 0 l 22 l 32 l 42 0 0 l 33 l 43      l 44  0 0 0 1 u12 0 1  0 0  0 0 u13 u 23 1 0 u14   a11  a u24  =  21  a 31 u34    1  a 41 a12 a 22 a 32 a 42 a13 a 23 a 33 a 43 a14  a 24  a 34   a 44  O método de Crout derivado através da multiplicação de matrizes do lado esquerdo ( L e U ) e depois equacionando os resultados para o lado direito. Recorrendo às regras de multiplicação de matrizes, e para matrizes 4x4 temos os seguintes passos: 1º passo - Multiplicar as linhas de [L] pela 1ª coluna de [U]. l11 = a11 , l 21 = a 21 , l 31 = a31 , l41 = a 41 Como se pode observar a 1ª coluna de [L] é a 1ª coluna de [A]. Generalizando este resultado temos : li1 = ai1 , para i = 1,2,...,n 2º passo – A seguir a 1ª linha de [L] pode ser multiplicada pelas colunas de [U]. l11 = a11 , l11u12 = a12 , l11u13 = a13 , l11u14 = a14 O primeiro resultado ( l11 = a11 ) já foi estabelecido anteriormente. As restantes relações podem ser generalizadas por: a u1 j = 1 j , para j = 2,3, ... ,n l11 3º passo – Da 2ª à 4ª linha da matriz [L], vamos multiplicá-las pela 2ª coluna de [U]. l21u12 + l22 = a22 , l31u12 + l32 = a32 , l41u12 + l42 = a42 Resolvendo estas equações em ordem a l22 , l32 , l42 e generalizando temos: l i 2 = a i 2 − l i1u12 , para i = 2,3, ... ,n 4º passo – A seguir, os coeficientes da 2ª linha de [U] podem ser calculados multiplicando a 2ª linha de [L] pela 3ª e 4ª coluna de [U]. l21u13 + l22 u23 = a23 , l 21 u14 + l 22 u 24 = a 24 Para o caso geral temos, a −l u u2 j = 2 j 21 1 j , para j =3,3, ... ,n l22 Repetindo o processo podemos calcular os outros elementos das matrizes. li 3 = ai 3 − li1u13 − li 2u 23 u3 j = , para i = 3,4, ... , n a3 j − l31u1 j − l32 u2 j , para j = 4,5, ..., n l33 li 4 = ai 4 − li1u14 − li 2u24 − li 3u34 , para i = 4,5, ... , n Inspeccionando as equações referentes aos termos gerais, refira-se as seguintes fórmulas concisas para a implementação do método: (1). li1 = ai1 , para i = 1,2, ... ,n a (2). u1 j = 1 j , para j = 2,3, ... , n l11 Para j = 2,3, ... ,n-1 (3). lij = aij − j −1 ∑l k =1 ik ukj , para i = j, ... , n j −1 (4). u jk = a jk − ∑l ji uik i =1 l jj , para k = j+1, j+2, ... , n n−1 (5). lnn = ann − ∑ lnkukn k =1 Observe-se o exemplo seguinte para melhor compreensão deste método.  2 x − 5 y + z = 12   − x + 3 y − z = −8 3 x − 4 y + 2 z = 16  De acordo com (1), a 1ª coluna de [L] é idêntica à 1ª coluna de [A]. l 11 = 2 ; l 21 = -1 ; l 31 = 3 A equação (2) pode ser usada para calcular a 1ª coluna de [U]. u12 = a13 a12 = -5/2 ; u13 = = 1/2 l11 l11 Usando a equação (3), podemos calcular: l 22 = a22 − l 21u12 = 1/2 ; l 32 = a 32 − l 31u12 = 7/2 Usando a equação (4), podemos calcular o último elemento da matriz [U]. a −l u u 23 = 23 21 13 = -1 l 22 Pela equação (5), vamos calcular o último elemento de [L]. l 33 = a 33 − l 31 u13 − l 32 u 23 = 4 0 0 2  então pode-se escrever L =  − 1 1 / 2 0 e U =  3 7 / 2 4 1 − 5 / 2 1 / 2 0 1 − 1  .  0 0 1  Facilmente se verifica que o produto entre estas duas matrizes é igual á matriz [A]. Cadeira: Fisica Aplicada à Computação – 2000/2001 – 4º Ano - 2º Semestre Autor: Manuel Eduardo Clemente Silva