Você está na página 1de 123

Notas de Aula

Álgebra Linear Numérica

1
Rodney Josué Biezuner
Departamento de Matemática
Instituto de Ciências Exatas (ICEx)
Universidade Federal de Minas Gerais (UFMG)

Notas de aula da disciplina Álgebra Linear Numérica do Curso de Graduação


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

30 de novembro de 2009

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

0 Introdução: Representação de Números Reais no Computador 3


0.1 Ponto Flutuante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
0.2 Erros de Arredondamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
0.3 O Padrão de Ponto Flutuante IEEE 754 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
0.3.1 Números normalizados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
0.3.2 Números denormalizados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
0.3.3 Outros valores numéricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

1 Matrizes Esparsas 7
1.1 Problema Modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.1 Problema de Poisson Unidimensional . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.1.2 Problema de Poisson Bidimensional . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2 Matrizes Esparsas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3 Implementação Computacional de Matrizes Esparsas . . . . . . . . . . . . . . . . . . . . . . . 11

2 Invertibilidade de Matrizes Esparsas 13


2.1 Normas Matriciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2 Matrizes Diagonalmente Dominantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
2.3 Teorema dos Discos de Gershgorin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.4 Propriedade FC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.5 Matrizes Irredutı́veis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.6 Exercı́cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

3 Métodos Iterativos Lineares 31


3.1 Método Iterativos Básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.1.1 Método de Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.1.2 Método de Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.1.3 Método SOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
3.1.4 Comparação da Velocidade de Convergência dos Três Métodos no Problema Modelo . 34
3.1.5 Método de Jacobi Amortecido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2 Análise de Convergência dos Métodos Iterativos Lineares . . . . . . . . . . . . . . . . . . . . . 36
3.2.1 Convergência dos Métodos Iterativos Lineares . . . . . . . . . . . . . . . . . . . . . . . 37
3.2.2 Velocidade de Convergência dos Métodos Iterativos Lineares . . . . . . . . . . . . . . 40
3.2.3 Convergência para Matrizes Simétricas Positivas Definidas . . . . . . . . . . . . . . . . 42
3.3 Convergência dos Métodos Iterativos Lineares para Matrizes de Discretização . . . . . . . . . 44
3.3.1 Convergência do Método de Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.3.2 Convergência do Método de Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . . 50
3.3.3 Convergência do Método SOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.3.4 Convergência do Método de Jacobi Amortecido . . . . . . . . . . . . . . . . . . . . . . 59
3.3.5 Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

1
Rodney Josué Biezuner 2

3.4 Exercı́cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

4 Métodos de Projeção 62
4.1 Teoria Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.1.1 Representação Matricial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.1.2 Minimização de Funcionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.1.3 Estimativa do Erro em Métodos de Projeção . . . . . . . . . . . . . . . . . . . . . . . 66
4.2 Caso Unidimensional: Métodos de Descida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.2.1 Métodos de Descida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.2.2 Método da Descida Mais Acentuada . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.3 Exercı́cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

5 Métodos de Subespaços de Krylov 74


5.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.2 Subespaços de Krylov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
5.3 Algoritmo de Arnoldi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.4 Implementação Prática: Métodos de Ortogonalização Estáveis . . . . . . . . . . . . . . . . . . 79
5.4.1 Método de Gram-Schmidt Modificado (MGS) . . . . . . . . . . . . . . . . . . . . . . . 79
5.4.2 Método de Gram-Schmidt Modificado com Reortogonalização (MGSR) . . . . . . . . . 82
5.5 Método de Arnoldi para Sistemas Lineares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.6 Decomposição QR via MGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
5.7 Algoritmo de Lanczos e Método do Gradiente Conjugado . . . . . . . . . . . . . . . . . . . . 87
5.8 Método do Gradiente Conjugado como um Método de Descida . . . . . . . . . . . . . . . . . 91
5.8.1 Convergência do Método do Gradiente Conjugado em Aritmética Exata . . . . . . . . 94
5.9 Velocidade de Convergência do Método do Gradiente Conjugado . . . . . . . . . . . . . . . . 96
5.9.1 Polinômios de Chebyshev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.9.2 Velocidade de Convergência do CG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
5.10 Exercı́cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

6 O Problema do Autovalor 102


6.1 Caracterização Variacional dos Autovalores de uma Matriz Simétrica: Quociente de Rayleigh 102
6.2 Método das Potências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
6.2.1 Método das Potências Inverso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
6.2.2 Método das Potências com Deslocamento . . . . . . . . . . . . . . . . . . . . . . . . . 107
6.2.3 Iteração do Quociente de Rayleigh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
6.3 Algoritmo QR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
6.3.1 Redução de uma matriz a sua forma de Hessenberg . . . . . . . . . . . . . . . . . . . . 111
6.3.2 Aceleração do algoritmo QR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
6.3.3 Implementação prática do algoritmo QR . . . . . . . . . . . . . . . . . . . . . . . . . . 116
6.4 Iteração de subespaços e iteração simultânea . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
6.4.1 Equivalência entre o Algoritmo QR e Iteração Simultânea . . . . . . . . . . . . . . . . 118
6.4.2 Convergência do Algoritmo QR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
6.5 Método de Arnoldi e Algoritmo de Lanczos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
6.6 O Problema de Autovalor Simétrico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
6.7 Exercı́cios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Capı́tulo 0

Introdução: Representação de
Números Reais no Computador

Computadores digitais usam um número finito de bits para representar um número real, portanto eles
podem representar apenas um subconjunto finito dos números reais, o que leva a dois tipos diferentes de
limitações: (1) números representados não podem ser arbitrariamente grandes ou arbitrariamente pequenos;
(2) existem lacunas entre os numéros representados. Estas limitações fı́sicas levam respectivamente aos erros
de overf low e underf low e aos erros de arredondamento.
Para discutir estes erros de maneira inteligente, introduzimos alguma terminologia.

0.1 Definição. Definimos o erro absoluto causado por uma computação por

Erro absoluto = |(valor calculado) − (valor exato)| .

O erro relativo causado por uma computação é definido por


¯ ¯
¯ erro absoluto ¯
Erro relativo = ¯¯ ¯.
valor exato ¯

O erro relativo permite comparar entre os erros cometidos de maneira significativa. Por exemplo, o erro
absoluto entre 1 (valor exato) e 2 (valor calculado) e o erro absoluto entre 1.000.000 (valor exato) e 1.000.001
(valor calculado) são os mesmos. No entanto, o erro relativo no primeiro caso é 1, enquanto que o erro
relativo no segundo caso é 10−6 , expressando o fato intuitivo que o erro cometido no primeiro caso é muito
maior que o erro cometido no segundo caso. Às vezes o erro relativo é expresso como uma porcentagem:

Erro percentual = [(erro relativo) × 100] %.

Assim, o erro percentual no primeiro caso é 100%, enquanto que o erro percentual no segundo caso é
10−4 = 0, 0001%.

0.1 Ponto Flutuante


Na Matemática Pura, os números reais são infinitos, infinitamente grandes e infinitamente pequenos. Não
existe um número maior ou um número menor. Além disso, eles também são continuamente distribuı́dos:
não existem espaços entre números reais, pois entre quaisquer dois números reais sempre existe outro número
real. Mais que isso, eles são distribuı́dos uniformemente na reta real. Um número real é infinitamente preciso:

3
Rodney Josué Biezuner 4

os números depois do ponto decimal são infinitos (incluindo o 0). Em outras palavras, usando a base 10,
números reais correspondem a séries da forma
X∞
an
a = a0 +
n=1
10n

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


O padrão para representar números reais em Matemática Computacional é o número de ponto flutu-
ante. Números de ponto flutuante não são infinitos: existe um número de ponto flutuante máximo e um
número de ponto flutuante mı́nimo. Existe um número fixado de pontos flutuantes, logo existem espaços
entre eles. Números de ponto flutuante de precisão simples (tipo float) tem aproximadamente 8 dı́gitos
decimais significantes, enquanto que números de ponto flutuante de precisão dupla (tipo double) tem aprox-
imadamente 17 dı́gitos decimais significantes. O qualificativo “aproximadamente” se refere ao fato que os
números de ponto flutuante são armazenados no computador na base binária, logo a conversão da base
binária para a base decimal introduz alguma imprecisão.
Um número de ponto flutuante é armazenado internamente em duas partes: um significando e um
expoente, semelhante à notação cientı́fica.
Esta escolha de representação garante que a distribuição dos valores representados em ponto flutuante
não será uniforme. Para entender isso, vamos assumir que o significando é limitado a um único dı́gito decimal
e que o expoente é restrito aos valores −1, 0, 1. A tabela abaixo registra todos os números reais positivos
que podemos representar:

−1 0 1
0 0
1 1 × 10−1 = 0, 1 1 × 100 =1 1 × 101 = 10
2 2 × 10−1 = 0, 2 2 × 100 =2 2 × 101 = 20
3 3 × 10−1 = 0, 3 3 × 100 =3 3 × 101 = 30
4 4 × 10−1 = 0, 4 4 × 100 =4 4 × 101 = 40
5 5 × 10−1 = 0, 5 5 × 100 =5 5 × 101 = 50
6 6 × 10−1 = 0, 6 6 × 100 =6 6 × 101 = 60
7 7 × 10−1 = 0, 7 7 × 100 =7 7 × 101 = 70
8 8 × 10−1 = 0, 8 8 × 100 =8 8 × 101 = 80
9 9 × 10−1 = 0, 9 9 × 100 =9 9 × 101 = 90

O fato do espaço entre os valores em ponto flutuante aumentar em proporção ao tamanho dos números é
que justifica o nome ponto flutuante. Uma representação em que os espaços entre os valores representados
tem um tamanho fixo é chamada uma representação em ponto fixo.

0.2 Definição. Definimos a precisão de um ponto flutuante como sendo o número de dı́gitos significativos
que ele possui em seu significando. A exatidão de um ponto flutuante é a sua aproximação do valor
exato.

Quanto mais dı́gitos significativos um ponto flutuante possui, mais preciso ele é: o double 0.3333333333333333
é uma representação mais precisa do número real 1/3 do que o float 0.3333333. Por outro lado, o float
0.3333333 é uma representação mais exata de 1/3 do que o double 0.3444444444444444, apesar deste ser
um ponto flutuante mais preciso, porque a maioria dos seus dı́gitos significativos estão errados. Os erros
computacionais tais como os erros de cancelamento e arredondamento afetam a exatidão de um valor em
ponto flutuante. Aumentar a precisão de float para double tem o potencial de aumentar a exatidão, mas
não a garante.
Rodney Josué Biezuner 5

0.2 Erros de Arredondamento


Quando um valor computado está entre dois valores representáveis, ele será substituı́do pelo valor represen-
tado mais próximo. Esta é a origem dos erros de arredondamento.

0.3 Definição. Definimos o erro de arredondamento por

Erro de arredondamento = |(valor representado) − (valor exato)| .

0.4 Definição. Um erro de cancelamento é um erro de arredondamento que ocorre quando a maioria
dos dı́gitos significativos são perdidos durante a subtração de dois valores aproximadamente iguais.

0.3 O Padrão de Ponto Flutuante IEEE 754


Antes do padrão IEEE 754 ser publicado em 1985, existiam muitos formatos de ponto flutuante implementa-
dos em hardware e software, o que dificultava a portabilidade dos programas. Os resultados obtidos variavam
de uma máquina para outra. Atualmente, a maioria dos fabricadores aderem ao padrão IEEE 754, fruto de
uma cooperação histórica entre cientistas de computação e desenhistas de chips de microprocessadores. A
sigla “IEEE” significa Institute of Electrical and Electronics Engineers.
Os formatos de precisão aritmética simples float e dupla double são armazenados em 32 bits e 64 bits,
respectivamente. Cada formato divide um número em três partes: sinal (um bit), expoente e fração. Os dois
formatos diferem quanto ao número de bits alocados para o expoente e para a fração. No formato float 8
bits são alocados para o expoente e 23 para a fração, enquanto que no formato double 11 bits são alocados
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
negativo. O expoente não possui sinal: para representar expoentes negativos, o padrão adiciona um viés
positivo; para obter o valor verdadeiro do expoente (sem viés), é necessário subtrair o viés. No formato de
precisão simples, o expoente com 8 bits pode armazenar valores (com viés) entre 0 e 255, mas 0 e 255 são
reservados; o viés é 127, de modo que os valores verdadeiros (sem viés) do expoente variam entre −126 e
+127. No formato de precisão dupla, o expoente com 11 bits pode armazenar valores (com viés) entre 0 e
2047, com 0 e 2047 são reservados; o viés é 1023, de modo que os valores verdadeiros (sem viés) do expoente
variam entre −1022 e +1023.

0.3.1 Números normalizados


Representemos por s o sinal, e o expoente e f a fração. Quando e não é um valor reservado (isto é, 1 6 e 6 254
no formato float e 1 6 e 6 2047 no formato double) existe um algarismo 1 e um ponto binário . implı́citos
à esquerda do primeiro bit de f , de modo que o número representado por s, e, f é o número
s
n = (−1) × (1.f ) × 2E

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


o ponto binário implı́citos, juntamente com a parte fracionária f , constituem o significando do número, de
modo que um número de precisão simples possui 24 bits no seu significando, enquanto que um número de
precisão dupla possui 53 bits no seu significando.
Assim, o maior valor possı́vel em módulo para float corresponde a

s = 1, e = 254 e f = 11111111111111111111111,

ou seja,
X23
1
i
× 2127 ≈ 3, 4028 × 1038 ,
i=0
2
Rodney Josué Biezuner 6

enquanto que o maior valor possı́vel em módulo para double corresponde a


s = 0, e = 2047 e f = 1111111111111111111111111111111111111111111111111111,
ou seja,
X52
1
i
× 21023 ≈ 1, 7977 × 10308 .
i=0
2

0.3.2 Números denormalizados


Se e = 0 (um dos valores reservados) e f 6= 0, nós temos o que se chama um número denormalizado (ou
subnormal ). Existe um algarismo 0 e um ponto binário . implı́citos à esquerda do primeiro bit de f , de modo
que o número representado por s, e, f é o número
s
n = (−1) × (0.f ) × 2E
onde E = −126 (float) ou E = −1022 (double).
Assim, o menor valor possı́vel em módulo para float corresponde a
s = 0, e = 0 e f = 00000000000000000000001,
ou seja,
1
× 2−126 ≈ 1, 4013 × 10−45 ,
223
um pouco menor do que o menor valor possı́vel 1 × 2−126 = 1, 1755 × 10−38 para um float normalizado,
correspondente a
s = 0, e = 1 e f = 00000000000000000000000.
O menor valor possı́vel em módulo para double corresponde a
s = 0, e = 0 e f = 0000000000000000000000000000000000000000000000000001,
ou seja,
1
× 2−1022 ≈ 4, 9407 × 10−324
252
um pouco menor do que o menor valor possı́vel 1 × 2−1022 ≈ 2, 2251 × 10−308 para um double normalizado,
correspondente a
s = 0, e = 1 e f = 0000000000000000000000000000000000000000000000000000.
A existência dos números denormalizados permitem uma convergência para zero menos abrupta. Quando
os valores computados vão se tornando menores e menores, atingindo o menor valor possı́vel para um float
ou double normalizado, ao invés de caı́rem abruptamente para zero na próxima iteração, eles são convertidos
em números denormalizados.
No entanto, o espaço
£ j j+1entre
¤ números representados no intervalo [1, 2] é igual a 2−52 ≈ 2.22 × 10−16 ; em
geral, no intervalo 2 , 2 o espaço é 2 × 2 , de modo que o espaço relativo nunca excede 2−52 .
j −52

0.3.3 Outros valores numéricos


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
para double, então o valor numérico é −Infinity ou +Infinity. Se f 6= 0 e e = 255 para float ou se
e = 2047 para double, então independentemente do valor de 0 nós temos NaN (Not a Number ). Por exemplo,
dividindo 0 por 0 resulta em NaN.
Em geral, no padrão IEEE 754 uma operação inválida produz NaN, divisão por zero produz ±Infinity,
overflow produz o maior número normalizado possı́vel ou ±Infinity e underflow produz ±0, o menor
número normalizado possı́vel ou um número denormalizado.
Capı́tulo 1

Matrizes Esparsas

Matrizes esparsas são matrizes onde a imensa maioria das entradas são nulas. Esta é uma definição
vaga. Não existe um limite inferior para o número de zeros em uma matriz, em relação ao tamanho desta,
a partir do qual podemos declarar uma matriz com sendo esparsa. Isto é, não existe um limite preciso a
partir do qual uma matriz deixa de ser esparsa e se torna uma matriz densa (isto é, uma matriz em que
o número de zeros é irrelevante). Em geral, matrizes esparsas são definidas operacionalmente, no sentido
de que uma matriz pode ser chamada esparsa, sempre que técnicas especiais podem ser usadas para tirar
vantagem do grande número de zeros e sua localização. Equações diferenciais parciais são a maior fonte de
problemas de álgebra linear numérica envolvendo matrizes esparsas. Engenheiros elétricos lidando com redes
elétricas nos anos 1960s foram os primeiros a explorar a esparcidade das matrizes de coeficientes associadas
aos problemas tratados para resolver sistemas lineares. Como os computadores tinham pouca capacidade
de armazenamento e poder de processamento, e os problemas envolviam um número enorme de variáveis,
métodos de solução direta que tiram vantagem da existência de um número muito grande de zeros tiveram
que ser desenvolvidos.

1.1 Problema Modelo


Como fonte de matrizes esparsas, consideraremos o problema de resolver a equação de Poisson com condição
de Dirichlet discretizada através de diferenças finitas em uma e duas dimensões, que fornece uma matriz
esparsa simétrica.

1.1.1 Problema de Poisson Unidimensional


Considere o problema de Dirichlet para a equação de Poisson no intervalo unitário I = (0, 1):
½
−u00 = f (x) se 0 < x < 1,
(1.1)
u (0) = a, u (1) = b.
Seja h > 0. As expansões de Taylor para uma função u à direita e à esquerda de um ponto x0 são dadas
respectivamente por
1 00 1
u(x0 + h) = u(x0 ) + u0 (x0 )h + u (x0 )h2 + u000 (x0 )h3 + . . . ,
2! 3!
e
1 00 1
u(x0 − h) = u(x0 ) − u0 (x0 )h + u (x0 )h2 − u000 (x0 )h3 + . . .
2! 3!
Se somarmos estas duas equações, obtemos
u(x0 − h) − 2u(x0 ) + u(x0 + h) 2 2
u00 (x0 ) = − u(4) (x0 )h2 − u(6) (x0 )h4 − . . . ,
h2 4! 5!
7
Rodney Josué Biezuner 8

o que fornece uma aproximação para a derivada segunda u00 (x0 ) de u em x0 :

u(x0 − h) − 2u(x0 ) + u(x0 + h)


u00 (x0 ) ≈
h2
com erro
1 (4)
u (ξ)h2 = O(h2 ),
²=−
12
onde x0 − h 6 ξ 6 x0 + h. Esta aproximação é chamada uma diferença centrada para a derivada segunda.
Divida o intervalo [0, 1] em n subintervalos de comprimento h = 1/n através de n − 1 pontos interiores
uniformemente espaçados:

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

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

ui = u(xi ),
fi = f (xi ) .

Esta é uma discretização uniforme do intervalo [0, 1]. Uma vez discretizado o domı́nio da equação diferencial
parcial, procedemos à discretização desta última. Usando diferenças centradas para cada ponto interior xi ,
1 6 i 6 n − 1, temos
−ui−1 + 2ui − ui+1
= fi . (1.2)
h2
Esta discretização em diferenças finitas para a equação de Poisson é chamada fórmula dos três pontos.
Portanto, para encontrar a solução discretizada temos que resolver o sistema linear com n − 1 equações a
n − 1 incógnitas:  −2

 h (2u1 − u2 ) = f1 + ah−2

 −2
 h (−u1 + 2u2 − u3 )
 = f2
.. ,
 .

 −2

 h (−un−3 + 2un−2 − un−1 ) = fn−2
 −2
h (−un−2 + 2un−1 ) = fn−1 + bh−2
ou seja,     
2 −1 u1 f1 + ah−2
 −1 2 −1  u2   f2 
    
 .. ..  ..   .. 
1  −1 . . 
 .  
= . 
.
h2 
 ..
.
..
. −1

 ..  
  ...


  .   
 −1 2 −1   un−2   fn−2 
−1 2 un−1 fn−1 + bh−2
Esta é uma matriz tridiagonal, simétrica e esparsa.

1.1.2 Problema de Poisson Bidimensional


Considere o problema de Dirichlet homogêneo para a equação de Poisson no quadrado unitário Ω = (0, 1) ×
(0, 1) ½
−∆u = f (x, y) em Ω,
(1.3)
u=0 sobre ∂Ω.
Discretizamos o quadrado Ω através dos pontos

(xi , yj ) = (ih, jh) , 0 6 i, j 6 n,


Rodney Josué Biezuner 9

onde
1
h= ,
n
produzindo a malha (ou gride) uniforme
© ª
Ωd = (x, y) ∈ Ω : x = i∆x, y = j∆y, 0 6 i, j 6 n .

A malha dos pontos interiores é dada por

Ωd = {(x, y) ∈ Ω : x = i∆x, y = j∆y, 1 6 i, j 6 n − 1} ,

enquanto que a fronteira discretizada é o conjunto

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

A equação de Poisson
−uxx − uyy = f (x, y)
pode ser agora discretizada. Denotamos

ui,j = u (xi , yj ) ,
fi,j = f (xi , yj ) .

Aproximamos cada derivada parcial de segunda ordem pela sua diferença centrada, obtendo
−ui−1,j + 2ui,j − ui+1,j
−uxx ≈ ,
∆x2
−ui,j−1 + 2ui,j − ui,j+1
−uyy ≈ .
∆y 2
Portanto, a equação de Poisson discretizada toma a forma
−ui−1,j − ui,j−1 + 4ui,j − ui+1,j − ui,j+1
= fi,j . (1.4)
h2
Como a função u é calculada em cinco pontos, esta discretização em diferenças finitas para a equação de
Poisson é chamada a fórmula dos cinco pontos.
2
Para cada ponto interior da malha obtemos uma equação, logo temos um sistema linear de (n − 1)
equações com o mesmo número de incógnitas. Diferente do caso unidimensional, no entanto, não existe uma
maneira natural de ordenar os pontos da malha, logo não podemos obter imediatamente uma representação
matricial para o problema discretizado. Precisamos antes escolher uma ordenação para os pontos da malha,
e como existem várias ordenações possı́veis, existem várias matrizes associadas.
Talvez a mais simples ordenação é a ordem lexicográfica. Nesta ordem, os pontos da malha são percorridos
linha por linha, da esquerda para a direita, de baixo para cima:

u1,1 , u2,1 , . . . , un−1,1 , u1,2 , u2,2 , . . . , un−1,2 , . . . . . . , u1,m−1 , u2,m−1 , . . . , un−1,m−1 .


2 2
Neste caso, a matriz associada ao sistema linear é uma matriz (n − 1) × (n − 1) que pode ser escrita como
2
uma matriz de (n − 1) blocos de dimensão (n − 1) × (n − 1) na forma
 
B −I
 −I B −I 
 
 . .. . .. 
1  −I 

A= 2 
h  .. .. 
 . . −I 
 −I B −I 
−I B (n−1)×(n−1)
Rodney Josué Biezuner 10

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


 
4 −1
 −1 4 −1 
 
 .. .. 
 −1 . . 
B= 


 .. .. 
 . . −1 
 −1 4 −1 
−1 4 (n−1)×(n−1)

Observe que
aii = 4
2
para todo 1 6 i 6 (n − 1) , enquanto que
aij = −1
se o ponto j é vizinho à esquerda ou à direita do ponto i, ou se o ponto j é vizinho acima ou abaixo do ponto
i. Por exemplo, se n = 4, temos
 
4 −1 0 −1 0 0 0 0 0
 −1 4 −1 0 −1 0 0 0 0 
 
 0 −1 4 0 0 −1 0 0 0 
 
 −1 0 0 4 −1 0 −1 0 0 
1  
A= 2  0 −1 0 −1 4 −1 0 −1 0 

h 
 0 0 −1 0 −1 4 0 0 −1  
 0 0 0 −1 0 0 4 −1 0 
 
 0 0 0 0 −1 0 −1 4 −1 
0 0 0 0 0 −1 0 −1 4

Observe que a matriz A é uma matriz simétrica, pentadiagonal e esparsa.

1.2 Matrizes Esparsas


Outros problemas de EDPs, especialmente aqueles envolvendo derivadas primeiras (tais como problemas de
convecção-difusão), em geral levam a matrizes não-simétricas. Discretizações de outros tipos, tais como as
encontradas em elementos finitos, levam a matrizes esparsas com outro tipo de estrutura. De qualquer modo,
todos possuem em comum o fato de a matriz de discretização ser uma matriz esparsa.
Existem essencialmente dois tipos de matrizes esparsas: estruturadas e não-estruturadas. Uma
matriz estruturada é uma em que as entradas não-nulas formam um padrão regular, frequentemente ao
longo de um número pequeno de diagonais (tais como as matrizes que vimos no problema modelo na seção
anterior). Os elementos não-nulos podem também estar organizados em blocos (submatrizes densas) de
mesmo tamanho, organizadas ao longo de um número pequeno de blocos diagonais. Discretizações através de
diferenças finitas tipicamente dão origem a matrizes esparsas com estruturas regulares. Uma matriz esparsa
em que as entradas não-nulas são irregularmente localizadas é uma matriz esparsa irregularmente estruturada.
Os métodos de volumes finitos ou elementos finitos aplicados a domı́nios com geometria complexa em geral
levam matrizes irregularmente estruturadas.
Esta distinção não afeta em geral métodos de solução direta mas é muito importante para os métodos de
solução iterativos. Neste últimos, uma das operações básicas essenciais é a do produto de uma matriz por
um vetor.
Rodney Josué Biezuner 11

1.3 Implementação Computacional de Matrizes Esparsas


Para tirar vantagem do grande número de elementos nulos, esquemas especiais são necessários para armazenar
matrizes esparsas na memória do computador. O principal objetivo é representar apenas os elementos não-
nulos.
O esquema mais simples de armazenamento é o chamado formato de coordenadas. A estrutura de dados
consiste de três vetores (arrays): um vetor real contendo os valores e dois vetores inteiros, um deles contendo
os ı́ndices das linhas, enquanto que o outro contém os ı́ndices das colunas.

1.1 Exemplo. A matriz  


1 0 0 3 0
 5 7 0 0 2 
 
A=
 3 0 2 4 0 

 0 0 6 9 0 
0 0 0 0 4
pode ser representada por

valueArray = 2 9 1 4 3 4 2 5 3 6 7 ,
rowIndexArray = 3 4 1 3 3 5 2 2 1 4 2 ,
columnIndexArray = 3 4 1 4 1 5 5 1 4 3 2 .

Cada vetor tem comprimento igual ao número de elementos não-nulos da matriz. Observe que os
elementos são listados em ordem arbitrária. ¤

Provavelmente, o formato mais popular para armazenar matrizes esparsas gerais é o formato compressed
row storage (CRS). Neste esquema, as linhas da matriz são armazenadas uma a uma em um vetor real, da
primeira até a última, preservando a ordem. Um segundo vetor inteiro contendo os ı́ndices das colunas é
usado. Um terceiro vetor inteiro contém a posição no vetor de valores reais ou no vetor de ı́ndices de coluna
onde cada linha começa, mais um elemento para indicar a primeira posição vazia dos dois vetores.

1.2 Exemplo. A matriz  


1 0 0 3 0
 5 7 0 0 2 
 
A=
 3 0 2 4 0 

 0 0 6 9 0 
0 0 0 0 4
pode ser representada no formato CSR por

valueArray = 1 3 5 7 2 3 2 4 6 9 4 ,
columIndexArray = 1 4 1 2 5 1 3 4 3 4 5 ,
rowPointerArray = 1 3 6 9 11 12 .

Enquanto o comprimento dos dois primeiros vetores é igual ao número de elementos não-nulos da
matriz., o comprimento do terceiro vetor é igual ao número de linhas da matriz mais um. Dentro
de cada linha os elementos ainda podem ser armazenados em ordem arbitrária, o que pode ser muito
conveniente. ¤

Este esquema é o preferido pois é o mais útil para realizar as computações tı́picas, tais como multiplicação
da matriz por vetores. Em CRS, a multiplicação matriz-vetor pode ser implementada da seguinte forma (em
Rodney Josué Biezuner 12

C/C++ ou Java):

for( int i = 0; i < n; i++ )


{
lowerIndex = rowPointerArray[i];
upperIndex = rowPointerArray[i+1];
//loop over row i
for( int j = lowerIndex; j < upperIndex; j++ )
Av[i] += valueArray[j]* v[columArray[j]];
}

Um esquema correspondente, armazenando colunas ao invés de linhas é o compressed column storage (CCS),
usado no Octave.
Os esquemas considerados acima são chamados estáticos. Esquemas dinâmicos, envolvendo listas en-
cadeadas, em geral economizam ainda mais memória e tem acesso ainda mais rápido à memória. Cada linha
da matriz pode ser representada por uma lista encadeada. A matriz toda é representada por uma lista de
listas encadeadas, seguindo a ordem de linhas da matriz. Desta forma, o inı́cio de cada linha não precisa ser
representado. O ı́ndice da coluna de cada elemento da linha ainda precisa ser representado, é claro, e isso
pode ser feito através de um ponteiro especı́fico.
Outras esquemas podem ser utilizados, tirando vantagem da estrutura da matriz esparsa. Por exem-
plo, em matrizes diagonais as diagonais não-nulas podem ser armazenadas separadamente. Em matrizes
simétricas, é necessário armazenar apenas os elementos da diagonal principal e da parte triangular superior
(ou inferior) da matriz, mas isso em geral implica em algoritmos mais complicados para fazer operações com
a matriz.
Capı́tulo 2

Invertibilidade de Matrizes Esparsas

Neste capı́tulo desenvolveremos métodos gerais e fáceis de aplicar para determinar a invertibilidade de ma-
trizes esparsas, principalmente aquelas que surgem através da discretização de equações diferenciais parciais
através de diferenças finitas. Em particular, isso implicará a existência e unicidade de soluções para sistemas
lineares envolvendo tais matrizes. Uma vez que isso esteja estabelecido, poderemos nos dedicar nos próximos
capı́tulos a estudar métodos iterativos para encontrar estas soluções.

2.1 Normas Matriciais


Lembramos o conceito de norma vetorial:

2.1 Definição. Seja V um espaço vetorial real ou complexo. Uma norma vetorial em V é uma função
|·| : V −→ R que satisfaz as seguintes propriedades:

(i) |x| > 0 para todo x 6= 0 e |x| = 0 se x = 0;


(ii) kαxk = |α| kxk para todo x ∈ V e para todo α ∈ R;
(iii) (Desigualdade Triangular) kx + yk 6 kxk + kyk para todos x, y ∈ V.

Denotaremos por Mn (R) o espaço vetorial das matrizes complexas n × n e por Mn (C) o espaço vetorial
das matrizes complexas n × n. Quando estivermos nos referindo a qualquer um destes espaços (ou seja,
quando a afirmação que fizermos valer para qualquer um deles), usaremos a notação Mn simplesmente.

2.2 Definição. Uma norma matricial no espaço vetorial Mn é uma norma vetorial k·k : Mn −→ R que
satisfaz a propriedade submultiplicativa

kABk 6 kAk kBk (2.1)

para todas as matrizes A, B ∈ Mn .

A seguir, veremos alguns exemplos das normas matriciais mais importantes em Mn . A verificação de que
as normas apresentadas constituem normas vetoriais é deixada como exercı́cio (Exercı́cio 2.1).

2.3 Exemplo. Norma l1 (norma da soma):


n
X
kAk1 = |aij | . (2.2)
i,j=1

13
Rodney Josué Biezuner 14

De fato,
¯ n
n ¯X
¯
X ¯ n
X n
X n
X n
X
¯ ¯
kABk1 = ¯ aik bkj ¯ 6 |aik bkj | 6 |aik blj | = |aik | |blj | = kAk1 kBk1 .
¯ ¯
i,j=1 k=1 i,j,k=1 i,j,k,l=1 i,k=1 j,l=1

¤
2.4 Exemplo. Norma l2 (norma euclidiana):
 1/2
n
X 2
kAk2 =  |aij | . (2.3)
i,j=1

Com efeito,
¯ n
n ¯X
¯2 Ã n !Ã n !  n  
X ¯ n
X X X X n
X
2 ¯ ¯ 2 2 2 2 2 2
kABk2 = ¯ aik bkj ¯ 6 |aik | |blj | = |aik |   |blj |  = kAk2 kBk2 .
¯ ¯
i,j=1 k=1 i,j=1 k=1 l=1 i,k=1 j,l=1

A norma l2 também é chamada mais raramente (e somente para matrizes) norma de Schur, norma de
Frobenius ou norma de Hilbert-Schmidt. ¤
2.5 Exemplo. Normas lp :
De modo geral, dado p > 1, definimos a norma matricial
 1/p
Xn
p
kAkp =  |aij |  . (2.4)
i,j=1

¤
2.6 Exemplo. Norma l∞ modificada (norma do máximo modificada):
A norma l∞ (norma do máximo)
kAk∞ = max |aij |
16i,j6n

é uma norma vetorial em Mn mas não é uma norma matricial: por exemplo, se
· ¸
1 1
A= ,
1 1
então · ¸
2 2
A2 =
2 2
e portanto ° 2°
°A ° = 2 > 1 = kAk∞ kAk∞ .

No entanto, um múltiplo escalar desta norma vetorial é uma norma matricial:
kAkn∞ = n max |aij | . (2.5)
16i,j6n

Com efeito,
¯ ¯
¯Xn ¯ n
X n
X
¯ ¯
kABkn∞ = n max ¯ aik bkj ¯ 6 n max |aik bkj | 6 n max kAk∞ kBk∞
16i,j6n ¯ ¯ 16i,j6n 16i,j6n
k=1 k=1 k=1
= n (n kAk∞ kBk∞ ) = n kAk∞ n kBk∞ = kABkn∞ .
¤
Rodney Josué Biezuner 15

2.7 Exemplo. Norma do operador:


Dada uma norma vetorial |·| em Rn ou Cn , ela induz uma norma matricial através da definição
|Ax|
kAk = max |Ax| = max |Ax| = sup . (2.6)
|x|=1 |x|61 x6=0 |x|

Aqui vemos A como um operador linear em Rn ou Cn , portanto contı́nuo, de modo que o máximo de
A é atingido na esfera e na bola fechada. Para ver que a primeira e a terceira definições coincidem (de
modo que o sup na terceira definição é de fato um máximo), use o fato que
¯ µ ¶¯
|Ax| ¯¯ x ¯¯
= ¯A .
|x| |x| ¯
Agora observe que
max |Ax| 6 max |Ax| ,
|x|=1 |x|61

já que a bola fechada contém a esfera. Por outro lado, se |x| = ε < 1, segue que
¯ µ ¶¯
¯ ¯
¯A x ¯ = |Ax| = |Ax| > |Ax| ,
¯ |x| ¯ |x| ε
de modo que o máximo de |Ax| não é atingido no interior da bola, logo

max |Ax| > max |Ax|


|x|=1 |x|61

e portanto a primeira e a segunda definições coincidem. Finalmente, para ver que a norma do operador
é uma norma matricial, escreva
µ ¶
|ABx| |ABx| |Bx| |ABx| |Bx| |Ay| |Bx|
kABk = max = max 6 max max 6 max max = kAk kBk .
x6=0 |x| x6 = 0 |Bx| |x| Bx6 = 0 |Bx| x6 =0 |x| y6 = 0 |y| x6 = 0 |x|
A norma do operador satisfaz a propriedade extremamente útil

|Ax| 6 kAk |x| (2.7)

para todo vetor x ∈ Rn ou Cn . ¤


2.8 Exemplo. Norma do máximo das somas das linhas:
n
X
kAkL = max |aij | . (2.8)
16i6n
j=1

Esta norma é a norma do operador induzida pela norma vetorial l∞ . De fato, se x = (x1 , . . . , xn ),
temos ¯ ¯
¯ n ¯ n n
¯X ¯ X X
|Ax|∞ = max ¯¯ aij xj ¯¯ 6 max |aij xj | 6 max |aij | |x|∞ = kAkL |x|∞ ,
16i6n ¯ ¯ 16i6n j=1 16i6n
j=1 j=1

de modo que
max |Ax|∞ 6 kAkL .
|x|=1

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



 aij se aij 6= 0,
yi = |a | ,
 1ij se aij = 0.
Rodney Josué Biezuner 16

o que implica |y|∞ = 1, aij yj = |aij | e


¯ ¯
¯X ¯
¯ n ¯ Xn
max |Ax|∞ > |Ay|∞ = max ¯¯ aij yj ¯¯ = max |aij | = kAkL .
|x|∞ =1 16i6n ¯ ¯ 16i6n j=1
j=1

2.9 Exemplo. Norma do máximo das somas das colunas:


n
X
kAkC = max |aij | . (2.9)
16j6n
i=1

Esta norma é a norma do operador induzida pela norma vetorial l1 . De fato, escrevendo A em termos
de suas colunas
A = [A1 . . . An ]
segue que
kAkC = max |Aj |1 .
16j6n

Se x = (x1 , . . . , xn ), segue que


n
X n
X n
X
|Ax|1 = |x1 A1 + . . . + xn An |1 6 |xi Ai |1 = |xi | |Ai |1 6 |xi | max |Aj |1
16j6n
i=1 i=1 i=1
n
X
= kAkC |xi | = kAkC |x|1 ,
i=1

donde
max |Ax|1 6 kAkC .
|x|1 =1

Agora, se escolhermos yj = ej , temos que |yj |1 = 1 e

|Ay|1 = |Aj |1

para todo k, logo


max |Ax|1 > max |Ayj |1 = max |Aj |1 = kAkC .
|x|1 =1 16j6n 16j6n

¤
2.10 Exemplo. p-normas:
Este é o nome geral para as normas do operador induzidas pela norma vetorial lp em Rn ou Cn . Para
distingui-las das normas matriciais lp no próprio espaço vetorial Mn , vamos denotá-las por

|Ax|p
|||A|||p = sup .
x6=0 |x|p

O caso especial da norma do operador induzida pela norma vetorial l2 (a norma vetorial euclidiana) é
também chamada a norma espectral e satisfaz
p np o
|||A|||2 = λmax = max |λ| : λ é um autovalor de A∗ A .
Rodney Josué Biezuner 17

De fato, A∗ A é uma matriz hermitiana logo todos os seus autovalores são não-negativos. Pela carac-
terização variacional dos autovalores de uma matriz hermitiana temos
2
hA∗ Ax, xi2 |Ax|2
λmax = max 2 = max 2 .
x6=0 |x|2 x6=0 |x|2

Observe que a 2-norma é diferente da norma matricial l2 (Exercı́cio 2.3). Note também que se A é
uma matriz hermitiana, então A∗ A = A2 e |||A|||2 é portanto o módulo do maior autovalor de A, isto
é, a norma espectral de A é o raio espectral de A, definido como sendo o maior valor absoluto dos
autovalores λ1 , . . . , λn de A:
ρ (A) = max |λi | ,
i=1,...,n

¤
2.11 Exemplo. Norma induzida por uma matriz invertı́vel:
Se k·k é uma norma matricial qualquer e se S é uma matriz invertı́vel, então
° °
kAkS = °S −1 AS ° (2.10)

define uma norma matricial. Com efeito,


° ° ° ° ° °° °
kABkS = °S −1 ABS ° = °S −1 ASS −1 BS ° 6 °S −1 AS ° °S −1 BS ° = kAkS kBkS .

Lembramos que todas as normas em um espaço vetorial de dimensão finita são equivalentes, e isso vale em
particular para normas matriciais:

2.12 Teorema. Seja V um espaço vetorial real ou complexo de dimensão finita. Então todas as normas
vetoriais em V são equivalentes, isto é, se k·k1 e k·k2 são duas normas vetoriais quaisquer em V ,
então existem constantes C1 , C2 > 0 tais que

kxk1 6 C1 kxk2

e
kxk2 6 C2 kxk1
para todo x ∈ V .

Prova: Para mostrar a equivalência entre todas as normas de um espaço vetorial, por transitividade basta
fixar uma norma k·k1 e mostrar que qualquer norma arbitrária k·k2 é equivalente a k·k1 . Seja B = {e1 , . . . , en }
uma base para V , de modo que todo vetor x ∈ V se escreve na forma
n
X
x= x i ei
i=1

e defina k·k1 como sendo a norma `1 em relação a esta base:


n
X
kxk1 = |xi | .
i=1
Rodney Josué Biezuner 18

Então, se k·k2 é uma norma qualquer em V , segue da desigualdade triangular que


n
X n
X
kxk2 6 kxi ei k2 = |xi | kei k2
i=1 i=1
µ ¶X
n
6 max kei k2 |xi |
i=1,...,n
i=1
= C2 kxk1 ,

onde denotamos C2 = max kei k2 .


i=1,...,n
Para provar a desigualdade reversa, considere a esfera unitária na norma da soma S = {x ∈ V : kxk1 = 1}.
A desigualdade anterior garante que a função x 7→ kxk2 é contı́nua na topologia definida pela norma k·k1 e
portanto assume um valor mı́nimo m no conjunto fechado e limitado (compacto) S. Necessariamente m > 0:
P
n Pn
se existisse e = xi ei ∈ S tal que kek2 = 0, terı́amos e = xi ei = 0, contrariando o fato que {e1 , . . . , en }
i=1 i=1
é um conjunto linearmente independente. Portanto,
° °
° x °
° °
° kxk ° > m
1 2

para todo x ∈ V , x 6= 0. Tomando C1 = 1/m, segue que kxk1 6 C1 kxk2 para todo x ∈ V . ¥

2.2 Matrizes Diagonalmente Dominantes


2.13 Definição. Dizemos que uma matriz An×n é diagonalmente dominante se
n
X
|aii | > |aij | para todo i = 1, . . . , n
j=1
j6=i

e estritamente diagonalmente dominante se


n
X
|aii | > |aij | para todo i = 1, . . . , n.
j=1
j6=i

2.14 Lema. Seja A ∈ Mn . Se existe alguma norma matricial k·k tal que kI − Ak < 1, então A é invertı́vel.

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

X k
A−1 = (I − A) . (2.11)
k=0

Para todo N ∈ N podemos escrever


N
X N
X N
X N
X +1
k k k k N +1
A (I − A) = [I − (I − A)] (I − A) = (I − A) − (I − A) = I − (I − A) .
k=0 k=0 k=0 k=1

Como k·k é uma norma matricial, temos que


° °
° k° k
°(I − A) ° 6 kI − Ak .
Rodney Josué Biezuner 19

Logo, de kI − Ak < 1 segue que


N +1
lim (I − A) = 0.
N →∞

Portanto, tomando o limite quando N → ∞, concluı́mos (2.11). ¥

2.15 Corolário. Se A ∈ Mn é uma matriz singular e k·k é uma norma matricial, então kI − Ak > 1. Em
particular, se k·k é uma norma matricial, então kIk > 1.

Prova. Para provar a segunda afirmação do enunciado, basta tomar A = 0.¥

2.16 Proposição. Se A é uma matriz estritamente diagonalmente dominante, então A é invertı́vel.

Prova. Denote por D a matriz diagonal cujas entradas diagonais são as entradas diagonais de A. Uma
matriz estritamente diagonalmente dominante possui, por definição, entradas diagonais não-nulas, logo D é
uma matriz invertı́vel. A matriz D−1 A tem apenas 1’s na diagonal principal e se mostramos que D−1 A é
invertı́vel, isto implicará que A é invertı́vel. Para provar isso, considere a matriz I − D−1 A. Temos
½
¡ −1
¢ 0 se i = j,
I − D A ij =
−aij /aii se i 6= j.
Usemos a norma do máximo das somas das linhas. Para cada 1 6 i 6 n temos
n ¯ n ¯ ¯
X ¯¡ ¢ ¯¯ X ¯ aij ¯ Xn
−1
¯ I − D A ij ¯ = ¯ ¯= 1 |aij | < 1,
¯ aii ¯ |aii |
j=1 j=1 j=1
j6=i j6=i
° °
logo °I − D−1 A° < 1 e o resultado segue do Lema 2.14. ¥
Às vezes, exigir dominância diagonal estrita em todas as linhas é pedir demais. Para certas matrizes,
dominância diagonal junto com dominância diagonal estrita em apenas uma linha é suficiente para garantir
a sua invertibilidade. As matrizes de discretização obtidas no capı́tulo anterior satisfazem esta condição
(nas linhas correspondentes à pontos adjacentes à fronteira), e nenhuma delas é estritamente diagonalmente
dominante. Por outro lado, vale a pena ressaltar que esta condição não é suficiente para estabelecer a
invertibilidade de uma matriz em geral, como o exemplo
 
4 2 1
 0 1 1 
0 1 1
demonstra.

2.3 Teorema dos Discos de Gershgorin


A primeira ferramenta teórica é o importante Teorema dos Discos de Gershgorin. Ele decorre da seguinte
observação: se A é uma matriz complexa n × n, podemos sempre escrever A = D + B, onde D = diag
(a11 , . . . , ann ) é a matriz diagonal formada pela diagonal principal de A e B consiste dos elementos restantes
de A, possuindo uma diagonal principal nula. Se definirmos Aε = D + εB, então A0 = D e A1 = A. Os
autovalores de D são a11 , . . . , ann , enquanto que os autovalores de Aε devem estar localizados em vizinhanças
dos pontos a11 , . . . , ann , desde que ε seja suficientemente pequeno. O mesmo deve valer para os autovalores
da matriz A: eles devem estar contidos em discos centrados nos elementos a11 , . . . , ann da diagonal principal
se os discos são suficientemente grandes. O Teorema de Gershgorin dá uma estimativa precisa e simples de
calcular para os raios destes discos em função das entradas restantes da matriz A. Denote o disco complexo
fechado de centro em a e raio R por

DR (a) = {z ∈ C : |z − a| 6 R} .
Rodney Josué Biezuner 20

2.17 Teorema. (Teorema dos Discos de Gershgorin) Se A ∈ Mn (C) e


n
X
Ri (A) = |aij | (2.12)
j=1
j6=i

denota a soma dos valores absolutos dos elementos da linha i de A excetuando o elemento da diagonal
principal, então todos os autovalores de A estão contidos na união dos n discos de Gershgorin
n
[
G (A) = DRi (A) (aii ) . (2.13)
i=1

Além disso, se uma união de k destes discos forma uma região que é disjunta dos n−k discos restantes,
então existem exatamente k autovalores de A nesta região.

Prova. Seja λ um autovalor de A e x = (x1 , . . . , xn ) 6= 0 um autovetor associado. Seja k um ı́ndice tal que

|xk | > |xj | para j = 1, . . . , n,

isto é, xk é a coordenada de x de maior valor absoluto. Denotando por (Ax)k a k-ésima coordenada do vetor
Ax = λx, temos
Xn
λxk = (Ax)k = akj xj
j=1

que é equivalente a
n
X
xk (λ − akk ) = akj xj .
j=1
j6=k

Daı́,
n
X n
X n
X
|xk | |λ − akk | 6 |akj xj | = |akj | |xj | 6 |xk | |akj | = |xk | Rk (A) ,
j=1 j=1 j=1
j6=k j6=k j6=k

ou seja,
|λ − akk | 6 Rk (A) .
Isso prova o resultado principal do Teorema de Gershgorin (como não sabemos qual k é apropriado para
cada autovalor λ, e um mesmo k pode servir para vários autovalores λ, tudo o que podemos afirmar é que
os autovalores estão na união dos discos).
Para provar a segunda afirmação, escreva A = D + B, onde D = diag (a11 , . . . , ann ) e defina

At = D + tB

para 0 6 t 6 1. Note que


Ri (At ) = Ri (tB) = tRi (A) .
Para simplificar a notação, assuma que a união dos primeiros k discos de Gershgorin
k
[
Gk (A) = DRi (A) (aii )
i=1

satisfaz Gk (A) ∩ [G (A) \Gk (A)] = ∅. Temos

DRi (At ) (aii ) = {z ∈ C : |z − aii | 6 Ri (At )} = {z ∈ C : |z − aii | 6 tRi (A)} ⊂ DRi (A) (aii ) ,
Rodney Josué Biezuner 21

logo,
Gk (At ) ⊂ Gk (A)
e
Gk (A) ∩ [G (At ) \Gk (At )] = ∅
para 0 6 t 6 1. Porque os autovalores são funções contı́nuas das entradas de uma matriz, o caminho
λi (t) = λi (At )
é um caminho contı́nuo que liga λi (A0 ) = λi (D) = aii a λi (A1 ) = λi (A). Seja 1 6 i 6 k. Como
λi (At ) ∈ Gk (At ) ⊂ Gk (A), concluı́mos que para cada 0 6 t 6 1 existem k autovalores de At em Gk (A); em
particular, fazendo t = 1, obtemos que Gk (A) possui pelo menos k autovalores de A. Da mesma forma, não
pode haver mais que k autovalores de A em Gk (A), pois os n − k autovalores restantes de A0 = D começam
fora do conjunto Gk (A) e seguem caminhos contı́nuos que permanecem fora de Gk (A). ¥
A união G (A) dos discos de Gershgorin é conhecida como a região de Gershgorin. Observe que enquanto
não podemos em geral afirmar com certeza que cada disco de Gershgorin possui um autovalor, a segunda
afirmação do teorema permite-nos fazer tal conclusão desde que os discos de Gershgorin sejam dois a dois
disjuntos.
O Teorema dos Discos de Gershgorin permite entender o resultado da Proposição 2.16: se uma matriz A é
estritamente diagonalmente dominante, então os discos de Gershgorin DRi (A) (aii ) não interceptam a origem,
logo 0 não pode ser um autovalor para a matriz A, o que implica que A é invertı́vel. Além disso, se todos
os elementos da diagonal principal de A são reais e positivos, então os autovalores de A estão localizados no
semiplano direito de C, de modo que se A é também simétrica, concluı́mos que todos os autovalores de A
são positivos.
A aplicação mais óbvia do Teorema dos Discos de Gershgorin é na estimativa dos autovalores de uma
matriz. Usos mais refinados do Teorema de Gershgorin permitem obter conhecimento mais preciso sobre
onde os autovalores da matriz se encontram e correspondentemente melhores estimativas para o raio espectral
de uma matriz. Por exemplo, como A e At possuem os mesmos autovalores, existe um teorema dos discos
de Gershgorin equivalente para as colunas de uma matriz. Em particular, todos os autovalores de A estão
localizados na interseção destas duas regiões: G (A) ∩ G (At ). Isso implica a seguinte estimativa simples para
o raio espectral de uma matriz complexa:
2.18 Corolário. Se A ∈ Mn (C), então
 
n
X n
X
ρ (A) 6 min  max |aij | , max |aij | = min (kAkL , kAkC ) .
i=1,...,n j=1,...,n
j=1 i=1

Prova. O ponto no i-ésimo disco de Gershgorin que é mais distante da origem tem módulo
n
X
|aii | + Ri (A) = |aij |
j=1

e um resultado semelhante vale para as colunas de A. ¥


O resultado do Corolário 2.18 não é surpreendente em vista do raio espectral de uma matriz ser menor que
qualquer norma matricial (veja o próximo capı́tulo). Um resultado melhor pode ser obtido uma vez que
se observa que A e S −1 AS também possuem os mesmos autovalores, qualquer que seja a matriz invertı́vel
S. Em particular, quando S = D = diag (p1 , . . . , pn ) é uma matriz diagonal com todos os seus elementos
positivos, isto é, pi > 0 para todo i, aplicando o Teorema de Gershgorin à matriz
µ ¶
pj
D−1 AD = aij
pi
e à sua transposta, obtemos o seguinte resultado que permite obter uma estimativa arbitrariamente boa dos
autovalores de A:
Rodney Josué Biezuner 22

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


 

 

¡ −1 ¢ ¡ t −1
¢ [ n
1 X
n 
G D AD ∩ G DA D = z ∈ C : |z − aii | 6 pj |aij | (2.14)
 pi j=1 
i=1 
 

j6=i
 
[n 
 Xn 

1
∩ z ∈ C : |z − aii | 6 pj |aij | .
 p 
i=1  i=1 i 
i6=j

Em particular,
 
Xn Xn
1 1
ρ (A) 6 min  max pj |aij | , max pj |aij | . (2.15)
p1 ,...,pn >0 i=1,...,n pi j=1,...,n p
j=1 i=1 i

2.4 Propriedade FC
Na nossa busca por propriedades para matrizes diagonalmente dominantes que garantirão a sua invertibil-
idade, uma observação fundamental é a de que se A é uma matriz diagonalmente dominante, então 0 não
pode ser um ponto interior de nenhum disco de Gershgorin. De fato, se λ é um autovalor de A interior a
algum disco de Gershgorin então devemos ter desigualdade estrita
n
X
|λ − aii | < Ri (A) = |aij |
j=1
j6=i

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


n
X
|aii | < |aij |
j=1
j6=i

para algum i e A não pode ser diagonalmente dominante na linha i.


Uma condição equivalente para que um autovalor λ de A não seja um ponto interior de nenhum disco de
Gershgorin é que
n
X
|λ − aii | > Ri (A) = |aij | para todo i = 1, . . . , n.
j=1
j6=i

Tais pontos λ na região de Gershgorin G (A) (não necessariamente autovalores de A) constituem precisa-
mente a fronteira ∂G (A) da região de Gershgorin. Chamaremos a fronteira de um disco de Gershgorin
{z ∈ C : |z − aii | = Ri (A)} um cı́rculo de Gershgorin.

2.20 Lema. Seja A ∈ Mn (C) e λ um autovalor de A que não é um ponto interior de nenhum disco de
Gershgorin. Seja x = (x1 , . . . , xn ) 6= 0 um autovetor associado a λ e k um ı́ndice tal que

|xk | > |xj | para j = 1, . . . , n.

Se i é qualquer ı́ndice tal que


|xi | = |xk |
Rodney Josué Biezuner 23

então o i-ésimo cı́rculo de Gershgorin passa por λ. Se, além disso,

aij 6= 0,

então
|xj | = |xk |
e o j-ésimo cı́rculo de Gershgorin também passa por λ.

Prova. Como na demonstração do Teorema de Gershgorin, temos


n
X n
X n
X
|xi | |λ − aii | 6 |aij xj | = |aij | |xj | 6 |xk | |aij | = |xk | Ri (A) (2.16)
j=1 j=1 j=1
j6=i j6=i j6=i

para todo ı́ndice i. Logo, se |xi | = |xk |, temos

|λ − aii | 6 Ri (A) .

Como por hipótese


|λ − aii | > Ri (A)
para todo ı́ndice i, segue que
|λ − aii | = Ri (A) .
Em geral, |xi | = |xk | implica que as desigualdades em (2.16) são identidades; em particular,
n
X n
X
|aij | |xj | = |xi | |aij |
j=1 j=1
j6=i j6=i

donde
n
X
|aij | (|xi | − |xj |) = 0.
j=1
j6=i

Esta é uma soma de termos não-negativos, pois |xi | > |xj |, logo se aij 6= 0 necessariamente devemos ter
|xj | = |xi | = |xk |. ¥
Este lema técnico tem as seguintes conseqüências úteis:

2.21 Teorema. Seja A ∈ Mn (C) uma matriz cujas entradas são todas não-nulas e seja λ um autovalor
de A que não é um ponto interior de nenhum disco de Gershgorin. Então todo cı́rculo de Gershgorin
de A passa por λ (isto é, λ está na interseção de todos os cı́rculos de Gershgorin de A) e se x =
(x1 , . . . , xn ) 6= 0 é um autovetor associado a λ então

|xi | = |xj | para todos i, j = 1, . . . , n.

Prova. Decorre diretamente do lema anterior. ¥

2.22 Corolário. Se A ∈ Mn (C) é uma matriz cujas entradas são todas não-nulas e diagonalmente domi-
P
n
nante tal que |aii | > |aij | para pelo menos alguma linha i, então A é invertı́vel.
j=1
j6=i
Rodney Josué Biezuner 24

Prova. Pois, como A é diagonalmente dominante, se 0 é um autovalor de A então 0 não pode ser um ponto
interior de nenhum disco de Gershgorin. Por outro lado, pelo teorema anterior, segue que todo cı́rculo de
Gershgorin passa por 0. Entretanto, o i-ésimo cı́rculo de Gershgorin centrado em aii e com raio Ri < |aii |
não pode passar por 0. Concluı́mos que 0 não é um autovalor de A, logo A é invertı́vel. ¥
As matrizes do Corolário 2.22 são as antı́teses das matrizes esparsas que nos interessam. Usando com
maior cuidado a informação dada pelo Lema 2.20 podemos obter resultados que se aplicam a matrizes
esparsas.

2.23 Definição. Dizemos que uma matriz A = (aij ) ∈ Mn (C) satisfaz a propriedade FC se para todo par
de inteiros distintos i, j existe uma seqüência de inteiros distintos i1 = i, i2 , i3 , . . . , im−1 , im = j, com
1 6 m 6 n, tais que todas as entradas matriciais

ai1 i2 , ai2 i3 , . . . , aim−1 im

são não-nulas.

Por exemplo, a matriz diagonalmente dominante não-invertı́vel


 
4 2 1
 0 1 1 ,
0 1 1

já vista anteriormente, não satisfaz a propriedade FC porque o par 2, 1 não admite tal seqüência (a única
seqüência possı́vel é a23 , a31 ). Já qualquer par de inteiros distintos i, j tal que aij 6= 0 admite a seqüência
trivial não-nula aij , de modo que uma matriz cujas entradas não-diagonais são todas não-nulas satisfaz a
propriedade FC. O significado da abreviatura “FC”, ou “fortemente conexo”, ficará claro mais adiante.

2.24 Teorema. Seja A ∈ Mn (C) uma matriz que satisfaz a propriedade FC e seja λ um autovalor de A que
não é um ponto interior de nenhum disco de Gershgorin. Então todo cı́rculo de Gershgorin de A passa
por λ (isto é, λ está na interseção de todos os cı́rculos de Gershgorin de A) e se x = (x1 , . . . , xn ) 6= 0
é um autovetor associado a λ então

|xi | = |xj | para todos i, j = 1, . . . , n.

Prova. Seja x = (x1 , . . . , xn ) 6= 0 um autovetor associado a λ e i um ı́ndice tal que

|xi | > |xk | para k = 1, . . . , n.

Pelo Lema 2.20,


|λ − aii | = Ri (A) .
Seja j 6= i qualquer outro ı́ndice e i1 = i, i2 , i3 , . . . , im−1 , im = j, com 1 6 m 6 n, ı́ndices tais que todas as
entradas matriciais
aii2 , ai2 i3 , . . . , aim−1 j 6= 0.
Como aii2 6= 0, segue da segunda afirmativa do Lema 2.20 que |xi2 | = |xi |. Mas então ai2 i3 6= 0 e portanto
|xi3 | = |xi2 | = |xi |. Prosseguindo desta forma, concluı́mos que
¯ ¯
|xi | = |xi2 | = . . . ¯xim−1 ¯ = |xj | .

Em particular, segue novamente do Lema 2.20 que o j-ésimo cı́rculo de Gershgorin passa por λ. Como j é
arbitrário, isso prova o teorema. ¥

2.25 Corolário. Se A ∈ Mn (C) é uma matriz que satisfaz a propriedade FC e diagonalmente dominante
P
n
tal que |aii | > |aij | para pelo menos alguma linha i, então A é invertı́vel.
j=1
j6=i
Rodney Josué Biezuner 25

Prova. Segue do teorema anterior da mesma forma que o Corolário 2.22 segue do Teorema 2.21. ¥
Vamos tentar entender melhor o significado da propriedade FC. Note que ela se refere apenas à localização
dos elementos não-nulos de A fora da diagonal principal – os elementos da diagonal principal e os valores
especı́ficos dos elementos fora da diagonal principal são irrelevantes. Isso motiva as seguintes definições:

2.26 Definição. Dada uma matriz A = (aij ) ∈ Mn (C) definimos o módulo da matriz A como sendo a
matriz
|A| = (|aij |)
cujos elementos são os módulos dos elementos da matriz A e a matriz indicadora de A como sendo
a matriz
M (A) = (µij ) ,
onde ½
1 se aij 6= 0,
µij =
0 se aij = 0.

O conceito de uma seqüência de entradas não-nulas da matriz A que aparece na definição da propriedade
FC pode ser visualizado em termos de caminhos em um grafo associado a A:

2.27 Definição. Dada uma matriz A ∈ Mn (C), o grafo direcionado de A é o grafo direcionado Γ (A)
com n nodos P1 , . . . , Pn tais que existe um arco direcionado em Γ (A) de Pi a Pj se e somente se aij 6= 0.
Um caminho direcionado γ em um grafo Γ é uma seqüência de arcos Pi1 Pi2 , Pi2 Pi3 , . . . em Γ. O
comprimento de um caminho direcionado é o número de arcos sucessivos no caminho direcionado. Um
ciclo é um caminho direcionado que começa e termina no mesmo nó.
Dizemos que um grafo direcionado é fortemente conexo se entre qualquer par de nodos distintos
Pi , Pj ∈ Γ existir um caminho direcionado de comprimento finito que começa em Pi e termina em Pj .

Observe que quando Γ é um grafo direcionado com n nodos, se existe um caminho direcionado entre dois
nodos de Γ, então sempre existe um caminho direcionado entre estes dois nodos de comprimento menor que
ou igual a n − 1 (Exercı́cio 2.7).

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

Agora estamos em condições de verificar a invertibilidade das matrizes esparsas oriundas da discretização
de EDPs através de diferenças finitas:

2.29 Teorema. As matrizes de discretização do problema modelo são invertı́veis.

Prova. É fácil ver que as matrizes de discretização obtidas no capı́tulo anterior para o intervalo e para
o quadrado são matrizes diagonalmente dominantes com dominância diagonal estrita nas linhas correspon-
dentes a pontos interiores adjacentes à fronteira. Além disso, elas satisfazem a propriedade FC. De fato, cada
ı́ndice i da matriz corresponde a um ponto interior Pi da malha e aij 6= 0 sempre que Pi e Pj são pontos
vizinhos naqueles esquemas. Então, dados dois pontos distintos Pi , Pj é fácil encontrar uma seqüência de
ı́ndices i1 = i, i2 , i3 , . . . , im−1 , im = j, com 1 6 m 6 n, tais que todas as entradas matriciais

ai1 i2 , ai2 i3 , . . . , aim−1 im

são não-nulas: no caso unidimensional, basta percorrer a malha diretamente de Pi até Pj (andando a partir
de Pi sempre para a direita ou sempre para a esquerda, conforme o caso, até encontrar Pj ), e no caso
bidimensional basta usar qualquer caminho interior de Pi até Pj (pode-se usar a ordem lexicográfica para
percorrer a malha, ou a ordem lexicográfica inversa, dependendo das posições relativas de Pi e Pj ; no entanto,
estes caminhos são mais longos que o necessário). Em outras palavras, identificando as malhas de pontos
internos com os grafos direcionados da matriz de discretização, de modo que existe um arco direcionado entre
Rodney Josué Biezuner 26

dois pontos da malha se e somente se eles são vizinhos, os esquemas de discretização considerados garantem
que estes grafos são fortemente conexos. ¥
Verificar a propriedade FC a partir do grafo direcionado de A pode ser impraticável se o tamanho da
matriz for muito grande ou se a matriz não tiver origem na discretização de um problema de EDPs. Existe
um método computacional mais explı́cito para fazê-lo:

2.30 Teorema. Sejam A ∈ Mn (C) e Pi , Pj nodos de Γ (A). Existe um caminho direcionado de compri-
mento m em Γ (A) de Pi para Pj se e somente se
m
(|A| )ij 6= 0

ou, equivalentemente, se e somente se


m
[M (A) ]ij 6= 0.

Prova. Provaremos o teorema por indução. Para m = 1 a afirmativa é trivial. Para m = 2, temos
³ ´ n
X n
X
2
|A| = (|A|)ik (|A|)kj = |aik | |akj | ,
ij
k=1 k=1
³ ´
2
de modo que |A| 6= 0 se e somente se aik , akj são ambos não-nulos para algum ı́ndice k. Mas isso é
ij
equivalente a dizer que existe um caminho direcionado de comprimento 2 em Γ (A) de Pi para Pj .
Em geral, supondo a afirmativa provada para m, temos
³ ´ n
X n
X
m+1 m m
|A| = (|A| )ik (|A|)kj = (|A| )ik |akj | 6= 0
ij
k=1 k=1

m
se e somente se (|A| )ik , akj são ambos não-nulos para algum ı́ndice k. Por hipótese de indução, isso é
equivalente a existir um caminho direcionado de comprimento m em Γ (A) de Pi para Pk e um caminho
direcionado de comprimento 1 em Γ (A) de Pk para Pj , isto é, um caminho direcionado de comprimento
m + 1 em Γ (A) de Pi para Pj . O mesmo argumento vale para M (A). ¥

2.31 Definição. Seja A = (aij ) ∈ Mn (C). Dizemos que A > 0 se aij > 0 para todos 1 6 i, j 6 n e que
A > 0 se aij > 0 para todos 1 6 i, j 6 n.
2.32 Corolário. Seja A ∈ Mn (C). Existe um caminho direcionado de comprimento m em Γ (A) de cada
nodo Pi para cada nodo Pj se e somente se
m
|A| >0

ou, equivalentemente, se e somente se


m
M (A) > 0.

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


n−1
(I + |A|) >0

ou, equivalentemente, se e somente se


n−1
[I + M (A)] > 0.
Rodney Josué Biezuner 27

Prova. Temos
µ ¶ µ ¶
n−1 n−1 2 n−1 n−1 n−1
(I + |A|) = I + (n − 1) |A| + |A| + . . . + |A| + |A| >0
2 n−3
2 n−1
se e somente se para cada par de ı́ndices i, j com i 6= j pelo menos um dos termos |A| , |A| , . . . , |A|
tem uma entrada positiva em (i, j). Pelo Teorema 2.30, isso ocorre se e somente se existe algum caminho
direcionado em Γ (A) de Pi para Pj com comprimento 6 n−1. Isto é equivalente a A satisfazer a propriedade
FC. O mesmo argumento vale para M (A). ¥
Em geral, a maneira como uma matriz foi obtida (como as nossas matrizes de discretização; veja a última
seção do capı́tulo) torna clara se elas são matrizes que satisfazem a propriedade FC ou não. Se isso
não é possı́vel, e pretende-se verificar a propriedade FC através do Corolário 2.33, é preferı́vel calcular
n−1
[I + M (A)] , já que M (A) é uma matriz composta apenas de 0’s e 1’s.

2.5 Matrizes Irredutı́veis


Às vezes, os resultados da seção anterior são formulados em termos de matrizes irredutı́veis. Neste seção
examinaremos esta formulação equivalente.
Lembre-se que uma matriz de permutação P é uma matriz quadrada cujas entradas são todas 0 ou 1
e, além disso, em cada linha e em cada coluna de P existe exatamente um 1. Em particular, P é uma matriz
ortogonal, de modo que P −1 = P t , isto é, a inversa de P também é uma matriz de permutação. Um caso
especial de uma matriz de permutação é uma matriz de transposição, que é uma matriz de permutação T
igual à matriz identidade exceto em duas posições, isto é, para algum par de ı́ndices fixado k, l temos

 δij se (i, j) 6= (k, l) , (l, k) , (k, k) ou (l, l) ,
Tij = 1 e (i, j) = (k, l) ou se (i, j) = (l, k) ,

0 se (i, j) = (k, k) ou se (i, j) = (l, l) .
Matrizes de transposição são simétricas. O efeito de multiplicar uma matriz A por uma matriz de transposição
à esquerda é trocar a posição de duas linhas da matriz A (no caso acima, as linhas k e l), enquanto que a
multiplicação de A por uma matriz de transposição à direita muda a posição de duas colunas de A (no caso
acima, as colunas k e l).
    
1 0 0 0 a11 a12 a13 a14 a11 a12 a13 a14
 0 0 1 0   a21 a22 a23 a24   a31 a32 a33 a34 
TA =    
 0 1 0 0   a31 a32 a33 a34  =  a21 a22 a23 a24  ,

0 0 0 1 a41 a42 a43 a44 a41 a42 a43 a44


    
a11 a12 a13 a14 1 0 0 0 a11 a13 a12 a14
 a21 a22 a23 a24   0 0 1 0   a21 a23 a22 a24 
AT =    
 a31 a32 a33 a34   0 1 0 0  =  a31 a33 a32 a34  .

a41 a42 a43 a44 0 0 0 1 a41 a43 a42 a44


Pode-se provar que toda matriz de permutação P é o produto de matrizes de transposição P = T1 . . . Tm ;
em particular, P t = Tm . . . T1 . A matriz
P t AP = Tm . . . T1 AT1 . . . Tm
é portanto obtida através da permutação de linhas e colunas de A, de modo que nenhum novo elemento é
criado ou algum elemento existente de A destruı́do.
2.34 Definição. Dizemos que uma matriz A ∈ Mn (C) é redutı́vel se existe alguma matriz de permutação
P e algum inteiro 1 6 m 6 n − 1 tal que
· ¸
t B C
P AP =
0 D
Rodney Josué Biezuner 28

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


a matriz nula (n − m) × m. Caso contrário, dizemos que A é irredutı́vel.

Da definição vemos que se |A| > 0, então A é irredutı́vel, e para que A seja redutı́vel, ela precisa ter pelo
menos n − 1 zeros (caso m = 1). A motivação para este nome é a seguinte. Suponha que queiramos resolver
o sistema Ax = b e que A seja redutı́vel. Então, se escrevermos
· ¸
t B C
A = P AP = ,
0 D

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


equivalente a resolver o sistema
Ax = b.
Escrevendo · ¸ · ¸
y b1
x= , b=
z b2
onde y, b1 ∈ Cm e z, b2 ∈ Cn−m , este sistema é por sua vez equivalente ao sistema
½
By + Cz = b1
Dz = b2

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


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

2.35 Teorema. Uma matriz A ∈ Mn (C) é irredutı́vel se e somente se


n−1
(I + |A|) >0

ou, equivalentemente, se e somente se


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

n−1
Prova. Para provar o resultado, mostraremos que A é redutı́vel se e somente se (I + |A|) possui pelo
menos uma entrada nula.
Assuma primeiramente que A é redutı́vel, de modo que para alguma matriz de permutação P tenhamos
· ¸
B C
A=P P t =: P AP t .
0 D

Observe que ¯ ¯ ¯ ¯
|A| = ¯P AP t ¯ = P ¯A¯ P t ,
já que o efeito de P é apenas trocar linhas e colunas. Além disso, note que
· k ¸
k B Ck
A =
0 Dk

para alguma matriz Ck . Logo, como


¡ ¯ ¯ ¢n−1 ¡ ¯ ¯¢n−1 t
= I + P ¯A¯ P t = P I + ¯A¯
n−1
(I + |A|) P
· µ ¶ µ ¶ ¸
n−1 2 n−1 n−1 n−1
= P I + (n − 1) |A| + |A| + . . . + |A| + |A| Pt
2 n−3
Rodney Josué Biezuner 29

e todos os termos dentro dos colchetes são matrizes que tem um bloco (n − m) × m nulo no canto esquerdo
n−1
inferior, segue que (I + |A|) é redutı́vel, logo possui entradas nulas e não pode ser positiva.
n−1
Reciprocamente, suponha que (I + |A|) possui pelo menos uma entrada nula. Como
µ
n−1
X ¶
n−1 n−1 m
(I + |A|) =I+ |A| ,
m=1
m

n−1
(I
h + |A|) não
i possui entradas diagonais nulas, logo podemos assumir que para algum par i 6= j temos
n−1 m
(I + |A|) = 0, o que implica [|A| ]ij = 0 para todo 1 6 m 6 n − 1. Pelo Teorema 2.30 (e observação
ij
imediatamente posterior à definição de grafo direcionado), não existe um caminho direcionado em Γ (A) de
comprimento finito entre Pi e Pj . Defina os conjuntos de nodos

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


S2 = [ nodos de Γ (A)] \S1 .

Por definição destes conjuntos, não pode existir nenhum caminho de algum nodo de S2 para algum nodo de
m
S1 , logo [|A| ]lk = 0 se Pl ∈ S2 e Pk ∈ S1 . E ambos os conjuntos são não-vazios, pois Pj ∈ S1 e Pi ∈ S2 .
Renomeando os nodos de modo que
n o
S1 = Pe1 , . . . , Pem ,
n o
S2 = Pem+1 , . . . , Pen ,

segue que existe uma matriz de permutação P tal que


· ¸
B C
P t AP = .
0 D

De fato, P é justamente a matriz de permutação que troca as colunas de tal forma que as variáveis anteriores
correspondentes aos nodos Pe1 , . . . , Pem no sistema Ax = b são as novas m primeiras variáveis do sistema linear
Ax = b; como não existe nenhum caminho direcionado entre nenhum dos nodos Pem+1 , . . . , Pen e qualquer um
dos nodos Pe1 , . . . , Pem , temos aij = 0 para m + 1 6 i 6 n e 1 6 j 6 m pelo Teorema 2.30. ¥

2.36 Corolário. Uma matriz A ∈ Mn (C) é irredutı́vel se e somente se ela satisfaz a propriedade FC.
P
n
2.37 Proposição. Se A é uma matriz irredutı́vel, diagonalmente dominante tal que |aii | > |aij | para
j=1
j6=i
pelo menos alguma linha i, então A é invertı́vel.
Além disso, se A é hermitiana e todos os elementos da diagonal principal de A são positivos, então
todos os autovalores de A são positivos.

Prova. O resultado segue do Teorema 2.34, do Corolário 2.25 e do Teorema dos Discos de Gershgorin (veja
comentários após o Teorema 2.18). ¥

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

2.6 Exercı́cios
2.1 Mostre que as normas matriciais introduzidas na primeira seção deste capı́tulo (Exemplos 2.3 até 2.11)
são de fato normas vetoriais.
Rodney Josué Biezuner 30

2.2 Mostre que a norma lp (Exemplo 2.5) é uma norma matricial.

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


2.4 Seja V um espaço vetorial de dimensão finita e k·k1 , k·k2 normas vetoriais quaisquer. Prove que existe
uma constante C > 0 tal que
1
kxk1 6 kxk2 6 C kxk1
C
para todo vetor x ∈ V .
2.5 Seja k·k uma norma matricial. Prove diretamente das propriedades de uma norma matricial que
kIk > 1.
2.6 a) Seja k·k uma norma vetorial. Prove que se α > 0, então α k·k é também uma norma vetorial.
b) Seja k·k uma norma matricial. Conclua do Lema 2.14 que se α < 1, então α k·k não é uma norma
matricial.
c) Seja k·k uma norma matricial. Se α > 1, podemos concluir que α k·k não é uma norma matricial?
2.7 Mostre que se Γ é um grafo direcionado com n nodos, se existe um caminho direcionado entre dois
nodos de Γ, então sempre existe um caminho direcionado entre estes dois nodos de comprimento menor
que ou igual a n − 1
Capı́tulo 3

Métodos Iterativos Lineares

Neste capı́tulo investigaremos os métodos iterativos básicos para a resolução de sistemas lineares

Ax = b.

Embora a matriz A que temos em mente é em geral uma matriz grande e esparsa, do tipo que aparece em
esquemas de diferenças finitas para equações diferenciais parciais, os métodos considerados aqui requerem
em princı́pio apenas que A seja uma matriz invertı́vel com todas as entradas diagonais aii não-nulas (embora
a matriz A deva satisfazer critérios adicionais, de acordo com cada método, para assegurar a convergência
para a solução exata).
Métodos iterativos requerem um chute inicial x0 , ou seja, um vetor inicial que aproxima a solução exata
x (se não há nenhuma informação disponı́vel sobre a solução exata, de modo que não temos como construir
o chute inicial de forma inteligente, x0 pode ser uma aproximação muito ruim de x). Uma vez que x0 é
dado, o método iterativo gera a partir de x0 uma nova aproximação x1 , que esperamos deve aproximar
melhor a solução exata. Em seguida, x1 é usada para¡gerar 2
¢ uma nova melhor aproximação x e assim por
diante. Desta forma, gera-se uma seqüência de vetores xk que espera-se convergir para x. Como na prática
não podemos iterar para sempre, algum critério de parada deve ser estabelecido a priori. Uma vez que xk
esteja suficientemente próximo da solução exata quanto se precise, de acordo com uma margem de tolerância
previamente fixada, pára-se o processo de iteração e aceita-se xk como a solução aproximada adequada para
o problema. Por exemplo, o critério de parada pode ser estabelecido através de uma cota de tolerância τ :
quando ° °
°b − Axk ° < τ

ou quando ° k+1 °
°x − xk ° < τ
as iterações são interrompidas e o último valor aproximado obtido é aceito como a melhor aproximação da
solução dentro das circunstâncias.
Os métodos discutidos neste capı́tulo não necessitam de um bom chute inicial (embora, é claro, quanto
melhor o chute inicial, menor o número de iterações necessárias para se chegar à solução aproximada com
a exatidão especificada). Embora os métodos iterativos lineares são muitos lentos em relação a outros
métodos iterativos desenvolvidos mais recentemente, sendo portanto raramente utilizados isoladamente, eles
são frequentemente usados hoje em dia como componentes de certos métodos iterativos ultra-rápidos, tais
como o método multigrid.

31
Rodney Josué Biezuner 32

3.1 Método Iterativos Básicos


3.1.1 Método de Jacobi
O método iterativo linear mais simples (que já foi descrito também como o mais lento para convergir, embora
isso realmente depende da matriz A do sistema) é o método de Jacobi (1845) Escrevendo o sistema Ax = b
na forma  n
 P

 a1j xj = b1


 j=1
.. ,
 .

 Pn

 anj xj = bn

j=1

se aii 6= 0 para todo i, cada xi pode ser isolado na i-ésima equação e escrito na forma
 
Xn
1 bi −

xi =  aij xj 
.
aii j=1
j6=i
¡ ¢
Isso sugere definir um método iterativo da seguinte forma: suposto xk = xk1 , . . . , xkn obtido no passo
¡ ¢
anterior, obtemos xk+1 = xk+1
1 , . . . , xk+1
n por
 
Xn
1 bi −

xk+1 = aij xkj 
. (3.1)
i
aii  j=1
j6=i

No caso da fórmula de cinco pontos para o problema de Poisson, como a equação para cada ponto (i, j)
é dada por
−ui,j−1 − ui,j+1 + 4ui,j − ui−1,j − ui+1,j = h2 fi,j
o método de Jacobi é
1¡ k ¢
uk+1
i,j = ui,j−1 + uki−1,j + uki+1,j + uki,j+1 + h2 fi,j . (3.2)
4
No caso especial da equação de Laplace (f = 0) com condição de fronteira de Dirichlet não-nula, o método
de Jacobi é simplesmente a propriedade do valor médio discreta
1¡ k ¢
uk+1
i,j = ui,j−1 + uki−1,j + uki+1,j + uki,j+1 . (3.3)
4
Em outras palavras, calculados os valores de u em todos os pontos da malha na iteração anterior, o novo
valor de u em um ponto interior da malha nesta iteração é calculado através da média dos seus quatro
pontos vizinhos. Os valores iniciais de u nos pontos interiores da malha para a primeira iteração (isto é, o
chute inicial) podem ser atribuidos arbitrariamente ou através de algum argumento razoável; por exemplo,
podemos utilizar uma média ponderada dos valores de fronteira para o valor inicial em cada ponto interior
da malha, de acordo com a posição do ponto em relação aos pontos das quatro fronteiras discretizadas.
Em forma matricial, o algoritmo de Jacobi pode ser descrito da seguinte forma. Denotando por D = diag
(a11 , . . . , ann ) a matriz diagonal cujas entradas são as entradas diagonais de A, temos que
£ ¤
xk+1 = D−1 (D − A) xk + b (3.4)

ou ¡ ¢
xk+1 = D−1 Cxk + b (3.5)
onde C = D − A é a matriz consistindo dos elementos restantes de A fora da diagonal principal.
Rodney Josué Biezuner 33

3.1.2 Método de Gauss-Seidel


Um método iterativo que converge cerca de duas vezes mais rápido que o método de Jacobi (na maioria
das aplicações) é o método de Gauss-Seidel (desenvolvido inicialmente por Gauss em 1819 para resolver
sistemas de equações lineares que apareciam no seu método de quadrados mı́nimos e obtendo sua forma final
em 1874 por Seidel), onde os valores de x são atualizados dentro de cada iteração, sem esperar pela próxima.
Em outras palavras, obtido o valor de xk+1 i este é usado no lugar de xki no cálculo seguinte de xk+1
i+1 . No
sistema Ax = b em que aii 6= 0 para todo i, como antes isolamos cada xi na i-ésima equação mas desta vez
escrevemos  
i−1
X Xn
1 
xi = bi − aij xj − aij xj  .
aii j=1 j=i+1

Então definimos  
i−1
X Xn
1 
xk+1
i = bi − aij xk+1
j − aij xkj  (3.6)
aii j=1 j=i+1

pois os valores xk+1


1 , . . . , xk+1 k k
i−1 já foram computados nesta iteração, enquanto que os valores xi+1 , . . . , xn são
fornecidos pela iteração anterior.
Por exemplo, no caso da equação de Laplace, poderı́amos utilizar a fórmula
1 ¡ k+1 ¢
uk+1
i,j = ui,j−1 + uk+1 k k
i−1,j + ui+1,j + ui,j+1 (3.7)
4
assumindo que os pontos da malha são percorridos na ordem lexicográfica, de modo que quando vamos
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
i − 1, j e em i, j − 1, e usamos estes valores para calcular uk+1 k k
i,j ao invés dos valores ui,j−1 e ui−1,j obtidos
na iteração anterior.
Em forma matricial, o algoritmo de Gauss-Seidel pode ser descrito da seguinte forma. Dada uma matriz
A, existe uma única decomposição
A=D−L−U (3.8)
onde D é uma matriz diagonal, L é uma matriz estritamente triangular inferior e U é uma matriz estritamente
triangular superior; de fato, D = diag (a11 , . . . , ann ) é a parte diagonal de A, −L é a parte estritamente
triangular inferior de A e −U é a parte estritamente triangular superior de A. Então o algoritmo de Gauss-
Seidel pode ser definido por ¡ ¢
xk+1 = D−1 Lxk+1 + U xk + b (3.9)
ou
(D − L) xk+1 = U xk + b,
donde ¡ k ¢
−1
xk+1 = (D − L) Ux + b . (3.10)

3.1 Exemplo. Existem matrizes para as quais o método de Jacobi converge e o método de Gauss-Seidel
diverge, e vice-versa. Veja o Exercı́cio 3.1. ¤

3.1.3 Método SOR


O processo de corrigir uma equação através da modificação de uma variável é às vezes chamado de relax-
amento. Antes da correção, a equação não é verdadeira; como um conjunto de partes que não se ajustam,
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
relaxamento sucessivo, ou seja, passa de equação para equação, relaxando uma depois da outra. [Watkins]
Por este motivo, os métodos de Jacobi e de Gauss-Seidel são também chamados métodos de relaxamento.
Em muitos casos, a convergência pode ser substancialmente acelerada através de sobrerelaxamento. Isso
Rodney Josué Biezuner 34

significa que ao invés de fazer uma correção para a qual a equação é satisfeita exatamente, nós fazemos
uma correção maior. No caso mais simples, escolhe-se um fator de relaxamento ω > 1 que sobrecorrige por
aquele fator em cada passo (se mover um passo na direção de xk para xk+1 é bom, mover naquela direção
ω > 1 passos é melhor). Este é o chamado método de sobrerelaxamento sucessivo (SOR, successive
overrelaxation; desenvolvido em 1950 por Young): usando o método de Gauss-Seidel obtemos
 
i−1
X Xn
1 bi −
bk+1
xi = aij xk+1
j − aij xkj  ;
aii j=1 j=i+1

daı́ tomamos ¡ k+1 ¢


xk+1
i = xki + ω x
bi − xki .
Isso pode ser resumido em
   
i−1
X Xn
1
xk+1
i = xki + ω  bi − aij xk+1
j − aij xkj  − xki  . (3.11)
aii j=1 j=i+1

Quando ω = 1, o método SOR é exatamente o método de Gauss-Seidel. Um fator ω < 1 (subrelaxamento)


normalmente diminui a velocidade de convergência.
Para a maioria dos problemas, o melhor valor para o fator de relaxamento é desconhecido. Para a matriz
de discretização obtida a partir da fórmula de cinco pontos, é sabido que o valor ótimo de ω é, como veremos
na próxima seção,
2
ω= . (3.12)
1 + sen (πh)
Em forma matricial, o método SOR pode ser descrito da seguinte forma. Como antes, dada uma matriz
A escrevemos
A=D−L−U (3.13)
onde D é uma matriz diagonal, L é uma matriz estritamente triangular inferior e U é uma matriz estritamente
triangular superior. Então, escrevendo o algoritmo SOR na forma
 
i−1
X n
X
aii xk+1
i = aii xki + ω bi − aij xk+1
j − aij xkj  ,
j=1 j=i

temos £ ¤
Dxk+1 = Dxk + ω Lxk+1 + (U − D) xk + b (3.14)
ou µ ¶ µ ¶
1 k+1 1−ω
D−L x = D + U xk + b,
ω ω
donde µ ¶−1 ·µ ¶ ¸
k+1 1 1−ω k
x = D−L D+U x +b . (3.15)
ω ω

3.1.4 Comparação da Velocidade de Convergência dos Três Métodos no Prob-


lema Modelo
A tabela a seguir foi extraı́da de [Watkins], págs. 533 e 542. Os métodos introduzidos acima foram usados
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

2
cinco pontos do laplaciano no quadrado unitário Ω = (0, 1) e b é estabelecido pela condição de fronteira de
Dirichlet dada por 

 0 se x = 0,

y se x = 1,
g (x, y) =

 (x − 1) sen x se y = 0,

x (2 − x) se y = 1,
ou seja, para resolver o problema discretizado
½
−∆d ud = 0 em Ωd ,
ud = gd sobre ∂Ωd .

As iterações foram interrompidas quando


¯ k+1 ¯
¯u − uk ¯ 2
< 10−8 .
|uk+1 |2

O número de iterações necessárias para convergir de acordo com esta margem de tolerância, para três refina-
mentos possı́veis da malha (correspondentes a matrizes de dimensões n = 81, 361 e 1521, respectivamente),
de acordo com cada método e para diferentes valores de ω no caso do método SOR é apresentado na tabela
abaixo.

h = 0.1 h = 0.05 h = 0.025


Jacobi 299 1090 3908
SOR (ω = 0.8) 235 845 3018
Gauss-Seidel 160 581 2082
SOR (ω = 1.4) 67 262 955
SOR (ω = 1.6) 42 151 577
SOR (ω = 1.7) 57 96 412
SOR (ω = 1.8) 86 89 252
SOR (ω = 1.9) 176 180 179
SOR (ω = 2.0) ∞ ∞ ∞
Vemos que o método de Gauss-Seidel é cerca de duas vezes mais rápido para convergir que o método de
Jacobi e que dependendo da escolha de ω, o método SOR pode ser até dez vezes mais rápido que o método
de Gauss-Seidel para a malha mais refinada. Subrelaxamento não ajuda e para ω = 2 o método SOR é
divergente.

3.1.5 Método de Jacobi Amortecido


O método de Gauss-Seidel pode ser sobrerelaxado através de um parâmetro ω > 1 para obter um método
que converge mais rápido. Já o método de Jacobi não pode em geral ser sobrerelaxado, porque o método
obtido não converge. Ele pode no entanto ser subrelaxado através de um parâmetro ω < 1 para obter um
método convergente, se bem que mais vagaroso. A vantagem de se utilizar um tal método é que para certos
valores de ω ele é um ótimo suavizador de erro (em um sentido que será explicado mais tarde), enquanto
que o método de Jacobi usual não possui esta propriedade. Assim, o método de Jacobi amortecido pode ser
usado em métodos multigrid, como veremos mais tarde.
Pelo método de Jacobi usual obtemos
 
Xn
1 bi −

bk+1
x i =  aij xkj 
,
aii j=1
j6=i
Rodney Josué Biezuner 36

e tomamos ¡ k+1 ¢
xk+1
i = xki + ω x
bi − xki ,
ou seja,    
n
X
 1   
xk+1
i = xki + ω  
 aii bi − aij xkj  k
 − xi  . (3.16)
j=1
j6=i

Este método é conhecido como método de Jacobi amortecido, método de Jacobi ponderado ou ainda
método de relaxamento simultâneo (diferente do método de relaxamento sucessivo, baseado no método de
Gauss-Seidel, em que cada variável é substituı́da sucessivamente dentro da mesma iteração à medida que
ela é atualizada; no método de Jacobi, as variáveis são todas substituı́das simultameamente na próxima
iteração).
Em forma matricial, o método de Jacobi amortecido pode ser descrito da seguinte forma. Denotando por
D a parte diagonal de A, temos
 
Xn
aii xk+1
i = aii xki + ω bi − aij xkj  ,
j=1

temos £ ¤
Dxk+1 = Dxk + ω b − Axk (3.17)
ou µ ¶ µ ¶
1 k+1 1
D x = D − A xk + ωb,
ω ω
donde µ ¶−1 ·µ ¶ ¸
k+1 1 1 k
x = D D−A x +b . (3.18)
ω ω
Em contraste com o método SOR, que converge em geral para 0 < ω < 2, o método de Jacobi amortecido
converge para 0 < ω 6 1 (veja a próxima seção).

3.2 Análise de Convergência dos Métodos Iterativos Lineares


Os métodos iterativos básicos são casos especiais de uma classe geral de métodos chamados métodos iterativos
lineares:

3.2 Definição. Um método iterativo linear para resolver o sistema Ax = b é um método da forma

xk+1 = Rxk + N b

onde R e N são matrizes dadas. A matriz R é chamada a matriz de iteração do método.

Em geral, um método iterativo linear para resolver o sistema linear

Ax = b

envolve a decomposição da matriz A na forma

A = B − C, (3.19)

onde B é necessariamente uma matriz invertı́vel, e em seguida a resolução iterativa do sistema de equações

Bxk+1 = Cxk + b (3.20)


Rodney Josué Biezuner 37

ou, mais explicitamente, ¡ ¢


xk+1 = B −1 Cxk + b .
Na notação da definição, temos que a matriz de iteração é

R = B −1 C = B −1 (B − A) = I − B −1 A (3.21)

e
N = B −1 . (3.22)
Se xk → x, então Bx = Cx + b, donde Ax = b. Do ponto de vista prático, é importante que a matriz B
seja “fácil de resolver” (mesmo que a inversa de B não seja efetivamente calculada), como nos exemplos da
seção anterior:

B C R
Jacobi D D−A D−1 (D − A)
µ ¶−1 µ ¶
1 1 1 1
Jacobi amortecido D D−A D D−A
ω ω ω ω
−1
Gauss-Seidel D−L U (D − L) U
µ ¶−1 µ ¶
1 1−ω 1 1−ω
SOR D−L D+U D−L D+U
ω ω ω ω

Para obter uma convergência rápida também gostarı́amos que B ≈ A e C ≈ 0. Deste ponto de vista, o ideal
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
de resolver”. Um compromisso é necessário: B deve aproximar A o melhor possı́vel sem se tornar muito
complicada.

3.2.1 Convergência dos Métodos Iterativos Lineares


3.3 Definição. Para métodos iterativos em geral, o erro algébrico é definido por

ek = x − xk , (3.23)

enquanto que o erro residual é dado por

rk = b − Axk . (3.24)

O erro algébrico tem interesse puramente teórico (para provar que determinado método iterativo converge,
precisamos mostrar que o erro algébrico tende a zero), já que ele só pode ser calculado uma vez que se
conhece a solução exata, e se este for o caso obviamente não há necessidade de resolver o sistema. Já o erro
residual pode ser usado como critério de parada para o método iterativo. O erro algébrico e o erro residual
estão relacionados através da expressão:
Aek = rk , (3.25)
pois Aek = Ax − Axk = b − Axk = rk .
Para os métodos iterativos lineares, como
¡ ¢
Bek+1 = Bx − Bxk+1 = Ax + Cx − Cxk − b = C x − xk = Cek ,

segue que ¡ ¢
ek+1 = B −1 C ek
Rodney Josué Biezuner 38

ou
ek+1 = Rek . (3.26)
Por este motivo, a matriz de iteração também é chamada de matriz de propagação do erro. Segue de (3.26)
que
ek = R k e0 , (3.27)
de modo que o erro converge para 0, independentemente do chute inicial x0 , se e somente se Rk → 0. Isso
ocorre se e somente se existe alguma norma matricial k·k tal que kRk < 1. Obter uma norma matricial
que satisfaz esta propriedade, no entanto, é difı́cil. Vamos obter uma condição necessária e suficiente para
Rk → 0 em termos do raio espectral da matriz de iteração, que é em geral um pouco mais fácil de calcular.
Antes, para motivar o resultado, suponha que R seja uma matriz diagonalizável com λ1 , . . . , λn os seus
autovalores e {v1 , . . . , vn } uma correspondente base de autovetores. Escrevendo o erro inicial como uma
combinação linear dos autovetores, temos
Xn
e0 = ai vi .
i=1

Logo,
n
X
ek = Rk e0 = ai λki vi ,
i=1

de modo que
n
¯ k¯ X
¯e ¯ 6 k
|ai | |λi | |vi | .
i=1
k
Como |λi | → 0 se e somente se |λi | < 1, concluı́mos que ek → 0 qualquer que seja o erro inicial (isto é,
qualquer que seja o chute inicial), se e somente se

ρ (R) = max |λi | < 1 .


16i6n

3.4 Lema. Se A ∈ Mn (C) e k·k é qualquer norma matricial, então

ρ (A) 6 kAk .

Prova. Seja λ um autovalor qualquer de A e x um autovetor não-nulo associado a λ, de modo que

Ax = λx.

Considere a matriz X ∈ Mn (C) cujas colunas são todas iguais ao vetor x. Temos também

AX = λX

de modo que
|λ| kXk = kAXk 6 kAk kXk ,
donde
|λ| 6 kAk
para todo autovalor λ de A. Como existe um autovalor λ de A tal que ρ (A) = |λ|, isso prova o resultado. ¥

3.5 Lema. Seja A ∈ Mn (C) e ε > 0 dado. Então existe uma norma matricial k·k tal que

ρ (A) 6 kAk 6 ρ (A) + ε. (3.28)


Rodney Josué Biezuner 39

Prova. Toda matriz complexa A é triangularizável através de uma matriz unitária U isto é, isto é, existe
uma matriz triangular T e uma matriz U que satisfaz U ∗ U = U U ∗ = I (veja [Hoffman-Kunze]) tais que

A = U ∗T U ;

T é chamada a forma triangular ou forma normal de Schur de A. Seja então


 
λ1 a12 a22 . . . a1n
 λ2 a23 . . . a2n 
 
 λ3 . . . a3n 
T = 
 .. .. 
 . . 
λn

a forma triangular de A. Para t ∈ R arbitrário, considere a matriz diagonal


 
t
 t2 
 
Dt =  . .
 .. 
n
t

Temos  
λ1 a12 t−1 a22 t−2 ... ... a1n t−n+1
 λ2 a23 t−1 ... ... a2n t−n+2 
 
 λ3 ... ... a3n t−n+3 
 
Dt T Dt−1 = .. .. .
 . . 
 
 λn−1 an−1,n t−1 
λn
Logo, para t > 0 suficientemente grande, a matriz Dt T Dt−1 tem a propriedade que a soma dos valores
absolutos de elementos fora da diagonal principal é menor que ε. Em particular, se k·kL denota a norma do
máximo das somas das linhas, podemos garantir que
° °
°Dt T Dt−1 ° 6 ρ (A) + ε
L

para t suficientemente grande. Portanto, fixado um tal t, se definirmos uma norma por
° ° °¡ ¢−1 °
° °
kAk := °Dt U AU ∗ Dt−1 °L = ° U ∗ Dt−1 AU ∗ Dt−1 ° ,
L

teremos ° ° ° °
kAk = °Dt U AU ∗ Dt−1 °L = °Dt T Dt−1 °L 6 ρ (A) + ε.
Pelo lema anterior, ρ (A) 6 kAk. ¥

3.6 Lema. Seja A ∈ Mn (C). Se existe alguma norma matricial k·k tal que kAk < 1, então

Ak → 0.

Prova. Se kAk < 1, então ° k°


°A ° 6 kAkk → 0.

¥
Rodney Josué Biezuner 40

3.7 Proposição. Seja A ∈ Mn (C). Então


Ak → 0
se e somente se
ρ (A) < 1.

Prova. Se existe algum autovalor λ de A tal que |λ| > 1 e x é um autovetor não-nulo correspondente, então

Ak x = λk x

não converge para 0. Reciprocamente, se ρ (A) < 1, então pelo Lema 3.5 existe uma norma matricial k·k tal
que kAk < 1, logo Ak → 0 pelo lema anterior. ¥
Finalmente obtemos uma condição necessária e suficiente para um método iterativo linear convergir:

3.8 Corolário. Seja R a matriz de iteração de um método iterativo linear. Então

ek → 0

se e somente se
ρ (R) < 1.
Em outras palavras, um método iterativo linear é convergente independentemente da escolha do chute
inicial se e somente se todos os autovalores da matriz de iteração têm valor absoluto menor que 1.

Portanto, a análise da convergência de um determinado método iterativo linear passa pela análise dos au-
tovalores de sua matriz de iteração R. Como esta última depende da matriz de coeficientes A do sistema
linear, a convergência ou não de qualquer um dos métodos iterativos lineares vai depender da matriz A.

3.2.2 Velocidade de Convergência dos Métodos Iterativos Lineares


O raio espectral também dá informação sobre a velocidade de convergência. Se nós tivermos dois métodos
iterativos lineares diferentes, isto é, duas maneiras diferentes de decompor a matriz A:

A = B1 − C1 = B2 − C2 ,

então o segundo método convergirá mais rápido se e somente se

ρ (R2 ) < ρ (R1 ) .

Em particular, a velocidade de convergência relativa dos métodos iterativos lineares também vai depender
da matriz A: para certas matrizes um determinado método é superior ao outro, enquanto que para outras
matrizes o contrário é verdadeiro.
Vamos analisar a velocidade de convergência dos métodos iterativos com maior precisão. Novamente à
tı́tulo de motivação, suponha que R é uma matriz diagonalizável com seu maior autovalor sendo um autovalor
simples. Ordene os autovalores de R na forma

|λ1 | > |λ2 | > . . . > |λn |

e seja {v1 , . . . , vn } uma correspondente base de autovetores. Escrevendo de novo


n
X
e0 = ai vi ,
i=1

donde
n
X
ek = Rk e0 = ai λki vi ,
i=1
Rodney Josué Biezuner 41

segue que " #


n
X µ ¶k
λi
ek = λk1 a1 v1 + ai vi .
i=2
λ1
Como µ ¶k
λi
→ 0,
λ1
k
a taxa de convergência é determinada por |λ1 | . Para k grande, temos

ek ≈ λk1 a1 v1 .

Portanto, ¯ k+1 ¯
¯e ¯
= |λ1 | = ρ (R) . (3.29)
|ek |
Em outras palavras, a convergência é linear com taxa de convergência igual ao raio espectral. Se a1 =
0 a convergência será mais rápida, pois dependerá do módulo do segundo autovalor, mas é obviamente
extremamente raro que o erro inicial satisfaça esta condição, isto é, que ele não tenha nenhuma componente
na direção do primeiro autovetor. Para o caso geral, precisamos do seguinte resultado:

3.9 Proposição. Seja A ∈ Mn (C) e k·k uma norma matricial. Então


° °1/k
ρ (A) = lim °Ak ° .

Prova. Como os autovalores da matriz Ak são as k-ésimas potências dos autovalores de A (este resultado
pode ser mais facilmente visto a partir da forma triangular de A), temos que
¡ ¢ ° °
ρ (A) = ρ Ak 6 °Ak ° ,
k

donde ° °1/k
ρ (A) 6 °Ak ° .
Por outro lado, dado ε > 0, a matriz
1
B= A
ρ (A) + ε
tem raio espectral menor que 1, logo B k → 0. Portanto, existe algum N = N (ε, A) tal que
° k°
°B ° < 1,

para todo k > N . Logo, ° k°


°A ° < (ρ (A) + ε)k ,
donde ° k °1/k
°A ° < ρ (A) + ε
para todo k > N . ¥

3.10 Definição. A taxa média de convergência de um método iterativo linear com matriz de iteração
R é definida como sendo
° °1/k 1 ° °
Rk (R) = − log10 °Rk ° = − log10 °Rk ° (3.30)
k
e a taxa assintótica de convergência é dada por

R∞ (R) = lim Rk (R) . (3.31)


k→∞
Rodney Josué Biezuner 42

3.11 Corolário. Seja R a matriz de iteração de um método iterativo linear. Então a taxa assintótica de
convergência do método é dada por

R∞ (R) = − log10 ρ (R) . (3.32)

Prova. Pois ° °1/k ° °1/k


R∞ (R) = − lim log10 °Rk ° = − log10 lim °Rk ° = − log10 ρ (R) .
k→∞ k→∞

¥
A taxa assintótica de convergência mede o aumento no número de casas decimais corretas na solução por
iteração. De fato, usando a norma matricial do Lema 3.5 e medindo as normas dos vetores de acordo, temos
¯ k+1 ¯ ¯ k+1 0 ¯
¯e ¯ ¯R e ¯
= 6 kRk = ρ (R) + ε,
|ek | |Rk e0 |
donde ¯ k+1 ¯
¯e ¯
− log10 = − log10 ρ (R) + O (ε)
|ek |
ou ¯ ¯ ¯ ¯
log10 ¯ek ¯ − log10 ¯ek+1 ¯ = R∞ (R) + O (ε) . (3.33)
Assim, se
¯ k¯ ¡ ¢
¯e ¯ = O 10−p ,
¯ k+1 ¯ ¡ ¢
¯e ¯ = O 10−q ,

teremos
q − p ≈ R∞ (R) ,
isto é, reduzimos R∞ (R) ≈ q − p casas decimais no erro. Visto de outra forma, como
¯ k+m ¯ ¯ k+m 0 ¯
¯e ¯ ¯R e ¯ m
= 6 kRm k = ρ (R) + O (ε) ,
|ek | |Rk e0 |
donde ¯ k+m ¯
¯e ¯
− log10 ≈ −m log10 ρ (R) ,
|ek |
ou ¡¯ ¯ ¯ ¯¢
log10 ¯ek+m ¯ / ¯ek ¯
m= (3.34)
log10 ρ (R)
é o número de iterações necessárias para diminuir o erro de um número prescrito de casas decimais.

3.2.3 Convergência para Matrizes Simétricas Positivas Definidas


Para matrizes reais simétricas positivas definidas é mais fácil provar a convergência dos métodos iterativos
lineares. Temos o seguinte resultado básico a seguir. Antes precisamos da seguinte definição:

3.12 Definição. Introduzimos uma ordenação parcial em Mn definindo

A6B

se
hAx, xi 6 hBx, xi
n
para todo x ∈ C .
Rodney Josué Biezuner 43

Em particular, se A é uma matriz positiva definida, segue que A > εI para algum ε (o menor autovalor de
A) e denotamos este fato por
A > 0.
Lembramos que se A é uma matriz simétrica positiva definida e P é uma matriz invertı́vel, então B = P t AP
também é uma matriz simétrica positiva definida, pois
¡ ¢t ¡ ¢t
B t = P t AP = P t At P t = P t AP = B

e ­ ®
hBx, xi = P t AP x, x = hAP x, P xi .

3.13 Teorema. Seja A uma matriz simétrica positiva definida e seja A = B − C com B invertı́vel. Então o
método iterativo linear com matriz de iteração R = B −1 C converge se e somente se a matriz simétrica
B t + C é positiva definida.

Prova. Para ver que B t + C é simétrica, escreva B t + C = B t + B − A e note que


¡ t ¢t ¡ ¢t
B + C = B t + B − A = B + B t − A = B t + B − A = B t + C.

Medimos a norma do erro através da norma induzida por A


1/2
|x|A := hAx, xi

e consideraremos a norma matricial k·kA induzida por esta norma. Se provarmos que

kRkA < 1,

o método convergirá. Temos


¯ −1 ¯2 ­ ® ­ t −t ®
° −1 °2 ¯B Cx¯ AB −1 Cx, B −1 Cx C B AB −1 Cx, x
= °B C °A = sup
2 A
kRkA 2 = sup = sup . (3.35)
x6=0 |x|A x6=0 hAx, xi x6=0 hAx, xi

Observe que C t B −t AB −1 C é uma matriz simétrica positiva definida, pois


¡ ¢ ¡ ¢ ¡ ¢
C t B −t AB −1 C = B t − A B −t AB −1 (B − A) = I − AB −t A I − B −1 A
¡ ¢t ¡ ¢
= I − B −1 A A I − B −1 A .

Portanto, para provar que kRkA < 1, basta mostrar que

C t B −t AB −1 C < A. (3.36)

Continuando o desenvolvimento da expressão em outra direção, temos


¡ ¢ ¡ ¢
C t B −t AB −1 C = I − AB −t A I − B −1 A
¡ ¢
= A − AB −t A + AB −1 A − AB −t AB −1 A
¡ ¢
= A − AB −t B + B t − A B −1 A
¡ ¢t ¡ ¢
= A − B −1 A B t + C B −1 A.

de modo que (3.36) vale se e somente se B t + C é positiva definida. ¥


Rodney Josué Biezuner 44

3.3 Convergência dos Métodos Iterativos Lineares para Matrizes


de Discretização
3.3.1 Convergência do Método de Jacobi
P
n
3.14 Teorema. Se A é uma matriz irredutı́vel, diagonalmente dominante tal que |aii | > |aij | para pelo
j=1
j6=i
menos alguma linha i, então o método de Jacobi converge.

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


método
¡ de Jacobi
¢ para A. Suponha por absurdo que exista um autovalor λ de R tal que |λ| > 1. Como
λ det λ−1 R − I = det (R − λI) = 0, temos
¡ ¢
det I − λ−1 R = 0.

Por outro lado, observe que I − λ−1 R também é irredutı́vel, pois


(
¡ ¢ 0 se i = j,
Rij = I − D−1 A ij = aij
− se i 6= j,
aii
(
¡ ¢ 1 se i = j,
−1 aij
−1
I − λ R ij = λ se i 6= j,
aii
de modo que, onde A se anula, I − λ−1 R também se anula. Além −1
¡ disso,−1I −¢λ R é diagonalmente dominante
−1
e estritamente dominante nas linhas onde A é, pois |λ| 6 1, I − λ R ii = 1 e
n ¯
X ¯¡ ¢ ¯¯ |λ|−1 X n
1 X
n
¯ I − λ−1 R ij ¯ = |aij | 6 |aij | .
j=1
|aii | j=1 |aii | j=1
j6=i j6=i j6=i

Mas, pela Proposição 2.36, isso implica que I − λ−1 R é invertı́vel, uma contradição. ¥
O Teorema 3.14 mostra que o método de Jacobi converge para as matrizes de discretização obtidas através
dos esquemas de diferenças finitas do Capı́tulo 1.
Através do Teorema 3.14, fomos capazes de provar a convergência do método de Jacobi para as matrizes de
discretização sem calcular explicitamente os seus raios espectrais. Para analizar a velocidade de convergência
do método de Jacobi, no entanto, é necessário obter os raios espectrais destas matrizes. Vamos fazer isso para
as matrizes de discretização obtidas a partir da fórmula de três pontos unidimensional e a partir da fórmula
de cinco pontos bidimensional. Para isso, precisaremos obter os autovalores destas matrizes de discretização.
No caso da fórmula de três pontos unidimensional, lembrando que as autofunções para o problema de
Dirichlet do laplaciano no intervalo [0, 1] são as funções trigonométricas

Uj (x) = sen jπx,

isso sugere que os autovetores uj da matriz A sejam os vetores de coordenadas

Uj (x1 ) , Uj (x2 ) , . . . , Uj (xn−2 ) , Uj (xn−1 ) = Uj (h) , Uj (2h) , . . . , Uj ((n − 2) h) , Uj ((n − 1) h) ,

ou seja, como h = 1/n, os vetores


µ ¶
jπ 2jπ (n − 2) jπ (n − 1) jπ
uj = sen , sen , . . . , sen , sen .
n n n n
Usando identidades trigonométricas, vamos verificar que isso de fato acontece:
Rodney Josué Biezuner 45

3.15 Lema. Os n − 1 autovalores da matriz de discretização A da fórmula dos três pontos unidimensional
são µ ¶
2 jπ 4 jπ
λj = 2 1 − cos = 2 sen2 (3.37)
h n h 2n
e os autovetores correspondentes são
µ ¶
jπ 2jπ (n − 2) jπ (n − 1) jπ
uj = sen , sen , . . . , sen , sen (3.38)
n n n n

j = 1, . . . , n − 1.

Prova. Temos
 jπ   
  sen jπ 2jπ
2 −1  n   2 sen − sen 
   n n 
 −1 2 −1  2jπ   jπ 2jπ 3jπ 
  sen   − sen + 2 sen − sen 
 .. ..  n   n n n 
 −1 . .  ..   .. 
  = . 
 .. ..  .   
 . .  
 −1  (n − 2) jπ   (n − 3) jπ (n − 2) jπ (n − 1) jπ 
 −1 2 −1   sen    − sen + 2 sen − sen 

 n  n n n
−1 2    (n − 2) jπ (n − 1) jπ 
(n − 1) jπ − sen + 2 sen
sen n n
n  

 sen 
 n 
 2jπ 
 sen 
µ ¶ n 
jπ  .. 
= 2 1 − cos  . ,
n  
 (n − 2) jπ 
 sen 
 n 
 (n − 1) jπ 
sen
n
pois µ ¶
jπ 2jπ jπ jπ jπ jπ jπ
2 sen − sen = 2 sen − 2 sen cos = 2 1 − cos sen ,
n n n n n n n

(n − k − 1) jπ (n − k) jπ (n − k + 1) jπ
− sen + 2 sen − sen
· n ¸ n n
· ¸
(n − k) jπ jπ (n − k) jπ (n − k) jπ jπ
= − sen − + 2 sen − sen +
n n n n n
(n − k) jπ jπ (n − k) jπ jπ (n − k) jπ
= − sen cos + cos sen + 2 sen
n n n n n
(n − k) jπ jπ (n − k) jπ jπ
− sen cos − cos sen
µ n ¶ n n n
jπ (n − k) jπ
= 2 1 − cos sen ,
n n
Rodney Josué Biezuner 46

e
(n − 2) jπ (n − 1) jπ
− sen + 2 sen
· n ¸ n
(n − 1) jπ jπ (n − 1) jπ
= − sen − + 2 sen
n n n
(n − 1) jπ jπ (n − 1) jπ jπ (n − 1) jπ
= − sen cos + cos sen + 2 sen
n n n n n
(n − 1) jπ jπ (n − 1) jπ jπ (n − 1) jπ
= − sen cos − sen cos + 2 sen
µ n ¶ n n n n
jπ (n − 1) jπ
= 2 1 − cos sen ,
n n

onde na penúltima identidade usamos o fato que

(n − 1) jπ jπ (n − 1) jπ jπ
cos sen = − sen cos
n n n n
porque · ¸
(n − 1) jπ jπ (n − 1) jπ jπ (n − 1) jπ jπ
0 = sen jπ = sen + = sen cos + cos sen .
n n n n n n
¥
No caso da fórmula de cinco pontos bidimensional, lembrando que as autofunções de Dirichlet do lapla-
ciano no quadrado unitário [0, 1] × [0, 1] são as funções

Ukl (x, y) = sen kπx sen lπy,

isso sugere que os autovetores ukl da matriz A na ordem lexicográfica são os vetores de coordenadas

Ukl (x1 , y1 ) , Ukl (x2 , y1 ) , . . . , Ukl (xn−1 , y1 ) ,


Ukl (x1 , y2 ) , Ukl (x2 , y2 ) , . . . , Ukl (xn−1 , y2 ) ,
..
.
Ukl (x1 , yn−1 ) , Ukl (x2 , yn−1 ) , . . . , Ukl (xn−1 , yn−1 )

ou seja,
Ukl (h, h) , Ukl (2h, h) , . . . , Ukl ((n − 1) h, h) ,
Ukl (h, 2h) , Ukl (2h, 2h) , . . . , Ukl ((n − 1) h, 2h) ,
..
.
Ukl (h, (n − 1) h) , Ukl (2h, (n − 1) h) , . . . , Ukl ((n − 1) h, (n − 1) h) ,
ou seja, como h = 1/n, os vetores
µ
kπ lπ 2kπ lπ (n − 1) kπ lπ
ukl = sen sen , sen sen , . . . , sen sen ,
n m n n n n
kπ 2lπ 2kπ 2lπ (n − 1) kπ 2lπ
sen sen , sen sen , . . . , sen sen ,
n n n n n n
...,

kπ (n − 1) lπ 2kπ (n − 1) lπ (n − 1) kπ (n − 1) lπ
sen sen , sen sen , . . . , sen sen .
n n n n n n
Rodney Josué Biezuner 47

2
3.16 Lema. Os (n − 1) autovalores da matriz de discretização A da fórmula dos cinco pontos bidimensional
são µ ¶ µ ¶
2 kπ lπ 4 kπ lπ
λkl = 2 2 − cos − cos = 2 sen2 + sen2 (3.39)
h n n h 2n 2n
e os autovetores correspondentes são
µ
kπ lπ 2kπ lπ (n − 1) kπ lπ
ukl = sen sen , sen sen , . . . , sen sen ,
n n n n n n
kπ 2lπ 2kπ 2lπ (n − 1) kπ 2lπ
sen sen , sen sen , . . . , sen sen , (3.40)
n n n n n n
...,

kπ (n − 1) lπ 2kπ (n − 1) lπ (n − 1) kπ (n − 1) lπ
sen sen , sen sen , . . . , sen sen ,
n n n n n n

k = 1, . . . , n − 1, l = 1, . . . , m − 1.

Prova. Embora a demonstração deste lema possa ser feita de maneira análoga à do lema anterior, usando
identidades trigonométricas, daremos uma demonstração diferente. Lembrando que as autofunções e os
autovalores de Dirichlet do laplaciano no retângulo são facilmente obtidos através do método de separação
de variáveis, encontraremos os autovalores da matriz A usando um método de separação de variáveis discreto
para achar os autovalores do laplaciano discreto dado pela fórmula dos cinco pontos:
ui,j−1 + ui−1,j − 4ui,j + ui+1,j + ui,j+1
− = λui,j . (3.41)
h2
Em particular, este método não depende da maneira como os pontos da malha são ordenados (não depende
da matriz A usada para representar o laplaciano discreto). Como no método de separação de variáveis
contı́nuo, assumimos que as soluções da equação discreta acima são produtos da forma

ui,j = F (i) G (j) , (3.42)

onde F e G são funções de uma variável inteira. Substituindo esta expressão na equação de Helmholtz
discreta, obtemos

F (i) G (j − 1) + F (i − 1) G (j) − 4F (i) G (j) + F (i + 1) G (j) + F (i) G (j + 1) = −λh2 F (i) G (j) .

Dividindo esta equação por F (i) G (j), segue que

F (i − 1) − 2F (i) + F (i + 1) G (j − 1) − 2G (j) + G (j + 1)
+ = −λh2 .
F (i) G (j)

Separando as variáveis, concluı́mos que cada um dos quocientes acima é independente de i ou de j, isto é,
eles são constantes:
F (i − 1) − 2F (i) + F (i + 1)
= A, (3.43)
F (i)
G (j − 1) − 2G (j) + G (j + 1)
= B, (3.44)
G (j)

onde as constantes α, β estão relacionadas pela identidade

A + B = −λh2 . (3.45)
Rodney Josué Biezuner 48

Estas equações podem ser escritas como fórmulas de recorrência (análogas às equações diferenciais ordinárias
obtidas no método de separação de variáveis contı́nuo)

F (i + 1) − (A + 2) F (i) + F (i − 1) = 0,
G (j − 1) − (B + 2) G (j) + G (j + 1) = 0.

Para resolvê-las, é mais conveniente trabalhar com as constantes

2α = A + 2,
2β = B + 2.

Desta forma, as equações para F e G tornam-se

F (i − 1) − 2αF (i) + F (i + 1) = 0, (3.46)


G (j − 1) − 2βG (j) + G (j + 1) = 0. (3.47)

Vamos resolver a equação para F , já que a equação para G é idêntica. Substituindo em (3.46) uma solução
da forma
F (i) = z i (3.48)
obtemos
z i−1 − 2αz i + z i+1 = 0,
donde, dividindo por z i−1 extraı́mos a equação quadrática (análoga à equação indicial)

z 2 − 2αz + 1 = 0. (3.49)

As duas raı́zes são p


z± = α ± α2 − 1,
com z+ + z− = 2α e z+ z− = 1. Portanto, a solução geral para a equação (3.46) é
i i
F (i) = c1 z+ + c2 z−

para algumas constantes c1 , c2 . Para determinarmos estas constantes e também α, aplicamos as condições
de fronteira, que implicam
F (0) = F (n) = 0.
A primeira destas por sua vez implica que c1 = −c2 , logo
¡ i i
¢
F (i) = c z+ − z− . (3.50)

Como a equação para F é homogênea, a constante c é arbitrária. Aplicando a segunda, segue que
n n
z+ = z− ,

ou, como z+ z− = 1,
2n
z+ =1
Conseqüentemente, z+ é uma 2n-ésima raiz complexa de 1:

z+ = eijπ/n (3.51)

para algum inteiro 1 6 k 6 2n − 1, onde i = −1. Como z− = 1/z+ , podemos restringir 0 6 k 6 n − 1 e
(3.50) produz todas as soluções não-triviais F de (3.46).
Rodney Josué Biezuner 49

Portanto,
z+ + z− eiπk/n + e−iπk/n kπ
α= = = cos , 0 6 k 6 n − 1,
2 2 n
e, escolhendo c = 1/2,
ikπ
Fk (i) = eiπki/n − e−iπki/n = sen .
n
Analogamente,

β = cos , 0 6 l 6 n − 1,
n
e
jlπ
Gl (j) = sen .
n
Segue que os autovalores são · ¸
2 kπ lπ
λkl = 2 − cos − cos
h2 n n
e as coordenadas das autofunções associadas são dadas por
ikπ jlπ
(ukl )i,j = Fk (i) Gl (j) = sen sen .
n m
¥
3.17 Teorema. Seja A a matriz de discretização obtida a partir da fórmula de três pontos unidimensional
ou a partir da fórmula de cinco pontos bidimensional. Seja R = D−1 (D − A) a matriz de iteração do
método de Jacobi. Então
π
ρ (R) = cos . (3.52)
n
Prova. Vamos provar para a fórmula de cinco pontos bidimensional; o argumento para a fórmula de três
pontos unidimensional é análogo e fica deixado como exercı́cio. Para o método de Jacobi, a matriz de
discretização xk+1 = Rxk + D−1 b é obtida através da fórmula:
1¡ k ¢
uk+1
i,j = ui,j−1 + uki,j+1 + uki−1,j + uki+1,j .
4
Já vimos no Lema 3.16 que
¡ ¢ kl
−ukl kl kl kl kl
i−1,j − ui+1,j + 4ui,j − ui,j−1 − ui,j+1 = λkl h
2
ui,j
com µ ¶
2 kπ lπ
λkl = 2 − cos − cos .
h2 n n
Daı́ segue que ¡ ¢ kl
ukl kl kl kl
i,j−1 + ui,j+1 + ui−1,j + ui+1,j = 4 − λkl h
2
ui,j
Logo
1 ¡ kl ¢
ui,j−1 + ukl kl kl kl
i,j+1 + ui−1,j + ui+1,j = µlk ui,j
4
para µ ¶ µ ¶
1 2 1 kπ lπ 1 kπ lπ
µlk = 1 − λkl h = 1 − 2 − cos − cos = cos + cos .
4 2 n n 2 n n
Estes são os autovalores da matriz de iteração de Jacobi para a matriz de discretização obtida a partir da
fórmula de cinco pontos (observe que elas possuem os mesmos autovetores; no entanto R possui autovalores
nulos). Segue que o máximo autovalor ocorre quando k = l = 1, logo
π
ρ (R) = cos .
n
Rodney Josué Biezuner 50

¥
Para o quadrado unitário temos
ρ (R) = cos (πh) . (3.53)
Vemos em particular que ρ (R) → 1 quando h → 0, de modo que a velocidade de convergência do método
de Jacobi vai ficando cada vez menor para malhas mais refinadas. Podemos dizer mais usando a expansão
da função cosseno em torno da origem
1 ¡ ¢
cos x = 1 − x2 + O x4 ;
2
se h é pequeno podemos aproximar
π2 2
cos (πh) ≈ 1 − h ,
2
de modo que ρ (R) → 1 quadraticamente quando h → 0. Em outras palavras, para uma malha duas vezes
mais refinada (isto é, h reduzido pela metade), o método de Jacobi é cerca de quatro vezes mais vagaroso
em média (consulte novamente a tabela no final da seção anterior). A tabela abaixo mostra os valores do
raio espectral para alguns valores de h:

h 0.1 0.05 0.025


ρ (R) 0.9511 0.9877 0.9969

Para h = 0.025 (correspondente a uma matriz de tamanho n = 39 × 39 = 1521), temos

R∞ (R) = − log10 (0.9969) = 0.0013484,

de modo que para reduzir o erro pelo fator de uma casa decimal precisamos de
log10 0.1 1 1
m= =− = ≈ 742
log10 ρ (R) log10 ρ (R) 0.00135

iterações.

3.3.2 Convergência do Método de Gauss-Seidel


P
n
3.18 Teorema. Se A é uma matriz irredutı́vel, diagonalmente dominante tal que |aii | > |aij | para pelo
j=1
j6=i
menos alguma linha i, então o método de Gauss-Seidel converge.

Prova. Sejam D a parte diagonal, −L a parte triangular inferior estrita e −U a parte triangular superior
−1
estrita da matriz A, e seja R = (D − L) U a matriz de iteração do método de Gauss-Seidel para A.
Escrevemos £ ¡ ¢¤−1
−1
R = (D − L) U = D I − D−1 L U
ou ¡ ¢−1 −1
R = I − D−1 L D U. (3.54)
Suponha por absurdo que exista um autovalor λ de R tal que |λ| > 1; como na demonstração do Teorema
3.9, temos ³ h¡
¡ ¢ ¢−1 −1 i´
det I − λ−1 R = det I − λ−1 I − D−1 L D U = 0.

Agora, observando que ¡ ¢


det I − D−1 L = 1
Rodney Josué Biezuner 51

porque I − D−1 L é uma matriz triangular inferior com apenas 1’s na diagonal principal, escrevemos
³ h¡ ¢−1 −1 i´
0 = det I − λ−1 I − D−1 L D U
¡ ¢ ³ h¡ ¢−1 −1 i´
= det I − D−1 L det I − λ−1 I − D−1 L D U
n¡ ¢ ³ h ¡ ¢−1 −1 i´o
= det I − D−1 L I − λ−1 I − D−1 L D U
¡ −1 −1 −1
¢
= det I − D L − λ D U .

Por outro lado,


D−1 A = I − D−1 L − D−1 U
é irredutı́vel, diagonalmente dominante e estritamente dominante nas linhas onde A é porque
(
¡ −1 ¢ 1 se i = j,
D A ij = aij
se i 6= j.
aii

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
respectivamente a parte diagonal, a parte triangular inferior estrita e a parte triangular superior estrita da
matriz D−1 A, e multiplicar a parte triangular inferior estrita pelo número λ−1 cujo módulo é menor que ou
igual a 1 não alterará a dominância diagonal (na verdade só tende a melhorá-la) nem acrescentará zeros à
matriz. A Proposição 2.16 implica então que I − D−1 L − λ−1 D−1 U é invertı́vel, um absurdo. ¥
Usando o Teorema 3.18, concluı́mos que o método de Gauss-Seidel converge para as matrizes de discretização
obtidas através dos esquemas de diferenças finitas do Capı́tulo 1. Para analizar a velocidade de convergência
do método de Gauss-Seidel, vamos obter os raios espectrais para as matrizes de discretização obtidas a partir
da fórmula de três pontos unidimensional e a partir da fórmula de cinco pontos bidimensional.

3.19 Teorema. Seja A a matriz de discretização obtida a partir da fórmula de três pontos unidimensional
−1
ou a partir da fórmula de cinco pontos bidimensional. Seja R = (D − L) U a matriz de iteração do
método de Gauss-Seidel. Então
π
ρ (R) = cos2 . (3.55)
n
Prova. Para obter o raio espectral da matriz de iteração R, queremos encontrar os autovalores µ de R:
−1
Ru = (D − L) U u = µu,

ou seja,
U u = µ (D − L) u
(um problema de autovalor generalizado). No caso da matriz de discretização da fórmula de cinco pontos,
isso significa encontrar µ tal que

ui,j+1 + ui+1,j = µ (4ui,j − ui,j−1 − ui−1,j ) . (3.56)

Para os autovalores não-nulos, podemos fazer a substituição


i+j
ui,j = µ 2 vi,j (3.57)

para transformar a equação de autovalor naquela que aparece no método de Jacobi. Temos
i+j+1 i+j+1
³ i+j i+j−1 i+j−1
´
µ 2 vi,j + µ 2 vi+1,j = µ 4µ 2 vi,j − µ 2 vi,j−1 − µ 2 vi−1,j
i+j+2 i+j+1 i+j+1
= 4µ 2 vi,j − µ 2 vi,j−1 − µ 2 vi−1,j ,
Rodney Josué Biezuner 52

i+j+1
de modo que, dividindo por µ 2 , obtemos

vi−1,j + vi+1,j + vi,j−1 + vi,j+1 = µ1/2 4vi,j .

Portanto os autovalores da matriz de iteração de Gauss-Seidel para esta matriz são exatamente os quadrados
dos autovalores da matriz de iteração de Jacobi (e os autovetores são os mesmos):
µ ¶2
1 kπ lπ
µlk = cos + cos .
4 n n
Portanto, o máximo autovalor ocorre quando k = l = 1 e
π
ρ (R) = cos2 .
n
O argumento para a fórmula de três pontos é análogo. ¥
Para o quadrado unitário temos
ρ (R) = cos2 (πh) ,
e usando · ¸
1 ¡ ¢ 2 ¡ ¢
cos2 x = 1 − x2 + O x4 = 1 − x2 + O x4 ,
2
se h é pequeno podemos aproximar
cos2 (πh) ≈ 1 − π 2 h2 .
No método de Gauss-Seidel ainda temos ρ (R) → 1 quadraticamente quando h → 0, mas a sua velocidade
de convergência para a matriz de discretização de cinco pontos do quadrado unitário é duas vezes maior que
a do método de Jacobi. Para ver isso, faça a expansão do logaritmo em torno do ponto x = 1:
¡ ¢
log (1 + x) = x + O h2 .

Segue que

π2 2 ¡ ¢
R∞ (RJacobi ) = h + O h4 , (3.58)
2 ¡ ¢
R∞ (RGauss-Seidel ) = π 2 h2 + O h4 . (3.59)

3.3.3 Convergência do Método SOR


3.20 Teorema. Se o método SOR converge, então

0 < ω < 2.

Prova. A matriz de iteração do método SOR é


µ ¶−1 µ ¶ · ¸ µ ¶
1 1−ω 1 ¡ −1
¢ −1 1 − ω
R= D−L D+U = D I − ωD L D+U
ω ω ω ω
µ ¶
¡ ¢−1 1−ω
= I − ωD−1 L ωD−1 D+U
ω
ou ¡ ¢−1 £ ¤
R = I − ωD−1 L (1 − ω) I + ωD−1 U . (3.60)
Se λ1 , . . . , λn são os autovalores de R, então

det R = λ1 . . . λn .
Rodney Josué Biezuner 53

Mas,
n¡ ¢−1 £ ¤o
det R = det I − ωD−1 L (1 − ω) I + ωD−1 U
¡ ¢−1 £ ¤
= det I − ωD−1 L det (1 − ω) I + ωD−1 U
n
= (1 − ω) ,
já que I − ωD−1 L é uma matriz triangular inferior com apenas 1 na diagonal principal e (1 − ω) I + ωD−1 U
é uma matriz triangular superior com apenas 1 − ω na diagonal principal. Logo
n
λ1 . . . λn = (1 − ω) .
Em particular, pelo menos um dos autovalores λj de R deve satisfazer
|λj | > |1 − ω| .
Mas, se o método SOR converge, devemos ter também |λ| < 1 para todo autovalor λ de R. Logo
|1 − ω| < 1,
donde
0 < ω < 2.
¥
3.21 Corolário. Se R é a matriz de iteração n × n para o método SOR, então
n
det R = (1 − ω) .

Em particular, diferente das matrizes de iteração dos métodos de Jacobi e de Gauss-Seidel (para a matriz de
discretização de cinco pontos), zero não é um autovalor para a matriz de iteração do método SOR se ω 6= 1
(para nenhuma matriz).
P
n
3.22 Teorema. Se A é uma matriz irredutı́vel, diagonalmente dominante tal que |aii | > |aij | para pelo
j=1
j6=i
menos alguma linha i, então o método SOR converge se 0 < ω 6 1.
Prova. A demonstração é análoga à do Teorema 3.18. A matriz de iteração do método SOR é
¡ ¢−1 £ ¤
R = I − ωD−1 L (1 − ω) I + ωD−1 U .
Suponha por absurdo que exista um autovalor λ de R tal que |λ| > 1; temos
¡ ¢ ³ n¡ ¢−1 £ ¤o´
det I − λ−1 R = det I − λ−1 I − ωD−1 L (1 − ω) I + ωD−1 U = 0.

Agora, observando que ¡ ¢


det I − ωD−1 L = 1
porque I − ωD−1 L é uma matriz triangular inferior com apenas 1’s na diagonal principal, escrevemos
³ n¡ ¢−1 £ ¤o´
0 = det I − λ−1 I − ωD−1 L (1 − ω) I + ωD−1 U
¡ ¢ ³ n¡ ¢−1 £ ¤o´
= det I − ωD−1 L det I − λ−1 I − ωD−1 L (1 − ω) I + ωD−1 U
h¡ ¢³ n¡ ¢−1 £ ¤o´i
= det I − ωD−1 L I − λ−1 I − ωD−1 L (1 − ω) I + ωD−1 U
¡ £ ¤¢
= det I − ωD−1 L − λ−1 (1 − ω) I + ωD−1 U
©£ ¤ ª
= det 1 − λ−1 (1 − ω) I − ωD−1 L − λ−1 ωD−1 U .
Rodney Josué Biezuner 54

Por outro lado, como vimos na demonstração do Teorema 3.18, a matriz

D−1 A = I − D−1 L − D−1 U

é irredutı́vel, diagonalmente dominante e estritamente dominante nas linhas onde A é, logo a matriz
£ ¤
S = 1 − λ−1 (1 − ω) I − ωD−1 L − λ−1 ωD−1 U

também satisfaz estas propriedades. De fato, S tem zeros nas mesmas posições que I − D−1 L − D−1 U , logo
a sua irredutibilidade não é afetada. Além disso, pela dominância diagonal de D−1 A, sabemos que se
¡ ¢
bij = D−1 L ij ,
¡ ¢
cij = D−1 U ij .

então
i−1
X n
X
1> |bij | + |cij | .
j=1 j=i+1

Para provar a dominância diagonal de S, observamos que os valores que S possui na diagonal principal são
1−ω λ+ω−1
1 − λ−1 (1 − ω) = 1 − = ,
λ λ
de modo que precisamos provar que
¯ ¯ i−1 n
¯λ + ω − 1¯ X ω X
¯ ¯>ω |b | + |cij |
¯ λ ¯ ij
|λ| j=i+1
j=1

se 0 < ω 6 1 e |λ| > 1. Provaremos que


¯ ¯
¯λ + ω − 1¯
¯ ¯ > ω,
¯ λ ¯
¯ ¯
¯λ + ω − 1¯
¯ ¯> ω .
¯ λ ¯ |λ|

Para isso, observe que como |λ| > 1 basta provar a primeira desigualdade, a qual por sua vez é equivalente a

|λ + ω − 1| > |λ| ω.

É fácil ver que esta desigualdade é válida quando λ ∈ R, pois

|λ + ω − 1| = λ + ω − 1 > λω porque λ − 1 > λω − ω = ω (λ − 1) .

Para o caso geral em que λ ∈ C, fazemos cair no caso real escrevendo


2 2 2 2
|λ + ω − 1| = |λ − (1 − ω)| = |λ| − 2 (Re λ) (1 − ω) + (1 − ω)
2 2 2
> |λ| − 2 |λ| (1 − ω) + (1 − ω) = [|λ| − (1 − ω)]
2 2
= [|λ| + ω − 1] > |λ| ω 2 .

O resultado acima continua valendo com desigualdade estrita nas linhas onde a desigualdade é estrita. A
Proposição 2.36 implica então que S é invertı́vel, contradizendo det S = 0. ¥

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

Prova. Usaremos o Teorema 3.13. Escrevendo A = D − L − U , temos Lt = U porque A é simétrica e as


entradas diagonais de D positivas porque A é positiva definida. Para o método SOR temos
1 1−ω
B= D−L e C= D + U,
ω ω
logo
1 1−ω 2−ω
Bt + C = D − Lt + D+U = D
ω ω ω
é uma matriz simétrica positiva definida se 0 < ω < 2. ¥
Na verdade, se as entradas diagonais de uma matriz simétrica são positivas, a condição de ser definida
positiva é equivalente à convergência do método SOR para 0 < ω < 2, como o próximo resultado mostra.

3.24 Teorema. Seja A uma matriz simétrica com entradas diagonais positivas. Então o método SOR
converge se e somente se A é positiva definida e 0 < ω < 2.

Prova. Assuma que A é positiva definida e que 0 < ω < 2. Seja


¡ ¢−1 £ ¤
R = I − ωD−1 L (1 − ω) I + ωD−1 U

a matriz de iteração do método SOR. Se λ é um autovalor de R e x um autovetor associado, temos Rx = λx,


donde £ ¤ ¡ ¢
(1 − ω) I + ωD−1 U x = λ I − ωD−1 L x.
Fazendo o produto interno canônico (hermitiano) de Cn de ambos os lados com o vetor x, segue que
­ ® ¡ ­ ®¢
(1 − ω) hx, xi + ω x, D−1 U x = λ hx, xi − ω x, D−1 Lx

Isolando λ, ­ ®
(1 − ω) hx, xi + ω x, D−1 U x
λ= . (3.61)
hx, xi − ω hx, D−1 Lxi
Como A é simétrica, o produto de matrizes simétricas D−1 A = I − D−1 U − D−1 L também é; como
D−1 U, D−1 L são respectivamente a parte estritamente triangular superior e estritamente triangular infe-
rior de uma matriz simétrica, temos
¡ −1 ¢t
D U = D−1 L.
Logo
­ ® D¡ ¢t E ­¡ ¢ ®
x, D−1 U x = D−1 U x, x = D−1 L x, x = hx, (D−1 L) xi,

e definindo ­ ¡ −1 ¢ ®
x, D L x
z= ,
hx, xi
podemos escrever
(1 − ω) + ωz
λ= . (3.62)
1 − ωz
Os argumentos acima assumem que o denominador é não-nulo. E, de fato, temos
í ¡ ¢ ® ­ ¡ −1 ¢ ® ! ­ ¡ ¢ ®
1 1 x, D−1 L x x, D U x 1 x, D−1 L + D−1 U x
Re z = (z + z) = + =
2 2 hx, xi hx, xi 2 hx, xi
­ ¡ ¢ ® Ã ­ ¡ ¢ ® !
1 x, I − D−1 A x 1 x, D−1 A x
= = 1− .
2 hx, xi 2 hx, xi
Rodney Josué Biezuner 56

e como A é positiva definida, D−1 A também é, o que implica


­ ¡ −1 ¢ ®
x, D A x
>0
hx, xi
donde
1
Re z <
.
2
de modo que a parte real do denominador 1 − ωz de λ é não-nula para 0 < ω < 2. Segue que
2 2
2 [(1 − ω) + ωz] [(1 − ω) + ωz] (1 − ω) + 2ω (1 − ω) Re z + ω 2 |z|
|λ| = λλ = = 2
(1 − ωz) (1 − ωz) 1 − 2ω Re z + ω 2 |z|
2
ω 2 − 2ω 2 Re z − 2ω + 4ω Re z + 1 − 2ω Re z + ω 2 |z|
= 2
1 − 2ω Re z + ω 2 |z|
ω (2 − ω) (1 − 2 Re z)
=1− 2 .
1 − 2ω Re z + ω 2 |z|
1
Como 0 < ω < 2 e Re z < , temos
2
ω (2 − ω) (1 − 2 Re z) > 0,
e concluı́mos que
|λ| < 1
para todo autovalor λ de R, logo o método SOR converge. A demonstração da recı́proca (assim como uma
demonstração alternativa, variacional, deste teorema) pode ser vista em [Young]. ¥
Usando o Teorema 3.22, concluı́mos que o método SOR converge para as matrizes de discretização obtidas
através dos esquemas de diferenças finitas do Capı́tulo 1 se 0 < ω 6 1. Isso permite apenas subrelaxamento
do método de Gauss-Seidel, o que em geral reduz a velocidade de convergência. Por outro lado, usando o
Teorema 3.23 ou o Teorema 3.24, concluı́mos que o método SOR converge para as matrizes de discretização
obtidas a partir da fórmula de três pontos unidimensional e a partir da fórmula de cinco pontos bidimensional
se 0 < ω < 2, já que estas são matrizes simétricas, positivas definidas (já as matrizes de discretização obtidas
através de coordenadas polares ou pelo esquema de Shortley-Weller não são simétricas, em geral, como
vimos).
Em seguida fazemos uma análise da velocidade de convergência do método SOR para a matriz de dis-
cretização da fórmula de cinco pontos, bem como obtemos o melhor valor do fator de relaxamento ω para
este caso.

3.25 Lema. Seja A a matriz de discretização obtida a partir da fórmula de três pontos unidimensional ou
a partir da fórmula de cinco pontos bidimensional. Se λ 6= 0 é um autovalor de RSOR , então existe
um autovalor λJ de RJ tal que
1−ω−λ
λJ = . (3.63)
λ1/2 ω 2
Reciprocamente, se λJ é um autovalor de RJ e λ ∈ C satisfaz a equação acima, então λ é um autovalor
de RSOR .

Prova. Argumentamos como na demonstração do Teorema 3.13. Para obter o raio espectral da matriz de
iteração RSOR , queremos encontrar os autovalores λ de RSOR :
¡ ¢−1 £ ¤
RSOR u = I − ωD−1 L (1 − ω) I + ωD−1 U u = λu,

ou seja, £ ¤ ¡ ¢
(1 − ω) I + ωD−1 U u = λ I − ωD−1 L u
Rodney Josué Biezuner 57

No caso da matriz de discretização da fórmula de cinco pontos, isso significa encontrar λ tal que
ω ω ³ ω ω ´
(1 − ω) ui,j + ui,j+1 + ui+1,j = λ ui,j − ui,j−1 − ui−1,j
4 4 4 4
ou
1−ω−λ 1
ui,j = (ui,j+1 + ui+1,j + λui,j−1 + λui−1,j ) . (3.64)
ω 4
Fazendo a substituição
i+j
ui,j = λ 2 vi,j
i+j+1
e dividindo por µ 2 , segue que
1−ω−λ
vi−1,j + vi+1,j + vi,j−1 + vi,j+1 = 4vi,j
λ1/2 ω
e daı́ o resultado. ¥ √ ¡p ¢2
Resolvendo a equação (3.63) como uma equação quadrática em λ, vemos que as duas raı́zes λ± = λ±
podem ser escritas na forma
· q ¸2
1 2 2
λ± = −ωλJ ± ω λJ − 4 (ω − 1) . (3.65)
4
Denotaremos
Λω,λJ = max (|λ+ | , |λ− |) (3.66)
e por λJ = ρ (RJ ) o maior autovalor do método de Jacobi.

3.26 Proposição. Seja A a matriz de discretização obtida a partir da fórmula de três pontos unidimensional
ou a partir da fórmula de cinco pontos bidimensional. Então

ρ (RSOR,ω ) = Λω,λJ (3.67)

Prova. Por definição,


ρ (RSOR,ω ) = max Λω,λJ .
λJ

De (3.65) segue que


¯ q ¯2
1 ¯¯ 2 ¯
Λω,λJ = ¯ωλJ + ω λJ − 4 (ω − 1)¯¯ .
2
4
2
Se 0 < ω 6 1, ω 2 λJ − 4 (ω − 1) > 0 e Λω,λJ é uma função crescente de λJ , logo o máximo é atingido em λJ .
Se ω > 1, defina r
4 (ω − 1)
λc = .
ω2
2 2
Se λJ > λc , ω 2 λJ − 4 (ω − 1) > 0 e segue a conclusão como no caso anterior. Se λJ 6 λc , então ω 2 λJ −
4 (ω − 1) 6 0 e q q
2 2
ω λJ − 4 (ω − 1) = 4 (ω − 1) − ω 2 λJ i,
2


onde i = −1, logo
¯ q ¯2 ¯¯r h
¯
i ¯2
¯ 2 ¯ ¯ 2 ¯
Λω,λJ = ¯¯ωλJ + ω 2 λJ − 4 (ω − 1)¯¯ = ¯ ω 2 λ2J + 4 (ω − 1) − ω 2 λJ ¯
¯ ¯
= ω − 1,

e novamente Λω,λJ é uma função crescente de λJ . ¥


Rodney Josué Biezuner 58

Defina
2
ωótimo = q . (3.68)
2
1 + 1 − λJ
Note que 1 < ωótimo < 2. Mostraremos que ωótimo é de fato o melhor valor para o fator de relaxamento no
método SOR. Antes precisamos do seguinte resultado:

3.27 Proposição. Seja A a matriz de discretização obtida a partir da fórmula de três pontos unidimensional
ou a partir da fórmula de cinco pontos bidimensional. Então
 µ q ¶2
 1 2
2 λ − 4 (ω − 1)
ρ (RSOR,ω ) = ωλ J + ω J se 0 < ω 6 ωótimo , (3.69)
 4
ω−1 se ωótimo 6 ω < 2.

2
Prova. Temos ω 2 λJ − 4 (ω − 1) > 0 para 0 < ω < 2 se e somente se ω 6 ωótimo . De fato, as raı́zes de
2
f (ω) = ω 2 λJ − 4ω + 4 são q
2 µ q ¶
4 ± 4 1 − λJ 2 2
ω± = 2 = 2 1 ± 1 − λJ
2λJ λJ
de modo que a raiz positiva de f é maior que 2, logo para que f (ω) > 0 se 0 < ω < 2, devemos ter
³ 2
´
µ q ¶ 1 − 1 − λ
2 2 2 J 2
ω 6 2 1 − 1 − λJ = 2 q = q .
λJ λJ 1 + 1 − λ2 1 + 1 − λ
2
J J

O resultado segue então como na demonstração da proposição anterior. ¥

3.28 Teorema. Seja A a matriz de discretização obtida a partir da fórmula de três pontos unidimensional
ou a partir da fórmula de cinco pontos bidimensional. Então o fator de relaxamento ótimo para o
método SOR é dado por
2
ωótimo = π (3.70)
1 + sen
n
é o fator de relaxamento ótimo para o método SOR.
2
Prova. Se 0 < ω 6 ωótimo , então ω 2 λJ − 4 (ω − 1) > 0 e
q
µ q ¶ 2 2
d 2 λJ ω 2 λJ − 4 (ω − 1) + ωλJ − 2
ωλJ + ω 2 λJ − 4 (ω − 1) = q .
dω 2
ω 2 λJ − 4 (ω − 1)
2
Temos ωλJ − 2 < 0, porque 0 < ω < 2 e λJ < 1, e
¯ ¯ q
¯ 2 ¯ 2
¯ωλJ − 2¯ > λJ ω 2 λJ − 4 (ω − 1),

pois
¯ ¯2
¯ 2 ¯ 4 2 4 2 2 4 2
¯ωλJ − 2¯ = ω 2 λJ − 4λJ ω + 4 > ω 2 λJ − 4λJ ω + 4λJ > ω 2 λJ − 4λJ (ω − 1)
· q ¸2
2
2
= λJ ω λJ − 4 (ω − 1) .
Rodney Josué Biezuner 59

Isso implica µ q ¶
d 2
2
ωλJ + ω λJ − 4 (ω − 1) < 0,

logo ρ (RSOR,ω ) é decrescente de 0 até ωótimo . Para ωótimo 6 ω < 2, ρ (RSOR,ω ) = ω − 1 é claramente
crescente. Portanto, ρ (RSOR,ω ) atinge o seu mı́nimo em ωótimo .
Pelo Teorema 3.15, temos
π
λJ = cos ,
n
logo
2 2 2
ωótimo = q = r = π.
2 π 1 + sen
1 + 1 − λJ 1 + 1 − cos2 n
n
¥
Para o quadrado unitário temos
2
ωótimo =
1 + sen (πh)
e conseqüentemente
2 1 − sen (πh)
ρ (RSOR,ω ) = −1= .
1 + sen (πh) 1 + sen (πh)
e usando
1−x ¡ ¢
= 1 − 2x + O x2 ,
1+x
¡ ¢
sen x = x + O x3 ,

se h é pequeno podemos aproximar

1 − sen (πh) ¡ ¢
≈ 1 − 2πh + O h2 .
1 + sen (πh)

Portanto, usando o valor ótimo de ω no método SOR, temos ρ (R) → 1 linearmente quando h → 0, um
resultado muito melhor que o obtido nos métodos de Jacobi e de Gauss-Seidel. Para uma comparação mais
precisa, usando ¡ ¢
log (1 + x) = x + O h2
temos que ¡ ¢
R∞ (RSOR ) = 2πh + O h2 . (3.71)
Segue que
R∞ (RSOR ) 2πh 2
≈ 2 2 = .
R∞ (RGauss-Seidel ) π h πh
Em particular, se h = 0.025, temos ωótimo = 1. 8545 e R∞ (RSOR ) /R∞ (RGauss-Seidel ) = 25.5, isto é, o
método SOR é 25 vezes mais rápido que o método de Gauss-Seidel. Quanto mais refinada a malha, maior é
a diferença na velocidade de convergência entre os dois métodos.

3.3.4 Convergência do Método de Jacobi Amortecido


3.29 Teorema. Se o método de Jacobi converge, então o método de Jacobi amortecido converge para

0 < ω 6 1.
Rodney Josué Biezuner 60

Prova. Vamos escrever a matriz de iteração RJ,ω do método de Jacobi amortecido em função da matriz de
iteração do método de Jacobi RJ . Temos

RJ = D−1 (D − A)

de modo que
µ ¶−1 µ ¶ µ ¶ µ ¶
1 1 1 1
RJ,ω = D D − A = ωD−1 D − D + D − A = ωD−1 D − D + ωD−1 (D − A)
ω ω ω ω
donde
RJ,ω = (1 − ω) I + ωRJ . (3.72)
Em particular,
RJ v = λv
se e somente se
[RJ,ω − (1 − ω) I] v = ωλv.
Portanto, λJ é um autovalor de RJ se e somente se

λJ,ω = ωλJ + 1 − ω (3.73)

é um autovalor de RJ,ω . Logo, se todo autovalor de RJ satisfaz |λJ | < 1 (isto é, ρ (RJ ) < 1 equivalente ao
método de Jacobi convergir) e ω < 1, então
2 ¡ ¢
|λJ,ω | = (ωλJ + 1 − ω) ωλJ + 1 − ω
2 2
= ω 2 |λJ | + 2 Re λJ ω (1 − ω) + (1 − ω)
2 2
6 ω 2 |λJ | + 2 |λJ | ω (1 − ω) + (1 − ω)
2
= (ω |λJ | + 1 − ω)
< 1.

¥
Segue do Teorema 3.13 que o método de Jacobi amortecido converge para as matrizes de discretização do
Capı́tulo 1 se 0 < ω 6 1.

3.30 Corolário.
ρ (RJ,ω ) = ω [ρ (RJ ) − 1] + 1. (3.74)

Para o quadrado unitário temos


ρ (RJ,ω ) = ω [cos (πh) − 1] + 1. (3.75)
Usando
1 ¡ ¢
cos x = 1 − x2 + O x4 ,
2 ¡ ¢
log (1 + x) = x + O h2 ,

se h é pequeno podemos aproximar


π2 2 ¡ ¢
ρ (RJ,ω ) ≈ 1 − ω h + O h4 ,
2
π2 2
R∞ (RJ,ω ) ≈ ω h .
2
Vemos que a velocidade de convergência do método de Jacobi amortecido é da mesma ordem que a do método
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

3.3.5 Resumo

Método ρ (R) R∞ (R)


π2 2 ¡ ¢
Jacobi cos (πh) h + O h4
2
¡ ¢
Gauss-Seidel cos2 (πh) π 2 h2 + O h4
¡ ¢ ¡ ¢
SOR ótimo 1 − 2πh + O h2 2πh + O h2

π2 2 ¡ ¢ π2 2 ¡ ¢
Jacobi amortecido 1−ω h + O h4 ω h + O h4
2 2

3.4 Exercı́cios
3.1 Os métodos de Jacobi e Gauss-Seidel não são sempre comparáveis: existem sistemas lineares para as
quais o método de Jacobi converge, enquanto que o método de Gauss-Seidel não converge ou até mesmo
diverge, e vice-versa.
a) Verifique no computador que o método de Jacobi converge para o sistema linear

 x+z =2
−x + y = 0

x + 2y − 3z = 0

enquanto que o método de Gauss-Seidel não converge (observe que a solução exata deste sistema é
(1, 1, 1)).
b) Verifique no computador que o método de Gauss-Seidel converge se

 2x + y + z = 4
x + 2y + z = 4

x + y + 2z = 4

enquanto que o método de Jacobi não converge, usando o vetor (0, 0, 0) como chute inicial (observe
que a solução exata deste sistema é (1, 1, 1)).
c) Justifique matematicamente o resultado de cada um dos ı́tens anteriores.
Capı́tulo 4

Métodos de Projeção

A maioria dos métodos iterativos práticos para a resolução de sistemas lineares grandes usa um processo
de projeção de uma forma ou outra. Um processo de projeção é uma maneira canônica de obter uma
aproximação para a solução do sistema linear dentro de um subespaço especificado. Neste capı́tulo veremos
a técnica descrita de maneira geral e uma aplicação detalhada para o caso unidimensional.

4.1 Teoria Geral


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
de um subespaço especificado K ⊂ Rn , chamado o subespaço de busca. Se m = dim K, então em geral
são necessárias m restrições para obter esta aproximação. Uma maneira tı́pica de descrever estas restrições
é impor m condições de ortogonalidade; um exemplo é exigir que o vetor residual r = b − Ax seja ortogonal
a m vetores linearmente independentes que geram um subespaço L, chamado o subespaço de restrições.
Muitos métodos matemáticos são baseados neste tipo de descrição, conhecida como as condições de Petrov-
Galerkin. Existem duas classes gerais de métodos de projeção: os métodos de projeção ortogonal, quando
L = K (e neste caso as condições de Petrov-Galerkin são chamadas simplesmente condições de Galerkin), e
os métodos de projeção oblı́qua, quando L 6= K.
4.1 Definição. Seja A ∈ Mn (C) uma matriz invertı́vel e K, L ⊂ Rn dois subespaços vetoriais m-dimensionais.
Um método de projeção sobre o subespaço K ortogonal ao subespaço L é um processo que encontra
uma solução aproximada x
e em K para o sistema Ax = b tal que o vetor residual re = b − Ae x é ortogonal
a L, ou seja,
encontrar x
e ∈ K tal que re = b − Ae x ⊥ L. (4.1)
Se queremos explorar o conhecimento de um bom chute inicial x0 para a solução, então a aproximação é
buscada no espaço afim x0 + K. Neste caso, a técnica é redefinida como
e ∈ x0 + K
encontrar x tal que re = b − Ae
x ⊥ L. (4.2)
Denotando
e = x0 + p
x
e o vetor resı́duo inicial
r0 = b − Ax0 ,
¡ ¢
x = b − A x0 + p = r0 − Ap, a solução aproximada pode ser descrita como
de modo que re = b − Ae
x
­e = x0 + p, ® p ∈ K,
0 (4.3)
r − Ap, w = 0 para todo w ∈ L.
O vetor p que está no subespaço de busca é chamado o vetor de busca.

62
Rodney Josué Biezuner 63

4.1.1 Representação Matricial


Sejam BK = {v1 , . . . , vm } e BL = {w1 , . . . , wm } bases para K e L, respectivamente. Construı́mos as matrizes
n×m

V = [v1 · · · vm ] , (4.4)
W = [w1 · · · wm ] ,

que tem estes vetores como colunas. Então a solução aproximada pode ser escrita na forma

e = x0 + V y
x (4.5)
­ ®
para algum vetor y ∈ Rm , ou seja, p = V y. A condição de ortogonalidade r0 − AV y, w = 0 para todo
w ∈ L também pode ser representada matricialmente na forma
T ¡ ¢ ¡ ¢
(W z) r0 − AV y = z T W T r0 − AV y = 0

para todo z ∈ Rm , ou seja, ¡ ¢


W T r0 − AV y = 0
ou
W T AV y = W T r0 . (4.6)
A partir daı́, se assumirmos que a matriz m × m W T AV é invertı́vel (o que não é garantido mesmo quando
A é invertı́vel; veja Exercı́cio 4.1), obtemos a seguinte expressão matricial para a solução aproximada:
¡ ¢−1 T 0
e = x0 + V W T AV
x W r . (4.7)

Desta forma, um algoritmo tı́pico para um método de projeção tem a forma

Algoritmo para um Método de Projeção


do until stop criterion

Selecione um par de subespaços K e L
 Escolha bases BK = {v1 , . . . , vn } e BL = {w1 , . . . , wn } para K e L

 r ← b − Ax;
 ¡ ¢
 y ← W T AV −1 W T r;
x ← x + V y;
end do

Em muitos algoritmos, a matriz W T AV não precisa ser formada, e muito menos sua inversa calculada, da
mesma forma que a matriz de iteração não precisava ser explicitamente calculada nos métodos iterativos
lineares.
A matriz W T AV é invertı́vel se e somente se nenhum vetor do subespaço AK é ortogonal ao subespaço
L (Exercı́cio 4.2). Duas condições independentes que garantem a invertibilidade de W T AV são dadas pela
proposição seguinte:

4.2 Proposição. Se A ∈ Mn (C) e os subespaços K, L ⊂ Rn satisfazem qualquer uma das duas condições a
seguir
(i) A é positiva definida e L = K, ou
(ii) A é invertı́vel e L = AK.
Ax = b
então a matriz W T AV é invertı́vel quaisquer que sejam as bases V, W de K, L, respectivamente.
Rodney Josué Biezuner 64

Prova: (i) Como L = K, podemos escrever W = V P para alguma matriz m × m invertı́vel P (Exercı́cio
4.3). Então
W T AV = P T V T AV
Como A é positiva definida, segue que V T AV também é (Exercı́cio 4.4); em particular, a matriz m × m
V T AV é invertı́vel. Logo, sendo o produto de duas matrizes invertı́veis, W T AV é invertı́vel.
(ii) Neste caso, como L = AK, podemos escrever W = AV P para alguma matriz m × m invertı́vel P .
Daı́,
T
W T AV = P T (AV ) AV.
T
Como A é invertı́vel, a matriz n × m AV possui posto máximo, logo a matriz m × m (AV ) AV é invertı́vel
(Exercı́cio 4.5). Novamente, sendo o produto de duas matrizes invertı́veis, W T AV é invertı́vel. ¥
Em particular, se A é uma matriz simétrica e um método de projeção ortogonal é utilizado, podemos tomar
V = W e a matriz projetada V T AV também é simétrica; da mesma forma, se além disso A for positiva
definida, V T AV também será.

4.1.2 Minimização de Funcionais


A solução aproximada xe do sistema Ax = b através de um método de projeção pode ser obtida como o ponto
de mı́nimo de um funcional quadrático associado à matriz A. Consideremos primeiro o caso em que A é uma
matriz simétrica positiva definida. Neste caso, a própria solução do sistema Ax = b é o minimizante de um
funcional quadrático associado à matriz A:

4.3 Teorema. (Método Variacional para a Resolução de Sistemas Lineares) Seja A ∈ Mn (R) uma matriz
simétrica positiva definida e b ∈ Rn . Então a solução do sistema Ax = b é o único ponto x que
minimiza o funcional quadrático
1
f (y) = hAy, yi − hb, yi . (4.8)
2
Prova: Uma matriz simétrica positiva definida é em particular invertı́vel, logo existe uma única solução x
para o sistema Ax = b. Temos
1 1
f (y) − f (x) = hAy, yi − hb, yi − hAx, xi + hb, xi
2 2
1 1
= hAy, yi − hAx, yi − hAx, xi + hAx, xi
2 2
1 1
= hAy, yi − hAx, yi + hAx, xi
2 2
1 1 1 1
= hAy, yi − hAx, yi − hAx, yi + hAx, xi
2 2 2 2
1 1
= hA (y − x) , yi − hA (y − x) , xi
2 2
1
= hA (y − x) , y − xi .
2
Como A é positiva definida, segue que

hA (y − x) , y − xi > 0

e
hA (y − x) , y − xi = 0
se e somente se y = x. Portanto,
f (y) > f (x)
Rodney Josué Biezuner 65

para todo y 6= x e o mı́nimo de f ocorre em x. ¥


Em muitos problemas, o funcional f tem um significado fı́sico, correspondendo a um funcional de energia; o
minimizante deste funcional de energia corresponde a um estado de equilı́brio do sistema.
Observe que, definindo um produto interno a partir da matriz simétrica positiva definida A da maneira
1/2
usual por hv, wiA = hAv, wi e considerando a norma vetorial induzida kvkA = hv, viA , chamada A-norma,
o funcional f pode ser escrito na forma (substituindo b = Ax)
1 2
f (y) = kykA − hx, yiA . (4.9)
2
e de um método de projeção ortogonal sobre K a partir de um vetor inicial x0 é
O vetor de aproximação x
exatamente o minimizante da primeira parte deste funcional sobre o subespaço afim x0 + K:

4.4 Proposição. Sejam A ∈ Mn (R) uma matriz simétrica positiva definida e L = K. Então x e é o vetor de
aproximação de um método de projeção ortogonal sobre K a partir de um vetor inicial x0 se e somente
se ele minimiza a A-norma do erro sobre x0 + K, isto é, se e somente se

E (e
x) = min
0
E (y) .
y∈x +K

Prova: Seja x a solução exata do sistema Ax = b. Então a A-norma do erro é dada por

E (y) = kx − ykA .

Segue do lema da projeção ortogonal (ou lema da melhor aproximação) que x e é um minimizante de E (y)
sobre o subespaço afim x0 + K se e somente se x − x
e é A-ortogonal a K, ou seja, se e somente se

hA (x − x
e) , vi = 0 para todo v ∈ K,

ou, equivalentemente,
hb − Ae
x, vi = 0 para todo v ∈ K.
Esta é a condição de Galerkin que define o vetor de aproximação de um método de projeção ortogonal (veja
(4.2)). ¥
Vamos considerar agora o caso de um método de projeção oblı́qua em que L = AK.

4.5 Proposição. Sejam A ∈ Mn (C) uma matriz qualquer e L = AK. Então x e é o vetor de aproximação
de um método de projeção oblı́qua sobre K ortogonal a L a partir de um vetor inicial x0 se e somente
se ele minimiza a 2-norma do resı́duo sobre x0 + K, isto é, se e somente se

R (e
x) = min
0
R (y) .
y∈x +K

Prova: Considere o sistema Ax = b. Então a 2-norma do resı́duo é dada por

R (y) = kb − Ayk2 .

Segue do lema da projeção ortogonal (ou lema da melhor aproximação) que xe é um minimizante de R (y)
sobre o subespaço afim x0 + K se e somente se b − Ae
x é ortogonal a AK = L, ou seja, se e somente se

hb − Ae
x, wi = 0 para todo w ∈ L.

Esta é a condição de Petrov-Galerkin que define o vetor de aproximação de um método de projeção oblı́qua
(veja (4.2)). ¥
Rodney Josué Biezuner 66

4.1.3 Estimativa do Erro em Métodos de Projeção


Se nenhum vetor do subespaço K está próximo da solução exata x, então é impossı́vel encontrar uma boa
aproximação xe para x em K. Por outro lado, se existir algum vetor em K que está a uma pequena distância
ε de x, então podemos perguntar qual a melhor aproximação a x podemos encontrar em K. No que se segue
assumiremos x0 = 0; em particular, o subespaço afim x0 + K é o subespaço vetorial K.
Seja PK a projeção ortogonal sobre K, definida por
PK x ∈ K, x − PK x ⊥ K, (4.10)
e QL
K a projeção oblı́qua sobre K e ortogonalmente a L, definida por

QL
K x ∈ K, x − QL
K x ⊥ L. (4.11)
(Observe que se K = L (isto é, projeção ortogonal), temos QK
K = PK .) Então o problema de aproximação da
Definição 4.1 pode ser expresso na linguagem destes operadores como
encontrar x
e∈K tal que QL
K (b − Ae
x) = 0. (4.12)
Equivalentemente, definindo o operator Am : K −→ K por
Am = QL
K APK ,

ele pode ser expresso na forma


encontrar x
e∈K tal que e = QL
Am x K b, (4.13)
de modo que um problema n-dimensional é aproximado por um problema m-dimensional.
4.6 Proposição. Assuma x0 = 0. Suponha que K é invariante por A e que b ∈ K. Então o vetor de
aproximação x e de um método de projeção (ortogonal ou oblı́qua) sobre K a partir do vetor inicial x0
é a solução exata x.
Prova: Temos QL K (b − Ae x) = 0. Como por hipótese Ae x, b ∈ K, segue que QL K Ae
x = Ae x e QLK b = b, logo
b − Ae
x = 0 e portanto x e = x. ¥
O mesmo resultado vale se x0 6= 0 sob a hipótese adicional que o resı́duo inicial r0 = b − Ax0 ∈ K.
A distância da solução exata x ao subespaço K, que pode ser escrita como k(I − PK ) xk, desempenha um
papel fundamental na estimativa do erro da solução aproximada x e ∈ K, já que a distância desta à solução
exata obviamente não pode ser menor que a distância de x a K. O próximo resultado fornece uma estimativa
superior para a norma do resı́duo da solução exata com respeito ao operador aproximado Am .
4.7 Teorema. Assuma x0 = 0 e b ∈ K. Denote
° °
γ = °QL °
K A (I − PK ) .

Então a solução exata x satisfaz a estimativa


kb − Am xk 6 γ k(I − PK ) xk ,
isto é,
dist (Am x, b) 6 γ dist (x, K) .
Prova: Como b ∈ K, segue que
b − Am x = QL L L
K (b − APK x) = QK A (x − PK x) = QK A (I − PK ) x.
2
Daı́, já que I − PK é uma projeção e portanto satisfaz (I − PK ) = (I − PK ), podemos escrever
° °
kb − Am xk = °QL °
K A (I − PK ) (I − PK ) x 6 γ k(I − PK ) xk .

¥
Rodney Josué Biezuner 67

4.2 Caso Unidimensional: Métodos de Descida


Nesta seção, A será sempre uma matriz real simétrica positiva definida.
Outra maneira de enxergar o resultado do Teorema 4.3 é observar que o gradiente do funcional f é

∇f (y) = Ay − b. (4.14)

Se x é um ponto de mı́nimo temos ∇f (x) = 0, ou seja,

Ax = b.

O método variacional sugerido pelo Teorema 4.3 é a base dos métodos iterativos de descida em geral, e do
método do gradiente conjugado em particular. A idéia é usar as idéias do cálculo diferencial para encontrar
o mı́nimo do funcional quadrático f .

4.2.1 Métodos de Descida


A filosofia dos métodos de descida é começar com um chute inicial x0 e gerar uma seqüência de iterados
x1 , x2 , . . . , xk , . . . que satisfazem ¡ ¢ ¡ ¢
f xk+1 6 f xk
ou, melhor ainda, ¡ ¢ ¡ ¢
f xk+1 < f xk
de tal modo que xk convirja para o minimizador ¡ de
¢ f . Em outras palavras, em um método de descida
buscamos encontrar uma seqüência minimizante xk que convirja para a solução do sistema.
O passo de xk para xk+1 envolve dois ingredientes: (1) uma direção de busca e (2) um avanço de
comprimento especificado na direção de busca. Uma direção de busca significa a escolha de um vetor pk que
indicará a direção que avançaremos de xk para xk+1 . O comprimento do avanço é equivalente à escolha de
um escalar αk multiplicando o vetor pk . Assim,

xk+1 = xk + αk pk .

A escolha de αk é também chamada uma busca na reta, já que queremos escolher um ponto na reta
© k ª
x + αpk : α ∈ R

tal que ¡ ¢ ¡ ¢
f xk + αpk 6 f xk .
Idealmente, gostarı́amos de escolher αk de tal modo que
¡ ¢ ¡ ¢ ¡ ¢
f xk+1 = f xk + αk pk = min f xk + αpk
α∈R

Esta é chamada uma busca exata na reta. Para funcionais quadráticos, a busca exata na reta é trivial e
obtemos uma fórmula para o valor de αk , como veremos a seguir. Denotaremos o resı́duo em cada iteração
por
rk = b − Axk . (4.15)

4.7 Proposição. Seja αk ∈ R tal que


¡ ¢ ¡ ¢
f xk + αk pk = min f xk + αpk .
α∈R

Então ­ k k®
p ,r
αk = k . (4.16)
hp , Apk i
Rodney Josué Biezuner 68

Prova: Considere o funcional ¡ ¢


g (α) = f xk + αpk .
g é um polinômio quadrático em α, pois
1­ ¡ k ¢ ® ­ ®
g (α) = A x + αpk , xk + αpk − b, xk + αpk
2
1 ­ k k ® ­ k ® α ­ k k ® α ­ k k ® α2 ­ k k ® ­ ®
= Ax , x − b, x + Ap , x + Ax , p + Ap , p − α b, pk
2 2 2 2
¡ k¢ £­ k k ® ­ k ®¤ α2 ­ k k ®
= f x + α Ax , p − b, p + Ap , p
2
¡ ¢ ­ ® α2 ­ k k ®
= f xk − α rk , pk + Ap , p ,
2
2
portanto o mı́nimo de g é atingido no­vértice ® −B/2A da parábola Y = AX + BX + C. ¥
k k
Observe que αk = 0 se e somente se p , r = 0, isto é, a direção de busca é ortogonal ao resı́duo. Como
gostarı́amos sempre que possı́vel de ter xk+1 6= xk , devemos sempre escolher
¡ ¢a direção
¡ ¢de busca de forma a
não ser ortogonal a rk . Se esta escolha é feita, então teremos sempre f xk+1 < f xk .

4.8 Exemplo. (Método de Gauss-Seidel) Considere o método de descida em que as primeiras n direções de
busca p1 , . . . , pn são os vetores e1 , . . . , en da base canônica de Rn , e isso é repetido a cada n iterações,
de modo que pk+n = ek para todo k = 1, . . . , n, com uma busca na reta exata executada em cada
iteração. Então cada grupo de n iterações corresponde a uma iteração do método de Gauss-Seidel. ¤
4.9 Exemplo. (Método SOR) Usando as mesmas direções de busca do exemplo anterior, mas com xk+1 =
xk + ωαk pk , ω 6= 1, obtemos um método de descida em que as buscas nas retas são inexatas. Cada
grupo de n iterações corresponde a uma iteração do método SOR. ¤

Observe
­ que
® o método de descida é um método de projeção em que L e K são subespaços unidimensionais,
com K = pk e L um subespaço não ortogonal a K, em cada iteração k. Se o método de descida será um
método de projeção ortogonal ou oblı́quo dependerá da escolha do vetor de direção de busca pk .

4.2.2 Método da Descida Mais Acentuada


Do Cálculo Diferencial, sabemos que a direção em que a função cresce a uma taxa mais rápida a partir de
um ponto é a direção do gradiente neste ponto. Esta observação é a base da escolha da direção de busca no
método da descida mais acentuada (também chamado método do gradiente). Em outras palavras, escolhemos
¡ ¢
pk = −∇f xk = b − Axk

ou
pk = rk . (4.17)
­ k®
Como neste caso K = L = p , o método da descida mais acentuada será um método de projeção ortogonal.
Buscar na direção da descida mais acentuada é uma idéia natural, mas que na prática não funciona sem
modificações. De fato, em alguns casos o método é de velocidade comparável à do método de Jacobi, como
na matriz de discretização da fórmula de cinco pontos aplicada ao problema descrito na primeira seção deste
capı́tulo [Watkins]:

∆x = 0.1 ∆x = 0.05 ∆x = 0.025


Jacobi 299 1090 3908
Descida Mais Acentuada 304 1114 4010

De fato, como as iterações do método de descida mais acentuada são bem mais custosas que as do método
de Jacobi, o primeiro é muito pior que este último.
Rodney Josué Biezuner 69

Para entender melhor o método da descida mais acentuada, porque ele pode ser lento e as modificações
que vamos fazer para torná-lo mais rápido levando ao método do gradiente conjugado a ser visto no próximo
capı́tulo, vamos entender o processo do ponto de vista geométrico. Como vimos na demonstração do Teorema
4.3, o funcional quadrático f é da forma
1
f (y) = hA (y − x) , (y − x)i + c (4.18)
2
onde c = f (x) é uma constante. Já que A é uma matriz simétrica, existe uma matriz ortogonal P tal que
P t AP é uma matriz diagonal D , cujos valores na diagonal principal são exatamente os autovalores positivos
de A. Nas coordenadas
z = P t (y − x) ,
o funcional f tem a forma
n
1 1X
f (z) = hDz, zi + c = λi zi2 + c. (4.19)
2 2 i=1

As curvas de nı́vel do funcional f neste sistema de coordenadas são elipses (em R2 , elipsóides em R3 e
hiperelipsóides em Rn ) centradas na origem com eixos paralelos aos eixos coordenados e f (0) = c é nı́vel
mı́nimo de f ; elipses correspondentes a menores valores de f estão dentro de elipses correspondentes a maiores
valores de f . Como P é uma aplicação ortogonal, as curvas de nı́vel de f no sistema de coordenadas original
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
menores até chegar ao mı́nimo da função f em x, centro de todas as elipses. O vetor gradiente é perpendicular
às curvas de nı́vel, logo é perpendicular às elipses. Seguir a direção de descida mais acentuada equivale a
cortar a elipse que contém xk ortogonalmente na direção do interior da elipse até encontrar um ponto xk+1
situado em uma elipse que a reta tangencie, pois a partir daı́ a reta irá na direção de elipses com nı́veis
maiores, portanto este é o ponto da reta onde f atinge o seu mı́nimo. Em particular, vemos que a próxima
direção pk+1 é ortogonal à direção anterior pk , tangente a esta elipse (veja também o Corolário 4.12). Em
geral, a direção de descida mais acentuada não é a direção de x (quando bastaria uma iteração para atingir
a solução exata) a não ser que A seja um múltiplo escalar da identidade, de modo que todos os autovalores
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
uns dos outros, com alguns muito pequenos e alguns muito grandes, as elipses serão bastante excêntricas
e, dependendo do chute inicial, a convergência pode ser muito lenta. Matrizes com estas propriedades são
chamadas mal-condicionadas; para que o método de descida acentuada seja lento, a matriz A não precisa
ser muito mal-condicionada (veja a Definição 4.14 e a discussão que se segue).
Como vimos na seção anterior, os algoritmos de Gauss-Seidel e SOR podem ser encarados como algoritmos
de descida. A discussão no parágrafo anterior também pode ser usada para entender a relativa lentidão destes
algoritmos.
A seguir, provaremos a convergência do método da descida mais acentuada.

4.10 Lema. (Desigualdade de Kantorovich) Sejam A ∈ Mn (R) uma matriz simétrica positiva definida e
denote por λmax e λmin seu menor autovalor e seu maior autovalor, respectivamente. Então
­ ® 2
hAx, xi A−1 x, x (λmin + λmax )
2 6
hx, xi 4λmin λmax

para todo x 6= 0.

Prova: Denote os autovalores de A por λ1 6 . . . 6 λn , de modo que λmin = λ1 e λmax = λn . Como o


quociente à esquerda da desigualdade é homogêneo, basta provar a desigualdade para vetores x unitários.
Como A é simétrica, existem uma matriz diagonal D e uma matriz ortogonal P tais que A = P T DP . Segue
que ­ ® ­ ®­ ® ­ ®
hAx, xi A−1 x, x = P T DP x, x P T D−1 P x, x = hDP x, P xi D−1 P x, P x .
Rodney Josué Biezuner 70

Denote y = P x = (y1 , . . . , yn ) e βi = yi2 . Então y também é um vetor unitário e


n
X
λ := hDy, yi = βi λi
i=1

é uma combinação convexa dos autovalores λi de A, ao passo que


n
­ ® X βi
µ := D−1 y, y =
λ
i=1 i

é uma combinação convexa dos autovalores λ−1


i de A−1 . Consequentemente,

1 1 λ
µ6 + − . (4.20)
λ1 λn λ1 λn
De fato, a função ϕ (t) = 1/t é convexa, logo o ponto (λ, µ), que é a combinação convexa de pontos localizados
no gráfico de ϕ, está localizado na região plana convexa limitada pelo gráfico de ϕ e o segmento de reta que
une os pontos extremos do gráfico (λ1 , 1/λ1 ) e (λn , 1/λn ), ou seja, o segmento de reta
1 1 1
t 7−→ − t+ + , λ1 6 t 6 λn .
λ1 λn λ1 λn
Em particular, o ponto (λ, µ) está abaixo do ponto do segmento correspondente a t = λ.
Portanto, µ ¶
­ ® 1 1 λ
hAx, xi A−1 x, x = λµ 6 λ + − .
λ1 λn λ1 λn
O máximo da função quadrática µ ¶
1 1 t
t 7−→ t + −
a b ab
é atingido para t = (a + b) /2. Concluı́mos que
µ ¶ 2
­ ® λ1 + λn 1 1 λ1 + λn (λ1 + λn )
hAx, xi A−1 x, x 6 + − = .
2 λ1 λn 2λ1 λn 4λ1 λn

4.11 Lema. Seja xk+1 = xk + αk pk obtido através de uma busca exata na reta. Então

rk+1 ⊥ pk

e
ek+1 ⊥A pk .

Prova: Temos
b − Axk+1 = b − Axk − αk Apk ,
de modo que a seqüência dos resı́duos é dada pela fórmula

rk+1 = rk − αk Apk . (4.21)

Logo, ­ k k®
­ k+1 k
® ­ ® ­ ® ­ ® p ,r ­ k k®
r ,p = rk+1 , pk − αk Apk , pk = rk , pk − Ap , p = 0.
hpk , Apk i
Rodney Josué Biezuner 71

A segunda relação de A-ortogonalidade segue diretamente da primeira relação de ortogonalidade; de fato,


lembrando que
Aek+1 = rk+1 ,
temos ­ k+1 k ® ­ ® ­ ®
e , p A = Aek+1 , pk = rk+1 , pk = 0.
¥
O significado geométrico deste resultado é que o mı́nimo do funcional f na reta xk + αk pk ocorre quando a
derivada direcional de f na direção de busca é zero, ou seja,
∂f ¡ k+1 ¢ ­ ¡ ¢ ® ­ ®
0= x = ∇f xk+1 , pk = rk+1 , pk .
∂pk
4.12 Corolário. No método da descida mais acentuada vale
rk+1 ⊥ rk
e
ek+1 ⊥A rk .
4.13 Teorema. Sejam A ∈ Mn (R) uma matriz simétrica positiva definida e denote por λmax e λmin seu
menor autovalor e seu maior autovalor, respectivamente. Então o erro algébrico do método da descida
mais acentuada satisfaz a estimativa
° k+1 ° ° °
°e ° 6 λmax − λmin °ek ° .
A λmax + λmin A

Em particular,
µ ¶k
° k° λmax − λmin ° 0°
°e ° 6 °e °
A λmax + λmin A

e portanto o método da descida mais acentuada converge qualquer que seja o chute inicial x0 .
Prova: Temos ¡ ¢
ek+1 = x − xk+1 = x − xk + αk rk = ek − αk rk .
Logo, pelo Corolário 4.12,
° k+1 °2 ­ ® ­ ® ­ ® ­ ®
°e ° = ek+1 , ek+1 = ek+1 , ek − αk ek+1 , rk = ek+1 , ek
A A A A A
­ ® ­ ®
= ek+1 , Aek = ek+1 , rk .
Daı́, usando a desigualdade de Kantorovich,
° k+1 °2 ­ ® ­ ® ­ ®
°e ° = ek − αk rk , rk = ek , rk − αk rk , rk
A
à ­ k k® ­ k k® !
­ k k® r ,r r ,r
= e ,r 1− k
hr , Ar i hek , rk i
k
à ­ k k® ­ k k® !
­ k k
® r ,r r ,r
= e , Ae 1− k
hr , Ark i hA−1 rk , rk i
à ­ k k® ­ k k® !
° k °2 r ,r r ,r
° °
= e A 1− k
hr , Ar i hr , A−1 rk i
k k
à !
° k °2 4λ min λ max
6 °e °A 1 − 2
(λmin + λmax )
µ ¶
° k °2 λmax − λmin 2
°
= e A ° .
λmax + λmin
Rodney Josué Biezuner 72

¥
Observamos que o fator de convergência obtido no Teorema 4.13 é ótimo (veja Exercı́cio 4.6).
Introduzimos o número de condição de uma matriz, que é uma medida do quão mal-comportada ela é.

4.14 Definição. Seja A ∈ Mn (R) uma matriz simétrica positiva definida. O número de condição de A é
definido por
λmax
κ (A) = .
λmin
Quanto menor o número de condição de A, isto é, quanto mais próximo de 1, mais próximos a esferas
são os elipsóides de nı́vel do funcional f ; reciprocamente, quando maior o número de condição de A, mais
excêntricos são estes. A constante do Teorema 4.13 pode ser mais convenientemente expressa em termos do
número de condição da matriz:

4.15 Corolário. Sejam A ∈ Mn (R) uma matriz simétrica positiva definida e denote por λmax e λmin seu
menor autovalor e seu maior autovalor, respectivamente. Então o erro algébrico do método da descida
mais acentuada satisfaz a estimativa
° k+1 ° ° °
°e ° 6 κ (A) − 1 °ek ° .
A κ (A) + 1 A

Desta forma, vemos que quanto mais κ (A) é próximo de 1 maior é a velocidade de convergência do método
da descida acentuada; reciprocamente, quando maior κ (A), mais lento ele é.
Reunindo as informações obtidas, um algoritmo para o método da descida mais acentuada pode ser
apresentado da seguinte forma:
initialize x;
set b;
r ← b − Ax;
do
 until stop criterion
compute Ar;
 α ← hr, ri / hr, Ari ;

 x ← x + αr;
r ← r − αAr;

4.3 Exercı́cios
4.1 Considere a matriz invertı́vel · ¸
0 I
A= ,
I I
onde I é a matriz identidade m × m, e seja V = W = {e1 , . . . , em }. Verifique que W T AV é singular.
4.2 Verifique que a matriz W T AV é invertı́vel se e somente se nenhum vetor do subespaço AK é ortogonal
ao subespaço L.
4.3 Sejam B1 = {v1 , . . . , vm } e B2 = {w1 , . . . , wm } duas bases para o subespaço K ⊂ Rn e considere as
matrizes n × m V = [v1 · · · vm ] e W = [w1 · · · wm ]. Mostre que existe uma matriz m × m invertı́vel P
tal que V = W P .
4.4 Mostre que se A é uma matriz positiva definida n × n e V é uma matriz n × m cujas colunas são
linearmente independentes, então a matriz m × m V T AV também é uma matriz positiva definida.
4.5 Mostre que se A é uma matriz n × m cujas colunas são linearmente independentes, então a matriz
m × m B T B é invertı́vel.
Rodney Josué Biezuner 73

4.6 Verifique que a taxa de convergência para o método da descida mais acentuada obtida no Teorema 4.12
é ótima da seguinte maneira: se v1 e vn são os autovetores associados a λmin e λmax , respectivamente,
mostre que se e0 = v1 + v2 , então
° k+1 ° ° °
°e ° = λmax − λmin °ek ° .
A λmax + λmin A

4.7 O número de condição para uma matriz invertı́vel A ∈ Mn (C) qualquer é definido por
° °
κ (A) = kAk2 °A−1 °2 .

a) Mostre que se A é uma matriz simétrica positiva definida esta definição coincide com a Definição
4.14.
b) Verifique que κ (A) > 1 para toda matriz A.
c) Considere o sistema Ax = b. Se y é uma aproximação de x com erro algébrico e = x − y e erro
residual r = b − Ay, mostre que

1 kf k2 kf k2
kek2 6 krk2 6 κ (A) kek2 .
κ (A) kxk2 kxk2

Esta desigualdade é ótima, no sentido de que a igualdade é atingida para certos valores de y. Ela
mostra que para uma matriz mal-condicionada (isto é, com um número de condição relativamente
alto), o erro residual pode ser muito pequeno ao mesmo tempo em que o erro algébrico pode ser muito
grande e vice-versa.
Capı́tulo 5

Métodos de Subespaços de Krylov

Os métodos de projeção deste capı́tulo estão entre os mais importantes e populares disponı́veis. Eles estão
baseados na projeção sobre subespaços de Krylov, que são subespaços gerados por vetores da forma p (A) v
onde p é um polinômio.

5.1 Motivação
Como vimos ao estudar os métodos iterativos lineares para a resolução do sistema Ax = b, estes métodos
consistem em obter uma decomposição apropriada A = B − C da matriz do sistema, onde B é uma matriz
próxima da matriz original A mas fácil de resolver. Então o método iterativo pode ser descrito pela relação
de recorrência ¡ ¢
xm+1 = I − B −1 A xm + B −1 b,
onde R = I − B −1 A é a matriz de iteração. A matriz mais fácil de resolver é

B = I,

exceto que esta matriz em geral está muito longe de A. Quando esta escolha é feita, obtemos a chamada
iteração de Richardson:
xm+1 = (I − A) xm + b = xm + b − Axm
ou, simplesmente,
xm+1 = xm + rm . (5.1)
Assim, o método da iteração de Richardson consiste simplesmente em somar o resı́duo da aproximação à
própria aproximação para obter a próxima aproximação. Na verdade, o método de iteração de Richardson
desempenha papel importante na teoria de convergência dos métodos iterativos: por exemplo, todo método
iterativo linear com decomposição A = B − C pode ser visto como a iteração de Richardson aplicada ao
sistema equivalente (precondicionado)
B −1 Ax = B −1 b.
A partir de (5.1) obtemos sua correspondente equação residual:

rm+1 = (I − A) rm . (5.2)

Através da iteração para trás desta equação obtemos


m
rm = (I − A) r0 (5.3)
0
= pm (A) r , (5.4)

74
Rodney Josué Biezuner 75

ou seja, o m-ésimo resı́duo é da forma pm (A) r0 onde pm é um polinômio de grau m. Além disso, como
m
X
¡ ¢
xm+1 = xm + rm = xm−1 + rm−1 + rm = . . . = rj
j=0
m
X j
= (I − A) r0 ,
j=0

segue que as aproximação também são da forma qm (A) r0 onde qm é um polinômio de grau igual a m.
Portanto, tanto os resı́duos r0 , . . . , rm como as aproximações x0 , . . . , xm pertencem ao subespaço
¡ ¢ © ª
Km+1 A, r0 = p (A) r0 : p é um polinômio de grau menor que ou igual a m
­ ®
= r0 , Ar0 , . . . , Am r0 .

5.2 Subespaços de Krylov


5.1 Definição. Dada uma matriz A ∈ Mn (C) e um vetor v ∈ Cn , definimos o subespaço de Krylov
­ ®
Km (A, v) = v, Av, . . . , Am−1 v . (5.5)

Em outras palavras, Km (A, v) é o subespaço de todos os vetores que podem ser escritos na forma w = p (A) v,
onde p é um polinômio de grau menor que ou igual a m−1. Se não houver motivo para confusão denotaremos
o subespaço de Krylov Km (A, v) simplesmente por Km .
Como vimos no capı́tulo anterior, um método de projeção geral para resolver o sistema linear

Ax = b

extrai uma solução aproximada xm de um subespaço afim x0 + Km de dimensão m através da imposição da


condição de Petrov-Galerkin
rm = b − Axm ⊥ Lm .
Um método de subespaço de Krylov é um método de projeção para o qual o subespaço Km é o subespaço
de Krylov ¡ ¢ ­ ®
Km A, r0 = r0 , Ar0 , . . . , Am−1 r0 . (5.6)
As diferentes versões de métodos de subespaço de Krylov decorrem principalmente das diferentes escolhas
de Lm .
Lembramos alguns fatos de Álgebra Linear.

5.2 Definição. O polinômio mı́nimo de um vetor v com respeito à matriz A (também chamado o A-
anulador de v) é o polinômio mônico de menor grau p que anula v, isto é, tal que p (A) v = 0. O grau
do polinômio mı́nimo é chamado o grau de v com respeito a A.

É uma consequência do Teorema de Cayley-Hamilton que

grau v 6 n.

5.3 Proposição. Seja d = grau v. Então Kd é invariante por A e Kd = Km para todo m > d.
Além disso,
dim Km = m
se e somente se m 6 d. Portanto,
dim Km = min {m, d} .
Rodney Josué Biezuner 76

Prova: Os vetores v, Av, . . . , Am−1 v formam uma base para Km se e somente se o único polinômio de grau
menor ou igual a m − 1 que anula v é o polinômio nulo. ¥
Apesar dos vetores v, Av, . . . , Am−1 v formarem uma base para o subespaço de Krylov Km (quando m 6
grau v), esta é uma base mal-condicionada, no sentido que à medida que k aumenta o vetor Ak v fica cada vez
mais próximo do autovetor associado ao maior autovalor de A, como veremos em detalhe quando estudarmos
o método de potências para obter autovalores de matrizes. Assim, para m grande os vetores v, Av, . . . , Am−1 v
tornam-se aproximadamente linearmente dependentes, o que torna-se um problema em aritmética de precisão
finita. Para obter uma base bem condicionada para o subespaço de Krylov é necessário usar um método de
ortogonalização, como veremos a seguir.

5.3 Algoritmo de Arnoldi


O método
¡ ¢de Arnoldi é um método de projeção ortogonal em subespaços de Krylov, ou seja, Lm = Km =
Km A, r0 , aplicável para matrizes gerais, não necessariamente hermitianas. O procedimento foi introduzido
pela primeira vez em 1951 como uma maneira de calcular a forma de Hessenberg de matrizes densas. Arnoldi
sugeriu que os autovalores da forma de Hessenberg, obtida através de menos que n passos, eram boas
aproximações para alguns dos autovalores da matriz original. Posteriormente, verificou-se que isso conduz
a uma técnica eficiente para a aproximação dos autovalores de matrizes esparsas grandes, como veremos
em detalhes quando formos estudar métodos para a obtenção de autovalores de matrizes. Posteriormente o
método foi estendido para a solução de sistemas lineares esparsos grandes.
O algoritmo de Arnoldi , propriamente dito, é um procedimento para a construção
© de uma base ortonormal
ª
para o subespaço de Krylov Km , já que, como observado antes, a base natural v, Av, . . . , Am−1 v não é
bem condicionada. Simplesmente ortogonalizar esta base mal-condicionada também não é uma boa opção
numérica. No algoritmo de Arnoldi, o processo de ortogonalização de Gram-Schmidt é usado da seguinte
maneira. Inicialmente obtém-se o primeiro vetor unitário através da normalização do vetor v:
v
v1 = .
kvk

Em seguida, calcula-se o vetor Av1 (ao invés de Av) e ortogonaliza-se este vetor com relação ao vetor v1
através do método de Gram-Schmidt:

w1 = Av1 − proj Av1 = Av1 − hAv1 , v1 i v1 ,


hv1 i
w1
v2 = .
kw1 k

Tendo sido obtido o vetor v2 , calcula-se Av2 (ao invés de A2 v = A (Av)) e ortogonaliza-se este vetor com
relação aos vetores v1 , v2 através do método de Gram-Schmidt:

w2 = Av2 − proj Av2 = Av2 − hAv2 , v1 i v1 − hAv2 , v2 i v2 ,


hv1 ,v2 i
w2
v3 = .
kw2 k

No passo geral, tendo sido obtido o vetor vj no passo anterior, calcula-se e ortogonaliza-se este vetor com
relação aos vetores v1 , . . . , vj obtidos nos passos anteriores através do método de Gram-Schmidt:
j
X
wj = Avj − proj Avj = Avj − hAvj , vi i vi , (5.7)
hv1 ,...,vj i i=1
wj
vj+1 = . (5.8)
kwj k
Rodney Josué Biezuner 77

Podemos resumir este procedimento no seguinte algoritmo:

Algoritmo de Arnoldi
Atribua v;
v1 ← v/ kvk2 ;
Para
 j = 1, . . . , m faça:
Calcule hij = hAvj , vi i para i = 1, . . . , j;

 Calcule wj = Avj − P hij vi ;
j

 i=1
 hj+1,j = kwj k ;
 2
 Se hj+1,j = 0 então pare;
vj+1 ← wj /hj+1,j ;
fim do laço

O algoritmo sofre um colapso se o vetor wj é nulo e o vetor vj+1 não pode mais ser calculado.

5.4 Proposição. Assuma que o algoritmo de Arnoldi não pára antes do m-ésimo passo. Então os vetores
v1 , . . . , vm formam uma base ortonormal para o subespaço de Krylov
­ ®
Km (A, v1 ) = v1 , Av1 , . . . , Am−1 v1

Prova: Os vetores v1 , . . . , vm são ortonormais por construção, logo são linearmente independentes. Basta
então mostrar que v1 , . . . , vm ∈ Km (A, v1 ) para concluir que eles formam uma base para Km (A, v1 ). Para
isso, basta mostrar que cada vetor vj é da forma qj−1 (A) v1 para algum polinômio qj−1 de grau j − 1. Isso
pode ser visto por indução. Se j = 1, temos q0 (t) ≡ 1. Assumindo o resultado verdadeiro para todos os
inteiros até j, considere vj+1 . Temos
j
X j
X
hj+1,j vj+1 = wj = Avj − hij vi = Aqj−1 (A) v1 − hij qi−1 (A) v1 ,
i=1 i=1
· ¸
P
j
de modo que vj+1 = qj (A) v1 para qj = (1/hj+1,j ) tqj−1 (t) − hij qi−1 (t) , que é um polinômio de grau
i=1
j. ¥
O significado do colapso do algoritmo de Arnoldi, quando o vetor vj+1 não pode ser mais calculado é
dado a seguir:

5.5 Proposição. O algoritmo de Arnoldi sofre um colapso no passo j, isto é hj+1,j = 0, se e somente se
o polinômio mı́nimo de v tem grau j. Além disso, neste caso o subespaço Kj é invariante por A e
portanto a solução obtida pelo método de projeção associado é exata.

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
Kj+1 teria dimensão j + 1 maior que o grau de v, contrariando a Proposição 5.3.
Reciprocamente, assuma hj+1,j = 0. Então pelas Proposições 5.3 e 5.4 o grau de v é d 6 j. Mas pela
primeira parte desta demonstração, não podemos ter d < j, pois isso implicaria hd+1,d = 0 e o algoritmo já
teria entrado em colapso no passo d.
O restante do enunciado segue diretamente da Proposição 5.3 e da Proposição 4.6. ¥
Por isso, tais colapsos são chamados colapsos sortudos. Infelizmente eles raramente ocorrem na prática, mas
mesmo quando isso não ocorre as iteradas obtidas aproximam a solução exata em um número relativamente
pequeno de iterações se comparado com os métodos lineares básicos.
Vamos agora representar o algoritmo de Arnoldi em uma forma matricial.

5.6 Definição. Dizemos que A = (aij ) é uma matriz de Hessenberg se aij = 0 para todo i > j + 1
(matriz de Hessenberg superior ) ou se aij = 0 para todo i < j − 1 (matriz de Hessenberg inferior ).
Rodney Josué Biezuner 78

Assim, uma tı́pica matriz de Hessenberg superior quadrada m × m é da forma


 
h11 h12 h13 h14 ... ... h1m
 h21 h22 h23 h24 ... ... h2m 
 
 0 h32 h33 h34 ... ... h3m 
 
 .. 
 0 0 h43 h44 . ... h4m 
 
H=  .. .. .. .. , (5.9)
. . . 
 0 0 0 . 
 . .. .. .. .. .. .. .. 
 .. . . . . . . . 
 
 . .. .. .. .. .. 
 .. . . . . . hm−1,m 
0 0 0 0 ... 0 hm,m−1 hmm

ou seja, é uma matriz obtida a partir de uma matriz triangular superior em que a subdiagonal inferior é
preenchida. Similarmente, uma matriz de Hessenberg inferior quadrada é uma matriz obtida a partir de uma
matriz triangular inferior em que a subdiagonal superior é preenchida. Uma tı́pica matriz de Hessenberg
superior (m + 1) × m é da forma
 
h11 h12 h13 h14 ... ... h1m
 h21 h22 h23 h24 ... ... h2m 
 
 0 h32 h33 h34 ... ... h3m 
 
 .. 
 0 0 h43 h44 . ... h4m 
 
 .. .. .. .. 
H=
 0 0 0 . . . . .
 (5.10)
 . .. .. .. .. .. .. .. 
 .. . . . . . . . 
 
 . .. .. .. .. .. 
 .. . . . . . hm−1,m 
 
 0 0 0 0 ... 0 hm,m−1 hmm 
0 0 0 0 0 0 0 hm+1,m

A partir daı́, em uma matriz de Hessenberg superior n×m com n > m+1 todas as linhas i tais que i > m+1
são nulas.
e m a matriz
5.7 Proposição. Denote por Vm a matriz n × m cujas colunas são os vetores v1 , . . . , vm , por H
de Hessenberg (m + 1) × m cujas entradas não-nulas são os elementos hij definidos pelo algoritmo de
Arnoldi e por Hm a matriz m × m obtida de através da eliminação da última linha de H e m . Então
valem as seguintes relações:
em,
AVm = Vm Hm + wm eTm = Vm+1 H (5.11)
VmT AVm = Hm . (5.12)

Prova: Se M é uma matriz, denotemos por (M )j a sua j-ésima coluna. Do algoritmo de Arnoldi temos,
para j = 1, . . . , m,
j
X j
X j+1
X
(AVm )j = Avj = hij vi + wj = hij vi + hj+1,j vj+1 = hij vi . (5.13)
i=1 i=1 i=1

Por outro lado,


³ ´ m+1
X j+1
X
em
Vm+1 H = hij vi = hij vi ,
kj
i=1 i=1
Rodney Josué Biezuner 79

de modo que segue de (5.13) que

³ ´ j+1
X
em
Vm+1 H = hij vi = (AVm )j ,
j
i=1

e m . Da mesma forma, para j = 1, . . . , m − 1,


logo AVm = Vm+1 H
j+1
X
(Vm Hm )j = hij vi ,
i=1
¡ ¢
wm eTm j = 0,

de modo que
j+1
X
¡ ¢
Vm Hm + wm eTm j = hij vi = (AVm )j
i=1

para j = 1, . . . , m − 1, enquanto que para j = m temos


m
X
(Vm Hm )m = him vi ,
i=1
¡ ¢
wm eTm m
= wm = hj+1,j vm+1 ,

de modo que
m+1
X
¡ ¢
Vm Hm + wm eTm m
= hij vi = (AVm )m .
i=1

Portanto, AVm = Vm Hm + wm eTm . Finalmente, multiplicando ambos os lados desta última relação por VmT e
T
usando
¡ o fato¢ que¡ os vetores
¢ v1 , . . . , vm são ortonormais e wm é ortogonal a todos eles, segue que Vm Vm = I
e VmT wm eTm = VmT wm eTm = 0, donde obtemos a última relação do enunciado desta proposição. ¥

5.4 Implementação Prática: Métodos de Ortogonalização Estáveis


O algoritmo de Gram-Schmidt é numericamente instável: pequenos erros de arredondamento podem dar
origem a vetores muito longe de serem ortogonais (veja Exercı́cio 5.1). Na implementação prática do algo-
ritmo de Arnoldi é necessário considerar métodos de ortogonalização numericamente estáveis.

5.4.1 Método de Gram-Schmidt Modificado (MGS)


O método de Gram-Schmidt modificado (MGS) é uma modificação pequena do método de Gram-
Schmidt que produz um algoritmo de ortogonalização estável. Na ausência de erros de arredondamento,
eles produzem os mesmos vetores. No algoritmo de Gram-Schmidt clássico, dada uma base {u1 , . . . , um } de
um subespaço vetorial, uma vez calculados os vetores ortonormais v1 , . . . , vj−1 correspondentes, os escalares
hij = huj , vi i, i = 1, . . . , j − 1 são todos calculados simultaneamente para produzir o próximo vetor ortogonal
unitário vj
j−1
X
wj = uj − hij vi , (5.14)
i=1
wj
vj = . (5.15)
kwj k
Rodney Josué Biezuner 80

No método modificado, assim que o primeiro vetor ortogonal v1 = u1 é obtido, todos os vetores u2 , . . . , um
são atualizados através do escalar h1i = hui , v1 i:

vi1 = ui − h1i v1 , i = 2, . . . , m.
° °
Assim, os vetores v21 , . . . , vm
1
já são ortogonais a v1 . Em particular, podemos tomar v2 = v21 / °v21 °2 . Uma
­ ®
vez obtido v2 , todos os vetores v31 , . . . , vm
1
são atualizados através dos escalares h2i = vi1 , v2 :

vi2 = vi1 − h2i v2 , i = 3, . . . , m.


° °
Assim, os vetores v32 , . . . , vm2
são ortogonais a v1 e v2 . Em particular, tomamos v3 = v32 / °v32 ° e continuamos o
processo até o fim. Em geral, no passo j, uma vez obtido o vetor unitário vj , ortogonal aos vetores ortonormais
j−1 j−1
v1 , . . . , vj−1 , os vetores vj+1 , . . . , vm que já eram ortogonais aos vetores v1 , . . . , vj−1 , são atualizados através
D E
j−1 j j
dos escalares hji = vj , vj para produzir vetores vj+1 , . . . , vm ortogonais a v1 , . . . , vj−1 , vj :

vij = vij−1 − hji vj , i = j + 1, . . . , m, (5.16)

e tomamos
j
vj+1
vj+1 = °
° j °.
° (5.17)
°vj+1 °
.
Em aritmética exata, os algoritmos de Gram-Schmidt e de Gram-Schmidt modificado são equivalentes;
além disso, eles têm o mesmo custo computacional (2m2 n flops) e de armazenamento ((m + 1) n). Para
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
primeira diferença surge no cálculo de v3 . No método de Gram-Schmidt clássico (GS) temos

w3GS = v3 − h13 v1 − h23 v2

com
h13 = hu3 , v1 i e h23 = hu3 , v2 i .
O termo h23 v2 é a componente de u3 na direção de v2 . Quando este componente é removido de u3 , obtemos
um vetor ortogonal a v2 , desde que o escalar h23 seja calculado com exatidão. No método MGS primeiro
calculamos
v31 = u3 − eh13 v1
e depois
v32 = v31 − e
h23 v2 ,
com ­ ®
e
h13 = hu3 , v1 i = h13 e e
h23 = v31 , v2 .
Daı́,
w3MGS = v32 = u3 − e
h13 v1 − e
h23 v2 = u3 − h13 v1 − e
h23 v2
Em princı́pio, u3 e v31 = u3 − h13 v1 têm as mesmas componentes na direção de v2 , já que v1 é ortogonal
a v2 , e não faria diferença usar h23 ou e
h23 . Na prática, os vetores v1 e v2 não são exatamente ortogonais,
por causa de erros de arredondamento, portanto o termo h13 v1 tem uma pequena componente na direção de
v2 . Além disso, erros de arredondamento também ocorrem na subtração de h13 v1 de u3 , portanto este vetor
diferença também tem uma componente na direção de v2 . O método de Gram-Schmidt clássico ignora estes
erros, enquanto que o método modificado, trabalhando com o vetor v31 ao invés de u3 , leva estes erros em
conta e os corrige no cálculo de e h23 .
Rodney Josué Biezuner 81

Para obter um algoritmo computacionalmente implementável para o MGS, observe que enquanto que no
método de Gram-Schmidt clássico, uma vez obtidos os vetores ortonormais v1 , . . . , vj−1 obtemos o próximo
vetor ortogonal unitário vj fazendo
j
X
wj = uj − projvi uj ,
i=1
wj
vj = ,
kwj k

no método de Gram-Schmidt modificado fazemos

vj1 = uj − projv1 uj ,
vj2 = vj1 − projv2 vj1 ,
vj3 = vj2 − projv3 vj2 ,
..
. (5.18)
vjj−2 = vjj−3 − projvj−2 vjj−3 ,
vjj−1 = vjj−2 − projvj−1 vjj−2 ,
vjj−1
vj = ° °
° j−1 ° .
°vj °

Usando o MGS, o algoritmo de Arnoldi tem o seguinte aspecto. Obtém-se o primeiro vetor unitário
através da normalização do vetor v:
v
v1 = .
kvk
Em seguida, calcula-se o vetor Av1 e ortogonaliza-se este vetor com relação ao vetor v1 :

v21 = Av1 − projv1 Av1 = Av1 − hAv1 , v1 i v1 ,


v21
v2 = .
kv21 k

Como já observado anteriormente, até aqui o MGS é idêntico ao método de Gram-Schmidt clássico. Tendo
sido obtido o vetor v2 , calcula-se Av2 e ortogonaliza-se este vetor primeiro com relação ao vetor v1 e depois
o vetor resultante é ortogonalizado com relação ao vetor v2 :

v31 = Av2 − projv1 Av2 = Av2 − hAv2 , v1 i v1 ,


­ ®
v32 = v31 − projv2 v31 = v31 − v31 , v2 v2 ,
v32
v3 = .
kv32 k

No passo geral, tendo sido obtido o vetor vj no passo anterior, calcula-se Avj e ortogonaliza-se este vetor
com relação ao primeiro vetor v1 ; em seguida o vetor resultante é ortogonalizado com relação ao vetor v2 , e
Rodney Josué Biezuner 82

assim por diante, até que o vetor resultante do passo anterior seja ortogonalizado com relação ao vetor vj :
vj1 = Avj − projv1 Avj = Avj − hAvj , v1 i v1 ,
­ ®
vj2 = vj1 − projv2 vj1 = vj1 − vj1 , v2 v2 ,
..
.
D E
vj = vjj−2 − projvj−1 vjj−2 = vjj−2 − vjj−2 , vj−1 vj−1 ,
j−1
(5.19)
D E
vjj = vjj−1 − projvj vjj−1 = vjj−1 − vjj−1 , vj vj ,
vjj
vj+1 = ° °
° j° .
°vj °
Podemos resumir este procedimento no seguinte algoritmo:
Algoritmo de Arnoldi MGS
Atribua v;
v1 ← v/ kvk2 ;
Para
 j = 1, . . . , m faça
Calcule wj = Avj ;
 Para i = 1, . . . , j faça
 ·
 hij ← hwj , vi i ;

 wj ← wj − hij vi

 fim do laço

 hj+1,j = kwj k ;
 2
 Se hj+1,j = 0 então pare;
vj+1 ← wj /hj+1,j ;
fim do laço
Embora o MGS seja mais estável, em situações onde os erros de cancelamento podem ser muito severos
nos passos de ortogonalização é necessário considerar métodos ainda mais estáveis.

5.4.2 Método de Gram-Schmidt Modificado com Reortogonalização (MGSR)


(j−1)
Uma melhoria simples é recorrer à ortogonalização dupla. Ou seja, no passo j obtemos o vetor vj que deve
ser
D ortogonal
E aos vetores w1 , . . . , wj−1 . Isso pode ser verificado diretamente, calculando os produtos internos
(j−1)
vj , wi e verificando se eles são próximos de 0 dentro de uma margem de tolerância pre-estabelecida. Se
temos que nos dar a este trabalho, é melhor aproveitar os cálculos destes produtos internos e fazer logo uma
segunda ortogonalização. Assim no primeiro loop do algoritmo MGS anterior acrescentamos um segundo
loop: 
Calcule wj = Avj ;
 Para i = 1, . . . , j faça
 ·
 hij ← hwj , vi i ;

 wj ← wj − hij vi

 Para i = 1, . . . , j faça
 
 γ ← hwj , vi i ;

  wj ← wj − γvi ;

 hij ← hij + γ;

 fim do laço

 hj+1,j = kwj k ;
 2
 Se hj+1,j = 0 então pare;
vj+1 ← wj /hj+1,j ;
Rodney Josué Biezuner 83

Ortogonalizações adicionais são supérfluas: duas ortogonalizações são suficientes para fazer o vetor wj or-
togonal aos vetores w1 , . . . , wj−1 na precisão de máquina (veja [Watkins], p. 233, ou [Saad], p. 156).

GS MGS MGSR
Flops 2m2 n 2m2 n 4m2 n
Armazenagem (m + 1) n (m + 1) n (m + 1) n

5.5 Método de Arnoldi para Sistemas Lineares


Dado um chute inicial x0 para a solução do sistema linear Ax = b, o método de Arnoldi para sistemas
lineares é um método de projeção ortogonal em que
¡ ¢ ­ ®
K = L = Km A, r0 = r0 , Ar0 , A2 r0 , . . . , Am−1 r0

em que r0 = b − Ax0 . Portanto, o método busca uma solução aproximada xm ∈ x0 + Km impondo a condição
de Galerkin
rm = b − Axm ⊥ Km .
De acordo com o capı́tulo anterior, se Vm = [v1 · · · vm ] é uma matriz cujas colunas formam uma base
ortonormal para Km , obtidas através do algoritmo de Arnoldi, temos

xm = x0 + Vm y m

com
¡ ¢−1 T 0 ¡° ° ¢ ° ° −1 T
−1 T ° 0 °
y m = VmT AVm −1 T 0
V m r = Hm V m r = Hm Vm r v1 = °r0 ° Hm Vm (v1 )
° 0 ° −1
° °
= r Hm (e1 ) .

Baseados nestas observações, temos então o seguinte método de Arnoldi para sistemas lineares, chamado
método da ortogonalização completa (ou FOM de full orthogonalization method ):

Algoritmo de Arnoldi para Sistemas Lineares FOM


Inicialize x0 ;
Calcule r0 =°b −°Ax0 ;
Calcule β = °r0 °2 ;
v1 ← r0 /β;
Inicialize a matriz Hm = (hij )m×m = 0;
Para
 j = 1, . . . , m faça
Calcule wj = Avj ;
 Para i = 1, . . . , j faça
 ·
 hij ← hwj , vi i ;

 wj ← wj − hij vi

 fim do laço

 hj+1,j = kwj k ;
 2
 Se hj+1,j = 0 tome m := j e saia do laço;
vj+1 ← wj /hj+1,j ;
fim do laço
Calcule y m = βHm −1 −1
(e1 ) ; //não é necessário encontrar Hm
Calcule xm = x0 + Vm y m .
¡ ¢
Este algoritmo pode ser também obtido diretamente. A condição de Galerkin rm ⊥ Km A, r0 é equivalente
a
VmT (b − Axm ) = 0
Rodney Josué Biezuner 84

ou
VmT Axm = VmT b
° °
Escolhendo o chute inicial x0 = 0 para simplificar, temos que b = r0 = °r0 ° v1 , donde
° ° ° °
VmT Axm = °r0 ° VmT v1 = °r0 ° e1 .
¡ ¢
Como xm ∈ Km A, r0 , podemos escrever xm = Vm y m para algum vetor y m ∈ Rm . Logo
° °
VmT AVm y m = °r0 ° e1 ,
¡ ¢
que pode ser interpretado como o sistema Ax = b projetado no subespaço Km A, r0 . Usando o fato que
VmT AVm = Hm , segue que ° °
H m y m = °r0 ° e1 . (5.20)
Resolvendo este sistema obtemos y m e daı́ a aproximação

xm = Vm y m . (5.21)

Como em geral m ¿ n, este sistema é bem mais fácil de resolver que o sistema original, possibilitando
o uso de métodos diretos. De fato, embora a matriz de Hessenberg seja uma matriz densa, como ela é
quase triangular uma decomposição QR passa a ser competitiva com a decomposição LU e é indicada (para
matrizes gerais, o custo da decomposição LU é a metade do custo da decomposição QR). Maiores detalhes
serão fornecidos na próxima seção.
O algoritmo depende do parâmetro m que em geral deve ser selecionado dinamicamente. Em geral, m é
progressivamente aumentado até que o resı́duo rm é menor que alguma tolerância previamente estabelecida.
Ao invés de calcular o resı́duo diretamente, podemos obter a norma do resı́duo de maneira menos custosa
através do seguinte resultado:

5.8 Proposição. O resı́duo calculado através do método de Arnoldi FOM satisfaz

rm = −hm+1,m hem , y m i v m+1 ,

logo ¯ ¯
krm k2 = hm+1,m ¯eTm y m ¯ (5.22)
Em particular, os resı́duos são ortogonais.

Prova: Temos, pela Proposição 5.7,


¡ ¢
rm = b − Axm = b − A x0 + Vm y m
= r0 − AVm y m
° ° ¡ ¢
= °r0 ° v1 − Vm Hm + wm eTm y m
° ° ¡ ¢
= °r0 ° v1 − Vm Hm y m − wm eTm y m
° ° ° ° ¡ ¢
= °r0 ° v1 − Vm °r0 ° e1 − hm+1,m v m+1 eTm y m
= −hm+1,m hem , y m i v m+1 .

¥
Rodney Josué Biezuner 85

5.6 Decomposição QR via MGS


Lembramos que uma decomposição QR de uma matriz A é uma fatorização

A = QR (5.23)

onde Q é uma matriz ortogonal (no caso real, unitária no caso complexo) e R é uma matriz triangular superior.
Usando esta decomposição, podemos resolver o sistema linear Ax = b da seguinte maneira. Multiplicando
ambos os lados da equação por QT obtemos

QT Ax = QT b,

de modo que o sistema original é equivalente ao sistema

Rx = QT b (5.24)

cuja matriz de coeficientes é uma matriz triangular superior, logo pode ser resolvido por substituição.
Para calcular a decomposição QR de uma matriz, um dos métodos que podem ser usados é o próprio
MGS. Outros métodos serão vistos no capı́tulo sobre autovalores. Para facilitar a compreensão, veremos
primeiro como fazer a decomposição QR usando o método de Gram-Schmidt modificado. No que se segue
assumiremos que A é uma matriz n×m cujas m colunas são linearmente independentes. Escrevendo a matriz
A em colunas £ ¤
A = A1 A2 · · · Am , (5.25)
aplicamos o método de Gram-Schmidt às colunas de A, obtendo
j−1
X
wj = Aj − hAj , vi i vi , (5.26)
i=1
wj
vj = . (5.27)
kwj k

Resolvendo em termos de Aj , podemos escrever


j−1
X j
X
Aj = rij vi + kwj k vj = rij vi (5.28)
i=1 i=1

com

rij = hAj , vi i , (5.29)


rjj = kwj k . (5.30)

Assim, tomando £ ¤
Q= v1 v2 ··· vm (5.31)
e  
r11 r12 r13 ... r1m
 0 r22 r23 ... r2m 
 
 0 0 r33 ... r3m 
 
R=
 0 ..
.
.. 
 (5.32)
 0 0 . 
 . .. .. .. .. .. 
 .. . . . . . 
0 0 0 ... 0 rmm
Rodney Josué Biezuner 86

segue que
 
r11 r12 r13 ... r1m
 0 r22 r23 ... r2m 
 
 0 0 r33 ... r3m 
£ ¤ £ ¤ 
A1 A2 ··· Am = v1 v2 ··· vm  .. .. , (5.33)
 0 0 0 . . 
 
 . .. .. .. .. .. 
 .. . . . . . 
0 0 0 ... 0 rmm
ou seja, A = QR.
Devido aos problemas da instabilidade do método de Gram-Schmidt clássico, é melhor usar o método de
Gram-Schmidt modificado para fazer a decomposição QR de uma matriz. Resolvendo o j-ésimo passo do
MGS
vj1 = Aj − hAj , v1 i v1 ,
­ ®
vj2 = vj1 − vj1 , v2 v2 ,
­ ®
vj3 = vj2 − vj2 , v3 v3 ,
..
.
D E
vj = vjj−3 − vjj−3 , vj−2 vj−2 ,
j−2

D E
vjj−1 = vjj−2 − vjj−2 , vj−1 vj−1 ,
vjj−1
vj = ° °
° j−1 ° ,
°vj °

em termos de Aj , denotando
vj0 = Aj , (5.34)
segue que
Aj = vj1 + hAj , v1 i v1
­ ®
= vj2 + vj1 , v2 v2 + hAj , v1 i v1
­ ® ­ ®
= vj3 + vj2 , v3 v3 + vj1 , v2 v2 + hAj , v1 i v1
...
j−1
X ­ ®
= vjj−1 + vji−1 , vi vi (5.35)
i=1
° ° j−1
X ­ i−1 ®
° °
= °vjj−1 ° vj + vj , vi vi
i=1
j
X
= rij vi ,
i=1

onde definimos
­ ®
rij = vji−1 , vi se i = 1, . . . , j − 1, (5.36)
° °
° °
rjj = °vjj−1 ° . (5.37)

Assim, se Q e R são definidas como em (5.31) e (5.32), novamente nós temos A = QR.
Rodney Josué Biezuner 87

5.7 Algoritmo de Lanczos e Método do Gradiente Conjugado


O algoritmo de Lanczos pode ser visto como uma simplificação do método de Arnoldi para matrizes simétricas.
Quando a matriz A é simétrica, a matriz de Hessenberg Hm torna-se uma matriz tridiagonal simétrica, pois
Hm = VmT AVm e uma matriz de Hessenberg simétrica é necessariamente tridiagonal. Isso leva a uma
recorrência de três termos no processo de Arnoldi e a recorrências curtas para algoritmos de solução tais
como o FOM.
A notação padrão para descrever o algoritmo de Lanczos é obtida tomando

αj = hjj ,
βj = hj−1,j

de modo que a matriz de Hessenberg Hm resultante tem a forma


 
α1 β2
 β2 α2 β3 
 
 . .. . .. .. 
Tm =  . 
 
 βm−1 αm−1 βm 
βm αm

(na notação padrão do algoritmo de Lanczos, a matriz de Hessenberg Hm é denotada por Tm , para enfatizar
a sua tridiagonalidade). Isto leva à seguinte variação MGS do método de Arnoldi (FOM):

Algoritmo de Lanczos com MGS


Inicialize x0 ;
Calcule r0 =°b −°Ax0 ;
Calcule β = °r0 °2 ;
v1 ← r0 /β;
Inicialize β1 = 0, v0 ≡ 0;
Para
 j = 1, . . . , m faça
wj ← Avj − βj vj−1 ;
 αj ← hwj , vi i ;

 wj ← wj − αj vj ;

 βj+1 ← kwj k ;

 Se βj+1 = 0 então pare;
vj+1 ← wj / βj+1 ;
fim do laço
Atribua a matriz Tm = tridiag (βi , αi , βi+1 );
Atribua a matriz Vm = [v1 · · · vm ] ;
Calcule y m = Tm −1 −1
(βe1 ) ; //não é necessário encontrar Tm
m 0 m
Calcule x = x + Vm y .

Este algoritmo pode ser consideravelmente simplificado, através da obtenção de uma fórmula de recorrência
de três termos, levando ao método do gradiente conjugado. Primeiro, fazemos uma decomposição LU da
matriz tridiagonal Tm = Lm Um sem pivôs:
   η β 
1 1 2
 µ2 1   η2 β3 
  
 .


 µ 1   . . 
Tm =  3   η3  (5.38)
 . . . .   
 . .   ..
. βm 
µm 1 ηm
Lm Um
Rodney Josué Biezuner 88

onde os coeficientes das matrizes bidiagonais Lm e Um podem ser obtidas através da seguinte fórmula de
recorrência:

η1 = α1 ,
µ2 = β2 η1−1 ,
η2 = α2 − µ2 β2 ,
µ3 = β3 η2−1 ,
..
.
−1
µm = βm ηm−1 ,
ηm = αm − µm βm ,

isto é,
−1
µj = βj ηj−1 , (5.39)
ηj = αj − µj βj . (5.40)

(Observe que ηj 6= 0 para todo j porque Tm é simétrica, positiva definida.) A solução aproximada é dada
então por
xm = x0 + Vm Um −1 −1
Lm (βe1 ) . (5.41)
Definindo
−1
Pm = Vm Um , (5.42)
m
z = L−1
m (βe1 ) , (5.43)

segue que
xm = x0 + Pm z m . (5.44)
Por causa da estrutura triangular superior bidiagonal de Um , Pm pode ser atualizada facilmente. De fato,
escreva Pm em colunas: £ ¤
Pm = p1 p2 · · · pm .
Da relação Pm Um = Vm segue que
βm pm−1 + ηm pm = vm ,
donde
−1
pm = ηm (vm − βm pm−1 ) . (5.45)
Além disso, por causa da estrutura triangular inferior bidiagonal com diagonal unitária de Um , da relação
Lm z m = βe1 segue que
m
µm zj−1 + zjm = 0
para j > 1, e portanto podemos escrever (lembrando que z m é um vetor de Rm assim como y m )
· m−1 ¸
z
zm = (5.46)
ζm
com
ζ m = −µm ζ m−1 . (5.47)
Assim,
· ¸
m 0
£ ¤ z m−1
x =x + Pm−1 pm
ζm
= x0 + Pm−1 z m−1 + ζ m pm ,
Rodney Josué Biezuner 89

donde
xm = xm−1 + ζ m pm . (5.48)
Isso dá a seguinte versão direta para o algoritmo de Lanczos para sistemas lineares:

Algoritmo de Lanczos Direto


Inicialize x0 ;
Calcule r0 = b − Ax 0
° 0;°
Calcule ζ = β = °r °2 ;
1

v1 ← r0 /β;
Inicialize β1 = µ1 ≡ 0;
Inicialize p0 ≡ 0;
Para
 m = 1, 2, . . . , até limite de tolerância faça
w ← Avm − βm vm−1 ;
 αm ← hw, vm i ;

 Se m > 1 então
 ·
 µm ← βm /ηm−1 ;

 ζ m
← −µm ζ m−1 ;

 ηm ← α m − µ m β m ;

 pm ← (vm − βm pm−1 ) /ηm ;
 m
 x ← xm−1 + ζ m pm ;

 w ← w − αm vm ;

 βm+1 ← kwk ;

 Se βm+1 = 0 então pare;
vm+1 ← w/ βm+1 ;
fim do laço
Este algoritmo ainda pode ser consideravelmente simplificado. O resultado, uma fórmula tripla de
recorrência, extremamente simples e que não envolve o cálculo da base ortonormal {v1 , . . . , vm }, é o chamado
método do gradiente conjugado (CG). Para obtê-lo, observamos primeiramente que os vetores pm são
A-conjugados (isto é, A-ortogonais):

5.9 Proposição.
hpi , pj iA = hApi , pj i = 0 (5.49)
para todos i 6= j.

Prova: Para provar isso, basta mostrar que


T
Pm APm
é uma matriz diagonal. Isso segue de
T −T T −1
Pm APm = Um Vm AVm Um
−T −1
= Um Tm Um
−T
= Um Lm
−T
e do fato que Um Lm é uma matriz triangular inferior (a inversa de uma matriz triangular superior é uma
matriz triangular superior e o produto de duas matrizes triangulares inferiores é uma matriz triangular
inferior) que é simétrica. ¥
Usando a notação padrão do método do gradiente conjugado (ou seja, agora os escalares αm , βm terão
um significado completamente diferente do anterior), reescrevemos (5.48) na forma

xm+1 = xm + αm pm , (5.50)
Rodney Josué Biezuner 90

de modo que os resı́duos satisfazem


rm+1 = rm − αm Apm . (5.51)
Como os resı́duos são ortogonais (Proposição 5.8), segue que hrm − αm Apm , rm i = 0, donde
hrm , rm i
αm = . (5.52)
hApm , rm i
Reescrevemos também (5.45) na forma
pm+1 = rm+1 + βm pm ; (5.53)
para isso usamos a Proposição 5.8 e fazemos uma mudança de escala nos vetores pm (isso não altera a
validade de (5.50), em que assumimos os vetores pm tomados já com a mudança de escala; assim os vetores
pm do algoritmo do gradiente conjugado considerado aqui também são diferentes dos vetores considerados
acima no algoritmo de Lanczos, sendo múltiplos adequados destes). Daı́, como
­ m+1 ® ­ ®
r + βm pm , Apm = pm+1 , Apm = 0,
segue que ­ ®
Apm , rm+1
βm =− .
hApm , pm i
Observe porém que ­ ®
hApm , rm i = Apm , pm − βm pm−1 = hApm , pm i , (5.54)
enquanto que de (5.51) temos ¡ m+1 ¢
Apm = −αm
−1
r − rm .
Portanto, usando a ortogonalidade dos resı́duos, podemos escrever
­ m m+1 ® ­ m+1 m+1 ®
Ap , r r ,r
βm = − m m
= . (5.55)
hAp , r i hr , rm i
m

Além disso, usando (5.54) também podemos reescrever (5.52) na forma


hrm , rm i
αm = . (5.56)
hApm , pm i
Estas últimas fórmulas para αm e βm são muito mais convenientes para o algoritmo do gradiente conjugado:
Algoritmo do Gradiente Conjugado
Inicialize x0 ;
Atribua b;
r ← b − Ax0 ;
p ← r; ­ ®
current hr, ri ← r0 , r0 ;
Atribua o limite de tolerância e o número máximo de iterações;
N = 0; //número de iterações.
Faça até que o limite de tolerância seja atingido
ou
 até o número máximo de iterações
Calcule Ap;
 α ← current hr, ri / hp, Api ;

 x ← x + αp;

 r ← r − αAp;

 β ← hr, ri /current hr, ri ;

 p ← r + βp;

 current hr, ri ← hr, ri ;
N + +;
fim do laço
Rodney Josué Biezuner 91

5.8 Método do Gradiente Conjugado como um Método de Descida


O método do gradiente conjugado é uma das mais conhecidas e usadas técnicas iterativas para resolver sis-
temas lineares envolvendo matrizes simétricas esparsas, dada sua eficiência e simplicidade de implementação.
Como vimos na seção anterior, ele é matematicamente equivalente ao FOM. No que se segue, veremos uma
descrição alternativa do método CG, em que ele é visto como uma modificação do método de descida mais
acentuada (método do gradiente).
Os métodos iterativos lineares básicos e os métodos de descida que vimos anteriormente são limitados
pela sua falta de memória, no sentido de que apenas informação sobre xk é usada para obter xk+1 . Toda a
informação sobre as iterações anteriores é perdida. O método do gradiente conjugado é uma variação simples
do método da descida mais acentuada que funciona melhor porque a informação obtida através das iterações
anteriores é utilizada.
Para entender como isso funciona, observe que depois de m iterações xk+1 = xk + αk pk de um método
de descida temos
xm = x0 + α0 p0 + α1 p1 + . . . + αm−1 pm−1 ,
© ª
de modo que xm está no subespaço afim gerado pelo chute inicial x0 e pelos vetores p0 , p1 , . . . , pm−1 .
Enquanto o método da descida mais acentuada minimiza o funcional quadrático de energia f associado ao
sistema Ax = b apenas ao longo das m ­retas xk + αk pk , ®cuja união constitui apenas um pequeno subconjunto
0 0 1
do subespaço afim m-dimensional­ 0 1x + p m−1 , p ,®. . . , pm−1 , o método do gradiente conjugado minimiza f sobre
0
todo o subespaço afim x + p , p , . . . , p .
Para definir as direções de busca do método do gradiente conjugado (que é, antes de mais nada, um método
de descida), começamos dando uma prova mais simples da Proposição 4.4 que não utiliza a linguagem de
métodos de projeção:
5.10 Teorema. Seja A ∈ Mn (R) uma matriz simétrica positiva definida e b ∈ Rn . Então, o funcional
quadrático de energia associado ao sistema Ax = b pode ser escrito na forma
1 2 1 2
f (y) =
kekA − kxkA . (5.57)
2 2
onde e = x − y é o erro algébrico. Em particular, minimizar o funcional quadrático f é equivalente a
minimizar a A-norma do erro.
Prova: Pela regra do paralelogramo, temos
2 2 2 2
kx + ykA + kx − ykA = 2 kxkA + 2 kykA ,
donde
2 2 2 2 2
2 kykA = kx − ykA + kxkA + 2 hy, xiA + kykA − 2 kxkA
2 2 2
= kx − ykA + 2 hy, xiA − kxkA + kykA ,
ou
2 2 2
kykA − 2 hy, xiA = kx − ykA − kxkA .
Logo,
1 2 1 2 1 2
f (y) = kykA − hy, xiA = kekA − kxkA . (5.58)
2 2 2
¥
Em um método de descida, depois de m iterações temos:
em = x − xm
¡ ¢
= x − x0 − α0 p0 + α1 p1 + . . . + αm−1 pm−1
m−1
X
= e0 − αi pi .
i=0
Rodney Josué Biezuner 92

Minimizar kem kA é portanto equivalente a minimizar


° °
° m−1 °
° 0 X i°
°e − αi p ° ,
° °
i=0 A

0
­o 0que1 por sua
m−1
vez
® é equivalente a encontrar a melhor aproximação do vetor e no subespaço Wm =
p ,p ,...,p . Esta é dada pelo lema da melhor aproximação, que enunciamos em detalhe por co-
modidade:

5.11 Proposição. (Lema da Melhor Aproximação) Sejam A ∈ Mn (R) uma matriz simétrica positiva
definida, v ∈ Rn e W um subsespaço de Rn . Então existe um único w ∈ W tal que

kv − wkA = min kv − zkA .


z∈W

O vetor w é caracterizado pela condição v − w ⊥A W .


P
m−1
Segue deste resultado que kem kA é minimizado quando escolhemos p = αi pi ∈ Wm tal que em = e0 − p
i=0
satisfaz
em ⊥A pi para i = 1, . . . , m − 1. (5.59)
Nosso objetivo então é desenvolver um método em que o erro a cada passo é conjugado com todas as direções
de busca anteriores. Como fazer isso? Pelo Lema 4.11, cujo enunciado repetimos a seguir como Proposição
5.12 para facilitar a consulta, sabemos que em qualquer método de descida em que a busca na reta é exata
satisfaz automaticamente em ⊥A pm−1 , isto é, (5.59) é válido para a última iteração (o erro da iteração
presente é A-ortogonal à direção de busca da iteração anterior):

5.12 Proposição. Seja xm+1 = xm + αm pm obtido através de uma busca na reta exata. Então

rm+1 ⊥ pm

e
em+1 ⊥A pm .

Fazendo uma busca exata na reta x0 + tp0 obtemos o escalar α0 e

x1 = x0 + α0 p0

Pela Proposição 5.12 segue que e1 ⊥A p0 . Como

e2 = x − x2 = x − x1 − α1 p1 = e1 − α1 p1 ,

para que tenhamos e2 ⊥A p0 é necessário escolher p1 conjugado a p0 . Se isso foi feito, fazendo em seguida
uma busca exata na reta x1 + tp1 obtemos o escalar α1 ,

x1 = x0 + α0 p0

e, pela Proposição 5.12, e2 ⊥A p1 . No m-ésimo passo, como

em = x − xm = x − xm−1 − αm−1 pm−1

ou seja,
em = em−1 − αm−1 pm−1 , (5.60)
m 0 m−2 m
para que o erro e seja conjugado aos vetores p , . . . , p basta escolher a direção de busca p conjugada
a p0 , . . . , pm−1 ; para assegurar que em também seja conjugado ao vetor pm−1 , basta fazer uma busca exata
Rodney Josué Biezuner 93

na reta xm−1 + tpm−1 . Assim, uma condição necessária para obter (5.59) é escolher as direções de busca de
tal forma que
pi ⊥A pj para todos i 6= j. (5.61)
Um método com estas caracterı́sticas é chamado um método de direções conjugadas. Estes resultados
são resumidos na proposição a seguir:

5.13 Teorema. Se um método emprega direções de busca conjugadas e performa buscas na reta exatas,
então
em ⊥A pi para i = 1, . . . , m − 1,
para todo m. Conseqüentemente ° °
kem kA = min °e0 − p°A ,
p∈Wm
­ ®
onde Wm = p0 , p1 , . . . , pm−1 .

Prova: A demonstração é por indução. Para m = 1, temos e1 ⊥A p0 pela Proposição 5.12 porque a busca
na reta é exata. Em seguida, assuma em ⊥A pi para i = 1, . . . , m − 1; queremos mostrar que em+1 ⊥A pi
para i = 1, . . . , m. Como
em+1 = em − αm pm ,
para i = 1, . . . , m − 1 temos
­ m+1 i ® ­ ® ­ ® ­ ®
e , p A = em − αm pm , pi A = em , pi A − αm pm , pi A = 0 − 0 = 0

porque as direções de busca são conjugadas. em+1 ⊥A pm segue novamente da Proposição 5.12. ¥
Quando a direção inicial é dada pelo vetor gradiente de f , como na primeira iteração do método da descida
mais acentuada, obtemos o método do gradiente conjugado. As direções subseqüentes são escolhidas através
de A-ortogonalizar o resı́duo (ou vetor gradiente de f , que é a direção de busca em cada iteração do método
da descida mais acentuada) com todas as direções de busca anteriores, o que pode ser feito simplesmente
utilizando-se o algoritmo de Gram-Schmidt que no método do gradiente conjugado produz o mesmo resultado
que um método mais estável como o MGS, como veremos. Dado um chute inicial p0 , a primeira direção é
¡ ¢
p0 = −∇f x0 = b − Ax0 = r0

ou seja, a direção inicial é o primeiro resı́duo:

p0 = r0 . (5.62)

Depois de m passos com direções de busca conjugadas p0 , . . . , pm , escolhemos


m
X
pm+1 = rm+1 − cmi pi (5.63)
i=0

onde os cmi são dados pelo algoritmo de Gram-Schmidt:


­ m+1 i ®
r ,p A
cmi = . (5.64)
hp , pi iA
i

de forma que pm+1 ⊥A pi para todos i = 1, . . . , m. Felizmente, como veremos a seguir depois de algum
trabalho preliminar (Corolário 5.17), cmi = 0 para todo i exceto i = m, o que torna necessário que apenas
a direção de busca mais recente pm seja armazenada na memória do computador, o que garante que a
implementação do gradiente conjugado é eficiente:
­ m+1 m ® ­ m+1 ®
m+1 m+1
r ,p A m m+1 r , Apm m
p =r − p =r − p (5.65)
hpm , pm iA hpm , Apm i
Rodney Josué Biezuner 94

ou, definindo ­ ®
rm+1 , Apm
βm =− , (5.66)
hpm , Apm i
temos que
pm+1 = rm+1 + βm pm . (5.67)
Esta é a modificação do método do gradiente conjugado em relação ao método da descida mais acentuada,
no qual tomamos pm+1 = rm+1 .
Podemos obter uma expressão mais simples para o escalar βm , em função apenas dos resı́duos. Com
efeito, temos ­ m+1 m+1 ® ­ m+1 m ® ­ ® ­ ®
r ,r = r , r − αm rm+1 , Apm = −αm rm+1 , Apm
porque os resı́duos obtidos através do método do gradiente conjugado são mutualmente ortogonais (veja
Corolário 5.16), logo ­ m+1 ® ­ m+1 m+1 ®
r , Apm r ,r
β=− m m
= .
hp , Ap i αm hp , Apm i
m

Temos ­ m ®
hpm , rm i r + βpm−1 , rm hrm , rm i
αm = m m
= m m
= m ,
hp , Ap i hp , Ap i hp , Apm i
­ ®
porque pm−1 , rm = 0 pela Proposição 5.12, logo

hrm , rm i
αm = . (5.68)
hpm , Apm i
Portanto ­ ®
rm+1 , rm+1
β= . (5.69)
hrm , rm i
Podemos obter um algoritmo ainda mais eficiente para o método do gradiente conjugado se observarmos que
para calcular o resı́duo rm+1 = b − Axm+1 em cada iteração não é necessário calcular Axm+1 explicitamente;
de fato, como vimos na demonstração da Proposição 5.12, temos rm+1 = rm −αm Apm . Desta forma, obtemos
o mesmo algoritmo do gradiente conjugado obtido na seção anterior a partir do algoritmo de Lanczos.

5.8.1 Convergência do Método do Gradiente Conjugado em Aritmética Exata


Vamos agora provar uma série de resultados com o objetivo principal de demonstrar o fato mencionado
acima que cmi = 0 para todo i = 1, . . . , m − 1 e também que o método do gradiente conjugado converge em
aritmética exata em precisas n iterações se a matriz A tem tamanho n.

5.14 Teorema. Depois de j iterações do algoritmo do gradiente conjugado (com rm 6= 0 em cada iteração),
temos ­ 0 1 ® ­ ® ¡ ¢
p , p , . . . , pj−1 = r0 , r1 , . . . , rj−1 = Kj A, r0 .

Prova: A demonstração é por indução. O resultado é trivial para j = 0, pois p0 = r0 . Assuma o resultado
válido para j − 1. Em primeiro lugar, mostraremos que
­ 0 1 ® ¡ ¢
r , r , . . . , rj ⊂ Kj+1 A, r0 . (5.70)
¡ ¢
Em vista da ¡ hipótese
¢ de indução,
¡ ¢ basta mostrar que rj ∈ Kj+1 A, r0 . Como rj = rj−1 −¡αj−1 Ap ¢
j−1
e
j−1 0 0 j−1 0
r ∈ Kj A, r ⊂ Kj+1 A, r por hipótese¡ de indução, ¢ basta provar que Ap ∈ K j+1 A, r . Mas,
também por hipótese de indução, pj−1 ∈ Kj+1 A, r0 , logo
¡ ¢ ­ ® ­ ® ¡ ¢
Apj−1 ∈ Kj A, Ar0 = Ar0 , A2 r0 , . . . , Aj r0 ⊂ r0 , Ar0 , A2 r0 , . . . , Aj r0 = Kj+1 A, r0 .
Rodney Josué Biezuner 95

Em seguida, mostraremos que


­ 0 1 ® ­ ®
p , p , . . . , pj ⊂ r0 , r1 , . . . , rj . (5.71)
­ ®
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.
Até aqui provamos que
­ 0 1 ® ­ ® ¡ ¢
p , p , . . . , pj ⊂ r0 , r1 , . . . , rj ⊂ Kj+1 A, r0 . (5.72)

Para provar que eles são iguais, basta mostrar que eles têm a mesma dimensão. Isso decorre de
­ ®
dim r0 , r1 , . . . , rj 6 j + 1,
¡ ¢
dim Kj+1 A, r0 6 j + 1

e ­ ®
dim p0 , p1 , . . . , pj = j + 1,
o último porque os vetores p0 , p1 , . . . , pj são vetores não-nulos A-ortogonais. ¥

5.15 Corolário. Depois de j iterações do algoritmo do gradiente conjugado, temos


¡ ¢
ej ⊥A Kj A, r0

para todo j.

Prova: Segue imediatamente do teorema anterior e do Teorema 5.13. ¥

5.16 Corolário. Depois de j iterações do algoritmo do gradiente conjugado, temos


¡ ¢
rj ⊥ Kj A, r0

para todo j.

Prova: Em vista do Teorema 5.14, basta provar que rj ⊥ p0 , p1 , . . . , pj−1 para todo j. Como Aej+1 = rj+1 ,
­ j+1 i ® ­ j+1 i ® ­ j+1 i ®
r , p = Ae , p = e , p A = 0

para todo i = 1, . . . , j − 1, como vimos na demonstração do Teorema 5.13. ¥

5.17 Corolário. cmi = 0 para todo i = 1, . . . , m − 1.

Prova: Temos que provar que ­ m+1 i ® ­ ®


r , p A = rm+1 , Api = 0
­ ® ­ ® ¡ ¢
para todos i = 1, . . . , m − 1. Pelo Teorema 5.14, pi ∈ p0 , p1 , . . . , pi = r0 , Ar0 , . . . , Ai r = Ki+1 A, r0 ,
logo ­ ® ¡ ¢ ¡ ¢
Api ∈ Ar0 , A2 r0 , . . . , Ai+1 r ⊂ Ki+2 A, r0 ⊂ Km+1 A, r0
e o resultado segue do corolário anterior. ¥

5.18 Teorema. Seja A ∈ Mn (R) uma matriz simétrica positiva definida. Então o método do gradiente
conjugado converge em n iterações.

Prova: Se fizemos n − 1 iterações para obter x, pelo Corolário 5.16 os vetores r0 , r1 , . . . , rn−1 formam uma
base ortogonal
­ para Rn . Depois ® den mais uma iteração, de acordo com este mesmo corolário o resı́duo rn
n 0 1 n−1 n
satisfaz r ⊥ r , r , . . . , r = R , logo r = 0. ¥
Rodney Josué Biezuner 96

5.9 Velocidade de Convergência do Método do Gradiente Conju-


gado
Na maioria das aplicações o método do gradiente conjugado converge ainda mais rápido do que as n iterações
previstas pelo Teorema 5.18, se apenas uma boa aproximação é requerida. Para obter uma estimativa da
velocidade de convergência do método do gradiente conjugado, precisamos desenvolver algumas ferramentas
teóricas antes.

5.9.1 Polinômios de Chebyshev


Polinômios de Chebyshev são provavelmente os mais úteis polinômios na Teoria de Aproximação, a área
que se ocupa em determinar como melhor aproximar funções através de funções mais simples (tais como
polinômios). Os polinômios de Chebyshev do primeiro tipo surgiram inicialmente como soluções da equação
de Chebyshev: ¡ ¢
1 − x2 y 00 − xy 0 + n2 y = 0

5.19 Definição. O polinômio de Chebyshev do primeiro tipo de grau k é o polinômio de grau k Ck :


[−1, 1] −→ R definido por £ ¤
Ck (t) = cos k cos−1 t .

Que Ck é de fato um polinômio de grau k pode ser visto através da seguinte fórmula de recorrência:

5.20 Proposição. Vale a seguinte fórmula de recorrência de três termos para os polinômios de Chebyshev

C0 (t) = 1,
C1 (t) = t, (5.73)
Ck+1 (t) = 2tCk (t) − Ck−1 (t) .

Em particular, Ck (t) é um polinômio real de grau k, Ck (t) é uma função par se k é par e uma função
ı́mpar se k é ı́mpar.

Prova: Usando a identidade trigonométrica

cos [(k + 1) θ] + cos [(k − 1) θ] = 2 cos θ cos kθ,

segue que

Ck+1 (t) + Ck−1 (t) = cos [(k + 1) arccos t] + cos [(k − 1) arccos t]
= 2 cos (arccos t) cos [k arccos t]
= 2tCk (t) .

¥
A fórmula de recorrência da Proposição 5.20 permite estender naturalmente o domı́nio dos polinômios de
Chebyshev à reta toda. Isso também pode ser feito estendendo a definição trigonométrica:
½ £ ¤
cosh k cosh−1 t se t > 1,
Ck (t) = k £ −1
¤ (5.74)
(−1) cosh k cosh |t| se t 6 −1.

De fato, usando a identidade trigonométrica hiperbólica

cosh [(k + 1) θ] + cosh [(k − 1) θ] = 2 cosh θ cosh kθ,


Rodney Josué Biezuner 97

vemos que vale a mesma fórmula de recorrência da Definição 5.19. O polinômio de Chebyshev Ck (t) possui
k raı́zes simples, todas localizadas no intervalo [−1, 1] dadas por
µ ¶
2j − 1
tj = cos π , j = 1, . . . , k,
2k
como pode ser verificado diretamente da definição. Em particular, os polinômios de Chebyshev não se anulam
fora deste intervalo. Observe também que |Ck (t)| 6 1 para t ∈ [−1, 1]. À tı́tulo de informação, eles formam
uma base ortogonal no espaço de funções apropriado no sentido que

Z 1  0 se k 6= l,
dt
Ck (t) Cl (t) √ = π se k = l = 0,
−1 1 − t2 
π/2 se k = l 6= 0.
5.21 Proposição. Se |t| > 1, vale
· ´−k ¸
1 ³ p
2
´k ³ p
2
Ck (t) = t+ t −1 + t+ t −1 .
2

Prova: Como resultado de (5.74), segue que


£ ¤ 1 h k cosh−1 t −1
i
Ck (t) = cosh k cosh−1 t = e + e−k cosh t
· 2 ¸
1 ³ cosh−1 t ´k ³ cosh−1 t ´−k
= e + e .
2
Por outro lado,
ex = cosh x + sinh x
e
cosh2 x − sinh2 x = 1,
logo
−1 ¡ ¢ ¡ ¢
ecosh t
= cosh cosh−1 t + sinh cosh−1 t
q ¡ ¢
= t + cosh2 cosh−1 t − 1
p
= t + t2 − 1,
donde segue o resultado. ¥
Em particular, para valores grandes de k pode-se usar a aproximação
1³ p ´k
Ck (t) ' t + t2 − 1 .
2
para |t| > 1. No que se segue denotaremos o subespaço de todos os polinômios reais de grau menor ou igual
a k por Pk [x]. O seguinte teorema é um importante resultado em Teoria da Aproximação:
5.22 Teorema. Seja [a, b] ⊂ R um intervalo não vazio e c ∈
/ [a, b]. Então o mı́nimo
µk = min max |p (x)|
p∈Pk [x] x∈[a,b]
p(c)=1

é atingido pelo polinômio µ ¶


x−b
Ck 1 + 2
bk (x) := b−a
C µ ¶.
c−b
Ck 1 + 2
b−a
Rodney Josué Biezuner 98

Consequentemente,
1
µk = ¯¯ µ ¶¯ .
¯ (5.75)
¯C k 1 + 2 c − b ¯
¯ b−a ¯
Prova: Denote por
a+b
m :=
2
o ponto médio do intervalo [a, b]. Então
x−b b − a + 2x − 2b 2x − (a + b)
1+2 = =
b−a b−a b−a
x−m
=2 .
b−a
Assim, se c ∈
/ [a, b] então ¯ ¯
¯ c − m¯
¯2 ¯
¯ b−a ¯>1
bk (x) nunca se anula. Por outro lado, se x ∈ [a, b] então
de modo que o denominador na expressão de C
¯ ¯
¯ x − m¯
¯2 ¯
¯ b − a ¯ 6 1.
Como
max |Ck (t)| = 1,
t∈[−1,1]

segue (5.75).
bk , precisamos mostrar que se pk ∈ Pk [x]
Portanto, para provar que o mı́nimo é atingido pelo polinômio C
é tal que p (c) = 1 e
max |p (x)| 6 µk ,
x∈[a,b]
bk . De fato, pela definição trigonométrica dos polinômios de Chebyshev, Ck (t) atinge os valores
então pk = C
±1 alternadamente nos pontos µ ¶
j
tj = cos π , j = 0, 1, . . . , k.
k
Correspondentemente, C bk (x) atinge os valores ±µk nos pontos
· µ ¶¸
1 j
xj = a + b + (b − a) cos π , j = 0, 1, . . . , k
2 k
dentro do intervalo [a, b]. Como ¯ ¯
¯b ¯
|pk (xj )| 6 µk = ¯Ck (xj )¯ ,

bk − pk de grau menor ou igual a k satisfaz


concluı́mos que o polinômio diferença rk = C
rk (xj ) > 0 se j é par,
rk (xj ) 6 0 se j é ı́mpar.
Pelo teorema do valor intermediário, rk possui pelo menos uma raiz em cada subintervalo [xj , xj+1 ]. Mesmo
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
multiplicidade 2 (pois rk0 (xj ) = 0, isto é, xj também é uma raiz da derivada de rk ). Consequentemente, o
polinômio rk tem pelo menos k raı́zes em [a, b]. Mas, como
bk (c) − pk (c) = 1 − 1 = 0,
rk (c) = C
c∈/ [a, b] é a (k + 1)-ésima raiz de rk . Isso constitui uma contradição, a menos que rk ≡ 0, o que implica
pk = Cbk . ¥
Rodney Josué Biezuner 99

5.9.2 Velocidade de Convergência do CG


5.23 Lema. Seja A ∈ Mn (R) uma matriz simétrica positiva definida. Então o erro algébrico do método do
gradiente conjugado satisfaz ° ° ° °
°ek ° = min °p (A) e0 ° .
A A
p∈Pk [x]
p(0)=1

Prova: Pelos Teoremas¡ 5.13 ¢e 5.14, o método


¡ ¢ do gradiente conjugado minimiza a A-norma do erro no
subespaço afim e0 + Kk A, r0 . Mas Kk A, r0 é o conjunto de todos os vetores da forma q (A) r0 onde
q é um polinômio
¡ ¢ de grau menor ou igual a k − 1, enquanto que r0 = Ae0 . Portanto, o subespaço afim
e + Kk A, r consiste de todos os vetores da forma e0 + q (A) Ae0 , ou seja, de todos os vetores na forma
0 0

p (A) e0 onde p é um polinômio de grau menor ou igual a k tal que p (0) = 1. ¥


5.24 Teorema. Seja A ∈ Mn (R) uma matriz simétrica positiva definida. Então o erro algébrico do método
do gradiente conjugado satisfaz
Ãp !k
° k° κ (A) − 1 ° 0°
°e ° 6 2 p °e ° . (5.76)
A A
κ (A) + 1

Prova: Denote por λ1 6 . . . 6 λn os autovalores de A e por v1 , . . . , vn uma base A-ortonormal de autovetores


correspondentes. Escrevendo
Xn
e0 = ai vi ,
i=1
segue que
n
X
p (A) e0 = ai p (λi ) vi .
i=1
Assim,
n
X µ ¶ µ ¶
° ° ° 0 °2 ° 0 °2
°p (A) e0 °2 = 2
a2i p (λi ) 6 max p (λi )
2 °e ° 6 max p (x)
2 °e ° ,
A 16i6n A x∈[λ1 ,λn ] A
i=1
donde, pelo lema anterior, ° k° ° °
°e ° 6 min max p (x) °e0 °A .
A p∈Pk [x] x∈[λ1 ,λn ]
p(0)=1

Segue agora do Lema 5.22 que ° k° ° °


°e ° 6 µ °e0 °
A A
onde
1 1 1
µ = ¯¯ µ ¶¯ = ¯ µ
¯ ¯
¶¯ =
¯
µ ¶
¯C k 1 − 2 λ n ¯ ¯C k − λ n + λ 1 ¯ λ n + λ1
¯ Ck
λn − λ1 ¯ ¯ λn − λ1 ¯ λn − λ1
1
= µ ¶,
κ (A) + 1
Ck
κ (A) − 1
(para obter a última igualdade usamos a simetria dos polinômios de Chebyshev, como visto na Proposição
5.20, e a sua positividade no intervalo [1, +∞) que decorre diretamente da fórmula da Proposição 5.21). Pela
Proposição 5.21 e o comentário que se segue, temos
 sµ k
µ ¶ ¶2
κ (A) + 1 1 κ (A) + 1 κ (A) + 1
Ck '  + − 1 ,
κ (A) − 1 2 κ (A) − 1 κ (A) − 1
Rodney Josué Biezuner 100

donde
 sµ −k
¶2
° k° κ (A) + 1 κ (A) + 1 ° °
°e ° 6 2  + − 1 °e0 °A
A κ (A) − 1 κ (A) − 1
 q −k
2 2
κ (A) + 1 + (κ (A) + 1) − (κ (A) − 1) ° 0°
= 2  °e °
κ (A) − 1 A

à p !−k
κ (A) + 1 + 2 κ (A) ° 0°
=2 °e °
κ (A) − 1 A

 ³p ´2 −k
 κ (A) + 1 ° 0°
= 2  ³p ´ ³p ´
 °e °A
κ (A) + 1 κ (A) − 1
Ãp !k
κ (A) − 1 ° 0°
=2 p °e ° .
A
κ (A) + 1

¥
Esta estimativa é bem melhor que a estimativa do método da descida mais acentuada (o número de condição
é subtituido aqui pela sua raiz quadrada), mostrando que o método do gradiente conjugado é bem mais
rápido. Por outro lado, como naquele método, a velocidade de convergência do método CG dependerá
fortemente da boa ou má condicionalidade da matriz A.
Uma comparação entre a velocidade de convergência dos métodos de gradiente para a matriz de dis-
cretização da fórmula de cinco pontos aplicada ao mesmo problema do Capı́tulo 3 (Seção 3.1.4) é dada na
tabela a seguir [Watkins]. O tamanho das matrizes usadas é indicado na linha superior da tabela e o número
de iterações necessárias para obter um erro algébrico menor normalizado menor que igual a 10−8 é dado
para cada método.

n = 81 n = 361 n = 1521
Descida Mais Acentuada 304 1114 4010
Gradiente Conjugado 29 60 118

No caso desta matriz de discretização temos

(n − 1) π
sen2 π π∆x 4
κ (A) = 2n = cot2 = cot2 ≈ 2 2
π 2n 2 π ∆x
sen2
2n
de modo que p
κ (A) − 1 1 − π∆x/2
p ≈ ≈ 1 − π∆x,
κ (A) + 1 1 + π∆x/2
o que dá uma velocidade de convergência para o método do gradiente conjugado duas vezes maior que a
do método SOR com o fator de relaxamento ótimo. No entanto, deve-se ter em mente que enquanto que a
taxa de covergência que obtivemos para o método SOR é precisa, a estimativa de erro (5.76) do Teorema
5.24 para o método do gradiente conjugado é apenas um limitante superior grosseiro e pode ser melhorada
(veja [Watkins] para algumas estimativas melhoradas). De fato, embora a taxa de convergência assintótica
(5.76) dependa apenas do número de condição, e portanto apenas dos autovalores extremais, a convergência
do método do gradiente conjugado é influenciada pelo espectro inteiro, como o próximo resultado ilustra:
Rodney Josué Biezuner 101

5.25 Teorema. Seja A ∈ Mn (R) uma matriz simétrica positiva definida com apenas m autovalores distin-
tos. Então o método do gradiente conjugado converge em m iterações.

Prova: Sejam λ1 , . . . , λm os m autovalores distintos de A. Seja

p (x) = a (x − λ1 ) . . . (x − λm )

um polinômio de grau m onde a é escolhido de tal forma a produzir p (0) = 1. Como p (λi ) = 0 para todo i,
pela demonstração do Teorema 5.24 (e usando a mesma notação de lá) segue que
n
X
p (A) e0 = ai p (λi ) vi = 0.
i=1

Logo, pelo Lema 5.23, temos que em = 0. ¥


Mesmo se isso não ocorre, se os autovalores de A não estão distribuı́dos uniformemente em [λmin , λmax ] mas
se acumulam em subintervalos de [λmin , λmax ], pode-se obter melhores taxas de convergência do que (5.76)
(veja [Hackbusch] e [Watkins]).

5.10 Exercı́cios
5.1 Considere os vetores      
1 1 1
 ε   0   0 
v1 =  
 0 , v2 =  
 ε  e v3 =  
 0 ,
0 0 ε
onde ε ¿ 1. Estes vetores são aproximadamente linearmente independentes.
a) Use o método de Gram-Schmidt clássico para ortogonalizar estes vetores, usando a aproximação
1 + ε2 = 1 (um computador faria erros de arredondamento adicionais). Verifique que hw2 , w3 i = 1/2 e
portanto estes vetores estão muito longe de serem ortogonais.
b) Use o método de Gram-Schmidt modificado para ortogonalizar estes vetores,√ também usando √a
aproximação 1 + ε2 = 1. Verifique que hw2 , w3 i = 0 e que hw1 , w2 i = −ε/ 2, hw1 , w3 i = −ε/ 6;
portanto estes vetores estão muito próximos de serem ortogonais.
5.2 Mostre que os algoritmos de Gram-Schmidt clássico e modificado são matematicamente equivalentes
em aritmética exata, isto é, produzem os mesmos vetores.
5.3 Prove que os vetores v1 , . . . , vm gerados pelo algoritmo de Arnoldi com MGS formam uma base ortonor-
mal para o subespaço de Krylov Km (A, v).
5.4 Prove que o inversa de uma matriz triangular superior é uma matriz triangular superior. Prove a
afirmativa equivalente para matrizes triangulares inferiores.
5.5 Prove que o produto de matrizes triangulares superiores é uma matriz triangular superior. Prove a
afirmativa equivalente para matrizes triangulares inferiores.
Capı́tulo 6

O Problema do Autovalor

Por causa do teorema de Abel com respeito à inexistência de uma fórmula para calcular as raı́zes de um
polinômio de grau maior ou igual a 5, não existem métodos diretos para calcular autovalores. Todo método
para calcular autovalores é necessariamente um método iterativo.
De fato, dado um polinômio mônico
p (z) = z n + an−1 z n−1 + . . . + a1 z + a0 ,
n
seu determinante é igual a (−1) vezes o determinante da matriz
 
−z −a0
 1 −z −a 1 
 
 1 −z −a 2 
 
 .. ,
 1 −z . 
 
 . . 
 .. .. −an−1 
1 −z − an−1
logo as raı́zes de p são os autovalores da matriz
 
0 −a0
 1 0 −a1 
 
 1 0 −a2 
 
 .. .
 1 0 . 
 
 .. .. 
 . . −an−1 
1 −an−1
Portanto, o problema de encontrar as raı́zes de um polinômio é equivalente ao problema de encontrar os
autovalores de uma matriz.

6.1 Caracterização Variacional dos Autovalores de uma Matriz


Simétrica: Quociente de Rayleigh
Os autovalores de uma matriz simétrica podem ser caracterizados variacionalmente.
6.1 Definição. Seja A ∈ Mn (R) uma matriz simétrica. Dado x ∈ Rn , o quociente
hAx, xi
r (x) = 2
kxk
102
Rodney Josué Biezuner 103

é chamado o quociente de Rayleigh de x. A função r : Rn −→ R é chamada o funcional de


Rayleigh (ou também o quociente de Rayleigh).
6.2 Teorema. (Princı́pio de Rayleigh) Seja A ∈ Mn (R) uma matriz simétrica. Se x é um ponto crı́tico do
funcional de Rayleigh, então x é um autovetor de A e r (x) é o autovalor correspondente.
Prova: Escrevendo P
aij xi xj
i,j=1
r (x) = P 2
xi
i,j=1

Temos P P
2
2 kxk aik xi − 2xk aij xi xj
∂r i=1 i,j=1 2
(x) = 4 = 2 [(Ax)k − r (x) xk ] ,
∂xk kxk kxk
de modo que
2
∇r (x) = 2 [Ax − r (x) x] .
kxk
Portanto,
∇r (x) = 0 se e somente se Ax = r (x) x.
¥
6.3 Corolário. O quociente de Rayleigh é uma aproximação de segunda ordem para os autovalores de A,
ou seja, se v é um autovetor de A, segue que
³ ´
2
r (x) − r (v) = O kx − vk quando x → v

Prova: Segue da fórmula de Taylor, já que ∇r (v) = 0. ¥


Podemos obter uma descrição geométrica mais precisa dos pontos crı́ticos do funcional de Rayleigh:
6.4 Teorema. (Princı́pio de Rayleigh) Seja A ∈ Mn (R) uma matriz simétrica. Sejam λ1 6 . . . 6 λn os
autovalores de A, de modo que λ1 é o menor autovalor de A e λn é o maior autovalor de A. Então
hAx, xi
λ1 = min 2 (6.1)
x∈R n
kxk
x6=0

e
hAx, xi
λn = max 2 (6.2)
x∈Rn kxk
x6=0

Prova: Seja B = {v1 , . . . , vn } uma base ortonormal de autovetores de A correspondentes aos autovalores
P
n
λ1 , . . . , λn . Então, para todo x = xi vi temos
i=1
n
X
2
λ1 kxk = λ1 x2i
i=1
n
X n
X n
X
6 λi x2i = λi xi xj hvi , vj i = hλi xi vi , xj vj i
i=1 i,j=1 i,j=1
* n n
+ * n n
+ * Ã n
! n
+
X X X X X X
= λi xi vi , xj vj = xi Avi , xj vj = A xi vi , xj vj
i=1 j=1 i=1 j=1 i=1 j=1

= hAx, xi .
Rodney Josué Biezuner 104

Portanto, para todo x ∈ Rn , x 6= 0, vale


hAx, xi
λ1 6 2 .
kxk
O mı́nimo é atingido em x = v1 ou em qualquer outro autovetor de A associado a λ1 . Da mesma forma,
obtemos
Xn n
X
2
λn kxk = λn x2i > λi x2i = hAx, xi .
i=1 i=1

¥
Os outros autovalores de A, λ2 , . . . , λn−1 , são pontos de sela e podem ser encontrado através de um
princı́pio de minimax:

6.5 Teorema. (Princı́pio de Minimax para Autovalores) Seja A ∈ Mn (R) uma matriz simétrica. Sejam
λ1 6 . . . 6 λn os autovalores de A. Então
 

λj = min  max hAx, xi . (6.3)


W ⊂Rn subespaço x∈W
dim W =j kxk=1

Prova: Seja W ⊂ Rn um subespaço de dimensão j. Primeiro mostraremos que

max hAx, xi > λj .


x∈W
kxk=1

Seja B = {v1 , . . . , vn } uma base ortonormal de autovetores de A correspondentes aos autovalores λ1 , . . . , λn .


Seja Z = hv1 , . . . , vj−1 i. Como Z ⊥ = hvj , . . . , vn i, temos
¡ ¢ ¡ ¢ ¡ ¢
n > dim W + Z ⊥ = dim W + dim Z ⊥ − dim W ∩ Z ⊥ = j + n − (j − 1) − dim W ∩ Z ⊥ ,

de modo que ¡ ¢
dim W ∩ Z ⊥ > 1
P
n P
n
2
e existe um vetor x ∈ W ∩ Z ⊥ tal que kxk = 1. Escrevendo x = xk vk , temos kxk = |xk | = 1, donde
k=j k=j
* n n
+ * n n
+ n
X X X X X
hAx, xi = xk Avk , xl vl = xk λk vk , x l vl = λk xk xl hvk , vl i
k=j l=j k=j l=j k,l=j
n
X n
X
2 2
= λk |xk | > λj |xk | = λj .
k=j k=j

Para completar a demonstração, devemos encontrar um subespaço W ⊂ Rn de dimensão j tal que


hAx, xi 6 λj para todo x ∈ W com kxk = 1. Tomemos W = hv1 , . . . , vj i. Temos
* j j
+ * j j
+ j
X X X X X
hAx, xi = xk Avk , xl vl = xk λk vk , xl vl = λk xk xl hvk , vl i
k=1 l=1 k=1 l=1 k,l=1
j
X j
X
2 2
= λk |xk | 6 λj |xk | = λj .
k=1 k=1

O minimax é atingido em vj . ¥
Rodney Josué Biezuner 105

6.2 Método das Potências


O método das potências ou método das iterações é o algoritmo mais simples para o cálculo de autovalores
de matrizes, mas ele pode encontrar apenas o maior autovalor (em módulo) de uma matriz A ∈ Mn (C),
chamado o autovalor dominante de A, desde que haja apenas um. Para simplificar a exposição, suponha
que A é uma matriz diagonalizável cujo maior autovalor (em módulo) é um autovalor simples (isto é, seu
autoespaço associado tem dimensão 1). Ordene os autovalores de A na forma

|λ1 | > |λ2 | > . . . > |λn |

e seja {v1 , . . . , vn } uma base correspondente de autovetores. Assim, λ1 é o autovalor dominante de A e


v1 um autovetor dominante. Quando A tem um autovalor dominante, este e um correspondente autovetor
dominante podem ser encontrados através do método das potências, que consiste essencialmente em tomar
um vetor v0 arbitrário e considerar as potências

v0 , Av0 , A2 v0 , . . . , Ak v0 , . . . (6.4)

É essencial que o vetor v0 possua uma componente na direção do autovetor dominante v1 . Este não é a
priori conhecido, mas se a escolha é arbitrária há grande probabilidade que isso ocorra na prática. De fato,
para quase todas as escolhas de v0 devemos ter
n
X
v0 = a i vi
i=1

com a1 6= 0; raramente uma escolha aleatória de v0 produzirá um vetor no subespaço hv2 , . . . , vn i. Temos
então
Xn
Ak v0 = ai λvi ,
i=1

donde escrevemos " µ ¶k #


n
X λi
Ak v0 = λk1 a1 v1 + ai vi .
i=2
λ1
° ° ° °
Embora °Ak v0 ° → ∞ se λ1 > 1 e °Ak v0 ° → 0 se λ1 < 1, como
µ ¶k
λi
→ 0,
λ1

para todo i = 2, . . . , n, segue que a sequência reescalada

Ak v0
→ a1 v1
λk1

converge para um autovetor dominante. No entanto, como o autovalor λ1 não é conhecido a priori, é
impossı́vel trabalhar com esta sequência. Portanto, trabalhamos ao invés com a sequência normalizada

Ak v0
wk = (6.5)
kAk v0 k

onde k·k é uma norma qualquer (por exemplo, a norma do máximo), que converge para um autovetor
dominante unitário.
Rodney Josué Biezuner 106

6.6 Proposição. Seja A ∈ Mn (C) uma matriz diagonalizável e assuma que o seu autovalor dominante λ1
é simples. Dado um vetor arbitrário v0 ∈ Cn que possui uma componente não-nula no autoespaço
associado a λ1 , defina a sequência

w0 = v0 ,
Awk
wk+1 = .
αk
onde
αk = kAwk k .
Então

wk → v1 ,
αk → λ1 ,

onde v1 é um autovetor dominante unitário. Além disso, a taxa assintótica de convergência é


µ¯ ¯¶
¯ λ2 ¯
O ¯¯ ¯¯ .
λ1
Se A é uma matriz simétrica real e definirmos

µk = hAwk , wk i ,

então
µk → λ1
com taxa assintótica de convergência ï ¯ !
¯ λ2 ¯2
O ¯¯ ¯¯ .
λ1

Prova: Temos
Ak v0
wk = ,
α
ek
° °
ek = °Ak v0 °.
ek = α1 . . . αk é simplesmente o escalar apropriado que normaliza o vetor Ak v0 , isto é, α
onde α
Escrevendo
Xn
v0 = a i vi ,
i=1
segue que "
Xn µ ¶k #
λk1 λi
wk = a1 v1 + ai vi .
α
ek i=2
λ 1

Como µ ¶k
n
X λi
a 1 v1 + ai vi → a1 v1
i=2
λ1
e wk sendo uma sequência unitária possui uma subsequência convergente, concluı́mos que wk converge para
um vetor unitário na direção de v1 .
Como
Awk = αek wk ,
tomando o limite em ambos os lados concluı́mos que

Av1 = (lim αk ) v1 ,
Rodney Josué Biezuner 107

logo lim αk = λ1 .
Finalmente, a taxa assintótica de convergência segue de
° µ ¶k ° ¯ ¯k à n !¯ ¯ ¯ ¯k
°X n
λi ° X n
¯ λi ¯ X ¯ λ2 ¯k ¯ λ2 ¯
° ° ¯ ¯
° ai vi ° 6 |ai | ¯ ¯ kvi k 6 |ai | kvi k ¯ ¯ 6 C (v0 ) ¯¯ ¯¯ .
¯ ¯
° λ1 ° λ1 λ1 λ1
i=2 i=2 i=2

O caso A simétrico segue do Corolário 6.3. ¥


Vemos que a velocidade de convergência do método das potências pode ser muito lenta se a diferença entre
o maior e o segundo maior autovalores não for muito grande, uma situação frequentemente encontrada na
prática. O método das potências funciona mesmo quando o autovalor dominante não é simples, desde que
não existam outros autovalores de A diferentes do autovalor dominante que tenham o mesmo valor em
módulo, isto é quando existe apenas um autovalor dominante (Exercı́cio 6.1). É claro que o método não vai
produzir uma base para o autoespaço dominante, apenas um autovetor deste autoespaço, correspondente ao
vetor unitário na direção da componente do vetor inicial. Quando existem vários autovalores dominantes, o
método não pode ser aplicado. Em particular, o método não pode ser aplicado a matrizes reais que possuem
um autovalor dominante complexo, já que neste caso o seu conjugado também é um autovalor dominante.
Esta situação ocorre também com matrizes ortogonais, já que todos os autovalores de uma matriz ortogonal
tem norma 1.
Se A não é diagonalizável, o autovalor dominante de A ainda pode ser encontrado pelo método das
potências (desde que não haja mais de um autovalor dominante, como observado no parágrafo anterior),
como discutido no Exercı́cio 6.2.

6.2.1 Método das Potências Inverso


O método das potência permite apenas encontrar o autovalor dominante. Para obter o menor autovalor
de A, podemos aplicar o método das potências à matriz inversa A−1 , pois se λ é o menor autovalor de A,
1/λ será o maior autovalor de A−1 . Este método é chamado método das potências inverso ou iteração
inversa (quando o método das potências é chamado iteração direta).

6.2.2 Método das Potências com Deslocamento


Teoricamente, o método das potências poderia ser aplicado diretamente para encontrar todos os autovalores
de A. Por exemplo, para encontrar λ2 e um autovetor associado, uma vez encontrado o autovetor associado
ao primeiro autovalor, bastaria tomar um novo vetor inicial que não tivesse componentes na direção do
autovetor dominante (ou autoespaço dominante; veja Exercı́cio 6.1), mas apenas na direção de v2 . Isso seria
fácil de conseguir se os autovetores de A fosse ortogonais (por exemplo, se A é simétrica): bastaria tomar
um vetor inicial aleatório v0 , com componentes na direção de todos os autovetores de A, e subtrair dele a
sua componente ortogonal na direção do autovetor dominante. Na notação da seção anterior, bastaria tomar
n
X
ve0 = v0 − a1 v1 = ai vi ,
i=2

e proceder desta maneira até encontrar todos os autovalores de A (desde que não haja autovalores distin-
tos mas iguais em módulo). Na prática isso não funciona, porque erros de arredondamento apareceriam
imediatamente:
n
X
Aev0 = ελ1 v1 + ai λi vi ;
i=2

ao invés de obter λ2 e um autovetor associado, voltarı́amos a obter λ1 e um autovetor dominante.


Para encontrar os demais autovalores da matriz A, observe que se A tem autovalores λ1 , . . . , λn , então
A − σI tem autovalores λ1 − σ, . . . , λn − σ. O escalar σ é chamado um deslocamento. Podemos então aplicar
Rodney Josué Biezuner 108

−1
o método das potências à matriz (A − σI) , pois os autovalores de A são
1 1
,..., ,
λ1 − σ λn − σ
−1
de modo que o autovalor dominante de (A − σI) é
1
(6.6)
λi − σ
onde λi é o autovalor de A mais próximo de σ. Assim, podemos encontrar todos os autovalores de A
variando o deslocamento σ. Este método é chamado método das potências com deslocamento ou
iteração com deslocamento. Ele é particularmente eficiente quando possuı́mos boas estimativas para os
autovalores de A (estimativas grosseiras podem ser obtidas através do teorema dos discos de Gershgorin).
Como já observado anteriormente, a convergência do método das potências direto será lenta quando λ1 e
λ2 forem muito próximos. No caso do método das potências com deslocamento, uma escolha cuidadosa do
deslocamento σ pode aumentar substancialmente a velocidade de convergência. Com efeito, observe que
neste caso temos (para simplificar a compreensão, novamente supomos A diagonalizável e, adicionalmente,
que todos os autovalores são simples):
 
h ik µ ¶k Xn µ ¶k
1  λi − σ 
(A − σI)
−1
v0 = ai vi + ai vj 
λi − σ  λj − σ 
j=1
j6=i

donde
° µ ¶k ° ¯ ¯
°h ik 1 ° X n
¯ λi − σ ¯k
° °
|ai | ¯¯ ¯ |vj |
−1
° (A − σI) v0 − a i vi ° 6
° λi − σ °
j=1
λj − σ ¯
j6=i
 
n ¯ ¯
 X  ¯ λi − σ ¯k
6
 |ai | |vj | ¯ ¯
 ¯ λe − σ ¯
j=1 i
j6=i

de modo que a taxa assintótica de convergência é dada por


¯ ¯
¯ λi − σ ¯
¯ ¯
¯ λe − σ ¯
i

onde λei é o autovalor mais próximo a λi . Tomando o deslocamento σ significantemente mais próximo de λi
do que de λei , podemos obter ¯ ¯
¯ λi − σ ¯
¯ ¯
¯ λe − σ ¯ ¿ 1,
i
acelerando a convergência do método.
É importante observar que tanto na iteração inversa, quanto na iteração com deslocamento, em nenhum
momento é necessário calcular a inversa A−1 explicitamente, o que consumiria muito tempo e recursos.
Embora as iteradas satisfazem
1 −1
wk+1 = (A − σI) wk ,
σk+1
basta resolver o sistema
(A − σI) w
ek+1 = wk
Rodney Josué Biezuner 109

e então tomar
1
wk+1 = w
ek+1 .
σk+1
Além disso, apesar de A − λI ser uma matriz singular quando λ é um autovalor de A, e portanto tomar um
deslocamento σ muito próximo a λ produz uma matriz A − σI muito mal condicionada, isso não atrapalha
a eficência da iteração com deslocamento em nada (veja [Parlett]).
Finalmente, notamos que se os autovalores de uma matriz já são conhecidos, o método padrão para
encontrar os autovetores de A é o método das potências com deslocamento, já que os deslocamentos podem
ser escolhido arbitrariamente próximos dos autovalores, tornando a convergência muito rápida.

6.2.3 Iteração do Quociente de Rayleigh


Quando a matriz A é simétrica, combinando a iteração inversa e o quociente de Rayleigh é possı́vel obter
um método extremamente rápido, de tal forma que depois de 2 ou 3 passos o número de dı́gitos corretos no
autovalor triplica a cada iteração. A idéia é não manter o valor de deslocamento constante, mas atualizá-lo
a cada iteração com uma aproximação melhor do autovalor dada pelo quociente de Rayleigh. O algoritmo
para a iteração do quociente de Rayleigh é o seguinte:

Iteração do Quociente de Rayleigh


Atribua v°0 ; °
v 0 ← v 0 / °v 0 ° ;
λ0 = hAv0 , v0 i ;
Para k = 0,¡1, 2, . . ., até
 ¢ limite de tolerância
Resolva A − λk I w = v k ;
 v k+1 ← w/ kwk ;
­ ®
λk+1 ← Av k+1 , v k+1 ;
fim do laço
Vamos verificar que a convergência da iteração de Rayleigh é cúbica:

6.7 Proposição. Seja A ∈ Mn (R) uma matriz simétrica e assuma que o autovalor λi é simples. Dado um
0 n
vetor ­arbitrário
® v ∈ R que possui uma componente não-nula no autoespaço associado a λi , tome
0 0 0
λ = Av , v e defina a sequência
¡ ¢−1 k
k+1 A − λk I v
v =°°
°,
°
−1
°(A − λk I) v k °
­ ®
λk+1 = Av k+1 , v k+1 .

Então v k converge para um autovetor unitário vi associado a λi e λk → λi com uma taxa de con-
vergência que satisfaz ³°
° k+1 ° °3 ´
°v − vi ° = O °v k − (±vi )°
e ¯ k+1 ¯ ³¯ ¯3 ´
¯λ − λi ¯ = O ¯λk − λi ¯ .

Prova: Pelo Corolário 6.3, ³°


¯ k ¯ ° ´
¯λ − λi ¯ = O °v k − vi °2 .

Pelas estimativas para a iteração inversa com deslocamento obtidas na subseção anterior, temos
¯ ¯
° k+1 ° ¯ λi − λk ¯ ° k °
°v °
− vi 6 C ¯¯ ¯ °v − vi ° .
λei − λk ¯
Rodney Josué Biezuner 110
¯ ¯ ¯ ¯
Como λk está próximo de λi , podemos substituir ¯λei − λk ¯ por ¯λei − λi ¯ no denominador, de modo que
° k+1 ° ¡¯ ¯° °¢ ³° °3 ´
°v − vi ° = O ¯λk − λi ¯ °v k − vi ° = O °v k+1 − vi ° .

As constantes implı́citas no sı́mbolo O são uniformes para vizinhanças suficientemente pequenas de λi e vi .


Para obter a taxa de convergência para os autovalores, use o resultado obtido e o Corolário 6.3 duas vezes
escrevendo ¯ k+1 ¯ ³° °2 ´ ³° °6 ´ ³¯ ¯3 ´
¯λ − λi ¯ = O °v k+1 − vi ° = O °v k − vi ° = O ¯λk − λi ¯ .

¥
Este resultado vale mesmo quando o autovalor não é simples (Exercı́cio 6.3).
No caso em que A não é simétrica, a iteração do quociente de Rayleigh ainda pode ser usada, mas
a convergência é apenas quadrática (veja [Watkins]). Para uma análise mais rigorosa da convergência do
método das potências e todas as suas variações, inclusive a iteração do quociente de Rayleigh, veja [Parlett].

6.3 Algoritmo QR
O algoritmo QR (não confundir com a decomposição QR) é o algoritmo preferido para encontrar todos os
autovalores de uma matriz não-simétrica densa. O algoritmo básico QR pode ser descrito da seguinte forma.
Seja A ∈ Mn (C) uma matriz cujos autovalores queremos calcular. Começando com

A0 = A, (6.7)

definimos iterativamente uma sequência de matrizes A1 , A2 , . . ., recursivamente da seguinte maneira. Primeiro


fazemos a decomposição QR da matriz obtida no passo anterior:

Ak−1 = Qk Rk . (6.8)

Em seguida definimos
Ak = Rk Qk . (6.9)
Observe que, como
Ak = Q∗k Ak−1 Qk , (6.10)
todas as matrizes da sequência, que denominaremos sequência QR, possuem os mesmos autovalores. Veremos
mais tarde que o algortimo QR é simplesmente uma implementação de um procedimento conhecido como
iteração simultânea, o qual é uma extensão natural do método das potências. Consequentemente, pode ser
mostrado que a sequência QR converge, sob certas condições, para uma matriz triangular superior na forma
 
λ1 ∗ · · · ∗
 .. .. 
 λ2 . . 
 
 . 
 .. ∗ 
λn

onde os autovalores da diagonal principal aparecem em ordem descrescente de magnitude. Em particular,


como as matrizes da sequência QR são semelhantes, se A é hermitiana então a sequência converge para uma
matriz diagonal.
O algoritmo básico QR é ineficiente
¡ 3¢ para uso prático. Cada decomposição QR custa 43 n3 flops e cada
multiplicação matricial custa O n flops. Além disso, a convergência para a forma triangular é muito
vagarosa, de forma que um número muito grande de passos é necessário antes que se atinja um limite de
tolerância razoável. No que se segue, veremos procedimentos para diminuir os custos das decomposições
QR e aumentar a velocidade de convergência do método. O primeiro procedimento, reduzir a matriz à sua
Rodney Josué Biezuner 111
¡ ¢
forma de Hessenberg, reduz cada passo no algoritmo QR a um custo de O n2 flops para uma matriz geral
e O (n) para uma matriz hermitiana. O segundo procedimento, deflação e deslocamento usando o quociente
de Rayleigh, reduz o número de iterações necessárias para produzir convergência na precisão da máquina
¡ 3¢ a
O (n) iterações. Assim o ¡custo
¢ total do algoritmo QR na sua implementação mais eficiente será O n flops
para matrizes gerais e O n2 flops para matrizes hermitianas.

6.3.1 Redução de uma matriz a sua forma de Hessenberg


O custo das decomposições QR é reduzido drasticamente se reduzirmos a matriz A à sua forma de Hessenberg
antes¡ de¢ começar as iterações QR, já que o custo de uma decomposição QR para matrizes de Hessenberg
é O n2 ; se além disso a matriz for Hermitiana, ou seja, tridiagonal, o custo é apenas O (n). Também o
custo
¡ ¢da multiplicação, de uma matriz de Hessenberg superior por uma matriz triangular, é reduzido para
O n2 . Essa redução funciona porque o algoritmo QR preserva a forma de Hessenberg, de modo que todas
as matrizes da sequência QR são de Hessenberg assim como os fatores Q:

6.8 Proposição. Seja H ∈ Mn (C) uma matriz de Hessenberg superior. Então toda matriz da sequência
QR é também uma matriz de Hessenberg superior. Além disso, os fatores Qk da decomposição Ak−1 =
Qk Rk também são Hessenberg superiores.

Prova: Assuma A invertı́vel, de modo que todas as matrizes da sequência QR são invertı́veis; em particular,
os fatores Qk , Rk também são invertı́veis. Suponha por indução que Ak−1 é uma matriz de Hessenberg
superior. Seja Ak−1 = Qk Rk uma decomposição QR de Ak−1 . Afirmamos que

Qk = Ak−1 Rk−1

é uma matriz de Hessenberg superior. De fato, como a inversa de uma matriz triangular superior é uma
matriz triangular superior, Qk é o produto de uma matriz de Hessenberg superior e de uma matriz triangular
superior, logo também é uma matriz de Hessenberg superior. Segue que Ak = Rk Qk é o produto de uma
matriz triangular superior e uma matriz de Hessenberg superior, logo também é uma matriz de Hessenberg
superior.
O caso geral, em que A é singular, é um pouco mais difı́cil. De fato, não é verdade que toda decomposição
QR de uma matriz de Hessenberg superior vai produzir um fator Q Hessenberg superior. Mas é possı́vel
provar que é sempre possı́vel escolher a decomposição QR de tal forma que o fator Q produzido é Hessenberg
superior (veja [Watkins]). ¥
Antes de descrever o algoritmo que transforma uma matriz geral em uma matriz de Hessenberg superior
(o custo da transformação será de 10 3
3 n flops) vamos introduzir o conceito de refletores de Householder que
são usados para introduzir zeros abaixo da subdiagonal inferior.
No que se segue assumiremos sempre a norma vetorial como sendo a norma euclidiana.

6.9 Definição. Seja u ∈ Rn um vetor unitário. Então o operador Q : Rn −→ Rn definido por

Q = I − 2uuT (6.11)

é chamado um refletor de Householder (ou simplesmente um refletor ).

A proposição a seguir resume as propriedades que caracterizam uma reflexão:

6.10 Proposição. Sejam u ∈ Rn um vetor unitário e Q = I − 2uuT um refletor. Então

(i) Qu = −u.
(ii) Qv = v para todo v ⊥ u.
(iii) Q = QT ( Q é simétrico).
Rodney Josué Biezuner 112

(iv) QT = Q−1 ( Q é ortogonal).


(v) Q−1 = Q ( Q é uma involução).

Prova: (i) Usando o fato que uT u = hu, ui = 1, temos


¡ ¢ ¡ ¢
Qu = u − 2 uuT u = u − 2u uT u = u − 2u = −u

(ii) Usando o fato que uT v = hu, vi = 0, temos


¡ ¢ ¡ ¢
Qv = v − 2 uuT v = u − 2u uT v = u − 0 = u.

(iii)
¡ ¢T ¡ ¢T
QT = I − 2uuT = I − 2 uT uT = I − 2uuT = Q.
(iv),(v) Usando (iii) segue que
¡ ¢¡ ¢
QQT = QQ = I − 2uuT I − 2uuT = I − 4uuT + 4uuT uuT
¡ ¢
= I − 4uuT + 4u uT u uT = I − 4uuT + 4uuT
= I.

¥
Em outras palavras Q = I − 2uuT leva cada vetor x ∈ Rn em sua reflexão com relação ao hiperplano
H = {v : hu, vi = 0} ortogonal a u.
A possibilidade do uso de refletores para criar zeros em matrizes segue do seguinte resultado:

6.11 Teorema. Sejam x, y ∈ Rn tais que x 6= y mas kxk = kyk. Então existe um único refletor tal que

Qx = y.
¡ ¢
Prova: (Existência) Para encontrar um vetor u tal que I − 2uuT x = y, primeiro notamos que o hiperplano
de reflexão bisecta o ângulo entre x e y, de modo que o vetor x − y deve ser perpendicular a este plano.
Portanto, nosso candidato é
x−y
u= . (6.12)
kx − yk
De fato, de (i) e (ii) da proposição anterior, temos

Q (x − y) = y − x,
Q (x + y) = x + y,

pois
2 2
hx − y, x + yi = hx, xi + hx, yi − hy, xi − hy, yi = kxk − kyk = 0.
Logo,
1 1
Qx = [Q (x − y) + Q (x + y)] = [y − x + x + y] = y.
2 2
¥

6.12 Corolário. Seja x ∈ Rn um vetor não nulo. Então existe um refletor Q tal que
   
x1 ∗
 x2   0 
   
Q .  =  . .
 ..   .. 
xn 0
Rodney Josué Biezuner 113

Prova: Escolha y = (± kxk , 0, . . . , 0) no teorema anterior, com o sinal escolhido de tal forma a garantir que
x 6= y. ¥
No caso complexo, basta tomar
Q = I − 2uu∗ (6.13)
e temos resultados análogos, bastando substituir simétrico ortogonal por hermitiano unitário.
Vamos agora descrever o algoritmo para reduzir uma matriz geral A à forma de Hessenberg. Cada passo
introduz os zeros nas posições desejadas de cada coluna, da primeira até a última, em um total de n−2 passos
(já que evidentemente não há necessidade de transformar as últimas 2 colunas da matriz para colocá-la na
forma de Hessenberg). Primeiro faça uma partição por blocos de A na forma
· ¸
a11 cT
A= b
b A

b 1 : Fn−1 −→ Fn−1 um refletor (onde F = R ou C) tal que


Seja Q
 
τ1
 0 
b1 b = 
Q

 .. 
 . 
0

onde |τ1 | = kbk e τ1 b1 < 0. Defina o refletor Q1 : Fn −→ Fn


· ¸
1 0T
Q1 = b1
0 Q

e tome  
a11 cT
 τ1 
 
 0 
A1/2 = Q1 A =  b 
b1 A
 .. Q 
 . 
0
Então
   
a11 b1
cT Q a11 ∗ ··· ∗
 τ1   τ1 
   
 0   0 
A1 = Q1 AQ−1
1 = Q1 AQ1 = A1/2 Q1 =  b1 A
bQb1 = b1 .
 .. Q   .. A 
 .   . 
0 0

Este é o fim do primeiro passo: a matriz A1 , semelhante à matriz A através de uma matriz ortogonal, tem
zeros na primeira coluna abaixo do primeiro elemento da subdiagonal.
O segundo passo cria zeros na segunda coluna de A1 , isto é, na primeira coluna de A b1 , nas posições
desejadas. Assim, usamos um refletor Q b 2 : Fn−2 −→ Fn−2 exatamente como no primeiro passo, exceto que
usamos A b1 ao invés de A, e definimos
 
1 0 0 ··· 0
 0 1 0 ··· 0 
 
 0 0 
Q2 =  
 .. .. b2 
 . . Q 
0 0
Rodney Josué Biezuner 114

e  
a11 ∗ ∗ ··· ∗
 τ1 ∗ ∗ ··· ∗ 
 
 0 τ2 
A3/2 = Q2 A1 =  .
 .. .. b2 A
b1 
 . . Q 
0 0
Daı́,  
a11 ∗ ∗ ··· ∗
 τ1 ∗ ∗ ··· ∗ 
 
 0 τ2 
A2 = Q2 A1 Q−1
2 = Q2 A1 Q2 = A3/2 Q2 =  .
 .. .. b2 A
b1 Q
b2 
 . . Q 
0 0
Procedemos desta forma em n − 2 passos até encontrar uma matriz de Hessenberg An−2 semelhante à matriz
original A através de uma matriz ortogonal Q = Qn−2 . . . Q2 Q1 .

6.3.2 Aceleração do algoritmo QR


Ordene os autovalores de A na forma

|λ1 | > |λ2 | > . . . > |λn | .

Considere uma sequência (Ak ) de iteradas do algoritmo QR tal que cada matriz Ak é de Hessenberg superior.
Denote  k 
a11 ak12 ak13 ak14 . . . ... ak1n
 ak21 ak22 ak23 ak24 . . . ... ak2n 
 k k k 
 0 a32 a33 a34 . . . ... ak3n 
 
 .. 
 0 k
0 a43 a44 k . ... a4n 
k
 
Ak =   0 ..
.
..
.
..
.
.. .

 0 0 . 
 .. .. .. . . . . . . . . .
. 
 . . . . . . . . 
 
 . .. .. .. .. .. 
 .. . . . . . a k 
n−1,n
0 0 0 0 ... 0 akn,n−1 aknn
No algoritmo QR as entradas subdiagonais (ou a maioria delas) convergem para 0 quando n → ∞. Mais
precisamente, como veremos mais tarde, se

|λi | > |λi+1 | ,

então ¯ ¯
¯ λi+1 ¯
aki+1,i →0 ¯
com taxa de convergência ¯ ¯ , i = 1, . . . , n − 1.
λi ¯
Portanto, uma maneira de acelerar a convergência do algoritmo é decrescer os quocientes |λi+1 /λi |. Um modo
de fazer isso é através do uso de um deslocamento, como no método das potências. A matriz deslocada A−σI
tem autovalores
|λ1 − σ| > |λ2 − σ| > . . . > |λn − σ|
e as taxas de convergência associadas são
¯ ¯
¯ λi+1 − σ ¯
¯ ¯
¯ λi − σ ¯ , i = 1, . . . , n − 1.
Rodney Josué Biezuner 115

Assim, se escolhermos σ suficientemente próximo de um autovalor arbitrário que chamaremos λn após re-
ordenar os ı́ndices (e assumindo λn−1 6= λn ), aplicando o algoritmo QR a A − σI observaremos que a
k k
(A − σI)n,n−1 converge para 0 rapidamente. Uma vez que (A − σI)n,n−1 seja suficientemente pequeno, esta
entrada pode ser considerado 0 na prática e, adicionando σI à iterada (A − σI)k do algoritmo QR, obtemos
 
0
 bk .. 
 A . 
Ak =  .
 0 
0 ··· 0 aknn

bk . Podemos
com aknn uma boa aproximação para λn . Os autovalores restantes de Ak são os autovalores de A
b
então aplicar o algoritmo QR à matriz Ak , que tem ordem um a menos que a ordem de A. Continuando
desta forma, usaremos o algoritmo QR em matrizes cada vez menores até obter todos os autovalores de A.
Este processo, em que o tamanho da matriz é reduzido cada vez que um autovalor é encontrado, é chamado
deflação.
O próprio algoritmo QR pode ser usado para obter os valores para os deslocamentos σ, já que depois
de algumas iterações a matriz está próxima da forma triangular e os valores na diagonal principal estão
próximos aos autovalores de A. De fato, as entradas na diagonal principal são quocientes de Rayleigh, já
que
akii = eTi Ak ei = hAk ei , ei i .
Assim, o deslocamento pode ser modificado em cada iteração, como no método da iteração do quociente de
Rayleigh, usando-se
σk = aknn
de modo que ¯ ¯
¯ λi+1 − σk ¯
¯ ¯
¯ λi − σk ¯ → 0 quando k → ∞

e obtemos uma taxa de convergência melhor que linear. De fato, veremos que, como no método da iteração
do quociente de Rayleigh, este algoritmo QR com deslocamento dado pelo quociente de Rayleigh
possui convergência quadrática em geral e cúbica para matrizes hermitianas.
Na prática, depois de apenas uma iteração QR já é seguro usar σ1 = a1nn . O único efeito dessa escolha é
que a ordem dos autovalores obtidos no processo não é necessariamente crescente.
O deslocamento dado pelo quociente de Rayleigh pode falhar às vezes, por exemplo quando o deslocamento
obtido está a mesma distância de dois autovalores distintos, fazendo com que o método tenha dificuldade
de “decidir” qual autovalor aproximar. Para evitar esta situação, é preferı́vel usar o deslocamento de
Wilkinson, que é definido como sendo o autovalor da submatriz 2 × 2
· k ¸
an−1,n−1 akn−1,n
akn,n−1 aknn

que está mais próximo de aknn . Ele é fácil de calcular porque é a raiz de um polinômio do segundo grau. É
possı́vel provar para matrizes simétricas tridiagonais o algoritmo QR com deslocamento de Wilkinson sempre
converge. Além disso, como estamos usando maior informação para obter o deslocamento, a taxa convergência
no mı́nimo igual à do algoritmo QR usando o deslocamento dado pelo quociente de Rayleigh e muitas vezes
melhor. Em geral, existem apenas casos muito especiais de matrizes para as quais o deslocamento de
Wilkinson falha. A experiência tem mostrado que são necessárias apenas 5 ou 9 iterações do algoritmo
QR para obter uma aproximação satisfatória para o primeiro autovalor e de 3 a 5 iterações em média para
os autovalores restantes (às vezes menos); para matrizes hermitianas, 2 ou 3 iterações em média bastam.
O deslocamento de Wilkinson tem a vantagem inicial de que pode ser usado para aproximar autovalores
complexos de matrizes reais, já que ele pode ser um número complexo, enquanto que o quociente de Rayleigh
Rodney Josué Biezuner 116

de uma matriz real sempre é um valor real. Para maiores detalhes sobre as informações contidas este parágrafo
veja [Watkins].
Por fim, às vezes ocorre durante as iterações do algoritmo QR que um elemento da subdiagonal inferior
localizado próximo ao meio da matriz é suficientemente próximo de 0. Neste caso a matriz Ak tem a forma
em blocos · ¸
B11 B12
0 B22
e o problema pode ser quebrado em dois, aplicando o algoritmo
¡ ¢ QR aos blocos B11 e B22 separadamente.
Como o custo de uma iteração QR de Hessenberg é O n2 , dividindo o tamanho da matriz pela metade
implica numa diminuição do custo por um fator de 4.

6.3.3 Implementação prática do algoritmo QR


Veja [Watkins].

6.4 Iteração de subespaços e iteração simultânea


No método das potências ou iteração direta, ao invés de iterarmos apenas um vetor, podemos considerar a
iteração de um subespaço inteiro: se S ⊂ Fn (onde F = R ou C), consideramos as iteradas

S, AS, A2 S, . . .

Cada iterada Ak S é um subespaço de Fn que pode ser caracterizado por


© ª
Ak S = Ak x : x ∈ S .

Como no método da iteração direta as iteradas convergem para o autovetor dominante, esperamos que estes
subespaços iterados convirjam para um autoespaço. Para verificar isso, precisamos definir uma noção de
distância entre subespaços vetoriais.

6.13 Definição. Dados dois subespaços S, T ⊂ Fn , a distância entre eles é definida por

dist (S, T ) = sen θ

onde θ é o maior ângulo principal entre S e T . Dizemos que uma sequência de subespaços {Sk }
converge para S se dist (Sk , S) → 0 e denotamos este fato por Sk → S.
6.14 Teorema. Seja A ∈ Mn (F) diagonalizável com autovalores

|λ1 | > |λ2 | > . . . > |λn |

e uma correspondente base de autovetores {v1 , . . . , vn }. Suponha que |λm | > |λm+1 | para algum m.
Sejam

Tm = hv1 , . . . , vm i ,
Um = hvm+1 , . . . , vn i .

Seja S um subespaço vetorial de dimensão m tal que S ∩ Um = {0}. Então existe uma constante C
tal que ¯ ¯
¡ k ¢ ¯ λm+1 ¯
dist A S, Tm 6 C ¯ ¯ ¯
λm ¯
Em particular, Ak S → Tm linearmente com taxa de convergência |λm+1 /λm |.
Rodney Josué Biezuner 117

Prova: Uma demonstração rigorosa deste teorema está além dos propósitos deste curso. Daremos apenas
algumas idéias para justificar o resultado.
Em primeiro lugar, observe que dim Ak S = m para todo k. De fato, temos

ker Ak ⊂ Um . (6.14)
Pn
Isso pode ser facilmente visto escrevendo os vetores em coordenadas: dado um vetor v = i=1 ai vi , temos
n
X
Ak v = ai λki vi ,
i=1

de modo que Ak v = 0 implica a1 = . . . = am = 0 pois v1 , . . . , vn são linearmente independentes e λ1 , . . . , λm


são não nulos, já que |λ1 | > . . . > |λm | > |λm+1 | > 0. Daı́, (6.14) juntamente com dim S = m e S ∩Um = {0}
implicam imediatamente que dim Ak S = m para todo k.
Agora, seja v ∈ S um vetor não nulo. Escrevendo
n
X
v= ai vi
i=1

segue de S∩Um = {0} que pelo menos um dos escalares a1 , . . . , am é não nulo (assim, a condição S∩Um = {0}
é equivalente a exigir no método das potências que o vetor inicial tenha uma componente na direção do
autovetor dominante; aqui exigimos que cada vetor do subespaço tenha uma componente no autoespaço
dominante). Temos
m µ ¶k n µ ¶k
Ak v X λi X λi
= a i vi + ai vi .
λkm i=1
λm i=m+1
λm

As componentes do vetor “normalizado” Ak v/λkm no subespaço Um tendem a zero quando k aumenta com
taxa de convergência |λm+1 /λm | ou melhor (dependendo dos valores de am+1 , . . . , an ), consequentemente o
vetor limite está no subespaço Tm . Como cada subsespaço Ak S tem dimensão m, o limite dos subespaços
não pode ser um subespaço próprio de Tm . ¥
Observe que a condição S ∩ Um = {0} ocorre quase sempre para uma escolha aleatória do subespaço m-
dimensional S (por exemplo, no caso de R3 a escolha aleatória de uma reta e um plano quase sempre resultará
que o único ponto em que eles se interceptam é a origem).
Para fazer a iteração de subespaços na prática, deve-se escolher uma base para S e iterar todos os
vetores desta base simultaneamente. No processo de iterar o subespaço, devemos obviamente ortonormalizar
a base do subespaço Ak S em cada passo da iteração, usando um algoritmo robusto tal como o MGS com
reortogonalização. Este processo todo é chamado iteração simultânea.
Em notação matricial, a iteração simultânea pode ser descrita da seguinte maneira. Seja S um subespaço
de dimensão m com base v1 , . . . , vm . Utilizando um algoritmo robusto, encontramos uma base ortonormal
q1 , . . . , qm . Formamos então uma matriz inicial n × m com colunas ortonormais:
£ ¤
Q0 = q10 · · · qm 0
.

Em cada passo k da iteração, calculamos


Bk = AQk
e fazemos a decomposição QR de Bk para obter uma base ortonormal para o subespaço Ak S: se

Bk = Qk+1 Rk+1 ,

então as colunas ortonormais de Qk+1 formam uma base ortonormal para Ak S. No limite, teremos que as
colunas das matrizes Qk convergem para os m autovetores dominantes (nas condições do teorema anterior).
Rodney Josué Biezuner 118

6.4.1 Equivalência entre o Algoritmo QR e Iteração Simultânea


O algoritmo QR puro é equivalente à iteração simultânea aplicada à matriz identidade, isto é, tomando
Q0 = I. Ou seja, se na iteração simultânea

Q0 = I,
 Bk−1 = AQk−1 , (6.15)
Bk−1 = Qk Rk ,

definirmos

Ak = Qk AQk , (6.16)
Rk = Rk · · · R1 (6.17)

e, reciprocamente, no algoritmo QR 
A0 = A,
 Ak−1 = Qk Rk , (6.18)
Ak = Rk Qk ,
definirmos
b k = Q1 · · · Qk ,
Q (6.19)
bk = Rk · · · R1
R (6.20)

segue que

Ak = Ak , (6.21)
bk ,
Qk = Q (6.22)
bk .
Rk = R (6.23)

De fato, afirmamos que as matrizes Qk , Rk e as matrizes Q bk , R


bk são ambas caracterizadas como sendo a
k
decomposição QR (portanto única) da matriz A , a k-ésima potência de A:

bk R
Ak = Qk Rk = Q bk . (6.24)

A verificação de todos estes fatos segue por indução. O caso k = 0 é imediato, já que B0 = A. Como
hipótese de indução, assumimos

Ak−1 = Ak−1 ,
b k−1 R
Ak−1 = Q bk−1 = Qk−1 Rk−1 ,

donde
b k−1 ,
Qk−1 = Q
bk−1 .
Rk−1 = R

Daı́, no caso da iteração simultânea temos

Ak = AAk−1 = AQk−1 Rk−1 = Qk Rk Rk−1 = Qk Rk ,

enquanto que no algoritmo QR temos


b k−1 R
Ak = AAk−1 = AQ bk−1 = Q
b k−1 Ak−1 R
bk−1 = Q
b k−1 Qk Rk R
bk−1 = Q
bk R
bk .
Rodney Josué Biezuner 119

Portanto,
bk R
Ak = Qk Rk = Q bk

donde
bk ,
Qk = Q
bk .
Rk = R

Finalmente, pelo algoritmo QR podemos escrever (como em (6.10))

Ak = Q∗k Ak−1 Qk ,

donde, pela hipótese de indução,



Ak = Q∗k Ak−1 Qk = Q∗k Qk−1 AQk−1 Qk = Q∗k Q b ∗k−1 AQ
b k−1 Qk
b ∗k AQ
= Q∗k Q∗k−1 · · · Q∗1 AQ1 · · · Qk−1 Qk = Q bk
= Ak .

6.4.2 Convergência do Algoritmo QR


Por simplicidade considere A simétrica. A relação
bk R
Ak = Q bk = (Q1 · · · Qk ) (Rk · · · R1 )

explica porque o algoritmo QR encontra os autovetores de A: ele constrói bases ortonormais para o espaço
coluna das potências sucessivas Ak (e as colunas de Ak são Ak e1 , . . . , Ak en ). A relação

b tk AQ
Ak = Q bk

explica porque o algoritmo QR encontra os autovalores de A: os elementos da diagonal de Ak são os quocientes


de Rayleigh correspondentes às colunas de Qb k , isto é, aos autovetores de A. Como os autovetores de A são
ortogonais e A-ortogonais, os elementos fora da diagonal principal também convergem para 0.

6.5 Método de Arnoldi e Algoritmo de Lanczos


Para matrizes esparsas, não simétricas, o método de Arnoldi é o método mais usado para encontrar os
autovalores e autovetores, e para matrizes simétricas esparsas o método escolhido é o algoritmo de Lanczos.
Na Proposição 5.7 vimos que no método de Arnoldi obtemos
em
AQm = Qm+1 H (6.25)

onde
£ ¤
Qm = q1 ... qm ,
£ ¤
Qm+1 = q1 ... qm qm+1 ,

são matrizes com colunas ortonormais e He m é uma matriz de Hessenberg superior (m + 1) × m (na notação
daquela proposição, a matriz Qm é denotada por Vm ). Como naquela proposição, denote por Hm a matriz
de Hessenberg superior quadrada obtida através de He m quando suprimimos a última linha desta. Segue que
£ ¤
AQm = Qm Hm + qm+1 0 . . . 0 hm+1,m
Rodney Josué Biezuner 120

ou
AQm = Qm Hm + qm+1 hm+1,m etm . (6.26)
m
Como vimos no capı́tulo anterior, se q, Aq, . . . , A q são linearmente independentes, então hm+1,m 6= 0. Se
eles são linearmente dependentes, então hm+1,m = 0 e

AQm = Qm Hm . (6.27)

6.15 Proposição. Sejam A ∈ Mn (F) e q1 , . . . , qm ∈ Fn linearmente independentes. Sejam S = hq1 , . . . , qm i


e considere a matriz n × m £ ¤
Q = q1 . . . qm .
Então S é invariante sob A se e somente se existe algum B ∈ Mm (F) tal que

AQ = QB.

Além disso, todo autovalor de B é um autovalor de A com autovetor correspondente em S.

Prova. Se existe tal B, então


m
X
Aqj = qi bij ∈ S.
i=1

Reciprocamente, se S é invariante sob A, então para cada ı́ndice j = 1, . . . , m existem escalares bij tais que
m
X
Aqj = bij qi .
i=1

Defina B = (bij ). Se w é um autovetor de B com autovalor λ, então v = Qw ∈ S é um autovetor de A com


autovalor λ. ¥
Portanto, os autovalores da matriz de Hessenberg Hm são também autovalores de A. Se m não é muito
grande, podemos então usar o algoritmo QR para encontrar os autovalores de Hm . Na prática, dificilmente
obteremos hm+1,m = 0 exatamente, mas se hm+1,m é próximo de zero podemos esperar que estamos próximos
de um subespaço invariante e, portanto, que os autovalores de Hm estão próximos aos autovalores de A:

6.16 Teorema. Sejam Qm , Hm e hm+1,m gerados pelo método de Arnoldi. Seja λ um autovalor de Hm
com autovetor unitário x. Seja v = Qm x. Então

kAv − λvk = |hm+1,m | |xm |

onde xm denota a última componente de x.

O método de Arnoldi em geral obtém os autovalores periféricos. Os autovalores interiores podem ser encon-
tradas através da estratégia do deslocamento.
Quando A é simétrica, como vimos no capı́tulo anterior Hm é uma matriz tridiagonal Tm que pode ser
obtida através de uma fórmula de recorrência.
Veja [Watkins] para detalhes sobre implementações eficientes do método de Arnoldi e algoritmo de Lanczos
para encontrar autovalores e autovetores de matrizes esparsas.

6.6 O Problema de Autovalor Simétrico


Para matrizes simétricas, existem algoritmos bem mais eficiente que o algoritmo QR. Veja [Parlett],
[Trefethen-Bau], entre outros.
Rodney Josué Biezuner 121

6.7 Exercı́cios
6.1 Suponha que A ∈ Mn (C) é uma matriz diagonalizável tal que nenhum autovalor de A diferente do
autovalor dominante λ1 tem módulo igual a A. Em outras palavras, se r é a dimensão do autoespaço
associado a λ1 , ou autovalores de A satisfazem

|λ1 | = . . . = |λr | > |λ2 | > . . . > |λn |

com
λ1 = . . . = λr .
Mostre que o método das potências pode ser aplicado a A para encontrar λ1 e um autovetor unitário
no autoespaço associado a λ1 .
6.2 Usando a forma canônica de Jordan, mostre que a hipótese de A ser diagonalizável pode ser removida
da hipótese do exercı́cio anterior decompondo o vetor inicial v0 como a soma de um vetor na direção
do autovetor dominante v1 e de vetores principais nos subespaços de Jordan da matriz.
6.3 Prove a Proposição 6.7 sem assumir que o autovalor é simples.

6.4 Prove que o produto de uma matriz triangular superior e uma matriz de Hessenberg superior é uma
matriz de Hessenberg superior. O que se pode dizer sobre o produto de duas matrizes de Hessenberg
superiores?

6.5 Prove a unicidade do refletor na Proposição 6.11.


Referências Bibliográficas

[BHM] William L. BRIGGS, Van Emden HENSON e Steve F. McCORMICK, A Multigrid


Tutorial, 2nd. Ed., SIAM, 2000.
[Demmel] James W. DEMMEL, Applied Numerical Linear Algebra, SIAM, 1997.
[Hackbusch] W. HACKBUSCH, Iterative Solutions of Large Sparse Systems of Equations, Applied
Mathematical Sciences 95, Springer-Verlag, 1994.
[Hoffman-Kunze] K. HOFFMAN e R. KUNZE, Linear Algebra, 2nd. Ed., Prentice Hall, 1971.

[Horn-Johnson] Roger A. HORN e Charles R. JOHNSON, Matrix Analysis, Cambridge University


Press, 1985.

[Komzsik] Louis KOMZSIK, The Lanczos Method: evolution and application, SIAM, 2003.
[Kreyszig] KREYSZIG, E., Introductory Functional Analysis with Applications, John Wiley &
Sons, 1978.

[Mak] Ronald MAK, Java Number Cruncher: the Java Programmer’s Guide to Numerical
Computing, Prentice Hall, 2003.

[Meurant] Gérard MEURANT, The Lanczos and Conjugate Gradient Algorithms: from theory
to finite precision computations, SIAM, 2006.

[Parlett] Beresford N. PARLETT, The Symmetric Eigenvalue Problem, SIAM, 1998.


[Saad] Yousef SAAD, Iterative Methods for Sparse Linear Systems, 2nd Ed., SIAM, 2003.
[Stoer-Bulirsch] Josef STOER e Roland BULIRSCH, Introduction to Numerical Analysis, 3rd Ed.,
Springer, 2002.
[Strang] Gilbert STRANG, Linear Algebra and its Applications, 3rd Ed., Harcourt Brace Jo-
vanovich, 1988.
[Trefethen-Bau] Lloyd N. TREFETHEN e David BAU, Numerical Linear Algebra, SIAM, 1997.
[van der Vorst] Henk A. van der VORST, Iterative Krylov Methods for Large Linear Systems, Cam-
bridge University Press, 2003.
[Watkins] David S. WATKINS, Fundamentals of Matrix Computations, 2nd Ed., John Wiley &
Sons, 2002.
[Young] David M. YOUNG, Iterative Solutions of Large Linear Systems, Academic Press,
1971.

122

Você também pode gostar