18.04.2013 Views

Álgebra Linear Numérica - Arquivo Escolar

Álgebra Linear Numérica - Arquivo Escolar

Álgebra Linear Numérica - Arquivo Escolar

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Notas de Aula<br />

<strong>Álgebra</strong> <strong>Linear</strong> <strong>Numérica</strong><br />

Rodney Josué Biezuner 1<br />

Departamento de Matemática<br />

Instituto de Ciências Exatas (ICEx)<br />

Universidade Federal de Minas Gerais (UFMG)<br />

Notas de aula da disciplina <strong>Álgebra</strong> <strong>Linear</strong> <strong>Numérica</strong> do Curso de Graduação<br />

em Matemática Computacional, ministrado durante o segundo semestre do ano de 2009.<br />

30 de novembro de 2009<br />

1 E-mail: rodney@mat.ufmg.br; homepage: http://www.mat.ufmg.br/∼rodney.


Sumário<br />

0 Introdução: Representação de Números Reais no Computador 3<br />

0.1 Ponto Flutuante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />

0.2 Erros de Arredondamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />

0.3 O Padrão de Ponto Flutuante IEEE 754 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />

0.3.1 Números normalizados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />

0.3.2 Números denormalizados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />

0.3.3 Outros valores numéricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />

1 Matrizes Esparsas 7<br />

1.1 Problema Modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />

1.1.1 Problema de Poisson Unidimensional . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />

1.1.2 Problema de Poisson Bidimensional . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />

1.2 Matrizes Esparsas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />

1.3 Implementação Computacional de Matrizes Esparsas . . . . . . . . . . . . . . . . . . . . . . . 11<br />

2 Invertibilidade de Matrizes Esparsas 13<br />

2.1 Normas Matriciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />

2.2 Matrizes Diagonalmente Dominantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />

2.3 Teorema dos Discos de Gershgorin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />

2.4 Propriedade FC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br />

2.5 Matrizes Irredutíveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />

2.6 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />

3 Métodos Iterativos <strong>Linear</strong>es 31<br />

3.1 Método Iterativos Básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32<br />

3.1.1 Método de Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32<br />

3.1.2 Método de Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33<br />

3.1.3 Método SOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33<br />

3.1.4 Comparação da Velocidade de Convergência dos Três Métodos no Problema Modelo . 34<br />

3.1.5 Método de Jacobi Amortecido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35<br />

3.2 Análise de Convergência dos Métodos Iterativos <strong>Linear</strong>es . . . . . . . . . . . . . . . . . . . . . 36<br />

3.2.1 Convergência dos Métodos Iterativos <strong>Linear</strong>es . . . . . . . . . . . . . . . . . . . . . . . 37<br />

3.2.2 Velocidade de Convergência dos Métodos Iterativos <strong>Linear</strong>es . . . . . . . . . . . . . . 40<br />

3.2.3 Convergência para Matrizes Simétricas Positivas Definidas . . . . . . . . . . . . . . . . 42<br />

3.3 Convergência dos Métodos Iterativos <strong>Linear</strong>es para Matrizes de Discretização . . . . . . . . . 44<br />

3.3.1 Convergência do Método de Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44<br />

3.3.2 Convergência do Método de Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . . 50<br />

3.3.3 Convergência do Método SOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52<br />

3.3.4 Convergência do Método de Jacobi Amortecido . . . . . . . . . . . . . . . . . . . . . . 59<br />

3.3.5 Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61<br />

1


Rodney Josué Biezuner 2<br />

3.4 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61<br />

4 Métodos de Projeção 62<br />

4.1 Teoria Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62<br />

4.1.1 Representação Matricial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63<br />

4.1.2 Minimização de Funcionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64<br />

4.1.3 Estimativa do Erro em Métodos de Projeção . . . . . . . . . . . . . . . . . . . . . . . 66<br />

4.2 Caso Unidimensional: Métodos de Descida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67<br />

4.2.1 Métodos de Descida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67<br />

4.2.2 Método da Descida Mais Acentuada . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68<br />

4.3 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72<br />

5 Métodos de Subespaços de Krylov 74<br />

5.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74<br />

5.2 Subespaços de Krylov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75<br />

5.3 Algoritmo de Arnoldi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76<br />

5.4 Implementação Prática: Métodos de Ortogonalização Estáveis . . . . . . . . . . . . . . . . . . 79<br />

5.4.1 Método de Gram-Schmidt Modificado (MGS) . . . . . . . . . . . . . . . . . . . . . . . 79<br />

5.4.2 Método de Gram-Schmidt Modificado com Reortogonalização (MGSR) . . . . . . . . . 82<br />

5.5 Método de Arnoldi para Sistemas <strong>Linear</strong>es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83<br />

5.6 Decomposição QR via MGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85<br />

5.7 Algoritmo de Lanczos e Método do Gradiente Conjugado . . . . . . . . . . . . . . . . . . . . 87<br />

5.8 Método do Gradiente Conjugado como um Método de Descida . . . . . . . . . . . . . . . . . 91<br />

5.8.1 Convergência do Método do Gradiente Conjugado em Aritmética Exata . . . . . . . . 94<br />

5.9 Velocidade de Convergência do Método do Gradiente Conjugado . . . . . . . . . . . . . . . . 96<br />

5.9.1 Polinômios de Chebyshev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96<br />

5.9.2 Velocidade de Convergência do CG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99<br />

5.10 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101<br />

6 O Problema do Autovalor 102<br />

6.1 Caracterização Variacional dos Autovalores de uma Matriz Simétrica: Quociente de Rayleigh 102<br />

6.2 Método das Potências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105<br />

6.2.1 Método das Potências Inverso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107<br />

6.2.2 Método das Potências com Deslocamento . . . . . . . . . . . . . . . . . . . . . . . . . 107<br />

6.2.3 Iteração do Quociente de Rayleigh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109<br />

6.3 Algoritmo QR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110<br />

6.3.1 Redução de uma matriz a sua forma de Hessenberg . . . . . . . . . . . . . . . . . . . . 111<br />

6.3.2 Aceleração do algoritmo QR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114<br />

6.3.3 Implementação prática do algoritmo QR . . . . . . . . . . . . . . . . . . . . . . . . . . 116<br />

6.4 Iteração de subespaços e iteração simultânea . . . . . . . . . . . . . . . . . . . . . . . . . . . 116<br />

6.4.1 Equivalência entre o Algoritmo QR e Iteração Simultânea . . . . . . . . . . . . . . . . 118<br />

6.4.2 Convergência do Algoritmo QR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119<br />

6.5 Método de Arnoldi e Algoritmo de Lanczos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119<br />

6.6 O Problema de Autovalor Simétrico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120<br />

6.7 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121


Capítulo 0<br />

Introdução: Representação de<br />

Números Reais no Computador<br />

Computadores digitais usam um número finito de bits para representar um número real, portanto eles<br />

podem representar apenas um subconjunto finito dos números reais, o que leva a dois tipos diferentes de<br />

limitações: (1) números representados não podem ser arbitrariamente grandes ou arbitrariamente pequenos;<br />

(2) existem lacunas entre os numéros representados. Estas limitações físicas levam respectivamente aos erros<br />

de overflow e underflow e aos erros de arredondamento.<br />

Para discutir estes erros de maneira inteligente, introduzimos alguma terminologia.<br />

0.1 Definição. Definimos o erro absoluto causado por uma computação por<br />

Erro absoluto = |(valor calculado) − (valor exato)| .<br />

O erro relativo causado por uma computação é definido por<br />

<br />

<br />

<br />

Erro relativo = <br />

erro absoluto<br />

<br />

valor exato .<br />

O erro relativo permite comparar entre os erros cometidos de maneira significativa. Por exemplo, o erro<br />

absoluto entre 1 (valor exato) e 2 (valor calculado) e o erro absoluto entre 1.000.000 (valor exato) e 1.000.001<br />

(valor calculado) são os mesmos. No entanto, o erro relativo no primeiro caso é 1, enquanto que o erro<br />

relativo no segundo caso é 10−6 , expressando o fato intuitivo que o erro cometido no primeiro caso é muito<br />

maior que o erro cometido no segundo caso. Às vezes o erro relativo é expresso como uma porcentagem:<br />

Erro percentual = [(erro relativo) × 100] %.<br />

Assim, o erro percentual no primeiro caso é 100%, enquanto que o erro percentual no segundo caso é<br />

10 −4 = 0, 0001%.<br />

0.1 Ponto Flutuante<br />

Na Matemática Pura, os números reais são infinitos, infinitamente grandes e infinitamente pequenos. Não<br />

existe um número maior ou um número menor. Além disso, eles também são continuamente distribuídos:<br />

não existem espaços entre números reais, pois entre quaisquer dois números reais sempre existe outro número<br />

real. Mais que isso, eles são distribuídos uniformemente na reta real. Um número real é infinitamente preciso:<br />

3


Rodney Josué Biezuner 4<br />

os números depois do ponto decimal são infinitos (incluindo o 0). Em outras palavras, usando a base 10,<br />

números reais correspondem a séries da forma<br />

a = a0 +<br />

onde a0 ∈ Z e an ∈ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}.<br />

O padrão para representar números reais em Matemática Computacional é o número de ponto flutuante.<br />

Números de ponto flutuante não são infinitos: existe um número de ponto flutuante máximo e um<br />

número de ponto flutuante mínimo. Existe um número fixado de pontos flutuantes, logo existem espaços<br />

entre eles. Números de ponto flutuante de precisão simples (tipo float) tem aproximadamente 8 dígitos<br />

decimais significantes, enquanto que números de ponto flutuante de precisão dupla (tipo double) tem aproximadamente<br />

17 dígitos decimais significantes. O qualificativo “aproximadamente” se refere ao fato que os<br />

números de ponto flutuante são armazenados no computador na base binária, logo a conversão da base<br />

binária para a base decimal introduz alguma imprecisão.<br />

Um número de ponto flutuante é armazenado internamente em duas partes: um significando e um<br />

expoente, semelhante à notação científica.<br />

Esta escolha de representação garante que a distribuição dos valores representados em ponto flutuante<br />

não será uniforme. Para entender isso, vamos assumir que o significando é limitado a um único dígito decimal<br />

e que o expoente é restrito aos valores −1, 0, 1. A tabela abaixo registra todos os números reais positivos<br />

que podemos representar:<br />

∞<br />

n=1<br />

an<br />

10 n<br />

−1 0 1<br />

0 0<br />

1 1 × 10 −1 = 0, 1 1 × 10 0 = 1 1 × 10 1 = 10<br />

2 2 × 10 −1 = 0, 2 2 × 10 0 = 2 2 × 10 1 = 20<br />

3 3 × 10 −1 = 0, 3 3 × 10 0 = 3 3 × 10 1 = 30<br />

4 4 × 10 −1 = 0, 4 4 × 10 0 = 4 4 × 10 1 = 40<br />

5 5 × 10 −1 = 0, 5 5 × 10 0 = 5 5 × 10 1 = 50<br />

6 6 × 10 −1 = 0, 6 6 × 10 0 = 6 6 × 10 1 = 60<br />

7 7 × 10 −1 = 0, 7 7 × 10 0 = 7 7 × 10 1 = 70<br />

8 8 × 10 −1 = 0, 8 8 × 10 0 = 8 8 × 10 1 = 80<br />

9 9 × 10 −1 = 0, 9 9 × 10 0 = 9 9 × 10 1 = 90<br />

O fato do espaço entre os valores em ponto flutuante aumentar em proporção ao tamanho dos números é<br />

que justifica o nome ponto flutuante. Uma representação em que os espaços entre os valores representados<br />

tem um tamanho fixo é chamada uma representação em ponto fixo.<br />

0.2 Definição. Definimos a precisão de um ponto flutuante como sendo o número de dígitos significativos<br />

que ele possui em seu significando. A exatidão de um ponto flutuante é a sua aproximação do valor<br />

exato.<br />

Quanto mais dígitos significativos um ponto flutuante possui, mais preciso ele é: o double 0.3333333333333333<br />

é uma representação mais precisa do número real 1/3 do que o float 0.3333333. Por outro lado, o float<br />

0.3333333 é uma representação mais exata de 1/3 do que o double 0.3444444444444444, apesar deste ser<br />

um ponto flutuante mais preciso, porque a maioria dos seus dígitos significativos estão errados. Os erros<br />

computacionais tais como os erros de cancelamento e arredondamento afetam a exatidão de um valor em<br />

ponto flutuante. Aumentar a precisão de float para double tem o potencial de aumentar a exatidão, mas<br />

não a garante.


Rodney Josué Biezuner 5<br />

0.2 Erros de Arredondamento<br />

Quando um valor computado está entre dois valores representáveis, ele será substituído pelo valor representado<br />

mais próximo. Esta é a origem dos erros de arredondamento.<br />

0.3 Definição. Definimos o erro de arredondamento por<br />

Erro de arredondamento = |(valor representado) − (valor exato)| .<br />

0.4 Definição. Um erro de cancelamento é um erro de arredondamento que ocorre quando a maioria<br />

dos dígitos significativos são perdidos durante a subtração de dois valores aproximadamente iguais.<br />

0.3 O Padrão de Ponto Flutuante IEEE 754<br />

Antes do padrão IEEE 754 ser publicado em 1985, existiam muitos formatos de ponto flutuante implementados<br />

em hardware e software, o que dificultava a portabilidade dos programas. Os resultados obtidos variavam<br />

de uma máquina para outra. Atualmente, a maioria dos fabricadores aderem ao padrão IEEE 754, fruto de<br />

uma cooperação histórica entre cientistas de computação e desenhistas de chips de microprocessadores. A<br />

sigla “IEEE” significa Institute of Electrical and Electronics Engineers.<br />

Os formatos de precisão aritmética simples float e dupla double são armazenados em 32 bits e 64 bits,<br />

respectivamente. Cada formato divide um número em três partes: sinal (um bit), expoente e fração. Os dois<br />

formatos diferem quanto ao número de bits alocados para o expoente e para a fração. No formato float 8<br />

bits são alocados para o expoente e 23 para a fração, enquanto que no formato double 11 bits são alocados<br />

para o expoente e 52 para a fração. O bit de sinal representa o sinal do número: 0 para positivo e 1 para<br />

negativo. O expoente não possui sinal: para representar expoentes negativos, o padrão adiciona um viés<br />

positivo; para obter o valor verdadeiro do expoente (sem viés), é necessário subtrair o viés. No formato de<br />

precisão simples, o expoente com 8 bits pode armazenar valores (com viés) entre 0 e 255, mas 0 e 255 são<br />

reservados; o viés é 127, de modo que os valores verdadeiros (sem viés) do expoente variam entre −126 e<br />

+127. No formato de precisão dupla, o expoente com 11 bits pode armazenar valores (com viés) entre 0 e<br />

2047, com 0 e 2047 são reservados; o viés é 1023, de modo que os valores verdadeiros (sem viés) do expoente<br />

variam entre −1022 e +1023.<br />

0.3.1 Números normalizados<br />

Representemos por s o sinal, e o expoente e f a fração. Quando e não é um valor reservado (isto é, 1 e 254<br />

no formato float e 1 e 2047 no formato double) existe um algarismo 1 e um ponto binário . implícitos<br />

à esquerda do primeiro bit de f, de modo que o número representado por s, e, f é o número<br />

n = (−1) s × (1.f) × 2 E<br />

onde E = e − 127 (float) ou E = e − 1023 (double), chamado um número normalizado. O algarismo 1 e<br />

o ponto binário implícitos, juntamente com a parte fracionária f, constituem o significando do número, de<br />

modo que um número de precisão simples possui 24 bits no seu significando, enquanto que um número de<br />

precisão dupla possui 53 bits no seu significando.<br />

Assim, o maior valor possível em módulo para float corresponde a<br />

ou seja,<br />

s = 1, e = 254 e f = 11111111111111111111111,<br />

23<br />

i=0<br />

1<br />

2 i × 2127 ≈ 3, 4028 × 10 38 ,


Rodney Josué Biezuner 6<br />

enquanto que o maior valor possível em módulo para double corresponde a<br />

ou seja,<br />

s = 0, e = 2047 e f = 1111111111111111111111111111111111111111111111111111,<br />

52<br />

i=0<br />

0.3.2 Números denormalizados<br />

1<br />

2 i × 21023 ≈ 1, 7977 × 10 308 .<br />

Se e = 0 (um dos valores reservados) e f = 0, nós temos o que se chama um número denormalizado (ou<br />

subnormal). Existe um algarismo 0 e um ponto binário . implícitos à esquerda do primeiro bit de f, de modo<br />

que o número representado por s, e, f é o número<br />

n = (−1) s × (0.f) × 2 E<br />

onde E = −126 (float) ou E = −1022 (double).<br />

Assim, o menor valor possível em módulo para float corresponde a<br />

ou seja,<br />

s = 0, e = 0 e f = 00000000000000000000001,<br />

1<br />

2 23 × 2−126 ≈ 1, 4013 × 10 −45 ,<br />

um pouco menor do que o menor valor possível 1 × 2 −126 = 1, 1755 × 10 −38 para um float normalizado,<br />

correspondente a<br />

s = 0, e = 1 e f = 00000000000000000000000.<br />

O menor valor possível em módulo para double corresponde a<br />

ou seja,<br />

s = 0, e = 0 e f = 0000000000000000000000000000000000000000000000000001,<br />

1<br />

2 52 × 2−1022 ≈ 4, 9407 × 10 −324<br />

um pouco menor do que o menor valor possível 1 × 2 −1022 ≈ 2, 2251 × 10 −308 para um double normalizado,<br />

correspondente a<br />

s = 0, e = 1 e f = 0000000000000000000000000000000000000000000000000000.<br />

A existência dos números denormalizados permitem uma convergência para zero menos abrupta. Quando<br />

os valores computados vão se tornando menores e menores, atingindo o menor valor possível para um float<br />

ou double normalizado, ao invés de caírem abruptamente para zero na próxima iteração, eles são convertidos<br />

em números denormalizados.<br />

No entanto, o espaço entre números representados no intervalo [1, 2] é igual a 2 −52 ≈ 2.22 × 10 −16 ; em<br />

geral, no intervalo 2 j , 2 j+1 o espaço é 2 j × 2 −52 , de modo que o espaço relativo nunca excede 2 −52 .<br />

0.3.3 Outros valores numéricos<br />

Se e = f = 0, o valor numérico é −0 ou +0, dependendo de s. Se f = 0 e e = 255 para float ou se e = 2047<br />

para double, então o valor numérico é −Infinity ou +Infinity. Se f = 0 e e = 255 para float ou se<br />

e = 2047 para double, então independentemente do valor de 0 nós temos NaN (Not a Number). Por exemplo,<br />

dividindo 0 por 0 resulta em NaN.<br />

Em geral, no padrão IEEE 754 uma operação inválida produz NaN, divisão por zero produz ±Infinity,<br />

overflow produz o maior número normalizado possível ou ±Infinity e underflow produz ±0, o menor<br />

número normalizado possível ou um número denormalizado.


Capítulo 1<br />

Matrizes Esparsas<br />

Matrizes esparsas são matrizes onde a imensa maioria das entradas são nulas. Esta é uma definição<br />

vaga. Não existe um limite inferior para o número de zeros em uma matriz, em relação ao tamanho desta,<br />

a partir do qual podemos declarar uma matriz com sendo esparsa. Isto é, não existe um limite preciso a<br />

partir do qual uma matriz deixa de ser esparsa e se torna uma matriz densa (isto é, uma matriz em que<br />

o número de zeros é irrelevante). Em geral, matrizes esparsas são definidas operacionalmente, no sentido<br />

de que uma matriz pode ser chamada esparsa, sempre que técnicas especiais podem ser usadas para tirar<br />

vantagem do grande número de zeros e sua localização. Equações diferenciais parciais são a maior fonte de<br />

problemas de álgebra linear numérica envolvendo matrizes esparsas. Engenheiros elétricos lidando com redes<br />

elétricas nos anos 1960s foram os primeiros a explorar a esparcidade das matrizes de coeficientes associadas<br />

aos problemas tratados para resolver sistemas lineares. Como os computadores tinham pouca capacidade<br />

de armazenamento e poder de processamento, e os problemas envolviam um número enorme de variáveis,<br />

métodos de solução direta que tiram vantagem da existência de um número muito grande de zeros tiveram<br />

que ser desenvolvidos.<br />

1.1 Problema Modelo<br />

Como fonte de matrizes esparsas, consideraremos o problema de resolver a equação de Poisson com condição<br />

de Dirichlet discretizada através de diferenças finitas em uma e duas dimensões, que fornece uma matriz<br />

esparsa simétrica.<br />

1.1.1 Problema de Poisson Unidimensional<br />

Considere o problema de Dirichlet para a equação de Poisson no intervalo unitário I = (0, 1):<br />

−u ′′ = f (x) se 0 < x < 1,<br />

u (0) = a, u (1) = b.<br />

Seja h > 0. As expansões de Taylor para uma função u à direita e à esquerda de um ponto x0 são dadas<br />

respectivamente por<br />

e<br />

u(x0 + h) = u(x0) + u ′ (x0)h + 1<br />

2! u′′ (x0)h 2 + 1<br />

3! u′′′ (x0)h 3 + . . . ,<br />

u(x0 − h) = u(x0) − u ′ (x0)h + 1<br />

2! u′′ (x0)h 2 − 1<br />

3! u′′′ (x0)h 3 + . . .<br />

Se somarmos estas duas equações, obtemos<br />

u ′′ (x0) = u(x0 − h) − 2u(x0) + u(x0 + h)<br />

h 2<br />

7<br />

− 2<br />

4! u(4) (x0)h 2 − 2<br />

5! u(6) (x0)h 4 − . . . ,<br />

(1.1)


Rodney Josué Biezuner 8<br />

o que fornece uma aproximação para a derivada segunda u ′′ (x0) de u em x0:<br />

u ′′ (x0) ≈ u(x0 − h) − 2u(x0) + u(x0 + h)<br />

h 2<br />

com erro<br />

ɛ = − 1<br />

12 u(4) (ξ)h 2 = O(h 2 ),<br />

onde x0 − h ξ x0 + h. Esta aproximação é chamada uma diferença centrada para a derivada segunda.<br />

Divida o intervalo [0, 1] em n subintervalos de comprimento h = 1/n através de n − 1 pontos interiores<br />

uniformemente espaçados:<br />

x0 = 0, x1 = h, x2 = 2h, . . . , xn−1 = (n − 1) h, xn = nh = 1,<br />

de modo que [0, 1] = [x0, x1] ∪ [x1, x2] ∪ . . . ∪ [xn−1, xn]. Introduzimos a notação:<br />

ui = u(xi),<br />

fi = f (xi) .<br />

Esta é uma discretização uniforme do intervalo [0, 1]. Uma vez discretizado o domínio da equação diferencial<br />

parcial, procedemos à discretização desta última. Usando diferenças centradas para cada ponto interior xi,<br />

1 i n − 1, temos<br />

−ui−1 + 2ui − ui+1<br />

h 2 = fi. (1.2)<br />

Esta discretização em diferenças finitas para a equação de Poisson é chamada fórmula dos três pontos.<br />

Portanto, para encontrar a solução discretizada temos que resolver o sistema linear com n − 1 equações a<br />

n − 1 incógnitas: ⎧⎪ ⎨<br />

ou seja,<br />

⎪⎩<br />

1<br />

h2 ⎡<br />

2 −1<br />

⎢<br />

−1<br />

⎢<br />

⎣<br />

2<br />

−1<br />

−1<br />

. ..<br />

. ..<br />

h −2 (2u1 − u2) = f1 + ah −2<br />

h −2 (−u1 + 2u2 − u3) = f2<br />

h −2 (−un−3 + 2un−2 − un−1) = fn−2<br />

h −2 (−un−2 + 2un−1) = fn−1 + bh −2<br />

. ..<br />

. .. −1<br />

−1 2 −1<br />

−1 2<br />

Esta é uma matriz tridiagonal, simétrica e esparsa.<br />

⎤ ⎡<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎦ ⎣<br />

1.1.2 Problema de Poisson Bidimensional<br />

.<br />

u1<br />

u2<br />

.<br />

.<br />

.<br />

un−2<br />

un−1<br />

⎤<br />

⎡<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ = ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎦ ⎣<br />

,<br />

f1 + ah −2<br />

f2<br />

..<br />

. .<br />

fn−2<br />

fn−1 + bh −2<br />

Considere o problema de Dirichlet homogêneo para a equação de Poisson no quadrado unitário Ω = (0, 1) ×<br />

(0, 1) <br />

−∆u = f (x, y)<br />

u = 0<br />

em Ω,<br />

sobre ∂Ω.<br />

(1.3)<br />

Discretizamos o quadrado Ω através dos pontos<br />

(xi, yj) = (ih, jh) , 0 i, j n,<br />

⎤<br />

⎥ .<br />

⎥<br />


Rodney Josué Biezuner 9<br />

onde<br />

produzindo a malha (ou gride) uniforme<br />

A malha dos pontos interiores é dada por<br />

enquanto que a fronteira discretizada é o conjunto<br />

A equação de Poisson<br />

pode ser agora discretizada. Denotamos<br />

h = 1<br />

n ,<br />

Ωd = (x, y) ∈ Ω : x = i∆x, y = j∆y, 0 i, j n .<br />

Ωd = {(x, y) ∈ Ω : x = i∆x, y = j∆y, 1 i, j n − 1} ,<br />

∂Ωd = {(x, y) ∈ ∂Ω : x = i∆x, y = j∆y, 0 i n, 0 j m} .<br />

−uxx − uyy = f (x, y)<br />

ui,j = u (xi, yj) ,<br />

fi,j = f (xi, yj) .<br />

Aproximamos cada derivada parcial de segunda ordem pela sua diferença centrada, obtendo<br />

−uxx ≈ −ui−1,j + 2ui,j − ui+1,j<br />

∆x2 ,<br />

−uyy ≈ −ui,j−1 + 2ui,j − ui,j+1<br />

∆y2 .<br />

Portanto, a equação de Poisson discretizada toma a forma<br />

−ui−1,j − ui,j−1 + 4ui,j − ui+1,j − ui,j+1<br />

h 2 = fi,j. (1.4)<br />

Como a função u é calculada em cinco pontos, esta discretização em diferenças finitas para a equação de<br />

Poisson é chamada a fórmula dos cinco pontos.<br />

Para cada ponto interior da malha obtemos uma equação, logo temos um sistema linear de (n − 1) 2<br />

equações com o mesmo número de incógnitas. Diferente do caso unidimensional, no entanto, não existe uma<br />

maneira natural de ordenar os pontos da malha, logo não podemos obter imediatamente uma representação<br />

matricial para o problema discretizado. Precisamos antes escolher uma ordenação para os pontos da malha,<br />

e como existem várias ordenações possíveis, existem várias matrizes associadas.<br />

Talvez a mais simples ordenação é a ordem lexicográfica. Nesta ordem, os pontos da malha são percorridos<br />

linha por linha, da esquerda para a direita, de baixo para cima:<br />

u1,1, u2,1, . . . , un−1,1, u1,2, u2,2, . . . , un−1,2, . . . . . . , u1,m−1, u2,m−1, . . . , un−1,m−1.<br />

Neste caso, a matriz associada ao sistema linear é uma matriz (n − 1) 2 × (n − 1) 2 que pode ser escrita como<br />

uma matriz de (n − 1) 2 blocos de dimensão (n − 1) × (n − 1) na forma<br />

A = 1<br />

h2 ⎡<br />

B −I<br />

⎤<br />

⎢<br />

−I<br />

⎢<br />

⎣<br />

B<br />

−I<br />

−I<br />

. ..<br />

. ..<br />

. ..<br />

. ..<br />

−I<br />

−I<br />

B −I<br />

⎥<br />

⎦<br />

−I B<br />

(n−1)×(n−1)


Rodney Josué Biezuner 10<br />

onde I é a matriz identidade (n − 1) × (n − 1) e B é a matriz (n − 1) × (n − 1) dada por<br />

Observe que<br />

⎡<br />

4 −1<br />

⎢<br />

−1<br />

⎢<br />

B = ⎢<br />

⎣<br />

4<br />

−1<br />

−1<br />

. ..<br />

. ..<br />

para todo 1 i (n − 1) 2 , enquanto que<br />

. ..<br />

. .. −1<br />

−1 4 −1<br />

−1 4<br />

aii = 4<br />

aij = −1<br />

⎤<br />

⎥<br />

⎦<br />

(n−1)×(n−1)<br />

se o ponto j é vizinho à esquerda ou à direita do ponto i, ou se o ponto j é vizinho acima ou abaixo do ponto<br />

i. Por exemplo, se n = 4, temos<br />

A = 1<br />

h2 ⎡<br />

4<br />

⎢ −1<br />

⎢ 0<br />

⎢ −1<br />

⎢ 0<br />

⎢ 0<br />

⎢ 0<br />

⎣ 0<br />

−1<br />

4<br />

−1<br />

0<br />

−1<br />

0<br />

0<br />

0<br />

0<br />

−1<br />

4<br />

0<br />

0<br />

−1<br />

0<br />

0<br />

−1<br />

0<br />

0<br />

4<br />

−1<br />

0<br />

−1<br />

0<br />

0<br />

−1<br />

0<br />

−1<br />

4<br />

−1<br />

0<br />

−1<br />

0<br />

0<br />

−1<br />

0<br />

−1<br />

4<br />

0<br />

0<br />

0<br />

0<br />

0<br />

−1<br />

0<br />

0<br />

4<br />

−1<br />

0<br />

0<br />

0<br />

0<br />

−1<br />

0<br />

−1<br />

4<br />

⎤<br />

0<br />

0 ⎥<br />

0 ⎥<br />

0 ⎥<br />

0 ⎥<br />

−1 ⎥<br />

0 ⎥<br />

−1 ⎦<br />

0 0 0 0 0 −1 0 −1 4<br />

Observe que a matriz A é uma matriz simétrica, pentadiagonal e esparsa.<br />

1.2 Matrizes Esparsas<br />

Outros problemas de EDPs, especialmente aqueles envolvendo derivadas primeiras (tais como problemas de<br />

convecção-difusão), em geral levam a matrizes não-simétricas. Discretizações de outros tipos, tais como as<br />

encontradas em elementos finitos, levam a matrizes esparsas com outro tipo de estrutura. De qualquer modo,<br />

todos possuem em comum o fato de a matriz de discretização ser uma matriz esparsa.<br />

Existem essencialmente dois tipos de matrizes esparsas: estruturadas e não-estruturadas. Uma<br />

matriz estruturada é uma em que as entradas não-nulas formam um padrão regular, frequentemente ao<br />

longo de um número pequeno de diagonais (tais como as matrizes que vimos no problema modelo na seção<br />

anterior). Os elementos não-nulos podem também estar organizados em blocos (submatrizes densas) de<br />

mesmo tamanho, organizadas ao longo de um número pequeno de blocos diagonais. Discretizações através de<br />

diferenças finitas tipicamente dão origem a matrizes esparsas com estruturas regulares. Uma matriz esparsa<br />

em que as entradas não-nulas são irregularmente localizadas é uma matriz esparsa irregularmente estruturada.<br />

Os métodos de volumes finitos ou elementos finitos aplicados a domínios com geometria complexa em geral<br />

levam matrizes irregularmente estruturadas.<br />

Esta distinção não afeta em geral métodos de solução direta mas é muito importante para os métodos de<br />

solução iterativos. Neste últimos, uma das operações básicas essenciais é a do produto de uma matriz por<br />

um vetor.


Rodney Josué Biezuner 11<br />

1.3 Implementação Computacional de Matrizes Esparsas<br />

Para tirar vantagem do grande número de elementos nulos, esquemas especiais são necessários para armazenar<br />

matrizes esparsas na memória do computador. O principal objetivo é representar apenas os elementos nãonulos.<br />

O esquema mais simples de armazenamento é o chamado formato de coordenadas. A estrutura de dados<br />

consiste de três vetores (arrays): um vetor real contendo os valores e dois vetores inteiros, um deles contendo<br />

os índices das linhas, enquanto que o outro contém os índices das colunas.<br />

1.1 Exemplo. A matriz<br />

pode ser representada por<br />

⎡<br />

⎢<br />

A = ⎢<br />

⎣<br />

1 0 0 3 0<br />

5 7 0 0 2<br />

3 0 2 4 0<br />

0 0 6 9 0<br />

0 0 0 0 4<br />

valueArray = 2 9 1 4 3 4 2 5 3 6 7 ,<br />

rowIndexArray = 3 4 1 3 3 5 2 2 1 4 2 ,<br />

columnIndexArray = 3 4 1 4 1 5 5 1 4 3 2 .<br />

Cada vetor tem comprimento igual ao número de elementos não-nulos da matriz. Observe que os<br />

elementos são listados em ordem arbitrária. <br />

Provavelmente, o formato mais popular para armazenar matrizes esparsas gerais é o formato compressed<br />

row storage (CRS). Neste esquema, as linhas da matriz são armazenadas uma a uma em um vetor real, da<br />

primeira até a última, preservando a ordem. Um segundo vetor inteiro contendo os índices das colunas é<br />

usado. Um terceiro vetor inteiro contém a posição no vetor de valores reais ou no vetor de índices de coluna<br />

onde cada linha começa, mais um elemento para indicar a primeira posição vazia dos dois vetores.<br />

1.2 Exemplo. A matriz<br />

⎡<br />

⎢<br />

A = ⎢<br />

⎣<br />

pode ser representada no formato CSR por<br />

1 0 0 3 0<br />

5 7 0 0 2<br />

3 0 2 4 0<br />

0 0 6 9 0<br />

0 0 0 0 4<br />

valueArray = 1 3 5 7 2 3 2 4 6 9 4 ,<br />

columIndexArray = 1 4 1 2 5 1 3 4 3 4 5 ,<br />

rowPointerArray = 1 3 6 9 11 12 .<br />

Enquanto o comprimento dos dois primeiros vetores é igual ao número de elementos não-nulos da<br />

matriz., o comprimento do terceiro vetor é igual ao número de linhas da matriz mais um. Dentro<br />

de cada linha os elementos ainda podem ser armazenados em ordem arbitrária, o que pode ser muito<br />

conveniente. <br />

Este esquema é o preferido pois é o mais útil para realizar as computações típicas, tais como multiplicação<br />

da matriz por vetores. Em CRS, a multiplicação matriz-vetor pode ser implementada da seguinte forma (em<br />

⎤<br />

⎥<br />

⎦<br />

⎤<br />

⎥<br />


Rodney Josué Biezuner 12<br />

C/C++ ou Java):<br />

for( int i = 0; i < n; i++ )<br />

{<br />

lowerIndex = rowPointerArray[i];<br />

upperIndex = rowPointerArray[i+1];<br />

//loop over row i<br />

for( int j = lowerIndex; j < upperIndex; j++ )<br />

Av[i] += valueArray[j]* v[columArray[j]];<br />

}<br />

Um esquema correspondente, armazenando colunas ao invés de linhas é o compressed column storage (CCS),<br />

usado no Octave.<br />

Os esquemas considerados acima são chamados estáticos. Esquemas dinâmicos, envolvendo listas encadeadas,<br />

em geral economizam ainda mais memória e tem acesso ainda mais rápido à memória. Cada linha<br />

da matriz pode ser representada por uma lista encadeada. A matriz toda é representada por uma lista de<br />

listas encadeadas, seguindo a ordem de linhas da matriz. Desta forma, o início de cada linha não precisa ser<br />

representado. O índice da coluna de cada elemento da linha ainda precisa ser representado, é claro, e isso<br />

pode ser feito através de um ponteiro específico.<br />

Outras esquemas podem ser utilizados, tirando vantagem da estrutura da matriz esparsa. Por exemplo,<br />

em matrizes diagonais as diagonais não-nulas podem ser armazenadas separadamente. Em matrizes<br />

simétricas, é necessário armazenar apenas os elementos da diagonal principal e da parte triangular superior<br />

(ou inferior) da matriz, mas isso em geral implica em algoritmos mais complicados para fazer operações com<br />

a matriz.


Capítulo 2<br />

Invertibilidade de Matrizes Esparsas<br />

Neste capítulo desenvolveremos métodos gerais e fáceis de aplicar para determinar a invertibilidade de matrizes<br />

esparsas, principalmente aquelas que surgem através da discretização de equações diferenciais parciais<br />

através de diferenças finitas. Em particular, isso implicará a existência e unicidade de soluções para sistemas<br />

lineares envolvendo tais matrizes. Uma vez que isso esteja estabelecido, poderemos nos dedicar nos próximos<br />

capítulos a estudar métodos iterativos para encontrar estas soluções.<br />

2.1 Normas Matriciais<br />

Lembramos o conceito de norma vetorial:<br />

2.1 Definição. Seja V um espaço vetorial real ou complexo. Uma norma vetorial em V é uma função<br />

|·| : V −→ R que satisfaz as seguintes propriedades:<br />

(i) |x| > 0 para todo x = 0 e |x| = 0 se x = 0;<br />

(ii) αx = |α| x para todo x ∈ V e para todo α ∈ R;<br />

(iii) (Desigualdade Triangular) x + y x + y para todos x, y ∈ V.<br />

Denotaremos por Mn (R) o espaço vetorial das matrizes complexas n × n e por Mn (C) o espaço vetorial<br />

das matrizes complexas n × n. Quando estivermos nos referindo a qualquer um destes espaços (ou seja,<br />

quando a afirmação que fizermos valer para qualquer um deles), usaremos a notação Mn simplesmente.<br />

2.2 Definição. Uma norma matricial no espaço vetorial Mn é uma norma vetorial · : Mn −→ R que<br />

satisfaz a propriedade submultiplicativa<br />

para todas as matrizes A, B ∈ Mn.<br />

AB A B (2.1)<br />

A seguir, veremos alguns exemplos das normas matriciais mais importantes em Mn. A verificação de que<br />

as normas apresentadas constituem normas vetoriais é deixada como exercício (Exercício 2.1).<br />

2.3 Exemplo. Norma l1 (norma da soma):<br />

A 1 =<br />

13<br />

n<br />

|aij| . (2.2)<br />

i,j=1


Rodney Josué Biezuner 14<br />

De fato,<br />

<br />

AB 1 =<br />

n<br />

<br />

n <br />

<br />

<br />

i,j=1<br />

k=1<br />

aikbkj<br />

<br />

<br />

<br />

<br />

<br />

n<br />

i,j,k=1<br />

2.4 Exemplo. Norma l2 (norma euclidiana):<br />

Com efeito,<br />

AB 2<br />

2 =<br />

n<br />

<br />

n <br />

<br />

<br />

i,j=1<br />

k=1<br />

aikbkj<br />

<br />

<br />

<br />

<br />

<br />

2<br />

<br />

n<br />

<br />

n<br />

i,j=1<br />

|aikbkj| <br />

⎛<br />

A2 = ⎝<br />

k=1<br />

|aik| 2<br />

n<br />

i,j,k,l=1<br />

n<br />

i,j=1<br />

n<br />

l=1<br />

|aij| 2<br />

|blj| 2<br />

|aikblj| =<br />

⎞<br />

⎠<br />

<br />

1/2<br />

= ⎝<br />

n<br />

i,k=1<br />

|aik|<br />

n<br />

j,l=1<br />

|blj| = A 1 B 1 .<br />

. (2.3)<br />

⎛<br />

n<br />

i,k=1<br />

|aik| 2<br />

⎞ ⎛<br />

⎠ ⎝<br />

n<br />

j,l=1<br />

|blj| 2<br />

⎞<br />

⎠ = A 2<br />

2 B2 2 .<br />

A norma l2 também é chamada mais raramente (e somente para matrizes) norma de Schur, norma de<br />

Frobenius ou norma de Hilbert-Schmidt. <br />

2.5 Exemplo. Normas lp:<br />

De modo geral, dado p 1, definimos a norma matricial<br />

⎛<br />

n<br />

Ap = ⎝ |aij| p<br />

⎞<br />

⎠<br />

<br />

i,j=1<br />

2.6 Exemplo. Norma l∞ modificada (norma do máximo modificada):<br />

A norma l∞ (norma do máximo)<br />

1/p<br />

A ∞ = max<br />

1i,jn |aij|<br />

é uma norma vetorial em Mn mas não é uma norma matricial: por exemplo, se<br />

então<br />

A =<br />

A 2 =<br />

1 1<br />

1 1<br />

2 2<br />

2 2<br />

e portanto A 2 ∞ = 2 > 1 = A ∞ A ∞ .<br />

No entanto, um múltiplo escalar desta norma vetorial é uma norma matricial:<br />

Com efeito,<br />

<br />

AB n∞ = n max<br />

<br />

n <br />

<br />

<br />

<br />

,<br />

<br />

. (2.4)<br />

A n∞ = n max<br />

1i,jn |aij| . (2.5)<br />

<br />

<br />

<br />

n max<br />

n<br />

aikbkj <br />

|aikbkj| n max A<br />

1i,jn 1i,jn<br />

1i,jn<br />

∞ B∞ k=1<br />

k=1<br />

k=1<br />

= n (n A∞ B∞ ) = n A∞ n B∞ = ABn∞ .<br />

n


Rodney Josué Biezuner 15<br />

2.7 Exemplo. Norma do operador:<br />

Dada uma norma vetorial |·| em R n ou C n , ela induz uma norma matricial através da definição<br />

A = max<br />

|x|=1<br />

|Ax| = max |Ax| = sup<br />

|x|1 x=0<br />

|Ax|<br />

. (2.6)<br />

|x|<br />

Aqui vemos A como um operador linear em Rn ou Cn , portanto contínuo, de modo que o máximo de<br />

A é atingido na esfera e na bola fechada. Para ver que a primeira e a terceira definições coincidem (de<br />

modo que o sup na terceira definição é de fato um máximo), use o fato que<br />

|Ax|<br />

|x| =<br />

<br />

<br />

<br />

A <br />

x <br />

.<br />

|x|<br />

Agora observe que<br />

max |Ax| max |Ax| ,<br />

|x|=1 |x|1<br />

já que a bola fechada contém a esfera. Por outro lado, se |x| = ε < 1, segue que<br />

<br />

<br />

<br />

A <br />

x <br />

=<br />

|x|<br />

|Ax| |Ax|<br />

= > |Ax| ,<br />

|x| ε<br />

de modo que o máximo de |Ax| não é atingido no interior da bola, logo<br />

max |Ax| max<br />

|x|=1 |x|1 |Ax|<br />

e portanto a primeira e a segunda definições coincidem. Finalmente, para ver que a norma do operador<br />

é uma norma matricial, escreva<br />

<br />

|ABx| |ABx| |Bx| |ABx|<br />

AB = max = max<br />

max<br />

x=0 |x| x=0 |Bx| |x| Bx=0 |Bx| max<br />

|Bx| |Ay|<br />

max<br />

x=0 |x| y=0 |y| max<br />

|Bx|<br />

= A B .<br />

x=0 |x|<br />

A norma do operador satisfaz a propriedade extremamente útil<br />

para todo vetor x ∈ R n ou C n . <br />

2.8 Exemplo. Norma do máximo das somas das linhas:<br />

|Ax| A |x| (2.7)<br />

A L = max<br />

1in<br />

j=1<br />

n<br />

|aij| . (2.8)<br />

Esta norma é a norma do operador induzida pela norma vetorial l∞. De fato, se x = (x1, . . . , xn),<br />

temos<br />

<br />

<br />

<br />

n<br />

<br />

<br />

n<br />

n<br />

|Ax| ∞ = max aijxj<br />

<br />

1in max |aijxj| max |aij| |x|<br />

1in<br />

1in<br />

∞ = AL |x| ∞ ,<br />

de modo que<br />

j=1<br />

j=1<br />

max<br />

|x|=1 |Ax| ∞ AL .<br />

Supondo que a i-ésima linha de A é não-nula, definimos o vetor y = (y1, . . . , yn) ∈ Cn por<br />

⎧<br />

⎨<br />

yi =<br />

⎩<br />

aij<br />

|aij|<br />

1<br />

se aij = 0,<br />

se aij = 0.<br />

,<br />

j=1


Rodney Josué Biezuner 16<br />

o que implica |y| ∞ = 1, aijyj = |aij| e<br />

max<br />

|x| ∞ =1 |Ax| ∞ |Ay| <br />

<br />

n<br />

∞ = max <br />

1in <br />

<br />

<br />

j=1<br />

aijyj<br />

2.9 Exemplo. Norma do máximo das somas das colunas:<br />

A C = max<br />

1jn<br />

i=1<br />

<br />

<br />

<br />

<br />

= max<br />

<br />

1in<br />

j=1<br />

n<br />

|aij| = AL .<br />

n<br />

|aij| . (2.9)<br />

Esta norma é a norma do operador induzida pela norma vetorial l1. De fato, escrevendo A em termos<br />

de suas colunas<br />

A = [A1 . . . An]<br />

segue que<br />

Se x = (x1, . . . , xn), segue que<br />

donde<br />

|Ax| 1 = |x1A1 + . . . + xnAn| 1 <br />

= A C<br />

n<br />

i=1<br />

A C = max<br />

1jn |Aj| 1 .<br />

n<br />

|xiAi| 1 =<br />

i=1<br />

|xi| = A C |x| 1 ,<br />

n<br />

|xi| |Ai| 1 <br />

i=1<br />

max<br />

|x| 1 =1 |Ax| 1 AC .<br />

Agora, se escolhermos yj = ej, temos que |yj| 1 = 1 e<br />

para todo k, logo<br />

<br />

2.10 Exemplo. p-normas:<br />

|Ay| 1 = |Aj| 1<br />

n<br />

i=1<br />

max<br />

|x| 1 =1 |Ax| 1 max<br />

1jn |Ayj| 1 = max<br />

1jn |Aj| 1 = AC .<br />

|xi| max<br />

1jn |Aj| 1<br />

Este é o nome geral para as normas do operador induzidas pela norma vetorial lp em R n ou C n . Para<br />

distingui-las das normas matriciais lp no próprio espaço vetorial Mn, vamos denotá-las por<br />

|||A||| p = sup<br />

x=0<br />

|Ax| p<br />

.<br />

|x| p<br />

O caso especial da norma do operador induzida pela norma vetorial l2 (a norma vetorial euclidiana) é<br />

também chamada a norma espectral e satisfaz<br />

|||A||| 2 = <br />

∗<br />

λmax = max |λ| : λ é um autovalor de A A .


Rodney Josué Biezuner 17<br />

De fato, A ∗ A é uma matriz hermitiana logo todos os seus autovalores são não-negativos. Pela caracterização<br />

variacional dos autovalores de uma matriz hermitiana temos<br />

λmax = max<br />

x=0<br />

〈A ∗ Ax, x〉 2<br />

|x| 2<br />

2<br />

= max<br />

x=0<br />

|Ax| 2<br />

.<br />

Observe que a 2-norma é diferente da norma matricial l2 (Exercício 2.3). Note também que se A é<br />

uma matriz hermitiana, então A ∗ A = A 2 e |||A||| 2 é portanto o módulo do maior autovalor de A, isto<br />

é, a norma espectral de A é o raio espectral de A, definido como sendo o maior valor absoluto dos<br />

autovalores λ1, . . . , λn de A:<br />

ρ (A) = max<br />

i=1,...,n |λi| ,<br />

<br />

2.11 Exemplo. Norma induzida por uma matriz invertível:<br />

2<br />

|x| 2<br />

2<br />

Se · é uma norma matricial qualquer e se S é uma matriz invertível, então<br />

define uma norma matricial. Com efeito,<br />

<br />

A S = S −1 AS (2.10)<br />

AB S = S −1 ABS = S −1 ASS −1 BS S −1 AS S −1 BS = A S B S .<br />

Lembramos que todas as normas em um espaço vetorial de dimensão finita são equivalentes, e isso vale em<br />

particular para normas matriciais:<br />

2.12 Teorema. Seja V um espaço vetorial real ou complexo de dimensão finita. Então todas as normas<br />

vetoriais em V são equivalentes, isto é, se · 1 e · 2 são duas normas vetoriais quaisquer em V ,<br />

então existem constantes C1, C2 > 0 tais que<br />

e<br />

para todo x ∈ V .<br />

x 1 C1 x 2<br />

x 2 C2 x 1<br />

Prova: Para mostrar a equivalência entre todas as normas de um espaço vetorial, por transitividade basta<br />

fixar uma norma · 1 e mostrar que qualquer norma arbitrária · 2 é equivalente a · 1 . Seja B = {e1, . . . , en}<br />

uma base para V , de modo que todo vetor x ∈ V se escreve na forma<br />

x =<br />

n<br />

i=1<br />

xiei<br />

e defina · 1 como sendo a norma ℓ 1 em relação a esta base:<br />

x 1 =<br />

n<br />

|xi| .<br />

i=1


Rodney Josué Biezuner 18<br />

Então, se · 2 é uma norma qualquer em V , segue da desigualdade triangular que<br />

x 2 <br />

n<br />

xiei2 =<br />

i=1<br />

<br />

<br />

max<br />

i=1,...,n ei 2<br />

= C2 x 1 ,<br />

n<br />

|xi| ei2 i=1<br />

<br />

n<br />

|xi|<br />

onde denotamos C2 = max<br />

i=1,...,n ei 2 .<br />

Para provar a desigualdade reversa, considere a esfera unitária na norma da soma S = {x ∈ V : x 1 = 1}.<br />

A desigualdade anterior garante que a função x ↦→ x 2 é contínua na topologia definida pela norma · 1 e<br />

portanto assume um valor mínimo m no conjunto fechado e limitado (compacto) S. Necessariamente m > 0:<br />

se existisse e = n<br />

xiei ∈ S tal que e2 = 0, teríamos e = n<br />

xiei = 0, contrariando o fato que {e1, . . . , en}<br />

i=1<br />

é um conjunto linearmente independente. Portanto,<br />

<br />

<br />

<br />

x <br />

<br />

x<br />

m<br />

1 2<br />

para todo x ∈ V , x = 0. Tomando C1 = 1/m, segue que x 1 C1 x 2 para todo x ∈ V . <br />

2.2 Matrizes Diagonalmente Dominantes<br />

2.13 Definição. Dizemos que uma matriz An×n é diagonalmente dominante se<br />

|aii| <br />

i=1<br />

i=1<br />

n<br />

|aij| para todo i = 1, . . . , n<br />

j=1<br />

j=i<br />

e estritamente diagonalmente dominante se<br />

|aii| ><br />

n<br />

|aij| para todo i = 1, . . . , n.<br />

j=1<br />

j=i<br />

2.14 Lema. Seja A ∈ Mn. Se existe alguma norma matricial · tal que I − A < 1, então A é invertível.<br />

Prova. De fato, sob esta condição, afirmamos que a inversa é dada explicitamente pela série<br />

Para todo N ∈ N podemos escrever<br />

k=0<br />

k=0<br />

A −1 =<br />

∞<br />

(I − A) k . (2.11)<br />

k=0<br />

N<br />

A (I − A) k N<br />

= [I − (I − A)] (I − A) k N<br />

=<br />

Como · é uma norma matricial, temos que<br />

<br />

<br />

(I − A) k k<br />

I − A .<br />

k=0<br />

<br />

(I − A) k N+1<br />

− (I − A) k = I − (I − A) N+1 .<br />

k=1


Rodney Josué Biezuner 19<br />

Logo, de I − A < 1 segue que<br />

lim<br />

N→∞ (I − A)N+1 = 0.<br />

Portanto, tomando o limite quando N → ∞, concluímos (2.11). <br />

2.15 Corolário. Se A ∈ Mn é uma matriz singular e · é uma norma matricial, então I − A 1. Em<br />

particular, se · é uma norma matricial, então I 1.<br />

Prova. Para provar a segunda afirmação do enunciado, basta tomar A = 0.<br />

2.16 Proposição. Se A é uma matriz estritamente diagonalmente dominante, então A é invertível.<br />

Prova. Denote por D a matriz diagonal cujas entradas diagonais são as entradas diagonais de A. Uma<br />

matriz estritamente diagonalmente dominante possui, por definição, entradas diagonais não-nulas, logo D é<br />

uma matriz invertível. A matriz D −1 A tem apenas 1’s na diagonal principal e se mostramos que D −1 A é<br />

invertível, isto implicará que A é invertível. Para provar isso, considere a matriz I − D−1A. Temos<br />

−1<br />

I − D A<br />

ij =<br />

<br />

0 se i = j,<br />

se i = j.<br />

−aij/aii<br />

Usemos a norma do máximo das somas das linhas. Para cada 1 i n temos<br />

n <br />

<br />

I − D −1 A n<br />

<br />

aij<br />

<br />

n<br />

= <br />

1<br />

ij = |aij| < 1,<br />

|aii|<br />

j=1<br />

j=1<br />

j=i<br />

logo I − D−1A < 1 e o resultado segue do Lema 2.14. <br />

Às vezes, exigir dominância diagonal estrita em todas as linhas é pedir demais. Para certas matrizes,<br />

dominância diagonal junto com dominância diagonal estrita em apenas uma linha é suficiente para garantir<br />

a sua invertibilidade. As matrizes de discretização obtidas no capítulo anterior satisfazem esta condição<br />

(nas linhas correspondentes à pontos adjacentes à fronteira), e nenhuma delas é estritamente diagonalmente<br />

dominante. Por outro lado, vale a pena ressaltar que esta condição não é suficiente para estabelecer a<br />

invertibilidade de uma matriz em geral, como o exemplo<br />

demonstra.<br />

⎡<br />

⎣<br />

aii<br />

4 2 1<br />

0 1 1<br />

0 1 1<br />

2.3 Teorema dos Discos de Gershgorin<br />

A primeira ferramenta teórica é o importante Teorema dos Discos de Gershgorin. Ele decorre da seguinte<br />

observação: se A é uma matriz complexa n × n, podemos sempre escrever A = D + B, onde D = diag<br />

(a11, . . . , ann) é a matriz diagonal formada pela diagonal principal de A e B consiste dos elementos restantes<br />

de A, possuindo uma diagonal principal nula. Se definirmos Aε = D + εB, então A0 = D e A1 = A. Os<br />

autovalores de D são a11, . . . , ann, enquanto que os autovalores de Aε devem estar localizados em vizinhanças<br />

dos pontos a11, . . . , ann, desde que ε seja suficientemente pequeno. O mesmo deve valer para os autovalores<br />

da matriz A: eles devem estar contidos em discos centrados nos elementos a11, . . . , ann da diagonal principal<br />

se os discos são suficientemente grandes. O Teorema de Gershgorin dá uma estimativa precisa e simples de<br />

calcular para os raios destes discos em função das entradas restantes da matriz A. Denote o disco complexo<br />

fechado de centro em a e raio R por<br />

⎤<br />

⎦<br />

j=1<br />

j=i<br />

DR (a) = {z ∈ C : |z − a| R} .


Rodney Josué Biezuner 20<br />

2.17 Teorema. (Teorema dos Discos de Gershgorin) Se A ∈ Mn (C) e<br />

Ri (A) =<br />

n<br />

|aij| (2.12)<br />

denota a soma dos valores absolutos dos elementos da linha i de A excetuando o elemento da diagonal<br />

principal, então todos os autovalores de A estão contidos na união dos n discos de Gershgorin<br />

G (A) =<br />

n<br />

i=1<br />

j=1<br />

j=i<br />

D Ri(A) (aii) . (2.13)<br />

Além disso, se uma união de k destes discos forma uma região que é disjunta dos n−k discos restantes,<br />

então existem exatamente k autovalores de A nesta região.<br />

Prova. Seja λ um autovalor de A e x = (x1, . . . , xn) = 0 um autovetor associado. Seja k um índice tal que<br />

|xk| |xj| para j = 1, . . . , n,<br />

isto é, xk é a coordenada de x de maior valor absoluto. Denotando por (Ax) k a k-ésima coordenada do vetor<br />

Ax = λx, temos<br />

n<br />

λxk = (Ax) k =<br />

que é equivalente a<br />

Daí,<br />

ou seja,<br />

|xk| |λ − akk| <br />

j=1<br />

j=k<br />

xk (λ − akk) =<br />

j=1<br />

j=k<br />

j=1<br />

n<br />

j=1<br />

j=k<br />

akjxj<br />

akjxj.<br />

n<br />

n<br />

n<br />

|akjxj| = |akj| |xj| |xk| |akj| = |xk| Rk (A) ,<br />

|λ − akk| Rk (A) .<br />

Isso prova o resultado principal do Teorema de Gershgorin (como não sabemos qual k é apropriado para<br />

cada autovalor λ, e um mesmo k pode servir para vários autovalores λ, tudo o que podemos afirmar é que<br />

os autovalores estão na união dos discos).<br />

Para provar a segunda afirmação, escreva A = D + B, onde D = diag (a11, . . . , ann) e defina<br />

para 0 t 1. Note que<br />

At = D + tB<br />

j=1<br />

j=k<br />

Ri (At) = Ri (tB) = tRi (A) .<br />

Para simplificar a notação, assuma que a união dos primeiros k discos de Gershgorin<br />

satisfaz Gk (A) ∩ [G (A) \Gk (A)] = ∅. Temos<br />

Gk (A) =<br />

k<br />

i=1<br />

D Ri(A) (aii)<br />

D Ri(At) (aii) = {z ∈ C : |z − aii| Ri (At)} = {z ∈ C : |z − aii| tRi (A)} ⊂ D Ri(A) (aii) ,


Rodney Josué Biezuner 21<br />

logo,<br />

e<br />

Gk (At) ⊂ Gk (A)<br />

Gk (A) ∩ [G (At) \Gk (At)] = ∅<br />

para 0 t 1. Porque os autovalores são funções contínuas das entradas de uma matriz, o caminho<br />

λi (t) = λi (At)<br />

é um caminho contínuo que liga λi (A0) = λi (D) = aii a λi (A1) = λi (A). Seja 1 i k. Como<br />

λi (At) ∈ Gk (At) ⊂ Gk (A), concluímos que para cada 0 t 1 existem k autovalores de At em Gk (A); em<br />

particular, fazendo t = 1, obtemos que Gk (A) possui pelo menos k autovalores de A. Da mesma forma, não<br />

pode haver mais que k autovalores de A em Gk (A), pois os n − k autovalores restantes de A0 = D começam<br />

fora do conjunto Gk (A) e seguem caminhos contínuos que permanecem fora de Gk (A). <br />

A união G (A) dos discos de Gershgorin é conhecida como a região de Gershgorin. Observe que enquanto<br />

não podemos em geral afirmar com certeza que cada disco de Gershgorin possui um autovalor, a segunda<br />

afirmação do teorema permite-nos fazer tal conclusão desde que os discos de Gershgorin sejam dois a dois<br />

disjuntos.<br />

O Teorema dos Discos de Gershgorin permite entender o resultado da Proposição 2.16: se uma matriz A é<br />

estritamente diagonalmente dominante, então os discos de Gershgorin D Ri(A) (aii) não interceptam a origem,<br />

logo 0 não pode ser um autovalor para a matriz A, o que implica que A é invertível. Além disso, se todos<br />

os elementos da diagonal principal de A são reais e positivos, então os autovalores de A estão localizados no<br />

semiplano direito de C, de modo que se A é também simétrica, concluímos que todos os autovalores de A<br />

são positivos.<br />

A aplicação mais óbvia do Teorema dos Discos de Gershgorin é na estimativa dos autovalores de uma<br />

matriz. Usos mais refinados do Teorema de Gershgorin permitem obter conhecimento mais preciso sobre<br />

onde os autovalores da matriz se encontram e correspondentemente melhores estimativas para o raio espectral<br />

de uma matriz. Por exemplo, como A e A t possuem os mesmos autovalores, existe um teorema dos discos<br />

de Gershgorin equivalente para as colunas de uma matriz. Em particular, todos os autovalores de A estão<br />

localizados na interseção destas duas regiões: G (A) ∩ G (A t ). Isso implica a seguinte estimativa simples para<br />

o raio espectral de uma matriz complexa:<br />

2.18 Corolário. Se A ∈ Mn (C), então<br />

⎛<br />

ρ (A) min ⎝ max<br />

i=1,...,n<br />

j=1<br />

n<br />

|aij| , max<br />

n<br />

⎞<br />

|aij| ⎠ = min (A<br />

j=1,...,n<br />

L , AC ) .<br />

i=1<br />

Prova. O ponto no i-ésimo disco de Gershgorin que é mais distante da origem tem módulo<br />

n<br />

|aii| + Ri (A) =<br />

e um resultado semelhante vale para as colunas de A. <br />

O resultado do Corolário 2.18 não é surpreendente em vista do raio espectral de uma matriz ser menor que<br />

qualquer norma matricial (veja o próximo capítulo). Um resultado melhor pode ser obtido uma vez que<br />

se observa que A e S−1AS também possuem os mesmos autovalores, qualquer que seja a matriz invertível<br />

S. Em particular, quando S = D = diag (p1, . . . , pn) é uma matriz diagonal com todos os seus elementos<br />

positivos, isto é, pi > 0 para todo i, aplicando o Teorema de Gershgorin à matriz<br />

<br />

D −1 AD =<br />

e à sua transposta, obtemos o seguinte resultado que permite obter uma estimativa arbitrariamente boa dos<br />

autovalores de A:<br />

pj<br />

j=1<br />

aij<br />

pi<br />

|aij|


Rodney Josué Biezuner 22<br />

2.19 Corolário. Se A ∈ Mn (C) e p1, . . . , pn > 0, então todos os autovalores de A estão contidos em<br />

Em particular,<br />

G D −1 AD ∩ G DA t D −1 =<br />

ρ (A) min<br />

2.4 Propriedade FC<br />

p1,...,pn>0<br />

⎛<br />

∩<br />

⎝ max<br />

i=1,...,n<br />

n<br />

i=1<br />

n<br />

i=1<br />

1<br />

⎧<br />

⎪⎨<br />

z ∈ C : |z − aii| <br />

⎪⎩<br />

1<br />

pi<br />

⎧<br />

⎪⎨<br />

⎪⎩ z ∈ C : |z − aii| pj<br />

n<br />

n<br />

n<br />

j=1<br />

j=i<br />

n<br />

i=1<br />

i=j<br />

pj |aij|<br />

1<br />

|aij|<br />

pi<br />

pj |aij| , max<br />

pi<br />

j=1,...,n<br />

j=1<br />

pj |aij|<br />

pi<br />

i=1<br />

1<br />

⎞<br />

⎫<br />

⎪⎬<br />

⎪⎭<br />

⎫<br />

⎪⎬<br />

⎪⎭ .<br />

(2.14)<br />

⎠ . (2.15)<br />

Na nossa busca por propriedades para matrizes diagonalmente dominantes que garantirão a sua invertibilidade,<br />

uma observação fundamental é a de que se A é uma matriz diagonalmente dominante, então 0 não<br />

pode ser um ponto interior de nenhum disco de Gershgorin. De fato, se λ é um autovalor de A interior a<br />

algum disco de Gershgorin então devemos ter desigualdade estrita<br />

|λ − aii| < Ri (A) =<br />

para algum i. Se 0 é um autovalor de A interior a algum disco de Gershgorin, então<br />

|aii| <<br />

n<br />

j=1<br />

j=i<br />

para algum i e A não pode ser diagonalmente dominante na linha i.<br />

Uma condição equivalente para que um autovalor λ de A não seja um ponto interior de nenhum disco de<br />

Gershgorin é que<br />

n<br />

|λ − aii| Ri (A) = |aij| para todo i = 1, . . . , n.<br />

j=1<br />

j=i<br />

Tais pontos λ na região de Gershgorin G (A) (não necessariamente autovalores de A) constituem precisamente<br />

a fronteira ∂G (A) da região de Gershgorin. Chamaremos a fronteira de um disco de Gershgorin<br />

{z ∈ C : |z − aii| = Ri (A)} um círculo de Gershgorin.<br />

2.20 Lema. Seja A ∈ Mn (C) e λ um autovalor de A que não é um ponto interior de nenhum disco de<br />

Gershgorin. Seja x = (x1, . . . , xn) = 0 um autovetor associado a λ e k um índice tal que<br />

Se i é qualquer índice tal que<br />

|aij|<br />

n<br />

j=1<br />

j=i<br />

|aij|<br />

|xk| |xj| para j = 1, . . . , n.<br />

|xi| = |xk|


Rodney Josué Biezuner 23<br />

então o i-ésimo círculo de Gershgorin passa por λ. Se, além disso,<br />

então<br />

aij = 0,<br />

|xj| = |xk|<br />

e o j-ésimo círculo de Gershgorin também passa por λ.<br />

Prova. Como na demonstração do Teorema de Gershgorin, temos<br />

|xi| |λ − aii| <br />

n<br />

n<br />

n<br />

|aijxj| = |aij| |xj| |xk| |aij| = |xk| Ri (A) (2.16)<br />

j=1<br />

j=i<br />

para todo índice i. Logo, se |xi| = |xk|, temos<br />

Como por hipótese<br />

para todo índice i, segue que<br />

j=1<br />

j=i<br />

|λ − aii| Ri (A) .<br />

|λ − aii| Ri (A)<br />

|λ − aii| = Ri (A) .<br />

Em geral, |xi| = |xk| implica que as desigualdades em (2.16) são identidades; em particular,<br />

donde<br />

n<br />

n<br />

|aij| |xj| = |xi|<br />

j=1<br />

j=i<br />

j=1<br />

j=i<br />

|aij|<br />

n<br />

|aij| (|xi| − |xj|) = 0.<br />

j=1<br />

j=i<br />

Esta é uma soma de termos não-negativos, pois |xi| |xj|, logo se aij = 0 necessariamente devemos ter<br />

|xj| = |xi| = |xk|. <br />

Este lema técnico tem as seguintes conseqüências úteis:<br />

2.21 Teorema. Seja A ∈ Mn (C) uma matriz cujas entradas são todas não-nulas e seja λ um autovalor<br />

de A que não é um ponto interior de nenhum disco de Gershgorin. Então todo círculo de Gershgorin<br />

de A passa por λ (isto é, λ está na interseção de todos os círculos de Gershgorin de A) e se x =<br />

(x1, . . . , xn) = 0 é um autovetor associado a λ então<br />

Prova. Decorre diretamente do lema anterior. <br />

j=1<br />

j=i<br />

|xi| = |xj| para todos i, j = 1, . . . , n.<br />

2.22 Corolário. Se A ∈ Mn (C) é uma matriz cujas entradas são todas não-nulas e diagonalmente dominante<br />

tal que |aii| > n<br />

|aij| para pelo menos alguma linha i, então A é invertível.<br />

j=1<br />

j=i


Rodney Josué Biezuner 24<br />

Prova. Pois, como A é diagonalmente dominante, se 0 é um autovalor de A então 0 não pode ser um ponto<br />

interior de nenhum disco de Gershgorin. Por outro lado, pelo teorema anterior, segue que todo círculo de<br />

Gershgorin passa por 0. Entretanto, o i-ésimo círculo de Gershgorin centrado em aii e com raio Ri < |aii|<br />

não pode passar por 0. Concluímos que 0 não é um autovalor de A, logo A é invertível. <br />

As matrizes do Corolário 2.22 são as antíteses das matrizes esparsas que nos interessam. Usando com<br />

maior cuidado a informação dada pelo Lema 2.20 podemos obter resultados que se aplicam a matrizes<br />

esparsas.<br />

2.23 Definição. Dizemos que uma matriz A = (aij) ∈ Mn (C) satisfaz a propriedade FC se para todo par<br />

de inteiros distintos i, j existe uma seqüência de inteiros distintos i1 = i, i2, i3, . . . , im−1, im = j, com<br />

1 m n, tais que todas as entradas matriciais<br />

são não-nulas.<br />

ai1i2 , ai2i3 , . . . , aim−1im<br />

Por exemplo, a matriz diagonalmente dominante não-invertível<br />

⎡<br />

4<br />

⎣ 0<br />

2<br />

1<br />

1<br />

1<br />

⎤<br />

⎦ ,<br />

0 1 1<br />

já vista anteriormente, não satisfaz a propriedade FC porque o par 2, 1 não admite tal seqüência (a única<br />

seqüência possível é a23, a31). Já qualquer par de inteiros distintos i, j tal que aij = 0 admite a seqüência<br />

trivial não-nula aij, de modo que uma matriz cujas entradas não-diagonais são todas não-nulas satisfaz a<br />

propriedade FC. O significado da abreviatura “FC”, ou “fortemente conexo”, ficará claro mais adiante.<br />

2.24 Teorema. Seja A ∈ Mn (C) uma matriz que satisfaz a propriedade FC e seja λ um autovalor de A que<br />

não é um ponto interior de nenhum disco de Gershgorin. Então todo círculo de Gershgorin de A passa<br />

por λ (isto é, λ está na interseção de todos os círculos de Gershgorin de A) e se x = (x1, . . . , xn) = 0<br />

é um autovetor associado a λ então<br />

|xi| = |xj| para todos i, j = 1, . . . , n.<br />

Prova. Seja x = (x1, . . . , xn) = 0 um autovetor associado a λ e i um índice tal que<br />

Pelo Lema 2.20,<br />

|xi| |xk| para k = 1, . . . , n.<br />

|λ − aii| = Ri (A) .<br />

Seja j = i qualquer outro índice e i1 = i, i2, i3, . . . , im−1, im = j, com 1 m n, índices tais que todas as<br />

entradas matriciais<br />

aii2 , ai2i3 , . . . , aim−1j = 0.<br />

Como aii2 = 0, segue da segunda afirmativa do Lema 2.20 que |xi2| = |xi|. Mas então ai2i3 = 0 e portanto<br />

|xi3| = |xi2| = |xi|. Prosseguindo desta forma, concluímos que<br />

|xi| = |xi2| = . . . <br />

xim−1<br />

= |xj| .<br />

Em particular, segue novamente do Lema 2.20 que o j-ésimo círculo de Gershgorin passa por λ. Como j é<br />

arbitrário, isso prova o teorema. <br />

2.25 Corolário. Se A ∈ Mn (C) é uma matriz que satisfaz a propriedade FC e diagonalmente dominante<br />

tal que |aii| > n<br />

|aij| para pelo menos alguma linha i, então A é invertível.<br />

j=1<br />

j=i


Rodney Josué Biezuner 25<br />

Prova. Segue do teorema anterior da mesma forma que o Corolário 2.22 segue do Teorema 2.21. <br />

Vamos tentar entender melhor o significado da propriedade FC. Note que ela se refere apenas à localização<br />

dos elementos não-nulos de A fora da diagonal principal – os elementos da diagonal principal e os valores<br />

específicos dos elementos fora da diagonal principal são irrelevantes. Isso motiva as seguintes definições:<br />

2.26 Definição. Dada uma matriz A = (aij) ∈ Mn (C) definimos o módulo da matriz A como sendo a<br />

matriz<br />

|A| = (|aij|)<br />

cujos elementos são os módulos dos elementos da matriz A e a matriz indicadora de A como sendo<br />

a matriz<br />

M (A) = (µij) ,<br />

onde<br />

µij =<br />

1 se aij = 0,<br />

0 se aij = 0.<br />

O conceito de uma seqüência de entradas não-nulas da matriz A que aparece na definição da propriedade<br />

FC pode ser visualizado em termos de caminhos em um grafo associado a A:<br />

2.27 Definição. Dada uma matriz A ∈ Mn (C), o grafo direcionado de A é o grafo direcionado Γ (A)<br />

com n nodos P1, . . . , Pn tais que existe um arco direcionado em Γ (A) de Pi a Pj se e somente se aij = 0.<br />

Um caminho direcionado γ em um grafo Γ é uma seqüência de arcos Pi1Pi2, Pi2Pi3, . . . em Γ. O<br />

comprimento de um caminho direcionado é o número de arcos sucessivos no caminho direcionado. Um<br />

ciclo é um caminho direcionado que começa e termina no mesmo nó.<br />

Dizemos que um grafo direcionado é fortemente conexo se entre qualquer par de nodos distintos<br />

Pi, Pj ∈ Γ existir um caminho direcionado de comprimento finito que começa em Pi e termina em Pj.<br />

Observe que quando Γ é um grafo direcionado com n nodos, se existe um caminho direcionado entre dois<br />

nodos de Γ, então sempre existe um caminho direcionado entre estes dois nodos de comprimento menor que<br />

ou igual a n − 1 (Exercício 2.7).<br />

2.28 Teorema. A ∈ Mn (C) satisfaz a propriedade FC se e somente se Γ (A) é fortemente conexo.<br />

Agora estamos em condições de verificar a invertibilidade das matrizes esparsas oriundas da discretização<br />

de EDPs através de diferenças finitas:<br />

2.29 Teorema. As matrizes de discretização do problema modelo são invertíveis.<br />

Prova. É fácil ver que as matrizes de discretização obtidas no capítulo anterior para o intervalo e para<br />

o quadrado são matrizes diagonalmente dominantes com dominância diagonal estrita nas linhas correspondentes<br />

a pontos interiores adjacentes à fronteira. Além disso, elas satisfazem a propriedade FC. De fato, cada<br />

índice i da matriz corresponde a um ponto interior Pi da malha e aij = 0 sempre que Pi e Pj são pontos<br />

vizinhos naqueles esquemas. Então, dados dois pontos distintos Pi, Pj é fácil encontrar uma seqüência de<br />

índices i1 = i, i2, i3, . . . , im−1, im = j, com 1 m n, tais que todas as entradas matriciais<br />

ai1i2, ai2i3, . . . , aim−1im<br />

são não-nulas: no caso unidimensional, basta percorrer a malha diretamente de Pi até Pj (andando a partir<br />

de Pi sempre para a direita ou sempre para a esquerda, conforme o caso, até encontrar Pj), e no caso<br />

bidimensional basta usar qualquer caminho interior de Pi até Pj (pode-se usar a ordem lexicográfica para<br />

percorrer a malha, ou a ordem lexicográfica inversa, dependendo das posições relativas de Pi e Pj; no entanto,<br />

estes caminhos são mais longos que o necessário). Em outras palavras, identificando as malhas de pontos<br />

internos com os grafos direcionados da matriz de discretização, de modo que existe um arco direcionado entre


Rodney Josué Biezuner 26<br />

dois pontos da malha se e somente se eles são vizinhos, os esquemas de discretização considerados garantem<br />

que estes grafos são fortemente conexos. <br />

Verificar a propriedade FC a partir do grafo direcionado de A pode ser impraticável se o tamanho da<br />

matriz for muito grande ou se a matriz não tiver origem na discretização de um problema de EDPs. Existe<br />

um método computacional mais explícito para fazê-lo:<br />

2.30 Teorema. Sejam A ∈ Mn (C) e Pi, Pj nodos de Γ (A). Existe um caminho direcionado de comprimento<br />

m em Γ (A) de Pi para Pj se e somente se<br />

ou, equivalentemente, se e somente se<br />

(|A| m ) ij = 0<br />

[M (A) m ] ij = 0.<br />

Prova. Provaremos o teorema por indução. Para m = 1 a afirmativa é trivial. Para m = 2, temos<br />

de modo que<br />

<br />

|A| 2<br />

ij<br />

<br />

|A| 2<br />

ij<br />

=<br />

n<br />

k=1<br />

(|A|) ik (|A|) kj =<br />

n<br />

k=1<br />

|aik| |akj| ,<br />

= 0 se e somente se aik, akj são ambos não-nulos para algum índice k. Mas isso é<br />

equivalente a dizer que existe um caminho direcionado de comprimento 2 em Γ (A) de Pi para Pj.<br />

Em geral, supondo a afirmativa provada para m, temos<br />

<br />

|A| m+1<br />

ij<br />

=<br />

n<br />

k=1<br />

(|A| m ) ik (|A|) kj =<br />

n<br />

k=1<br />

(|A| m ) ik |akj| = 0<br />

se e somente se (|A| m ) ik , akj são ambos não-nulos para algum índice k. Por hipótese de indução, isso é<br />

equivalente a existir um caminho direcionado de comprimento m em Γ (A) de Pi para Pk e um caminho<br />

direcionado de comprimento 1 em Γ (A) de Pk para Pj, isto é, um caminho direcionado de comprimento<br />

m + 1 em Γ (A) de Pi para Pj. O mesmo argumento vale para M (A). <br />

2.31 Definição. Seja A = (aij) ∈ Mn (C). Dizemos que A 0 se aij 0 para todos 1 i, j n e que<br />

A > 0 se aij > 0 para todos 1 i, j n.<br />

2.32 Corolário. Seja A ∈ Mn (C). Existe um caminho direcionado de comprimento m em Γ (A) de cada<br />

nodo Pi para cada nodo Pj se e somente se<br />

ou, equivalentemente, se e somente se<br />

|A| m > 0<br />

M (A) m > 0.<br />

2.33 Corolário. Seja A ∈ Mn (C). A satisfaz a propriedade FC se e somente se<br />

ou, equivalentemente, se e somente se<br />

(I + |A|) n−1 > 0<br />

[I + M (A)] n−1 > 0.


Rodney Josué Biezuner 27<br />

Prova. Temos<br />

(I + |A|) n−1 <br />

n − 1<br />

= I + (n − 1) |A| + |A|<br />

2<br />

2 + . . . +<br />

<br />

n − 1<br />

|A|<br />

n − 3<br />

n−1 + |A| n−1 > 0<br />

se e somente se para cada par de índices i, j com i = j pelo menos um dos termos |A| , |A| 2 , . . . , |A| n−1<br />

tem uma entrada positiva em (i, j). Pelo Teorema 2.30, isso ocorre se e somente se existe algum caminho<br />

direcionado em Γ (A) de Pi para Pj com comprimento n−1. Isto é equivalente a A satisfazer a propriedade<br />

FC. O mesmo argumento vale para M (A). <br />

Em geral, a maneira como uma matriz foi obtida (como as nossas matrizes de discretização; veja a última<br />

seção do capítulo) torna clara se elas são matrizes que satisfazem a propriedade FC ou não. Se isso<br />

não é possível, e pretende-se verificar a propriedade FC através do Corolário 2.33, é preferível calcular<br />

[I + M (A)] n−1 , já que M (A) é uma matriz composta apenas de 0’s e 1’s.<br />

2.5 Matrizes Irredutíveis<br />

Às vezes, os resultados da seção anterior são formulados em termos de matrizes irredutíveis. Neste seção<br />

examinaremos esta formulação equivalente.<br />

Lembre-se que uma matriz de permutação P é uma matriz quadrada cujas entradas são todas 0 ou 1<br />

e, além disso, em cada linha e em cada coluna de P existe exatamente um 1. Em particular, P é uma matriz<br />

ortogonal, de modo que P −1 = P t , isto é, a inversa de P também é uma matriz de permutação. Um caso<br />

especial de uma matriz de permutação é uma matriz de transposição, que é uma matriz de permutação T<br />

igual à matriz identidade exceto em duas posições, isto é, para algum par de índices fixado k, l temos<br />

⎧<br />

⎨ δij se (i, j) = (k, l) , (l, k) , (k, k) ou (l, l) ,<br />

Tij =<br />

⎩<br />

1<br />

0<br />

e (i, j) = (k, l) ou se (i, j) = (l, k) ,<br />

se (i, j) = (k, k) ou se (i, j) = (l, l) .<br />

Matrizes de transposição são simétricas. O efeito de multiplicar uma matriz A por uma matriz de transposição<br />

à esquerda é trocar a posição de duas linhas da matriz A (no caso acima, as linhas k e l), enquanto que a<br />

multiplicação de A por uma matriz de transposição à direita muda a posição de duas colunas de A (no caso<br />

acima, as colunas k e l).<br />

T A =<br />

AT =<br />

⎡<br />

⎢<br />

⎣<br />

⎡<br />

⎢<br />

⎣<br />

1 0 0 0<br />

0 0 1 0<br />

0 1 0 0<br />

0 0 0 1<br />

⎤ ⎡<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎦ ⎣<br />

a11 a12 a13 a14<br />

a21 a22 a23 a24<br />

a31 a32 a33 a34<br />

a41 a42 a43 a44<br />

a11 a12 a13 a14<br />

a21 a22 a23 a24<br />

a31 a32 a33 a34<br />

a41 a42 a43 a44<br />

⎤ ⎡<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎦ ⎣<br />

1 0 0 0<br />

0 0 1 0<br />

0 1 0 0<br />

0 0 0 1<br />

⎤<br />

⎡<br />

⎥<br />

⎦ =<br />

⎢<br />

⎣<br />

⎤<br />

⎥<br />

⎦ =<br />

⎡<br />

⎢<br />

⎣<br />

a11 a12 a13 a14<br />

a31 a32 a33 a34<br />

a21 a22 a23 a24<br />

a41 a42 a43 a44<br />

a11 a13 a12 a14<br />

a21 a23 a22 a24<br />

a31 a33 a32 a34<br />

a41 a43 a42 a44<br />

Pode-se provar que toda matriz de permutação P é o produto de matrizes de transposição P = T1 . . . Tm;<br />

em particular, P t = Tm . . . T1. A matriz<br />

P t AP = Tm . . . T1AT1 . . . Tm<br />

é portanto obtida através da permutação de linhas e colunas de A, de modo que nenhum novo elemento é<br />

criado ou algum elemento existente de A destruído.<br />

2.34 Definição. Dizemos que uma matriz A ∈ Mn (C) é redutível se existe alguma matriz de permutação<br />

P e algum inteiro 1 m n − 1 tal que<br />

P t <br />

B C<br />

AP =<br />

0 D<br />

⎤<br />

⎥<br />

⎦ ,<br />

⎤<br />

⎥<br />

⎦ .


Rodney Josué Biezuner 28<br />

onde B é uma matriz m × m, D é uma matriz (n − m) × (n − m), C é uma matriz m × (n − m) e 0 é<br />

a matriz nula (n − m) × m. Caso contrário, dizemos que A é irredutível.<br />

Da definição vemos que se |A| > 0, então A é irredutível, e para que A seja redutível, ela precisa ter pelo<br />

menos n − 1 zeros (caso m = 1). A motivação para este nome é a seguinte. Suponha que queiramos resolver<br />

o sistema Ax = b e que A seja redutível. Então, se escrevermos<br />

A = P t AP =<br />

B C<br />

0 D<br />

teremos Ax = P AP t x = b ou AP t x = P t b; denotando x = P t x e b = P t b, resolver o sistema Ax = b é então<br />

equivalente a resolver o sistema<br />

Ax = b.<br />

Escrevendo<br />

x =<br />

y<br />

z<br />

<br />

b1<br />

, b =<br />

b2<br />

onde y, b1 ∈ C m e z, b2 ∈ C n−m , este sistema é por sua vez equivalente ao sistema<br />

By + Cz = b1<br />

Dz = b2<br />

Se resolvermos primeiro Dz = b2 e utilizarmos o valor de z encontrado na primeira equação resolvendo<br />

By = b1 − Cz, teremos reduzido o problema original a dois problemas menores, mais fáceis de resolver.<br />

2.35 Teorema. Uma matriz A ∈ Mn (C) é irredutível se e somente se<br />

ou, equivalentemente, se e somente se<br />

(I + |A|) n−1 > 0<br />

<br />

,<br />

<br />

[I + M (A)] n−1 > 0.<br />

Prova. Para provar o resultado, mostraremos que A é redutível se e somente se (I + |A|) n−1 possui pelo<br />

menos uma entrada nula.<br />

Assuma primeiramente que A é redutível, de modo que para alguma matriz de permutação P tenhamos<br />

Observe que<br />

A = P<br />

B C<br />

0 D<br />

<br />

P t =: P AP t .<br />

|A| = P AP t = P A P t ,<br />

já que o efeito de P é apenas trocar linhas e colunas. Além disso, note que<br />

A k <br />

=<br />

para alguma matriz Ck. Logo, como<br />

B k Ck<br />

0 D k<br />

(I + |A|) n−1 = I + P A P t n−1 = P I + A n−1 P t<br />

= P<br />

<br />

I + (n − 1) |A| +<br />

n − 1<br />

2<br />

<br />

|A| 2 + . . . +<br />

<br />

n − 1<br />

|A|<br />

n − 3<br />

n−1 + |A| n−1<br />

<br />

P t


Rodney Josué Biezuner 29<br />

e todos os termos dentro dos colchetes são matrizes que tem um bloco (n − m) × m nulo no canto esquerdo<br />

inferior, segue que (I + |A|) n−1 é redutível, logo possui entradas nulas e não pode ser positiva.<br />

Reciprocamente, suponha que (I + |A|) n−1 possui pelo menos uma entrada nula. Como<br />

(I + |A|) n−1 = I +<br />

n−1 <br />

m=1<br />

n − 1<br />

m<br />

<br />

|A| m ,<br />

(I + |A|) n−1 <br />

não possui entradas diagonais nulas, logo podemos assumir que para algum par i = j temos<br />

(I + |A|) n−1<br />

= 0, o que implica [|A| m ] ij = 0 para todo 1 m n − 1. Pelo Teorema 2.30 (e observação<br />

ij<br />

imediatamente posterior à definição de grafo direcionado), não existe um caminho direcionado em Γ (A) de<br />

comprimento finito entre Pi e Pj. Defina os conjuntos de nodos<br />

S1 := {Pk : Pk = Pj ou existe um caminho direcionado em Γ (A) entre Pk e Pj} ,<br />

S2 = [ nodos de Γ (A)] \S1.<br />

Por definição destes conjuntos, não pode existir nenhum caminho de algum nodo de S2 para algum nodo de<br />

S1, logo [|A| m ] lk = 0 se Pl ∈ S2 e Pk ∈ S1. E ambos os conjuntos são não-vazios, pois Pj ∈ S1 e Pi ∈ S2.<br />

Renomeando os nodos de modo que<br />

<br />

S1 = P1, . . . , <br />

Pm ,<br />

<br />

S2 = Pm+1, . . . , <br />

Pn ,<br />

segue que existe uma matriz de permutação P tal que<br />

P t <br />

B C<br />

AP =<br />

0 D<br />

De fato, P é justamente a matriz de permutação que troca as colunas de tal forma que as variáveis anteriores<br />

correspondentes aos nodos P1, . . . , Pm no sistema Ax = b são as novas m primeiras variáveis do sistema linear<br />

Ax = b; como não existe nenhum caminho direcionado entre nenhum dos nodos Pm+1, . . . , Pn e qualquer um<br />

dos nodos P1, . . . , Pm, temos aij = 0 para m + 1 i n e 1 j m pelo Teorema 2.30. <br />

2.36 Corolário. Uma matriz A ∈ Mn (C) é irredutível se e somente se ela satisfaz a propriedade FC.<br />

2.37 Proposição. Se A é uma matriz irredutível, diagonalmente dominante tal que |aii| > n<br />

|aij| para<br />

pelo menos alguma linha i, então A é invertível.<br />

Além disso, se A é hermitiana e todos os elementos da diagonal principal de A são positivos, então<br />

todos os autovalores de A são positivos.<br />

Prova. O resultado segue do Teorema 2.34, do Corolário 2.25 e do Teorema dos Discos de Gershgorin (veja<br />

comentários após o Teorema 2.18). <br />

2.38 Corolário. Os autovalores das matrizes de discretização do problema modelo são positivos.<br />

2.6 Exercícios<br />

2.1 Mostre que as normas matriciais introduzidas na primeira seção deste capítulo (Exemplos 2.3 até 2.11)<br />

são de fato normas vetoriais.<br />

<br />

.<br />

j=1<br />

j=i


Rodney Josué Biezuner 30<br />

2.2 Mostre que a norma lp (Exemplo 2.5) é uma norma matricial.<br />

2.3 Mostre que a norma l2 é diferente da 2-norma em Mn (veja Exemplo 2.10).<br />

2.4 Seja V um espaço vetorial de dimensão finita e · 1 , · 2 normas vetoriais quaisquer. Prove que existe<br />

uma constante C > 0 tal que<br />

1<br />

C x 1 x 2 C x 1<br />

para todo vetor x ∈ V .<br />

2.5 Seja · uma norma matricial. Prove diretamente das propriedades de uma norma matricial que<br />

I 1.<br />

2.6 a) Seja · uma norma vetorial. Prove que se α > 0, então α · é também uma norma vetorial.<br />

b) Seja · uma norma matricial. Conclua do Lema 2.14 que se α < 1, então α · não é uma norma<br />

matricial.<br />

c) Seja · uma norma matricial. Se α > 1, podemos concluir que α · não é uma norma matricial?<br />

2.7 Mostre que se Γ é um grafo direcionado com n nodos, se existe um caminho direcionado entre dois<br />

nodos de Γ, então sempre existe um caminho direcionado entre estes dois nodos de comprimento menor<br />

que ou igual a n − 1


Capítulo 3<br />

Métodos Iterativos <strong>Linear</strong>es<br />

Neste capítulo investigaremos os métodos iterativos básicos para a resolução de sistemas lineares<br />

Ax = b.<br />

Embora a matriz A que temos em mente é em geral uma matriz grande e esparsa, do tipo que aparece em<br />

esquemas de diferenças finitas para equações diferenciais parciais, os métodos considerados aqui requerem<br />

em princípio apenas que A seja uma matriz invertível com todas as entradas diagonais aii não-nulas (embora<br />

a matriz A deva satisfazer critérios adicionais, de acordo com cada método, para assegurar a convergência<br />

para a solução exata).<br />

Métodos iterativos requerem um chute inicial x 0 , ou seja, um vetor inicial que aproxima a solução exata<br />

x (se não há nenhuma informação disponível sobre a solução exata, de modo que não temos como construir<br />

o chute inicial de forma inteligente, x 0 pode ser uma aproximação muito ruim de x). Uma vez que x 0 é<br />

dado, o método iterativo gera a partir de x 0 uma nova aproximação x 1 , que esperamos deve aproximar<br />

melhor a solução exata. Em seguida, x 1 é usada para gerar uma nova melhor aproximação x 2 e assim por<br />

diante. Desta forma, gera-se uma seqüência de vetores x k que espera-se convergir para x. Como na prática<br />

não podemos iterar para sempre, algum critério de parada deve ser estabelecido a priori. Uma vez que x k<br />

esteja suficientemente próximo da solução exata quanto se precise, de acordo com uma margem de tolerância<br />

previamente fixada, pára-se o processo de iteração e aceita-se x k como a solução aproximada adequada para<br />

o problema. Por exemplo, o critério de parada pode ser estabelecido através de uma cota de tolerância τ:<br />

quando b − Ax k < τ<br />

ou quando x k+1 − x k < τ<br />

as iterações são interrompidas e o último valor aproximado obtido é aceito como a melhor aproximação da<br />

solução dentro das circunstâncias.<br />

Os métodos discutidos neste capítulo não necessitam de um bom chute inicial (embora, é claro, quanto<br />

melhor o chute inicial, menor o número de iterações necessárias para se chegar à solução aproximada com<br />

a exatidão especificada). Embora os métodos iterativos lineares são muitos lentos em relação a outros<br />

métodos iterativos desenvolvidos mais recentemente, sendo portanto raramente utilizados isoladamente, eles<br />

são frequentemente usados hoje em dia como componentes de certos métodos iterativos ultra-rápidos, tais<br />

como o método multigrid.<br />

31


Rodney Josué Biezuner 32<br />

3.1 Método Iterativos Básicos<br />

3.1.1 Método de Jacobi<br />

O método iterativo linear mais simples (que já foi descrito também como o mais lento para convergir, embora<br />

isso realmente depende da matriz A do sistema) é o método de Jacobi (1845) Escrevendo o sistema Ax = b<br />

na forma ⎧⎪<br />

n<br />

a1jxj = b1<br />

⎨ j=1<br />

. ,<br />

n<br />

⎪⎩ anjxj = bn<br />

se aii = 0 para todo i, cada xi pode ser isolado na i-ésima equação e escrito na forma<br />

xi = 1<br />

⎛<br />

⎜<br />

⎝bi ⎞<br />

n ⎟<br />

− aijxj ⎟<br />

⎠ .<br />

Isso sugere definir um método iterativo da seguinte forma: suposto x k = x k 1, . . . , x k n<br />

anterior, obtemos x k+1 = x k+1<br />

1<br />

, . . . , x k+1<br />

n<br />

x k+1<br />

i<br />

aii<br />

por<br />

j=1<br />

1<br />

=<br />

aii<br />

⎛<br />

⎜<br />

⎝ bi −<br />

j=1<br />

j=i<br />

n<br />

j=1<br />

j=i<br />

aijx k j<br />

⎞<br />

obtido no passo<br />

⎟<br />

⎠ . (3.1)<br />

No caso da fórmula de cinco pontos para o problema de Poisson, como a equação para cada ponto (i, j)<br />

é dada por<br />

o método de Jacobi é<br />

−ui,j−1 − ui,j+1 + 4ui,j − ui−1,j − ui+1,j = h 2 fi,j<br />

k<br />

ui,j−1 + u k i−1,j + u k i+1,j + u k i,j+1 + h 2 <br />

fi,j . (3.2)<br />

u k+1 1<br />

i,j =<br />

4<br />

No caso especial da equação de Laplace (f = 0) com condição de fronteira de Dirichlet não-nula, o método<br />

de Jacobi é simplesmente a propriedade do valor médio discreta<br />

u k+1<br />

i,j<br />

1 k<br />

= ui,j−1 + u<br />

4<br />

k i−1,j + u k i+1,j + u k <br />

i,j+1 . (3.3)<br />

Em outras palavras, calculados os valores de u em todos os pontos da malha na iteração anterior, o novo<br />

valor de u em um ponto interior da malha nesta iteração é calculado através da média dos seus quatro<br />

pontos vizinhos. Os valores iniciais de u nos pontos interiores da malha para a primeira iteração (isto é, o<br />

chute inicial) podem ser atribuidos arbitrariamente ou através de algum argumento razoável; por exemplo,<br />

podemos utilizar uma média ponderada dos valores de fronteira para o valor inicial em cada ponto interior<br />

da malha, de acordo com a posição do ponto em relação aos pontos das quatro fronteiras discretizadas.<br />

Em forma matricial, o algoritmo de Jacobi pode ser descrito da seguinte forma. Denotando por D = diag<br />

(a11, . . . , ann) a matriz diagonal cujas entradas são as entradas diagonais de A, temos que<br />

x k+1 = D −1 (D − A) x k + b <br />

(3.4)<br />

ou<br />

x k+1 = D −1 Cx k + b <br />

onde C = D − A é a matriz consistindo dos elementos restantes de A fora da diagonal principal.<br />

(3.5)


Rodney Josué Biezuner 33<br />

3.1.2 Método de Gauss-Seidel<br />

Um método iterativo que converge cerca de duas vezes mais rápido que o método de Jacobi (na maioria<br />

das aplicações) é o método de Gauss-Seidel (desenvolvido inicialmente por Gauss em 1819 para resolver<br />

sistemas de equações lineares que apareciam no seu método de quadrados mínimos e obtendo sua forma final<br />

em 1874 por Seidel), onde os valores de x são atualizados dentro de cada iteração, sem esperar pela próxima.<br />

Em outras palavras, obtido o valor de x k+1<br />

i este é usado no lugar de xk i no cálculo seguinte de xk+1 i+1 . No<br />

sistema Ax = b em que aii = 0 para todo i, como antes isolamos cada xi na i-ésima equação mas desta vez<br />

escrevemos<br />

xi = 1<br />

⎛<br />

⎞<br />

i−1<br />

n<br />

⎝bi − aijxj − ⎠ .<br />

Então definimos<br />

pois os valores x k+1<br />

1<br />

x k+1<br />

i<br />

aii<br />

⎛<br />

1<br />

=<br />

aii<br />

j=1<br />

i−1<br />

⎝bi −<br />

j=1<br />

aijx k+1<br />

j<br />

j=i+1<br />

−<br />

aijxj<br />

n<br />

j=i+1<br />

aijx k j<br />

⎞<br />

⎠ (3.6)<br />

, . . . , x k+1<br />

i−1 já foram computados nesta iteração, enquanto que os valores xk i+1 , . . . , xk n são<br />

fornecidos pela iteração anterior.<br />

Por exemplo, no caso da equação de Laplace, poderíamos utilizar a fórmula<br />

u k+1<br />

i,j<br />

1 k+1<br />

= ui,j−1 + uk+1 i−1,j<br />

4<br />

+ uki+1,j + u k <br />

i,j+1<br />

assumindo que os pontos da malha são percorridos na ordem lexicográfica, de modo que quando vamos<br />

calcular o valor de u no ponto i, j na iteração k + 1, nesta mesma iteração já calculamos os valores de u em<br />

i − 1, j e em i, j − 1, e usamos estes valores para calcular u k+1<br />

i,j ao invés dos valores u k i,j−1 e uk i−1,j obtidos<br />

na iteração anterior.<br />

Em forma matricial, o algoritmo de Gauss-Seidel pode ser descrito da seguinte forma. Dada uma matriz<br />

A, existe uma única decomposição<br />

A = D − L − U (3.8)<br />

onde D é uma matriz diagonal, L é uma matriz estritamente triangular inferior e U é uma matriz estritamente<br />

triangular superior; de fato, D = diag (a11, . . . , ann) é a parte diagonal de A, −L é a parte estritamente<br />

triangular inferior de A e −U é a parte estritamente triangular superior de A. Então o algoritmo de Gauss-<br />

Seidel pode ser definido por<br />

x k+1 = D −1 Lx k+1 + Ux k + b <br />

(3.9)<br />

ou<br />

donde<br />

(D − L) x k+1 = Ux k + b,<br />

(3.7)<br />

x k+1 = (D − L) −1 Ux k + b . (3.10)<br />

3.1 Exemplo. Existem matrizes para as quais o método de Jacobi converge e o método de Gauss-Seidel<br />

diverge, e vice-versa. Veja o Exercício 3.1. <br />

3.1.3 Método SOR<br />

O processo de corrigir uma equação através da modificação de uma variável é às vezes chamado de relaxamento.<br />

Antes da correção, a equação não é verdadeira; como um conjunto de partes que não se ajustam,<br />

ela está em estado de tensão. A correção de uma variável relaxa a tensão. O método de Gauss-Seidel efetua<br />

relaxamento sucessivo, ou seja, passa de equação para equação, relaxando uma depois da outra. [Watkins]<br />

Por este motivo, os métodos de Jacobi e de Gauss-Seidel são também chamados métodos de relaxamento.<br />

Em muitos casos, a convergência pode ser substancialmente acelerada através de sobrerelaxamento. Isso


Rodney Josué Biezuner 34<br />

significa que ao invés de fazer uma correção para a qual a equação é satisfeita exatamente, nós fazemos<br />

uma correção maior. No caso mais simples, escolhe-se um fator de relaxamento ω > 1 que sobrecorrige por<br />

aquele fator em cada passo (se mover um passo na direção de x k para x k+1 é bom, mover naquela direção<br />

ω > 1 passos é melhor). Este é o chamado método de sobrerelaxamento sucessivo (SOR, successive<br />

overrelaxation; desenvolvido em 1950 por Young): usando o método de Gauss-Seidel obtemos<br />

x k+1<br />

⎛<br />

1 i−1<br />

i = ⎝bi − aijx<br />

aii<br />

k+1<br />

j −<br />

n<br />

aijx k ⎞<br />

⎠<br />

j ;<br />

daí tomamos<br />

Isso pode ser resumido em<br />

x k+1<br />

i<br />

= xk i + ω<br />

⎡<br />

x k+1<br />

i<br />

⎣ 1<br />

aii<br />

j=1<br />

= xk i + ω x k+1<br />

i<br />

⎛<br />

i−1<br />

⎝bi −<br />

j=1<br />

aijx k+1<br />

j<br />

j=i+1<br />

− xk <br />

i .<br />

−<br />

n<br />

j=i+1<br />

⎞<br />

aijx k⎠ j − x k i<br />

⎤<br />

⎦ . (3.11)<br />

Quando ω = 1, o método SOR é exatamente o método de Gauss-Seidel. Um fator ω < 1 (subrelaxamento)<br />

normalmente diminui a velocidade de convergência.<br />

Para a maioria dos problemas, o melhor valor para o fator de relaxamento é desconhecido. Para a matriz<br />

de discretização obtida a partir da fórmula de cinco pontos, é sabido que o valor ótimo de ω é, como veremos<br />

na próxima seção,<br />

ω =<br />

2<br />

. (3.12)<br />

1 + sen (πh)<br />

Em forma matricial, o método SOR pode ser descrito da seguinte forma. Como antes, dada uma matriz<br />

A escrevemos<br />

A = D − L − U (3.13)<br />

onde D é uma matriz diagonal, L é uma matriz estritamente triangular inferior e U é uma matriz estritamente<br />

triangular superior. Então, escrevendo o algoritmo SOR na forma<br />

= aiix k ⎡<br />

i−1<br />

i + ω ⎣bi −<br />

−<br />

⎤<br />

n<br />

⎦ ,<br />

temos<br />

aiix k+1<br />

i<br />

j=1<br />

aijx k+1<br />

j<br />

j=i<br />

aijx k j<br />

Dx k+1 = Dx k + ω Lx k+1 + (U − D) x k + b <br />

ou <br />

1<br />

D − L x<br />

ω k+1 <br />

1 − ω<br />

= D + U x<br />

ω k + b,<br />

donde<br />

x k+1 =<br />

(3.14)<br />

−1 <br />

1<br />

1 − ω<br />

D − L<br />

D + U x<br />

ω ω k <br />

+ b . (3.15)<br />

3.1.4 Comparação da Velocidade de Convergência dos Três Métodos no Problema<br />

Modelo<br />

A tabela a seguir foi extraída de [Watkins], págs. 533 e 542. Os métodos introduzidos acima foram usados<br />

para resolver o sistema linear Ax = b onde A é a matriz de discretização obtida a partir da fórmula dos


Rodney Josué Biezuner 35<br />

cinco pontos do laplaciano no quadrado unitário Ω = (0, 1) 2 e b é estabelecido pela condição de fronteira de<br />

Dirichlet dada por<br />

⎧<br />

⎪⎨<br />

g (x, y) =<br />

⎪⎩<br />

0<br />

y<br />

(x − 1) sen x<br />

x (2 − x)<br />

se x = 0,<br />

se x = 1,<br />

se y = 0,<br />

se y = 1,<br />

ou seja, para resolver o problema discretizado<br />

<br />

−∆dud = 0 em Ωd,<br />

sobre ∂Ωd.<br />

As iterações foram interrompidas quando<br />

ud = gd<br />

<br />

u k+1 − u k 2<br />

|u k+1 | 2<br />

< 10 −8 .<br />

O número de iterações necessárias para convergir de acordo com esta margem de tolerância, para três refinamentos<br />

possíveis da malha (correspondentes a matrizes de dimensões n = 81, 361 e 1521, respectivamente),<br />

de acordo com cada método e para diferentes valores de ω no caso do método SOR é apresentado na tabela<br />

abaixo.<br />

h = 0.1 h = 0.05 h = 0.025<br />

Jacobi 299 1090 3908<br />

SOR (ω = 0.8) 235 845 3018<br />

Gauss-Seidel 160 581 2082<br />

SOR (ω = 1.4) 67 262 955<br />

SOR (ω = 1.6) 42 151 577<br />

SOR (ω = 1.7) 57 96 412<br />

SOR (ω = 1.8) 86 89 252<br />

SOR (ω = 1.9) 176 180 179<br />

SOR (ω = 2.0) ∞ ∞ ∞<br />

Vemos que o método de Gauss-Seidel é cerca de duas vezes mais rápido para convergir que o método de<br />

Jacobi e que dependendo da escolha de ω, o método SOR pode ser até dez vezes mais rápido que o método<br />

de Gauss-Seidel para a malha mais refinada. Subrelaxamento não ajuda e para ω = 2 o método SOR é<br />

divergente.<br />

3.1.5 Método de Jacobi Amortecido<br />

O método de Gauss-Seidel pode ser sobrerelaxado através de um parâmetro ω > 1 para obter um método<br />

que converge mais rápido. Já o método de Jacobi não pode em geral ser sobrerelaxado, porque o método<br />

obtido não converge. Ele pode no entanto ser subrelaxado através de um parâmetro ω < 1 para obter um<br />

método convergente, se bem que mais vagaroso. A vantagem de se utilizar um tal método é que para certos<br />

valores de ω ele é um ótimo suavizador de erro (em um sentido que será explicado mais tarde), enquanto<br />

que o método de Jacobi usual não possui esta propriedade. Assim, o método de Jacobi amortecido pode ser<br />

usado em métodos multigrid, como veremos mais tarde.<br />

Pelo método de Jacobi usual obtemos<br />

⎛<br />

⎞<br />

x k+1<br />

i<br />

1<br />

=<br />

aii<br />

⎜<br />

⎝ bi −<br />

n<br />

j=1<br />

j=i<br />

aijx k j<br />

⎟<br />

⎠ ,


Rodney Josué Biezuner 36<br />

e tomamos<br />

ou seja,<br />

x k+1<br />

i<br />

x k+1<br />

i<br />

= xk ⎢<br />

i + ω ⎢<br />

1<br />

⎣<br />

= xk i + ω x k+1<br />

i<br />

⎡<br />

aii<br />

⎛<br />

⎜<br />

⎝ bi −<br />

n<br />

j=1<br />

j=i<br />

− xk <br />

i ,<br />

⎞<br />

⎟<br />

aijx k j ⎠ − xki ⎤<br />

⎥<br />

⎦ . (3.16)<br />

Este método é conhecido como método de Jacobi amortecido, método de Jacobi ponderado ou ainda<br />

método de relaxamento simultâneo (diferente do método de relaxamento sucessivo, baseado no método de<br />

Gauss-Seidel, em que cada variável é substituída sucessivamente dentro da mesma iteração à medida que<br />

ela é atualizada; no método de Jacobi, as variáveis são todas substituídas simultameamente na próxima<br />

iteração).<br />

Em forma matricial, o método de Jacobi amortecido pode ser descrito da seguinte forma. Denotando por<br />

D a parte diagonal de A, temos<br />

⎛<br />

⎞<br />

temos<br />

aiix k+1<br />

i<br />

= aiix k i + ω<br />

⎝bi −<br />

n<br />

j=1<br />

aijx k j<br />

Dx k+1 = Dx k + ω b − Ax k<br />

ou <br />

1<br />

ω D<br />

<br />

x k+1 <br />

1<br />

= D − A x<br />

ω k + ωb,<br />

donde<br />

x k+1 =<br />

⎠ ,<br />

(3.17)<br />

<br />

1<br />

ω D<br />

−1 <br />

1<br />

D − A x<br />

ω k <br />

+ b . (3.18)<br />

Em contraste com o método SOR, que converge em geral para 0 < ω < 2, o método de Jacobi amortecido<br />

converge para 0 < ω 1 (veja a próxima seção).<br />

3.2 Análise de Convergência dos Métodos Iterativos <strong>Linear</strong>es<br />

Os métodos iterativos básicos são casos especiais de uma classe geral de métodos chamados métodos iterativos<br />

lineares:<br />

3.2 Definição. Um método iterativo linear para resolver o sistema Ax = b é um método da forma<br />

x k+1 = Rx k + Nb<br />

onde R e N são matrizes dadas. A matriz R é chamada a matriz de iteração do método.<br />

Em geral, um método iterativo linear para resolver o sistema linear<br />

envolve a decomposição da matriz A na forma<br />

Ax = b<br />

A = B − C, (3.19)<br />

onde B é necessariamente uma matriz invertível, e em seguida a resolução iterativa do sistema de equações<br />

Bx k+1 = Cx k + b (3.20)


Rodney Josué Biezuner 37<br />

ou, mais explicitamente,<br />

x k+1 = B −1 Cx k + b .<br />

Na notação da definição, temos que a matriz de iteração é<br />

e<br />

R = B −1 C = B −1 (B − A) = I − B −1 A (3.21)<br />

N = B −1 . (3.22)<br />

Se x k → x, então Bx = Cx + b, donde Ax = b. Do ponto de vista prático, é importante que a matriz B<br />

seja “fácil de resolver” (mesmo que a inversa de B não seja efetivamente calculada), como nos exemplos da<br />

seção anterior:<br />

B C R<br />

Jacobi D D − A D−1 (D − A)<br />

Jacobi amortecido<br />

1<br />

ω D<br />

1<br />

D − A<br />

ω<br />

<br />

1<br />

ω D<br />

−1 <br />

1<br />

D − A<br />

ω<br />

Gauss-Seidel D − L U (D − L) −1 U<br />

−1 <br />

1 1 − ω<br />

1<br />

1 − ω<br />

SOR<br />

D − L D + U D − L<br />

D + U<br />

ω ω ω ω<br />

Para obter uma convergência rápida também gostaríamos que B ≈ A e C ≈ 0. Deste ponto de vista, o ideal<br />

seria B = A e C = 0 (convergência em uma iteração), mas isso viola em geral o critério que B seja “fácil<br />

de resolver”. Um compromisso é necessário: B deve aproximar A o melhor possível sem se tornar muito<br />

complicada.<br />

3.2.1 Convergência dos Métodos Iterativos <strong>Linear</strong>es<br />

3.3 Definição. Para métodos iterativos em geral, o erro algébrico é definido por<br />

enquanto que o erro residual é dado por<br />

e k = x − x k , (3.23)<br />

r k = b − Ax k . (3.24)<br />

O erro algébrico tem interesse puramente teórico (para provar que determinado método iterativo converge,<br />

precisamos mostrar que o erro algébrico tende a zero), já que ele só pode ser calculado uma vez que se<br />

conhece a solução exata, e se este for o caso obviamente não há necessidade de resolver o sistema. Já o erro<br />

residual pode ser usado como critério de parada para o método iterativo. O erro algébrico e o erro residual<br />

estão relacionados através da expressão:<br />

Ae k = r k , (3.25)<br />

pois Ae k = Ax − Ax k = b − Ax k = r k .<br />

Para os métodos iterativos lineares, como<br />

segue que<br />

Be k+1 = Bx − Bx k+1 = Ax + Cx − Cx k − b = C x − x k = Ce k ,<br />

e k+1 = B −1 C e k


Rodney Josué Biezuner 38<br />

ou<br />

e k+1 = Re k . (3.26)<br />

Por este motivo, a matriz de iteração também é chamada de matriz de propagação do erro. Segue de (3.26)<br />

que<br />

e k = R k e 0 , (3.27)<br />

de modo que o erro converge para 0, independentemente do chute inicial x 0 , se e somente se R k → 0. Isso<br />

ocorre se e somente se existe alguma norma matricial · tal que R < 1. Obter uma norma matricial<br />

que satisfaz esta propriedade, no entanto, é difícil. Vamos obter uma condição necessária e suficiente para<br />

R k → 0 em termos do raio espectral da matriz de iteração, que é em geral um pouco mais fácil de calcular.<br />

Antes, para motivar o resultado, suponha que R seja uma matriz diagonalizável com λ1, . . . , λn os seus<br />

autovalores e {v1, . . . , vn} uma correspondente base de autovetores. Escrevendo o erro inicial como uma<br />

combinação linear dos autovetores, temos<br />

Logo,<br />

de modo que<br />

e 0 =<br />

n<br />

aivi.<br />

i=1<br />

e k = R k e 0 =<br />

<br />

e k <br />

n<br />

i=1<br />

aiλ k i vi,<br />

n<br />

|ai| |λi| k |vi| .<br />

i=1<br />

Como |λi| k → 0 se e somente se |λi| < 1, concluímos que e k → 0 qualquer que seja o erro inicial (isto é,<br />

qualquer que seja o chute inicial), se e somente se<br />

ρ (R) = max<br />

1in |λi| < 1 .<br />

3.4 Lema. Se A ∈ Mn (C) e · é qualquer norma matricial, então<br />

ρ (A) A .<br />

Prova. Seja λ um autovalor qualquer de A e x um autovetor não-nulo associado a λ, de modo que<br />

Ax = λx.<br />

Considere a matriz X ∈ Mn (C) cujas colunas são todas iguais ao vetor x. Temos também<br />

de modo que<br />

donde<br />

AX = λX<br />

|λ| X = AX A X ,<br />

|λ| A<br />

para todo autovalor λ de A. Como existe um autovalor λ de A tal que ρ (A) = |λ|, isso prova o resultado. <br />

3.5 Lema. Seja A ∈ Mn (C) e ε > 0 dado. Então existe uma norma matricial · tal que<br />

ρ (A) A ρ (A) + ε. (3.28)


Rodney Josué Biezuner 39<br />

Prova. Toda matriz complexa A é triangularizável através de uma matriz unitária U isto é, isto é, existe<br />

uma matriz triangular T e uma matriz U que satisfaz U ∗ U = UU ∗ = I (veja [Hoffman-Kunze]) tais que<br />

A = U ∗ T U;<br />

T é chamada a forma triangular ou forma normal de Schur de A. Seja então<br />

⎡<br />

λ1<br />

⎢<br />

T = ⎢<br />

⎣<br />

a12<br />

λ2<br />

a22<br />

a23<br />

λ3<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

a1n<br />

a2n<br />

a3n<br />

.<br />

⎤<br />

⎥<br />

⎦<br />

a forma triangular de A. Para t ∈ R arbitrário, considere a matriz diagonal<br />

⎡<br />

t<br />

⎢ t<br />

Dt = ⎢<br />

⎣<br />

2<br />

. ..<br />

tn ⎤<br />

⎥<br />

⎦ .<br />

Temos<br />

DtT D −1<br />

t<br />

⎡<br />

⎢<br />

= ⎢<br />

⎣<br />

λn<br />

λ1 a12t −1 a22t −2 . . . . . . a1nt −n+1<br />

λ2 a23t −1 . . . . . . a2nt −n+2<br />

Logo, para t > 0 suficientemente grande, a matriz DtT D −1<br />

t<br />

λ3 . . . . . . a3nt−n+3 . ..<br />

.<br />

.<br />

λn−1 an−1,nt−1 tem a propriedade que a soma dos valores<br />

absolutos de elementos fora da diagonal principal é menor que ε. Em particular, se ·L denota a norma do<br />

máximo das somas das linhas, podemos garantir que<br />

<br />

ρ (A) + ε<br />

L<br />

DtT D −1<br />

t<br />

para t suficientemente grande. Portanto, fixado um tal t, se definirmos uma norma por<br />

A := DtUAU ∗ D −1<br />

<br />

<br />

t = L U ∗ D −1<br />

<br />

−1 ∗ −1<br />

t AU Dt ,<br />

L<br />

teremos<br />

Pelo lema anterior, ρ (A) A. <br />

A = DtUAU ∗ D −1<br />

<br />

<br />

t = L DtT D −1<br />

t<br />

λn<br />

<br />

ρ (A) + ε.<br />

L<br />

3.6 Lema. Seja A ∈ Mn (C). Se existe alguma norma matricial · tal que A < 1, então<br />

Prova. Se A < 1, então<br />

<br />

A k → 0.<br />

<br />

A k A k → 0.<br />

⎤<br />

⎥ .<br />

⎥<br />


Rodney Josué Biezuner 40<br />

3.7 Proposição. Seja A ∈ Mn (C). Então<br />

se e somente se<br />

A k → 0<br />

ρ (A) < 1.<br />

Prova. Se existe algum autovalor λ de A tal que |λ| 1 e x é um autovetor não-nulo correspondente, então<br />

A k x = λ k x<br />

não converge para 0. Reciprocamente, se ρ (A) < 1, então pelo Lema 3.5 existe uma norma matricial · tal<br />

que A < 1, logo A k → 0 pelo lema anterior. <br />

Finalmente obtemos uma condição necessária e suficiente para um método iterativo linear convergir:<br />

3.8 Corolário. Seja R a matriz de iteração de um método iterativo linear. Então<br />

se e somente se<br />

e k → 0<br />

ρ (R) < 1.<br />

Em outras palavras, um método iterativo linear é convergente independentemente da escolha do chute<br />

inicial se e somente se todos os autovalores da matriz de iteração têm valor absoluto menor que 1.<br />

Portanto, a análise da convergência de um determinado método iterativo linear passa pela análise dos autovalores<br />

de sua matriz de iteração R. Como esta última depende da matriz de coeficientes A do sistema<br />

linear, a convergência ou não de qualquer um dos métodos iterativos lineares vai depender da matriz A.<br />

3.2.2 Velocidade de Convergência dos Métodos Iterativos <strong>Linear</strong>es<br />

O raio espectral também dá informação sobre a velocidade de convergência. Se nós tivermos dois métodos<br />

iterativos lineares diferentes, isto é, duas maneiras diferentes de decompor a matriz A:<br />

A = B1 − C1 = B2 − C2,<br />

então o segundo método convergirá mais rápido se e somente se<br />

ρ (R2) < ρ (R1) .<br />

Em particular, a velocidade de convergência relativa dos métodos iterativos lineares também vai depender<br />

da matriz A: para certas matrizes um determinado método é superior ao outro, enquanto que para outras<br />

matrizes o contrário é verdadeiro.<br />

Vamos analisar a velocidade de convergência dos métodos iterativos com maior precisão. Novamente à<br />

título de motivação, suponha que R é uma matriz diagonalizável com seu maior autovalor sendo um autovalor<br />

simples. Ordene os autovalores de R na forma<br />

|λ1| > |λ2| . . . |λn|<br />

e seja {v1, . . . , vn} uma correspondente base de autovetores. Escrevendo de novo<br />

donde<br />

e 0 =<br />

n<br />

aivi,<br />

i=1<br />

e k = R k e 0 =<br />

n<br />

i=1<br />

aiλ k i vi,


Rodney Josué Biezuner 41<br />

segue que<br />

e k = λ k 1<br />

<br />

a1v1 +<br />

Como k λi<br />

→ 0,<br />

λ1<br />

n<br />

i=2<br />

ai<br />

λi<br />

a taxa de convergência é determinada por |λ1| k . Para k grande, temos<br />

Portanto, e k+1 <br />

e k ≈ λ k 1a1v1.<br />

λ1<br />

k<br />

vi<br />

<br />

.<br />

|e k | = |λ1| = ρ (R) . (3.29)<br />

Em outras palavras, a convergência é linear com taxa de convergência igual ao raio espectral. Se a1 =<br />

0 a convergência será mais rápida, pois dependerá do módulo do segundo autovalor, mas é obviamente<br />

extremamente raro que o erro inicial satisfaça esta condição, isto é, que ele não tenha nenhuma componente<br />

na direção do primeiro autovetor. Para o caso geral, precisamos do seguinte resultado:<br />

3.9 Proposição. Seja A ∈ Mn (C) e · uma norma matricial. Então<br />

ρ (A) = lim A k 1/k .<br />

Prova. Como os autovalores da matriz A k são as k-ésimas potências dos autovalores de A (este resultado<br />

pode ser mais facilmente visto a partir da forma triangular de A), temos que<br />

donde<br />

Por outro lado, dado ε > 0, a matriz<br />

ρ (A) k = ρ A k A k ,<br />

ρ (A) A k 1/k .<br />

B =<br />

1<br />

ρ (A) + ε A<br />

tem raio espectral menor que 1, logo B k → 0. Portanto, existe algum N = N (ε, A) tal que<br />

<br />

B k < 1,<br />

para todo k > N. Logo, A k < (ρ (A) + ε) k ,<br />

donde A k 1/k < ρ (A) + ε<br />

para todo k > N. <br />

3.10 Definição. A taxa média de convergência de um método iterativo linear com matriz de iteração<br />

R é definida como sendo<br />

<br />

Rk (R) = − log R 10<br />

k 1/k = − 1<br />

k log <br />

R 10<br />

k (3.30)<br />

e a taxa assintótica de convergência é dada por<br />

R∞ (R) = lim<br />

k→∞ Rk (R) . (3.31)


Rodney Josué Biezuner 42<br />

3.11 Corolário. Seja R a matriz de iteração de um método iterativo linear. Então a taxa assintótica de<br />

convergência do método é dada por<br />

Prova. Pois<br />

R∞ (R) = − lim<br />

k→∞ log 10<br />

R∞ (R) = − log 10 ρ (R) . (3.32)<br />

<br />

R k 1/k <br />

= − log10 lim R k 1/k = − log10 ρ (R) .<br />

<br />

A taxa assintótica de convergência mede o aumento no número de casas decimais corretas na solução por<br />

iteração. De fato, usando a norma matricial do Lema 3.5 e medindo as normas dos vetores de acordo, temos<br />

donde<br />

ou<br />

Assim, se<br />

teremos<br />

<br />

e k+1 <br />

|e k | =<br />

− log 10<br />

<br />

R k+1 e 0 <br />

|R k e 0 |<br />

<br />

e k+1 <br />

k→∞<br />

R = ρ (R) + ε,<br />

|e k | = − log 10 ρ (R) + O (ε)<br />

<br />

log e 10<br />

k <br />

− log e 10<br />

k+1 = R∞ (R) + O (ε) . (3.33)<br />

<br />

e k = O 10 −p ,<br />

<br />

e k+1 = O 10 −q ,<br />

q − p ≈ R∞ (R) ,<br />

isto é, reduzimos R∞ (R) ≈ q − p casas decimais no erro. Visto de outra forma, como<br />

donde<br />

ou<br />

<br />

e k+m <br />

|e k | =<br />

<br />

R k+m e 0 <br />

− log 10<br />

|R k e 0 | Rm = ρ (R) m + O (ε) ,<br />

<br />

e k+m <br />

|e k | ≈ −m log 10 ρ (R) ,<br />

m = log <br />

e 10<br />

k+m / ek <br />

log10 ρ (R)<br />

é o número de iterações necessárias para diminuir o erro de um número prescrito de casas decimais.<br />

3.2.3 Convergência para Matrizes Simétricas Positivas Definidas<br />

(3.34)<br />

Para matrizes reais simétricas positivas definidas é mais fácil provar a convergência dos métodos iterativos<br />

lineares. Temos o seguinte resultado básico a seguir. Antes precisamos da seguinte definição:<br />

3.12 Definição. Introduzimos uma ordenação parcial em Mn definindo<br />

se<br />

para todo x ∈ C n .<br />

A B<br />

〈Ax, x〉 〈Bx, x〉


Rodney Josué Biezuner 43<br />

Em particular, se A é uma matriz positiva definida, segue que A εI para algum ε (o menor autovalor de<br />

A) e denotamos este fato por<br />

A > 0.<br />

Lembramos que se A é uma matriz simétrica positiva definida e P é uma matriz invertível, então B = P t AP<br />

também é uma matriz simétrica positiva definida, pois<br />

e<br />

B t = P t AP t = P t A t P t t = P t AP = B<br />

〈Bx, x〉 = P t AP x, x = 〈AP x, P x〉 .<br />

3.13 Teorema. Seja A uma matriz simétrica positiva definida e seja A = B −C com B invertível. Então o<br />

método iterativo linear com matriz de iteração R = B −1 C converge se e somente se a matriz simétrica<br />

B t + C é positiva definida.<br />

Prova. Para ver que B t + C é simétrica, escreva B t + C = B t + B − A e note que<br />

B t + C t = B t + B − A t = B + B t − A = B t + B − A = B t + C.<br />

Medimos a norma do erro através da norma induzida por A<br />

|x| A := 〈Ax, x〉 1/2<br />

e consideraremos a norma matricial · A induzida por esta norma. Se provarmos que<br />

o método convergirá. Temos<br />

R A < 1,<br />

R 2<br />

A = B −1 C 2 <br />

B<br />

= sup<br />

A<br />

x=0<br />

−1Cx 2 A<br />

|x| 2<br />

<br />

−1 −1 t −t −1 AB Cx, B Cx C B AB Cx, x<br />

= sup<br />

= sup<br />

. (3.35)<br />

A<br />

x=0 〈Ax, x〉<br />

x=0 〈Ax, x〉<br />

Observe que C t B −t AB −1 C é uma matriz simétrica positiva definida, pois<br />

C t B −t AB −1 C = B t − A B −t AB −1 (B − A) = I − AB −t A I − B −1 A <br />

= I − B −1 A t A I − B −1 A .<br />

Portanto, para provar que R A < 1, basta mostrar que<br />

Continuando o desenvolvimento da expressão em outra direção, temos<br />

C t B −t AB −1 C = I − AB −t A I − B −1 A <br />

C t B −t AB −1 C < A. (3.36)<br />

= A − AB −t A + AB −1 A − AB −t AB −1 A <br />

= A − AB −t B + B t − A B −1 A<br />

= A − B −1 A t B t + C B −1 A.<br />

de modo que (3.36) vale se e somente se B t + C é positiva definida.


Rodney Josué Biezuner 44<br />

3.3 Convergência dos Métodos Iterativos <strong>Linear</strong>es para Matrizes<br />

de Discretização<br />

3.3.1 Convergência do Método de Jacobi<br />

3.14 Teorema. Se A é uma matriz irredutível, diagonalmente dominante tal que |aii| > n<br />

|aij| para pelo<br />

menos alguma linha i, então o método de Jacobi converge.<br />

Prova. Seja D a parte diagonal da matriz A e R = D −1 (D − A) = I − D −1 A a matriz de iteração do<br />

método de Jacobi para A. Suponha por absurdo que exista um autovalor λ de R tal que |λ| 1. Como<br />

λ det λ −1 R − I = det (R − λI) = 0, temos<br />

det I − λ −1 R = 0.<br />

Por outro lado, observe que I − λ−1R também é irredutível, pois<br />

Rij = I − D −1 A <br />

ij =<br />

<br />

0 se i = j,<br />

se i = j,<br />

− aij<br />

aii<br />

−1<br />

I − λ R ij =<br />

<br />

1 se i = j,<br />

se i = j,<br />

−1<br />

aij<br />

λ<br />

aii<br />

de modo que, onde A se anula, I −λ −1 R também se anula. Além disso, I −λ −1 R é diagonalmente dominante<br />

e estritamente dominante nas linhas onde A é, pois |λ| −1 1, I − λ −1 R <br />

n <br />

<br />

I − λ −1 R <br />

j=1<br />

j=i<br />

ij<br />

<br />

<br />

= |λ|−1<br />

|aii|<br />

n<br />

j=1<br />

j=i<br />

|aij| 1<br />

|aii|<br />

ii<br />

= 1 e<br />

n<br />

|aij| .<br />

Mas, pela Proposição 2.36, isso implica que I − λ −1 R é invertível, uma contradição. <br />

O Teorema 3.14 mostra que o método de Jacobi converge para as matrizes de discretização obtidas através<br />

dos esquemas de diferenças finitas do Capítulo 1.<br />

Através do Teorema 3.14, fomos capazes de provar a convergência do método de Jacobi para as matrizes de<br />

discretização sem calcular explicitamente os seus raios espectrais. Para analizar a velocidade de convergência<br />

do método de Jacobi, no entanto, é necessário obter os raios espectrais destas matrizes. Vamos fazer isso para<br />

as matrizes de discretização obtidas a partir da fórmula de três pontos unidimensional e a partir da fórmula<br />

de cinco pontos bidimensional. Para isso, precisaremos obter os autovalores destas matrizes de discretização.<br />

No caso da fórmula de três pontos unidimensional, lembrando que as autofunções para o problema de<br />

Dirichlet do laplaciano no intervalo [0, 1] são as funções trigonométricas<br />

Uj (x) = sen jπx,<br />

isso sugere que os autovetores uj da matriz A sejam os vetores de coordenadas<br />

Uj (x1) , Uj (x2) , . . . , Uj (xn−2) , Uj (xn−1) = Uj (h) , Uj (2h) , . . . , Uj ((n − 2) h) , Uj ((n − 1) h) ,<br />

ou seja, como h = 1/n, os vetores<br />

<br />

uj = sen jπ<br />

<br />

2jπ (n − 2) jπ (n − 1) jπ<br />

, sen , . . . , sen , sen .<br />

n n n<br />

n<br />

Usando identidades trigonométricas, vamos verificar que isso de fato acontece:<br />

j=1<br />

j=i<br />

j=1<br />

j=i


Rodney Josué Biezuner 45<br />

3.15 Lema. Os n − 1 autovalores da matriz de discretização A da fórmula dos três pontos unidimensional<br />

são<br />

λj = 2<br />

h2 <br />

1 − cos jπ<br />

<br />

=<br />

n<br />

4 jπ<br />

sen2<br />

h2 2n<br />

(3.37)<br />

e os autovetores correspondentes são<br />

<br />

uj = sen jπ<br />

n<br />

j = 1, . . . , n − 1.<br />

Prova. Temos<br />

⎡<br />

2 −1<br />

⎢<br />

−1<br />

⎢<br />

⎣<br />

2<br />

−1<br />

−1<br />

. ..<br />

. ..<br />

pois<br />

. ..<br />

. .. −1<br />

−1 2 −1<br />

−1 2<br />

2 sen jπ<br />

n<br />

− sen 2jπ<br />

n<br />

⎡<br />

⎤<br />

⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎦ ⎢<br />

⎣<br />

sen<br />

, sen 2jπ<br />

n<br />

sen jπ<br />

n<br />

sen 2jπ<br />

n<br />

.<br />

.<br />

(n − 2) jπ<br />

sen<br />

n<br />

(n − 1) jπ<br />

n<br />

= 2 sen jπ<br />

n<br />

(n − 2) jπ<br />

, . . . , sen , sen<br />

n<br />

<br />

(n − 1) jπ<br />

n<br />

(3.38)<br />

⎤ ⎡<br />

⎥ ⎢<br />

2 sen<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ = ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎦ ⎣<br />

jπ 2jπ<br />

− sen<br />

n n<br />

− sen jπ<br />

⎤<br />

⎥<br />

2jπ 3jπ<br />

⎥<br />

+ 2 sen − sen ⎥<br />

n n n<br />

⎥<br />

.<br />

⎥<br />

.<br />

⎥<br />

(n − 3) jπ (n − 2) jπ (n − 1) jπ ⎥<br />

− sen + 2 sen − sen ⎥<br />

n<br />

n<br />

n ⎥<br />

(n − 2) jπ (n − 1) jπ ⎦<br />

− sen + 2 sen<br />

n<br />

n<br />

<br />

= 2 1 − cos jπ<br />

⎡<br />

⎢<br />

sen<br />

⎢<br />

⎢<br />

n ⎢<br />

⎣<br />

jπ<br />

n<br />

sen 2jπ<br />

⎤<br />

⎥<br />

n<br />

⎥<br />

. ⎥<br />

. ⎥ ,<br />

⎥<br />

(n − 2) jπ ⎥<br />

sen ⎥<br />

n ⎥<br />

(n − 1) jπ ⎦<br />

sen<br />

n<br />

− 2 sen jπ<br />

n<br />

cos jπ<br />

n<br />

<br />

= 2 1 − cos jπ<br />

<br />

sen<br />

n<br />

jπ<br />

n ,<br />

(n − k − 1) jπ (n − k) jπ (n − k + 1) jπ<br />

− sen + 2 sen − sen<br />

<br />

n<br />

n<br />

n<br />

(n − k) jπ<br />

= − sen<br />

−<br />

n<br />

jπ<br />

<br />

<br />

(n − k) jπ (n − k) jπ<br />

+ 2 sen − sen<br />

+<br />

n<br />

n<br />

n<br />

jπ<br />

<br />

n<br />

(n − k) jπ<br />

= − sen cos<br />

n<br />

jπ (n − k) jπ<br />

+ cos sen<br />

n n<br />

jπ (n − k) jπ<br />

+ 2 sen<br />

n n<br />

(n − k) jπ<br />

− sen cos<br />

n<br />

jπ (n − k) jπ<br />

− cos sen<br />

n n<br />

jπ<br />

<br />

n<br />

= 2 1 − cos jπ<br />

<br />

(n − k) jπ<br />

sen ,<br />

n n


Rodney Josué Biezuner 46<br />

e<br />

(n − 2) jπ (n − 1) jπ<br />

− sen + 2 sen<br />

<br />

n<br />

n<br />

(n − 1) jπ<br />

= − sen<br />

−<br />

n<br />

jπ<br />

<br />

(n − 1) jπ<br />

+ 2 sen<br />

n<br />

n<br />

(n − 1) jπ<br />

= − sen cos<br />

n<br />

jπ (n − 1) jπ<br />

+ cos sen<br />

n n<br />

jπ<br />

n<br />

(n − 1) jπ<br />

= − sen cos<br />

n<br />

jπ (n − 1) jπ<br />

− sen cos<br />

n n<br />

jπ<br />

<br />

n<br />

= 2 1 − cos jπ<br />

<br />

(n − 1) jπ<br />

sen ,<br />

n n<br />

onde na penúltima identidade usamos o fato que<br />

porque<br />

cos<br />

(n − 1) jπ<br />

n<br />

sen jπ<br />

n<br />

= − sen (n − 1) jπ<br />

n<br />

+ 2 sen (n − 1) jπ<br />

n<br />

+ 2 sen (n − 1) jπ<br />

n<br />

cos jπ<br />

n<br />

<br />

(n − 1) jπ<br />

0 = sen jπ = sen<br />

+<br />

n<br />

jπ<br />

<br />

(n − 1) jπ<br />

= sen cos<br />

n<br />

n<br />

jπ (n − 1) jπ<br />

+ cos sen<br />

n n<br />

jπ<br />

n .<br />

<br />

No caso da fórmula de cinco pontos bidimensional, lembrando que as autofunções de Dirichlet do laplaciano<br />

no quadrado unitário [0, 1] × [0, 1] são as funções<br />

Ukl (x, y) = sen kπx sen lπy,<br />

isso sugere que os autovetores ukl da matriz A na ordem lexicográfica são os vetores de coordenadas<br />

ou seja,<br />

ou seja, como h = 1/n, os vetores<br />

ukl =<br />

Ukl (x1, y1) , Ukl (x2, y1) , . . . , Ukl (xn−1, y1) ,<br />

Ukl (x1, y2) , Ukl (x2, y2) , . . . , Ukl (xn−1, y2) ,<br />

.<br />

.<br />

Ukl (x1, yn−1) , Ukl (x2, yn−1) , . . . , Ukl (xn−1, yn−1)<br />

Ukl (h, h) , Ukl (2h, h) , . . . , Ukl ((n − 1) h, h) ,<br />

Ukl (h, 2h) , Ukl (2h, 2h) , . . . , Ukl ((n − 1) h, 2h) ,<br />

.<br />

Ukl (h, (n − 1) h) , Ukl (2h, (n − 1) h) , . . . , Ukl ((n − 1) h, (n − 1) h) ,<br />

<br />

sen kπ<br />

n<br />

sen kπ<br />

n<br />

. . . ,<br />

sen kπ<br />

n<br />

lπ 2kπ<br />

sen , sen<br />

m n<br />

2lπ 2kπ<br />

sen , sen<br />

n n<br />

(n − 1) lπ<br />

sen , sen<br />

n<br />

2kπ<br />

n<br />

lπ (n − 1) kπ<br />

sen , . . . , sen sen<br />

n n<br />

lπ<br />

n ,<br />

2lπ (n − 1) kπ<br />

sen , . . . , sen sen<br />

n n<br />

2lπ<br />

n ,<br />

(n − 1) lπ (n − 1) kπ<br />

sen , . . . , sen sen<br />

n<br />

n<br />

<br />

(n − 1) lπ<br />

.<br />

n


Rodney Josué Biezuner 47<br />

3.16 Lema. Os (n − 1) 2 autovalores da matriz de discretização A da fórmula dos cinco pontos bidimensional<br />

são<br />

λkl = 2<br />

h2 <br />

2 − cos kπ<br />

<br />

lπ<br />

− cos =<br />

n n<br />

4<br />

h2 <br />

<br />

2 kπ lπ<br />

sen + sen2<br />

2n 2n<br />

(3.39)<br />

e os autovetores correspondentes são<br />

ukl =<br />

<br />

sen kπ<br />

n<br />

sen kπ<br />

n<br />

. . . ,<br />

sen kπ<br />

n<br />

lπ 2kπ<br />

sen , sen<br />

n n<br />

2lπ 2kπ<br />

sen , sen<br />

n n<br />

(n − 1) lπ<br />

sen , sen<br />

n<br />

2kπ<br />

n<br />

k = 1, . . . , n − 1, l = 1, . . . , m − 1.<br />

lπ (n − 1) kπ<br />

sen , . . . , sen sen<br />

n n<br />

lπ<br />

n ,<br />

2lπ (n − 1) kπ<br />

sen , . . . , sen<br />

n n<br />

(n − 1) lπ (n − 1) kπ<br />

sen , . . . , sen sen<br />

n<br />

n<br />

sen 2lπ<br />

, (3.40)<br />

n<br />

<br />

(n − 1) lπ<br />

,<br />

n<br />

Prova. Embora a demonstração deste lema possa ser feita de maneira análoga à do lema anterior, usando<br />

identidades trigonométricas, daremos uma demonstração diferente. Lembrando que as autofunções e os<br />

autovalores de Dirichlet do laplaciano no retângulo são facilmente obtidos através do método de separação<br />

de variáveis, encontraremos os autovalores da matriz A usando um método de separação de variáveis discreto<br />

para achar os autovalores do laplaciano discreto dado pela fórmula dos cinco pontos:<br />

− ui,j−1 + ui−1,j − 4ui,j + ui+1,j + ui,j+1<br />

h 2 = λui,j. (3.41)<br />

Em particular, este método não depende da maneira como os pontos da malha são ordenados (não depende<br />

da matriz A usada para representar o laplaciano discreto). Como no método de separação de variáveis<br />

contínuo, assumimos que as soluções da equação discreta acima são produtos da forma<br />

ui,j = F (i) G (j) , (3.42)<br />

onde F e G são funções de uma variável inteira. Substituindo esta expressão na equação de Helmholtz<br />

discreta, obtemos<br />

F (i) G (j − 1) + F (i − 1) G (j) − 4F (i) G (j) + F (i + 1) G (j) + F (i) G (j + 1) = −λh 2 F (i) G (j) .<br />

Dividindo esta equação por F (i) G (j), segue que<br />

F (i − 1) − 2F (i) + F (i + 1)<br />

F (i)<br />

+ G (j − 1) − 2G (j) + G (j + 1)<br />

G (j)<br />

= −λh 2 .<br />

Separando as variáveis, concluímos que cada um dos quocientes acima é independente de i ou de j, isto é,<br />

eles são constantes:<br />

onde as constantes α, β estão relacionadas pela identidade<br />

F (i − 1) − 2F (i) + F (i + 1)<br />

= A,<br />

F (i)<br />

(3.43)<br />

G (j − 1) − 2G (j) + G (j + 1)<br />

= B,<br />

G (j)<br />

(3.44)<br />

A + B = −λh 2 . (3.45)


Rodney Josué Biezuner 48<br />

Estas equações podem ser escritas como fórmulas de recorrência (análogas às equações diferenciais ordinárias<br />

obtidas no método de separação de variáveis contínuo)<br />

F (i + 1) − (A + 2) F (i) + F (i − 1) = 0,<br />

G (j − 1) − (B + 2) G (j) + G (j + 1) = 0.<br />

Para resolvê-las, é mais conveniente trabalhar com as constantes<br />

Desta forma, as equações para F e G tornam-se<br />

2α = A + 2,<br />

2β = B + 2.<br />

F (i − 1) − 2αF (i) + F (i + 1) = 0, (3.46)<br />

G (j − 1) − 2βG (j) + G (j + 1) = 0. (3.47)<br />

Vamos resolver a equação para F , já que a equação para G é idêntica. Substituindo em (3.46) uma solução<br />

da forma<br />

F (i) = z i<br />

(3.48)<br />

obtemos<br />

z i−1 − 2αz i + z i+1 = 0,<br />

donde, dividindo por z i−1 extraímos a equação quadrática (análoga à equação indicial)<br />

As duas raízes são<br />

z 2 − 2αz + 1 = 0. (3.49)<br />

z± = α ± α 2 − 1,<br />

com z+ + z− = 2α e z+z− = 1. Portanto, a solução geral para a equação (3.46) é<br />

F (i) = c1z i + + c2z i −<br />

para algumas constantes c1, c2. Para determinarmos estas constantes e também α, aplicamos as condições<br />

de fronteira, que implicam<br />

F (0) = F (n) = 0.<br />

A primeira destas por sua vez implica que c1 = −c2, logo<br />

F (i) = c z i + − z i −<br />

. (3.50)<br />

Como a equação para F é homogênea, a constante c é arbitrária. Aplicando a segunda, segue que<br />

ou, como z+z− = 1,<br />

z n + = z n −,<br />

z 2n<br />

+ = 1<br />

Conseqüentemente, z+ é uma 2n-ésima raiz complexa de 1:<br />

z+ = e ijπ/n<br />

(3.51)<br />

para algum inteiro 1 k 2n − 1, onde i = √ −1. Como z− = 1/z+, podemos restringir 0 k n − 1 e<br />

(3.50) produz todas as soluções não-triviais F de (3.46).


Rodney Josué Biezuner 49<br />

Portanto,<br />

e, escolhendo c = 1/2,<br />

Analogamente,<br />

e<br />

Segue que os autovalores são<br />

α = z+ + z−<br />

2<br />

= eiπk/n + e −iπk/n<br />

2<br />

= cos kπ<br />

, 0 k n − 1,<br />

n<br />

Fk (i) = e iπki/n − e −iπki/n = sen ikπ<br />

n .<br />

β = cos lπ<br />

, 0 l n − 1,<br />

n<br />

Gl (j) = sen jlπ<br />

n .<br />

λkl = 2<br />

h2 <br />

2 − cos kπ<br />

<br />

lπ<br />

− cos<br />

n n<br />

e as coordenadas das autofunções associadas são dadas por<br />

<br />

(ukl) i,j = Fk (i) Gl (j) = sen ikπ<br />

n<br />

sen jlπ<br />

m .<br />

3.17 Teorema. Seja A a matriz de discretização obtida a partir da fórmula de três pontos unidimensional<br />

ou a partir da fórmula de cinco pontos bidimensional. Seja R = D −1 (D − A) a matriz de iteração do<br />

método de Jacobi. Então<br />

ρ (R) = cos π<br />

. (3.52)<br />

n<br />

Prova. Vamos provar para a fórmula de cinco pontos bidimensional; o argumento para a fórmula de três<br />

pontos unidimensional é análogo e fica deixado como exercício. Para o método de Jacobi, a matriz de<br />

discretização x k+1 = Rx k + D −1 b é obtida através da fórmula:<br />

Já vimos no Lema 3.16 que<br />

com<br />

Daí segue que<br />

Logo<br />

para<br />

u k+1<br />

i,j<br />

1 k<br />

= ui,j−1 + u<br />

4<br />

k i,j+1 + u k i−1,j + u k <br />

i+1,j .<br />

−u kl<br />

i−1,j − u kl<br />

i+1,j + 4u kl<br />

i,j − u kl<br />

i,j−1 − u kl<br />

i,j+1 = λklh 2 u kl<br />

i,j<br />

λkl = 2<br />

h2 <br />

2 − cos kπ<br />

<br />

lπ<br />

− cos .<br />

n n<br />

u kl<br />

i,j−1 + u kl<br />

i,j+1 + u kl<br />

i−1,j + u kl<br />

i+1,j = 4 − λklh 2 u kl<br />

i,j<br />

µlk = 1 − 1<br />

4 λklh 2 = 1 − 1<br />

2<br />

1 kl<br />

ui,j−1 + u<br />

4<br />

kl<br />

i,j+1 + u kl<br />

i−1,j + u kl <br />

i+1,j = µlku kl<br />

i,j<br />

<br />

2 − cos kπ<br />

<br />

lπ<br />

− cos =<br />

n n<br />

1<br />

<br />

cos<br />

2<br />

kπ<br />

<br />

lπ<br />

+ cos .<br />

n n<br />

Estes são os autovalores da matriz de iteração de Jacobi para a matriz de discretização obtida a partir da<br />

fórmula de cinco pontos (observe que elas possuem os mesmos autovetores; no entanto R possui autovalores<br />

nulos). Segue que o máximo autovalor ocorre quando k = l = 1, logo<br />

ρ (R) = cos π<br />

n .


Rodney Josué Biezuner 50<br />

<br />

Para o quadrado unitário temos<br />

ρ (R) = cos (πh) . (3.53)<br />

Vemos em particular que ρ (R) → 1 quando h → 0, de modo que a velocidade de convergência do método<br />

de Jacobi vai ficando cada vez menor para malhas mais refinadas. Podemos dizer mais usando a expansão<br />

da função cosseno em torno da origem<br />

se h é pequeno podemos aproximar<br />

cos x = 1 − 1<br />

2 x2 + O x 4 ;<br />

cos (πh) ≈ 1 − π2<br />

2 h2 ,<br />

de modo que ρ (R) → 1 quadraticamente quando h → 0. Em outras palavras, para uma malha duas vezes<br />

mais refinada (isto é, h reduzido pela metade), o método de Jacobi é cerca de quatro vezes mais vagaroso<br />

em média (consulte novamente a tabela no final da seção anterior). A tabela abaixo mostra os valores do<br />

raio espectral para alguns valores de h:<br />

h 0.1 0.05 0.025<br />

ρ (R) 0.9511 0.9877 0.9969<br />

Para h = 0.025 (correspondente a uma matriz de tamanho n = 39 × 39 = 1521), temos<br />

R∞ (R) = − log 10 (0.9969) = 0.0013484,<br />

de modo que para reduzir o erro pelo fator de uma casa decimal precisamos de<br />

iterações.<br />

m = log 10 0.1<br />

log 10 ρ (R)<br />

1<br />

= −<br />

log10 ρ (R) =<br />

1<br />

≈ 742<br />

0.00135<br />

3.3.2 Convergência do Método de Gauss-Seidel<br />

3.18 Teorema. Se A é uma matriz irredutível, diagonalmente dominante tal que |aii| > n<br />

|aij| para pelo<br />

menos alguma linha i, então o método de Gauss-Seidel converge.<br />

Prova. Sejam D a parte diagonal, −L a parte triangular inferior estrita e −U a parte triangular superior<br />

estrita da matriz A, e seja R = (D − L) −1 U a matriz de iteração do método de Gauss-Seidel para A.<br />

Escrevemos<br />

R = (D − L) −1 U = D I − D −1 L −1 U<br />

ou<br />

j=1<br />

j=i<br />

R = I − D −1 L −1 D −1 U. (3.54)<br />

Suponha por absurdo que exista um autovalor λ de R tal que |λ| 1; como na demonstração do Teorema<br />

3.9, temos<br />

Agora, observando que<br />

det I − λ −1 R <br />

= det I − λ −1 <br />

−1 −1 −1<br />

I − D L D U = 0.<br />

det I − D −1 L = 1


Rodney Josué Biezuner 51<br />

porque I − D−1L é uma matriz triangular inferior com apenas 1’s na diagonal principal, escrevemos<br />

<br />

0 = det I − λ −1 <br />

−1 −1 −1<br />

I − D L D U<br />

= det I − D −1 L <br />

det I − λ −1 <br />

−1 −1 −1<br />

I − D L D U<br />

I −1<br />

= det − D L <br />

I − λ −1 <br />

−1 −1 −1<br />

I − D L D U<br />

Por outro lado,<br />

= det I − D −1 L − λ −1 D −1 U .<br />

D −1 A = I − D −1 L − D −1 U<br />

é irredutível, diagonalmente dominante e estritamente dominante nas linhas onde A é porque<br />

−1<br />

D A ij =<br />

<br />

1 se i = j,<br />

aij<br />

se i = j.<br />

aii<br />

Logo, a matriz I − D −1 L − λ −1 D −1 U também satisfaz estas propriedades, pois I, −D −1 L e −D −1 U são<br />

respectivamente a parte diagonal, a parte triangular inferior estrita e a parte triangular superior estrita da<br />

matriz D −1 A, e multiplicar a parte triangular inferior estrita pelo número λ −1 cujo módulo é menor que ou<br />

igual a 1 não alterará a dominância diagonal (na verdade só tende a melhorá-la) nem acrescentará zeros à<br />

matriz. A Proposição 2.16 implica então que I − D −1 L − λ −1 D −1 U é invertível, um absurdo. <br />

Usando o Teorema 3.18, concluímos que o método de Gauss-Seidel converge para as matrizes de discretização<br />

obtidas através dos esquemas de diferenças finitas do Capítulo 1. Para analizar a velocidade de convergência<br />

do método de Gauss-Seidel, vamos obter os raios espectrais para as matrizes de discretização obtidas a partir<br />

da fórmula de três pontos unidimensional e a partir da fórmula de cinco pontos bidimensional.<br />

3.19 Teorema. Seja A a matriz de discretização obtida a partir da fórmula de três pontos unidimensional<br />

ou a partir da fórmula de cinco pontos bidimensional. Seja R = (D − L) −1 U a matriz de iteração do<br />

método de Gauss-Seidel. Então<br />

2 π<br />

ρ (R) = cos . (3.55)<br />

n<br />

Prova. Para obter o raio espectral da matriz de iteração R, queremos encontrar os autovalores µ de R:<br />

ou seja,<br />

Ru = (D − L) −1 Uu = µu,<br />

Uu = µ (D − L) u<br />

(um problema de autovalor generalizado). No caso da matriz de discretização da fórmula de cinco pontos,<br />

isso significa encontrar µ tal que<br />

Para os autovalores não-nulos, podemos fazer a substituição<br />

ui,j+1 + ui+1,j = µ (4ui,j − ui,j−1 − ui−1,j) . (3.56)<br />

ui,j = µ i+j<br />

2 vi,j (3.57)<br />

para transformar a equação de autovalor naquela que aparece no método de Jacobi. Temos<br />

<br />

µ i+j+1<br />

2 vi,j + µ i+j+1 <br />

2 vi+1,j = µ 4µ i+j<br />

2 vi,j − µ i+j−1<br />

2 vi,j−1 − µ i+j−1<br />

2 vi−1,j<br />

= 4µ i+j+2<br />

2 vi,j − µ i+j+1<br />

2 vi,j−1 − µ i+j+1<br />

2 vi−1,j,


Rodney Josué Biezuner 52<br />

de modo que, dividindo por µ i+j+1<br />

2 , obtemos<br />

vi−1,j + vi+1,j + vi,j−1 + vi,j+1 = µ 1/2 4vi,j.<br />

Portanto os autovalores da matriz de iteração de Gauss-Seidel para esta matriz são exatamente os quadrados<br />

dos autovalores da matriz de iteração de Jacobi (e os autovetores são os mesmos):<br />

µlk = 1<br />

<br />

cos<br />

4<br />

kπ<br />

2 lπ<br />

+ cos .<br />

n n<br />

Portanto, o máximo autovalor ocorre quando k = l = 1 e<br />

2 π<br />

ρ (R) = cos<br />

n .<br />

O argumento para a fórmula de três pontos é análogo. <br />

Para o quadrado unitário temos<br />

ρ (R) = cos 2 (πh) ,<br />

e usando<br />

cos 2 x =<br />

se h é pequeno podemos aproximar<br />

<br />

1 − 1<br />

2 x2 + O x 4 2<br />

= 1 − x 2 + O x 4 ,<br />

cos 2 (πh) ≈ 1 − π 2 h 2 .<br />

No método de Gauss-Seidel ainda temos ρ (R) → 1 quadraticamente quando h → 0, mas a sua velocidade<br />

de convergência para a matriz de discretização de cinco pontos do quadrado unitário é duas vezes maior que<br />

a do método de Jacobi. Para ver isso, faça a expansão do logaritmo em torno do ponto x = 1:<br />

Segue que<br />

3.3.3 Convergência do Método SOR<br />

3.20 Teorema. Se o método SOR converge, então<br />

log (1 + x) = x + O h 2 .<br />

R∞ (RJacobi) = π2<br />

2 h2 + O h 4 , (3.58)<br />

R∞ (RGauss-Seidel) = π 2 h 2 + O h 4 . (3.59)<br />

0 < ω < 2.<br />

Prova. A matriz de iteração do método SOR é<br />

−1 <br />

1<br />

1 − ω<br />

1<br />

R = D − L<br />

D + U =<br />

ω ω<br />

= I − ωD −1 L <br />

−1 −1 1 − ω<br />

ωD D + U<br />

ω<br />

ou<br />

Se λ1, . . . , λn são os autovalores de R, então<br />

ω D I − ωD −1 L −1 <br />

1 − ω<br />

ω<br />

<br />

D + U<br />

R = I − ωD −1 L −1 (1 − ω) I + ωD −1 U . (3.60)<br />

det R = λ1 . . . λn.


Rodney Josué Biezuner 53<br />

Mas,<br />

I −1 −1 −1<br />

det R = det − ωD L (1 − ω) I + ωD U <br />

= det I − ωD −1 L −1 −1<br />

det (1 − ω) I + ωD U<br />

= (1 − ω) n ,<br />

já que I − ωD −1 L é uma matriz triangular inferior com apenas 1 na diagonal principal e (1 − ω) I + ωD −1 U<br />

é uma matriz triangular superior com apenas 1 − ω na diagonal principal. Logo<br />

λ1 . . . λn = (1 − ω) n .<br />

Em particular, pelo menos um dos autovalores λj de R deve satisfazer<br />

|λj| |1 − ω| .<br />

Mas, se o método SOR converge, devemos ter também |λ| < 1 para todo autovalor λ de R. Logo<br />

donde<br />

<br />

|1 − ω| < 1,<br />

0 < ω < 2.<br />

3.21 Corolário. Se R é a matriz de iteração n × n para o método SOR, então<br />

det R = (1 − ω) n .<br />

Em particular, diferente das matrizes de iteração dos métodos de Jacobi e de Gauss-Seidel (para a matriz de<br />

discretização de cinco pontos), zero não é um autovalor para a matriz de iteração do método SOR se ω = 1<br />

(para nenhuma matriz).<br />

3.22 Teorema. Se A é uma matriz irredutível, diagonalmente dominante tal que |aii| > n<br />

|aij| para pelo<br />

menos alguma linha i, então o método SOR converge se 0 < ω 1.<br />

Prova. A demonstração é análoga à do Teorema 3.18. A matriz de iteração do método SOR é<br />

R = I − ωD −1 L −1 (1 − ω) I + ωD −1 U .<br />

Suponha por absurdo que exista um autovalor λ de R tal que |λ| 1; temos<br />

Agora, observando que<br />

det I − λ −1 R = det<br />

j=1<br />

j=i<br />

<br />

I − λ −1 I − ωD −1 L −1 (1 − ω) I + ωD −1 U <br />

= 0.<br />

det I − ωD −1 L = 1<br />

porque I − ωD −1 L é uma matriz triangular inferior com apenas 1’s na diagonal principal, escrevemos<br />

0 = det<br />

<br />

I − λ −1 I − ωD −1 L −1 (1 − ω) I + ωD −1 U <br />

= det I − ωD −1 L det<br />

= det<br />

<br />

I − λ −1 I − ωD −1 L −1 (1 − ω) I + ωD −1 U <br />

I − ωD −1 L <br />

I − λ −1 I − ωD −1 L −1 (1 − ω) I + ωD −1 U <br />

= det I − ωD −1 L − λ −1 (1 − ω) I + ωD −1 U <br />

= det 1 − λ −1 (1 − ω) I − ωD −1 L − λ −1 ωD −1 U .


Rodney Josué Biezuner 54<br />

Por outro lado, como vimos na demonstração do Teorema 3.18, a matriz<br />

D −1 A = I − D −1 L − D −1 U<br />

é irredutível, diagonalmente dominante e estritamente dominante nas linhas onde A é, logo a matriz<br />

S = 1 − λ −1 (1 − ω) I − ωD −1 L − λ −1 ωD −1 U<br />

também satisfaz estas propriedades. De fato, S tem zeros nas mesmas posições que I − D −1 L − D −1 U, logo<br />

a sua irredutibilidade não é afetada. Além disso, pela dominância diagonal de D −1 A, sabemos que se<br />

bij = D −1 L <br />

ij ,<br />

cij = D −1 U <br />

ij .<br />

então<br />

i−1<br />

1 |bij| +<br />

j=1<br />

Para provar a dominância diagonal de S, observamos que os valores que S possui na diagonal principal são<br />

de modo que precisamos provar que<br />

se 0 < ω 1 e |λ| 1. Provaremos que<br />

1 − λ −1 (1 − ω) = 1 −<br />

j=1<br />

n<br />

j=i+1<br />

1 − ω<br />

λ<br />

|cij| .<br />

<br />

<br />

<br />

λ + ω − 1<br />

i−1<br />

<br />

λ ω |bij| + ω<br />

|λ|<br />

<br />

<br />

<br />

λ + ω − 1<br />

<br />

λ ω,<br />

<br />

<br />

<br />

λ + ω − 1<br />

<br />

ω<br />

λ <br />

|λ| .<br />

λ + ω − 1<br />

= ,<br />

λ<br />

Para isso, observe que como |λ| 1 basta provar a primeira desigualdade, a qual por sua vez é equivalente a<br />

|λ + ω − 1| |λ| ω.<br />

É fácil ver que esta desigualdade é válida quando λ ∈ R, pois<br />

n<br />

j=i+1<br />

|cij|<br />

|λ + ω − 1| = λ + ω − 1 λω porque λ − 1 λω − ω = ω (λ − 1) .<br />

Para o caso geral em que λ ∈ C, fazemos cair no caso real escrevendo<br />

|λ + ω − 1| 2 = |λ − (1 − ω)| 2 = |λ| 2 − 2 (Re λ) (1 − ω) + (1 − ω) 2<br />

|λ| 2 − 2 |λ| (1 − ω) + (1 − ω) 2 = [|λ| − (1 − ω)] 2<br />

= [|λ| + ω − 1] 2 |λ| 2 ω 2 .<br />

O resultado acima continua valendo com desigualdade estrita nas linhas onde a desigualdade é estrita. A<br />

Proposição 2.36 implica então que S é invertível, contradizendo det S = 0. <br />

3.23 Teorema. Seja A uma matriz simétrica positiva definida. Então o método SOR converge se 0 < ω < 2.


Rodney Josué Biezuner 55<br />

Prova. Usaremos o Teorema 3.13. Escrevendo A = D − L − U, temos L t = U porque A é simétrica e as<br />

entradas diagonais de D positivas porque A é positiva definida. Para o método SOR temos<br />

B = 1<br />

1 − ω<br />

D − L e C = D + U,<br />

ω ω<br />

logo<br />

B t + C = 1<br />

ω D − Lt 1 − ω 2 − ω<br />

+ D + U =<br />

ω ω D<br />

é uma matriz simétrica positiva definida se 0 < ω < 2. <br />

Na verdade, se as entradas diagonais de uma matriz simétrica são positivas, a condição de ser definida<br />

positiva é equivalente à convergência do método SOR para 0 < ω < 2, como o próximo resultado mostra.<br />

3.24 Teorema. Seja A uma matriz simétrica com entradas diagonais positivas. Então o método SOR<br />

converge se e somente se A é positiva definida e 0 < ω < 2.<br />

Prova. Assuma que A é positiva definida e que 0 < ω < 2. Seja<br />

R = I − ωD −1 L −1 (1 − ω) I + ωD −1 U <br />

a matriz de iteração do método SOR. Se λ é um autovalor de R e x um autovetor associado, temos Rx = λx,<br />

donde (1 − ω) I + ωD −1 U x = λ I − ωD −1 L x.<br />

Fazendo o produto interno canônico (hermitiano) de C n de ambos os lados com o vetor x, segue que<br />

(1 − ω) 〈x, x〉 + ω x, D −1 Ux = λ 〈x, x〉 − ω x, D −1 Lx <br />

Isolando λ,<br />

λ = (1 − ω) 〈x, x〉 + ω x, D−1Ux <br />

〈x, x〉 − ω 〈x, D−1 . (3.61)<br />

Lx〉<br />

Como A é simétrica, o produto de matrizes simétricas D −1 A = I − D −1 U − D −1 L também é; como<br />

D −1 U, D −1 L são respectivamente a parte estritamente triangular superior e estritamente triangular inferior<br />

de uma matriz simétrica, temos<br />

D −1 U t = D −1 L.<br />

Logo<br />

e definindo<br />

podemos escrever<br />

x, D −1 Ux =<br />

D <br />

−1 t<br />

U x, x = D −1 L x, x = 〈x, (D−1L) x〉,<br />

z =<br />

λ =<br />

x, D −1 L x <br />

〈x, x〉<br />

,<br />

(1 − ω) + ωz<br />

. (3.62)<br />

1 − ωz<br />

Os argumentos acima assumem que o denominador é não-nulo. E, de fato, temos<br />

Re z = 1<br />

<br />

−1 −1<br />

1 x, D L x x, D U x<br />

(z + z) = +<br />

2 2 〈x, x〉<br />

〈x, x〉<br />

= 1<br />

<br />

−1 x, I − D A x<br />

=<br />

2 〈x, x〉<br />

1<br />

<br />

−1 x, D A x<br />

1 −<br />

.<br />

2 〈x, x〉<br />

= 1<br />

<br />

−1 −1 x, D L + D U x<br />

2 〈x, x〉


Rodney Josué Biezuner 56<br />

e como A é positiva definida, D −1 A também é, o que implica<br />

x, D −1 A x <br />

〈x, x〉<br />

donde<br />

Re z < 1<br />

2 .<br />

de modo que a parte real do denominador 1 − ωz de λ é não-nula para 0 < ω < 2. Segue que<br />

|λ| 2 = λλ =<br />

[(1 − ω) + ωz] [(1 − ω) + ωz]<br />

(1 − ωz) (1 − ωz)<br />

> 0<br />

= ω2 − 2ω 2 Re z − 2ω + 4ω Re z + 1 − 2ω Re z + ω 2 |z| 2<br />

1 − 2ω Re z + ω 2 |z| 2<br />

ω (2 − ω) (1 − 2 Re z)<br />

= 1 −<br />

1 − 2ω Re z + ω2 2 .<br />

|z|<br />

Como 0 < ω < 2 e Re z < 1<br />

, temos<br />

2<br />

e concluímos que<br />

ω (2 − ω) (1 − 2 Re z) > 0,<br />

|λ| < 1<br />

= (1 − ω)2 + 2ω (1 − ω) Re z + ω 2 |z| 2<br />

1 − 2ω Re z + ω 2 |z| 2<br />

para todo autovalor λ de R, logo o método SOR converge. A demonstração da recíproca (assim como uma<br />

demonstração alternativa, variacional, deste teorema) pode ser vista em [Young]. <br />

Usando o Teorema 3.22, concluímos que o método SOR converge para as matrizes de discretização obtidas<br />

através dos esquemas de diferenças finitas do Capítulo 1 se 0 < ω 1. Isso permite apenas subrelaxamento<br />

do método de Gauss-Seidel, o que em geral reduz a velocidade de convergência. Por outro lado, usando o<br />

Teorema 3.23 ou o Teorema 3.24, concluímos que o método SOR converge para as matrizes de discretização<br />

obtidas a partir da fórmula de três pontos unidimensional e a partir da fórmula de cinco pontos bidimensional<br />

se 0 < ω < 2, já que estas são matrizes simétricas, positivas definidas (já as matrizes de discretização obtidas<br />

através de coordenadas polares ou pelo esquema de Shortley-Weller não são simétricas, em geral, como<br />

vimos).<br />

Em seguida fazemos uma análise da velocidade de convergência do método SOR para a matriz de discretização<br />

da fórmula de cinco pontos, bem como obtemos o melhor valor do fator de relaxamento ω para<br />

este caso.<br />

3.25 Lema. Seja A a matriz de discretização obtida a partir da fórmula de três pontos unidimensional ou<br />

a partir da fórmula de cinco pontos bidimensional. Se λ = 0 é um autovalor de RSOR, então existe<br />

um autovalor λJ de RJ tal que<br />

1 − ω − λ<br />

λJ =<br />

λ1/2 . (3.63)<br />

ω2 Reciprocamente, se λJ é um autovalor de RJ e λ ∈ C satisfaz a equação acima, então λ é um autovalor<br />

de RSOR.<br />

Prova. Argumentamos como na demonstração do Teorema 3.13. Para obter o raio espectral da matriz de<br />

iteração RSOR, queremos encontrar os autovalores λ de RSOR:<br />

RSORu = I − ωD −1 L −1 (1 − ω) I + ωD −1 U u = λu,<br />

ou seja, (1 − ω) I + ωD −1 U u = λ I − ωD −1 L u


Rodney Josué Biezuner 57<br />

No caso da matriz de discretização da fórmula de cinco pontos, isso significa encontrar λ tal que<br />

(1 − ω) ui,j + ω<br />

4 ui,j+1 + ω<br />

4 ui+1,j<br />

<br />

= λ ui,j − ω<br />

4 ui,j−1 − ω<br />

4 ui−1,j<br />

<br />

ou<br />

1 − ω − λ<br />

ui,j =<br />

ω<br />

1<br />

4 (ui,j+1<br />

Fazendo a substituição<br />

+ ui+1,j + λui,j−1 + λui−1,j) . (3.64)<br />

e dividindo por µ i+j+1<br />

2 , segue que<br />

ui,j = λ i+j<br />

2 vi,j<br />

vi−1,j + vi+1,j + vi,j−1 + vi,j+1 =<br />

1 − ω − λ<br />

λ 1/2 ω 4vi,j<br />

e daí o resultado. <br />

Resolvendo a equação (3.63) como uma equação quadrática em √ λ, vemos que as duas raízes λ± = λ±<br />

podem ser escritas na forma<br />

Denotaremos<br />

e por λJ = ρ (RJ) o maior autovalor do método de Jacobi.<br />

λ± = 1<br />

<br />

−ωλJ ± ω<br />

4<br />

2λ2 2 J − 4 (ω − 1) . (3.65)<br />

Λω,λJ = max (|λ+| , |λ−|) (3.66)<br />

3.26 Proposição. Seja A a matriz de discretização obtida a partir da fórmula de três pontos unidimensional<br />

ou a partir da fórmula de cinco pontos bidimensional. Então<br />

Prova. Por definição,<br />

De (3.65) segue que<br />

Λω,λJ = 1<br />

4<br />

ρ (RSOR,ω) = Λ ω,λJ<br />

ρ (RSOR,ω) = max Λω,λJ<br />

λJ<br />

.<br />

<br />

<br />

<br />

ωλJ +<br />

<br />

ω 2 λ 2<br />

2<br />

<br />

J − 4 (ω − 1) <br />

.<br />

2<br />

(3.67)<br />

Se 0 < ω 1, ω2λ 2<br />

J − 4 (ω − 1) 0 e Λω,λJ é uma função crescente de λJ, logo o máximo é atingido em λJ.<br />

Se ω > 1, defina<br />

<br />

4 (ω − 1)<br />

λc =<br />

ω2 .<br />

Se λJ > λc, ω 2 λ 2<br />

J − 4 (ω − 1) > 0 e segue a conclusão como no caso anterior. Se λJ λc, então ω 2 λ 2<br />

J −<br />

4 (ω − 1) 0 e<br />

onde i = √ −1, logo<br />

Λω,λJ =<br />

<br />

<br />

<br />

ωλJ +<br />

= ω − 1,<br />

<br />

ω2λ 2<br />

<br />

J − 4 (ω − 1) = 4 (ω − 1) − ω2λ 2<br />

Ji,<br />

<br />

ω 2 λ 2<br />

<br />

<br />

J − 4 (ω − 1) <br />

<br />

e novamente Λω,λJ é uma função crescente de λJ. <br />

2<br />

<br />

<br />

<br />

= <br />

<br />

ω 2 λ 2 J +<br />

<br />

4 (ω − 1) − ω 2 λ 2<br />

J<br />

2


Rodney Josué Biezuner 58<br />

Defina<br />

ωótimo =<br />

1 +<br />

2<br />

<br />

1 − λ 2<br />

J<br />

. (3.68)<br />

Note que 1 < ωótimo < 2. Mostraremos que ωótimo é de fato o melhor valor para o fator de relaxamento no<br />

método SOR. Antes precisamos do seguinte resultado:<br />

3.27 Proposição. Seja A a matriz de discretização obtida a partir da fórmula de três pontos unidimensional<br />

ou a partir da fórmula de cinco pontos bidimensional. Então<br />

⎧ <br />

⎨ 1<br />

ωλJ ρ (RSOR,ω) =<br />

+ ω<br />

⎩<br />

4<br />

2λ 2<br />

2 J − 4 (ω − 1) se 0 < ω ωótimo,<br />

(3.69)<br />

ω − 1 se ωótimo ω < 2.<br />

Prova. Temos ω 2 λ 2<br />

J − 4 (ω − 1) 0 para 0 < ω < 2 se e somente se ω ωótimo. De fato, as raízes de<br />

f (ω) = ω 2 λ 2<br />

J − 4ω + 4 são<br />

ω± =<br />

<br />

4 ± 4 1 − λ 2<br />

J<br />

2λ 2<br />

J<br />

= 2<br />

λ 2<br />

<br />

1 ± 1 − λ<br />

J<br />

2<br />

<br />

J<br />

de modo que a raiz positiva de f é maior que 2, logo para que f (ω) 0 se 0 < ω < 2, devemos ter<br />

ω 2<br />

λ 2<br />

<br />

1 − 1 − λ<br />

J<br />

2<br />

<br />

J = 2<br />

λ 2<br />

<br />

1 − 1 − λ<br />

J<br />

2<br />

<br />

J<br />

=<br />

1 +<br />

1 +<br />

2<br />

.<br />

<br />

1 − λ 2<br />

J<br />

O resultado segue então como na demonstração da proposição anterior. <br />

<br />

1 − λ 2<br />

J<br />

3.28 Teorema. Seja A a matriz de discretização obtida a partir da fórmula de três pontos unidimensional<br />

ou a partir da fórmula de cinco pontos bidimensional. Então o fator de relaxamento ótimo para o<br />

método SOR é dado por<br />

2<br />

ωótimo =<br />

1 + sen π<br />

n<br />

é o fator de relaxamento ótimo para o método SOR.<br />

Prova. Se 0 < ω ωótimo, então ω 2 λ 2<br />

J − 4 (ω − 1) 0 e<br />

<br />

d<br />

ωλJ + ω<br />

dω<br />

2λ 2<br />

<br />

J − 4 (ω − 1) = λJ<br />

Temos ωλ 2<br />

J − 2 < 0, porque 0 < ω < 2 e λJ < 1, e<br />

pois<br />

<br />

<br />

ωλ 2<br />

<br />

<br />

J − 2<br />

2<br />

<br />

=<br />

<br />

<br />

ωλ 2<br />

<br />

<br />

J − 2<br />

= ω 2 λ 4<br />

J − 4λ 2<br />

λJ<br />

> λJ<br />

Jω + 4 > ω 2 λ 4<br />

<br />

ω 2 λ 2<br />

J − 4 (ω − 1)<br />

<br />

ω2λ 2<br />

J − 4 (ω − 1) + ωλ 2<br />

<br />

ω2λ 2<br />

J − 4 (ω − 1)<br />

<br />

ω 2 λ 2<br />

J − 4 (ω − 1),<br />

J − 4λ 2<br />

2 .<br />

Jω + 4λ 2<br />

J > ω 2 λ 4<br />

J − 4λ 2<br />

J − 2<br />

.<br />

J (ω − 1)<br />

(3.70)


Rodney Josué Biezuner 59<br />

Isso implica<br />

<br />

d<br />

ωλJ + ω<br />

dω<br />

2λ 2<br />

<br />

J − 4 (ω − 1) < 0,<br />

logo ρ (RSOR,ω) é decrescente de 0 até ωótimo. Para ωótimo ω < 2, ρ (RSOR,ω) = ω − 1 é claramente<br />

crescente. Portanto, ρ (RSOR,ω) atinge o seu mínimo em ωótimo.<br />

Pelo Teorema 3.15, temos<br />

λJ = cos π<br />

n ,<br />

logo<br />

ωótimo =<br />

1 +<br />

<br />

Para o quadrado unitário temos<br />

e conseqüentemente<br />

e usando<br />

se h é pequeno podemos aproximar<br />

2<br />

<br />

1 − λ 2<br />

J<br />

ρ (RSOR,ω) =<br />

ωótimo =<br />

2<br />

2<br />

= =<br />

π<br />

1 + 1 − cos2 1 + sen<br />

n<br />

π .<br />

n<br />

2<br />

1 + sen (πh)<br />

2<br />

1 − sen (πh)<br />

− 1 =<br />

1 + sen (πh) 1 + sen (πh) .<br />

1 − x<br />

1 + x = 1 − 2x + O x 2 ,<br />

sen x = x + O x 3 ,<br />

1 − sen (πh)<br />

1 + sen (πh) ≈ 1 − 2πh + O h 2 .<br />

Portanto, usando o valor ótimo de ω no método SOR, temos ρ (R) → 1 linearmente quando h → 0, um<br />

resultado muito melhor que o obtido nos métodos de Jacobi e de Gauss-Seidel. Para uma comparação mais<br />

precisa, usando<br />

log (1 + x) = x + O h 2<br />

temos que<br />

Segue que<br />

R∞ (RSOR) = 2πh + O h 2 . (3.71)<br />

R∞ (RSOR)<br />

R∞ (RGauss-Seidel)<br />

2πh<br />

≈<br />

π2 2<br />

=<br />

h2 πh .<br />

Em particular, se h = 0.025, temos ωótimo = 1. 8545 e R∞ (RSOR) /R∞ (RGauss-Seidel) = 25.5, isto é, o<br />

método SOR é 25 vezes mais rápido que o método de Gauss-Seidel. Quanto mais refinada a malha, maior é<br />

a diferença na velocidade de convergência entre os dois métodos.<br />

3.3.4 Convergência do Método de Jacobi Amortecido<br />

3.29 Teorema. Se o método de Jacobi converge, então o método de Jacobi amortecido converge para<br />

0 < ω 1.


Rodney Josué Biezuner 60<br />

Prova. Vamos escrever a matriz de iteração RJ,ω do método de Jacobi amortecido em função da matriz de<br />

iteração do método de Jacobi RJ. Temos<br />

de modo que<br />

<br />

1<br />

RJ,ω =<br />

ω D<br />

−1 <br />

1<br />

D − A<br />

ω<br />

donde<br />

Em particular,<br />

se e somente se<br />

Portanto, λJ é um autovalor de RJ se e somente se<br />

RJ = D −1 (D − A)<br />

= ωD −1<br />

<br />

1<br />

D − D + D − A = ωD<br />

ω −1<br />

<br />

1<br />

D − D + ωD<br />

ω −1 (D − A)<br />

RJ,ω = (1 − ω) I + ωRJ. (3.72)<br />

RJv = λv<br />

[RJ,ω − (1 − ω) I] v = ωλv.<br />

λJ,ω = ωλJ + 1 − ω (3.73)<br />

é um autovalor de RJ,ω. Logo, se todo autovalor de RJ satisfaz |λJ| < 1 (isto é, ρ (RJ) < 1 equivalente ao<br />

método de Jacobi convergir) e ω < 1, então<br />

|λJ,ω| 2 = (ωλJ + 1 − ω) ωλJ + 1 − ω <br />

= ω 2 |λJ| 2 + 2 Re λJω (1 − ω) + (1 − ω) 2<br />

ω 2 |λJ| 2 + 2 |λJ| ω (1 − ω) + (1 − ω) 2<br />

= (ω |λJ| + 1 − ω) 2<br />

< 1.<br />

<br />

Segue do Teorema 3.13 que o método de Jacobi amortecido converge para as matrizes de discretização do<br />

Capítulo 1 se 0 < ω 1.<br />

3.30 Corolário.<br />

Para o quadrado unitário temos<br />

Usando<br />

se h é pequeno podemos aproximar<br />

ρ (RJ,ω) = ω [ρ (RJ) − 1] + 1. (3.74)<br />

ρ (RJ,ω) = ω [cos (πh) − 1] + 1. (3.75)<br />

cos x = 1 − 1<br />

2 x2 + O x 4 ,<br />

log (1 + x) = x + O h 2 ,<br />

ρ (RJ,ω) ≈ 1 − ω π2<br />

2 h2 + O h 4 ,<br />

R∞ (RJ,ω) ≈ ω π2<br />

2 h2 .<br />

Vemos que a velocidade de convergência do método de Jacobi amortecido é da mesma ordem que a do método<br />

de Jacobi, um pouco pior para valores de ω próximos de 1 e muito pior para valores de ω próximos de 0.


Rodney Josué Biezuner 61<br />

3.3.5 Resumo<br />

3.4 Exercícios<br />

Método ρ (R) R∞ (R)<br />

Jacobi cos (πh)<br />

π 2<br />

2 h2 + O h 4<br />

Gauss-Seidel cos 2 (πh) π 2 h 2 + O h 4<br />

SOR ótimo 1 − 2πh + O h 2<br />

2πh + O h 2<br />

Jacobi amortecido 1 − ω π2<br />

2 h2 + O h 4 ω π2<br />

2 h2 + O h 4<br />

3.1 Os métodos de Jacobi e Gauss-Seidel não são sempre comparáveis: existem sistemas lineares para as<br />

quais o método de Jacobi converge, enquanto que o método de Gauss-Seidel não converge ou até mesmo<br />

diverge, e vice-versa.<br />

a) Verifique no computador que o método de Jacobi converge para o sistema linear<br />

⎧<br />

⎨<br />

⎩<br />

x + z = 2<br />

−x + y = 0<br />

x + 2y − 3z = 0<br />

enquanto que o método de Gauss-Seidel não converge (observe que a solução exata deste sistema é<br />

(1, 1, 1)).<br />

b) Verifique no computador que o método de Gauss-Seidel converge se<br />

⎧<br />

⎨<br />

⎩<br />

2x + y + z = 4<br />

x + 2y + z = 4<br />

x + y + 2z = 4<br />

enquanto que o método de Jacobi não converge, usando o vetor (0, 0, 0) como chute inicial (observe<br />

que a solução exata deste sistema é (1, 1, 1)).<br />

c) Justifique matematicamente o resultado de cada um dos ítens anteriores.


Capítulo 4<br />

Métodos de Projeção<br />

A maioria dos métodos iterativos práticos para a resolução de sistemas lineares grandes usa um processo<br />

de projeção de uma forma ou outra. Um processo de projeção é uma maneira canônica de obter uma<br />

aproximação para a solução do sistema linear dentro de um subespaço especificado. Neste capítulo veremos<br />

a técnica descrita de maneira geral e uma aplicação detalhada para o caso unidimensional.<br />

4.1 Teoria Geral<br />

A idéia básica de uma técnica de projeção é extrair uma solução aproximada para a solução do sistema Ax = b<br />

de um subespaço especificado K ⊂ R n , chamado o subespaço de busca. Se m = dim K, então em geral<br />

são necessárias m restrições para obter esta aproximação. Uma maneira típica de descrever estas restrições<br />

é impor m condições de ortogonalidade; um exemplo é exigir que o vetor residual r = b − Ax seja ortogonal<br />

a m vetores linearmente independentes que geram um subespaço L, chamado o subespaço de restrições.<br />

Muitos métodos matemáticos são baseados neste tipo de descrição, conhecida como as condições de Petrov-<br />

Galerkin. Existem duas classes gerais de métodos de projeção: os métodos de projeção ortogonal, quando<br />

L = K (e neste caso as condições de Petrov-Galerkin são chamadas simplesmente condições de Galerkin), e<br />

os métodos de projeção oblíqua, quando L = K.<br />

4.1 Definição. Seja A ∈ Mn (C) uma matriz invertível e K, L ⊂ R n dois subespaços vetoriais m-dimensionais.<br />

Um método de projeção sobre o subespaço K ortogonal ao subespaço L é um processo que encontra<br />

uma solução aproximada x em K para o sistema Ax = b tal que o vetor residual r = b − Ax é ortogonal<br />

a L, ou seja,<br />

encontrar x ∈ K tal que r = b − Ax ⊥ L. (4.1)<br />

Se queremos explorar o conhecimento de um bom chute inicial x 0 para a solução, então a aproximação é<br />

buscada no espaço afim x 0 + K. Neste caso, a técnica é redefinida como<br />

Denotando<br />

e o vetor resíduo inicial<br />

encontrar x ∈ x 0 + K tal que r = b − Ax ⊥ L. (4.2)<br />

x = x 0 + p<br />

r 0 = b − Ax 0 ,<br />

de modo que r = b − Ax = b − A x 0 + p = r 0 − Ap, a solução aproximada pode ser descrita como<br />

x = x 0 + p, p ∈ K,<br />

r 0 − Ap, w = 0 para todo w ∈ L.<br />

O vetor p que está no subespaço de busca é chamado o vetor de busca.<br />

62<br />

(4.3)


Rodney Josué Biezuner 63<br />

4.1.1 Representação Matricial<br />

Sejam BK = {v1, . . . , vm} e BL = {w1, . . . , wm} bases para K e L, respectivamente. Construímos as matrizes<br />

n × m<br />

V = [v1 · · · vm] , (4.4)<br />

W = [w1 · · · wm] ,<br />

que tem estes vetores como colunas. Então a solução aproximada pode ser escrita na forma<br />

x = x 0 + V y (4.5)<br />

para algum vetor y ∈ R m , ou seja, p = V y. A condição de ortogonalidade r 0 − AV y, w = 0 para todo<br />

w ∈ L também pode ser representada matricialmente na forma<br />

para todo z ∈ R m , ou seja,<br />

ou<br />

(W z) T r 0 − AV y = z T W T r 0 − AV y = 0<br />

W T r 0 − AV y = 0<br />

W T AV y = W T r 0 . (4.6)<br />

A partir daí, se assumirmos que a matriz m × m W T AV é invertível (o que não é garantido mesmo quando<br />

A é invertível; veja Exercício 4.1), obtemos a seguinte expressão matricial para a solução aproximada:<br />

x = x 0 + V W T AV −1 W T r 0 . (4.7)<br />

Desta forma, um algoritmo típico para um método de projeção tem a forma<br />

Algoritmo para um Método de Projeção<br />

do until stop criterion<br />

⎡<br />

⎢<br />

⎣<br />

Selecione um par de subespaços K e L<br />

Escolha bases BK = {v1, . . . , vn} e BL = {w1, . . . , wn} para K e L<br />

r ← b − Ax;<br />

y ← W T AV −1 W T r;<br />

x ← x + V y;<br />

end do<br />

Em muitos algoritmos, a matriz W T AV não precisa ser formada, e muito menos sua inversa calculada, da<br />

mesma forma que a matriz de iteração não precisava ser explicitamente calculada nos métodos iterativos<br />

lineares.<br />

A matriz W T AV é invertível se e somente se nenhum vetor do subespaço AK é ortogonal ao subespaço<br />

L (Exercício 4.2). Duas condições independentes que garantem a invertibilidade de W T AV são dadas pela<br />

proposição seguinte:<br />

4.2 Proposição. Se A ∈ Mn (C) e os subespaços K, L ⊂ R n satisfazem qualquer uma das duas condições a<br />

seguir<br />

(i) A é positiva definida e L = K, ou<br />

(ii) A é invertível e L = AK.<br />

Ax = b<br />

então a matriz W T AV é invertível quaisquer que sejam as bases V, W de K, L, respectivamente.


Rodney Josué Biezuner 64<br />

Prova: (i) Como L = K, podemos escrever W = V P para alguma matriz m × m invertível P (Exercício<br />

4.3). Então<br />

W T AV = P T V T AV<br />

Como A é positiva definida, segue que V T AV também é (Exercício 4.4); em particular, a matriz m × m<br />

V T AV é invertível. Logo, sendo o produto de duas matrizes invertíveis, W T AV é invertível.<br />

(ii) Neste caso, como L = AK, podemos escrever W = AV P para alguma matriz m × m invertível P .<br />

Daí,<br />

W T AV = P T (AV ) T AV.<br />

Como A é invertível, a matriz n × m AV possui posto máximo, logo a matriz m × m (AV ) T AV é invertível<br />

(Exercício 4.5). Novamente, sendo o produto de duas matrizes invertíveis, W T AV é invertível. <br />

Em particular, se A é uma matriz simétrica e um método de projeção ortogonal é utilizado, podemos tomar<br />

V = W e a matriz projetada V T AV também é simétrica; da mesma forma, se além disso A for positiva<br />

definida, V T AV também será.<br />

4.1.2 Minimização de Funcionais<br />

A solução aproximada x do sistema Ax = b através de um método de projeção pode ser obtida como o ponto<br />

de mínimo de um funcional quadrático associado à matriz A. Consideremos primeiro o caso em que A é uma<br />

matriz simétrica positiva definida. Neste caso, a própria solução do sistema Ax = b é o minimizante de um<br />

funcional quadrático associado à matriz A:<br />

4.3 Teorema. (Método Variacional para a Resolução de Sistemas <strong>Linear</strong>es) Seja A ∈ Mn (R) uma matriz<br />

simétrica positiva definida e b ∈ Rn . Então a solução do sistema Ax = b é o único ponto x que<br />

minimiza o funcional quadrático<br />

f (y) = 1<br />

〈Ay, y〉 − 〈b, y〉 .<br />

2<br />

(4.8)<br />

Prova: Uma matriz simétrica positiva definida é em particular invertível, logo existe uma única solução x<br />

para o sistema Ax = b. Temos<br />

Como A é positiva definida, segue que<br />

e<br />

se e somente se y = x. Portanto,<br />

f (y) − f (x) = 1<br />

1<br />

〈Ay, y〉 − 〈b, y〉 − 〈Ax, x〉 + 〈b, x〉<br />

2 2<br />

= 1<br />

1<br />

〈Ay, y〉 − 〈Ax, y〉 − 〈Ax, x〉 + 〈Ax, x〉<br />

2 2<br />

= 1<br />

1<br />

〈Ay, y〉 − 〈Ax, y〉 + 〈Ax, x〉<br />

2 2<br />

= 1 1 1 1<br />

〈Ay, y〉 − 〈Ax, y〉 − 〈Ax, y〉 + 〈Ax, x〉<br />

2 2 2 2<br />

= 1<br />

1<br />

〈A (y − x) , y〉 − 〈A (y − x) , x〉<br />

2 2<br />

= 1<br />

〈A (y − x) , y − x〉 .<br />

2<br />

〈A (y − x) , y − x〉 0<br />

〈A (y − x) , y − x〉 = 0<br />

f (y) > f (x)


Rodney Josué Biezuner 65<br />

para todo y = x e o mínimo de f ocorre em x. <br />

Em muitos problemas, o funcional f tem um significado físico, correspondendo a um funcional de energia; o<br />

minimizante deste funcional de energia corresponde a um estado de equilíbrio do sistema.<br />

Observe que, definindo um produto interno a partir da matriz simétrica positiva definida A da maneira<br />

usual por 〈v, w〉 A = 〈Av, w〉 e considerando a norma vetorial induzida vA = 〈v, v〉 1/2<br />

A , chamada A-norma,<br />

o funcional f pode ser escrito na forma (substituindo b = Ax)<br />

f (y) = 1<br />

2 y2 A − 〈x, y〉 A . (4.9)<br />

O vetor de aproximação x de um método de projeção ortogonal sobre K a partir de um vetor inicial x 0 é<br />

exatamente o minimizante da primeira parte deste funcional sobre o subespaço afim x 0 + K:<br />

4.4 Proposição. Sejam A ∈ Mn (R) uma matriz simétrica positiva definida e L = K. Então x é o vetor de<br />

aproximação de um método de projeção ortogonal sobre K a partir de um vetor inicial x 0 se e somente<br />

se ele minimiza a A-norma do erro sobre x 0 + K, isto é, se e somente se<br />

E (x) = min<br />

y∈x0 E (y) .<br />

+K<br />

Prova: Seja x a solução exata do sistema Ax = b. Então a A-norma do erro é dada por<br />

E (y) = x − y A .<br />

Segue do lema da projeção ortogonal (ou lema da melhor aproximação) que x é um minimizante de E (y)<br />

sobre o subespaço afim x 0 + K se e somente se x − x é A-ortogonal a K, ou seja, se e somente se<br />

ou, equivalentemente,<br />

〈A (x − x) , v〉 = 0 para todo v ∈ K,<br />

〈b − Ax, v〉 = 0 para todo v ∈ K.<br />

Esta é a condição de Galerkin que define o vetor de aproximação de um método de projeção ortogonal (veja<br />

(4.2)). <br />

Vamos considerar agora o caso de um método de projeção oblíqua em que L = AK.<br />

4.5 Proposição. Sejam A ∈ Mn (C) uma matriz qualquer e L = AK. Então x é o vetor de aproximação<br />

de um método de projeção oblíqua sobre K ortogonal a L a partir de um vetor inicial x 0 se e somente<br />

se ele minimiza a 2-norma do resíduo sobre x 0 + K, isto é, se e somente se<br />

R (x) = min<br />

y∈x0 R (y) .<br />

+K<br />

Prova: Considere o sistema Ax = b. Então a 2-norma do resíduo é dada por<br />

R (y) = b − Ay 2 .<br />

Segue do lema da projeção ortogonal (ou lema da melhor aproximação) que x é um minimizante de R (y)<br />

sobre o subespaço afim x 0 + K se e somente se b − Ax é ortogonal a AK = L, ou seja, se e somente se<br />

〈b − Ax, w〉 = 0 para todo w ∈ L.<br />

Esta é a condição de Petrov-Galerkin que define o vetor de aproximação de um método de projeção oblíqua<br />

(veja (4.2)).


Rodney Josué Biezuner 66<br />

4.1.3 Estimativa do Erro em Métodos de Projeção<br />

Se nenhum vetor do subespaço K está próximo da solução exata x, então é impossível encontrar uma boa<br />

aproximação x para x em K. Por outro lado, se existir algum vetor em K que está a uma pequena distância<br />

ε de x, então podemos perguntar qual a melhor aproximação a x podemos encontrar em K. No que se segue<br />

assumiremos x 0 = 0; em particular, o subespaço afim x 0 + K é o subespaço vetorial K.<br />

Seja PK a projeção ortogonal sobre K, definida por<br />

e Q L K<br />

a projeção oblíqua sobre K e ortogonalmente a L, definida por<br />

PKx ∈ K, x − PKx ⊥ K, (4.10)<br />

Q L Kx ∈ K, x − Q L Kx ⊥ L. (4.11)<br />

(Observe que se K = L (isto é, projeção ortogonal), temos Q K K = PK.) Então o problema de aproximação da<br />

Definição 4.1 pode ser expresso na linguagem destes operadores como<br />

Equivalentemente, definindo o operator Am : K −→ K por<br />

ele pode ser expresso na forma<br />

encontrar x ∈ K tal que Q L K (b − Ax) = 0. (4.12)<br />

Am = Q L KAPK,<br />

encontrar x ∈ K tal que Amx = Q L Kb, (4.13)<br />

de modo que um problema n-dimensional é aproximado por um problema m-dimensional.<br />

4.6 Proposição. Assuma x 0 = 0. Suponha que K é invariante por A e que b ∈ K. Então o vetor de<br />

aproximação x de um método de projeção (ortogonal ou oblíqua) sobre K a partir do vetor inicial x 0<br />

é a solução exata x.<br />

Prova: Temos QL K (b − Ax) = 0. Como por hipótese Ax, b ∈ K, segue que QLK Ax = Ax e QLK b = b, logo<br />

b − Ax = 0 e portanto x = x. <br />

O mesmo resultado vale se x0 = 0 sob a hipótese adicional que o resíduo inicial r0 = b − Ax0 ∈ K.<br />

A distância da solução exata x ao subespaço K, que pode ser escrita como (I − PK) x, desempenha um<br />

papel fundamental na estimativa do erro da solução aproximada x ∈ K, já que a distância desta à solução<br />

exata obviamente não pode ser menor que a distância de x a K. O próximo resultado fornece uma estimativa<br />

superior para a norma do resíduo da solução exata com respeito ao operador aproximado Am.<br />

4.7 Teorema. Assuma x 0 = 0 e b ∈ K. Denote<br />

Então a solução exata x satisfaz a estimativa<br />

isto é,<br />

Prova: Como b ∈ K, segue que<br />

γ = Q L KA (I − PK) .<br />

b − Amx γ (I − PK) x ,<br />

dist (Amx, b) γ dist (x, K) .<br />

b − Amx = Q L K (b − APKx) = Q L KA (x − PKx) = Q L KA (I − PK) x.<br />

Daí, já que I − PK é uma projeção e portanto satisfaz (I − PK) 2 = (I − PK), podemos escrever<br />

<br />

b − Amx = Q L KA (I − PK) (I − PK) x γ (I − PK) x .


Rodney Josué Biezuner 67<br />

4.2 Caso Unidimensional: Métodos de Descida<br />

Nesta seção, A será sempre uma matriz real simétrica positiva definida.<br />

Outra maneira de enxergar o resultado do Teorema 4.3 é observar que o gradiente do funcional f é<br />

Se x é um ponto de mínimo temos ∇f (x) = 0, ou seja,<br />

∇f (y) = Ay − b. (4.14)<br />

Ax = b.<br />

O método variacional sugerido pelo Teorema 4.3 é a base dos métodos iterativos de descida em geral, e do<br />

método do gradiente conjugado em particular. A idéia é usar as idéias do cálculo diferencial para encontrar<br />

o mínimo do funcional quadrático f.<br />

4.2.1 Métodos de Descida<br />

A filosofia dos métodos de descida é começar com um chute inicial x 0 e gerar uma seqüência de iterados<br />

x 1 , x 2 , . . . , x k , . . . que satisfazem<br />

f x k+1 f x k<br />

ou, melhor ainda,<br />

f x k+1 < f x k<br />

de tal modo que x k convirja para o minimizador de f. Em outras palavras, em um método de descida<br />

buscamos encontrar uma seqüência minimizante x k que convirja para a solução do sistema.<br />

O passo de x k para x k+1 envolve dois ingredientes: (1) uma direção de busca e (2) um avanço de<br />

comprimento especificado na direção de busca. Uma direção de busca significa a escolha de um vetor p k que<br />

indicará a direção que avançaremos de x k para x k+1 . O comprimento do avanço é equivalente à escolha de<br />

um escalar αk multiplicando o vetor p k . Assim,<br />

x k+1 = x k + αkp k .<br />

A escolha de αk é também chamada uma busca na reta, já que queremos escolher um ponto na reta<br />

x k + αp k : α ∈ R <br />

tal que<br />

f x k + αp k f x k .<br />

Idealmente, gostaríamos de escolher αk de tal modo que<br />

f x k+1 = f x k + αkp k = min<br />

α∈R f x k + αp k<br />

Esta é chamada uma busca exata na reta. Para funcionais quadráticos, a busca exata na reta é trivial e<br />

obtemos uma fórmula para o valor de αk, como veremos a seguir. Denotaremos o resíduo em cada iteração<br />

por<br />

r k = b − Ax k . (4.15)<br />

4.7 Proposição. Seja αk ∈ R tal que<br />

Então<br />

f x k + αkp k = min<br />

α∈R f x k + αp k .<br />

αk =<br />

p k , r k <br />

〈pk , Apk . (4.16)<br />


Rodney Josué Biezuner 68<br />

Prova: Considere o funcional<br />

g é um polinômio quadrático em α, pois<br />

g (α) = f x k + αp k .<br />

g (α) = 1 k k<br />

A x + αp<br />

2<br />

, x k + αp k − b, x k + αp k<br />

= 1<br />

2<br />

k k<br />

Ax , x − b, x k + α k k<br />

Ap , x<br />

2<br />

+ α<br />

2<br />

= f x k + α Ax k , p k − b, p k + α2<br />

2<br />

= f x k − α r k , p k + α2<br />

2<br />

Ap k , p k ,<br />

Ax k , p k + α2<br />

Ap k , p k <br />

2<br />

Ap k , p k − α b, p k<br />

portanto o mínimo de g é atingido no vértice −B/2A da parábola Y = AX 2 + BX + C. <br />

Observe que αk = 0 se e somente se p k , r k = 0, isto é, a direção de busca é ortogonal ao resíduo. Como<br />

gostaríamos sempre que possível de ter x k+1 = x k , devemos sempre escolher a direção de busca de forma a<br />

não ser ortogonal a r k . Se esta escolha é feita, então teremos sempre f x k+1 < f x k .<br />

4.8 Exemplo. (Método de Gauss-Seidel) Considere o método de descida em que as primeiras n direções de<br />

busca p 1 , . . . , p n são os vetores e1, . . . , en da base canônica de R n , e isso é repetido a cada n iterações,<br />

de modo que p k+n = ek para todo k = 1, . . . , n, com uma busca na reta exata executada em cada<br />

iteração. Então cada grupo de n iterações corresponde a uma iteração do método de Gauss-Seidel. <br />

4.9 Exemplo. (Método SOR) Usando as mesmas direções de busca do exemplo anterior, mas com x k+1 =<br />

x k + ωαkp k , ω = 1, obtemos um método de descida em que as buscas nas retas são inexatas. Cada<br />

grupo de n iterações corresponde a uma iteração do método SOR. <br />

Observe que o método de descida é um método de projeção em que L e K são subespaços unidimensionais,<br />

com K = p k e L um subespaço não ortogonal a K, em cada iteração k. Se o método de descida será um<br />

método de projeção ortogonal ou oblíquo dependerá da escolha do vetor de direção de busca p k .<br />

4.2.2 Método da Descida Mais Acentuada<br />

Do Cálculo Diferencial, sabemos que a direção em que a função cresce a uma taxa mais rápida a partir de<br />

um ponto é a direção do gradiente neste ponto. Esta observação é a base da escolha da direção de busca no<br />

método da descida mais acentuada (também chamado método do gradiente). Em outras palavras, escolhemos<br />

ou<br />

p k = −∇f x k = b − Ax k<br />

p k = r k . (4.17)<br />

Como neste caso K = L = p k , o método da descida mais acentuada será um método de projeção ortogonal.<br />

Buscar na direção da descida mais acentuada é uma idéia natural, mas que na prática não funciona sem<br />

modificações. De fato, em alguns casos o método é de velocidade comparável à do método de Jacobi, como<br />

na matriz de discretização da fórmula de cinco pontos aplicada ao problema descrito na primeira seção deste<br />

capítulo [Watkins]:<br />

∆x = 0.1 ∆x = 0.05 ∆x = 0.025<br />

Jacobi 299 1090 3908<br />

Descida Mais Acentuada 304 1114 4010<br />

De fato, como as iterações do método de descida mais acentuada são bem mais custosas que as do método<br />

de Jacobi, o primeiro é muito pior que este último.


Rodney Josué Biezuner 69<br />

Para entender melhor o método da descida mais acentuada, porque ele pode ser lento e as modificações<br />

que vamos fazer para torná-lo mais rápido levando ao método do gradiente conjugado a ser visto no próximo<br />

capítulo, vamos entender o processo do ponto de vista geométrico. Como vimos na demonstração do Teorema<br />

4.3, o funcional quadrático f é da forma<br />

f (y) = 1<br />

〈A (y − x) , (y − x)〉 + c (4.18)<br />

2<br />

onde c = f (x) é uma constante. Já que A é uma matriz simétrica, existe uma matriz ortogonal P tal que<br />

P t AP é uma matriz diagonal D , cujos valores na diagonal principal são exatamente os autovalores positivos<br />

de A. Nas coordenadas<br />

z = P t (y − x) ,<br />

o funcional f tem a forma<br />

f (z) = 1<br />

1<br />

〈Dz, z〉 + c =<br />

2 2<br />

n<br />

i=1<br />

λiz 2 i + c. (4.19)<br />

As curvas de nível do funcional f neste sistema de coordenadas são elipses (em R 2 , elipsóides em R 3 e<br />

hiperelipsóides em R n ) centradas na origem com eixos paralelos aos eixos coordenados e f (0) = c é nível<br />

mínimo de f; elipses correspondentes a menores valores de f estão dentro de elipses correspondentes a maiores<br />

valores de f. Como P é uma aplicação ortogonal, as curvas de nível de f no sistema de coordenadas original<br />

também são elipses, centradas em x, e uma reta de um ponto y até o ponto x corta elipses de níveis cada vez<br />

menores até chegar ao mínimo da função f em x, centro de todas as elipses. O vetor gradiente é perpendicular<br />

às curvas de nível, logo é perpendicular às elipses. Seguir a direção de descida mais acentuada equivale a<br />

cortar a elipse que contém x k ortogonalmente na direção do interior da elipse até encontrar um ponto x k+1<br />

situado em uma elipse que a reta tangencie, pois a partir daí a reta irá na direção de elipses com níveis<br />

maiores, portanto este é o ponto da reta onde f atinge o seu mínimo. Em particular, vemos que a próxima<br />

direção p k+1 é ortogonal à direção anterior p k , tangente a esta elipse (veja também o Corolário 4.12). Em<br />

geral, a direção de descida mais acentuada não é a direção de x (quando bastaria uma iteração para atingir<br />

a solução exata) a não ser que A seja um múltiplo escalar da identidade, de modo que todos os autovalores<br />

de A são iguais e as elipses são círculos. Por outro lado, se os autovalores de A têm valores muito diferentes<br />

uns dos outros, com alguns muito pequenos e alguns muito grandes, as elipses serão bastante excêntricas<br />

e, dependendo do chute inicial, a convergência pode ser muito lenta. Matrizes com estas propriedades são<br />

chamadas mal-condicionadas; para que o método de descida acentuada seja lento, a matriz A não precisa<br />

ser muito mal-condicionada (veja a Definição 4.14 e a discussão que se segue).<br />

Como vimos na seção anterior, os algoritmos de Gauss-Seidel e SOR podem ser encarados como algoritmos<br />

de descida. A discussão no parágrafo anterior também pode ser usada para entender a relativa lentidão destes<br />

algoritmos.<br />

A seguir, provaremos a convergência do método da descida mais acentuada.<br />

4.10 Lema. (Desigualdade de Kantorovich) Sejam A ∈ Mn (R) uma matriz simétrica positiva definida e<br />

denote por λmax e λmin seu menor autovalor e seu maior autovalor, respectivamente. Então<br />

para todo x = 0.<br />

〈Ax, x〉 A −1 x, x <br />

〈x, x〉 2<br />

(λmin + λmax) 2<br />

4λminλmax<br />

Prova: Denote os autovalores de A por λ1 . . . λn, de modo que λmin = λ1 e λmax = λn. Como o<br />

quociente à esquerda da desigualdade é homogêneo, basta provar a desigualdade para vetores x unitários.<br />

Como A é simétrica, existem uma matriz diagonal D e uma matriz ortogonal P tais que A = P T DP . Segue<br />

que<br />

〈Ax, x〉 A −1 x, x = P T DP x, x P T D −1 P x, x = 〈DP x, P x〉 D −1 P x, P x .


Rodney Josué Biezuner 70<br />

Denote y = P x = (y1, . . . , yn) e βi = y2 i . Então y também é um vetor unitário e<br />

λ := 〈Dy, y〉 =<br />

n<br />

i=1<br />

βiλi<br />

é uma combinação convexa dos autovalores λi de A, ao passo que<br />

é uma combinação convexa dos autovalores λ −1<br />

i<br />

µ := D −1 y, y =<br />

µ 1<br />

λ1<br />

n<br />

βi<br />

λi<br />

i=1<br />

de A −1 . Consequentemente,<br />

+ 1<br />

−<br />

λn<br />

λ<br />

. (4.20)<br />

λ1λn<br />

De fato, a função ϕ (t) = 1/t é convexa, logo o ponto (λ, µ), que é a combinação convexa de pontos localizados<br />

no gráfico de ϕ, está localizado na região plana convexa limitada pelo gráfico de ϕ e o segmento de reta que<br />

une os pontos extremos do gráfico (λ1, 1/λ1) e (λn, 1/λn), ou seja, o segmento de reta<br />

t ↦−→ − 1<br />

λ1λn<br />

t + 1<br />

λ1<br />

+ 1<br />

, λ1 t λn.<br />

λn<br />

Em particular, o ponto (λ, µ) está abaixo do ponto do segmento correspondente a t = λ.<br />

Portanto,<br />

〈Ax, x〉 A −1 x, x <br />

1<br />

= λµ λ +<br />

λ1<br />

1<br />

−<br />

λn<br />

λ<br />

<br />

.<br />

λ1λn<br />

O máximo da função quadrática<br />

é atingido para t = (a + b) /2. Concluímos que<br />

<br />

〈Ax, x〉 A −1 x, x λ1 + λn<br />

2<br />

<br />

1 1 t<br />

t ↦−→ t + −<br />

a b ab<br />

1<br />

λ1<br />

+ 1<br />

−<br />

λn<br />

λ1<br />

<br />

+ λn<br />

2λ1λn<br />

= (λ1 + λn) 2<br />

.<br />

4λ1λn<br />

4.11 Lema. Seja x k+1 = x k + αkp k obtido através de uma busca exata na reta. Então<br />

e<br />

Prova: Temos<br />

r k+1 ⊥ p k<br />

e k+1 ⊥A p k .<br />

b − Ax k+1 = b − Ax k − αkAp k ,<br />

de modo que a seqüência dos resíduos é dada pela fórmula<br />

Logo,<br />

k+1 k<br />

r , p = r k+1 , p k k k<br />

− αk Ap , p = r k , p k −<br />

r k+1 = r k − αkAp k . (4.21)<br />

<br />

k k p , r <br />

〈pk , Apk k k<br />

Ap , p<br />

〉<br />

= 0.


Rodney Josué Biezuner 71<br />

A segunda relação de A-ortogonalidade segue diretamente da primeira relação de ortogonalidade; de fato,<br />

lembrando que<br />

Ae k+1 = r k+1 ,<br />

temos e k+1 , p k <br />

A = Ae k+1 , p k = r k+1 , p k = 0.<br />

<br />

O significado geométrico deste resultado é que o mínimo do funcional f na reta xk + αkpk ocorre quando a<br />

derivada direcional de f na direção de busca é zero, ou seja,<br />

0 = ∂f k+1<br />

x<br />

∂pk<br />

= ∇f x k+1 k+1<br />

, pk = r , pk .<br />

4.12 Corolário. No método da descida mais acentuada vale<br />

e<br />

r k+1 ⊥ r k<br />

e k+1 ⊥A r k .<br />

4.13 Teorema. Sejam A ∈ Mn (R) uma matriz simétrica positiva definida e denote por λmax e λmin seu<br />

menor autovalor e seu maior autovalor, respectivamente. Então o erro algébrico do método da descida<br />

mais acentuada satisfaz a estimativa<br />

Em particular,<br />

<br />

k+1<br />

e <br />

A λmax − λmin <br />

k<br />

e<br />

λmax + λmin<br />

.<br />

A<br />

<br />

e k A <br />

λmax − λmin<br />

λmax + λmin<br />

k e 0 A<br />

e portanto o método da descida mais acentuada converge qualquer que seja o chute inicial x 0 .<br />

Prova: Temos<br />

e k+1 = x − x k+1 = x − x k + αkr k = e k − αkr k .<br />

Logo, pelo Corolário 4.12,<br />

<br />

k+1<br />

e 2<br />

A = e k+1 , e k+1<br />

A = e k+1 , e k k+1 k<br />

− αk e , r<br />

A <br />

A = e k+1 , e k<br />

A<br />

= e k+1 , Ae k = e k+1 , r k .<br />

Daí, usando a desigualdade de Kantorovich,<br />

<br />

e k+1 2<br />

A = e k − αkr k , r k = e k , r k − αk<br />

= e k <br />

k k<br />

, r<br />

k r , r<br />

1 −<br />

<br />

k k r , r <br />

= e k <br />

, Ae<br />

k<br />

1 −<br />

= k<br />

e 2<br />

<br />

1 −<br />

A<br />

e k 2<br />

A<br />

= e k 2<br />

A<br />

<br />

〈rk , Ark 〉 〈ek , rk 〉<br />

<br />

k k r , r <br />

k k r , r <br />

r k , r k <br />

〈rk , Ark 〉 〈A−1rk , rk 〉<br />

<br />

k k r , r <br />

k k r , r <br />

〈rk , Ark 〉 〈rk , A−1rk 〉<br />

1 − 4λminλmax<br />

(λmin + λmax) 2<br />

λmax − λmin<br />

λmax + λmin<br />

2<br />

.


Rodney Josué Biezuner 72<br />

<br />

Observamos que o fator de convergência obtido no Teorema 4.13 é ótimo (veja Exercício 4.6).<br />

Introduzimos o número de condição de uma matriz, que é uma medida do quão mal-comportada ela é.<br />

4.14 Definição. Seja A ∈ Mn (R) uma matriz simétrica positiva definida. O número de condição de A é<br />

definido por<br />

κ (A) = λmax<br />

.<br />

λmin<br />

Quanto menor o número de condição de A, isto é, quanto mais próximo de 1, mais próximos a esferas<br />

são os elipsóides de nível do funcional f; reciprocamente, quando maior o número de condição de A, mais<br />

excêntricos são estes. A constante do Teorema 4.13 pode ser mais convenientemente expressa em termos do<br />

número de condição da matriz:<br />

4.15 Corolário. Sejam A ∈ Mn (R) uma matriz simétrica positiva definida e denote por λmax e λmin seu<br />

menor autovalor e seu maior autovalor, respectivamente. Então o erro algébrico do método da descida<br />

mais acentuada satisfaz a estimativa<br />

<br />

k+1<br />

e <br />

κ (A) − 1 <br />

k<br />

e A κ (A) + 1<br />

. A<br />

Desta forma, vemos que quanto mais κ (A) é próximo de 1 maior é a velocidade de convergência do método<br />

da descida acentuada; reciprocamente, quando maior κ (A), mais lento ele é.<br />

Reunindo as informações obtidas, um algoritmo para o método da descida mais acentuada pode ser<br />

apresentado da seguinte forma:<br />

initialize x;<br />

set b;<br />

r ← b − Ax;<br />

do ⎡ until stop criterion<br />

compute Ar;<br />

⎢ α ← 〈r, r〉 / 〈r, Ar〉 ;<br />

⎣ x ← x + αr;<br />

r ← r − αAr;<br />

4.3 Exercícios<br />

4.1 Considere a matriz invertível<br />

A =<br />

0 I<br />

I I<br />

onde I é a matriz identidade m × m, e seja V = W = {e1, . . . , em}. Verifique que W T AV é singular.<br />

4.2 Verifique que a matriz W T AV é invertível se e somente se nenhum vetor do subespaço AK é ortogonal<br />

ao subespaço L.<br />

4.3 Sejam B1 = {v1, . . . , vm} e B2 = {w1, . . . , wm} duas bases para o subespaço K ⊂ R n e considere as<br />

matrizes n × m V = [v1 · · · vm] e W = [w1 · · · wm]. Mostre que existe uma matriz m × m invertível P<br />

tal que V = W P .<br />

4.4 Mostre que se A é uma matriz positiva definida n × n e V é uma matriz n × m cujas colunas são<br />

linearmente independentes, então a matriz m × m V T AV também é uma matriz positiva definida.<br />

4.5 Mostre que se A é uma matriz n × m cujas colunas são linearmente independentes, então a matriz<br />

m × m B T B é invertível.<br />

<br />

,


Rodney Josué Biezuner 73<br />

4.6 Verifique que a taxa de convergência para o método da descida mais acentuada obtida no Teorema 4.12<br />

é ótima da seguinte maneira: se v1 e vn são os autovetores associados a λmin e λmax, respectivamente,<br />

mostre que se e 0 = v1 + v2, então<br />

<br />

e k+1 A = λmax − λmin<br />

λmax + λmin<br />

<br />

e k A .<br />

4.7 O número de condição para uma matriz invertível A ∈ Mn (C) qualquer é definido por<br />

<br />

κ (A) = A −1<br />

2 A .<br />

2<br />

a) Mostre que se A é uma matriz simétrica positiva definida esta definição coincide com a Definição<br />

4.14.<br />

b) Verifique que κ (A) 1 para toda matriz A.<br />

c) Considere o sistema Ax = b. Se y é uma aproximação de x com erro algébrico e = x − y e erro<br />

residual r = b − Ay, mostre que<br />

1 f2 e2 r2 κ (A)<br />

κ (A) x2 f2 e2 .<br />

x2 Esta desigualdade é ótima, no sentido de que a igualdade é atingida para certos valores de y. Ela<br />

mostra que para uma matriz mal-condicionada (isto é, com um número de condição relativamente<br />

alto), o erro residual pode ser muito pequeno ao mesmo tempo em que o erro algébrico pode ser muito<br />

grande e vice-versa.


Capítulo 5<br />

Métodos de Subespaços de Krylov<br />

Os métodos de projeção deste capítulo estão entre os mais importantes e populares disponíveis. Eles estão<br />

baseados na projeção sobre subespaços de Krylov, que são subespaços gerados por vetores da forma p (A) v<br />

onde p é um polinômio.<br />

5.1 Motivação<br />

Como vimos ao estudar os métodos iterativos lineares para a resolução do sistema Ax = b, estes métodos<br />

consistem em obter uma decomposição apropriada A = B − C da matriz do sistema, onde B é uma matriz<br />

próxima da matriz original A mas fácil de resolver. Então o método iterativo pode ser descrito pela relação<br />

de recorrência<br />

x m+1 = I − B −1 A x m + B −1 b,<br />

onde R = I − B −1 A é a matriz de iteração. A matriz mais fácil de resolver é<br />

B = I,<br />

exceto que esta matriz em geral está muito longe de A. Quando esta escolha é feita, obtemos a chamada<br />

iteração de Richardson:<br />

x m+1 = (I − A) x m + b = x m + b − Ax m<br />

ou, simplesmente,<br />

x m+1 = x m + r m . (5.1)<br />

Assim, o método da iteração de Richardson consiste simplesmente em somar o resíduo da aproximação à<br />

própria aproximação para obter a próxima aproximação. Na verdade, o método de iteração de Richardson<br />

desempenha papel importante na teoria de convergência dos métodos iterativos: por exemplo, todo método<br />

iterativo linear com decomposição A = B − C pode ser visto como a iteração de Richardson aplicada ao<br />

sistema equivalente (precondicionado)<br />

B −1 Ax = B −1 b.<br />

A partir de (5.1) obtemos sua correspondente equação residual:<br />

Através da iteração para trás desta equação obtemos<br />

r m+1 = (I − A) r m . (5.2)<br />

r m = (I − A) m r 0<br />

(5.3)<br />

= pm (A) r 0 , (5.4)<br />

74


Rodney Josué Biezuner 75<br />

ou seja, o m-ésimo resíduo é da forma pm (A) r 0 onde pm é um polinômio de grau m. Além disso, como<br />

x m+1 = x m + r m = x m−1 + r m−1 + r m = . . . =<br />

=<br />

m<br />

j=0<br />

(I − A) j r 0 ,<br />

m<br />

r j<br />

segue que as aproximação também são da forma qm (A) r 0 onde qm é um polinômio de grau igual a m.<br />

Portanto, tanto os resíduos r0 , . . . , rm como as aproximações x0 , . . . , xm pertencem ao subespaço<br />

0<br />

Km+1 A, r = p (A) r 0 : p é um polinômio de grau menor que ou igual a m <br />

= r 0 , Ar 0 , . . . , A m r 0 .<br />

5.2 Subespaços de Krylov<br />

5.1 Definição. Dada uma matriz A ∈ Mn (C) e um vetor v ∈ C n , definimos o subespaço de Krylov<br />

Km (A, v) = v, Av, . . . , A m−1 v . (5.5)<br />

Em outras palavras, Km (A, v) é o subespaço de todos os vetores que podem ser escritos na forma w = p (A) v,<br />

onde p é um polinômio de grau menor que ou igual a m−1. Se não houver motivo para confusão denotaremos<br />

o subespaço de Krylov Km (A, v) simplesmente por Km.<br />

Como vimos no capítulo anterior, um método de projeção geral para resolver o sistema linear<br />

Ax = b<br />

extrai uma solução aproximada x m de um subespaço afim x 0 + Km de dimensão m através da imposição da<br />

condição de Petrov-Galerkin<br />

r m = b − Ax m ⊥ Lm.<br />

Um método de subespaço de Krylov é um método de projeção para o qual o subespaço Km é o subespaço<br />

de Krylov<br />

0<br />

Km A, r = r 0 , Ar 0 , . . . , A m−1 r 0 . (5.6)<br />

As diferentes versões de métodos de subespaço de Krylov decorrem principalmente das diferentes escolhas<br />

de Lm.<br />

Lembramos alguns fatos de <strong>Álgebra</strong> <strong>Linear</strong>.<br />

5.2 Definição. O polinômio mínimo de um vetor v com respeito à matriz A (também chamado o Aanulador<br />

de v) é o polinômio mônico de menor grau p que anula v, isto é, tal que p (A) v = 0. O grau<br />

do polinômio mínimo é chamado o grau de v com respeito a A.<br />

É uma consequência do Teorema de Cayley-Hamilton que<br />

grau v n.<br />

5.3 Proposição. Seja d = grau v. Então Kd é invariante por A e Kd = Km para todo m d.<br />

Além disso,<br />

se e somente se m d. Portanto,<br />

dim Km = m<br />

dim Km = min {m, d} .<br />

j=0


Rodney Josué Biezuner 76<br />

Prova: Os vetores v, Av, . . . , A m−1 v formam uma base para Km se e somente se o único polinômio de grau<br />

menor ou igual a m − 1 que anula v é o polinômio nulo. <br />

Apesar dos vetores v, Av, . . . , A m−1 v formarem uma base para o subespaço de Krylov Km (quando m <br />

grau v), esta é uma base mal-condicionada, no sentido que à medida que k aumenta o vetor A k v fica cada vez<br />

mais próximo do autovetor associado ao maior autovalor de A, como veremos em detalhe quando estudarmos<br />

o método de potências para obter autovalores de matrizes. Assim, para m grande os vetores v, Av, . . . , A m−1 v<br />

tornam-se aproximadamente linearmente dependentes, o que torna-se um problema em aritmética de precisão<br />

finita. Para obter uma base bem condicionada para o subespaço de Krylov é necessário usar um método de<br />

ortogonalização, como veremos a seguir.<br />

5.3 Algoritmo de Arnoldi<br />

O método de Arnoldi é um método de projeção ortogonal em subespaços de Krylov, ou seja, Lm = Km =<br />

<br />

0<br />

Km A, r , aplicável para matrizes gerais, não necessariamente hermitianas. O procedimento foi introduzido<br />

pela primeira vez em 1951 como uma maneira de calcular a forma de Hessenberg de matrizes densas. Arnoldi<br />

sugeriu que os autovalores da forma de Hessenberg, obtida através de menos que n passos, eram boas<br />

aproximações para alguns dos autovalores da matriz original. Posteriormente, verificou-se que isso conduz<br />

a uma técnica eficiente para a aproximação dos autovalores de matrizes esparsas grandes, como veremos<br />

em detalhes quando formos estudar métodos para a obtenção de autovalores de matrizes. Posteriormente o<br />

método foi estendido para a solução de sistemas lineares esparsos grandes.<br />

O algoritmo de Arnoldi , propriamente dito, é um procedimento para a construção de uma base ortonormal<br />

para o subespaço de Krylov Km, já que, como observado antes, a base natural v, Av, . . . , Am−1v não é<br />

bem condicionada. Simplesmente ortogonalizar esta base mal-condicionada também não é uma boa opção<br />

numérica. No algoritmo de Arnoldi, o processo de ortogonalização de Gram-Schmidt é usado da seguinte<br />

maneira. Inicialmente obtém-se o primeiro vetor unitário através da normalização do vetor v:<br />

v1 = v<br />

v .<br />

Em seguida, calcula-se o vetor Av1 (ao invés de Av) e ortogonaliza-se este vetor com relação ao vetor v1<br />

através do método de Gram-Schmidt:<br />

w1 = Av1 − proj Av1 = Av1 − 〈Av1, v1〉 v1,<br />

〈v1〉<br />

v2 = w1<br />

w1 .<br />

Tendo sido obtido o vetor v2, calcula-se Av2 (ao invés de A 2 v = A (Av)) e ortogonaliza-se este vetor com<br />

relação aos vetores v1, v2 através do método de Gram-Schmidt:<br />

w2 = Av2 − proj Av2 = Av2 − 〈Av2, v1〉 v1 − 〈Av2, v2〉 v2,<br />

〈v1,v2〉<br />

v3 = w2<br />

w2 .<br />

No passo geral, tendo sido obtido o vetor vj no passo anterior, calcula-se e ortogonaliza-se este vetor com<br />

relação aos vetores v1, . . . , vj obtidos nos passos anteriores através do método de Gram-Schmidt:<br />

wj = Avj − proj<br />

〈v1,...,vj〉<br />

Avj = Avj −<br />

j<br />

〈Avj, vi〉 vi, (5.7)<br />

i=1<br />

vj+1 = wj<br />

. (5.8)<br />

wj


Rodney Josué Biezuner 77<br />

Podemos resumir este procedimento no seguinte algoritmo:<br />

Algoritmo de Arnoldi<br />

Atribua v;<br />

v1 ← v/ v2 ;<br />

Para<br />

⎡<br />

j = 1, . . . , m faça:<br />

Calcule hij = 〈Avj, vi〉 para i = 1, . . . , j;<br />

⎢ Calcule wj = Avj −<br />

⎢<br />

⎣<br />

j<br />

hijvi;<br />

i=1<br />

hj+1,j = wj2 ;<br />

Se hj+1,j = 0 então pare;<br />

vj+1 ← wj/hj+1,j;<br />

fim do laço<br />

O algoritmo sofre um colapso se o vetor wj é nulo e o vetor vj+1 não pode mais ser calculado.<br />

5.4 Proposição. Assuma que o algoritmo de Arnoldi não pára antes do m-ésimo passo. Então os vetores<br />

v1, . . . , vm formam uma base ortonormal para o subespaço de Krylov<br />

Km (A, v1) = v1, Av1, . . . , A m−1 <br />

v1<br />

Prova: Os vetores v1, . . . , vm são ortonormais por construção, logo são linearmente independentes. Basta<br />

então mostrar que v1, . . . , vm ∈ Km (A, v1) para concluir que eles formam uma base para Km (A, v1). Para<br />

isso, basta mostrar que cada vetor vj é da forma qj−1 (A) v1 para algum polinômio qj−1 de grau j − 1. Isso<br />

pode ser visto por indução. Se j = 1, temos q0 (t) ≡ 1. Assumindo o resultado verdadeiro para todos os<br />

inteiros até j, considere vj+1. Temos<br />

hj+1,jvj+1 = wj = Avj −<br />

j<br />

hijvi = Aqj−1 (A) v1 −<br />

i=1<br />

de modo que vj+1 = qj (A) v1 para qj = (1/hj+1,j)<br />

j<br />

hijqi−1 (A) v1,<br />

i=1<br />

<br />

tqj−1 (t) − j<br />

<br />

hijqi−1 (t) , que é um polinômio de grau<br />

j. <br />

O significado do colapso do algoritmo de Arnoldi, quando o vetor vj+1 não pode ser mais calculado é<br />

dado a seguir:<br />

5.5 Proposição. O algoritmo de Arnoldi sofre um colapso no passo j, isto é hj+1,j = 0, se e somente se<br />

o polinômio mínimo de v tem grau j. Além disso, neste caso o subespaço Kj é invariante por A e<br />

portanto a solução obtida pelo método de projeção associado é exata.<br />

Prova: Se o grau de v é j, então hj+1,j = 0, caso contrário vj+1 poderia ser definido e pela Proposição 5.4<br />

Kj+1 teria dimensão j + 1 maior que o grau de v, contrariando a Proposição 5.3.<br />

Reciprocamente, assuma hj+1,j = 0. Então pelas Proposições 5.3 e 5.4 o grau de v é d j. Mas pela<br />

primeira parte desta demonstração, não podemos ter d < j, pois isso implicaria hd+1,d = 0 e o algoritmo já<br />

teria entrado em colapso no passo d.<br />

O restante do enunciado segue diretamente da Proposição 5.3 e da Proposição 4.6. <br />

Por isso, tais colapsos são chamados colapsos sortudos. Infelizmente eles raramente ocorrem na prática, mas<br />

mesmo quando isso não ocorre as iteradas obtidas aproximam a solução exata em um número relativamente<br />

pequeno de iterações se comparado com os métodos lineares básicos.<br />

Vamos agora representar o algoritmo de Arnoldi em uma forma matricial.<br />

5.6 Definição. Dizemos que A = (aij) é uma matriz de Hessenberg se aij = 0 para todo i > j + 1<br />

(matriz de Hessenberg superior) ou se aij = 0 para todo i < j − 1 (matriz de Hessenberg inferior).<br />

i=1


Rodney Josué Biezuner 78<br />

Assim, uma típica matriz de Hessenberg superior quadrada m × m é da forma<br />

⎡<br />

h11<br />

⎢ h21 ⎢<br />

0<br />

⎢<br />

0<br />

H = ⎢ 0<br />

⎢<br />

.<br />

⎢ .<br />

⎢<br />

⎣<br />

.<br />

.<br />

h12<br />

h22<br />

h32<br />

0<br />

0<br />

.<br />

.<br />

.<br />

.<br />

h13<br />

h23<br />

h33<br />

h43<br />

0<br />

.<br />

.<br />

.<br />

.<br />

h14<br />

h24<br />

h34<br />

h44<br />

. ..<br />

. ..<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

. ..<br />

. ..<br />

. ..<br />

. ..<br />

. ..<br />

. ..<br />

. . .<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

. ..<br />

h1m<br />

h2m<br />

h3m<br />

h4m<br />

.<br />

.<br />

.<br />

.<br />

hm−1,m<br />

⎤<br />

⎥ ,<br />

⎥<br />

⎦<br />

(5.9)<br />

0 0 0 0 . . . 0 hm,m−1 hmm<br />

ou seja, é uma matriz obtida a partir de uma matriz triangular superior em que a subdiagonal inferior é<br />

preenchida. Similarmente, uma matriz de Hessenberg inferior quadrada é uma matriz obtida a partir de uma<br />

matriz triangular inferior em que a subdiagonal superior é preenchida. Uma típica matriz de Hessenberg<br />

superior (m + 1) × m é da forma<br />

⎡<br />

h11<br />

⎢ h21 ⎢<br />

0<br />

⎢<br />

0<br />

⎢<br />

H = ⎢ 0<br />

⎢ .<br />

⎢ .<br />

⎢ .<br />

⎢ .<br />

⎣ 0<br />

h12<br />

h22<br />

h32<br />

0<br />

0<br />

.<br />

.<br />

0<br />

h13<br />

h23<br />

h33<br />

h43<br />

0<br />

.<br />

.<br />

0<br />

h14<br />

h24<br />

h34<br />

h44<br />

. ..<br />

. ..<br />

0<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

. ..<br />

. ..<br />

. ..<br />

. . .<br />

. ..<br />

. ..<br />

. ..<br />

0<br />

. . .<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

. ..<br />

hm,m−1<br />

h1m<br />

h2m<br />

h3m<br />

h4m<br />

.<br />

.<br />

hm−1,m<br />

hmm<br />

⎤<br />

⎥ .<br />

⎥<br />

⎦<br />

(5.10)<br />

0 0 0 0 0 0 0 hm+1,m<br />

A partir daí, em uma matriz de Hessenberg superior n×m com n > m+1 todas as linhas i tais que i > m+1<br />

são nulas.<br />

5.7 Proposição. Denote por Vm a matriz n × m cujas colunas são os vetores v1, . . . , vm, por Hm a matriz<br />

de Hessenberg (m + 1) × m cujas entradas não-nulas são os elementos hij definidos pelo algoritmo de<br />

Arnoldi e por Hm a matriz m × m obtida de através da eliminação da última linha de Hm. Então<br />

valem as seguintes relações:<br />

AVm = VmHm + wme T m = Vm+1 Hm, (5.11)<br />

V T m AVm = Hm. (5.12)<br />

Prova: Se M é uma matriz, denotemos por (M) j a sua j-ésima coluna. Do algoritmo de Arnoldi temos,<br />

para j = 1, . . . , m,<br />

Por outro lado,<br />

(AVm) j = Avj =<br />

<br />

j<br />

i=1<br />

Vm+1 Hm<br />

hijvi + wj =<br />

<br />

kj<br />

=<br />

m+1 <br />

i=1<br />

j<br />

i=1<br />

j+1<br />

hijvi + hj+1,jvj+1 =<br />

j+1<br />

hijvi =<br />

i=1<br />

hijvi,<br />

<br />

hijvi. (5.13)<br />

i=1


Rodney Josué Biezuner 79<br />

de modo que segue de (5.13) que<br />

<br />

Vm+1 Hm<br />

<br />

j<br />

j+1<br />

= hijvi = (AVm) j ,<br />

logo AVm = Vm+1 Hm. Da mesma forma, para j = 1, . . . , m − 1,<br />

de modo que<br />

i=1<br />

j+1<br />

(VmHm) j =<br />

i=1<br />

<br />

wme T <br />

m = 0,<br />

j<br />

<br />

hijvi,<br />

<br />

VmHm + wme T <br />

m j =<br />

j+1<br />

hijvi = (AVm) j<br />

i=1<br />

para j = 1, . . . , m − 1, enquanto que para j = m temos<br />

de modo que<br />

(VmHm) m =<br />

m<br />

himvi,<br />

i=1<br />

<br />

wme T <br />

m m = wm = hj+1,jvm+1,<br />

<br />

VmHm + wme T <br />

m m =<br />

m+1<br />

i=1<br />

<br />

hijvi = (AVm) m .<br />

Portanto, AVm = VmHm + wme T m. Finalmente, multiplicando ambos os lados desta última relação por V T m e<br />

usando o fato que os vetores v1, . . . , vm são ortonormais e wm é ortogonal a todos eles, segue que V T m Vm = I<br />

e V T <br />

m wmeT <br />

T T<br />

m = Vm wm em = 0, donde obtemos a última relação do enunciado desta proposição. <br />

5.4 Implementação Prática: Métodos de Ortogonalização Estáveis<br />

O algoritmo de Gram-Schmidt é numericamente instável: pequenos erros de arredondamento podem dar<br />

origem a vetores muito longe de serem ortogonais (veja Exercício 5.1). Na implementação prática do algoritmo<br />

de Arnoldi é necessário considerar métodos de ortogonalização numericamente estáveis.<br />

5.4.1 Método de Gram-Schmidt Modificado (MGS)<br />

O método de Gram-Schmidt modificado (MGS) é uma modificação pequena do método de Gram-<br />

Schmidt que produz um algoritmo de ortogonalização estável. Na ausência de erros de arredondamento,<br />

eles produzem os mesmos vetores. No algoritmo de Gram-Schmidt clássico, dada uma base {u1, . . . , um} de<br />

um subespaço vetorial, uma vez calculados os vetores ortonormais v1, . . . , vj−1 correspondentes, os escalares<br />

hij = 〈uj, vi〉, i = 1, . . . , j −1 são todos calculados simultaneamente para produzir o próximo vetor ortogonal<br />

unitário vj<br />

j−1<br />

wj = uj − hijvi, (5.14)<br />

i=1<br />

vj = wj<br />

. (5.15)<br />

wj


Rodney Josué Biezuner 80<br />

No método modificado, assim que o primeiro vetor ortogonal v1 = u1 é obtido, todos os vetores u2, . . . , um<br />

são atualizados através do escalar h1i = 〈ui, v1〉:<br />

v 1 i = ui − h1iv1, i = 2, . . . , m.<br />

Assim, os vetores v1 2, . . . , v1 m já são ortogonais a v1. Em particular, podemos tomar v2 = v1 2/ v1 <br />

<br />

2 . Uma<br />

2<br />

:<br />

vez obtido v2, todos os vetores v1 3, . . . , v1 m são atualizados através dos escalares h2i = v1 i , v2<br />

v 2 i = v 1 i − h2iv2, i = 3, . . . , m.<br />

Assim, os vetores v2 3, . . . , v2 m são ortogonais a v1 e v2. Em particular, tomamos v3 = v2 3/ v2 <br />

<br />

3 e continuamos o<br />

processo até o fim. Em geral, no passo j, uma vez obtido o vetor unitário vj, ortogonal aos vetores ortonormais<br />

v1, . . . , vj−1, os vetores v j−1<br />

j+1 , . . . , vj−1 m que já eram ortogonais aos vetores v1, . . . , vj−1, são atualizados através<br />

<br />

dos escalares hji =<br />

e tomamos<br />

v j−1<br />

j<br />

, vj<br />

para produzir vetores v j<br />

j+1 , . . . , vj m ortogonais a v1, . . . , vj−1, vj:<br />

v j<br />

i<br />

= vj−1<br />

i − hjivj, i = j + 1, . . . , m, (5.16)<br />

vj+1 = vj j+1<br />

<br />

<br />

v j<br />

<br />

<br />

. (5.17)<br />

j+1<br />

.<br />

Em aritmética exata, os algoritmos de Gram-Schmidt e de Gram-Schmidt modificado são equivalentes;<br />

além disso, eles têm o mesmo custo computacional (2m2n flops) e de armazenamento ((m + 1) n). Para<br />

entender porque o MGS é mais estável, observe que os dois métodos são idênticos no cálculo de v1 e v2. A<br />

primeira diferença surge no cálculo de v3. No método de Gram-Schmidt clássico (GS) temos<br />

com<br />

w GS<br />

3 = v3 − h13v1 − h23v2<br />

h13 = 〈u3, v1〉 e h23 = 〈u3, v2〉 .<br />

O termo h23v2 é a componente de u3 na direção de v2. Quando este componente é removido de u3, obtemos<br />

um vetor ortogonal a v2, desde que o escalar h23 seja calculado com exatidão. No método MGS primeiro<br />

calculamos<br />

v 1 3 = u3 − h13v1<br />

e depois<br />

com<br />

Daí,<br />

w MGS<br />

3<br />

v 2 3 = v 1 3 − h23v2,<br />

h13 = 〈u3, v1〉 = h13 e h23 = v 1 <br />

3, v2 .<br />

= v 2 3 = u3 − h13v1 − h23v2 = u3 − h13v1 − h23v2<br />

Em princípio, u3 e v 1 3 = u3 − h13v1 têm as mesmas componentes na direção de v2, já que v1 é ortogonal<br />

a v2, e não faria diferença usar h23 ou h23. Na prática, os vetores v1 e v2 não são exatamente ortogonais,<br />

por causa de erros de arredondamento, portanto o termo h13v1 tem uma pequena componente na direção de<br />

v2. Além disso, erros de arredondamento também ocorrem na subtração de h13v1 de u3, portanto este vetor<br />

diferença também tem uma componente na direção de v2. O método de Gram-Schmidt clássico ignora estes<br />

erros, enquanto que o método modificado, trabalhando com o vetor v 1 3 ao invés de u3, leva estes erros em<br />

conta e os corrige no cálculo de h23.


Rodney Josué Biezuner 81<br />

Para obter um algoritmo computacionalmente implementável para o MGS, observe que enquanto que no<br />

método de Gram-Schmidt clássico, uma vez obtidos os vetores ortonormais v1, . . . , vj−1 obtemos o próximo<br />

vetor ortogonal unitário vj fazendo<br />

wj = uj −<br />

vj = wj<br />

wj ,<br />

no método de Gram-Schmidt modificado fazemos<br />

v j−2<br />

j<br />

v j−1<br />

j<br />

j<br />

projvi uj,<br />

i=1<br />

v 1 j = uj − proj v1 uj,<br />

v 2 j = v 1 j − proj v2 v1 j ,<br />

v 3 j = v 2 j − proj v3 v 2 j ,<br />

.<br />

. (5.18)<br />

= vj−3 j<br />

= vj−2 j<br />

vj = vj−1 j<br />

<br />

<br />

v j−1<br />

<br />

<br />

.<br />

<br />

j<br />

− projvj−2 vj−3 j ,<br />

− projvj−1 vj−2 j ,<br />

Usando o MGS, o algoritmo de Arnoldi tem o seguinte aspecto. Obtém-se o primeiro vetor unitário<br />

através da normalização do vetor v:<br />

v1 = v<br />

v .<br />

Em seguida, calcula-se o vetor Av1 e ortogonaliza-se este vetor com relação ao vetor v1:<br />

v 1 2 = Av1 − proj v1 Av1 = Av1 − 〈Av1, v1〉 v1,<br />

v2 = v1 2<br />

v 1 2 .<br />

Como já observado anteriormente, até aqui o MGS é idêntico ao método de Gram-Schmidt clássico. Tendo<br />

sido obtido o vetor v2, calcula-se Av2 e ortogonaliza-se este vetor primeiro com relação ao vetor v1 e depois<br />

o vetor resultante é ortogonalizado com relação ao vetor v2:<br />

v 1 3 = Av2 − projv1 Av2 = Av2 − 〈Av2, v1〉 v1,<br />

v 2 3 = v 1 3 − projv2 v 1 3 = v 1 3 − v 1 <br />

3, v2 v2,<br />

v3 = v2 3<br />

v 2 3 .<br />

No passo geral, tendo sido obtido o vetor vj no passo anterior, calcula-se Avj e ortogonaliza-se este vetor<br />

com relação ao primeiro vetor v1; em seguida o vetor resultante é ortogonalizado com relação ao vetor v2, e


Rodney Josué Biezuner 82<br />

assim por diante, até que o vetor resultante do passo anterior seja ortogonalizado com relação ao vetor vj:<br />

v 1 j = Avj − projv1 Avj = Avj − 〈Avj, v1〉 v1,<br />

<br />

v2,<br />

v j−1<br />

j<br />

v 2 j = v 1 j − proj v2 v1 j = v 1 j − v 1 j , v2<br />

.<br />

= vj−2 j − projvj−1 vj−2 j<br />

v j<br />

j = vj−1 j − projvj vj−1 j<br />

vj+1 = vj j<br />

<br />

<br />

v j<br />

<br />

<br />

.<br />

<br />

j<br />

= vj−2 j<br />

= vj−1 j −<br />

Podemos resumir este procedimento no seguinte algoritmo:<br />

−<br />

<br />

<br />

v j−2<br />

j<br />

v j−1<br />

j<br />

Algoritmo de Arnoldi MGS<br />

Atribua v;<br />

v1 ← v/ v2 ;<br />

Para ⎡ j = 1, . . . , m faça<br />

Calcule wj = Avj;<br />

⎢ Para<br />

<br />

i = 1, . . . , j faça<br />

⎢ hij ⎢ ← 〈wj, vi〉 ;<br />

⎢ wj ⎢ ← wj − hijvi<br />

⎢ fim do laço<br />

⎢ hj+1,j ⎢ = wj2 ;<br />

⎣ Se hj+1,j = 0 então pare;<br />

vj+1 ← wj/hj+1,j;<br />

fim do laço<br />

, vj<br />

<br />

vj−1, (5.19)<br />

<br />

vj,<br />

Embora o MGS seja mais estável, em situações onde os erros de cancelamento podem ser muito severos<br />

nos passos de ortogonalização é necessário considerar métodos ainda mais estáveis.<br />

, vj−1<br />

5.4.2 Método de Gram-Schmidt Modificado com Reortogonalização (MGSR)<br />

que deve<br />

ser<br />

<br />

ortogonal aos vetores w1, . . . , wj−1. Isso pode ser verificado diretamente, calculando os produtos internos<br />

v (j−1)<br />

<br />

j , wi e verificando se eles são próximos de 0 dentro de uma margem de tolerância pre-estabelecida. Se<br />

temos que nos dar a este trabalho, é melhor aproveitar os cálculos destes produtos internos e fazer logo uma<br />

segunda ortogonalização. Assim no primeiro loop do algoritmo MGS anterior acrescentamos um segundo<br />

loop: ⎡<br />

Calcule wj = Avj;<br />

⎢ Para<br />

<br />

i = 1, . . . , j faça<br />

⎢ hij ⎢ ← 〈wj, vi〉 ;<br />

⎢ wj ⎢ ← wj − hijvi<br />

⎢ Para ⎡ i = 1, . . . , j faça<br />

⎢ γ ← 〈wj, vi〉 ;<br />

⎢ ⎣ wj ⎢ ← wj − γvi;<br />

⎢ hij ⎢ ← hij + γ;<br />

⎢ fim do laço<br />

⎢ hj+1,j ⎢ = wj2 ;<br />

⎣ Se hj+1,j = 0 então pare;<br />

vj+1 ← wj/hj+1,j;<br />

Uma melhoria simples é recorrer à ortogonalização dupla. Ou seja, no passo j obtemos o vetor v (j−1)<br />

j


Rodney Josué Biezuner 83<br />

Ortogonalizações adicionais são supérfluas: duas ortogonalizações são suficientes para fazer o vetor wj ortogonal<br />

aos vetores w1, . . . , wj−1 na precisão de máquina (veja [Watkins], p. 233, ou [Saad], p. 156).<br />

GS MGS MGSR<br />

Flops 2m 2 n 2m 2 n 4m 2 n<br />

Armazenagem (m + 1) n (m + 1) n (m + 1) n<br />

5.5 Método de Arnoldi para Sistemas <strong>Linear</strong>es<br />

Dado um chute inicial x0 para a solução do sistema linear Ax = b, o método de Arnoldi para sistemas<br />

lineares é um método de projeção ortogonal em que<br />

0<br />

K = L = Km A, r = r 0 , Ar 0 , A 2 r 0 , . . . , A m−1 r 0<br />

em que r 0 = b−Ax 0 . Portanto, o método busca uma solução aproximada x m ∈ x 0 +Km impondo a condição<br />

de Galerkin<br />

r m = b − Ax m ⊥ Km.<br />

De acordo com o capítulo anterior, se Vm = [v1 · · · vm] é uma matriz cujas colunas formam uma base<br />

ortonormal para Km, obtidas através do algoritmo de Arnoldi, temos<br />

com<br />

x m = x 0 + Vmy m<br />

y m = V T −1 T<br />

m AVm Vm r 0 = H −1<br />

m V T m r 0 = H −1<br />

m V T <br />

r m<br />

0 <br />

v1 = r 0 H −1<br />

m V T m (v1)<br />

= r 0 H −1<br />

m (e1) .<br />

Baseados nestas observações, temos então o seguinte método de Arnoldi para sistemas lineares, chamado<br />

método da ortogonalização completa (ou FOM de full orthogonalization method):<br />

Algoritmo de Arnoldi para Sistemas <strong>Linear</strong>es FOM<br />

Inicialize x 0 ;<br />

Calcule r 0 = b − Ax 0 ;<br />

Calcule β = r 0 2 ;<br />

v1 ← r 0 /β;<br />

Inicialize a matriz Hm = (hij) m×m = 0;<br />

Para ⎡ j = 1, . . . , m faça<br />

Calcule wj = Avj;<br />

⎢ Para i = 1, . . . , j faça<br />

⎢ hij ⎢ ← 〈wj, vi〉 ;<br />

⎢ wj ⎢ ← wj − hijvi<br />

⎢ fim do laço<br />

⎢ hj+1,j ⎢ = wj2 ;<br />

⎣ Se hj+1,j = 0 tome m := j e saia do laço;<br />

vj+1 ← wj/hj+1,j;<br />

fim do laço<br />

Calcule ym = βH −1<br />

m (e1) ; //não é necessário encontrar H−1 m<br />

Calcule xm = x0 + Vmym .<br />

Este algoritmo pode ser também obtido diretamente. A condição de Galerkin r m ⊥ Km<br />

A, r 0 é equivalente<br />

a<br />

V T m (b − Ax m ) = 0


Rodney Josué Biezuner 84<br />

ou<br />

V T m Ax m = V T m b<br />

Escolhendo o chute inicial x 0 = 0 para simplificar, temos que b = r 0 = r 0 v1, donde<br />

V T m Ax m = r 0 V T m v1 = r 0 e1.<br />

Como xm <br />

0 ∈ Km A, r , podemos escrever xm = Vmym para algum vetor ym ∈ Rm . Logo<br />

V T m AVmy m = r 0 e1,<br />

<br />

0 que pode ser interpretado como o sistema Ax = b projetado no subespaço Km A, r . Usando o fato que<br />

V T m AVm = Hm, segue que<br />

H m y m = 0<br />

r e1. (5.20)<br />

Resolvendo este sistema obtemos y m e daí a aproximação<br />

x m = Vmy m . (5.21)<br />

Como em geral m ≪ n, este sistema é bem mais fácil de resolver que o sistema original, possibilitando<br />

o uso de métodos diretos. De fato, embora a matriz de Hessenberg seja uma matriz densa, como ela é<br />

quase triangular uma decomposição QR passa a ser competitiva com a decomposição LU e é indicada (para<br />

matrizes gerais, o custo da decomposição LU é a metade do custo da decomposição QR). Maiores detalhes<br />

serão fornecidos na próxima seção.<br />

O algoritmo depende do parâmetro m que em geral deve ser selecionado dinamicamente. Em geral, m é<br />

progressivamente aumentado até que o resíduo r m é menor que alguma tolerância previamente estabelecida.<br />

Ao invés de calcular o resíduo diretamente, podemos obter a norma do resíduo de maneira menos custosa<br />

através do seguinte resultado:<br />

5.8 Proposição. O resíduo calculado através do método de Arnoldi FOM satisfaz<br />

logo<br />

Em particular, os resíduos são ortogonais.<br />

Prova: Temos, pela Proposição 5.7,<br />

<br />

r m = −hm+1,m 〈em, y m 〉 v m+1 ,<br />

r m <br />

2 = hm+1,m e T my m (5.22)<br />

r m = b − Ax m = b − A x 0 + Vmy m<br />

= r 0 − AVmy m<br />

= r 0 v1 − VmHm + wme T m<br />

y m<br />

= r 0 v1 − VmHmy m − wme T m<br />

m y<br />

= r 0 <br />

v1 − Vm r 0 e1 − hm+1,mv m+1 e T my m<br />

= −hm+1,m 〈em, y m 〉 v m+1 .


Rodney Josué Biezuner 85<br />

5.6 Decomposição QR via MGS<br />

Lembramos que uma decomposição QR de uma matriz A é uma fatorização<br />

A = QR (5.23)<br />

onde Q é uma matriz ortogonal (no caso real, unitária no caso complexo) e R é uma matriz triangular superior.<br />

Usando esta decomposição, podemos resolver o sistema linear Ax = b da seguinte maneira. Multiplicando<br />

ambos os lados da equação por Q T obtemos<br />

Q T Ax = Q T b,<br />

de modo que o sistema original é equivalente ao sistema<br />

Rx = Q T b (5.24)<br />

cuja matriz de coeficientes é uma matriz triangular superior, logo pode ser resolvido por substituição.<br />

Para calcular a decomposição QR de uma matriz, um dos métodos que podem ser usados é o próprio<br />

MGS. Outros métodos serão vistos no capítulo sobre autovalores. Para facilitar a compreensão, veremos<br />

primeiro como fazer a decomposição QR usando o método de Gram-Schmidt modificado. No que se segue<br />

assumiremos que A é uma matriz n×m cujas m colunas são linearmente independentes. Escrevendo a matriz<br />

A em colunas<br />

A = <br />

A1 A2 · · · Am , (5.25)<br />

aplicamos o método de Gram-Schmidt às colunas de A, obtendo<br />

Resolvendo em termos de Aj, podemos escrever<br />

com<br />

Assim, tomando<br />

e<br />

j−1<br />

wj = Aj − 〈Aj, vi〉 vi, (5.26)<br />

i=1<br />

vj = wj<br />

. (5.27)<br />

wj<br />

j−1<br />

Aj = rijvi + wj vj =<br />

⎡<br />

⎢<br />

R = ⎢<br />

⎣<br />

i=1<br />

j<br />

i=1<br />

rijvi<br />

(5.28)<br />

rij = 〈Aj, vi〉 , (5.29)<br />

rjj = wj . (5.30)<br />

Q = v1 v2 · · · vm<br />

r11 r12 r13 . . . r1m<br />

0 r22 r23 . . . r2m<br />

0<br />

0<br />

0<br />

0<br />

r33<br />

0<br />

. . .<br />

. ..<br />

r3m<br />

.<br />

. . .<br />

. .. . .. .<br />

0 0 0 . . . 0 rmm<br />

<br />

⎤<br />

⎥<br />

⎦<br />

(5.31)<br />

(5.32)


Rodney Josué Biezuner 86<br />

segue que<br />

A1 A2 · · · Am<br />

<br />

= v1 v2 · · · vm<br />

⎡<br />

r11<br />

⎢<br />

0<br />

⎢<br />

⎢<br />

0<br />

⎢ 0<br />

⎢ .<br />

⎣ .<br />

r12<br />

r22<br />

0<br />

0<br />

.<br />

.<br />

r13<br />

r23<br />

r33<br />

0<br />

.<br />

.<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

. .. . ..<br />

r1m<br />

r2m<br />

r3m<br />

.<br />

.<br />

.<br />

⎤<br />

⎥ ,<br />

⎥<br />

⎦<br />

(5.33)<br />

0 0 0 . . . 0 rmm<br />

ou seja, A = QR.<br />

Devido aos problemas da instabilidade do método de Gram-Schmidt clássico, é melhor usar o método de<br />

Gram-Schmidt modificado para fazer a decomposição QR de uma matriz. Resolvendo o j-ésimo passo do<br />

MGS<br />

em termos de Aj, denotando<br />

segue que<br />

onde definimos<br />

v j−2<br />

j<br />

v j−1<br />

j<br />

v 1 j = Aj − 〈Aj, v1〉 v1,<br />

v 2 j = v 1 j − v 1 j , v2<br />

v 3 j = v 2 j − v 2 j , v3<br />

.<br />

= vj−3 j<br />

−<br />

<br />

v2,<br />

v3,<br />

v j−3<br />

j<br />

= vj−2 j −<br />

<br />

v j−2<br />

j<br />

vj = vj−1 j<br />

<br />

<br />

v j−1<br />

<br />

<br />

,<br />

<br />

Aj = v 1 j + 〈Aj, v1〉 v1<br />

= v 2 j + v 1 j , v2<br />

= v 3 j + v 2 <br />

j , v3 v3 + v 1 j , v2<br />

. . .<br />

= v j−1<br />

j<br />

+<br />

j−1<br />

i=1<br />

<br />

<br />

= v j−1<br />

<br />

j−1<br />

vj +<br />

=<br />

j<br />

j<br />

i=1<br />

rijvi,<br />

j<br />

<br />

, vj−2 vj−2,<br />

<br />

, vj−1 vj−1,<br />

v 0 j = Aj, (5.34)<br />

<br />

v2 + 〈Aj, v1〉 v1<br />

<br />

v2 + 〈Aj, v1〉 v1<br />

i−1<br />

vj , vi vi<br />

i=1<br />

i−1<br />

vj , vi vi<br />

(5.35)<br />

rij = v i−1 <br />

j , vi se i = 1, . . . , j − 1, (5.36)<br />

<br />

<br />

rjj = v j−1<br />

<br />

<br />

. (5.37)<br />

Assim, se Q e R são definidas como em (5.31) e (5.32), novamente nós temos A = QR.<br />

j


Rodney Josué Biezuner 87<br />

5.7 Algoritmo de Lanczos e Método do Gradiente Conjugado<br />

O algoritmo de Lanczos pode ser visto como uma simplificação do método de Arnoldi para matrizes simétricas.<br />

Quando a matriz A é simétrica, a matriz de Hessenberg Hm torna-se uma matriz tridiagonal simétrica, pois<br />

Hm = V T m AVm e uma matriz de Hessenberg simétrica é necessariamente tridiagonal. Isso leva a uma<br />

recorrência de três termos no processo de Arnoldi e a recorrências curtas para algoritmos de solução tais<br />

como o FOM.<br />

A notação padrão para descrever o algoritmo de Lanczos é obtida tomando<br />

αj = hjj,<br />

βj = hj−1,j<br />

de modo que a matriz de Hessenberg Hm resultante tem a forma<br />

⎡<br />

⎢<br />

Tm = ⎢<br />

⎣<br />

α1 β2<br />

β2 α2 β3<br />

. .. . ..<br />

. ..<br />

βm−1 αm−1 βm<br />

(na notação padrão do algoritmo de Lanczos, a matriz de Hessenberg Hm é denotada por Tm, para enfatizar<br />

a sua tridiagonalidade). Isto leva à seguinte variação MGS do método de Arnoldi (FOM):<br />

βm<br />

Algoritmo de Lanczos com MGS<br />

Inicialize x0 ;<br />

Calcule r0 = b − Ax0 ;<br />

Calcule β = r0 ;<br />

2<br />

v1 ← r0 /β;<br />

Inicialize β1 = 0, v0 ≡ 0;<br />

Para ⎡ j = 1, . . . , m faça<br />

wj ← Avj − βjvj−1;<br />

⎢ αj ⎢ ← 〈wj, vi〉 ;<br />

⎢ wj ⎢ ← wj − αjvj;<br />

⎢ βj+1 ⎢ ← wj ;<br />

⎣ Se βj+1 = 0 então pare;<br />

vj+1 ← wj/ βj+1;<br />

fim do laço<br />

Atribua a matriz Tm = tridiag (βi, αi, βi+1);<br />

Atribua a matriz Vm = [v1 · · · vm] ;<br />

αm<br />

Calcule ym = T −1<br />

m (βe1) ; //não é necessário encontrar T −1<br />

m<br />

Calcule xm = x0 + Vmym .<br />

Este algoritmo pode ser consideravelmente simplificado, através da obtenção de uma fórmula de recorrência<br />

de três termos, levando ao método do gradiente conjugado. Primeiro, fazemos uma decomposição LU da<br />

matriz tridiagonal Tm = LmUm sem pivôs:<br />

⎡<br />

1<br />

⎢ µ2 ⎢ 1<br />

⎢<br />

Tm = µ3 ⎢ 1<br />

⎢<br />

⎣<br />

. ..<br />

Lm<br />

⎤<br />

⎡<br />

. ..<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎦ ⎢<br />

⎣<br />

µm 1<br />

η1 β2<br />

η2 β3<br />

η3<br />

Um<br />

⎤<br />

⎥<br />

⎦<br />

. ..<br />

. .. βm<br />

ηm<br />

⎤<br />

⎥<br />

⎦<br />

(5.38)


Rodney Josué Biezuner 88<br />

onde os coeficientes das matrizes bidiagonais Lm e Um podem ser obtidas através da seguinte fórmula de<br />

recorrência:<br />

isto é,<br />

η1 = α1,<br />

µ2 = β2η −1<br />

1 ,<br />

η2 = α2 − µ2β2,<br />

µ3 = β3η −1<br />

2 ,<br />

.<br />

µm = βmη −1<br />

m−1 ,<br />

ηm = αm − µmβm,<br />

µj = βjη −1<br />

j−1 , (5.39)<br />

ηj = αj − µjβj. (5.40)<br />

(Observe que ηj = 0 para todo j porque Tm é simétrica, positiva definida.) A solução aproximada é dada<br />

então por<br />

Definindo<br />

segue que<br />

x m = x 0 + VmU −1<br />

m L −1<br />

m (βe1) . (5.41)<br />

Pm = VmU −1<br />

m , (5.42)<br />

z m = L −1<br />

m (βe1) , (5.43)<br />

x m = x 0 + Pmz m . (5.44)<br />

Por causa da estrutura triangular superior bidiagonal de Um, Pm pode ser atualizada facilmente. De fato,<br />

escreva Pm em colunas:<br />

Pm = p1 p2 · · · pm<br />

<br />

.<br />

Da relação PmUm = Vm segue que<br />

donde<br />

βmpm−1 + ηmpm = vm,<br />

pm = η −1<br />

m (vm − βmpm−1) . (5.45)<br />

Além disso, por causa da estrutura triangular inferior bidiagonal com diagonal unitária de Um, da relação<br />

Lmz m = βe1 segue que<br />

µmz m j−1 + z m j = 0<br />

para j > 1, e portanto podemos escrever (lembrando que zm é um vetor de Rm assim como ym )<br />

z m <br />

m−1 z<br />

=<br />

ζm <br />

com<br />

Assim,<br />

(5.46)<br />

ζ m = −µmζ m−1 . (5.47)<br />

x m = x 0 + Pm−1 pm<br />

z m−1<br />

ζ m<br />

= x 0 + Pm−1z m−1 + ζ m pm,


Rodney Josué Biezuner 89<br />

donde<br />

x m = x m−1 + ζ m pm. (5.48)<br />

Isso dá a seguinte versão direta para o algoritmo de Lanczos para sistemas lineares:<br />

Algoritmo de Lanczos Direto<br />

Inicialize x 0 ;<br />

Calcule r 0 = b − Ax 0 ;<br />

Calcule ζ 1 = β = r 0 2 ;<br />

v1 ← r 0 /β;<br />

Inicialize β1 = µ1 ≡ 0;<br />

Inicialize p0 ≡ 0;<br />

Para<br />

⎡<br />

m = 1, 2, . . . , até limite de tolerância faça<br />

⎢<br />

⎣<br />

w ← Avm − βmvm−1;<br />

αm ← 〈w, vm〉 ;<br />

Se m > 1 então<br />

µm ← βm/ηm−1;<br />

ζ m ← −µmζ m−1 ;<br />

ηm ← αm − µmβm;<br />

pm ← (vm − βmpm−1) /ηm;<br />

x m ← x m−1 + ζ m pm;<br />

w ← w − αmvm;<br />

βm+1 ← w ;<br />

Se βm+1 = 0 então pare;<br />

vm+1 ← w/ βm+1;<br />

fim do laço<br />

Este algoritmo ainda pode ser consideravelmente simplificado. O resultado, uma fórmula tripla de<br />

recorrência, extremamente simples e que não envolve o cálculo da base ortonormal {v1, . . . , vm}, é o chamado<br />

método do gradiente conjugado (CG). Para obtê-lo, observamos primeiramente que os vetores pm são<br />

A-conjugados (isto é, A-ortogonais):<br />

5.9 Proposição.<br />

para todos i = j.<br />

Prova: Para provar isso, basta mostrar que<br />

é uma matriz diagonal. Isso segue de<br />

〈pi, pj〉 A = 〈Api, pj〉 = 0 (5.49)<br />

P T mAPm<br />

P T mAPm = U −T<br />

m V T m AVmU −1<br />

m<br />

= U −T<br />

m TmU −1<br />

m<br />

= U −T<br />

m Lm<br />

e do fato que U −T<br />

m Lm é uma matriz triangular inferior (a inversa de uma matriz triangular superior é uma<br />

matriz triangular superior e o produto de duas matrizes triangulares inferiores é uma matriz triangular<br />

inferior) que é simétrica. <br />

Usando a notação padrão do método do gradiente conjugado (ou seja, agora os escalares αm, βm terão<br />

um significado completamente diferente do anterior), reescrevemos (5.48) na forma<br />

x m+1 = x m + αmp m , (5.50)


Rodney Josué Biezuner 90<br />

de modo que os resíduos satisfazem<br />

r m+1 = r m − αmAp m . (5.51)<br />

Como os resíduos são ortogonais (Proposição 5.8), segue que 〈r m − αmAp m , r m 〉 = 0, donde<br />

Reescrevemos também (5.45) na forma<br />

αm = 〈rm , rm 〉<br />

〈Apm , rm . (5.52)<br />

〉<br />

p m+1 = r m+1 + βmp m ; (5.53)<br />

para isso usamos a Proposição 5.8 e fazemos uma mudança de escala nos vetores p m (isso não altera a<br />

validade de (5.50), em que assumimos os vetores p m tomados já com a mudança de escala; assim os vetores<br />

p m do algoritmo do gradiente conjugado considerado aqui também são diferentes dos vetores considerados<br />

acima no algoritmo de Lanczos, sendo múltiplos adequados destes). Daí, como<br />

r m+1 + βmp m , Ap m = p m+1 , Ap m = 0,<br />

segue que<br />

Observe porém que<br />

enquanto que de (5.51) temos<br />

βm = −<br />

Ap m , r m+1 <br />

〈Ap m , p m 〉 .<br />

〈Ap m , r m 〉 = Ap m , p m − βmp m−1 = 〈Ap m , p m 〉 , (5.54)<br />

Ap m = −α −1 m+1 m<br />

m r − r .<br />

Portanto, usando a ortogonalidade dos resíduos, podemos escrever<br />

βm = −<br />

Ap m , r m+1 <br />

〈Ap m , r m 〉 =<br />

r m+1 , r m+1 <br />

〈r m , r m 〉<br />

Além disso, usando (5.54) também podemos reescrever (5.52) na forma<br />

. (5.55)<br />

αm = 〈rm , rm 〉<br />

〈Apm , pm . (5.56)<br />

〉<br />

Estas últimas fórmulas para αm e βm são muito mais convenientes para o algoritmo do gradiente conjugado:<br />

Algoritmo do Gradiente Conjugado<br />

Inicialize x0 ;<br />

Atribua b;<br />

r ← b − Ax0 ;<br />

p ← r;<br />

current 〈r, r〉 ← r0 , r0 ;<br />

Atribua o limite de tolerância e o número máximo de iterações;<br />

N = 0; //número de iterações.<br />

Faça até que o limite de tolerância seja atingido<br />

ou<br />

⎡<br />

até o número máximo de iterações<br />

Calcule Ap;<br />

⎢ α ← current 〈r, r〉 / 〈p, Ap〉 ;<br />

⎢ x ← x + αp;<br />

⎢ r ← r − αAp;<br />

⎢ β ← 〈r, r〉 /current 〈r, r〉 ;<br />

⎢ p ← r + βp;<br />

⎣ current 〈r, r〉 ← 〈r, r〉 ;<br />

N + +;<br />

fim do laço


Rodney Josué Biezuner 91<br />

5.8 Método do Gradiente Conjugado como um Método de Descida<br />

O método do gradiente conjugado é uma das mais conhecidas e usadas técnicas iterativas para resolver sistemas<br />

lineares envolvendo matrizes simétricas esparsas, dada sua eficiência e simplicidade de implementação.<br />

Como vimos na seção anterior, ele é matematicamente equivalente ao FOM. No que se segue, veremos uma<br />

descrição alternativa do método CG, em que ele é visto como uma modificação do método de descida mais<br />

acentuada (método do gradiente).<br />

Os métodos iterativos lineares básicos e os métodos de descida que vimos anteriormente são limitados<br />

pela sua falta de memória, no sentido de que apenas informação sobre x k é usada para obter x k+1 . Toda a<br />

informação sobre as iterações anteriores é perdida. O método do gradiente conjugado é uma variação simples<br />

do método da descida mais acentuada que funciona melhor porque a informação obtida através das iterações<br />

anteriores é utilizada.<br />

Para entender como isso funciona, observe que depois de m iterações x k+1 = x k + αkp k de um método<br />

de descida temos<br />

x m = x 0 + α0p 0 + α1p 1 + . . . + αm−1p m−1 ,<br />

de modo que x m está no subespaço afim gerado pelo chute inicial x 0 e pelos vetores p 0 , p 1 , . . . , p m−1 .<br />

Enquanto o método da descida mais acentuada minimiza o funcional quadrático de energia f associado ao<br />

sistema Ax = b apenas ao longo das m retas x k +αkp k , cuja união constitui apenas um pequeno subconjunto<br />

do subespaço afim m-dimensional x 0 + p 0 , p 1 , . . . , p m−1 , o método do gradiente conjugado minimiza f sobre<br />

todo o subespaço afim x 0 + p 0 , p 1 , . . . , p m−1 .<br />

Para definir as direções de busca do método do gradiente conjugado (que é, antes de mais nada, um método<br />

de descida), começamos dando uma prova mais simples da Proposição 4.4 que não utiliza a linguagem de<br />

métodos de projeção:<br />

5.10 Teorema. Seja A ∈ Mn (R) uma matriz simétrica positiva definida e b ∈ R n . Então, o funcional<br />

quadrático de energia associado ao sistema Ax = b pode ser escrito na forma<br />

f (y) = 1<br />

2 e2<br />

1<br />

A −<br />

2 x2 A . (5.57)<br />

onde e = x − y é o erro algébrico. Em particular, minimizar o funcional quadrático f é equivalente a<br />

minimizar a A-norma do erro.<br />

Prova: Pela regra do paralelogramo, temos<br />

donde<br />

ou<br />

Logo,<br />

x + y 2<br />

A + x − y2 A = 2 x2 A + 2 y2 A ,<br />

2 y 2<br />

A = x − y2 A + x2 A + 2 〈y, x〉 A + y2 A − 2 x2 A<br />

= x − y 2<br />

A + 2 〈y, x〉 A − x2 A + y2 A ,<br />

y 2<br />

A − 2 〈y, x〉 A = x − y2 A − x2 A .<br />

<br />

Em um método de descida, depois de m iterações temos:<br />

f (y) = 1<br />

2 y2 A − 〈y, x〉 1<br />

A =<br />

2 e2<br />

1<br />

A −<br />

2 x2 A . (5.58)<br />

e m = x − x m<br />

= x − x 0 − α0p 0 + α1p 1 + . . . + αm−1p m−1<br />

= e 0 m−1<br />

−<br />

<br />

αip i .<br />

i=0


Rodney Josué Biezuner 92<br />

Minimizar e m A é portanto equivalente a minimizar<br />

<br />

<br />

<br />

<br />

e0 m−1 <br />

− αip<br />

i=0<br />

i<br />

<br />

<br />

<br />

,<br />

<br />

A<br />

o que por sua vez é equivalente a encontrar a melhor aproximação do vetor e 0 no subespaço Wm =<br />

p 0 , p 1 , . . . , p m−1 . Esta é dada pelo lema da melhor aproximação, que enunciamos em detalhe por co-<br />

modidade:<br />

5.11 Proposição. (Lema da Melhor Aproximação) Sejam A ∈ Mn (R) uma matriz simétrica positiva<br />

definida, v ∈ R n e W um subsespaço de R n . Então existe um único w ∈ W tal que<br />

v − w A = min<br />

z∈W v − z A .<br />

O vetor w é caracterizado pela condição v − w ⊥A W .<br />

Segue deste resultado que emA é minimizado quando escolhemos p = m−1 <br />

αip<br />

i=0<br />

i ∈ Wm tal que em = e0 − p<br />

satisfaz<br />

e m ⊥A p i para i = 1, . . . , m − 1. (5.59)<br />

Nosso objetivo então é desenvolver um método em que o erro a cada passo é conjugado com todas as direções<br />

de busca anteriores. Como fazer isso? Pelo Lema 4.11, cujo enunciado repetimos a seguir como Proposição<br />

5.12 para facilitar a consulta, sabemos que em qualquer método de descida em que a busca na reta é exata<br />

satisfaz automaticamente e m ⊥A p m−1 , isto é, (5.59) é válido para a última iteração (o erro da iteração<br />

presente é A-ortogonal à direção de busca da iteração anterior):<br />

5.12 Proposição. Seja x m+1 = x m + αmp m obtido através de uma busca na reta exata. Então<br />

e<br />

r m+1 ⊥ p m<br />

e m+1 ⊥A p m .<br />

Fazendo uma busca exata na reta x 0 + tp 0 obtemos o escalar α0 e<br />

Pela Proposição 5.12 segue que e 1 ⊥A p 0 . Como<br />

x 1 = x 0 + α0p 0<br />

e 2 = x − x 2 = x − x 1 − α1p 1 = e 1 − α1p 1 ,<br />

para que tenhamos e 2 ⊥A p 0 é necessário escolher p 1 conjugado a p 0 . Se isso foi feito, fazendo em seguida<br />

uma busca exata na reta x 1 + tp 1 obtemos o escalar α1,<br />

x 1 = x 0 + α0p 0<br />

e, pela Proposição 5.12, e 2 ⊥A p 1 . No m-ésimo passo, como<br />

ou seja,<br />

e m = x − x m = x − x m−1 − αm−1p m−1<br />

e m = e m−1 − αm−1p m−1 , (5.60)<br />

para que o erro e m seja conjugado aos vetores p 0 , . . . , p m−2 basta escolher a direção de busca p m conjugada<br />

a p 0 , . . . , p m−1 ; para assegurar que e m também seja conjugado ao vetor p m−1 , basta fazer uma busca exata


Rodney Josué Biezuner 93<br />

na reta x m−1 + tp m−1 . Assim, uma condição necessária para obter (5.59) é escolher as direções de busca de<br />

tal forma que<br />

p i ⊥A p j para todos i = j. (5.61)<br />

Um método com estas características é chamado um método de direções conjugadas. Estes resultados<br />

são resumidos na proposição a seguir:<br />

5.13 Teorema. Se um método emprega direções de busca conjugadas e performa buscas na reta exatas,<br />

então<br />

e m ⊥A p i<br />

para i = 1, . . . , m − 1,<br />

para todo m. Conseqüentemente<br />

onde Wm = p 0 , p 1 , . . . , p m−1 .<br />

e m <br />

A = min 0<br />

e − pA ,<br />

p∈Wm<br />

Prova: A demonstração é por indução. Para m = 1, temos e 1 ⊥A p 0 pela Proposição 5.12 porque a busca<br />

na reta é exata. Em seguida, assuma e m ⊥A p i para i = 1, . . . , m − 1; queremos mostrar que e m+1 ⊥A p i<br />

para i = 1, . . . , m. Como<br />

e m+1 = e m − αmp m ,<br />

para i = 1, . . . , m − 1 temos<br />

e m+1 , p i <br />

A = e m − αmp m , p i<br />

A = e m , p i<br />

A<br />

m i<br />

− αm p , p <br />

= 0 − 0 = 0<br />

A<br />

porque as direções de busca são conjugadas. e m+1 ⊥A p m segue novamente da Proposição 5.12. <br />

Quando a direção inicial é dada pelo vetor gradiente de f, como na primeira iteração do método da descida<br />

mais acentuada, obtemos o método do gradiente conjugado. As direções subseqüentes são escolhidas através<br />

de A-ortogonalizar o resíduo (ou vetor gradiente de f, que é a direção de busca em cada iteração do método<br />

da descida mais acentuada) com todas as direções de busca anteriores, o que pode ser feito simplesmente<br />

utilizando-se o algoritmo de Gram-Schmidt que no método do gradiente conjugado produz o mesmo resultado<br />

que um método mais estável como o MGS, como veremos. Dado um chute inicial p 0 , a primeira direção é<br />

ou seja, a direção inicial é o primeiro resíduo:<br />

p 0 = −∇f x 0 = b − Ax 0 = r 0<br />

Depois de m passos com direções de busca conjugadas p 0 , . . . , p m , escolhemos<br />

p m+1 = r m+1 −<br />

onde os cmi são dados pelo algoritmo de Gram-Schmidt:<br />

cmi =<br />

p 0 = r 0 . (5.62)<br />

m<br />

i=0<br />

r m+1 , p i <br />

〈p i , p i 〉 A<br />

cmip i<br />

A<br />

(5.63)<br />

. (5.64)<br />

de forma que p m+1 ⊥A p i para todos i = 1, . . . , m. Felizmente, como veremos a seguir depois de algum<br />

trabalho preliminar (Corolário 5.17), cmi = 0 para todo i exceto i = m, o que torna necessário que apenas<br />

a direção de busca mais recente p m seja armazenada na memória do computador, o que garante que a<br />

implementação do gradiente conjugado é eficiente:<br />

p m+1 = r m+1 −<br />

r m+1 , p m <br />

A<br />

〈pm , pm p<br />

〉 A<br />

m = r m+1 −<br />

r m+1 , Ap m <br />

〈p m , Ap m 〉 pm<br />

(5.65)


Rodney Josué Biezuner 94<br />

ou, definindo<br />

temos que<br />

βm = −<br />

r m+1 , Ap m <br />

〈p m , Ap m 〉<br />

, (5.66)<br />

p m+1 = r m+1 + βmp m . (5.67)<br />

Esta é a modificação do método do gradiente conjugado em relação ao método da descida mais acentuada,<br />

no qual tomamos p m+1 = r m+1 .<br />

Podemos obter uma expressão mais simples para o escalar βm, em função apenas dos resíduos. Com<br />

efeito, temos m+1 m+1<br />

r , r = r m+1 , r m m+1 m<br />

− αm r , Ap m+1 m<br />

= −αm r , Ap <br />

porque os resíduos obtidos através do método do gradiente conjugado são mutualmente ortogonais (veja<br />

Corolário 5.16), logo<br />

Temos<br />

β = −<br />

r m+1 , Ap m <br />

porque p m−1 , r m = 0 pela Proposição 5.12, logo<br />

Portanto<br />

r m+1 , r m+1 <br />

〈pm , Apm 〉 =<br />

αm 〈pm , Apm 〉 .<br />

αm = 〈pm , rm 〉<br />

〈pm , Apm 〉 =<br />

<br />

m m−1 m r + βp , r <br />

〈pm , Apm =<br />

〉<br />

〈rm , rm 〉<br />

〈pm , Apm 〉 ,<br />

αm = 〈rm , rm 〉<br />

〈pm , Apm . (5.68)<br />

〉<br />

β =<br />

r m+1 , r m+1 <br />

〈r m , r m 〉<br />

. (5.69)<br />

Podemos obter um algoritmo ainda mais eficiente para o método do gradiente conjugado se observarmos que<br />

para calcular o resíduo r m+1 = b − Ax m+1 em cada iteração não é necessário calcular Ax m+1 explicitamente;<br />

de fato, como vimos na demonstração da Proposição 5.12, temos r m+1 = r m −αmAp m . Desta forma, obtemos<br />

o mesmo algoritmo do gradiente conjugado obtido na seção anterior a partir do algoritmo de Lanczos.<br />

5.8.1 Convergência do Método do Gradiente Conjugado em Aritmética Exata<br />

Vamos agora provar uma série de resultados com o objetivo principal de demonstrar o fato mencionado<br />

acima que cmi = 0 para todo i = 1, . . . , m − 1 e também que o método do gradiente conjugado converge em<br />

aritmética exata em precisas n iterações se a matriz A tem tamanho n.<br />

5.14 Teorema. Depois de j iterações do algoritmo do gradiente conjugado (com rm = 0 em cada iteração),<br />

temos 0 1 j−1<br />

p , p , . . . , p = r 0 , r 1 , . . . , r j−1 0<br />

= Kj A, r .<br />

Prova: A demonstração é por indução. O resultado é trivial para j = 0, pois p0 = r0 . Assuma o resultado<br />

válido para j − 1. Em primeiro lugar, mostraremos que<br />

0 1 j<br />

r , r , . . . , r 0<br />

⊂ Kj+1 A, r . (5.70)<br />

Em vista da hipótese de indução, basta mostrar que rj ∈ Kj+1<br />

rj−1 <br />

0 ∈ Kj A, r ⊂ Kj+1<br />

também por hipótese de indução, pj−1 <br />

0 ∈ Kj+1 A, r , logo<br />

Ap j−1 ∈ Kj<br />

A, r 0 . Como r j = r j−1 − αj−1Ap j−1 e<br />

A, r 0 por hipótese de indução, basta provar que Ap j−1 ∈ Kj+1<br />

0<br />

A, Ar = Ar 0 , A 2 r 0 , . . . , A j r 0 ⊂ r 0 , Ar 0 , A 2 r 0 , . . . , A j r 0 0<br />

= Kj+1 A, r .<br />

A, r 0 . Mas,


Rodney Josué Biezuner 95<br />

Em seguida, mostraremos que<br />

p 0 , p 1 , . . . , p j ⊂ r 0 , r 1 , . . . , r j . (5.71)<br />

Por hipótese de indução, basta provar que pj ∈ r0 , r1 , . . . , rj . Isso segue de (5.63) e da hipótese de indução.<br />

Até aqui provamos que<br />

0 1 j<br />

p , p , . . . , p ⊂ r 0 , r 1 , . . . , r j 0<br />

⊂ Kj+1 A, r . (5.72)<br />

Para provar que eles são iguais, basta mostrar que eles têm a mesma dimensão. Isso decorre de<br />

e<br />

dim r 0 , r 1 , . . . , r j j + 1,<br />

0<br />

dim Kj+1 A, r j + 1<br />

dim p 0 , p 1 , . . . , p j = j + 1,<br />

o último porque os vetores p 0 , p 1 , . . . , p j são vetores não-nulos A-ortogonais. <br />

5.15 Corolário. Depois de j iterações do algoritmo do gradiente conjugado, temos<br />

0<br />

A, r <br />

para todo j.<br />

e j ⊥A Kj<br />

Prova: Segue imediatamente do teorema anterior e do Teorema 5.13. <br />

5.16 Corolário. Depois de j iterações do algoritmo do gradiente conjugado, temos<br />

r j 0<br />

⊥ Kj A, r <br />

para todo j.<br />

Prova: Em vista do Teorema 5.14, basta provar que r j ⊥ p 0 , p 1 , . . . , p j−1 para todo j. Como Ae j+1 = r j+1 ,<br />

j+1 i<br />

r , p = Ae j+1 , p i = e j+1 , p i<br />

= 0 A<br />

para todo i = 1, . . . , j − 1, como vimos na demonstração do Teorema 5.13. <br />

5.17 Corolário. cmi = 0 para todo i = 1, . . . , m − 1.<br />

Prova: Temos que provar que r m+1 , p i <br />

A = r m+1 , Ap i = 0<br />

para todos i = 1, . . . , m − 1. Pelo Teorema 5.14, pi ∈ p0 , p1 , . . . , pi = r0 , Ar0 , . . . , Air <br />

0 = Ki+1 A, r ,<br />

logo<br />

e o resultado segue do corolário anterior. <br />

Ap i ∈ Ar 0 , A 2 r 0 , . . . , A i+1 r 0<br />

⊂ Ki+2 A, r 0<br />

⊂ Km+1 A, r <br />

5.18 Teorema. Seja A ∈ Mn (R) uma matriz simétrica positiva definida. Então o método do gradiente<br />

conjugado converge em n iterações.<br />

Prova: Se fizemos n − 1 iterações para obter x, pelo Corolário 5.16 os vetores r 0 , r 1 , . . . , r n−1 formam uma<br />

base ortogonal para R n . Depois de mais uma iteração, de acordo com este mesmo corolário o resíduo r n<br />

satisfaz r n ⊥ r 0 , r 1 , . . . , r n−1 = R n , logo r n = 0.


Rodney Josué Biezuner 96<br />

5.9 Velocidade de Convergência do Método do Gradiente Conjugado<br />

Na maioria das aplicações o método do gradiente conjugado converge ainda mais rápido do que as n iterações<br />

previstas pelo Teorema 5.18, se apenas uma boa aproximação é requerida. Para obter uma estimativa da<br />

velocidade de convergência do método do gradiente conjugado, precisamos desenvolver algumas ferramentas<br />

teóricas antes.<br />

5.9.1 Polinômios de Chebyshev<br />

Polinômios de Chebyshev são provavelmente os mais úteis polinômios na Teoria de Aproximação, a área<br />

que se ocupa em determinar como melhor aproximar funções através de funções mais simples (tais como<br />

polinômios). Os polinômios de Chebyshev do primeiro tipo surgiram inicialmente como soluções da equação<br />

de Chebyshev: 1 − x 2 y ′′ − xy ′ + n 2 y = 0<br />

5.19 Definição. O polinômio de Chebyshev do primeiro tipo de grau k é o polinômio de grau k Ck :<br />

[−1, 1] −→ R definido por<br />

Ck (t) = cos k cos −1 t .<br />

Que Ck é de fato um polinômio de grau k pode ser visto através da seguinte fórmula de recorrência:<br />

5.20 Proposição. Vale a seguinte fórmula de recorrência de três termos para os polinômios de Chebyshev<br />

C0 (t) = 1,<br />

C1 (t) = t,<br />

Ck+1 (t) = 2tCk (t) − Ck−1 (t) .<br />

(5.73)<br />

Em particular, Ck (t) é um polinômio real de grau k, Ck (t) é uma função par se k é par e uma função<br />

ímpar se k é ímpar.<br />

Prova: Usando a identidade trigonométrica<br />

segue que<br />

cos [(k + 1) θ] + cos [(k − 1) θ] = 2 cos θ cos kθ,<br />

Ck+1 (t) + Ck−1 (t) = cos [(k + 1) arccos t] + cos [(k − 1) arccos t]<br />

= 2 cos (arccos t) cos [k arccos t]<br />

= 2tCk (t) .<br />

<br />

A fórmula de recorrência da Proposição 5.20 permite estender naturalmente o domínio dos polinômios de<br />

Chebyshev à reta toda. Isso também pode ser feito estendendo a definição trigonométrica:<br />

−1<br />

cosh k cosh t se t 1,<br />

Ck (t) =<br />

(−1) k cosh k cosh −1 |t| <br />

(5.74)<br />

se t −1.<br />

De fato, usando a identidade trigonométrica hiperbólica<br />

cosh [(k + 1) θ] + cosh [(k − 1) θ] = 2 cosh θ cosh kθ,


Rodney Josué Biezuner 97<br />

vemos que vale a mesma fórmula de recorrência da Definição 5.19. O polinômio de Chebyshev Ck (t) possui<br />

k raízes simples, todas localizadas no intervalo [−1, 1] dadas por<br />

<br />

2j − 1<br />

tj = cos<br />

2k π<br />

<br />

, j = 1, . . . , k,<br />

como pode ser verificado diretamente da definição. Em particular, os polinômios de Chebyshev não se anulam<br />

fora deste intervalo. Observe também que |Ck (t)| 1 para t ∈ [−1, 1]. À título de informação, eles formam<br />

uma base ortogonal no espaço de funções apropriado no sentido que<br />

1<br />

dt<br />

Ck (t) Cl (t) √<br />

−1<br />

1 − t2 =<br />

⎧<br />

⎨ 0 se k = l,<br />

π se k = l = 0,<br />

⎩<br />

π/2 se k = l = 0.<br />

5.21 Proposição. Se |t| 1, vale<br />

Ck (t) = 1<br />

2<br />

Prova: Como resultado de (5.74), segue que<br />

Por outro lado,<br />

e<br />

logo<br />

Ck (t) = cosh k cosh −1 t = 1<br />

2<br />

= 1<br />

e<br />

2<br />

cosh−1 t k +<br />

t + t2 k <br />

− 1 + t + t2 <br />

−k<br />

− 1 .<br />

<br />

e k cosh−1 t + e −k cosh −1 t <br />

<br />

e cosh−1 t −k <br />

.<br />

e x = cosh x + sinh x<br />

cosh 2 x − sinh 2 x = 1,<br />

e cosh−1 <br />

t −1 −1<br />

= cosh cosh t + sinh cosh t<br />

<br />

cosh 2 cosh −1 t − 1<br />

= t +<br />

= t + t 2 − 1,<br />

donde segue o resultado. <br />

Em particular, para valores grandes de k pode-se usar a aproximação<br />

Ck (t) 1<br />

<br />

t +<br />

2<br />

t2 k − 1 .<br />

para |t| 1. No que se segue denotaremos o subespaço de todos os polinômios reais de grau menor ou igual<br />

a k por Pk [x]. O seguinte teorema é um importante resultado em Teoria da Aproximação:<br />

5.22 Teorema. Seja [a, b] ⊂ R um intervalo não vazio e c /∈ [a, b]. Então o mínimo<br />

é atingido pelo polinômio<br />

µk = min<br />

Ck (x) :=<br />

p∈Pk[x]<br />

p(c)=1<br />

Ck<br />

Ck<br />

max<br />

x∈[a,b]<br />

|p (x)|<br />

<br />

x − b<br />

1 + 2<br />

b − a<br />

.<br />

c − b<br />

1 + 2<br />

b − a


Rodney Josué Biezuner 98<br />

Consequentemente,<br />

Prova: Denote por<br />

o ponto médio do intervalo [a, b]. Então<br />

µk = <br />

<br />

<br />

Ck<br />

m :=<br />

1<br />

<br />

c − b <br />

. (5.75)<br />

1 + 2<br />

b − a<br />

a + b<br />

2<br />

x − b b − a + 2x − 2b<br />

1 + 2 = =<br />

b − a b − a<br />

2x − (a + b)<br />

x − m<br />

= 2<br />

b − a .<br />

Assim, se c /∈ [a, b] então 2<br />

c − m<br />

b − a<br />

<br />

<br />

<br />

> 1<br />

b − a<br />

de modo que o denominador na expressão de Ck (x) nunca se anula. Por outro lado, se x ∈ [a, b] então<br />

<br />

<br />

<br />

− m<br />

2x <br />

b − a 1.<br />

Como<br />

max<br />

t∈[−1,1] |Ck (t)| = 1,<br />

segue (5.75).<br />

Portanto, para provar que o mínimo é atingido pelo polinômio Ck, precisamos mostrar que se pk ∈ Pk [x]<br />

é tal que p (c) = 1 e<br />

max |p (x)| µk,<br />

x∈[a,b]<br />

então pk = Ck. De fato, pela definição trigonométrica dos polinômios de Chebyshev, Ck (t) atinge os valores<br />

±1 alternadamente nos pontos<br />

<br />

j<br />

tj = cos<br />

k π<br />

<br />

, j = 0, 1, . . . , k.<br />

Correspondentemente, Ck (x) atinge os valores ±µk nos pontos<br />

xj = 1<br />

<br />

<br />

j<br />

a + b + (b − a) cos<br />

2<br />

k π<br />

<br />

, j = 0, 1, . . . , k<br />

dentro do intervalo [a, b]. Como<br />

<br />

<br />

|pk (xj)| µk = <br />

<br />

Ck (xj) ,<br />

concluímos que o polinômio diferença rk = Ck − pk de grau menor ou igual a k satisfaz<br />

rk (xj) 0 se j é par,<br />

rk (xj) 0 se j é ímpar.<br />

Pelo teorema do valor intermediário, rk possui pelo menos uma raiz em cada subintervalo [xj, xj+1]. Mesmo<br />

quando as raízes de rk em [xj−1, xj] e [xj, xj+1] coincidem, ou seja, xj é uma raiz de rk, esta é uma raiz de<br />

multiplicidade 2 (pois r ′ k (xj) = 0, isto é, xj também é uma raiz da derivada de rk). Consequentemente, o<br />

polinômio rk tem pelo menos k raízes em [a, b]. Mas, como<br />

rk (c) = Ck (c) − pk (c) = 1 − 1 = 0,<br />

c /∈ [a, b] é a (k + 1)-ésima raiz de rk. Isso constitui uma contradição, a menos que rk ≡ 0, o que implica<br />

pk = Ck.


Rodney Josué Biezuner 99<br />

5.9.2 Velocidade de Convergência do CG<br />

5.23 Lema. Seja A ∈ Mn (R) uma matriz simétrica positiva definida. Então o erro algébrico do método do<br />

gradiente conjugado satisfaz <br />

e k =<br />

A<br />

min<br />

<br />

p (A) e 0 .<br />

A<br />

p∈Pk[x]<br />

p(0)=1<br />

Prova: Pelos Teoremas 5.13 e 5.14, o método do gradiente conjugado minimiza a A-norma do erro no<br />

subespaço afim e0 <br />

0 + Kk A, r <br />

0 . Mas Kk A, r é o conjunto de todos os vetores da forma q (A) r0 onde<br />

q é um polinômio de grau menor ou igual a k − 1, enquanto que r0 = Ae0 . Portanto, o subespaço afim<br />

e0 <br />

0 + Kk A, r consiste de todos os vetores da forma e0 + q (A) Ae0 , ou seja, de todos os vetores na forma<br />

p (A) e 0 onde p é um polinômio de grau menor ou igual a k tal que p (0) = 1. <br />

5.24 Teorema. Seja A ∈ Mn (R) uma matriz simétrica positiva definida. Então o erro algébrico do método<br />

do gradiente conjugado satisfaz<br />

<br />

e k k <br />

κ (A) − 1 e<br />

2 <br />

A<br />

κ (A) + 1<br />

0 . (5.76)<br />

A<br />

Prova: Denote por λ1 . . . λn os autovalores de A e por v1, . . . , vn uma base A-ortonormal de autovetores<br />

correspondentes. Escrevendo<br />

e 0 n<br />

= aivi,<br />

segue que<br />

Assim,<br />

<br />

p (A) e 0 2<br />

A =<br />

n<br />

a 2 i p (λi) 2 <br />

<br />

i=1<br />

p (A) e 0 =<br />

donde, pelo lema anterior, e k A min<br />

i=1<br />

n<br />

aip (λi) vi.<br />

i=1<br />

2<br />

max p (λi)<br />

1in<br />

p∈Pk[x]<br />

p(0)=1<br />

<br />

e 0 2<br />

A <br />

<br />

max<br />

x∈[λ1,λn] p (x) 0<br />

e . A<br />

Segue agora do Lema 5.22 que e k A µ e 0 A<br />

onde<br />

µ = <br />

<br />

<br />

=<br />

Ck<br />

Ck<br />

1<br />

<br />

1 − 2<br />

λn<br />

λn − λ1<br />

1<br />

,<br />

κ (A) + 1<br />

κ (A) − 1<br />

<br />

<br />

= <br />

<br />

<br />

Ck<br />

1<br />

<br />

− λn<br />

<br />

+ λ1 <br />

=<br />

λn − λ1<br />

max p (x)2<br />

x∈[λ1,λn]<br />

Ck<br />

1<br />

<br />

λn + λ1<br />

λn − λ1<br />

e 0 2<br />

A ,<br />

(para obter a última igualdade usamos a simetria dos polinômios de Chebyshev, como visto na Proposição<br />

5.20, e a sua positividade no intervalo [1, +∞) que decorre diretamente da fórmula da Proposição 5.21). Pela<br />

Proposição 5.21 e o comentário que se segue, temos<br />

<br />

κ (A) + 1<br />

Ck<br />

<br />

κ (A) − 1<br />

1<br />

⎛<br />

⎝<br />

κ (A) + 1<br />

2 κ (A) − 1 +<br />

⎞k<br />

κ 2 (A) + 1<br />

− 1⎠<br />

,<br />

κ (A) − 1


Rodney Josué Biezuner 100<br />

donde<br />

<br />

e k ⎛<br />

2 ⎝<br />

κ (A) + 1<br />

A κ (A) − 1 +<br />

⎛<br />

<br />

κ (A) + 1 +<br />

= 2 ⎝<br />

<br />

κ 2 (A) + 1<br />

κ (A) − 1<br />

⎞<br />

− 1⎠<br />

−k<br />

<br />

e 0 A<br />

(κ (A) + 1) 2 − (κ (A) − 1) 2<br />

κ (A) − 1<br />

<br />

κ (A) + 1 + 2<br />

= 2<br />

−k κ (A) e<br />

κ (A) − 1<br />

0 A<br />

⎛ κ ⎞<br />

2<br />

⎜<br />

(A) + 1<br />

= 2 ⎝κ<br />

κ <br />

⎟<br />

⎠<br />

(A) + 1 (A) − 1<br />

= 2<br />

κ (A) − 1<br />

κ (A) + 1<br />

k e 0 A .<br />

−k<br />

<br />

e 0 A<br />

⎞<br />

⎠<br />

−k<br />

<br />

e 0 A<br />

<br />

Esta estimativa é bem melhor que a estimativa do método da descida mais acentuada (o número de condição<br />

é subtituido aqui pela sua raiz quadrada), mostrando que o método do gradiente conjugado é bem mais<br />

rápido. Por outro lado, como naquele método, a velocidade de convergência do método CG dependerá<br />

fortemente da boa ou má condicionalidade da matriz A.<br />

Uma comparação entre a velocidade de convergência dos métodos de gradiente para a matriz de discretização<br />

da fórmula de cinco pontos aplicada ao mesmo problema do Capítulo 3 (Seção 3.1.4) é dada na<br />

tabela a seguir [Watkins]. O tamanho das matrizes usadas é indicado na linha superior da tabela e o número<br />

de iterações necessárias para obter um erro algébrico menor normalizado menor que igual a 10 −8 é dado<br />

para cada método.<br />

n = 81 n = 361 n = 1521<br />

Descida Mais Acentuada 304 1114 4010<br />

Gradiente Conjugado 29 60 118<br />

No caso desta matriz de discretização temos<br />

κ (A) =<br />

2 (n − 1) π<br />

sen<br />

2n<br />

π<br />

sen2 2n<br />

2 π π∆x<br />

= cot = cot2<br />

2n 2 ≈<br />

de modo que <br />

κ (A) − 1 1 − π∆x/2<br />

≈ ≈ 1 − π∆x,<br />

κ (A) + 1 1 + π∆x/2<br />

4<br />

π 2 ∆x 2<br />

o que dá uma velocidade de convergência para o método do gradiente conjugado duas vezes maior que a<br />

do método SOR com o fator de relaxamento ótimo. No entanto, deve-se ter em mente que enquanto que a<br />

taxa de covergência que obtivemos para o método SOR é precisa, a estimativa de erro (5.76) do Teorema<br />

5.24 para o método do gradiente conjugado é apenas um limitante superior grosseiro e pode ser melhorada<br />

(veja [Watkins] para algumas estimativas melhoradas). De fato, embora a taxa de convergência assintótica<br />

(5.76) dependa apenas do número de condição, e portanto apenas dos autovalores extremais, a convergência<br />

do método do gradiente conjugado é influenciada pelo espectro inteiro, como o próximo resultado ilustra:


Rodney Josué Biezuner 101<br />

5.25 Teorema. Seja A ∈ Mn (R) uma matriz simétrica positiva definida com apenas m autovalores distintos.<br />

Então o método do gradiente conjugado converge em m iterações.<br />

Prova: Sejam λ1, . . . , λm os m autovalores distintos de A. Seja<br />

p (x) = a (x − λ1) . . . (x − λm)<br />

um polinômio de grau m onde a é escolhido de tal forma a produzir p (0) = 1. Como p (λi) = 0 para todo i,<br />

pela demonstração do Teorema 5.24 (e usando a mesma notação de lá) segue que<br />

p (A) e 0 =<br />

n<br />

aip (λi) vi = 0.<br />

i=1<br />

Logo, pelo Lema 5.23, temos que e m = 0. <br />

Mesmo se isso não ocorre, se os autovalores de A não estão distribuídos uniformemente em [λmin, λmax] mas<br />

se acumulam em subintervalos de [λmin, λmax], pode-se obter melhores taxas de convergência do que (5.76)<br />

(veja [Hackbusch] e [Watkins]).<br />

5.10 Exercícios<br />

5.1 Considere os vetores<br />

v1 =<br />

⎡<br />

⎢<br />

⎣<br />

1<br />

ε<br />

0<br />

0<br />

⎤<br />

⎥<br />

⎦ , v2 =<br />

⎡<br />

⎢<br />

⎣<br />

1<br />

0<br />

ε<br />

0<br />

⎤<br />

⎥<br />

⎦ e v3 =<br />

onde ε ≪ 1. Estes vetores são aproximadamente linearmente independentes.<br />

a) Use o método de Gram-Schmidt clássico para ortogonalizar estes vetores, usando a aproximação<br />

1 + ε 2 = 1 (um computador faria erros de arredondamento adicionais). Verifique que 〈w2, w3〉 = 1/2 e<br />

portanto estes vetores estão muito longe de serem ortogonais.<br />

b) Use o método de Gram-Schmidt modificado para ortogonalizar estes vetores, também usando a<br />

aproximação 1 + ε 2 = 1. Verifique que 〈w2, w3〉 = 0 e que 〈w1, w2〉 = −ε/ √ 2, 〈w1, w3〉 = −ε/ √ 6;<br />

portanto estes vetores estão muito próximos de serem ortogonais.<br />

5.2 Mostre que os algoritmos de Gram-Schmidt clássico e modificado são matematicamente equivalentes<br />

em aritmética exata, isto é, produzem os mesmos vetores.<br />

5.3 Prove que os vetores v1, . . . , vm gerados pelo algoritmo de Arnoldi com MGS formam uma base ortonormal<br />

para o subespaço de Krylov Km (A, v).<br />

5.4 Prove que o inversa de uma matriz triangular superior é uma matriz triangular superior. Prove a<br />

afirmativa equivalente para matrizes triangulares inferiores.<br />

5.5 Prove que o produto de matrizes triangulares superiores é uma matriz triangular superior. Prove a<br />

afirmativa equivalente para matrizes triangulares inferiores.<br />

⎡<br />

⎢<br />

⎣<br />

1<br />

0<br />

0<br />

ε<br />

⎤<br />

⎥<br />

⎦ ,


Capítulo 6<br />

O Problema do Autovalor<br />

Por causa do teorema de Abel com respeito à inexistência de uma fórmula para calcular as raízes de um<br />

polinômio de grau maior ou igual a 5, não existem métodos diretos para calcular autovalores. Todo método<br />

para calcular autovalores é necessariamente um método iterativo.<br />

De fato, dado um polinômio mônico<br />

p (z) = z n + an−1z n−1 + . . . + a1z + a0,<br />

seu determinante é igual a (−1) n vezes o determinante da matriz<br />

⎡<br />

−z<br />

⎢<br />

1<br />

⎢<br />

⎣<br />

−z<br />

1 −z<br />

1 −z<br />

. .. . ..<br />

−a0<br />

−a1<br />

−a2<br />

.<br />

.<br />

−an−1<br />

⎤<br />

⎥ ,<br />

⎥<br />

⎦<br />

1 −z − an−1<br />

logo as raízes de p são os autovalores da matriz<br />

⎡<br />

0<br />

⎢<br />

1<br />

⎢<br />

⎣<br />

0<br />

1 0<br />

1 0<br />

. .. . ..<br />

−a0<br />

−a1<br />

−a2<br />

.<br />

−an−1<br />

⎤<br />

⎥ .<br />

⎥<br />

⎦<br />

1 −an−1<br />

Portanto, o problema de encontrar as raízes de um polinômio é equivalente ao problema de encontrar os<br />

autovalores de uma matriz.<br />

6.1 Caracterização Variacional dos Autovalores de uma Matriz<br />

Simétrica: Quociente de Rayleigh<br />

Os autovalores de uma matriz simétrica podem ser caracterizados variacionalmente.<br />

6.1 Definição. Seja A ∈ Mn (R) uma matriz simétrica. Dado x ∈ R n , o quociente<br />

r (x) =<br />

102<br />

〈Ax, x〉<br />

x 2


Rodney Josué Biezuner 103<br />

é chamado o quociente de Rayleigh de x. A função r : R n −→ R é chamada o funcional de<br />

Rayleigh (ou também o quociente de Rayleigh).<br />

6.2 Teorema. (Princípio de Rayleigh) Seja A ∈ Mn (R) uma matriz simétrica. Se x é um ponto crítico do<br />

funcional de Rayleigh, então x é um autovetor de A e r (x) é o autovalor correspondente.<br />

Prova: Escrevendo<br />

Temos<br />

de modo que<br />

Portanto,<br />

<br />

r (x) =<br />

<br />

aijxixj<br />

i,j=1<br />

<br />

x<br />

i,j=1<br />

2 i<br />

2 x<br />

∂r<br />

(x) =<br />

∂xk<br />

2 <br />

<br />

aikxi − 2xk aijxixj<br />

i=1<br />

i,j=1<br />

x 4 = 2<br />

∇r (x) = 2<br />

2 [Ax − r (x) x] .<br />

x<br />

∇r (x) = 0 se e somente se Ax = r (x) x.<br />

x 2 [(Ax) k − r (x) xk] ,<br />

6.3 Corolário. O quociente de Rayleigh é uma aproximação de segunda ordem para os autovalores de A,<br />

ou seja, se v é um autovetor de A, segue que<br />

<br />

r (x) − r (v) = O x − v 2<br />

quando x → v<br />

Prova: Segue da fórmula de Taylor, já que ∇r (v) = 0. <br />

Podemos obter uma descrição geométrica mais precisa dos pontos críticos do funcional de Rayleigh:<br />

6.4 Teorema. (Princípio de Rayleigh) Seja A ∈ Mn (R) uma matriz simétrica. Sejam λ1 . . . λn os<br />

autovalores de A, de modo que λ1 é o menor autovalor de A e λn é o maior autovalor de A. Então<br />

e<br />

λ1 = min<br />

x∈R n<br />

〈Ax, x〉<br />

x<br />

x=0<br />

2<br />

λn = max<br />

x∈R n<br />

〈Ax, x〉<br />

x<br />

x=0<br />

2<br />

Prova: Seja B = {v1, . . . , vn} uma base ortonormal de autovetores de A correspondentes aos autovalores<br />

λ1, . . . , λn. Então, para todo x = n<br />

xivi temos<br />

λ1 x 2 =<br />

<br />

n<br />

i=1<br />

n<br />

i=1<br />

i=1<br />

λ1x 2 i<br />

λix 2 i =<br />

i=1<br />

n<br />

λixixj 〈vi, vj〉 =<br />

i,j=1<br />

<br />

n<br />

n<br />

= λixivi,<br />

= 〈Ax, x〉 .<br />

j=1<br />

xjvj<br />

i=1<br />

n<br />

〈λixivi, xjvj〉<br />

i,j=1<br />

<br />

n<br />

n<br />

= xiAvi,<br />

j=1<br />

xjvj<br />

<br />

=<br />

<br />

A<br />

n<br />

i=1<br />

xivi<br />

<br />

,<br />

n<br />

j=1<br />

xjvj<br />

<br />

(6.1)<br />

(6.2)


Rodney Josué Biezuner 104<br />

Portanto, para todo x ∈ R n , x = 0, vale<br />

λ1 <br />

〈Ax, x〉<br />

2 .<br />

x<br />

O mínimo é atingido em x = v1 ou em qualquer outro autovetor de A associado a λ1. Da mesma forma,<br />

obtemos<br />

λn x 2 n<br />

= λnx 2 n<br />

i λix 2 i = 〈Ax, x〉 .<br />

i=1<br />

<br />

Os outros autovalores de A, λ2, . . . , λn−1, são pontos de sela e podem ser encontrado através de um<br />

princípio de minimax:<br />

6.5 Teorema. (Princípio de Minimax para Autovalores) Seja A ∈ Mn (R) uma matriz simétrica. Sejam<br />

λ1 . . . λn os autovalores de A. Então<br />

⎛<br />

⎞<br />

λj = min<br />

i=1<br />

W ⊂R n subespaço<br />

dim W =j<br />

⎝ max<br />

x∈W<br />

x=1<br />

Prova: Seja W ⊂ R n um subespaço de dimensão j. Primeiro mostraremos que<br />

max 〈Ax, x〉 λj.<br />

x∈W<br />

x=1<br />

〈Ax, x〉 ⎠ . (6.3)<br />

Seja B = {v1, . . . , vn} uma base ortonormal de autovetores de A correspondentes aos autovalores λ1, . . . , λn.<br />

Seja Z = 〈v1, . . . , vj−1〉. Como Z ⊥ = 〈vj, . . . , vn〉, temos<br />

de modo que<br />

n dim W + Z ⊥ = dim W + dim Z ⊥ − dim W ∩ Z ⊥ = j + n − (j − 1) − dim W ∩ Z ⊥ ,<br />

dim W ∩ Z ⊥ 1<br />

e existe um vetor x ∈ W ∩ Z⊥ tal que x = 1. Escrevendo x = n<br />

xkvk, temos x = n<br />

|xk| 2 = 1, donde<br />

<br />

n<br />

n<br />

〈Ax, x〉 = xkAvk,<br />

=<br />

k=j<br />

n<br />

k=j<br />

l=j<br />

λk |xk| 2 λj<br />

xlvl<br />

k=j<br />

k=j<br />

<br />

n<br />

n<br />

= xkλkvk,<br />

n<br />

|xk| 2 = λj.<br />

k=j<br />

l=j<br />

xlvl<br />

<br />

=<br />

k=j<br />

n<br />

λkxkxl 〈vk, vl〉<br />

Para completar a demonstração, devemos encontrar um subespaço W ⊂ R n de dimensão j tal que<br />

〈Ax, x〉 λj para todo x ∈ W com x = 1. Tomemos W = 〈v1, . . . , vj〉. Temos<br />

<br />

j<br />

〈Ax, x〉 = xkAvk,<br />

=<br />

k=1<br />

j<br />

k=1<br />

O minimax é atingido em vj. <br />

j<br />

l=1<br />

λk |xk| 2 λj<br />

xlvl<br />

<br />

j<br />

= xkλkvk,<br />

k=1<br />

j<br />

|xk| 2 = λj.<br />

k=1<br />

j<br />

l=1<br />

xlvl<br />

<br />

=<br />

k,l=j<br />

j<br />

λkxkxl 〈vk, vl〉<br />

k,l=1


Rodney Josué Biezuner 105<br />

6.2 Método das Potências<br />

O método das potências ou método das iterações é o algoritmo mais simples para o cálculo de autovalores<br />

de matrizes, mas ele pode encontrar apenas o maior autovalor (em módulo) de uma matriz A ∈ Mn (C),<br />

chamado o autovalor dominante de A, desde que haja apenas um. Para simplificar a exposição, suponha<br />

que A é uma matriz diagonalizável cujo maior autovalor (em módulo) é um autovalor simples (isto é, seu<br />

autoespaço associado tem dimensão 1). Ordene os autovalores de A na forma<br />

|λ1| > |λ2| . . . |λn|<br />

e seja {v1, . . . , vn} uma base correspondente de autovetores. Assim, λ1 é o autovalor dominante de A e<br />

v1 um autovetor dominante. Quando A tem um autovalor dominante, este e um correspondente autovetor<br />

dominante podem ser encontrados através do método das potências, que consiste essencialmente em tomar<br />

um vetor v0 arbitrário e considerar as potências<br />

v0, Av0, A 2 v0, . . . , A k v0, . . . (6.4)<br />

É essencial que o vetor v0 possua uma componente na direção do autovetor dominante v1. Este não é a<br />

priori conhecido, mas se a escolha é arbitrária há grande probabilidade que isso ocorra na prática. De fato,<br />

para quase todas as escolhas de v0 devemos ter<br />

v0 =<br />

n<br />

i=1<br />

com a1 = 0; raramente uma escolha aleatória de v0 produzirá um vetor no subespaço 〈v2, . . . , vn〉. Temos<br />

então<br />

A k n<br />

v0 = aiλvi,<br />

donde escrevemos<br />

A k v0 = λ k 1<br />

<br />

a1v1 +<br />

i=1<br />

aivi<br />

n<br />

i=2<br />

ai<br />

λi<br />

Embora Ak <br />

v0<br />

→ ∞ se λ1 > 1 e Ak <br />

v0<br />

→ 0 se λ1 < 1, como<br />

λi<br />

λ1<br />

k → 0,<br />

para todo i = 2, . . . , n, segue que a sequência reescalada<br />

A k v0<br />

λ k 1<br />

→ a1v1<br />

converge para um autovetor dominante. No entanto, como o autovalor λ1 não é conhecido a priori, é<br />

impossível trabalhar com esta sequência. Portanto, trabalhamos ao invés com a sequência normalizada<br />

wk = Ak v0<br />

A k v0<br />

onde · é uma norma qualquer (por exemplo, a norma do máximo), que converge para um autovetor<br />

dominante unitário.<br />

λ1<br />

k<br />

vi<br />

<br />

.<br />

(6.5)


Rodney Josué Biezuner 106<br />

6.6 Proposição. Seja A ∈ Mn (C) uma matriz diagonalizável e assuma que o seu autovalor dominante λ1<br />

é simples. Dado um vetor arbitrário v0 ∈ C n que possui uma componente não-nula no autoespaço<br />

associado a λ1, defina a sequência<br />

onde<br />

Então<br />

w0 = v0,<br />

wk+1 = Awk<br />

.<br />

αk<br />

αk = Awk .<br />

wk → v1,<br />

αk → λ1,<br />

onde v1 é um autovetor dominante unitário. Além disso, a taxa assintótica de convergência é<br />

<br />

λ2 <br />

O <br />

.<br />

Se A é uma matriz simétrica real e definirmos<br />

então<br />

com taxa assintótica de convergência<br />

Prova: Temos<br />

λ1<br />

µk = 〈Awk, wk〉 ,<br />

O<br />

µk → λ1<br />

<br />

λ2<br />

λ1<br />

wk = Akv0 ,<br />

αk<br />

2<br />

<br />

<br />

<br />

<br />

.<br />

onde αk = α1 . . . αk é simplesmente o escalar apropriado que normaliza o vetor A k v0, isto é, αk = A k v0<br />

Escrevendo<br />

segue que<br />

Como<br />

wk = λk 1<br />

αk<br />

a1v1 +<br />

<br />

v0 =<br />

a1v1 +<br />

n<br />

i=2<br />

ai<br />

n<br />

aivi,<br />

i=1<br />

n<br />

i=2<br />

λi<br />

λ1<br />

ai<br />

k<br />

λi<br />

λ1<br />

k<br />

vi<br />

vi → a1v1<br />

e wk sendo uma sequência unitária possui uma subsequência convergente, concluímos que wk converge para<br />

um vetor unitário na direção de v1.<br />

Como<br />

Awk = αkwk,<br />

tomando o limite em ambos os lados concluímos que<br />

Av1 = (lim αk) v1,<br />

<br />

.<br />

<br />

.


Rodney Josué Biezuner 107<br />

logo lim αk = λ1.<br />

Finalmente, a taxa assintótica de convergência segue de<br />

<br />

n<br />

<br />

k <br />

λi <br />

ai vi<br />

<br />

<br />

n<br />

<br />

k λi <br />

n<br />

<br />

|ai| <br />

vi |ai| vi<br />

i=2<br />

λ1<br />

i=2<br />

λ1<br />

i=2<br />

λ2<br />

λ1<br />

<br />

<br />

<br />

<br />

k<br />

<br />

<br />

C (v0) <br />

<br />

O caso A simétrico segue do Corolário 6.3. <br />

Vemos que a velocidade de convergência do método das potências pode ser muito lenta se a diferença entre<br />

o maior e o segundo maior autovalores não for muito grande, uma situação frequentemente encontrada na<br />

prática. O método das potências funciona mesmo quando o autovalor dominante não é simples, desde que<br />

não existam outros autovalores de A diferentes do autovalor dominante que tenham o mesmo valor em<br />

módulo, isto é quando existe apenas um autovalor dominante (Exercício 6.1). É claro que o método não vai<br />

produzir uma base para o autoespaço dominante, apenas um autovetor deste autoespaço, correspondente ao<br />

vetor unitário na direção da componente do vetor inicial. Quando existem vários autovalores dominantes, o<br />

método não pode ser aplicado. Em particular, o método não pode ser aplicado a matrizes reais que possuem<br />

um autovalor dominante complexo, já que neste caso o seu conjugado também é um autovalor dominante.<br />

Esta situação ocorre também com matrizes ortogonais, já que todos os autovalores de uma matriz ortogonal<br />

tem norma 1.<br />

Se A não é diagonalizável, o autovalor dominante de A ainda pode ser encontrado pelo método das<br />

potências (desde que não haja mais de um autovalor dominante, como observado no parágrafo anterior),<br />

como discutido no Exercício 6.2.<br />

6.2.1 Método das Potências Inverso<br />

O método das potência permite apenas encontrar o autovalor dominante. Para obter o menor autovalor<br />

de A, podemos aplicar o método das potências à matriz inversa A −1 , pois se λ é o menor autovalor de A,<br />

1/λ será o maior autovalor de A −1 . Este método é chamado método das potências inverso ou iteração<br />

inversa (quando o método das potências é chamado iteração direta).<br />

6.2.2 Método das Potências com Deslocamento<br />

Teoricamente, o método das potências poderia ser aplicado diretamente para encontrar todos os autovalores<br />

de A. Por exemplo, para encontrar λ2 e um autovetor associado, uma vez encontrado o autovetor associado<br />

ao primeiro autovalor, bastaria tomar um novo vetor inicial que não tivesse componentes na direção do<br />

autovetor dominante (ou autoespaço dominante; veja Exercício 6.1), mas apenas na direção de v2. Isso seria<br />

fácil de conseguir se os autovetores de A fosse ortogonais (por exemplo, se A é simétrica): bastaria tomar<br />

um vetor inicial aleatório v0, com componentes na direção de todos os autovetores de A, e subtrair dele a<br />

sua componente ortogonal na direção do autovetor dominante. Na notação da seção anterior, bastaria tomar<br />

v0 = v0 − a1v1 =<br />

n<br />

aivi,<br />

e proceder desta maneira até encontrar todos os autovalores de A (desde que não haja autovalores distintos<br />

mas iguais em módulo). Na prática isso não funciona, porque erros de arredondamento apareceriam<br />

imediatamente:<br />

n<br />

Av0 = ελ1v1 + aiλivi;<br />

ao invés de obter λ2 e um autovetor associado, voltaríamos a obter λ1 e um autovetor dominante.<br />

Para encontrar os demais autovalores da matriz A, observe que se A tem autovalores λ1, . . . , λn, então<br />

A − σI tem autovalores λ1 − σ, . . . , λn − σ. O escalar σ é chamado um deslocamento. Podemos então aplicar<br />

i=2<br />

i=2<br />

λ2<br />

λ1<br />

<br />

<br />

<br />

<br />

k<br />

.


Rodney Josué Biezuner 108<br />

o método das potências à matriz (A − σI) −1 , pois os autovalores de A são<br />

de modo que o autovalor dominante de (A − σI) −1 é<br />

1 1<br />

, . . . ,<br />

λ1 − σ λn − σ ,<br />

1<br />

λi − σ<br />

onde λi é o autovalor de A mais próximo de σ. Assim, podemos encontrar todos os autovalores de A<br />

variando o deslocamento σ. Este método é chamado método das potências com deslocamento ou<br />

iteração com deslocamento. Ele é particularmente eficiente quando possuímos boas estimativas para os<br />

autovalores de A (estimativas grosseiras podem ser obtidas através do teorema dos discos de Gershgorin).<br />

Como já observado anteriormente, a convergência do método das potências direto será lenta quando λ1 e<br />

λ2 forem muito próximos. No caso do método das potências com deslocamento, uma escolha cuidadosa do<br />

deslocamento σ pode aumentar substancialmente a velocidade de convergência. Com efeito, observe que<br />

neste caso temos (para simplificar a compreensão, novamente supomos A diagonalizável e, adicionalmente,<br />

que todos os autovalores são simples):<br />

donde<br />

<br />

<br />

<br />

<br />

<br />

<br />

(A − σI) −1 <br />

k 1<br />

v0 =<br />

λi − σ<br />

(A − σI) −1 k<br />

v0 −<br />

1<br />

λi − σ<br />

⎡<br />

k ⎢<br />

⎣aivi +<br />

k<br />

aivi<br />

de modo que a taxa assintótica de convergência é dada por<br />

<br />

λi<br />

<br />

− σ <br />

<br />

− σ <br />

λi<br />

<br />

<br />

<br />

<br />

<br />

n<br />

j=1<br />

j=i<br />

ai<br />

k λi − σ<br />

λj − σ<br />

n<br />

<br />

λi<br />

|ai| <br />

− σ <br />

<br />

λj<br />

− σ <br />

j=1<br />

j=i<br />

⎛<br />

⎜<br />

⎜<br />

⎝<br />

k<br />

vj<br />

|vj|<br />

⎤<br />

⎥<br />

⎦<br />

⎞<br />

n<br />

<br />

⎟ λi<br />

|ai| |vj| ⎟ <br />

− σ <br />

<br />

⎠ − σ <br />

onde λi é o autovalor mais próximo a λi. Tomando o deslocamento σ significantemente mais próximo de λi<br />

do que de λi , podemos obter<br />

<br />

λi<br />

<br />

− σ <br />

<br />

− σ ≪ 1,<br />

λi<br />

acelerando a convergência do método.<br />

É importante observar que tanto na iteração inversa, quanto na iteração com deslocamento, em nenhum<br />

momento é necessário calcular a inversa A−1 explicitamente, o que consumiria muito tempo e recursos.<br />

Embora as iteradas satisfazem<br />

wk+1 = 1<br />

(A − σI) −1 wk,<br />

basta resolver o sistema<br />

σk+1<br />

(A − σI) wk+1 = wk<br />

j=1<br />

j=i<br />

λi<br />

k<br />

(6.6)


Rodney Josué Biezuner 109<br />

e então tomar<br />

wk+1 = 1<br />

wk+1.<br />

σk+1<br />

Além disso, apesar de A − λI ser uma matriz singular quando λ é um autovalor de A, e portanto tomar um<br />

deslocamento σ muito próximo a λ produz uma matriz A − σI muito mal condicionada, isso não atrapalha<br />

a eficência da iteração com deslocamento em nada (veja [Parlett]).<br />

Finalmente, notamos que se os autovalores de uma matriz já são conhecidos, o método padrão para<br />

encontrar os autovetores de A é o método das potências com deslocamento, já que os deslocamentos podem<br />

ser escolhido arbitrariamente próximos dos autovalores, tornando a convergência muito rápida.<br />

6.2.3 Iteração do Quociente de Rayleigh<br />

Quando a matriz A é simétrica, combinando a iteração inversa e o quociente de Rayleigh é possível obter<br />

um método extremamente rápido, de tal forma que depois de 2 ou 3 passos o número de dígitos corretos no<br />

autovalor triplica a cada iteração. A idéia é não manter o valor de deslocamento constante, mas atualizá-lo<br />

a cada iteração com uma aproximação melhor do autovalor dada pelo quociente de Rayleigh. O algoritmo<br />

para a iteração do quociente de Rayleigh é o seguinte:<br />

Iteração do Quociente de Rayleigh<br />

Atribua v 0 ;<br />

v 0 ← v 0 / v 0 ;<br />

λ 0 = 〈Av0, v0〉 ;<br />

⎡<br />

Para k = 0, 1, 2, . . ., até limite de tolerância<br />

⎣<br />

Resolva A − λ k I w = v k ;<br />

v k+1 ← w/ w ;<br />

λ k+1 ← Av k+1 , v k+1 ;<br />

fim do laço<br />

Vamos verificar que a convergência da iteração de Rayleigh é cúbica:<br />

6.7 Proposição. Seja A ∈ Mn (R) uma matriz simétrica e assuma que o autovalor λi é simples. Dado um<br />

vetor arbitrário v 0 ∈ R n que possui uma componente não-nula no autoespaço associado a λi, tome<br />

λ 0 = Av 0 , v 0 e defina a sequência<br />

v k+1 =<br />

<br />

<br />

A − λ k I −1 v k<br />

(A − λ k I) −1 v k<br />

λ k+1 = Av k+1 , v k+1 .<br />

Então v k converge para um autovetor unitário vi associado a λi e λ k → λi com uma taxa de con-<br />

vergência que satisfaz<br />

<br />

v k+1 − vi<br />

e <br />

λ k+1 <br />

− λi<br />

= O<br />

Prova: Pelo Corolário 6.3,<br />

<br />

λ k − λi<br />

<br />

<br />

,<br />

<br />

v k<br />

= O − (±vi) 3<br />

<br />

= O<br />

λ k <br />

− λi<br />

3<br />

.<br />

v k <br />

− vi<br />

2<br />

.<br />

Pelas estimativas para a iteração inversa com deslocamento obtidas na subseção anterior, temos<br />

<br />

v k+1 <br />

λi<br />

− vi<br />

C <br />

− λ<br />

<br />

k<br />

<br />

<br />

v <br />

k <br />

− vi<br />

.<br />

λi − λk


Rodney Josué Biezuner 110<br />

Como λk está próximo de λi, podemos substituir λi − λk por λi<br />

<br />

v k+1 <br />

− vi<br />

= O λ k <br />

− λi<br />

v k <br />

− vi<br />

= O<br />

<br />

− λi<br />

no denominador, de modo que<br />

v k+1 <br />

− vi<br />

3<br />

.<br />

As constantes implícitas no símbolo O são uniformes para vizinhanças suficientemente pequenas de λi e vi.<br />

Para obter a taxa de convergência para os autovalores, use o resultado obtido e o Corolário 6.3 duas vezes<br />

escrevendo <br />

λ k+1 v − λi<br />

= O<br />

k+1 <br />

− vi<br />

2<br />

v = O<br />

k <br />

− vi<br />

6<br />

λ = O<br />

k <br />

− λi<br />

3<br />

.<br />

<br />

Este resultado vale mesmo quando o autovalor não é simples (Exercício 6.3).<br />

No caso em que A não é simétrica, a iteração do quociente de Rayleigh ainda pode ser usada, mas<br />

a convergência é apenas quadrática (veja [Watkins]). Para uma análise mais rigorosa da convergência do<br />

método das potências e todas as suas variações, inclusive a iteração do quociente de Rayleigh, veja [Parlett].<br />

6.3 Algoritmo QR<br />

O algoritmo QR (não confundir com a decomposição QR) é o algoritmo preferido para encontrar todos os<br />

autovalores de uma matriz não-simétrica densa. O algoritmo básico QR pode ser descrito da seguinte forma.<br />

Seja A ∈ Mn (C) uma matriz cujos autovalores queremos calcular. Começando com<br />

A0 = A, (6.7)<br />

definimos iterativamente uma sequência de matrizes A1, A2, . . ., recursivamente da seguinte maneira. Primeiro<br />

fazemos a decomposição QR da matriz obtida no passo anterior:<br />

Em seguida definimos<br />

Observe que, como<br />

Ak−1 = QkRk. (6.8)<br />

Ak = RkQk. (6.9)<br />

Ak = Q ∗ kAk−1Qk, (6.10)<br />

todas as matrizes da sequência, que denominaremos sequência QR, possuem os mesmos autovalores. Veremos<br />

mais tarde que o algortimo QR é simplesmente uma implementação de um procedimento conhecido como<br />

iteração simultânea, o qual é uma extensão natural do método das potências. Consequentemente, pode ser<br />

mostrado que a sequência QR converge, sob certas condições, para uma matriz triangular superior na forma<br />

⎡<br />

⎤<br />

λ1 ∗ · · · ∗<br />

⎢<br />

. ..<br />

. ⎥<br />

λ2 ⎢<br />

. ⎥<br />

⎢<br />

⎣<br />

. ⎥<br />

.. ∗ ⎦<br />

onde os autovalores da diagonal principal aparecem em ordem descrescente de magnitude. Em particular,<br />

como as matrizes da sequência QR são semelhantes, se A é hermitiana então a sequência converge para uma<br />

matriz diagonal.<br />

O algoritmo básico QR é ineficiente para uso prático. Cada decomposição QR custa 4<br />

3n3 flops e cada<br />

multiplicação matricial custa O n3 flops. Além disso, a convergência para a forma triangular é muito<br />

vagarosa, de forma que um número muito grande de passos é necessário antes que se atinja um limite de<br />

tolerância razoável. No que se segue, veremos procedimentos para diminuir os custos das decomposições<br />

QR e aumentar a velocidade de convergência do método. O primeiro procedimento, reduzir a matriz à sua<br />

λn


Rodney Josué Biezuner 111<br />

forma de Hessenberg, reduz cada passo no algoritmo QR a um custo de O n 2 flops para uma matriz geral<br />

e O (n) para uma matriz hermitiana. O segundo procedimento, deflação e deslocamento usando o quociente<br />

de Rayleigh, reduz o número de iterações necessárias para produzir convergência na precisão da máquina a<br />

O (n) iterações. Assim o custo total do algoritmo QR na sua implementação mais eficiente será O n 3 flops<br />

para matrizes gerais e O n 2 flops para matrizes hermitianas.<br />

6.3.1 Redução de uma matriz a sua forma de Hessenberg<br />

O custo das decomposições QR é reduzido drasticamente se reduzirmos a matriz A à sua forma de Hessenberg<br />

antes de começar as iterações QR, já que o custo de uma decomposição QR para matrizes de Hessenberg<br />

é O n 2 ; se além disso a matriz for Hermitiana, ou seja, tridiagonal, o custo é apenas O (n). Também o<br />

custo da multiplicação, de uma matriz de Hessenberg superior por uma matriz triangular, é reduzido para<br />

O n 2 . Essa redução funciona porque o algoritmo QR preserva a forma de Hessenberg, de modo que todas<br />

as matrizes da sequência QR são de Hessenberg assim como os fatores Q:<br />

6.8 Proposição. Seja H ∈ Mn (C) uma matriz de Hessenberg superior. Então toda matriz da sequência<br />

QR é também uma matriz de Hessenberg superior. Além disso, os fatores Qk da decomposição Ak−1 =<br />

QkRk também são Hessenberg superiores.<br />

Prova: Assuma A invertível, de modo que todas as matrizes da sequência QR são invertíveis; em particular,<br />

os fatores Qk, Rk também são invertíveis. Suponha por indução que Ak−1 é uma matriz de Hessenberg<br />

superior. Seja Ak−1 = QkRk uma decomposição QR de Ak−1. Afirmamos que<br />

Qk = Ak−1R −1<br />

k<br />

é uma matriz de Hessenberg superior. De fato, como a inversa de uma matriz triangular superior é uma<br />

matriz triangular superior, Qk é o produto de uma matriz de Hessenberg superior e de uma matriz triangular<br />

superior, logo também é uma matriz de Hessenberg superior. Segue que Ak = RkQk é o produto de uma<br />

matriz triangular superior e uma matriz de Hessenberg superior, logo também é uma matriz de Hessenberg<br />

superior.<br />

O caso geral, em que A é singular, é um pouco mais difícil. De fato, não é verdade que toda decomposição<br />

QR de uma matriz de Hessenberg superior vai produzir um fator Q Hessenberg superior. Mas é possível<br />

provar que é sempre possível escolher a decomposição QR de tal forma que o fator Q produzido é Hessenberg<br />

superior (veja [Watkins]). <br />

Antes de descrever o algoritmo que transforma uma matriz geral em uma matriz de Hessenberg superior<br />

(o custo da transformação será de 10<br />

3 n3 flops) vamos introduzir o conceito de refletores de Householder que<br />

são usados para introduzir zeros abaixo da subdiagonal inferior.<br />

No que se segue assumiremos sempre a norma vetorial como sendo a norma euclidiana.<br />

6.9 Definição. Seja u ∈ R n um vetor unitário. Então o operador Q : R n −→ R n definido por<br />

Q = I − 2uu T<br />

é chamado um refletor de Householder (ou simplesmente um refletor).<br />

A proposição a seguir resume as propriedades que caracterizam uma reflexão:<br />

6.10 Proposição. Sejam u ∈ R n um vetor unitário e Q = I − 2uu T um refletor. Então<br />

(i) Qu = −u.<br />

(ii) Qv = v para todo v ⊥ u.<br />

(iii) Q = Q T ( Q é simétrico).<br />

(6.11)


Rodney Josué Biezuner 112<br />

(iv) Q T = Q −1 ( Q é ortogonal).<br />

(v) Q −1 = Q ( Q é uma involução).<br />

Prova: (i) Usando o fato que u T u = 〈u, u〉 = 1, temos<br />

(ii) Usando o fato que u T v = 〈u, v〉 = 0, temos<br />

(iii)<br />

(iv),(v) Usando (iii) segue que<br />

Qu = u − 2 uu T u = u − 2u u T u = u − 2u = −u<br />

Qv = v − 2 uu T v = u − 2u u T v = u − 0 = u.<br />

Q T = I − 2uu T T = I − 2 u T T u T = I − 2uu T = Q.<br />

QQ T = QQ = I − 2uu T I − 2uu T = I − 4uu T + 4uu T uu T<br />

= I − 4uu T + 4u u T u u T = I − 4uu T + 4uu T<br />

= I.<br />

<br />

Em outras palavras Q = I − 2uu T leva cada vetor x ∈ R n em sua reflexão com relação ao hiperplano<br />

H = {v : 〈u, v〉 = 0} ortogonal a u.<br />

A possibilidade do uso de refletores para criar zeros em matrizes segue do seguinte resultado:<br />

6.11 Teorema. Sejam x, y ∈ R n tais que x = y mas x = y. Então existe um único refletor tal que<br />

Qx = y.<br />

Prova: (Existência) Para encontrar um vetor u tal que I − 2uu T x = y, primeiro notamos que o hiperplano<br />

de reflexão bisecta o ângulo entre x e y, de modo que o vetor x − y deve ser perpendicular a este plano.<br />

Portanto, nosso candidato é<br />

u =<br />

De fato, de (i) e (ii) da proposição anterior, temos<br />

pois<br />

Logo,<br />

<br />

x − y<br />

. (6.12)<br />

x − y<br />

Q (x − y) = y − x,<br />

Q (x + y) = x + y,<br />

〈x − y, x + y〉 = 〈x, x〉 + 〈x, y〉 − 〈y, x〉 − 〈y, y〉 = x 2 − y 2 = 0.<br />

Qx = 1<br />

1<br />

[Q (x − y) + Q (x + y)] = [y − x + x + y] = y.<br />

2 2<br />

6.12 Corolário. Seja x ∈ Rn um vetor não nulo. Então existe um refletor Q tal que<br />

⎡<br />

⎢<br />

Q ⎢<br />

⎣<br />

x1<br />

x2<br />

.<br />

.<br />

⎤<br />

⎥<br />

⎦ =<br />

⎡<br />

∗<br />

⎢ 0<br />

⎢ .<br />

⎣ .<br />

0<br />

⎤<br />

⎥<br />

⎦ .<br />

xn


Rodney Josué Biezuner 113<br />

Prova: Escolha y = (± x , 0, . . . , 0) no teorema anterior, com o sinal escolhido de tal forma a garantir que<br />

x = y. <br />

No caso complexo, basta tomar<br />

Q = I − 2uu ∗<br />

(6.13)<br />

e temos resultados análogos, bastando substituir simétrico ortogonal por hermitiano unitário.<br />

Vamos agora descrever o algoritmo para reduzir uma matriz geral A à forma de Hessenberg. Cada passo<br />

introduz os zeros nas posições desejadas de cada coluna, da primeira até a última, em um total de n−2 passos<br />

(já que evidentemente não há necessidade de transformar as últimas 2 colunas da matriz para colocá-la na<br />

forma de Hessenberg). Primeiro faça uma partição por blocos de A na forma<br />

<br />

a11 c<br />

A =<br />

T <br />

b A<br />

Seja Q1 : Fn−1 −→ Fn−1 um refletor (onde F = R ou C) tal que<br />

⎡ ⎤<br />

τ1<br />

⎢<br />

Q1b<br />

⎢ 0 ⎥<br />

= ⎢<br />

⎣ .<br />

⎥<br />

. ⎦<br />

0<br />

onde |τ1| = b e τ1b1 < 0. Defina o refletor Q1 : F n −→ F n<br />

e tome<br />

Então<br />

T 1 0<br />

Q1 =<br />

0 Q1<br />

<br />

⎡<br />

⎢<br />

A1/2 = Q1A = ⎢<br />

⎣<br />

A1 = Q1AQ −1<br />

1 = Q1AQ1 = A 1/2Q1 =<br />

⎡<br />

⎢<br />

⎣<br />

a11<br />

τ1<br />

0<br />

.<br />

0<br />

a11<br />

τ1<br />

0<br />

.<br />

.<br />

0<br />

c T Q1<br />

c T<br />

Q1 A<br />

Q1 A Q1<br />

⎤<br />

⎤<br />

⎥<br />

⎦<br />

⎡<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ = ⎢<br />

⎥ ⎢<br />

⎦ ⎣<br />

a11 ∗ · · · ∗<br />

Este é o fim do primeiro passo: a matriz A1, semelhante à matriz A através de uma matriz ortogonal, tem<br />

zeros na primeira coluna abaixo do primeiro elemento da subdiagonal.<br />

O segundo passo cria zeros na segunda coluna de A1, isto é, na primeira coluna de A1, nas posições<br />

desejadas. Assim, usamos um refletor Q2 : Fn−2 −→ Fn−2 exatamente como no primeiro passo, exceto que<br />

usamos A1 ao invés de A, e definimos<br />

⎡<br />

⎢<br />

Q2 = ⎢<br />

⎣<br />

1 0<br />

0 1<br />

0 0<br />

. .<br />

. .<br />

0 0<br />

0 · · · 0<br />

0 · · · 0<br />

Q2<br />

⎤<br />

⎥<br />

⎦<br />

τ1<br />

0<br />

.<br />

0<br />

A1<br />

⎤<br />

⎥ .<br />

⎥<br />


Rodney Josué Biezuner 114<br />

e<br />

Daí,<br />

⎡<br />

⎢<br />

A3/2 = Q2A1 = ⎢<br />

⎣<br />

a11 ∗ ∗ · · · ∗<br />

τ1 ∗ ∗ · · · ∗<br />

0<br />

.<br />

.<br />

0<br />

A2 = Q2A1Q −1<br />

2 = Q2A1Q2 = A 3/2Q2 =<br />

τ2<br />

.<br />

.<br />

0<br />

⎡<br />

⎢<br />

⎣<br />

Q2 A1<br />

⎤<br />

⎥ .<br />

⎥<br />

⎦<br />

a11 ∗ ∗ · · · ∗<br />

τ1<br />

0<br />

∗ ∗ · · · ∗<br />

.<br />

0<br />

τ2<br />

.<br />

0<br />

Q2 A1 Q2<br />

Procedemos desta forma em n−2 passos até encontrar uma matriz de Hessenberg An−2 semelhante à matriz<br />

original A através de uma matriz ortogonal Q = Qn−2 . . . Q2Q1.<br />

6.3.2 Aceleração do algoritmo QR<br />

Ordene os autovalores de A na forma<br />

|λ1| |λ2| . . . |λn| .<br />

Considere uma sequência (Ak) de iteradas do algoritmo QR tal que cada matriz Ak é de Hessenberg superior.<br />

Denote<br />

⎡<br />

⎤<br />

⎢<br />

Ak = ⎢<br />

⎣<br />

ak 11 ak 12 ak 13 ak 14 . . . . . . ak 1n<br />

ak 21 ak 22 ak 23 ak 24 . . . . . . ak 2n<br />

0 ak 32 ak 33 ak 34 . . . . . . ak 3n<br />

0 0 ak 43 ak . ..<br />

44<br />

. . . ak 4n<br />

0 0 0<br />

.<br />

.<br />

.<br />

.<br />

.<br />

.<br />

.<br />

.<br />

.<br />

.<br />

.<br />

.<br />

. ..<br />

. ..<br />

. ..<br />

. ..<br />

. ..<br />

. ..<br />

. ..<br />

. ..<br />

. ..<br />

.<br />

.<br />

.<br />

.<br />

. .. a k n−1,n<br />

0 0 0 0 . . . 0 a k n,n−1 a k nn<br />

No algoritmo QR as entradas subdiagonais (ou a maioria delas) convergem para 0 quando n → ∞. Mais<br />

precisamente, como veremos mais tarde, se<br />

então<br />

|λi| > |λi+1| ,<br />

a k i+1,i → 0 com taxa de convergência<br />

<br />

<br />

<br />

<br />

λi+1<br />

λi<br />

⎥ .<br />

⎥<br />

⎦<br />

<br />

<br />

<br />

, i = 1, . . . , n − 1.<br />

Portanto, uma maneira de acelerar a convergência do algoritmo é decrescer os quocientes |λi+1/λi|. Um modo<br />

de fazer isso é através do uso de um deslocamento, como no método das potências. A matriz deslocada A−σI<br />

tem autovalores<br />

|λ1 − σ| |λ2 − σ| . . . |λn − σ|<br />

e as taxas de convergência associadas são<br />

<br />

λi+1<br />

<br />

− σ <br />

<br />

λi − σ , i = 1, . . . , n − 1.<br />

⎤<br />

⎥ .<br />

⎥<br />


Rodney Josué Biezuner 115<br />

Assim, se escolhermos σ suficientemente próximo de um autovalor arbitrário que chamaremos λn após reordenar<br />

os índices (e assumindo λn−1 = λn), aplicando o algoritmo QR a A − σI observaremos que a<br />

(A − σI) k<br />

n,n−1 converge para 0 rapidamente. Uma vez que (A − σI)k n,n−1 seja suficientemente pequeno, esta<br />

entrada pode ser considerado 0 na prática e, adicionando σI à iterada (A − σI) k do algoritmo QR, obtemos<br />

⎡<br />

⎢<br />

Ak = ⎢<br />

⎣<br />

Ak<br />

0<br />

.<br />

0<br />

0 · · · 0 a k nn<br />

com a k nn uma boa aproximação para λn. Os autovalores restantes de Ak são os autovalores de Ak. Podemos<br />

então aplicar o algoritmo QR à matriz Ak, que tem ordem um a menos que a ordem de A. Continuando<br />

desta forma, usaremos o algoritmo QR em matrizes cada vez menores até obter todos os autovalores de A.<br />

Este processo, em que o tamanho da matriz é reduzido cada vez que um autovalor é encontrado, é chamado<br />

deflação.<br />

O próprio algoritmo QR pode ser usado para obter os valores para os deslocamentos σ, já que depois<br />

de algumas iterações a matriz está próxima da forma triangular e os valores na diagonal principal estão<br />

próximos aos autovalores de A. De fato, as entradas na diagonal principal são quocientes de Rayleigh, já<br />

que<br />

a k ii = e T i Akei = 〈Akei, ei〉 .<br />

Assim, o deslocamento pode ser modificado em cada iteração, como no método da iteração do quociente de<br />

Rayleigh, usando-se<br />

de modo que <br />

λi+1 − σk<br />

λi − σk<br />

σk = a k nn<br />

⎤<br />

⎥<br />

⎦ .<br />

<br />

<br />

<br />

→ 0 quando k → ∞<br />

e obtemos uma taxa de convergência melhor que linear. De fato, veremos que, como no método da iteração<br />

do quociente de Rayleigh, este algoritmo QR com deslocamento dado pelo quociente de Rayleigh<br />

possui convergência quadrática em geral e cúbica para matrizes hermitianas.<br />

Na prática, depois de apenas uma iteração QR já é seguro usar σ1 = a 1 nn. O único efeito dessa escolha é<br />

que a ordem dos autovalores obtidos no processo não é necessariamente crescente.<br />

O deslocamento dado pelo quociente de Rayleigh pode falhar às vezes, por exemplo quando o deslocamento<br />

obtido está a mesma distância de dois autovalores distintos, fazendo com que o método tenha dificuldade<br />

de “decidir” qual autovalor aproximar. Para evitar esta situação, é preferível usar o deslocamento de<br />

Wilkinson, que é definido como sendo o autovalor da submatriz 2 × 2<br />

<br />

a k n−1,n−1<br />

a k n,n−1<br />

ak n−1,n<br />

ak nn<br />

que está mais próximo de a k nn. Ele é fácil de calcular porque é a raiz de um polinômio do segundo grau. É<br />

possível provar para matrizes simétricas tridiagonais o algoritmo QR com deslocamento de Wilkinson sempre<br />

converge. Além disso, como estamos usando maior informação para obter o deslocamento, a taxa convergência<br />

no mínimo igual à do algoritmo QR usando o deslocamento dado pelo quociente de Rayleigh e muitas vezes<br />

melhor. Em geral, existem apenas casos muito especiais de matrizes para as quais o deslocamento de<br />

Wilkinson falha. A experiência tem mostrado que são necessárias apenas 5 ou 9 iterações do algoritmo<br />

QR para obter uma aproximação satisfatória para o primeiro autovalor e de 3 a 5 iterações em média para<br />

os autovalores restantes (às vezes menos); para matrizes hermitianas, 2 ou 3 iterações em média bastam.<br />

O deslocamento de Wilkinson tem a vantagem inicial de que pode ser usado para aproximar autovalores<br />

complexos de matrizes reais, já que ele pode ser um número complexo, enquanto que o quociente de Rayleigh


Rodney Josué Biezuner 116<br />

de uma matriz real sempre é um valor real. Para maiores detalhes sobre as informações contidas este parágrafo<br />

veja [Watkins].<br />

Por fim, às vezes ocorre durante as iterações do algoritmo QR que um elemento da subdiagonal inferior<br />

localizado próximo ao meio da matriz é suficientemente próximo de 0. Neste caso a matriz Ak tem a forma<br />

em blocos <br />

B11 B12<br />

0 B22<br />

e o problema pode ser quebrado em dois, aplicando o algoritmo QR aos blocos B11 e B22 separadamente.<br />

Como o custo de uma iteração QR de Hessenberg é O n 2 , dividindo o tamanho da matriz pela metade<br />

implica numa diminuição do custo por um fator de 4.<br />

6.3.3 Implementação prática do algoritmo QR<br />

Veja [Watkins].<br />

6.4 Iteração de subespaços e iteração simultânea<br />

No método das potências ou iteração direta, ao invés de iterarmos apenas um vetor, podemos considerar a<br />

iteração de um subespaço inteiro: se S ⊂ F n (onde F = R ou C), consideramos as iteradas<br />

S, AS, A 2 S, . . .<br />

Cada iterada A k S é um subespaço de F n que pode ser caracterizado por<br />

A k S = A k x : x ∈ S .<br />

Como no método da iteração direta as iteradas convergem para o autovetor dominante, esperamos que estes<br />

subespaços iterados convirjam para um autoespaço. Para verificar isso, precisamos definir uma noção de<br />

distância entre subespaços vetoriais.<br />

6.13 Definição. Dados dois subespaços S, T ⊂ F n , a distância entre eles é definida por<br />

dist (S, T ) = sen θ<br />

onde θ é o maior ângulo principal entre S e T . Dizemos que uma sequência de subespaços {Sk}<br />

converge para S se dist (Sk, S) → 0 e denotamos este fato por Sk → S.<br />

6.14 Teorema. Seja A ∈ Mn (F) diagonalizável com autovalores<br />

|λ1| |λ2| . . . |λn|<br />

e uma correspondente base de autovetores {v1, . . . , vn}. Suponha que |λm| > |λm+1| para algum m.<br />

Sejam<br />

Tm = 〈v1, . . . , vm〉 ,<br />

Um = 〈vm+1, . . . , vn〉 .<br />

Seja S um subespaço vetorial de dimensão m tal que S ∩ Um = {0}. Então existe uma constante C<br />

tal que<br />

dist A k <br />

λm+1<br />

<br />

S, Tm C <br />

<br />

Em particular, A k S → Tm linearmente com taxa de convergência |λm+1/λm|.<br />

λm


Rodney Josué Biezuner 117<br />

Prova: Uma demonstração rigorosa deste teorema está além dos propósitos deste curso. Daremos apenas<br />

algumas idéias para justificar o resultado.<br />

Em primeiro lugar, observe que dim A k S = m para todo k. De fato, temos<br />

ker A k ⊂ Um. (6.14)<br />

Isso pode ser facilmente visto escrevendo os vetores em coordenadas: dado um vetor v = n<br />

i=1 aivi, temos<br />

A k v =<br />

n<br />

i=1<br />

aiλ k i vi,<br />

de modo que A k v = 0 implica a1 = . . . = am = 0 pois v1, . . . , vn são linearmente independentes e λ1, . . . , λm<br />

são não nulos, já que |λ1| . . . |λm| > |λm+1| 0. Daí, (6.14) juntamente com dim S = m e S ∩Um = {0}<br />

implicam imediatamente que dim A k S = m para todo k.<br />

Agora, seja v ∈ S um vetor não nulo. Escrevendo<br />

v =<br />

n<br />

i=1<br />

segue de S∩Um = {0} que pelo menos um dos escalares a1, . . . , am é não nulo (assim, a condição S∩Um = {0}<br />

é equivalente a exigir no método das potências que o vetor inicial tenha uma componente na direção do<br />

autovetor dominante; aqui exigimos que cada vetor do subespaço tenha uma componente no autoespaço<br />

dominante). Temos<br />

A k v<br />

λ k m<br />

=<br />

m<br />

i=1<br />

ai<br />

λi<br />

λm<br />

k<br />

vi +<br />

aivi<br />

n<br />

i=m+1<br />

ai<br />

λi<br />

λm<br />

k<br />

vi.<br />

As componentes do vetor “normalizado” Akv/λk m no subespaço Um tendem a zero quando k aumenta com<br />

taxa de convergência |λm+1/λm| ou melhor (dependendo dos valores de am+1, . . . , an), consequentemente o<br />

vetor limite está no subespaço Tm. Como cada subsespaço AkS tem dimensão m, o limite dos subespaços<br />

não pode ser um subespaço próprio de Tm. <br />

Observe que a condição S ∩ Um = {0} ocorre quase sempre para uma escolha aleatória do subespaço mdimensional<br />

S (por exemplo, no caso de R3 a escolha aleatória de uma reta e um plano quase sempre resultará<br />

que o único ponto em que eles se interceptam é a origem).<br />

Para fazer a iteração de subespaços na prática, deve-se escolher uma base para S e iterar todos os<br />

vetores desta base simultaneamente. No processo de iterar o subespaço, devemos obviamente ortonormalizar<br />

a base do subespaço AkS em cada passo da iteração, usando um algoritmo robusto tal como o MGS com<br />

reortogonalização. Este processo todo é chamado iteração simultânea.<br />

Em notação matricial, a iteração simultânea pode ser descrita da seguinte maneira. Seja S um subespaço<br />

de dimensão m com base v1, . . . , vm. Utilizando um algoritmo robusto, encontramos uma base ortonormal<br />

q1, . . . , qm. Formamos então uma matriz inicial n × m com colunas ortonormais:<br />

<br />

.<br />

Em cada passo k da iteração, calculamos<br />

Q0 = q 0 1 · · · q 0 m<br />

Bk = AQk<br />

e fazemos a decomposição QR de Bk para obter uma base ortonormal para o subespaço A k S: se<br />

Bk = Qk+1Rk+1,<br />

então as colunas ortonormais de Qk+1 formam uma base ortonormal para A k S. No limite, teremos que as<br />

colunas das matrizes Qk convergem para os m autovetores dominantes (nas condições do teorema anterior).


Rodney Josué Biezuner 118<br />

6.4.1 Equivalência entre o Algoritmo QR e Iteração Simultânea<br />

O algoritmo QR puro é equivalente à iteração simultânea aplicada à matriz identidade, isto é, tomando<br />

Q0 = I. Ou seja, se na iteração simultânea<br />

⎡<br />

Q0 = I,<br />

⎣ Bk−1 = AQk−1, (6.15)<br />

Bk−1 = QkRk, definirmos<br />

e, reciprocamente, no algoritmo QR ⎡<br />

definirmos<br />

segue que<br />

Ak = Q ∗<br />

kAQ k, (6.16)<br />

Rk = Rk · · · R1<br />

⎣ A0 = A,<br />

Ak−1 = QkRk,<br />

Ak = RkQk,<br />

(6.17)<br />

(6.18)<br />

Qk = Q1 · · · Qk, (6.19)<br />

Rk = Rk · · · R1<br />

(6.20)<br />

Ak = Ak, (6.21)<br />

Q k = Qk, (6.22)<br />

Rk = Rk. (6.23)<br />

De fato, afirmamos que as matrizes Q k, Rk e as matrizes Qk, Rk são ambas caracterizadas como sendo a<br />

decomposição QR (portanto única) da matriz A k , a k-ésima potência de A:<br />

A k = Q kRk = Qk Rk. (6.24)<br />

A verificação de todos estes fatos segue por indução. O caso k = 0 é imediato, já que B0 = A. Como<br />

hipótese de indução, assumimos<br />

donde<br />

Daí, no caso da iteração simultânea temos<br />

enquanto que no algoritmo QR temos<br />

Ak−1 = Ak−1,<br />

A k−1 = Qk−1 Rk−1 = Q k−1Rk−1,<br />

Q k−1 = Qk−1,<br />

Rk−1 = Rk−1.<br />

A k = AA k−1 = AQ k−1Rk−1 = Q kRkRk−1 = Q kRk,<br />

A k = AA k−1 = A Qk−1 Rk−1 = Qk−1Ak−1 Rk−1 = Qk−1QkRk Rk−1 = Qk Rk.


Rodney Josué Biezuner 119<br />

Portanto,<br />

donde<br />

A k = Q kRk = Qk Rk<br />

Q k = Qk,<br />

Rk = Rk.<br />

Finalmente, pelo algoritmo QR podemos escrever (como em (6.10))<br />

donde, pela hipótese de indução,<br />

Ak = Q ∗ kAk−1Qk,<br />

Ak = Q ∗ kAk−1Qk = Q ∗ kQ ∗<br />

k−1AQ k−1Qk = Q ∗ k Q ∗ k−1A Qk−1Qk<br />

= Q ∗ kQ ∗ k−1 · · · Q ∗ 1AQ1 · · · Qk−1Qk = Q ∗ kA Qk<br />

= Ak.<br />

6.4.2 Convergência do Algoritmo QR<br />

Por simplicidade considere A simétrica. A relação<br />

A k = Qk Rk = (Q1 · · · Qk) (Rk · · · R1)<br />

explica porque o algoritmo QR encontra os autovetores de A: ele constrói bases ortonormais para o espaço<br />

coluna das potências sucessivas A k (e as colunas de A k são A k e1, . . . , A k en). A relação<br />

Ak = Q t kA Qk<br />

explica porque o algoritmo QR encontra os autovalores de A: os elementos da diagonal de Ak são os quocientes<br />

de Rayleigh correspondentes às colunas de Qk, isto é, aos autovetores de A. Como os autovetores de A são<br />

ortogonais e A-ortogonais, os elementos fora da diagonal principal também convergem para 0.<br />

6.5 Método de Arnoldi e Algoritmo de Lanczos<br />

Para matrizes esparsas, não simétricas, o método de Arnoldi é o método mais usado para encontrar os<br />

autovalores e autovetores, e para matrizes simétricas esparsas o método escolhido é o algoritmo de Lanczos.<br />

Na Proposição 5.7 vimos que no método de Arnoldi obtemos<br />

onde<br />

AQm = Qm+1 Hm<br />

Qm = q1 . . . qm<br />

,<br />

Qm+1 = q1 . . . qm qm+1<br />

,<br />

(6.25)<br />

são matrizes com colunas ortonormais e Hm é uma matriz de Hessenberg superior (m + 1) × m (na notação<br />

daquela proposição, a matriz Qm é denotada por Vm). Como naquela proposição, denote por Hm a matriz<br />

de Hessenberg superior quadrada obtida através de Hm quando suprimimos a última linha desta. Segue que<br />

<br />

AQm = QmHm + qm+1 0 . . . 0 hm+1,m


Rodney Josué Biezuner 120<br />

ou<br />

AQm = QmHm + qm+1hm+1,me t m. (6.26)<br />

Como vimos no capítulo anterior, se q, Aq, . . . , A m q são linearmente independentes, então hm+1,m = 0. Se<br />

eles são linearmente dependentes, então hm+1,m = 0 e<br />

AQm = QmHm. (6.27)<br />

6.15 Proposição. Sejam A ∈ Mn (F) e q1, . . . , qm ∈ Fn linearmente independentes. Sejam S = 〈q1, . . . , qm〉<br />

e considere a matriz n × m<br />

Q = q1 . . . qm<br />

<br />

.<br />

Então S é invariante sob A se e somente se existe algum B ∈ Mm (F) tal que<br />

AQ = QB.<br />

Além disso, todo autovalor de B é um autovalor de A com autovetor correspondente em S.<br />

Prova. Se existe tal B, então<br />

Aqj =<br />

m<br />

qibij ∈ S.<br />

i=1<br />

Reciprocamente, se S é invariante sob A, então para cada índice j = 1, . . . , m existem escalares bij tais que<br />

Aqj =<br />

m<br />

i=1<br />

Defina B = (bij). Se w é um autovetor de B com autovalor λ, então v = Qw ∈ S é um autovetor de A com<br />

autovalor λ. <br />

Portanto, os autovalores da matriz de Hessenberg Hm são também autovalores de A. Se m não é muito<br />

grande, podemos então usar o algoritmo QR para encontrar os autovalores de Hm. Na prática, dificilmente<br />

obteremos hm+1,m = 0 exatamente, mas se hm+1,m é próximo de zero podemos esperar que estamos próximos<br />

de um subespaço invariante e, portanto, que os autovalores de Hm estão próximos aos autovalores de A:<br />

6.16 Teorema. Sejam Qm, Hm e hm+1,m gerados pelo método de Arnoldi. Seja λ um autovalor de Hm<br />

com autovetor unitário x. Seja v = Qmx. Então<br />

onde xm denota a última componente de x.<br />

bijqi.<br />

Av − λv = |hm+1,m| |xm|<br />

O método de Arnoldi em geral obtém os autovalores periféricos. Os autovalores interiores podem ser encontradas<br />

através da estratégia do deslocamento.<br />

Quando A é simétrica, como vimos no capítulo anterior Hm é uma matriz tridiagonal Tm que pode ser<br />

obtida através de uma fórmula de recorrência.<br />

Veja [Watkins] para detalhes sobre implementações eficientes do método de Arnoldi e algoritmo de Lanczos<br />

para encontrar autovalores e autovetores de matrizes esparsas.<br />

6.6 O Problema de Autovalor Simétrico<br />

Para matrizes simétricas, existem algoritmos bem mais eficiente que o algoritmo QR. Veja [Parlett],<br />

[Trefethen-Bau], entre outros.


Rodney Josué Biezuner 121<br />

6.7 Exercícios<br />

6.1 Suponha que A ∈ Mn (C) é uma matriz diagonalizável tal que nenhum autovalor de A diferente do<br />

autovalor dominante λ1 tem módulo igual a A. Em outras palavras, se r é a dimensão do autoespaço<br />

associado a λ1, ou autovalores de A satisfazem<br />

com<br />

|λ1| = . . . = |λr| > |λ2| . . . |λn|<br />

λ1 = . . . = λr.<br />

Mostre que o método das potências pode ser aplicado a A para encontrar λ1 e um autovetor unitário<br />

no autoespaço associado a λ1.<br />

6.2 Usando a forma canônica de Jordan, mostre que a hipótese de A ser diagonalizável pode ser removida<br />

da hipótese do exercício anterior decompondo o vetor inicial v0 como a soma de um vetor na direção<br />

do autovetor dominante v1 e de vetores principais nos subespaços de Jordan da matriz.<br />

6.3 Prove a Proposição 6.7 sem assumir que o autovalor é simples.<br />

6.4 Prove que o produto de uma matriz triangular superior e uma matriz de Hessenberg superior é uma<br />

matriz de Hessenberg superior. O que se pode dizer sobre o produto de duas matrizes de Hessenberg<br />

superiores?<br />

6.5 Prove a unicidade do refletor na Proposição 6.11.


Referências Bibliográficas<br />

[BHM] William L. BRIGGS, Van Emden HENSON e Steve F. McCORMICK, A Multigrid<br />

Tutorial, 2nd. Ed., SIAM, 2000.<br />

[Demmel] James W. DEMMEL, Applied Numerical <strong>Linear</strong> Algebra, SIAM, 1997.<br />

[Hackbusch] W. HACKBUSCH, Iterative Solutions of Large Sparse Systems of Equations, Applied<br />

Mathematical Sciences 95, Springer-Verlag, 1994.<br />

[Hoffman-Kunze] K. HOFFMAN e R. KUNZE, <strong>Linear</strong> Algebra, 2nd. Ed., Prentice Hall, 1971.<br />

[Horn-Johnson] Roger A. HORN e Charles R. JOHNSON, Matrix Analysis, Cambridge University<br />

Press, 1985.<br />

[Komzsik] Louis KOMZSIK, The Lanczos Method: evolution and application, SIAM, 2003.<br />

[Kreyszig] KREYSZIG, E., Introductory Functional Analysis with Applications, John Wiley &<br />

Sons, 1978.<br />

[Mak] Ronald MAK, Java Number Cruncher: the Java Programmer’s Guide to Numerical<br />

Computing, Prentice Hall, 2003.<br />

[Meurant] Gérard MEURANT, The Lanczos and Conjugate Gradient Algorithms: from theory<br />

to finite precision computations, SIAM, 2006.<br />

[Parlett] Beresford N. PARLETT, The Symmetric Eigenvalue Problem, SIAM, 1998.<br />

[Saad] Yousef SAAD, Iterative Methods for Sparse <strong>Linear</strong> Systems, 2nd Ed., SIAM, 2003.<br />

[Stoer-Bulirsch] Josef STOER e Roland BULIRSCH, Introduction to Numerical Analysis, 3rd Ed.,<br />

Springer, 2002.<br />

[Strang] Gilbert STRANG, <strong>Linear</strong> Algebra and its Applications, 3rd Ed., Harcourt Brace Jovanovich,<br />

1988.<br />

[Trefethen-Bau] Lloyd N. TREFETHEN e David BAU, Numerical <strong>Linear</strong> Algebra, SIAM, 1997.<br />

[van der Vorst] Henk A. van der VORST, Iterative Krylov Methods for Large <strong>Linear</strong> Systems, Cambridge<br />

University Press, 2003.<br />

[Watkins] David S. WATKINS, Fundamentals of Matrix Computations, 2nd Ed., John Wiley &<br />

Sons, 2002.<br />

[Young] David M. YOUNG, Iterative Solutions of Large <strong>Linear</strong> Systems, Academic Press,<br />

1971.<br />

122

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!