SISTEMA DE EQUAÇÕES ALGÉBRICAS LINEARES Introdução São inúmeros os problemas de engenharia onde se recai na solução de um sistema de equações lineares. Como exemplos, podemos citar: • O cálculo de esforços em problemas de estática; • O cálculo de tensões e correntes em um circuito elétrico composto por elementos lineares; • O balanço de massa em sistemas físicos lineares; • A solução de equações diferenciais lineares por métodos numéricos como elementos finitos e diferenças finitas, etc. Formulação Forma geral: a11 x1 + a12 x2 + ... + a1n x n = b1 a 21 x2 + a 22 x2 + ... + a 2n x n = b2 a 31 x1 + a 32 x2 + ... + a 3n x n = b3 M M M M a n1 x1 + a n2 x 2 + ... + a nn x n = bn onde a e b são constantes e n é o número de equações. Representação Matricial a11 a12 ... a1n x1 b1 ... a a a b2 21 22 2 n x2 . . .. . . = . . . . . . . a n1 an 2 ... ann xn bn Ax = b Classificação dos Sistemas 2 x1 + x 2 = 6 Incompatível. Ex.: 4 x + 2 x = 18 2 1 Determinado - solução única - Compatível Indeterminado - diversas soluções. Homogêneo (b = 0) Métodos de Solução Classificam-se, numericamente, em Diretos e Iterativos. Os métodos mais comuns são: Método de Gauss − Diretos Método da Eliminação de Jordan Fatoração LU e Choleski Método de Jacobi − Iterativos Método de Gauss − Seidel Método da Triangulação de Gauss Principio do método: • Dado um sistema linear Ax = b, obter, através de transformações elementares um sistema equivalente, Tx = c, onde T é uma matriz triangular superior. • Em seguida calculam-se os elementos do vetor x através de um processo de substituição reversa. Transformações Elementares • Troca da ordem das equações; • Multiplicação de uma equação por um real não nulo; • Substituição de uma equação por uma combinação linear dela mesma com uma outra; Substituição Reversa Dado um sistema na forma triangular superior: 1 x1 b1( n −1) 0 1 M ≠ 0 M M 0 O ⋅ M = M M M M O M ( n − 1 ) 0 0 L 0 1 xn bn A última equação permite determinar diretamente: x n = bn( n −1 ) A penúltima equação fica: x n −1 + a n( −n1−,1n) ⋅ x n = bn( −n1−1 ) x n −1 = bn( −n1−1 ) − a n( −n1−,1n) ⋅ x n ∴ Generalizando, tem-se: xj = b ( n −1 ) j − n ∑a k = j +1 ( n −1 ) jk xk Triangulação Exemplo: 2 3 − 1 x1 5 2 x1 + 3 x2 − x3 = 5 4 x1 + 4 x2 − 3x3 = 3 ⇔ 4 4 − 3 x2 = 3 ⇔ A.x = b 2 x − 3x + x = −1 2 − 3 1 x3 − 1 2 3 1 1º Etapa: • Escreve-se a matriz aumentada do sistema (B = [A | b] ): B( 0 ) 2 3 − 1 5 = 4 4 − 3 3 2 − 3 1 − 1 (0) • Tomando-se o elemento da diagonal principal, a11 , como pivô, encontra-se os multiplicadores para as segunda e terceira linhas. m (0) 21 (0) a 21 4 = − ( 0 ) = − = −2 2 a11 m (0) 31 (0) a31 2 = − ( 0 ) = − = −1 2 a11 • Substituem-se as segunda e terceira linhas pela seguinte combinação linear entre cada uma delas e a primeira linha: [2 3 − 1 5] L1(1) = L1( 0) (1) (0) (0) (0) L2 = m21 L1 + L2 ⇒ [− 4 − 6 2 − 10] + [4 4 − 3 3] L(1) = m ( 0 ) L( 0 ) + L( 0 ) [− 2 − 3 1 − 5] + [2 − 3 1 − 1] 31 1 3 3 B(1) 2 3 − 1 5 = 0 − 2 − 1 − 7 0 − 6 2 − 6 2º Etapa: (0) • Toma-se agora o elemento da diagonal principal, a22 , como pivô e encontra-se o multiplicador para a terceira linha com relação à segunda. (1) 32 m (1) a32 −6 = − (1) = − = −3 a22 −2 • A nova terceira linha é dada por: [2 3 − 1 5] L1( 2 ) = L1(1) [0 − 2 − 1 − 7] L(22 ) = L(21) ⇒ L( 2) = m (1) L(1) + L(1) [0 6 3 21] + [0 − 6 2 − 6] 32 2 3 3 B( 2 ) 2 3 − 1 5 = 0 − 2 − 1 − 7 0 0 5 15 Procedendo a substituição reversa obtêm-se a solução do sistema triangular superior representado pela matriz aumentada B(2): B( 2 ) 2 3 − 1 5 2 x1 + 3x2 − x3 = 5 x1 1 = 0 − 2 − 1 − 7 ⇔ − 2 x2 − x3 = −7 ⇒ x2 = 2 0 0 x3 3 5 15 5 x3 = 15 Esta é também a solução do sistema original, dado inicialmente. Uma forma prática e compacta de realizar a triangulação é através da construção de tabelas. Linha Multiplicador 4 5 6 Vetor b Transformação − 4 2 = −2 2 4 3 4 −1 −3 5 3 − 2 2 = −1 2 −3 1 −1 0 −2 −1 −6 2 −7 −6 → 2 L1 + L2 → −1L1 + L3 15 → −3 L4 + L5 1 2 3 Matriz A − (− 6 − 2 ) = −3 0 0 5 Técnicas para Aprimorar a Solução Essas técnicas são úteis não apenas para o método da triangulação, mas também para métodos similares. 1. Uso de mais dígitos significativos (dupla precisão); 2. Pivotamento: Identificar se existem pivôs de pequeno valor e trocar linhas e/ou colunas de forma a ter os elementos da diagonal diferentes de zero e de maior valor absoluto. Isto minimiza o erro de arredondamento. 3. Escalonamento: Minimiza o erro de arredondamento. Uma matriz triangular cujos elementos da diagonal principal são diferentes da unidade, pode ter cada uma de suas linhas divididas pelo seu respectivo elemento na diagonal principal. Obs.: Em alguns problemas é necessário um estudo de condicionamento da matriz e um processo de otimização da solução se faz necessário. Método de Jordan Dado um sistema, o Método de Jordan consiste em obter, através de transformações elementares, um sistema equivalente cuja matriz A seja diagonal. x1 + x2 + 2 x3 = 4 1 1 2 x1 4 2 x1 − x2 − x3 = 0 ⇔ 2 − 1 − 1 x2 = 0 ⇔ A.x = b Ex.: x − x − x = −1 1 − 1 − 1 x3 − 1 1 2 3 Lin 1 2 3 4 5 6 7 8 9 Multiplic. 2 = −2 1 1 − = −1 1 − 1 1 = −3 3 −2 2 − =− −3 3 Matriz A 1 2 1 1 2 −1 −1 −1 −1 1 0 1 −3 2 −5 0 −2 −3 13 = −1 13 1 0 −5 − = 15 13 0 −3 −5 0 13 − − 10 11 1 12 0 0 0 0 −3 0 13 Vet. b Transformação 4 0 −1 4 −8 −5 43 −8 13 → L1 → −2 L1 + L2 → −1L1 + L3 → (1 3)L5 + L4 → L5 → (− 2 3)L5 + L6 → −1L9 + L7 0 1 −3 13 13 → L9 0 → 15L9 + L8 Cálculo de Determinantes Uma maneira simples de calcular o determinante de uma matriz A consiste em encontrar uma matriz B, triangular ou diagonal, que seja obtida a partir de A, através de transformações elementares. Demonstra-se que, se A e B são equivalentes, então: det( A ) = det( B ) Ex.: 2 3 − 1 → L1 A = 4 4 − 3 → L2 − 2 L1 ⇒ 2 − 3 1 → L3 − 3L2 2 3 − 1 → L1 A = 0 − 2 − 1 → L2 ⇒ 0 − 6 2 → L3 − 3L2 2 3 − 1 B = 0 − 2 − 1 0 0 5 ⇒ det( A) = det( B) = 2 ⋅ (−2) ⋅ 5 = −20 det( A) = det( B) = 2 ⋅ (−2) ⋅ 5 = −20 Método da Fatoração LU Seja a matriz A dada abaixo, que deve ser fatorada em duas matrizes triangulares, uma superior e a outra, inferior. a11 a 21 A = L ⋅U = M an 1 Sendo l11 l21 0 l22 M ln 2 0 0 O M L lnn L= l n1 U= u11 u12 L u1n 0 u 22 L u 2 n M M O M 0 0 L u nn M L L a12 a 22 M an 2 L a 1n L a2 n O M L a nn Efetuando o produto L ⋅U e igualando os elementos da matriz produto aos elementos correspondentes em A, armam-se n2 equações, envolvendo os elementos de L e de U. Observa-se, entretanto, que cada uma das matrizes triangulares n2 − n + n elementos desconhecidos, definindo um total de possui 2 n2+n incógnitas, número esse maior que o número de equações. Isso significa que infinitas matrizes L e U são soluções do problema de fatoração. Para contornar o problema de que o número de incógnitas é maior que o número de equações, costuma-se atribuir valores aos elementos da diagonal de uma das matrizes triangulares. Apresentamos a seguir a solução proposta por Banachiwitcz. A fim de simplificar os cálculos, atribuem-se: lii = 1, i = 1,L, n Com isso, fica definida a 1ª linha da matriz U, de acordo com as equações abaixo: a11 = 1 ⋅ u11 a = 1 ⋅ u 12 12 M a1 n = 1 ⋅ u1 n Uma vez definido o valor de u11, pode-se então calcular toda a 1ª coluna da matriz L, através das equações definidas pelo produto das linhas de L pela primeira coluna de U: l11 = 1 l = a u 21 21 11 M ln 1 = an1 u11 Multiplicando a 2ª linha de L pela 2ª coluna de U, de acordo com: u 22 = a 22 − l 21u 12 Analogamente, multiplicando as linhas restantes de L pela 2ª coluna de U, determinam-se os elementos restantes da 2ª coluna de L, i. e., os elementos situados abaixo de l22 = 1, de acordo com: la = 1 (ai 2 − li1u12 ), u22 i = 3,L, n Notar que os elementos da 2ª coluna de L não dependem dos elementos da 2ª linha de U, exceto do elemento da diagonal, u22. Aplicação à solução de sistemas de equações lineares: Seja o sistema: Ax = b Fatorando a matriz A = L ⋅U, tem-se: L⋅(Ux) = b Definindo Ux = y tem-se: Ly = b que é um sistema triangular, podendo ser resolvido por substituição direta, para encontrar y. Em seguida, resolve-se outro sistema triangular: Ux = y através de substituição reversa, para finalmente encontrar o vetor x. Ex.: Resolver o sistema abaixo, através do método da fatoração LU: 8 − 1 x1 27 − 3 5 2 − 1 5 0 x 15 ⋅ 2 = 10 − 5 0 5 x3 20 2 − 1 1 x4 9 4 As matrizes L e U serão armazenadas no mesmo espaço de memória reservado para a matriz A. Assim, após o 1º passo, tem-se: A ( 1) 5 8 − 1 −3 −2 3 −1 5 0 = − 10 3 − 5 0 5 2 −1 1 −4 3 Em seguida, calculam-se: u 22 = a 22 − l 21u 12 = 7 3 ( I )u 23 = a 23 − l 21u 13 = 31 3 u = a − l u = − 2 3 24 21 14 24 1 [a 32 − l 31 u 12 ] = 5 l = 32 u 22 ( II ) l = 1 [a − l u ] = 26 7 42 u 22 42 41 13 Com isso, fica definida: A(2) 5 8 −1 −3 − 2 3 7 3 31 3 − 2 3 = − 10 3 5 0 5 1 − 4 3 26 7 − 1 Notar que, nesse estágio dos cálculos (e, desde o princípio), existe um elemento nulo na diagonal. Isso não se constitui um obstáculo para a continuidade do processo de fatoração. A determinação da 3ª linha de U e da 3ª coluna de L é feita através das equações: u 33 = a 33 − l 31u 13 − l 32 u 23 = −25 u 34 = a 34 − l 31 u 14 − l 32 u 24 = 5 l 43 = 1 [a 43 − l 41 u 13 − l 42 u 23 ] = 201 175 u 33 Dessa forma, a matriz A modificada, após o 3º passo da fatoração, fica: A (3) 5 8 −1 −3 −2 3 7 3 31 3 − 2 3 = − 10 3 5 − 25 5 1 − 4 3 26 7 201 175 Finalmente, o elemento u44 é determinado através de: u 44 = a 44 − l 41u 14 − l 42 u 34 = − 126 35 A matriz A fatorada, contendo os elementos de U, bem como os elementos de L abaixo da diagonal, fica: A ( 4) −1 5 8 −3 −2 3 7 3 31 3 − 2 3 = − 10 3 5 − 25 5 − 4 3 26 7 201 175 − 126 35 Resolvendo Ly = b, através de substituição direta, obtém-se: 27 33 y= − 55 − 504 35 Resolvendo agora Ux = y, através de substituição reversa, determina-se: 1 2 x= 3 4 Métodos Iterativos Introdução Considere o sistema de equações lineares Ax = b, cuja solução é o vetor x*. Esta solução deve ser obtida como o limite para o qual converge a sequência {x (1) , L , x (t ) , L}. Tal sequência é gerada a partir de uma aproximação inicial x(0) e obedece a uma regra preestabelecida. Esse procedimento caracteriza os métodos iterativos. Forma Geral Os métodos iterativos para solução de sistemas lineares apresentam a seguinte forma geral: x = Cx + d onde C é uma matriz (n X n) e d um vetor (n X 1). Assim, partindo de uma aproximação de x, digamos x(t), pode-se obter uma melhor aproximação x(t+1), através de: x ( t + 1) = Cx ( t ) + d Método de Jacobi Utilizando a equação de iteração e as matrizes C e d definidas em anteriormente, define-se o método de Jacobi através dos seguintes passos: a) Estima-se uma aproximação inicial x(0) para x; b) Geram-se aproximações sucessivas x(t), a partir da equação de iteração, até que: max x i( t i +1 ) − xi( t ) < ε onde ε é a tolerância predefinida. Um critério adicional de parada pode ser ainda introduzido, baseado no estabelecimento de um número máximo admissível de iterações. Note que: b1 b2 K d = a a 22 11 a12 0 − Ax = b a11 ⇒ x = Cx + d − a21 0 C = a 22 M M an1 an 2 − − ann ann bn ann a1n a11 a2 n L − a22 O M L 0 L − Método de Gauss-Seidel Esse método utiliza sempre as últimas atualizações de cada variável, na equação de iteração. ( t +1) i x n i −1 ( t +1) = d i + ∑ cik xk − ∑ cik xk( t ) k =i +1 k =1 Em geral, esse procedimento acelera a convergência do sistema. O método é adequado para sistemas com um número elevado de equações e atendendo a condição da matriz A ser diagonalmente dominante. Isto se aplica, por exemplo, a sistemas de equações lineares gerados quando da aplicação do método das diferenças finitas ou no cálculo de splines. Uma das variações do método é o chamado método da sobrerelaxação, com equação iterativa mostrada abaixo: x (k +1) = λ x G(k-+S1) + (1 - λ )x (k) onde λ ( 0 < λ < 1 ) é um fator peso com finalidade de acelerar a convergência. Convergência dos métodos iterativos Seja o sistema: x = Cx + d Subtraindo dessa equação a equação de iteração, fica: ( x (t +1) − x = C x (t ) − x ) Definindo-se o erro da k-ésima iteração com: e( t ) = x ( t ) − x tem-se e ( t +1) = Ce ( t ) Teorema: Partindo da equação anterior, demonstra-se que: n A condição ∑C i =1 ij ≤ L < 1 , j = 1, L , n é suficiente para que x (t +1) = Cxt + d convirja. Como consequência, o critério definido por n aii > ∑ aij , i = 1, L , n garante a convergência. j =1 j ≠i A desigualdade apresentada no teorema, define o “critério das linhas” e a matriz que satisfaz a esse critério é conhecida como “diagonal dominante”.