Capítulo 1 Solução numérica de sistemas de equações lineares 1.1 Introdução O cálculo da solução de muitos problemas matemáticos é determinado pela solução de sistemas lineares de equações. A seguir apresentamos uma breve recordação de alguns conceitos básicos de sistemas lineares. 1.1.1 Representação matricial de sistemas de equações lineares Sistemas de equações lineares são representados de forma matricial. Vejamos alguns exemplos. A expressão (1.1.1) representa um sistema linear de 2 equações com 2 incógnitas, x e y: x + 0.98y = 4.95 (1.1.1) x + y = 5.0 Cuja representação matricial é dada por (1.1.2): � 1 0.98 1 1 �� x y 1 � = � 4.95 5 � (1.1.2) Um exemplo de sistema linear de 3 equações com 3 incógnitas, x1 , x2 e x3 é dado em (1.1.3): = 5, 5x + x2 + x3 1 (1.1.3) 3x1 + 4x2 + x3 = 6, 3x + 3x + 6x = 0, 1 2 3 com representação matricial dada em (1.1.4). 5 1 1 5 x1 3 4 1 x2 = 6 x3 3 3 6 0 (1.1.4) Em geral, um sistema de n equações lineares com n incógnitas é escrita do seguinte modo: a11 a12 a21 a22 a31 a32 .. .. . . an1 an2 ··· ··· ··· a1n a2n a3n .. . ··· ann ↓ A x1 x2 x3 .. . xn ↓ x = = b1 b2 b3 .. . bn ↓ b Onde: • A matriz A é chamada de matriz dos coeficientes; • O vetor x de vetor das incógnitas; • O vetor b de vetor dos termos independentes. As matrizes dos coeficientes apresentadas acima são matrizes quadradas, isto é, matrizes onde o número de linhas é igual ao número de colunas. Outros exemplos de matrizes quadradas são mostradas abaixo: 1. Matrizes de ordem 2 (2x2) A= � −1 2 2 4 � B= � 0 0 0 0 � C= � 1 0 0 1 � 2. Matrizes de ordem 3 (3x3) −1 A= 2 3 0.001 4 45 100 0 29 0 B= 0 0 0 0 0 0 0 0 1 C= 0 0 0 1 0 0 0 1 Algumas destas matrizes recebem nomes especiais. 1. Matriz identidade de ordem n ( ou nxn) 1 0 ··· 0 1 0 I= .. . 0 0 ··· 0 0 0 .. . 0 0 1 2. Matriz quadrada A simétrica se aij = aji para todo i, j ∈ {1, 2, 3, . . . , n} . Exemplo 1. As seguintes matrizes quadradas A e B são simétricas e de ordem 2 e 3, respectivamente. 2 −1 30 −1 2 A=( ) B = −1 0 9 2 300 30 9 4 1.1.2 Métodos numéricos para solução de sistemas lineares Estudaremos dois métodos de solução de sistemas lineares de equações: 1. Métodos iterativos 2. Métodos diretos 1.2 Métodos iterativos Os métodos iterativos são aqueles que permitem obter a solução de um sistema linear com uma dada precisão, atráves de um processo infinito convergente. Exemplos de método iterativos são o método de Jacobi e método de Gauss-Seidel. 1.2.1 Método de Jacobi e de Gauss-Seidel Os métodos iterativos consistem em: 1. Transformar o sistema linear de ordem n: (1.2.1) Ax = b em um problema de ponto fixo “linear”, isto é, um problema da seguinte forma: (1.2.2) x = Bx + g onde B é uma matriz (de ordem n) e g um vetor (de n linhas). 2. Aplicar o seguinte processo iterativo no problema do ponto fixo, Eq. (1.2.2) x(k) x(0) = Bx(k−1) + g, k = 1, 2, ... Aproximação inicial para x (1.2.3) 3. Caso x(0) não seja dado considera-se x(0) = 0 (vetor zero) Seguindo-se o processo acima, Eq. (1.2.3), vamos obter uma sequência de aproximações para x: x(1) , x(2) , x(3) , . . . como sabemos se a sequência de aproximações {x̄(k) } converge? Teorema 2. A condição necessária e suficiente para a convergência do processo iterativo definido por (1.2.3) é que: � � max |λi | < 1, i=1,2,...,n onde λi são autovalores da matriz B (Matriz de iteração). Corolário 3. O processo iterativo definido por (1.2.3) é convergente se, para alguma norma de matriz, ||B|| , tem-se: ||B|| < 1 Exemplo 4. Seja: 0.5 −0.2 0.5 B = 0.1 0.6 0.4 −0.3 0.1 0.0 Verificar se o sistema linear Ax̄ = b que tenha a matriz B acima, como matriz de iteração convergirá para a solução. Solução. Lembrando: Algumas norma para matrizes B = (bij ) de ordem n, são: �B�∞ = max 1≤i≤n �B�1 = max 1≤j≤n n � |bij | (Norma linha) j=1 n � |bij | (Norma coluna) i=1 � �� � n 2 bij (Norma euclidiana) �B�E = � i,j=1 1. ||B||∞ • i = 1 : |0.5| + | − 0.2| + |0.5| = 1.2 • i = 2 :|0.1| + |0.6| + |0.4| = 1.1 • i = 3 :| − 0.3| + |0.1| + |0.0| = 0.4 • Então, ||B||∞ =1,2 > 1 Não serve. 2. ||B||1 • j = 1: |0.5| + |0.1| + | − 0.3| = 0.9 • j = 2: | − 0.2| + |0.6| + |0.1| = 0.9 • j = 3: |0.5| + |0.4| + |0.0| = 0.9 • Logo, ||B||1 = 0.9 < 1. Então, podemos afirmar que o processo iterativo com a matriz de iteração B converge!!! 1.2.2 Processo de parada do processo iterativo Para obtermos a solução com uma determinada precisão � devemos durante o processo iterativo, efetuar o seguinte teste: Se : ER = � � (k+1) �x̄ − x̄(k) � ∞ max{1, �x̄(k+1) �∞ } < � (ER = Erro relativo) onde � é uma precisão prefixada, x̄(k) e x̄(k+1) são duas aproximações consecutivas para x̄ (solução do sistema linear), então x̄(k+1) é a solução procurada com precisão � para x̄. 1.2.3 Método de Jacobi-Richardson É um método iterativo para resolver sistemas lineares Ax̄ = b, onde A é uma matriz de ordem n e b é um vetor coluna de tamanho n a11 x1 + a12 x2 + a13 x3 + · · · + a1n xn = b1 (e1 ) a21 x1 + a22 x2 + a23 x3 + · · · + a2n xn = b2 (e2 ) a31 x1 + a32 x2 + a33 x3 + · · · + a3n xn = b3 .. . .. . (e3 ) .. . an1 x1 + an2 x2 + an3 x3 + · · · + ann xn = bn (en ) O método iterativo de Jacobi-Richardson é dada pelos dois seguintes passos: 1. Isola-se x1 da Eq. (e1 ), x2 da Eq. (e2 ), x3 da Eq. (e3 ) e assim sucessivamente até a última variável xn , isolada da Eq. (en ). Vamos obter as seguintes expressões: x1 = b1 − a12 x2 − a13 x3 − · · · − a1n xn a11 (� e1 ) x2 = b2 − a21 x1 − a23 x3 − · · · − a2n xn a22 (� e2 ) x3 = b3 − a31 x1 − a32 x2 − · · · − a3n xn a33 (� e3 ) .. . bn − an1 x1 − an2 x2 − · · · − an,n−1 xn−1 xn = ann (� en ) 2. Aplica-se o seguinte processo iterativo: 3. Define-se um chute inicial x0 para obter as novas aproximaç~oes usando o passo 2. Exemplo 5. Aplique o método de Jacobi-Richardson para resolver o seguinte sistema linear: 4x − y + 2z = 5 x + 5y + z = 7 −0.5x + y + 2z = 2.5 Use 4 casas decimais nas suas operações e pare quando o erro relativo seja menor que 10−1 . Solução. Isolando x, y e z das equaç~oes 1, 2 e 3, respectivamente, temos: x = 5+y−2z 4 y = 7−x−z 5 z = 2.5+0.25x−y 2 −→ −→ −→ x = 1, 25 + 0.25y − 0.5z y = 1.4 − 0.2x − 0.2z z = 1.25 + 0.25x − 0.5y Então, a iteração do método de Jacobi é dada por: x(k) = 1, 25 + 0.25y (k−1) − 0.5z (k−1) y (k) = 1.4 − 0.2x(k−1) − 0.2z (k−1) z (k) = 1.25 + 0.25x(k−1) − 0.5y (k−1) Neste caso, vamos considerar o chute inicial igual a x̄(0) = 0, isto é: x(0) = 0, y (0) = 0, e z (0) = 0 Para k = 1: x(1) = 1.25, y (1) = 1.4, z (1) = 1.25. 1.25 x̄(1) − x̄(0) = 1.4 1.25 � (1) � �x̄ − x̄(0) � ∞ ERk=1 = (1) �x̄ �∞ � (1) � �x̄ − x̄(0) � ∞ = 1.4 ERk=1 = Para k =2: � (1) � �x̄ � � � � (1) � −x̄(0) � �x̄ �x̄(1) �∞ ∞ ∞ =1 = 1.4 x(2) = y (2) = z (2) = 1.25 + 0.25(1.4) − 0.5(1.25) 0.9750 1.4 − 0.2(1.25) − 0.2(1.25) 0.90 1.25 + 0.25(1.25) − 0.5(1.4) 0.8625 −0.2750 x̄(2) − x̄(1) = −0.5 −0.3875 � (2) � �x̄ − x̄(1) � ∞ ERk=2 = = 0.5 � � � � (2) −x̄(0) � �x̄ ∞ � � � (1) � �x̄ � ∞ � � � (2) � �x̄ � = 0.9750 ∞ = 0.5127 < 10−1 ? Na quarta iteração a condição ERk < 10−1 é satisfeita. A solução aproximada para x̄ com erro relativo < 10−1 é 0.9862 x̄(4) = 0.9825 0.9947 Mas o método de Jacobi não converge sempre para qualquer sistema linear de equações. Vamos dar critérios suficientes de convergência, isto é, se acontece certas hipóteses, então o método converge. Caso contrário, não podemos dizer nada. Proposição 6. Seja A = (aij ) a matriz dos coeficientes do sistema linear. Então, 1. Se para cada i = 1, 2, . . . , n, temos: n � |aij | < |aii | Critério das linhas j=1 j �= i então, o método de Jacobi-Richardson converge. 2. Se para cada j = 1, 2, . . . , n, temos: n � |aij | < |aii | i=1 i �= j Critério das colunas então, o método de Jacobi-Richardson converge. Exemplo 7. Verifique se o método de Jacobi-Richardson converge quando aplicado ao seguinte sistema linear =7 10x1 + 2x2 + x3 = −8 x1 + 5x2 + x5 2x + 3x + 10x = 6 1 2 3 Solução. A matriz A do sistema é: 10 2 1 A= 1 5 1 2 3 10 (1.2.4) Vamos aplicar a critério das linhas na matriz A: i = 1 |2| + |1| = 0.3 < 10 ? Sim i=2 |1| + |1| < |5| ? Sim i=3 |2| + |3| < |10| ? Sim. Então, o método de Jacobi aplicado ao sistema linear Ax = b, com A dado pela expressão (1.2.4), produz uma sequência de aproximações convergente!! Observação 8. Uma matriz A com a seguinte propriedade: n � |aij | < |aii | i=1,2,. . . ,n j=1 j �= i é chamada de matriz diagonal dominante. Proposição 9. Se a matriz A é estritamente diagonal dominante, então o método de Jacobi-Richardson converge. Exemplo 10. A matriz A dada pela expressão (1.2.4) é estritamente diagonal dominante. Então, o método de Jacobi-Richardson converge. 1.2.4 Método de Gauss-Seidel Da mesma forma que no método de Jacobi, no método de Gauss-Seidel o sistema linear Ax̄ = b é escrito na forma: x̄ = B x̄ + g O processo iterativo consiste em, sendo x̄(0) uma aproximação inicial, calcular x̄(1) , x̄(2) , x̄(3) , . . . , por: (k) (k) (k) (k) b1 − a12 x2 − a13 x3 − a14 x4 · · · − a1n xn (k+1) x1 = a11 (k+1) (k+1) x2 = b2 − a21 x1 (k+1) (k+1) x3 = b3 − a31 x1 (k) (k) (k) − a23 x3 − a24 x4 · · · − a2n xn a22 (k+1) − a32 x2 (k) (k) − a34 x4 · · · − a3n xn a33 .. . (k+1) bn − an1 x1 (k+1) − an2 x2 (k+1) (k+1) − a13 x3 · · · − an,n−1 xn−1 ann Exemplo 11. Resolver o seguinte sistema linear usando o método de Gauss-Seidel = x(k+1) n 4x − y + 2z = 5 x + 5y + z = 7....(∗∗) −0.5x + y + 2z = 2.5 até que o módulo do erro relativo seja < 10−1 . Solução. x = 5+y−2z 4 y = 7−x−z 5 z = 2.5+0.5x−y 2 −→ −→ −→ x = 1.25 + 0.25y − 0.5z y = 1.4 − 0.2x − 0.2z z = 1.25 + 0.25x − 0.5y (e1) (e2) (e3) Regra associada ao método de Gauss-Seidel aplicada as equaçãoe (e1), (e2) e (e3) são, respectivamente: x(k) = 1.25 + 0.25y (k−1) − 0.5z (k−1) y (k) = 1.4 − 0.2x(k) − 0.2z (k−1) z (k) = 1.25 + 0.25x(k) − 0.5y (k) com x̄(0) = (x(0) , y (0) , z (0) )t = (0, 0, 0)t Na segunda iteração do método de Gauss-Seidel aplicado ao sistema (**), tem-se: x̄(2) e 1, 0938 = 0.9937 1, 0141 ER2 = 0.1475 < 10−1 Proposição 12. (Critério das linhas para o método de Gauss-Seidel). Uma condição suficiente para garantir a convergência do método de Gauss-Seidel, quando aplicado a um sistema Ax̄ = b, com aii �= 0, é n � |aij | < |aii | i = 1, 2, 3, , n j=1, j�=i Proposição 13. (Critério de Sassenfeld) Seja M = max βi . i=1,2,...,n Onde os βi , são definidos por: �n |a1j | |a11 | � � i−1 n � 1 � |aij |βj + |aij | , βi = |aii | j=1 j=i+1 β1 = j=2 i = 2, 3, . . . , n A condição M<1 é suficiente para que as aproximações obtidas pelo método de Gauss-Seidel convirjam para a solução do sistema linear. Exemplo 14. Calcular os valores β1 , β2 , β3 e β4 para o sistema: 2x1 + x2 − 0.2x3 + 0.2x4 = 0.4 0.6x1 + 3x2 − 0.6x3 − 0.3x4 = 7.8 −0.1x1 − 0.2x2 + x3 − 0.2x4 = 1.0 0.4x1 + 1.2x2 + 0.8x3 + 4x4 = −10 Solução. n=4 β1 = β2 �4 |a1j | |1| + | − 0.2| + |0.2| 1.4 = = = 0.7 |a11 | |2| 2 j=2 � � 1 4 � � 1 |0.6|β1 + | − 0.6| + | − 0.3| = |a2j |βj + |aij | = |a22 | j=1 3 j=3 = 0.42 + 0.9 (0.6)(0.7) + 0.9 = = 0.44 3 3 � � 2 4 � � 1 1 β3 = |a3j |βj + |a3j | = [|a31 |β1 + |a32 |β2 + |a34 |] = |a33 | j=1 |a33 | j=4 � 3 � 4 � � 1 1 [|a41 |β1 + |a42 |β2 + |a43 |β3 ] = |a4j |βj + |a4j | = β4 = |a44 | j=1 |a | 33 j=5