Resolução de Sistemas de



Documentos relacionados
Estudaremos métodos numéricos para resolução de sistemas lineares com n equações e n incógnitas. Estes podem ser:

Resolução de sistemas lineares

Cálculo Numérico Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU

Exercícios Teóricos Resolvidos

Análise de Arredondamento em Ponto Flutuante

Lista 1 para a P2. Operações com subespaços

Curvas em coordenadas polares

Exercícios Adicionais

Potenciação no Conjunto dos Números Inteiros - Z

Notas de Cálculo Numérico

Cálculo Numérico Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU

Universidade Federal de São Carlos Departamento de Matemática Curso de Cálculo Numérico - Turma E Resolução da Primeira Prova - 16/04/2008

Problemas de Valor Inicial para Equações Diferenciais Ordinárias

Equações Diferenciais Ordinárias

Notas sobre a Fórmula de Taylor e o estudo de extremos

36 a Olimpíada Brasileira de Matemática Nível Universitário Primeira Fase

Álgebra Linear. André Arbex Hallack Frederico Sercio Feitosa

Exercícios 1. Determinar x de modo que a matriz

Universidade Federal de São João Del Rei - UFSJ

Aula 9 Plano tangente, diferencial e gradiente

AV1 - MA (b) Se o comprador preferir efetuar o pagamento à vista, qual deverá ser o valor desse pagamento único? 1 1, , , 980

Métodos Numéricos. A. Ismael F. Vaz. Departamento de Produção e Sistemas Escola de Engenharia Universidade do Minho aivaz@dps.uminho.

Aula 4 Estatística Conceitos básicos

1 Propagação de Onda Livre ao Longo de um Guia de Ondas Estreito.

Retas e Planos. Equação Paramétrica da Reta no Espaço

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO PROGRAMA DE EDUCAÇÃO TUTORIAL - MATEMÁTICA PROJETO FUNDAMENTOS DE MATEMÁTICA ELEMENTAR

Truques e Dicas. = 7 30 Para multiplicar fracções basta multiplicar os numeradores e os denominadores: 2 30 = 12 5

Faculdade Sagrada Família

Álgebra. SeM MiSTéRio

Equações Diferenciais Ordinárias

FUNÇÃO DE 1º GRAU. = mx + n, sendo m e n números reais. Questão 01 Dadas as funções f de IR em IR, identifique com um X, aquelas que são do 1º grau.

Unidade II - Sistemas de Equações Lineares

Capítulo 5: Aplicações da Derivada

Capítulo 3 - Sistemas de Equações Lineares

ESPAÇOS MUNIDOS DE PRODUTO INTERNO

6. Programação Inteira

Cálculo em Computadores trajectórias 1. Trajectórias Planas. 1 Trajectórias. 4.3 exercícios Coordenadas polares 5

Capítulo 3 - Sistemas de Equações Lineares

INSTITUTO TECNOLÓGICO

Cap. 7 - Fontes de Campo Magnético

[a11 a12 a1n 4. SISTEMAS LINEARES 4.1. CONCEITO. Um sistema de equações lineares é um conjunto de equações do tipo

Representação de números em máquinas

DICAS PARA CÁLCULOS MAIS RÁPIDOS ARTIGO 06

UFV Universidade Federal de Viçosa DMA Departamento de Matemática MAT 138 Noções de Álgebra Linear

Prova de Admissão para o Mestrado em Matemática IME-USP

O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2

Eventos independentes

Matemática Computacional - Exercícios

Introdução ao estudo de equações diferenciais

Capítulo SETE Números em Ponto Fixo e Ponto Flutuante

CAPÍTULO 6 TRANSFORMAÇÃO LINEAR

por séries de potências

Campos Vetoriais e Integrais de Linha

Aula 4 Conceitos Básicos de Estatística. Aula 4 Conceitos básicos de estatística

a 1 x a n x n = b,

Modelos Pioneiros de Aprendizado

Matemática Básica Função Logarítmica

PP 301 Engenharia de Reservatórios I 11/05/2011

4Distribuição de. freqüência

x0 = 1 x n = 3x n 1 x k x k 1 Quantas são as sequências com n letras, cada uma igual a a, b ou c, de modo que não há duas letras a seguidas?

Universidade Federal do Rio Grande do Norte. Centro De Ciências Exatas e da Terra. Departamento de Física Teórica e Experimental

Karine Nayara F. Valle. Métodos Numéricos de Euler e Runge-Kutta

Capítulo 1. x > y ou x < y ou x = y

Aula 17 GRANDEZAS ESCALARES E VETORIAIS. META Apresentar as grandezas vetoriais e seu signifi cado

Fração como porcentagem. Sexto Ano do Ensino Fundamental. Autor: Prof. Francisco Bruno Holanda Revisor: Prof. Antonio Caminha M.

2. Representação Numérica

QUANTIFICADORES. Existem frases declarativas que não há como decidir se são verdadeiras ou falsas. Por exemplo: (a) Ele é um campeão da Fórmula 1.

Análise de Regressão Linear Simples e Múltipla

Aula 2 - Cálculo Numérico

Imagem e Gráficos. vetorial ou raster?

Estatística II Antonio Roque Aula 9. Testes de Hipóteses

Conceitos Fundamentais

QUESTÕES COMENTADAS E RESOLVIDAS

a m1 A ou [ A] ou A ou A A = a ij para i = 1 m e j = 1 n A=[ Os elementos da diagonal principal são: a ij para i = j

4 Mudança de Coordenadas

Testedegeradoresde. Parte X. 38 Testes de Ajuste à Distribuição Teste Chi-Quadrado

E A D - S I S T E M A S L I N E A R E S INTRODUÇÃO

Figura 2.1: Carro-mola

Gobooks.com.br. PucQuePariu.com.br

Método de Eliminação de Gauss. Eduardo Camponogara

Numa turma de 26 alunos, o número de raparigas excede em 4 o número de rapazes. Quantos rapazes há nesta turma?

Além do Modelo de Bohr

7 - Análise de redes Pesquisa Operacional CAPÍTULO 7 ANÁLISE DE REDES. 4 c. Figura Exemplo de um grafo linear.

FACULDADE DE CIÊNCIA E TECNOLOGIA. Cursos de Engenharia. Prof. Álvaro Fernandes Serafim

1 A Integral por Partes

A otimização é o processo de

4.2 Produto Vetorial. Orientação sobre uma reta r

Departamento de Matemática - UEL Ulysses Sodré. Arquivo: minimaxi.tex - Londrina-PR, 29 de Junho de 2010.

Tópico 11. Aula Teórica/Prática: O Método dos Mínimos Quadrados e Linearização de Funções

CURSO DE CÁLCULO INTEGRAIS

Aula 9 ESCALA GRÁFICA. Antônio Carlos Campos

A Torre de Hanói e o Princípio da Indução Matemática

CÁLCULO DE ZEROS DE FUNÇÕES REAIS

Tecnologia da Informação Prof. Mário Henrique de Souza Pardo Resumo Aula 4

Material Teórico - Aplicações das Técnicas Desenvolvidas. Exercícios e Tópicos Relacionados a Combinatória. Segundo Ano do Ensino Médio

O mercado de bens CAPÍTULO 3. Olivier Blanchard Pearson Education Pearson Education Macroeconomia, 4/e Olivier Blanchard

I. Cálculo Diferencial em R n

MD Sequências e Indução Matemática 1

Os Postulados da Mecânica Quântica

Somatórias e produtórias

Transcrição:

Capítulo 4 Resolução de Sistemas de Equações Lineares 4. Introdução Aresolução de sistemas de equações lineares é um dos problemas numéricos mais comuns em aplicações científicas. Tais sistemas surgem, por exemplo, em conexão com a solução de equações diferenciais parciais, determinação de caminhos ótimos em redes (grafos) e interpolação de pontos, dentre outros. Consideraremos aqui, inicialmente, a resolução de um sistema de equações lineares de n equações a n variáveis (incógnitas), a x + a 2 x 2 +...+ a n x n = b a 2 x + a 22 x 2 +...+ a 2n x n = b 2... a n x + a n2 x 2 +...+ a nn x n = b n ou, escrito na forma matricial, Ax = b (4.) onde A é uma matriz quadrada, de ordem n, ex e b são vetores de n elementos, a a 2... a n x b a 2 a 22... a 2n x 2........... = b 2.. a n a n2... a nn x n b n AmatrizA pode apresentar, dependendo do problema de onde o sistema foi derivado, uma certa estrutura e esparsidade. Uma matriz éditaestruturada se os seus elementos estão dispostos de uma determinada forma como, por exemplo, ao longo de algumas diagonais e/ou colunas/linhas (figuras 4.-a) e 4.-b), como um triângulo (a matriz em 4.-c éditatriangular inferior) ou, ainda, sem estrutura qualquer (4.-d). Além disso, as matrizes mostradas na figura 4. apresentam alguns elementos nulos. Uma matriz éditaesparsa se ela contém, aproximadamente, em torno de 9% de elementos nulos; caso contrário, ela éditadensa. Emconseqüência, pode-se dizer que um sistema é esparso ou denso, dependendo de como é a matriz de coeficientes do sistema. Uma das principais metas a se atingir, na resolução de um sistema de equações lineares, é obterasuasolução no menor espaço de tempo e, se possível, sem alterar a sua estrutura e/ou esparsidade. Por isso, existem certos métodos e/ou algoritmos específicos para se resolver alguns sistemas particulares, conforme veremos a seguir. 6

(a) (c), (b), (d) Figura 4.: Estruturas típicas de matrizes: (a)tridiagonal, (b)flecha, (c)triangular inferior, (d) não-estruturada. 4.2 Resolução de Sistemas Triangulares de Equações Lineares Se o sistema (4.) apresenta sua matriz de coeficientes A na forma triangular seja ela inferior, como mostrado na figura 4.-c, ou superior então é possível resolvê-lo de forma imediata, através de substituição direta, para matrizes triangulares inferiores, e de retro-substituição, para matrizes triangulares superiores. Suponha então um sistema triangular inferior, onde L =, Lx = b (4.2) l l 2 l 22 l 3 l 32 l 33...... l n l n2 l n3... l nn Nesse caso, as incógnitas x, x 2,..., x n, podem ser facilmente determinadas como x = b l x 2 = b 2 l 2 x l 22 x 3 = b 3 l 3 x l 32 x 2 l 33... x n = b n n j= l njx j l nn O processo acima, denominado de substituição direta, pode ser expresso de forma algorítmica como. A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 62

Algoritmo 4.2. Substituição Direta proc substituição direta(input: L, b; output: x) for i =, 2,...,n do s for j =, 2,...,i do s s + l ij x j x i bi s l ii endproc onde De forma similar, podemos resolver o sistema triangular superior U = Ux = b (4.3) u u 2 u 3... u n u 22 u 23... u 2n u 33... u 3n.... u nn Nesse caso, as incógnitas x, x 2,..., x n, podem ser facilmente determinadas como x n = b n u nn x n = b n u n,n x n u n,n. x n 2 = b n 2 u n 2, x u n 2,2 x 2 u n 2,n 2... x = b n j=2 u jx j u Note que, devido à estrutura de U, asincógnitas são obtidas na ordem contrária àquela com que são obtidas as incógnitas em um sistema triangular inferior. Esse processo é denominado de retro-substituição e pode ser expresso de forma algorítmica como Algoritmo 4.2.2 Retro-substituição proc retro substituição(input: U, b; output:x) for i = n, n,..., do s for j = i +,i+2,...,n do s s + u ij x j x i bi s u ii endproc A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 63

4.3 por Eliminação Gaussiana Se o sistema de equações lineares não apresenta uma forma simples, tal que se possa determinar as incógnitas facilmente, então podemos efetuar modificações no sistema de tal forma que o transformamos em um sistema triangular, preservando a solução do sistema anterior. Uma vez feitas estas modificações, a solução é obtida de forma imediata, conforme visto na seção anterior. Um processo desse tipo é aquele chamado de eliminação Gaussiana, o qual consiste em se aplicar operações elementares somas e multiplicações àslinhasdamatrizdecoeficientesedo vetor independente b, de tal forma que a matriz passe a ser triangular superior. Suponha, por exemplo, o sistema 7 3 4 2 3 4 8 x x 2 x 3 = 9 9 2 cuja solução é x = x 2 = x 3 =. Para transformarmos a matriz A em uma matriz triangular superior, devemos eliminar os elementos abaixo da diagonal principal de A. Para tanto, se multiplicamos a primeira linha por a 2 /a = /4 e subtraímo-la da segunda, temos: 4 2 3 7, 5 3, 75 x x 2 = 4 8 x 3 9, 25 2 Agora, para eliminar o termo a 3, multiplicamos a primeira linha por a 3 /a =/ e subtraímo-la da terceira: 4 2 3 7, 5 3, 75 x 9 x 2 =, 25 2 5 x 3 3 Note que os elementos do vetor independente b são modificados também! A matriz agora é praticamente triangular superior; falta eliminar o termo a 32. Para tanto, basta multiplicar a segunda linha por a 32 /a 22 = 2/7, 5 e subtraí-la da terceira, de onde 4 2 3 7, 5 3, 75 x x 2 = 6 x 3 9, 25 6 Agora, podemos utilizar o algoritmo de retro-substituição para determinar as incógnitas: x 3 =, 25 3, 75 x 2 = = 7, 5 9 (2 +3 ) x = = 4 Podemos sumarizar o processo então da seguinte forma: para se eliminar os elementos abaixo da diagonal na k-ésima coluna (ou seja, os elementos das linhas k +, k +2,..., n na coluna k), usamos o elemento a kk chamado de pivô para calcularmos um multiplicador z = a ik a kk para cada i-ésima linha abaixo da linha k. Esse multiplicador será utilizado para multiplicar a k-ésima linha e subtraí-la da linha i (incluindo, aqui, os elementos do termo independente b). Uma vez eliminados todos os elementos abaixo da diagonal principal de A, resta-nos uma matriz triangular superior,e,então, podemos determinar a solução x usando o algoritmo da retro-substituição. O processo de eliminação Gaussiana pode ser descrito de forma algoritmica como A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 64

Algoritmo 4.3. Eliminação Gaussiana proc eliminação Gaussiana(input: A, b; output: x) for k =, 2,...,n do for i = k +,k+2,...,n do z a ik a kk a ik for j = k +,k+2,...,n do a ij a ij za kj b i b i zb k call retro substituição(a, b, x) endproc 4.3. Dificuldades O processo de eliminação Gaussiana, descrito acima, não consegue resolver todo e qualquer sistema. Considere, por exemplo, o sistema [ ][ ] [ ] x = (4.4) x 2 2 o qual tem como solução x = x 2 =. No entanto, se formos aplicar eliminação Gaussiana a esse sistema, ele falhará, pois o pivô a =. Éóbvio, portanto, que os pivôs não podem ser nulos. O sistema (4.4) pode, no entanto, ser modificado, procedendo-se a uma troca de linhas - imediatamente temos um sistema triangular superior. No entanto, épossível que, ao longo do processo de eliminação Gaussiana, surja um zero na diagonal principal e não seja possível, por qualquer troca de linhas, removê-lo. Nesse caso, o sistema não tem solução ; o algoritmo para a eliminação Gaussiana deve ser modificado adequadamente para se levar em conta tal possibilidade. Opróximo exemplo mostra uma outra dificuldade associada ao método: [ ][ ] [ ] ε x = (4.5) x 2 2 onde <ε, cuja solução correta é x = ε x 2 = 2ε ε No entanto, se aplicarmos eliminação Gaussiana ao sistema (4.5), obteremos x 2 = 2 ε ε x =( x 2 )ε o qual obviamente aproxima bem x 2, mas o valor de x é completamente errado! Isso acontece porque, se ε é pequeno o suficiente em um determinado computador, tanto 2 ε quanto ε serão calculados como ε (devido à perda de dígitos significativos na subtração). Desse exemplo, tiramos uma outra lição: o pivô deve, sempre, ser escolhido como o maior possível, em módulo. O processo de escolha de pivôs, chamado de pivotamento, implica na troca de linhas da matriz de coeficientes (bem como do termo independente b). Computacionalmente, no entanto, não é Esta é, inclusive, uma maneira de se determinar se o sistema é singular, istoé, a matriz de coeficientes não tem inversa. A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 65

aconselhável se movimentar dados na memória de forma excessiva, pois o tempo de execução do algoritmo passa a ser proibitivo. Podemos, no entanto, modificar o algoritmo de eliminação Gaussiana utilizando um vetor auxiliar de índices chamado de p o qual implicitamente diz quais linhas foram trocadas; os elementos desse vetor são utilizados para se acessar convenientemente os elementos da matriz e do termo independente. Note, ainda, que o algoritmo deve ser capaz de tratar o caso no qual não é necessário se efetuar qualquer troca de linhas. No algoritmo a seguir, é feito também um escalonamento das linhas, isto é, um fator s i = max j n a ij, i =, 2,...,n é calculado para cada linha. Esse fator é utilizado para se escolher um pivô que seja o maior relativo aos elementos de uma coluna; em outras palavras, na k-ésima coluna, iremos selecionar o maior valor a pik /s pi nas linhas k i n. O algoritmo para a eliminação Gaussiana com pivotamento e escalonamento pode ser expresso como segue: Algoritmo 4.3.2 Eliminação escalonamento Gaussiana com pivotamento e proc eliminação Gaussiana pivotamento e escalonamento(input: A, b; output: x) for i =, 2,...,n do p i i s i max j n a ij for k =, 2,...,n do j k for i = k +,k+2,...,n do if ( a pik /s pi a pjk /s pj ) then j i break endif q p k p k p j p j q if (a pk k =)then break endif for i = k +,k+2,...,n do z a p i k a pk k a pik z for j = k +,k+2,...,n do a pij a pij za pk j b pi b pi zb pk for i = n, ( n,..., do x i b pi ) n j=i+ a p ijx j /a pij endproc A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 66

Note que os fatores a p i k a pk k utilizados para se eliminar os elementos abaixo da diagonal são armazenados na matriz A, onde se colocariam zeros (conforme utilizado no algoritmo da eliminação Gaussiana sem pivotamento). Isso é feito de forma a se poder obter, a partir do algoritmo acima, a fatoração LU da matriz A, conforme veremos na seção a seguir. O exemplo abaixo mostra o funcionamento do algoritmo descrito acima: Exemplo 4. Calcule a solução do sistema 2 3 6 6 8 3 2 x x 2 = 3 x 3 2 Solução: Inicialmente, temos p =(, 2, 3) (de acordo com o algoritmo)e s =(6, 8, 3) (verifique, por inspeção). A cada passo, temos: A = k j p i z 3 (3, 2, ) 2, 3333 3, 6667, 6667 4, 3333 6, 6667, 3333 5, 3333 7, 6667 3, 2,, b =, 3333 2, 3333 2, k j p i z 2 3 (3,, 2) 3, 238, 6667 4, 3333 6, 6667 A =, 3333, 238, 5385 b = 3, 2,, Uma vez efetuada a eliminação, procede-se ao cálculo das incógnitas: i =3 :, 654 p 3 =2,x 3 =, 5385 =3, 3333 ( 2) i =2 : p 2 =,x 2 = 4, 3333 i = : p =3,x = 2 ( ) = 3 4.3.2 Eliminação Gaussiana e a Fatoração LU, 3333, 654 2, Conforme visto na seção anterior, o algoritmo de eliminação Gaussiana com pivotamento e escalonamento produz, de forma implícita, uma matriz triangular inferior, uma matriz triangular superior e um vetor de permutação. Como essas matrizes foram obtidas por transformações sobre amatriza original, podemos de alguma forma relacioná-las entre si. Primeiramente, analisemos o vetor de permutação; seus elementos indicam qual linha foi trocada com outra, i.e., se p j = k, isso significa que a linha j foi trocada com a linha k. Essa permutação pode ser expressa, também, através de uma matriz de permutação, P,aqualtem como elementos apenas o e o. No exemplo mostrado na seção anterior, obtemos p =(3,, 2) ao fim; ou seja, a linha 3 está no lugar da linha ; a linha está no lugar da linha 2 e, por fim, a linha 2 está na linha 3. A matriz de permutação correspondente é P =. =2 A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 67

Arelação existente entre A e as matrizes triangular inferior, L; triangular superior, U; ea matriz de permutação P éaseguinte: PA = LU onde L é triangular inferior com diagonal unitária e os seus elementos abaixo da diagonal principal encontram-se armazenados na matriz A, ao final do algoritmo de eliminação Gaussiana com pivotamento e escalonamento, porém possivelmente permutados. Usando mais uma vez o exemplo anterior, temos: PA = LU 2 3 6 6 8 =, 6667 3 2 4, 3333 6, 6667 3 2, 3333, 238, 5385 = 3 2 2 3 6 6 8 onde as matrizes L e U foram permutadas adequadamente, usando a matriz P.Pode-severificar, por inspeção, que o lado direito da igualdade éamatriza com as suas linhas trocadas conforme expresso por P. A fatoração LU é útil quando, para uma mesma matriz de coeficientes A, temos de resolver m sistemas de equações lineares Ax (j) = b (j), com termos independentes b (), b (2),..., b (m). Basta, então, obter a fatoração com o algoritmo de eliminação Gaussiana com pivotamento e escalonamento (sem calcular x i asúltimas três linhas do algoritmo), obtendo L, U e P. Valendose da igualdade PAx = Pb e, como PA = LU, podemos escrever L(Ux)=b, de onde a solução de um sistema Ax = b é obtida resolvendo-se dois sistemas triangulares: Ly = Pb Ux = y A fatoração LU, bem como a solução dos sistemas triangulares acima, são expressas pelos algoritmos 4.3.3 e 4.3.4. A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 68

Algoritmo 4.3.3 Fatoração LU proc fatoração LU(input: A, b; output: A, b, p) for i =, 2,...,n do p i i s i max j n a ij for k =, 2,...,n do j k for i = k +,k+2,...,n do if ( a pik /s pi a pjk /s pj ) then j i break endif q p k p k p j p j q if (a pk k =)then break endif for i = k +,k+2,...,n do z a p i k a pk k a pik z for j = k +,k+2,...,n do a pij a pij za pk j endproc Algoritmo 4.3.4 Resolve sistema usando LU proc resolve sistema LU(input: A, b, p; output: x) for i =, 2,...,n do z i b pi i j= a p ijz j for i = n, n,..., do x i endproc ( z i n j=i+ a p ijx j ) /a pii 4.3.3 O Custo Computacional da Fatoração LU O custo computacional de um algoritmo numérico é, normalmente, medido em termos do número de multiplicações e/ou divisões, já que adições e subtrações são efetuadas em uma fração do tempo necessário para aquelas outras duas operaçõesaritméticas. Assim, ao nos referirmos a operações, estaremos nos referindo a multiplicações e/ou divisões. Para se obter a fatoração LU de uma matriz A, vemos que, quando k =, no algoritmo respectivo, para cada uma das n linhas abaixo da linha, é calculado um multiplicador e, então, um múltiplo da primeira linha é subtraído daquelas n linhas; isso nos dá n operações. A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 69

Como n linhas são processadas dessa forma, temos um total de n(n ) n 2 operações para aprimeiracoluna. Para as demais colunas, note que o mesmo raciocínio acima éválido, mas écomoseamatriz diminuísse de uma linha e uma coluna a cada novo valor de k. Assim, para todos os n pivôs a serem calculados, teremos: n 2 +(n ) 2 +...+3 2 +2 2 = 3 n3 + 2 n2 + 6 n 3 n3 + 2 n2 aqualé obtida usando n k= k2 = 6n(n + )(2n +). Para se corrigir o termo independente b, gasta-se n operações, depois n 2, e assim sucessivamente, de onde (n ) + (n 2) +...+= 2 n2 2 n. Finalmente, o processo de retro-substituição custa +2+3+...+ n = 2 n2 + 2 n operações. Combinando todas as expressões, podemos dizer que, para se resolver m sistemas de equações lineares Ax (i) = b (i), usando a fatoração LU, apresenta um custo computacional de aproximadamente 3 n3 + ( 2 + m oquemostraqueé mais eficiente efetuar a fatoração LU apenas uma vez, e depois resolver os m sistemas lineares, do que se resolvêssemos cada sistema independentemente, pois o custo, nesse caso, seria da ordem de 3 mn3. 4.3.4 Resolução de sistemas com múltiplos termos independentes Existem situações que requerem a solução de vários sistemas lineares, todos eles com a mesma matriz de coeficientes, porém com diferentes termos independentes. Como visto na seção 4.3.3, é mais vantajoso, nesse caso, realizar-se a fatoração LU de A, apenas uma vez; a solução de todos os sistemas é obtida, simplesmente, calculando-se as soluções dos sistemas triangulares Ly (i) = Pb (i) e Ux (i) = y (i), onde o índice (i) identifica um sistema específico. 4.3.4. Cálculo da inversa de uma matriz Uma dessas situações éocálculo da inversa de uma matriz. Note que tal cálculo não é realizado com o fim de se resolver um sistema de equações (utilizando-se a relação x = A b; aplicações que envolvam certas decomposições de matrizes exigem que se escreva um vetor v como XDX, onde X e D são matrizes. Seja então a matriz A, cujainversaa é desejada. Como, por definição, o produto entre uma matriz e a sua inversa é a matriz identidade I, ) n 2 AA = I (4.6) podemos escrever o problema de determinação da inversa na forma de um sistema de equações lineares com múltiplos termos independentes (e, conseqüentemente, múltiplas soluções) como onde X A, i.e., as colunas (X) i são as colunas de A. AX = I (4.7) A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 7

Dessa forma, obtendo-se a fatoração LU de A, a primeira coluna de A é obtida resolvendo-se os sistemas Ly (i) = P (4.8)... e U(X) = y () (4.9) e a segunda coluna éobtidacomo Ly (2) = P (4.)... e U(X) 2 = y (2) (4.) easdemaiscolunassão obtidas similarmente. Note que, computacionalmente, basta usar apenas um vetor y, sendo o mesmo reutilizado a cada novo sistema resolvido. Exemplo 4.2 Obtenha a inversa da matriz 2 A = 2 Solução: Aplicando-se o algoritmo 4.3.3, obtemos os fatores L, U e P : L =, 5, 5 U = P = 2 5 5 Agora, aplica-se o algoritmo 4.3.4 usando-se como termo independente o vetor (,,...,) T, i.e., resolve-se Ly () = P, 5 y () =, 5 y () = A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 7

e 2 5 5 U(X) = y () (X) = (X) =,, e Para a segunda coluna, temos, 5, 5 Ly (2) = P y (2) = y (2) = 2 5 5 U(X) 2 = y (2) (X) 2 = (X) 2 =,, 3, e Finalmente, para a terceira coluna, temos, 5, 5 Ly (3) = P y (3) = y (3) =, 5 2 5 5 U(X) 3 = y (3) (X) 3 =, 5 (X) 3 =,, A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 72

Assim, A é dada por A = X =,,, 3,,,, e pode-se verificar que 2 2,,,, 3,,, AA = I = 4.4 Resolução Iterativa de Sistemas de Equações Lineares Em certos casos, não é conveniente se resolver o sistema Ax = b através de um método direto como a eliminação Gaussiana. Considere, por exemplo, a matriz A derivada da discretização em diferenças-finitas (com estêncil de 5 pontos) do operador diferencial 2, cuja estrutura é mostrada na figura 4.2; se aplicarmos a fatoração LU sobre A, alguns dos elementos que eram nulos em A passarão a ser diferentes de zero, tanto em L como em U (figura 4.3). Note que A tem 64 elementos não-nulos, ao passo que L e U apresentam um total de 34 elementos não-nulos. A. Estrutura da matriz A 2 4 6 8 2 4 6 2 4 6 8 2 4 6 nz = 64 Figura 4.2: Estrutura da matriz A derivada da discretização em diferenças-finitas do operador diferencial 2. eliminação Gaussiana está, nesse caso, destruindo a estrutura e/ou a esparsidade da matriz, o que não é aconselhável, principalmente para matrizes grandes (n >). Por outro lado, mesmo quando a matriz é densa ou seja, a inserção de elementos não-nulos não implicará em aumento considerável do uso da memória pode não ser aconselhável utilizar um método direto, se a solução desejada necessita apenas um número pequeno de dígitos corretos. Estrutura da matriz L Estrutura da matriz U 2 2 4 4 6 6 8 8 2 2 4 4 6 6 2 4 6 8 2 4 6 nz = 67 2 4 6 8 2 4 6 nz = 67 Figura 4.3: Estruturas da matriz L (à esquerda)e U (à direita), resultantes da fatoração LU de A. A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 73

Uma outra razão, que justifica o uso de métodos iterativos (ver [3]), é o fato de seu custo computacional ser proporcional a n 2 (e, às vezes, até mesmoan), o que os torna bastante competitivos, se comparados a um método direto (cujo custo é proporcional a n 3 ). 4.4. Normas de vetores e de matrizes Como todo processo iterativo, é necessário saber quando se alcançou a convergência do processo em nosso caso, obteve-se uma estimativa x k que aproxima suficientemente x = A b. Fazendo uma analogia com o método da bissecção (ver seção 2.2), onde se detectava a convergência quando o comprimento do intervalo era menor do que uma tolerância pré-especificada, aqui vamos também calcular um comprimento de um vetor (em IR n ). Para se calcular esse comprimento, utiliza-se uma norma. Uma norma de um vetor x pertencente a um espaço vetorial V é uma função x : V IR + que obedece aos seguintes postulados: x >, se x,x V λx = λ x, se λ IR,x V x + y x + y se x, y V (desigualdade triangular) A norma de um vetor é o seu comprimento no espaço vetorial V ;é uma generalização da noção de valor absoluto de um número real. Para o espaço vetorial IR n, a norma mais conhecida é a chamada norma Euclidiana, definida por x 2 = ( n i= x 2 i ) 2 (4.2) onde x =(x,x 2,...,x n ) T. Particularmente, em IR 2,temos x 2 = x 2 + x2 2,queé a expressão paraadistância de um ponto com coordenadas (x,x 2 )emrelação àorigemdosistemadeeixos cartesianos. Existemoutrasnormasquesão bastante usadas em cálculos numéricos, como a norma-l eanorma-l, x = n max i= x i (4.3) x = n x i (4.4) as quais são bem mais simples e menos onerosas de se calcular do que a norma Euclidiana. 4.4.2 Normas de matrizes Uma vez especificada uma norma de um vetor, a norma matricial subordinada é definida como para uma matriz An n. Pode-severificarque i= A =sup Au : u IR n, u = (4.5) Ax A x, x IR n Por exemplo, a norma matricial subordinada da norma vetorial é dada por A = n max i= n a ij (4.6) j= A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 74

4.4.3 Número de condição de uma matriz Normas de vetores e de matrizes nos permitem avaliar o quão suscetível a erros numéricos será uma computação empregando-se uma dada matriz A. Para tanto, suponha que se deseja resolver osistemaax = b, onde A é n n e A existe. Se A tem seus valores perturbados (isto é, ligeiramente modificados), gerando uma nova matriz B, asolução do sistema não émaisx = A b mas x = Bb. Essa perturbação pode ser medida em termos do comprimento do vetor x x, x x = x Bb = x BAx = (I BA)x I BA x ou x x I BA x o que nos dá umanoção do erro relativo entre x e x. De forma análoga, suponha que b foi perturbado, gerando um novo vetor b. Se x e x são as soluções de Ax = b e A x = b, podemos medir o erro absoluto entre x e x escrevendo e o erro relativo como x x = A b A b = A (b b) A b b x x A b b = A Ax b b b A A x b b b x x x A A b b b o que nos diz que o erro relativo em x é limitado pelo número A A. Essa quantidade é denominada de número de condição de A, eé denotada por Vejamos um exemplo do uso de κ(a). κ(a) = A A (4.7) Exemplo 4.3 Seja a matriz A e sua inversa A, [ ] +ε A = A ε = [ ε 2 ε +ε ]. Usando a norma-l,então A =2+ε e A = ε 2 (2 + ε), deonde ( ) 2 2+ε κ(a) = > 4 ε ε 2. Se ε,, então κ(a) 4. Isso quer dizer que, se b sofrer uma pequena perturbação, a perturbação relativa na solução do sistema Ax = b será 4 vezes maior! Uma matriz que tenha um número de condição muito grande é dita mal-condicionada, e pequenas variações nos valores de b induzirão um grande erro relativo no vetor solução do sistema. A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 75

4.4.4 Erros computacionais e condicionamento Qualquer solução de um sistema linear deve ser considerada uma solução aproximada, em virtude de erros de arredondamento e outros. O método mais natural para determinação da precisão de uma solução éverificarquão bem esta soluçãosatisfazo sistema original, calculando o vetorresíduo. Se a solução aproximada x for uma boa aproximação, pode-se esperar que cada componente de r = b A x seja pequeno, pelo menos em um conceito relativo. Há sistemasdeequações, contudo, em que o resto não proporciona uma boa medida da precisão da solução. São sistemas nos quais pequenas alterações nos dados de entrada conduzem a mudanças significativas na solução. Estes são denominados sistemas instáveis ou mal-condicionados. Exemplo 4.4 A solução exata do sistema { x + x 2 =2, x + x 2 =2, é x = x 2 =. Supondo que, devido a erros, a solução calculada fosse x = x 2 = 2, 5 o vetor resíduo neste caso seria R T =[, 5;, 5]. Entretanto, o erro em cada resposta, x e x 2,é de aproximadamente uma unidade. Por outro lado, os coeficientes também podem conter erros. Supondo que algum tipo de erro tenha mudado as equações acima para { x + x 2 =2, x + x 2 =2, 7 até mesmo uma solução bem diferente da anterior, como x = e x 2 = 98 produziria um resíduo bem pequeno, R T =[;, 3]. Erros deste tipo, ao contrário daqueles causados pela acumulação de erros de arredondamento, não podem ser evitados por uma programação cuidadosa. Como, então, determinar quando um problema é mal-condicionado? Figura 4.4: Os sistemas que descrevem a intersecção das retas são, da esquerda para a direita: bem-condicionado, mal-condicionado e singular. Em geral, tem-se a situação mostrada na figura 4.4, para o caso de duas retas. Quando o sistema é ordem maior, no entanto, deve-se recorrer a medidas algebricas para se estimar o malcondicionamento do sistema. Uma dessas medidas é o chamado determinante normalizado da matriz dos coeficientes. Paraobtê-lo, normaliza-se a matriz de coeficientes A dividindo-se cada A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 76

linha de A pela raiz quadrada da soma dos quadrados dos elementos de cada linha, norm A = a a 2 α a 2 a 22 α 2. a n α n a n α a 2n α 2 α α 2..... a n2 α n a nn α n = A α α 2... α n (4.8) onde α i = a 2 i + a2 i2 +...+ a2 in. Diz-se, então, que uma matriz A é mal-condicionada se o número norm A for pequeno, comparado com a unidade. Exemplo 4.5 Seja a matriz A = [, verifique se ela é mal-condicionada. Solução: Calculando-se α = e α 2 = 2, 2, podemos obter, norm A =, 5 α α 2 ou seja, A é dita ser mal-condicionada. 4.4.5 Métodos iterativos Dado um sistema não-singular de n equações lineares Ax = b, ummétodo iterativo para resolver esse sistema é definido por um conjunto de funções Φ k (x,x,...,x k,a,b), onde x =Φ (A, b) é uma estimativa inicial para a solução x = A b e x, x 2,... são as aproximações sucessivas para asolução, ] ; x = Φ (x,a,b) x 2 = Φ 2 (x,x,a,b). x k = Φ k (x,x,...,x k,a,b) As funções Φ k nos definem os métodos iterativos. Diz-se que um método é estacionário se, para um m>, Φ n não depende de n para todo n m, ouseja,φ=φ m =Φ m+ =... Nesse caso, x n+ depende de, no máximo, m vetores anteriores, x n, x n,..., x n m+. Por exemplo, para m =2,temos x = Φ (A, b) (4.9) x = Φ (x,a,b) (4.2) x k = Φ(x k 2,x k,a,b), k =2, 3,... (4.2) O grau de um método estacionário é ˆm (para ˆm m) se,paran m, x n+ depende de x n, x n,..., x n ˆm+ mas não para k<n ˆm+. O grau de um método iterativo definido pelas equações (4.9)-(4.2) é 2. Um método iterativo éditolinear se todas as funções Φ i são funções lineares de x, x,..., x n. Assim, um método iterativo estacionário linear de grau pode ser expresso por onde G é uma matriz e f um vetor, escolhidos adequadamente. x k+ = Gx k + f (4.22) A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 77

Para um método como em (4.22), podemos nos referir a um sistema linear relacionado, (I G)x = f; (4.23) onde I é a matriz identidade de ordem n. Por exemplo, se G = I A, f b, então (4.23) é equivalente a Ax = b. A definição de um método iterativo pode também ser feita a partir de uma matriz separadora, Q. Podemos escrever o sistema Ax = b na forma equivalente Qx =(Q A)x + b (4.24) isto é, x =Φ(x, A, b), o que nos leva a escrever um processo iterativo, de aproximações sucessivas, como Qx k =(Q A)x k + b, k =,,... (4.25) AmatrizQ deve ser escolhida de tal forma que se possa calcular rapidamente os x k equea seqüência x, x,... convirja rapidamente para a solução x = A b. A fim de obter uma condição necessária e suficiente para que haja convergência, reescrevemos (4.25) como x k =(I Q A)x k + Q b (4.26) Asolução x satisfaz a equação i.e., x éumponto fixo do mapa x =(I Q A)x k + Q b (4.27) x (I Q A)x k + Q b (4.28) Usando as equações (4.26) e (4.27), podemos obter uma expressão para o erro x k x como e, aplicando normas, temos x k x =(I Q A)(x k x) (4.29) x k x (I Q A) (x k x) (I Q A) 2 (x k 2 x). (I Q A) k (x x) (4.3) de onde lim k x =, k se (I Q A) < (4.3) desde que A e Q sejam invertíveis. 4.4.6 Refinamento iterativo O primeiro método iterativo para a solução de um sistema de equações lineares Ax = b é o chamado refinamento iterativo. Para uma estimativa inicial x, definimos o vetor erro e como e = x x (4.32) eovetorresíduo r como r = b Ax. (4.33) O vetor erro nos diz o quanto x está distantedex, eovetorresíduo nos diz o quanto Ax está distante de b. A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 78

Multiplicando r por A,temos A r = A b x = x x = e (4.34) e, usando essa igualdade, podemos obter uma expressão para x: x = x + A r (4.35) Note que a equação (4.35) envolve A ; mas, obviamente, não podemos utilizá-la, pois se a calculássemos, a solução do sistema seria imediata! Por outro lado, a equação (4.34) nos permite escrever Ae = r (4.36) e, combinando as equações (4.33), (4.36) e (4.35), podemos descrever o método do refinamento iterativo como r k = b Ax k resolve Ae k = r k, k =,,... (4.37) x k+ = x k + e k Ométododorefinamentoiterativoé utilizado em conjunto com um método direto, como a eliminação Gaussiana. Tendo fatorado A no produto LU e obtido uma solução x para Ax = b (a qual pode não ser muito boa, devido a erros de arredondamento), fazemos x = x e refinamos essa solução, usando (4.37), até quex k seja suficientemente bom. Note que a fatoração LU pode, agora, ser utilizada para resolver Ae k =(LU)e k = r k. Se consideramos que a solução obtida com a fatoração LU de A não foi exata, então podemos dizer que U L = B A.Usandoaequação (4.35), escrevemos x k+ = x k + A r k = x k + A b A Ax. k.. B A... = x k + B(b Ax k ) (4.38) De onde podemos mostrar que o método converge para uma solução: subtraindo x de ambos os lados da equação (4.38), temos x k+ x = x k x + B(b Ax k )... b = Ax... = x k x + B(Ax Ax k )=(I BA)(x k x) e, tomando normas de ambos os lados da igualdade acima, vem, pela desigualdade triangular: x k+ x I BA x k x... x k x = I BA x k x... I BA 2 x k x.. I BA k x x o que nos diz que os erros convergem para se I BA <. Assim como nos métodos de determinação de raízes de funções, precisamos definir alguns critérios de parada do processo de refinamento. O primeiro desses critérios é a estipulação de um número máximo de iterações (k max ); o segundo pode ser baseado na norma do resíduo r k, devidamente escalonada por b (usando uma norma qualquer, previamente escolhida). Assim, as iterações procederão enquanto r k <ε b (4.39) não for satisfeito; ε éumnúmero real, escolhido de acordo com a exatidão requerida. Um algoritmo que expressa o método do refinamento iterativo pode ser escrito como: A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 79

Algoritmo 4.4. Refinamento Iterativo proc refinamento iterativo(input: A, L, U, b, x, k max, ε; output:x k ) t ε b for k =,,...,k max do r k b Ax k if r k <tthen break endif resolve (LU)e k = r k, obtendo e k x k+ x k + e k endproc O exemplo abaixo [] mostra o comportamento desse método. Exemplo 4.6 Seja o sistema 42 2 4 5 2 4 5 84 4 5 84 7 5 84 7 6 x = cuja solução é o vetor x =(,,, ) T. Utilizando um computador com apenas 6 casas decimais de precisão, obtemos como solução inicial, através da eliminação Gaussiana, com pivotamento, o vetor x =(, 999988,, 37,, 99967,, 25) T Agora, dispondo dos fatores triangulares da fatoração LU, podemos utilizar o algoritmo 4.4. e obter: x =(, 999994,, 69,, 99983,, ) T 4.4.7 Método iterativo de Jacobi 875 539 399 39 x =(, 999996,, 46,, 99989,, 7) T x =(, 999993,, 8,, 99982,, 2) T x =(,,, 6,, 999984,, ) T Suponha o sistema (4.), com n = 3, sem perda de generalidade. Se os elementos da diagonal de A são todos não-nulos, então pode-se isolar cada variável x, x 2 e x 3 através de onde x = c 2 x 2 + c 3 x 3 + d x 2 = c 2 x + c 23 x 3 + d 2 x 3 = c 3 x + c 32 x 2 + d 3 c ij = { a ij a ii, i j, i = j d i = b i /a ii Com essa transformação, o sistema Ax = b foi transformado em um sistema da forma (I C)x = d A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 8

onde C = D (D A), d = D b e D = diag(a) (istoé, a matriz formada pelos elementos da diagonal de A). De forma equivalente, podemos escrever x = Cx + d o que sugere uma correção de x por aproximações sucessivas, x k+ = Cx k + d = D (D A)x k + D b = = (I D A)x k + D b, k =,,... (4.4) a qual define o método iterativo de Jacobi. A matriz separadora, aqui, é D ;ométodo de Jacobi converge se a matriz A for diagonal dominante, i.e., n a ii > a ij (4.4) e, usando a norma-l, j= j i I D A = max i n de onde pode-se verificar que a dominância diagonal é condição necessária para a convergência do método. Para obtermos a solução do sistema Ax = b via o método iterativo de Jacobi, podemos usar a forma equivalente a (4.4), x k+ = x k D Ax k + D b (4.42) Note que, do ponto de vista de eficiência do processo, deve-se efetuar as divisões de cada linha de A edoelementorespectivodeb pelo elemento na diagonal de A antes de se iniciar as iterações. Além disso, se o critério de parada envolve o cálculo do resíduo r k = b Ax k, isso exigiria um produto matriz-vetor a mais por iteração, o que pode ser evitado se usarmos como critério de parada r k+ = D r k+, D r k+ ε D b (4.43) pois r k+ = D r k+ = D b D Ax k+ e os termos no lado direito da equação já foram calculados, anteriormente, para se obter x k+.o algoritmo a seguir utiliza essas idéias: n j= j i a ij a ii A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 8

Algoritmo 4.4.2 Método de Jacobi proc jacobi(input: A, b, x, k max, ε; output:x k+ ) for i =, 2,...,n do q i a ii t ε q b for i =, 2,...,n do for j =, 2,...,n do a ij a ij q i % sobrescreve A com D A b i b i q i % sobrescreve b com D b for k =,,...,k max do w Ax k x k+ = x k w + b r k+ b w if r k+ <tthen break endif endproc O exemplo abaixo ilustra o comportamento típico do método de Jacobi: Exemplo 4.7 Resolva o sistema 4 4 4 4 x = cuja solução é x = (, 667,, 3333,, 3333,, 667) T, usando o método de Jacobi com x = (,,, ) T aumatolerância ε = 2. Solução: Aplicando o método de Jacobi, obtemos x = (,, 25,, 25, ) T x 2 = (, 25,, 25,, 25,, 25) T x 3 = (, 25,, 325,, 325,, 25) T x 4 = (, 563,, 325,, 325,, 563) T x 5 = (, 563,, 328,, 328,, 563) T x 6 = (, 64,, 328,, 328,, 64) T x 7 = (, 64,, 332,, 332,, 64) T x 8 = (, 66,, 332,, 332,, 66) T ou seja, com oito iterações, obtemos uma aproximação para a solução dentro da tolerância especificada. 4.4.8 Método iterativo de Gauss-Seidel Analisando o método de Jacobi, vê-se que, a cada iteração, produzem-se todos os elementos do vetor x k+, usando apenas os elementos do vetor x k. No entanto, nada impede que, àmedida A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 82

que os elementos de x k+ são produzidos, eles possam ser utilizados para produzir os próximos elementos do próprio x k+.ométodo de Gauss-Seidel faz exatamente isso. De forma análoga ao método de Jacobi, escrevemos, para n =3, x k+, = u 2 x k,2 + u 3 x k,3 + d x k+,2 = l 2 x k+, + u 23 x k,3 + d 2 x k+,3 = l 3 x k+, + l 32 x k+,2 + d 3 ou, em forma matricial, x k+ = Lx k+ + Ux k + d (4.44) onde L = D A L, U = D A U, D = diag(a), d = D b e A L e A U indicam as porções estritamente inferior e superior de A (isto é, sem a diagonal). No caso do método de Gauss-Seidel, podemos escrever a correção para x k+ de forma mais compacta; note que a expressão Lx k+ + Ux k pode ser calculada como n ( ) aij x j, i =, 2,...,n j= j i a ii Ocritério de parada, no entanto, deve ser calculado usando o resíduo r k+ = b Ax k+,como mostra o algoritmo 4.4.3. Algoritmo 4.4.3 Método de Gauss-Seidel proc gauss seidel(input: A, b, x, k max, ε; output:x k+ ) for i =, 2,...,n do q i a ii t ε q b for i =, 2,...,n do for j =, 2,...,n do a ij a ij q i % sobrescreve A com D A b i b i q i % sobrescreve b com D b for k =,,...,k max do u x k for i =, 2,...,n do u i b n j= a ij u j j i x k+ u r k+ b Ax k+ if r k+ <tthen break endif endproc O exemplo 4.8 ilustra o comportamento típico do método de Gauss-Seidel: Exemplo 4.8 Resolva o sistema 4 4 4 4 x = A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 83

cuja solução é x = (, 667,, 3333,, 3333,, 667) T,usandoométodo de Gauss-Seidel com x =(,,, ) T aumatolerância ε = 2. Solução: Aplicando o método de Gauss-Seidel, obtemos x = (,, 25,, 25,, 25) T x 2 = (, 25,, 325,, 325,, 563) T x 3 = (, 563,, 328,, 328,, 64) T x 4 = (, 64,, 332,, 332,, 66) T ou seja, com quatro iterações, obtemos uma aproximação para a solução dentro da tolerância especificada. Da mesma forma que o método de Jacobi, uma condição necessária e suficiente para a convergência do método de Gauss-Seidel équeamatriza seja diagonal-dominante (ver equação 4.4). Existe um critério de Sassenfeld que, se atendido, garante a convergência do método. Para se verificar se uma matriz de coeficientes do sistema satisfaz a tal critério, calcula-se os valores S, S 2,..., S n, definidos como S = a ( a 2 + a 3 +...+ a n S 2 = a 22 ( a 2 S + a 23 +...+ a 2n.. S n = a nn ( a n S + a n2 S 2 +...+ a nn S n e, se S i <, i n entãoométodo de Gauss-Seidel irá convergir. (4.45) Exemplo 4.9 Para a matriz do exemplo 4.8, verifique se o critério de Sassenfeld é atendido. Solução: Calculando os valores de S i,temos: S = ( + ) =, 5 < 4 S 2 = (, 5+ ) =, 375 < 4 S 3 = (, 5+ ) =, 375 < 4 S 4 = (, 375 +, 375) =, 875 < 4 e, como S i <, i 4, ocritério de Sassenfeld é atendido e, por conseguinte, o método de Gauss-Seidel é convergente para um sistema com essa matriz de coeficientes. O critério de Sassenfeld é, no entanto, apenas suficiente; uma matriz pode não atendê-lo e, mesmo assim, o método de Gauss-Seidel pode convergir, como mostra o exemplo abaixo. Exemplo 4. Resolvaosistema [ 3 ] [ x = 3 3 ] Solução: Ocritério de Sassenfeld não é satisfeito pois, calculando os valores de S i,temos S = S 2 = ( = ( ) =, 333...< 3 A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 84

No entanto, o método de Gauss-Seidel converge para a solução x = (, 5,, 5) T em iterações, a uma tolerância de 4 : x = (,,, ) T x = (3,, 2, ) T x 2 = (,,, 3333) T x 3 = (, 6667,, 5556) T x 4 = (, 4444,, 485) T x 5 = (, 585,, 562) T x 6 = (, 4938,, 4979) T x 7 = (, 52,, 57) T x 8 = (, 4993,, 4998) T x 9 = (, 52,, 5) T x = (, 4999,, 5) T x = (, 5,, 5) T Note que a dominância diagonal de uma matriz é relacionada com a ordem em que as equações se apresentam. Uma simples troca entre duas linhas pode ser desastrosa, como mostra o exemplo aseguir. Exemplo 4. Seja o sistema apresentado no exemplo 4., com as linhas trocadas entre si, i.e. [ ] [ ] 3 3 x = 3 Nesse caso, como a matriz do sistema não é diagonal-dominante, o método de Gauss-Seidel diverge, apresentando como primeiras estimativas os vetores x = (,,, ) T x = ( 3,, 6, ) T x 2 = (5,, 2, ) T x 3 = ( 39,, 42, ) T. x 8 = ( 29523,, 29526, ) T x 9 = (88575,, 88572, ) T. x 2 = (5, 232 9, 5, 232 9 ) T apesar do sistema ter a mesma solução x =(, 5,, 5) T. 4.4.9 Extrapolação de um método iterativo Uma das formas de garantir e/ou acelerar a convergência de um método iterativo é utilizar uma técnica de extrapolação, a qual consiste em se combinar a correção da estimativa x k dadapela equação governante do método iterativo com uma outra correção, semelhante. Em termos das funções Φ, isso pode ser expresso como x k+ = ωφ k (x,x,...,x k,a,b)+( ω) Φ k (x,x,...,x k,a,b),ω IR (4.46) Note que, se ω =, temos o método iterativo original. A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 85

Porexemplo,nocasodométodo de Jacobi, podemos usar Φ k (x,x,...,x k,a,b)=i (ou seja, a matriz identidade). Assim temos o método de relaxação de Jacobi (JOR), x k+ = ω(x k D Ax k + D b)+( ω)x k, <ω (4.47) e, de forma análoga, temos o método das relaxações sucessivas (SOR), uma variante do método de Gauss-Seidel, x k+ = ω(lx k+ + Ux k + d)+( ω)x k, <ω<2 (4.48) Exemplo 4.2 Sejaosistema 2 2 2 2 x = 3 3 cuja solução é (,,, ) T. Utilizando-se o método JOR para resolvê-lo, com ω =, 65, auma tolerância ε = 2, obtemos: x = (,,,,,,, ) T x = (, 325,, 975,, 975,, 325) T x 2 = (, 63,, 8937,, 8937,, 63) T x 3 = (, 349,, 992,, 992,, 349) T x 4 = (, 35,, 9884,, 9884,, 35) T x 5 = (, 38,, 9986,, 9986,, 38) T ou seja, com cinco iterações, obtemos uma aproximação para a solução dentro da tolerância especificada. O método de Jacobi, se utilizado para resolver o mesmo método, não alcança a solução após 2 iterações. Exemplo 4.3 Sejaosistema 4 4 4 4 x = cuja solução é x =(, 667,, 3333,, 3333,, 667) T. Utilizando-se o método SOR para resolvêlo, com ω =,, aumatolerância ε = 2, obtemos: x = (,,, 275,, 275,, 53) T x = (, 53,, 337,, 337,, 668) T x 2 = (, 668,, 3336,, 3336,, 668) T ou seja, com três iterações, obtemos uma aproximação para a solução dentro da tolerância especificada (compare com o exemplo 4.8). 4.5 MétododoGradiente Ométododogradienteé indicado para resolver um SELA onde A é uma matriz simétrica, positivodefinida (SPD), i.e. x T Ax >, x IR n (4.49) Uma outra característica de matrizes SPD é que todos os seus autovalores são estritamente positivos. Ométodo baseia-sena relação existente entre a solução de um SELA e a minimização da forma quadrática, quando A for SPD. Assim, inicialmente veremos o que é a forma quadrática e alguns exemplos da mesma. A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 86

4.5. Forma Quadrática A forma quadrática é uma função vetorial f : R n R dada por f(x) = 2 xt Ax b T x + c (4.5) onde A IR n n, x IR n, b IR n e c IR. Por exemplo, considere o sistema [ 2 2 ] [ x = ] (4.5) cuja solução é x =(, ) T. A matriz de coeficientes éspdeafigura4.5mostraográfico e as curvas de nível da forma quadrática correspondente (com c = ). Note que o gráfico da função é um parabolóide portanto, com apenas um ponto de mínimo e que aparentemente, o ponto (, ) (ou seja, a solução do sistema) éopontodemínimo da função. Já as figuras 4.6-4.8 mostram outras situações possíveis, dependendo dos valores dos elementos de A (todos os sistemas tiveram fixada a sua solução em (, ) e os termos independentes foram calculados adequadamente). Por exemplo, na figura 4.6, temos os gráficos para a matriz negativodefinida [ ] 2 2 i.e., x T Ax <, x; note que a forma do gráfico é um parabolóide invertido, com apenas um ponto de máximo éasituação oposta à de uma matriz SPD. Na figura 4.7, temos o caso em que a forma quadrática assume tanto valores negativos quanto positivos ográfico da função é a chamada sela. A matriz em questão é [ 4 4 5 Finalmente, o gráficoeascurvasdenível para a forma quadrática exibidos na figura 4.8 correspondem a uma matriz quase-singular, [ ] 2 2 3, 8 a qual apresenta infinitas soluções ao longo da reta na base do gráfico. Para verificarmos se isso é verdade, vamos calcular f (x) =. Como f é uma função vetorial, a sua derivada ou gradiente é dada por f (x) = ] x f(x) x 2 f(x). x n f(x) (4.52) oqualrepresentaumcampo vetorial; para um dado ponto x, ele aponta na direção de maior variação de f(x). O gráfico de f (x) na figura 4.9 étípico da situação em que A éspd: Aplicando a equação (4.52) à (4.5), obtemos e, se A ésimétrica, A = A T, de onde f (x) = 2 AT x + Ax b (4.53) 2 f (x) =Ax b. Igualando f (x) a zero, obtemos Ax = b, ou seja, o sistema que queremos resolver. Portanto, podemos dizer que A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 87

Figura 4.5: Gráfico de f(x) e suas curvas de nível para A SPD. Figura 4.6: Gráfico de f(x) e suas curvas de nível para A ND. A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 88

Figura 4.7: Gráfico de f(x) e suas curvas de nível para A indefinida. Figura 4.8: Gráfico de f(x) e suas curvas de nível para A singular. A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 89

Figura 4.9: Gráfico de f (x) para A SPD. minimizar a forma quadrática f(x) = 2 xt Ax b T x+c equivale a resolver o sistema Ax = b se A for simétrica. Se a matriz A é positivo-definida, além de simétrica, entãoasolução de Ax = b éomínimo (único) de f(x); logo, para A SPD, a solução x = A b éopontox que minimiza f(x). Isso pode ser mostrado como segue. Suponha A simétrica, x um vetor que satisfaz Ax = b, y um vetor similar a x (em termos geométricos, y éumpontopróximo a x) ee = y x o vetor erro; então, f(x + e) = 2 (x + e)t A(x + e) b T (x + e)+c = 2 xt Ax + e T Ax + 2 et Ae b T x b T e + c... b = Ax; A = A T... = 2 xt Ax b T x + c + e T b + 2 et Ae b T e = f(x)+ 2 et Ae (4.54) e f(x + e) =f(x x + y) =f(y) =f(x)+ 2 (y x)t A(y x) (4.55) Agora, como A é SPD, por hipótese, então (y x) T A(y x) >, y e, portanto, f(y) >f(x). Isso mostra que x éomínimo de f(x), nesse caso. 4.5.2 Descrição do método do Gradiente O gráfico da forma quadrática, para A SPD, nos sugere uma estratégia para localizarmos a solução do sistema: basta escorregar ao longo das paredes do parabolóide, pois isso nos levará, necessariamente, ao ponto de mínimo. A questão que se coloca agora é: qual direção devemos tomar, a partir de um x k,paraobtermosumx k+ que seja mais próximo da solução? A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 9

Figura 4.: O vetor erro e e o vetor resíduo r. Lembramos que o gradiente f (x) apontanadireção de maior aumento de f(x), em sentido oposto ao fundo do parabolóide. É natural, portanto, que andemos ao longo da direção oposta ao gradiente, isto é, f (x) =b Ax. Ora, conforme visto anteriormente, r k = b Ax k, de onde estabelecemos as seguintes relações entre o vetor resíduo e o gradiente de f(x): r k = f (x) (4.56) r k = b Ax. k.. e k = x k x... = b Ax Ae. k.. x = A b... = Ae k (4.57) Aequação (4.56) nos diz que o resíduo tem a mesma direção do gradiente, porém sentido oposto; já aequação (4.57) nos diz que o resíduo é o vetor erro, transformado por A (e, portanto, no mesmo espaço de b). Suponha, então, que temos a seguinte situação, conforme a figura 4.. Como decidimos andar ao longo do vetor resíduo, a partir de x, a nova estimativa x é um ponto sobre a reta r,ouseja x = x + α r, α IR (4.58) O escalar α indica o deslocamento sobre r. Para determinar o melhor α ou seja, aquele para oqual x x émínimo derivamos f(x )emrelação a α e igualamo-la a zero: d f(x )=f (x ) T d x = f (x ) T r (4.59) dα dα Note que f (x ) T r é o produto escalar entre os vetores f (x )er. Como o produto escalar é dado por u T v = u v cos θ onde θ éoângulo formado entre os vetores u e v, ao igualarmos f (x ) T r a zero, estamos exigindo que os vetores f (x )er sejam ortogonais entre si. Como f (x )= r, isso implica que dois resíduos sucessivos são ortogonais entre si; a figura 4. mostra três situações típicas para a solução do sistema (4.5), com as seqüências de resíduos (representados pelas retas) gerados pelo método do Gradiente a partir de três diferentes estimativas iniciais. A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 9

Figura 4.: Caminhos típicos no método do Gradiente. A partir da equação (4.59), pode-se o obter o valor de α : f (x ) T r =... f (x )= r... r T r = (b Ax ) T r = (b Ax α Ar ) T r = (r α Ar ) T r = de onde α = rt r r T Ar (4.6) O que significa minimizar f (x )? Os gráficos mostrados na figura 4.2 mostram que, para α calculado conforme a equação (4.6), a nova estimativa x corresponde ao mínimo da parábola obtida como se tivéssemos cortado o parabolóide f(x) por um plano vertical ao plano x y que passa pela reta r! Utilizando as equações (4.58) e (4.6), além da expressão para o resíduo, devidamente generalizadas para a k-ésima iteração, podemos escrever um algoritmo que descreve o método do Gradiente. Antes, porém, note que r = r α Ar conforme obtido na derivação da equação (4.6); essa expressão nos permite economizar um produto matriz-vetor da forma Ax k,poisar k játerá sido calculado previamente para se obter α k. O algoritmo pode ser, então, escrito como segue. A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 92

Figura 4.2: α é escolhido de tal forma que f(x ) émínima. Algoritmo 4.5. MétododoGradiente proc gradiente(input: A, b, x, k max, ε; output:x k+ ) t ε b r b Ax for k =,,...,k max do w k Ar k α k rt k r k r T k w k x k+ x k + α k r k r k+ r k α k w k if r k+ <tthen break endif endproc O exemplo seguinte ilustra o comportamento típico do método do Gradiente: Exemplo 4.4 Resolvaosistema 4 4 4 4 x = cuja solução é x =(, 667,, 3333,, 3333,, 667) T,usandoométododoGradientecomx = (,,, ) T aumatolerância ε = 2. Solução: Aplicando o método do Gradiente, obtemos x = (,, 25,, 25, ) T x 2 = (, 25,, 25,, 25,, 25) T x 3 = (, 25,, 325,, 325,, 25) T x 4 = (, 563,, 325,, 325,, 563) T x 5 = (, 563,, 328,, 328,, 563) T x 6 = (, 64,, 328,, 328,, 64) T A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 93

Figura 4.3: Método das Direções-Conjugadas: a cada iteração é corrigida uma componente do vetor solução. ou seja, com seis iterações, obtemos uma aproximação para a solução dentro da tolerância especificada. Um possível problema ao se utilizar a fórmula de recorrência para r k+ no método do Gradiente é a perda de ortogonalidade entre os vetores resíduo, causada pela acumulação de erros de ponto-flutuante. Isso pode ser detectado através do cálculo do produto-interno entre dois resíduos sucessivos, r T k r k; caso essa quantidade seja maior do que, por exemplo, ε (onde ε éoépsilon da máquina), deve-se recalcular r k = b Ax k, e proceder normalmente com o algoritmo. 4.6 Método das Direções-Conjugadas Conforme visto anteriormente, o método do Gradiente toma sucessivas direções os resíduos que são ortogonais entre si. Isso significa que a solução é procurada repetindo-se direções. Ora, se para uma dada direção, a solução não foi encontrada ao longo dela, então por que utilizá-la novamente? Uma alternativa é a seguinte: suponha que tenhamos um conjunto de n direções de procura d, d,..., d n.emcadai-ésima direção, caminha-se exatamente a distância necessária para se obter a i-ésima componente da solução, x i ;após termos percorrido todas as n direções dessa forma, todas as componentes de x estarão corretas, e a solução terá sido obtida. Na figura 4.3, aprimeiraiteração corrige x 2, e a segunda corrige x (note que e é ortogonal a d ). De forma semelhante ao métododogradiente,asiterações são da forma x i+ = x i + α i d i, α i IR (4.6) e, para determinar α i, tomamos e i+ ortogonal a d i,deformaquenão mais se percorra a direção d i.então: d T i e i+ =... e i+ = x i+ x = x i + α i d i x = e i + α i d. i.. d T i (e i + α i d i ) = d T i e i + α i d T i d i = de onde α i = dt i e i d T i d i (4.62) A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 94