Álgebra Linear Numérica - Arquivo Escolar
Álgebra Linear Numérica - Arquivo Escolar
Álgebra Linear Numérica - Arquivo Escolar
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Notas de Aula<br />
<strong>Álgebra</strong> <strong>Linear</strong> <strong>Numérica</strong><br />
Rodney Josué Biezuner 1<br />
Departamento de Matemática<br />
Instituto de Ciências Exatas (ICEx)<br />
Universidade Federal de Minas Gerais (UFMG)<br />
Notas de aula da disciplina <strong>Álgebra</strong> <strong>Linear</strong> <strong>Numérica</strong> do Curso de Graduação<br />
em Matemática Computacional, ministrado durante o segundo semestre do ano de 2009.<br />
30 de novembro de 2009<br />
1 E-mail: rodney@mat.ufmg.br; homepage: http://www.mat.ufmg.br/∼rodney.
Sumário<br />
0 Introdução: Representação de Números Reais no Computador 3<br />
0.1 Ponto Flutuante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3<br />
0.2 Erros de Arredondamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />
0.3 O Padrão de Ponto Flutuante IEEE 754 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />
0.3.1 Números normalizados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5<br />
0.3.2 Números denormalizados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />
0.3.3 Outros valores numéricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6<br />
1 Matrizes Esparsas 7<br />
1.1 Problema Modelo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />
1.1.1 Problema de Poisson Unidimensional . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7<br />
1.1.2 Problema de Poisson Bidimensional . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8<br />
1.2 Matrizes Esparsas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10<br />
1.3 Implementação Computacional de Matrizes Esparsas . . . . . . . . . . . . . . . . . . . . . . . 11<br />
2 Invertibilidade de Matrizes Esparsas 13<br />
2.1 Normas Matriciais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13<br />
2.2 Matrizes Diagonalmente Dominantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18<br />
2.3 Teorema dos Discos de Gershgorin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19<br />
2.4 Propriedade FC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22<br />
2.5 Matrizes Irredutíveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27<br />
2.6 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29<br />
3 Métodos Iterativos <strong>Linear</strong>es 31<br />
3.1 Método Iterativos Básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32<br />
3.1.1 Método de Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32<br />
3.1.2 Método de Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33<br />
3.1.3 Método SOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33<br />
3.1.4 Comparação da Velocidade de Convergência dos Três Métodos no Problema Modelo . 34<br />
3.1.5 Método de Jacobi Amortecido . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35<br />
3.2 Análise de Convergência dos Métodos Iterativos <strong>Linear</strong>es . . . . . . . . . . . . . . . . . . . . . 36<br />
3.2.1 Convergência dos Métodos Iterativos <strong>Linear</strong>es . . . . . . . . . . . . . . . . . . . . . . . 37<br />
3.2.2 Velocidade de Convergência dos Métodos Iterativos <strong>Linear</strong>es . . . . . . . . . . . . . . 40<br />
3.2.3 Convergência para Matrizes Simétricas Positivas Definidas . . . . . . . . . . . . . . . . 42<br />
3.3 Convergência dos Métodos Iterativos <strong>Linear</strong>es para Matrizes de Discretização . . . . . . . . . 44<br />
3.3.1 Convergência do Método de Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44<br />
3.3.2 Convergência do Método de Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . . 50<br />
3.3.3 Convergência do Método SOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52<br />
3.3.4 Convergência do Método de Jacobi Amortecido . . . . . . . . . . . . . . . . . . . . . . 59<br />
3.3.5 Resumo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61<br />
1
Rodney Josué Biezuner 2<br />
3.4 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61<br />
4 Métodos de Projeção 62<br />
4.1 Teoria Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62<br />
4.1.1 Representação Matricial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63<br />
4.1.2 Minimização de Funcionais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64<br />
4.1.3 Estimativa do Erro em Métodos de Projeção . . . . . . . . . . . . . . . . . . . . . . . 66<br />
4.2 Caso Unidimensional: Métodos de Descida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67<br />
4.2.1 Métodos de Descida . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67<br />
4.2.2 Método da Descida Mais Acentuada . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68<br />
4.3 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72<br />
5 Métodos de Subespaços de Krylov 74<br />
5.1 Motivação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74<br />
5.2 Subespaços de Krylov . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75<br />
5.3 Algoritmo de Arnoldi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76<br />
5.4 Implementação Prática: Métodos de Ortogonalização Estáveis . . . . . . . . . . . . . . . . . . 79<br />
5.4.1 Método de Gram-Schmidt Modificado (MGS) . . . . . . . . . . . . . . . . . . . . . . . 79<br />
5.4.2 Método de Gram-Schmidt Modificado com Reortogonalização (MGSR) . . . . . . . . . 82<br />
5.5 Método de Arnoldi para Sistemas <strong>Linear</strong>es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83<br />
5.6 Decomposição QR via MGS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85<br />
5.7 Algoritmo de Lanczos e Método do Gradiente Conjugado . . . . . . . . . . . . . . . . . . . . 87<br />
5.8 Método do Gradiente Conjugado como um Método de Descida . . . . . . . . . . . . . . . . . 91<br />
5.8.1 Convergência do Método do Gradiente Conjugado em Aritmética Exata . . . . . . . . 94<br />
5.9 Velocidade de Convergência do Método do Gradiente Conjugado . . . . . . . . . . . . . . . . 96<br />
5.9.1 Polinômios de Chebyshev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96<br />
5.9.2 Velocidade de Convergência do CG . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99<br />
5.10 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101<br />
6 O Problema do Autovalor 102<br />
6.1 Caracterização Variacional dos Autovalores de uma Matriz Simétrica: Quociente de Rayleigh 102<br />
6.2 Método das Potências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105<br />
6.2.1 Método das Potências Inverso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107<br />
6.2.2 Método das Potências com Deslocamento . . . . . . . . . . . . . . . . . . . . . . . . . 107<br />
6.2.3 Iteração do Quociente de Rayleigh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109<br />
6.3 Algoritmo QR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110<br />
6.3.1 Redução de uma matriz a sua forma de Hessenberg . . . . . . . . . . . . . . . . . . . . 111<br />
6.3.2 Aceleração do algoritmo QR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114<br />
6.3.3 Implementação prática do algoritmo QR . . . . . . . . . . . . . . . . . . . . . . . . . . 116<br />
6.4 Iteração de subespaços e iteração simultânea . . . . . . . . . . . . . . . . . . . . . . . . . . . 116<br />
6.4.1 Equivalência entre o Algoritmo QR e Iteração Simultânea . . . . . . . . . . . . . . . . 118<br />
6.4.2 Convergência do Algoritmo QR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119<br />
6.5 Método de Arnoldi e Algoritmo de Lanczos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119<br />
6.6 O Problema de Autovalor Simétrico . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120<br />
6.7 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Capítulo 0<br />
Introdução: Representação de<br />
Números Reais no Computador<br />
Computadores digitais usam um número finito de bits para representar um número real, portanto eles<br />
podem representar apenas um subconjunto finito dos números reais, o que leva a dois tipos diferentes de<br />
limitações: (1) números representados não podem ser arbitrariamente grandes ou arbitrariamente pequenos;<br />
(2) existem lacunas entre os numéros representados. Estas limitações físicas levam respectivamente aos erros<br />
de overflow e underflow e aos erros de arredondamento.<br />
Para discutir estes erros de maneira inteligente, introduzimos alguma terminologia.<br />
0.1 Definição. Definimos o erro absoluto causado por uma computação por<br />
Erro absoluto = |(valor calculado) − (valor exato)| .<br />
O erro relativo causado por uma computação é definido por<br />
<br />
<br />
<br />
Erro relativo = <br />
erro absoluto<br />
<br />
valor exato .<br />
O erro relativo permite comparar entre os erros cometidos de maneira significativa. Por exemplo, o erro<br />
absoluto entre 1 (valor exato) e 2 (valor calculado) e o erro absoluto entre 1.000.000 (valor exato) e 1.000.001<br />
(valor calculado) são os mesmos. No entanto, o erro relativo no primeiro caso é 1, enquanto que o erro<br />
relativo no segundo caso é 10−6 , expressando o fato intuitivo que o erro cometido no primeiro caso é muito<br />
maior que o erro cometido no segundo caso. Às vezes o erro relativo é expresso como uma porcentagem:<br />
Erro percentual = [(erro relativo) × 100] %.<br />
Assim, o erro percentual no primeiro caso é 100%, enquanto que o erro percentual no segundo caso é<br />
10 −4 = 0, 0001%.<br />
0.1 Ponto Flutuante<br />
Na Matemática Pura, os números reais são infinitos, infinitamente grandes e infinitamente pequenos. Não<br />
existe um número maior ou um número menor. Além disso, eles também são continuamente distribuídos:<br />
não existem espaços entre números reais, pois entre quaisquer dois números reais sempre existe outro número<br />
real. Mais que isso, eles são distribuídos uniformemente na reta real. Um número real é infinitamente preciso:<br />
3
Rodney Josué Biezuner 4<br />
os números depois do ponto decimal são infinitos (incluindo o 0). Em outras palavras, usando a base 10,<br />
números reais correspondem a séries da forma<br />
a = a0 +<br />
onde a0 ∈ Z e an ∈ {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}.<br />
O padrão para representar números reais em Matemática Computacional é o número de ponto flutuante.<br />
Números de ponto flutuante não são infinitos: existe um número de ponto flutuante máximo e um<br />
número de ponto flutuante mínimo. Existe um número fixado de pontos flutuantes, logo existem espaços<br />
entre eles. Números de ponto flutuante de precisão simples (tipo float) tem aproximadamente 8 dígitos<br />
decimais significantes, enquanto que números de ponto flutuante de precisão dupla (tipo double) tem aproximadamente<br />
17 dígitos decimais significantes. O qualificativo “aproximadamente” se refere ao fato que os<br />
números de ponto flutuante são armazenados no computador na base binária, logo a conversão da base<br />
binária para a base decimal introduz alguma imprecisão.<br />
Um número de ponto flutuante é armazenado internamente em duas partes: um significando e um<br />
expoente, semelhante à notação científica.<br />
Esta escolha de representação garante que a distribuição dos valores representados em ponto flutuante<br />
não será uniforme. Para entender isso, vamos assumir que o significando é limitado a um único dígito decimal<br />
e que o expoente é restrito aos valores −1, 0, 1. A tabela abaixo registra todos os números reais positivos<br />
que podemos representar:<br />
∞<br />
n=1<br />
an<br />
10 n<br />
−1 0 1<br />
0 0<br />
1 1 × 10 −1 = 0, 1 1 × 10 0 = 1 1 × 10 1 = 10<br />
2 2 × 10 −1 = 0, 2 2 × 10 0 = 2 2 × 10 1 = 20<br />
3 3 × 10 −1 = 0, 3 3 × 10 0 = 3 3 × 10 1 = 30<br />
4 4 × 10 −1 = 0, 4 4 × 10 0 = 4 4 × 10 1 = 40<br />
5 5 × 10 −1 = 0, 5 5 × 10 0 = 5 5 × 10 1 = 50<br />
6 6 × 10 −1 = 0, 6 6 × 10 0 = 6 6 × 10 1 = 60<br />
7 7 × 10 −1 = 0, 7 7 × 10 0 = 7 7 × 10 1 = 70<br />
8 8 × 10 −1 = 0, 8 8 × 10 0 = 8 8 × 10 1 = 80<br />
9 9 × 10 −1 = 0, 9 9 × 10 0 = 9 9 × 10 1 = 90<br />
O fato do espaço entre os valores em ponto flutuante aumentar em proporção ao tamanho dos números é<br />
que justifica o nome ponto flutuante. Uma representação em que os espaços entre os valores representados<br />
tem um tamanho fixo é chamada uma representação em ponto fixo.<br />
0.2 Definição. Definimos a precisão de um ponto flutuante como sendo o número de dígitos significativos<br />
que ele possui em seu significando. A exatidão de um ponto flutuante é a sua aproximação do valor<br />
exato.<br />
Quanto mais dígitos significativos um ponto flutuante possui, mais preciso ele é: o double 0.3333333333333333<br />
é uma representação mais precisa do número real 1/3 do que o float 0.3333333. Por outro lado, o float<br />
0.3333333 é uma representação mais exata de 1/3 do que o double 0.3444444444444444, apesar deste ser<br />
um ponto flutuante mais preciso, porque a maioria dos seus dígitos significativos estão errados. Os erros<br />
computacionais tais como os erros de cancelamento e arredondamento afetam a exatidão de um valor em<br />
ponto flutuante. Aumentar a precisão de float para double tem o potencial de aumentar a exatidão, mas<br />
não a garante.
Rodney Josué Biezuner 5<br />
0.2 Erros de Arredondamento<br />
Quando um valor computado está entre dois valores representáveis, ele será substituído pelo valor representado<br />
mais próximo. Esta é a origem dos erros de arredondamento.<br />
0.3 Definição. Definimos o erro de arredondamento por<br />
Erro de arredondamento = |(valor representado) − (valor exato)| .<br />
0.4 Definição. Um erro de cancelamento é um erro de arredondamento que ocorre quando a maioria<br />
dos dígitos significativos são perdidos durante a subtração de dois valores aproximadamente iguais.<br />
0.3 O Padrão de Ponto Flutuante IEEE 754<br />
Antes do padrão IEEE 754 ser publicado em 1985, existiam muitos formatos de ponto flutuante implementados<br />
em hardware e software, o que dificultava a portabilidade dos programas. Os resultados obtidos variavam<br />
de uma máquina para outra. Atualmente, a maioria dos fabricadores aderem ao padrão IEEE 754, fruto de<br />
uma cooperação histórica entre cientistas de computação e desenhistas de chips de microprocessadores. A<br />
sigla “IEEE” significa Institute of Electrical and Electronics Engineers.<br />
Os formatos de precisão aritmética simples float e dupla double são armazenados em 32 bits e 64 bits,<br />
respectivamente. Cada formato divide um número em três partes: sinal (um bit), expoente e fração. Os dois<br />
formatos diferem quanto ao número de bits alocados para o expoente e para a fração. No formato float 8<br />
bits são alocados para o expoente e 23 para a fração, enquanto que no formato double 11 bits são alocados<br />
para o expoente e 52 para a fração. O bit de sinal representa o sinal do número: 0 para positivo e 1 para<br />
negativo. O expoente não possui sinal: para representar expoentes negativos, o padrão adiciona um viés<br />
positivo; para obter o valor verdadeiro do expoente (sem viés), é necessário subtrair o viés. No formato de<br />
precisão simples, o expoente com 8 bits pode armazenar valores (com viés) entre 0 e 255, mas 0 e 255 são<br />
reservados; o viés é 127, de modo que os valores verdadeiros (sem viés) do expoente variam entre −126 e<br />
+127. No formato de precisão dupla, o expoente com 11 bits pode armazenar valores (com viés) entre 0 e<br />
2047, com 0 e 2047 são reservados; o viés é 1023, de modo que os valores verdadeiros (sem viés) do expoente<br />
variam entre −1022 e +1023.<br />
0.3.1 Números normalizados<br />
Representemos por s o sinal, e o expoente e f a fração. Quando e não é um valor reservado (isto é, 1 e 254<br />
no formato float e 1 e 2047 no formato double) existe um algarismo 1 e um ponto binário . implícitos<br />
à esquerda do primeiro bit de f, de modo que o número representado por s, e, f é o número<br />
n = (−1) s × (1.f) × 2 E<br />
onde E = e − 127 (float) ou E = e − 1023 (double), chamado um número normalizado. O algarismo 1 e<br />
o ponto binário implícitos, juntamente com a parte fracionária f, constituem o significando do número, de<br />
modo que um número de precisão simples possui 24 bits no seu significando, enquanto que um número de<br />
precisão dupla possui 53 bits no seu significando.<br />
Assim, o maior valor possível em módulo para float corresponde a<br />
ou seja,<br />
s = 1, e = 254 e f = 11111111111111111111111,<br />
23<br />
i=0<br />
1<br />
2 i × 2127 ≈ 3, 4028 × 10 38 ,
Rodney Josué Biezuner 6<br />
enquanto que o maior valor possível em módulo para double corresponde a<br />
ou seja,<br />
s = 0, e = 2047 e f = 1111111111111111111111111111111111111111111111111111,<br />
52<br />
i=0<br />
0.3.2 Números denormalizados<br />
1<br />
2 i × 21023 ≈ 1, 7977 × 10 308 .<br />
Se e = 0 (um dos valores reservados) e f = 0, nós temos o que se chama um número denormalizado (ou<br />
subnormal). Existe um algarismo 0 e um ponto binário . implícitos à esquerda do primeiro bit de f, de modo<br />
que o número representado por s, e, f é o número<br />
n = (−1) s × (0.f) × 2 E<br />
onde E = −126 (float) ou E = −1022 (double).<br />
Assim, o menor valor possível em módulo para float corresponde a<br />
ou seja,<br />
s = 0, e = 0 e f = 00000000000000000000001,<br />
1<br />
2 23 × 2−126 ≈ 1, 4013 × 10 −45 ,<br />
um pouco menor do que o menor valor possível 1 × 2 −126 = 1, 1755 × 10 −38 para um float normalizado,<br />
correspondente a<br />
s = 0, e = 1 e f = 00000000000000000000000.<br />
O menor valor possível em módulo para double corresponde a<br />
ou seja,<br />
s = 0, e = 0 e f = 0000000000000000000000000000000000000000000000000001,<br />
1<br />
2 52 × 2−1022 ≈ 4, 9407 × 10 −324<br />
um pouco menor do que o menor valor possível 1 × 2 −1022 ≈ 2, 2251 × 10 −308 para um double normalizado,<br />
correspondente a<br />
s = 0, e = 1 e f = 0000000000000000000000000000000000000000000000000000.<br />
A existência dos números denormalizados permitem uma convergência para zero menos abrupta. Quando<br />
os valores computados vão se tornando menores e menores, atingindo o menor valor possível para um float<br />
ou double normalizado, ao invés de caírem abruptamente para zero na próxima iteração, eles são convertidos<br />
em números denormalizados.<br />
No entanto, o espaço entre números representados no intervalo [1, 2] é igual a 2 −52 ≈ 2.22 × 10 −16 ; em<br />
geral, no intervalo 2 j , 2 j+1 o espaço é 2 j × 2 −52 , de modo que o espaço relativo nunca excede 2 −52 .<br />
0.3.3 Outros valores numéricos<br />
Se e = f = 0, o valor numérico é −0 ou +0, dependendo de s. Se f = 0 e e = 255 para float ou se e = 2047<br />
para double, então o valor numérico é −Infinity ou +Infinity. Se f = 0 e e = 255 para float ou se<br />
e = 2047 para double, então independentemente do valor de 0 nós temos NaN (Not a Number). Por exemplo,<br />
dividindo 0 por 0 resulta em NaN.<br />
Em geral, no padrão IEEE 754 uma operação inválida produz NaN, divisão por zero produz ±Infinity,<br />
overflow produz o maior número normalizado possível ou ±Infinity e underflow produz ±0, o menor<br />
número normalizado possível ou um número denormalizado.
Capítulo 1<br />
Matrizes Esparsas<br />
Matrizes esparsas são matrizes onde a imensa maioria das entradas são nulas. Esta é uma definição<br />
vaga. Não existe um limite inferior para o número de zeros em uma matriz, em relação ao tamanho desta,<br />
a partir do qual podemos declarar uma matriz com sendo esparsa. Isto é, não existe um limite preciso a<br />
partir do qual uma matriz deixa de ser esparsa e se torna uma matriz densa (isto é, uma matriz em que<br />
o número de zeros é irrelevante). Em geral, matrizes esparsas são definidas operacionalmente, no sentido<br />
de que uma matriz pode ser chamada esparsa, sempre que técnicas especiais podem ser usadas para tirar<br />
vantagem do grande número de zeros e sua localização. Equações diferenciais parciais são a maior fonte de<br />
problemas de álgebra linear numérica envolvendo matrizes esparsas. Engenheiros elétricos lidando com redes<br />
elétricas nos anos 1960s foram os primeiros a explorar a esparcidade das matrizes de coeficientes associadas<br />
aos problemas tratados para resolver sistemas lineares. Como os computadores tinham pouca capacidade<br />
de armazenamento e poder de processamento, e os problemas envolviam um número enorme de variáveis,<br />
métodos de solução direta que tiram vantagem da existência de um número muito grande de zeros tiveram<br />
que ser desenvolvidos.<br />
1.1 Problema Modelo<br />
Como fonte de matrizes esparsas, consideraremos o problema de resolver a equação de Poisson com condição<br />
de Dirichlet discretizada através de diferenças finitas em uma e duas dimensões, que fornece uma matriz<br />
esparsa simétrica.<br />
1.1.1 Problema de Poisson Unidimensional<br />
Considere o problema de Dirichlet para a equação de Poisson no intervalo unitário I = (0, 1):<br />
−u ′′ = f (x) se 0 < x < 1,<br />
u (0) = a, u (1) = b.<br />
Seja h > 0. As expansões de Taylor para uma função u à direita e à esquerda de um ponto x0 são dadas<br />
respectivamente por<br />
e<br />
u(x0 + h) = u(x0) + u ′ (x0)h + 1<br />
2! u′′ (x0)h 2 + 1<br />
3! u′′′ (x0)h 3 + . . . ,<br />
u(x0 − h) = u(x0) − u ′ (x0)h + 1<br />
2! u′′ (x0)h 2 − 1<br />
3! u′′′ (x0)h 3 + . . .<br />
Se somarmos estas duas equações, obtemos<br />
u ′′ (x0) = u(x0 − h) − 2u(x0) + u(x0 + h)<br />
h 2<br />
7<br />
− 2<br />
4! u(4) (x0)h 2 − 2<br />
5! u(6) (x0)h 4 − . . . ,<br />
(1.1)
Rodney Josué Biezuner 8<br />
o que fornece uma aproximação para a derivada segunda u ′′ (x0) de u em x0:<br />
u ′′ (x0) ≈ u(x0 − h) − 2u(x0) + u(x0 + h)<br />
h 2<br />
com erro<br />
ɛ = − 1<br />
12 u(4) (ξ)h 2 = O(h 2 ),<br />
onde x0 − h ξ x0 + h. Esta aproximação é chamada uma diferença centrada para a derivada segunda.<br />
Divida o intervalo [0, 1] em n subintervalos de comprimento h = 1/n através de n − 1 pontos interiores<br />
uniformemente espaçados:<br />
x0 = 0, x1 = h, x2 = 2h, . . . , xn−1 = (n − 1) h, xn = nh = 1,<br />
de modo que [0, 1] = [x0, x1] ∪ [x1, x2] ∪ . . . ∪ [xn−1, xn]. Introduzimos a notação:<br />
ui = u(xi),<br />
fi = f (xi) .<br />
Esta é uma discretização uniforme do intervalo [0, 1]. Uma vez discretizado o domínio da equação diferencial<br />
parcial, procedemos à discretização desta última. Usando diferenças centradas para cada ponto interior xi,<br />
1 i n − 1, temos<br />
−ui−1 + 2ui − ui+1<br />
h 2 = fi. (1.2)<br />
Esta discretização em diferenças finitas para a equação de Poisson é chamada fórmula dos três pontos.<br />
Portanto, para encontrar a solução discretizada temos que resolver o sistema linear com n − 1 equações a<br />
n − 1 incógnitas: ⎧⎪ ⎨<br />
ou seja,<br />
⎪⎩<br />
1<br />
h2 ⎡<br />
2 −1<br />
⎢<br />
−1<br />
⎢<br />
⎣<br />
2<br />
−1<br />
−1<br />
. ..<br />
. ..<br />
h −2 (2u1 − u2) = f1 + ah −2<br />
h −2 (−u1 + 2u2 − u3) = f2<br />
h −2 (−un−3 + 2un−2 − un−1) = fn−2<br />
h −2 (−un−2 + 2un−1) = fn−1 + bh −2<br />
. ..<br />
. .. −1<br />
−1 2 −1<br />
−1 2<br />
Esta é uma matriz tridiagonal, simétrica e esparsa.<br />
⎤ ⎡<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎦ ⎣<br />
1.1.2 Problema de Poisson Bidimensional<br />
.<br />
u1<br />
u2<br />
.<br />
.<br />
.<br />
un−2<br />
un−1<br />
⎤<br />
⎡<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎥ = ⎢<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎦ ⎣<br />
,<br />
f1 + ah −2<br />
f2<br />
..<br />
. .<br />
fn−2<br />
fn−1 + bh −2<br />
Considere o problema de Dirichlet homogêneo para a equação de Poisson no quadrado unitário Ω = (0, 1) ×<br />
(0, 1) <br />
−∆u = f (x, y)<br />
u = 0<br />
em Ω,<br />
sobre ∂Ω.<br />
(1.3)<br />
Discretizamos o quadrado Ω através dos pontos<br />
(xi, yj) = (ih, jh) , 0 i, j n,<br />
⎤<br />
⎥ .<br />
⎥<br />
⎦
Rodney Josué Biezuner 9<br />
onde<br />
produzindo a malha (ou gride) uniforme<br />
A malha dos pontos interiores é dada por<br />
enquanto que a fronteira discretizada é o conjunto<br />
A equação de Poisson<br />
pode ser agora discretizada. Denotamos<br />
h = 1<br />
n ,<br />
Ωd = (x, y) ∈ Ω : x = i∆x, y = j∆y, 0 i, j n .<br />
Ωd = {(x, y) ∈ Ω : x = i∆x, y = j∆y, 1 i, j n − 1} ,<br />
∂Ωd = {(x, y) ∈ ∂Ω : x = i∆x, y = j∆y, 0 i n, 0 j m} .<br />
−uxx − uyy = f (x, y)<br />
ui,j = u (xi, yj) ,<br />
fi,j = f (xi, yj) .<br />
Aproximamos cada derivada parcial de segunda ordem pela sua diferença centrada, obtendo<br />
−uxx ≈ −ui−1,j + 2ui,j − ui+1,j<br />
∆x2 ,<br />
−uyy ≈ −ui,j−1 + 2ui,j − ui,j+1<br />
∆y2 .<br />
Portanto, a equação de Poisson discretizada toma a forma<br />
−ui−1,j − ui,j−1 + 4ui,j − ui+1,j − ui,j+1<br />
h 2 = fi,j. (1.4)<br />
Como a função u é calculada em cinco pontos, esta discretização em diferenças finitas para a equação de<br />
Poisson é chamada a fórmula dos cinco pontos.<br />
Para cada ponto interior da malha obtemos uma equação, logo temos um sistema linear de (n − 1) 2<br />
equações com o mesmo número de incógnitas. Diferente do caso unidimensional, no entanto, não existe uma<br />
maneira natural de ordenar os pontos da malha, logo não podemos obter imediatamente uma representação<br />
matricial para o problema discretizado. Precisamos antes escolher uma ordenação para os pontos da malha,<br />
e como existem várias ordenações possíveis, existem várias matrizes associadas.<br />
Talvez a mais simples ordenação é a ordem lexicográfica. Nesta ordem, os pontos da malha são percorridos<br />
linha por linha, da esquerda para a direita, de baixo para cima:<br />
u1,1, u2,1, . . . , un−1,1, u1,2, u2,2, . . . , un−1,2, . . . . . . , u1,m−1, u2,m−1, . . . , un−1,m−1.<br />
Neste caso, a matriz associada ao sistema linear é uma matriz (n − 1) 2 × (n − 1) 2 que pode ser escrita como<br />
uma matriz de (n − 1) 2 blocos de dimensão (n − 1) × (n − 1) na forma<br />
A = 1<br />
h2 ⎡<br />
B −I<br />
⎤<br />
⎢<br />
−I<br />
⎢<br />
⎣<br />
B<br />
−I<br />
−I<br />
. ..<br />
. ..<br />
. ..<br />
. ..<br />
−I<br />
−I<br />
B −I<br />
⎥<br />
⎦<br />
−I B<br />
(n−1)×(n−1)
Rodney Josué Biezuner 10<br />
onde I é a matriz identidade (n − 1) × (n − 1) e B é a matriz (n − 1) × (n − 1) dada por<br />
Observe que<br />
⎡<br />
4 −1<br />
⎢<br />
−1<br />
⎢<br />
B = ⎢<br />
⎣<br />
4<br />
−1<br />
−1<br />
. ..<br />
. ..<br />
para todo 1 i (n − 1) 2 , enquanto que<br />
. ..<br />
. .. −1<br />
−1 4 −1<br />
−1 4<br />
aii = 4<br />
aij = −1<br />
⎤<br />
⎥<br />
⎦<br />
(n−1)×(n−1)<br />
se o ponto j é vizinho à esquerda ou à direita do ponto i, ou se o ponto j é vizinho acima ou abaixo do ponto<br />
i. Por exemplo, se n = 4, temos<br />
A = 1<br />
h2 ⎡<br />
4<br />
⎢ −1<br />
⎢ 0<br />
⎢ −1<br />
⎢ 0<br />
⎢ 0<br />
⎢ 0<br />
⎣ 0<br />
−1<br />
4<br />
−1<br />
0<br />
−1<br />
0<br />
0<br />
0<br />
0<br />
−1<br />
4<br />
0<br />
0<br />
−1<br />
0<br />
0<br />
−1<br />
0<br />
0<br />
4<br />
−1<br />
0<br />
−1<br />
0<br />
0<br />
−1<br />
0<br />
−1<br />
4<br />
−1<br />
0<br />
−1<br />
0<br />
0<br />
−1<br />
0<br />
−1<br />
4<br />
0<br />
0<br />
0<br />
0<br />
0<br />
−1<br />
0<br />
0<br />
4<br />
−1<br />
0<br />
0<br />
0<br />
0<br />
−1<br />
0<br />
−1<br />
4<br />
⎤<br />
0<br />
0 ⎥<br />
0 ⎥<br />
0 ⎥<br />
0 ⎥<br />
−1 ⎥<br />
0 ⎥<br />
−1 ⎦<br />
0 0 0 0 0 −1 0 −1 4<br />
Observe que a matriz A é uma matriz simétrica, pentadiagonal e esparsa.<br />
1.2 Matrizes Esparsas<br />
Outros problemas de EDPs, especialmente aqueles envolvendo derivadas primeiras (tais como problemas de<br />
convecção-difusão), em geral levam a matrizes não-simétricas. Discretizações de outros tipos, tais como as<br />
encontradas em elementos finitos, levam a matrizes esparsas com outro tipo de estrutura. De qualquer modo,<br />
todos possuem em comum o fato de a matriz de discretização ser uma matriz esparsa.<br />
Existem essencialmente dois tipos de matrizes esparsas: estruturadas e não-estruturadas. Uma<br />
matriz estruturada é uma em que as entradas não-nulas formam um padrão regular, frequentemente ao<br />
longo de um número pequeno de diagonais (tais como as matrizes que vimos no problema modelo na seção<br />
anterior). Os elementos não-nulos podem também estar organizados em blocos (submatrizes densas) de<br />
mesmo tamanho, organizadas ao longo de um número pequeno de blocos diagonais. Discretizações através de<br />
diferenças finitas tipicamente dão origem a matrizes esparsas com estruturas regulares. Uma matriz esparsa<br />
em que as entradas não-nulas são irregularmente localizadas é uma matriz esparsa irregularmente estruturada.<br />
Os métodos de volumes finitos ou elementos finitos aplicados a domínios com geometria complexa em geral<br />
levam matrizes irregularmente estruturadas.<br />
Esta distinção não afeta em geral métodos de solução direta mas é muito importante para os métodos de<br />
solução iterativos. Neste últimos, uma das operações básicas essenciais é a do produto de uma matriz por<br />
um vetor.
Rodney Josué Biezuner 11<br />
1.3 Implementação Computacional de Matrizes Esparsas<br />
Para tirar vantagem do grande número de elementos nulos, esquemas especiais são necessários para armazenar<br />
matrizes esparsas na memória do computador. O principal objetivo é representar apenas os elementos nãonulos.<br />
O esquema mais simples de armazenamento é o chamado formato de coordenadas. A estrutura de dados<br />
consiste de três vetores (arrays): um vetor real contendo os valores e dois vetores inteiros, um deles contendo<br />
os índices das linhas, enquanto que o outro contém os índices das colunas.<br />
1.1 Exemplo. A matriz<br />
pode ser representada por<br />
⎡<br />
⎢<br />
A = ⎢<br />
⎣<br />
1 0 0 3 0<br />
5 7 0 0 2<br />
3 0 2 4 0<br />
0 0 6 9 0<br />
0 0 0 0 4<br />
valueArray = 2 9 1 4 3 4 2 5 3 6 7 ,<br />
rowIndexArray = 3 4 1 3 3 5 2 2 1 4 2 ,<br />
columnIndexArray = 3 4 1 4 1 5 5 1 4 3 2 .<br />
Cada vetor tem comprimento igual ao número de elementos não-nulos da matriz. Observe que os<br />
elementos são listados em ordem arbitrária. <br />
Provavelmente, o formato mais popular para armazenar matrizes esparsas gerais é o formato compressed<br />
row storage (CRS). Neste esquema, as linhas da matriz são armazenadas uma a uma em um vetor real, da<br />
primeira até a última, preservando a ordem. Um segundo vetor inteiro contendo os índices das colunas é<br />
usado. Um terceiro vetor inteiro contém a posição no vetor de valores reais ou no vetor de índices de coluna<br />
onde cada linha começa, mais um elemento para indicar a primeira posição vazia dos dois vetores.<br />
1.2 Exemplo. A matriz<br />
⎡<br />
⎢<br />
A = ⎢<br />
⎣<br />
pode ser representada no formato CSR por<br />
1 0 0 3 0<br />
5 7 0 0 2<br />
3 0 2 4 0<br />
0 0 6 9 0<br />
0 0 0 0 4<br />
valueArray = 1 3 5 7 2 3 2 4 6 9 4 ,<br />
columIndexArray = 1 4 1 2 5 1 3 4 3 4 5 ,<br />
rowPointerArray = 1 3 6 9 11 12 .<br />
Enquanto o comprimento dos dois primeiros vetores é igual ao número de elementos não-nulos da<br />
matriz., o comprimento do terceiro vetor é igual ao número de linhas da matriz mais um. Dentro<br />
de cada linha os elementos ainda podem ser armazenados em ordem arbitrária, o que pode ser muito<br />
conveniente. <br />
Este esquema é o preferido pois é o mais útil para realizar as computações típicas, tais como multiplicação<br />
da matriz por vetores. Em CRS, a multiplicação matriz-vetor pode ser implementada da seguinte forma (em<br />
⎤<br />
⎥<br />
⎦<br />
⎤<br />
⎥<br />
⎦
Rodney Josué Biezuner 12<br />
C/C++ ou Java):<br />
for( int i = 0; i < n; i++ )<br />
{<br />
lowerIndex = rowPointerArray[i];<br />
upperIndex = rowPointerArray[i+1];<br />
//loop over row i<br />
for( int j = lowerIndex; j < upperIndex; j++ )<br />
Av[i] += valueArray[j]* v[columArray[j]];<br />
}<br />
Um esquema correspondente, armazenando colunas ao invés de linhas é o compressed column storage (CCS),<br />
usado no Octave.<br />
Os esquemas considerados acima são chamados estáticos. Esquemas dinâmicos, envolvendo listas encadeadas,<br />
em geral economizam ainda mais memória e tem acesso ainda mais rápido à memória. Cada linha<br />
da matriz pode ser representada por uma lista encadeada. A matriz toda é representada por uma lista de<br />
listas encadeadas, seguindo a ordem de linhas da matriz. Desta forma, o início de cada linha não precisa ser<br />
representado. O índice da coluna de cada elemento da linha ainda precisa ser representado, é claro, e isso<br />
pode ser feito através de um ponteiro específico.<br />
Outras esquemas podem ser utilizados, tirando vantagem da estrutura da matriz esparsa. Por exemplo,<br />
em matrizes diagonais as diagonais não-nulas podem ser armazenadas separadamente. Em matrizes<br />
simétricas, é necessário armazenar apenas os elementos da diagonal principal e da parte triangular superior<br />
(ou inferior) da matriz, mas isso em geral implica em algoritmos mais complicados para fazer operações com<br />
a matriz.
Capítulo 2<br />
Invertibilidade de Matrizes Esparsas<br />
Neste capítulo desenvolveremos métodos gerais e fáceis de aplicar para determinar a invertibilidade de matrizes<br />
esparsas, principalmente aquelas que surgem através da discretização de equações diferenciais parciais<br />
através de diferenças finitas. Em particular, isso implicará a existência e unicidade de soluções para sistemas<br />
lineares envolvendo tais matrizes. Uma vez que isso esteja estabelecido, poderemos nos dedicar nos próximos<br />
capítulos a estudar métodos iterativos para encontrar estas soluções.<br />
2.1 Normas Matriciais<br />
Lembramos o conceito de norma vetorial:<br />
2.1 Definição. Seja V um espaço vetorial real ou complexo. Uma norma vetorial em V é uma função<br />
|·| : V −→ R que satisfaz as seguintes propriedades:<br />
(i) |x| > 0 para todo x = 0 e |x| = 0 se x = 0;<br />
(ii) αx = |α| x para todo x ∈ V e para todo α ∈ R;<br />
(iii) (Desigualdade Triangular) x + y x + y para todos x, y ∈ V.<br />
Denotaremos por Mn (R) o espaço vetorial das matrizes complexas n × n e por Mn (C) o espaço vetorial<br />
das matrizes complexas n × n. Quando estivermos nos referindo a qualquer um destes espaços (ou seja,<br />
quando a afirmação que fizermos valer para qualquer um deles), usaremos a notação Mn simplesmente.<br />
2.2 Definição. Uma norma matricial no espaço vetorial Mn é uma norma vetorial · : Mn −→ R que<br />
satisfaz a propriedade submultiplicativa<br />
para todas as matrizes A, B ∈ Mn.<br />
AB A B (2.1)<br />
A seguir, veremos alguns exemplos das normas matriciais mais importantes em Mn. A verificação de que<br />
as normas apresentadas constituem normas vetoriais é deixada como exercício (Exercício 2.1).<br />
2.3 Exemplo. Norma l1 (norma da soma):<br />
A 1 =<br />
13<br />
n<br />
|aij| . (2.2)<br />
i,j=1
Rodney Josué Biezuner 14<br />
De fato,<br />
<br />
AB 1 =<br />
n<br />
<br />
n <br />
<br />
<br />
i,j=1<br />
k=1<br />
aikbkj<br />
<br />
<br />
<br />
<br />
<br />
n<br />
i,j,k=1<br />
2.4 Exemplo. Norma l2 (norma euclidiana):<br />
Com efeito,<br />
AB 2<br />
2 =<br />
n<br />
<br />
n <br />
<br />
<br />
i,j=1<br />
k=1<br />
aikbkj<br />
<br />
<br />
<br />
<br />
<br />
2<br />
<br />
n<br />
<br />
n<br />
i,j=1<br />
|aikbkj| <br />
⎛<br />
A2 = ⎝<br />
k=1<br />
|aik| 2<br />
n<br />
i,j,k,l=1<br />
n<br />
i,j=1<br />
n<br />
l=1<br />
|aij| 2<br />
|blj| 2<br />
|aikblj| =<br />
⎞<br />
⎠<br />
<br />
1/2<br />
= ⎝<br />
n<br />
i,k=1<br />
|aik|<br />
n<br />
j,l=1<br />
|blj| = A 1 B 1 .<br />
. (2.3)<br />
⎛<br />
n<br />
i,k=1<br />
|aik| 2<br />
⎞ ⎛<br />
⎠ ⎝<br />
n<br />
j,l=1<br />
|blj| 2<br />
⎞<br />
⎠ = A 2<br />
2 B2 2 .<br />
A norma l2 também é chamada mais raramente (e somente para matrizes) norma de Schur, norma de<br />
Frobenius ou norma de Hilbert-Schmidt. <br />
2.5 Exemplo. Normas lp:<br />
De modo geral, dado p 1, definimos a norma matricial<br />
⎛<br />
n<br />
Ap = ⎝ |aij| p<br />
⎞<br />
⎠<br />
<br />
i,j=1<br />
2.6 Exemplo. Norma l∞ modificada (norma do máximo modificada):<br />
A norma l∞ (norma do máximo)<br />
1/p<br />
A ∞ = max<br />
1i,jn |aij|<br />
é uma norma vetorial em Mn mas não é uma norma matricial: por exemplo, se<br />
então<br />
A =<br />
A 2 =<br />
1 1<br />
1 1<br />
2 2<br />
2 2<br />
e portanto A 2 ∞ = 2 > 1 = A ∞ A ∞ .<br />
No entanto, um múltiplo escalar desta norma vetorial é uma norma matricial:<br />
Com efeito,<br />
<br />
AB n∞ = n max<br />
<br />
n <br />
<br />
<br />
<br />
,<br />
<br />
. (2.4)<br />
A n∞ = n max<br />
1i,jn |aij| . (2.5)<br />
<br />
<br />
<br />
n max<br />
n<br />
aikbkj <br />
|aikbkj| n max A<br />
1i,jn 1i,jn<br />
1i,jn<br />
∞ B∞ k=1<br />
k=1<br />
k=1<br />
= n (n A∞ B∞ ) = n A∞ n B∞ = ABn∞ .<br />
n
Rodney Josué Biezuner 15<br />
2.7 Exemplo. Norma do operador:<br />
Dada uma norma vetorial |·| em R n ou C n , ela induz uma norma matricial através da definição<br />
A = max<br />
|x|=1<br />
|Ax| = max |Ax| = sup<br />
|x|1 x=0<br />
|Ax|<br />
. (2.6)<br />
|x|<br />
Aqui vemos A como um operador linear em Rn ou Cn , portanto contínuo, de modo que o máximo de<br />
A é atingido na esfera e na bola fechada. Para ver que a primeira e a terceira definições coincidem (de<br />
modo que o sup na terceira definição é de fato um máximo), use o fato que<br />
|Ax|<br />
|x| =<br />
<br />
<br />
<br />
A <br />
x <br />
.<br />
|x|<br />
Agora observe que<br />
max |Ax| max |Ax| ,<br />
|x|=1 |x|1<br />
já que a bola fechada contém a esfera. Por outro lado, se |x| = ε < 1, segue que<br />
<br />
<br />
<br />
A <br />
x <br />
=<br />
|x|<br />
|Ax| |Ax|<br />
= > |Ax| ,<br />
|x| ε<br />
de modo que o máximo de |Ax| não é atingido no interior da bola, logo<br />
max |Ax| max<br />
|x|=1 |x|1 |Ax|<br />
e portanto a primeira e a segunda definições coincidem. Finalmente, para ver que a norma do operador<br />
é uma norma matricial, escreva<br />
<br />
|ABx| |ABx| |Bx| |ABx|<br />
AB = max = max<br />
max<br />
x=0 |x| x=0 |Bx| |x| Bx=0 |Bx| max<br />
|Bx| |Ay|<br />
max<br />
x=0 |x| y=0 |y| max<br />
|Bx|<br />
= A B .<br />
x=0 |x|<br />
A norma do operador satisfaz a propriedade extremamente útil<br />
para todo vetor x ∈ R n ou C n . <br />
2.8 Exemplo. Norma do máximo das somas das linhas:<br />
|Ax| A |x| (2.7)<br />
A L = max<br />
1in<br />
j=1<br />
n<br />
|aij| . (2.8)<br />
Esta norma é a norma do operador induzida pela norma vetorial l∞. De fato, se x = (x1, . . . , xn),<br />
temos<br />
<br />
<br />
<br />
n<br />
<br />
<br />
n<br />
n<br />
|Ax| ∞ = max aijxj<br />
<br />
1in max |aijxj| max |aij| |x|<br />
1in<br />
1in<br />
∞ = AL |x| ∞ ,<br />
de modo que<br />
j=1<br />
j=1<br />
max<br />
|x|=1 |Ax| ∞ AL .<br />
Supondo que a i-ésima linha de A é não-nula, definimos o vetor y = (y1, . . . , yn) ∈ Cn por<br />
⎧<br />
⎨<br />
yi =<br />
⎩<br />
aij<br />
|aij|<br />
1<br />
se aij = 0,<br />
se aij = 0.<br />
,<br />
j=1
Rodney Josué Biezuner 16<br />
o que implica |y| ∞ = 1, aijyj = |aij| e<br />
max<br />
|x| ∞ =1 |Ax| ∞ |Ay| <br />
<br />
n<br />
∞ = max <br />
1in <br />
<br />
<br />
j=1<br />
aijyj<br />
2.9 Exemplo. Norma do máximo das somas das colunas:<br />
A C = max<br />
1jn<br />
i=1<br />
<br />
<br />
<br />
<br />
= max<br />
<br />
1in<br />
j=1<br />
n<br />
|aij| = AL .<br />
n<br />
|aij| . (2.9)<br />
Esta norma é a norma do operador induzida pela norma vetorial l1. De fato, escrevendo A em termos<br />
de suas colunas<br />
A = [A1 . . . An]<br />
segue que<br />
Se x = (x1, . . . , xn), segue que<br />
donde<br />
|Ax| 1 = |x1A1 + . . . + xnAn| 1 <br />
= A C<br />
n<br />
i=1<br />
A C = max<br />
1jn |Aj| 1 .<br />
n<br />
|xiAi| 1 =<br />
i=1<br />
|xi| = A C |x| 1 ,<br />
n<br />
|xi| |Ai| 1 <br />
i=1<br />
max<br />
|x| 1 =1 |Ax| 1 AC .<br />
Agora, se escolhermos yj = ej, temos que |yj| 1 = 1 e<br />
para todo k, logo<br />
<br />
2.10 Exemplo. p-normas:<br />
|Ay| 1 = |Aj| 1<br />
n<br />
i=1<br />
max<br />
|x| 1 =1 |Ax| 1 max<br />
1jn |Ayj| 1 = max<br />
1jn |Aj| 1 = AC .<br />
|xi| max<br />
1jn |Aj| 1<br />
Este é o nome geral para as normas do operador induzidas pela norma vetorial lp em R n ou C n . Para<br />
distingui-las das normas matriciais lp no próprio espaço vetorial Mn, vamos denotá-las por<br />
|||A||| p = sup<br />
x=0<br />
|Ax| p<br />
.<br />
|x| p<br />
O caso especial da norma do operador induzida pela norma vetorial l2 (a norma vetorial euclidiana) é<br />
também chamada a norma espectral e satisfaz<br />
|||A||| 2 = <br />
∗<br />
λmax = max |λ| : λ é um autovalor de A A .
Rodney Josué Biezuner 17<br />
De fato, A ∗ A é uma matriz hermitiana logo todos os seus autovalores são não-negativos. Pela caracterização<br />
variacional dos autovalores de uma matriz hermitiana temos<br />
λmax = max<br />
x=0<br />
〈A ∗ Ax, x〉 2<br />
|x| 2<br />
2<br />
= max<br />
x=0<br />
|Ax| 2<br />
.<br />
Observe que a 2-norma é diferente da norma matricial l2 (Exercício 2.3). Note também que se A é<br />
uma matriz hermitiana, então A ∗ A = A 2 e |||A||| 2 é portanto o módulo do maior autovalor de A, isto<br />
é, a norma espectral de A é o raio espectral de A, definido como sendo o maior valor absoluto dos<br />
autovalores λ1, . . . , λn de A:<br />
ρ (A) = max<br />
i=1,...,n |λi| ,<br />
<br />
2.11 Exemplo. Norma induzida por uma matriz invertível:<br />
2<br />
|x| 2<br />
2<br />
Se · é uma norma matricial qualquer e se S é uma matriz invertível, então<br />
define uma norma matricial. Com efeito,<br />
<br />
A S = S −1 AS (2.10)<br />
AB S = S −1 ABS = S −1 ASS −1 BS S −1 AS S −1 BS = A S B S .<br />
Lembramos que todas as normas em um espaço vetorial de dimensão finita são equivalentes, e isso vale em<br />
particular para normas matriciais:<br />
2.12 Teorema. Seja V um espaço vetorial real ou complexo de dimensão finita. Então todas as normas<br />
vetoriais em V são equivalentes, isto é, se · 1 e · 2 são duas normas vetoriais quaisquer em V ,<br />
então existem constantes C1, C2 > 0 tais que<br />
e<br />
para todo x ∈ V .<br />
x 1 C1 x 2<br />
x 2 C2 x 1<br />
Prova: Para mostrar a equivalência entre todas as normas de um espaço vetorial, por transitividade basta<br />
fixar uma norma · 1 e mostrar que qualquer norma arbitrária · 2 é equivalente a · 1 . Seja B = {e1, . . . , en}<br />
uma base para V , de modo que todo vetor x ∈ V se escreve na forma<br />
x =<br />
n<br />
i=1<br />
xiei<br />
e defina · 1 como sendo a norma ℓ 1 em relação a esta base:<br />
x 1 =<br />
n<br />
|xi| .<br />
i=1
Rodney Josué Biezuner 18<br />
Então, se · 2 é uma norma qualquer em V , segue da desigualdade triangular que<br />
x 2 <br />
n<br />
xiei2 =<br />
i=1<br />
<br />
<br />
max<br />
i=1,...,n ei 2<br />
= C2 x 1 ,<br />
n<br />
|xi| ei2 i=1<br />
<br />
n<br />
|xi|<br />
onde denotamos C2 = max<br />
i=1,...,n ei 2 .<br />
Para provar a desigualdade reversa, considere a esfera unitária na norma da soma S = {x ∈ V : x 1 = 1}.<br />
A desigualdade anterior garante que a função x ↦→ x 2 é contínua na topologia definida pela norma · 1 e<br />
portanto assume um valor mínimo m no conjunto fechado e limitado (compacto) S. Necessariamente m > 0:<br />
se existisse e = n<br />
xiei ∈ S tal que e2 = 0, teríamos e = n<br />
xiei = 0, contrariando o fato que {e1, . . . , en}<br />
i=1<br />
é um conjunto linearmente independente. Portanto,<br />
<br />
<br />
<br />
x <br />
<br />
x<br />
m<br />
1 2<br />
para todo x ∈ V , x = 0. Tomando C1 = 1/m, segue que x 1 C1 x 2 para todo x ∈ V . <br />
2.2 Matrizes Diagonalmente Dominantes<br />
2.13 Definição. Dizemos que uma matriz An×n é diagonalmente dominante se<br />
|aii| <br />
i=1<br />
i=1<br />
n<br />
|aij| para todo i = 1, . . . , n<br />
j=1<br />
j=i<br />
e estritamente diagonalmente dominante se<br />
|aii| ><br />
n<br />
|aij| para todo i = 1, . . . , n.<br />
j=1<br />
j=i<br />
2.14 Lema. Seja A ∈ Mn. Se existe alguma norma matricial · tal que I − A < 1, então A é invertível.<br />
Prova. De fato, sob esta condição, afirmamos que a inversa é dada explicitamente pela série<br />
Para todo N ∈ N podemos escrever<br />
k=0<br />
k=0<br />
A −1 =<br />
∞<br />
(I − A) k . (2.11)<br />
k=0<br />
N<br />
A (I − A) k N<br />
= [I − (I − A)] (I − A) k N<br />
=<br />
Como · é uma norma matricial, temos que<br />
<br />
<br />
(I − A) k k<br />
I − A .<br />
k=0<br />
<br />
(I − A) k N+1<br />
− (I − A) k = I − (I − A) N+1 .<br />
k=1
Rodney Josué Biezuner 19<br />
Logo, de I − A < 1 segue que<br />
lim<br />
N→∞ (I − A)N+1 = 0.<br />
Portanto, tomando o limite quando N → ∞, concluímos (2.11). <br />
2.15 Corolário. Se A ∈ Mn é uma matriz singular e · é uma norma matricial, então I − A 1. Em<br />
particular, se · é uma norma matricial, então I 1.<br />
Prova. Para provar a segunda afirmação do enunciado, basta tomar A = 0.<br />
2.16 Proposição. Se A é uma matriz estritamente diagonalmente dominante, então A é invertível.<br />
Prova. Denote por D a matriz diagonal cujas entradas diagonais são as entradas diagonais de A. Uma<br />
matriz estritamente diagonalmente dominante possui, por definição, entradas diagonais não-nulas, logo D é<br />
uma matriz invertível. A matriz D −1 A tem apenas 1’s na diagonal principal e se mostramos que D −1 A é<br />
invertível, isto implicará que A é invertível. Para provar isso, considere a matriz I − D−1A. Temos<br />
−1<br />
I − D A<br />
ij =<br />
<br />
0 se i = j,<br />
se i = j.<br />
−aij/aii<br />
Usemos a norma do máximo das somas das linhas. Para cada 1 i n temos<br />
n <br />
<br />
I − D −1 A n<br />
<br />
aij<br />
<br />
n<br />
= <br />
1<br />
ij = |aij| < 1,<br />
|aii|<br />
j=1<br />
j=1<br />
j=i<br />
logo I − D−1A < 1 e o resultado segue do Lema 2.14. <br />
Às vezes, exigir dominância diagonal estrita em todas as linhas é pedir demais. Para certas matrizes,<br />
dominância diagonal junto com dominância diagonal estrita em apenas uma linha é suficiente para garantir<br />
a sua invertibilidade. As matrizes de discretização obtidas no capítulo anterior satisfazem esta condição<br />
(nas linhas correspondentes à pontos adjacentes à fronteira), e nenhuma delas é estritamente diagonalmente<br />
dominante. Por outro lado, vale a pena ressaltar que esta condição não é suficiente para estabelecer a<br />
invertibilidade de uma matriz em geral, como o exemplo<br />
demonstra.<br />
⎡<br />
⎣<br />
aii<br />
4 2 1<br />
0 1 1<br />
0 1 1<br />
2.3 Teorema dos Discos de Gershgorin<br />
A primeira ferramenta teórica é o importante Teorema dos Discos de Gershgorin. Ele decorre da seguinte<br />
observação: se A é uma matriz complexa n × n, podemos sempre escrever A = D + B, onde D = diag<br />
(a11, . . . , ann) é a matriz diagonal formada pela diagonal principal de A e B consiste dos elementos restantes<br />
de A, possuindo uma diagonal principal nula. Se definirmos Aε = D + εB, então A0 = D e A1 = A. Os<br />
autovalores de D são a11, . . . , ann, enquanto que os autovalores de Aε devem estar localizados em vizinhanças<br />
dos pontos a11, . . . , ann, desde que ε seja suficientemente pequeno. O mesmo deve valer para os autovalores<br />
da matriz A: eles devem estar contidos em discos centrados nos elementos a11, . . . , ann da diagonal principal<br />
se os discos são suficientemente grandes. O Teorema de Gershgorin dá uma estimativa precisa e simples de<br />
calcular para os raios destes discos em função das entradas restantes da matriz A. Denote o disco complexo<br />
fechado de centro em a e raio R por<br />
⎤<br />
⎦<br />
j=1<br />
j=i<br />
DR (a) = {z ∈ C : |z − a| R} .
Rodney Josué Biezuner 20<br />
2.17 Teorema. (Teorema dos Discos de Gershgorin) Se A ∈ Mn (C) e<br />
Ri (A) =<br />
n<br />
|aij| (2.12)<br />
denota a soma dos valores absolutos dos elementos da linha i de A excetuando o elemento da diagonal<br />
principal, então todos os autovalores de A estão contidos na união dos n discos de Gershgorin<br />
G (A) =<br />
n<br />
i=1<br />
j=1<br />
j=i<br />
D Ri(A) (aii) . (2.13)<br />
Além disso, se uma união de k destes discos forma uma região que é disjunta dos n−k discos restantes,<br />
então existem exatamente k autovalores de A nesta região.<br />
Prova. Seja λ um autovalor de A e x = (x1, . . . , xn) = 0 um autovetor associado. Seja k um índice tal que<br />
|xk| |xj| para j = 1, . . . , n,<br />
isto é, xk é a coordenada de x de maior valor absoluto. Denotando por (Ax) k a k-ésima coordenada do vetor<br />
Ax = λx, temos<br />
n<br />
λxk = (Ax) k =<br />
que é equivalente a<br />
Daí,<br />
ou seja,<br />
|xk| |λ − akk| <br />
j=1<br />
j=k<br />
xk (λ − akk) =<br />
j=1<br />
j=k<br />
j=1<br />
n<br />
j=1<br />
j=k<br />
akjxj<br />
akjxj.<br />
n<br />
n<br />
n<br />
|akjxj| = |akj| |xj| |xk| |akj| = |xk| Rk (A) ,<br />
|λ − akk| Rk (A) .<br />
Isso prova o resultado principal do Teorema de Gershgorin (como não sabemos qual k é apropriado para<br />
cada autovalor λ, e um mesmo k pode servir para vários autovalores λ, tudo o que podemos afirmar é que<br />
os autovalores estão na união dos discos).<br />
Para provar a segunda afirmação, escreva A = D + B, onde D = diag (a11, . . . , ann) e defina<br />
para 0 t 1. Note que<br />
At = D + tB<br />
j=1<br />
j=k<br />
Ri (At) = Ri (tB) = tRi (A) .<br />
Para simplificar a notação, assuma que a união dos primeiros k discos de Gershgorin<br />
satisfaz Gk (A) ∩ [G (A) \Gk (A)] = ∅. Temos<br />
Gk (A) =<br />
k<br />
i=1<br />
D Ri(A) (aii)<br />
D Ri(At) (aii) = {z ∈ C : |z − aii| Ri (At)} = {z ∈ C : |z − aii| tRi (A)} ⊂ D Ri(A) (aii) ,
Rodney Josué Biezuner 21<br />
logo,<br />
e<br />
Gk (At) ⊂ Gk (A)<br />
Gk (A) ∩ [G (At) \Gk (At)] = ∅<br />
para 0 t 1. Porque os autovalores são funções contínuas das entradas de uma matriz, o caminho<br />
λi (t) = λi (At)<br />
é um caminho contínuo que liga λi (A0) = λi (D) = aii a λi (A1) = λi (A). Seja 1 i k. Como<br />
λi (At) ∈ Gk (At) ⊂ Gk (A), concluímos que para cada 0 t 1 existem k autovalores de At em Gk (A); em<br />
particular, fazendo t = 1, obtemos que Gk (A) possui pelo menos k autovalores de A. Da mesma forma, não<br />
pode haver mais que k autovalores de A em Gk (A), pois os n − k autovalores restantes de A0 = D começam<br />
fora do conjunto Gk (A) e seguem caminhos contínuos que permanecem fora de Gk (A). <br />
A união G (A) dos discos de Gershgorin é conhecida como a região de Gershgorin. Observe que enquanto<br />
não podemos em geral afirmar com certeza que cada disco de Gershgorin possui um autovalor, a segunda<br />
afirmação do teorema permite-nos fazer tal conclusão desde que os discos de Gershgorin sejam dois a dois<br />
disjuntos.<br />
O Teorema dos Discos de Gershgorin permite entender o resultado da Proposição 2.16: se uma matriz A é<br />
estritamente diagonalmente dominante, então os discos de Gershgorin D Ri(A) (aii) não interceptam a origem,<br />
logo 0 não pode ser um autovalor para a matriz A, o que implica que A é invertível. Além disso, se todos<br />
os elementos da diagonal principal de A são reais e positivos, então os autovalores de A estão localizados no<br />
semiplano direito de C, de modo que se A é também simétrica, concluímos que todos os autovalores de A<br />
são positivos.<br />
A aplicação mais óbvia do Teorema dos Discos de Gershgorin é na estimativa dos autovalores de uma<br />
matriz. Usos mais refinados do Teorema de Gershgorin permitem obter conhecimento mais preciso sobre<br />
onde os autovalores da matriz se encontram e correspondentemente melhores estimativas para o raio espectral<br />
de uma matriz. Por exemplo, como A e A t possuem os mesmos autovalores, existe um teorema dos discos<br />
de Gershgorin equivalente para as colunas de uma matriz. Em particular, todos os autovalores de A estão<br />
localizados na interseção destas duas regiões: G (A) ∩ G (A t ). Isso implica a seguinte estimativa simples para<br />
o raio espectral de uma matriz complexa:<br />
2.18 Corolário. Se A ∈ Mn (C), então<br />
⎛<br />
ρ (A) min ⎝ max<br />
i=1,...,n<br />
j=1<br />
n<br />
|aij| , max<br />
n<br />
⎞<br />
|aij| ⎠ = min (A<br />
j=1,...,n<br />
L , AC ) .<br />
i=1<br />
Prova. O ponto no i-ésimo disco de Gershgorin que é mais distante da origem tem módulo<br />
n<br />
|aii| + Ri (A) =<br />
e um resultado semelhante vale para as colunas de A. <br />
O resultado do Corolário 2.18 não é surpreendente em vista do raio espectral de uma matriz ser menor que<br />
qualquer norma matricial (veja o próximo capítulo). Um resultado melhor pode ser obtido uma vez que<br />
se observa que A e S−1AS também possuem os mesmos autovalores, qualquer que seja a matriz invertível<br />
S. Em particular, quando S = D = diag (p1, . . . , pn) é uma matriz diagonal com todos os seus elementos<br />
positivos, isto é, pi > 0 para todo i, aplicando o Teorema de Gershgorin à matriz<br />
<br />
D −1 AD =<br />
e à sua transposta, obtemos o seguinte resultado que permite obter uma estimativa arbitrariamente boa dos<br />
autovalores de A:<br />
pj<br />
j=1<br />
aij<br />
pi<br />
|aij|
Rodney Josué Biezuner 22<br />
2.19 Corolário. Se A ∈ Mn (C) e p1, . . . , pn > 0, então todos os autovalores de A estão contidos em<br />
Em particular,<br />
G D −1 AD ∩ G DA t D −1 =<br />
ρ (A) min<br />
2.4 Propriedade FC<br />
p1,...,pn>0<br />
⎛<br />
∩<br />
⎝ max<br />
i=1,...,n<br />
n<br />
i=1<br />
n<br />
i=1<br />
1<br />
⎧<br />
⎪⎨<br />
z ∈ C : |z − aii| <br />
⎪⎩<br />
1<br />
pi<br />
⎧<br />
⎪⎨<br />
⎪⎩ z ∈ C : |z − aii| pj<br />
n<br />
n<br />
n<br />
j=1<br />
j=i<br />
n<br />
i=1<br />
i=j<br />
pj |aij|<br />
1<br />
|aij|<br />
pi<br />
pj |aij| , max<br />
pi<br />
j=1,...,n<br />
j=1<br />
pj |aij|<br />
pi<br />
i=1<br />
1<br />
⎞<br />
⎫<br />
⎪⎬<br />
⎪⎭<br />
⎫<br />
⎪⎬<br />
⎪⎭ .<br />
(2.14)<br />
⎠ . (2.15)<br />
Na nossa busca por propriedades para matrizes diagonalmente dominantes que garantirão a sua invertibilidade,<br />
uma observação fundamental é a de que se A é uma matriz diagonalmente dominante, então 0 não<br />
pode ser um ponto interior de nenhum disco de Gershgorin. De fato, se λ é um autovalor de A interior a<br />
algum disco de Gershgorin então devemos ter desigualdade estrita<br />
|λ − aii| < Ri (A) =<br />
para algum i. Se 0 é um autovalor de A interior a algum disco de Gershgorin, então<br />
|aii| <<br />
n<br />
j=1<br />
j=i<br />
para algum i e A não pode ser diagonalmente dominante na linha i.<br />
Uma condição equivalente para que um autovalor λ de A não seja um ponto interior de nenhum disco de<br />
Gershgorin é que<br />
n<br />
|λ − aii| Ri (A) = |aij| para todo i = 1, . . . , n.<br />
j=1<br />
j=i<br />
Tais pontos λ na região de Gershgorin G (A) (não necessariamente autovalores de A) constituem precisamente<br />
a fronteira ∂G (A) da região de Gershgorin. Chamaremos a fronteira de um disco de Gershgorin<br />
{z ∈ C : |z − aii| = Ri (A)} um círculo de Gershgorin.<br />
2.20 Lema. Seja A ∈ Mn (C) e λ um autovalor de A que não é um ponto interior de nenhum disco de<br />
Gershgorin. Seja x = (x1, . . . , xn) = 0 um autovetor associado a λ e k um índice tal que<br />
Se i é qualquer índice tal que<br />
|aij|<br />
n<br />
j=1<br />
j=i<br />
|aij|<br />
|xk| |xj| para j = 1, . . . , n.<br />
|xi| = |xk|
Rodney Josué Biezuner 23<br />
então o i-ésimo círculo de Gershgorin passa por λ. Se, além disso,<br />
então<br />
aij = 0,<br />
|xj| = |xk|<br />
e o j-ésimo círculo de Gershgorin também passa por λ.<br />
Prova. Como na demonstração do Teorema de Gershgorin, temos<br />
|xi| |λ − aii| <br />
n<br />
n<br />
n<br />
|aijxj| = |aij| |xj| |xk| |aij| = |xk| Ri (A) (2.16)<br />
j=1<br />
j=i<br />
para todo índice i. Logo, se |xi| = |xk|, temos<br />
Como por hipótese<br />
para todo índice i, segue que<br />
j=1<br />
j=i<br />
|λ − aii| Ri (A) .<br />
|λ − aii| Ri (A)<br />
|λ − aii| = Ri (A) .<br />
Em geral, |xi| = |xk| implica que as desigualdades em (2.16) são identidades; em particular,<br />
donde<br />
n<br />
n<br />
|aij| |xj| = |xi|<br />
j=1<br />
j=i<br />
j=1<br />
j=i<br />
|aij|<br />
n<br />
|aij| (|xi| − |xj|) = 0.<br />
j=1<br />
j=i<br />
Esta é uma soma de termos não-negativos, pois |xi| |xj|, logo se aij = 0 necessariamente devemos ter<br />
|xj| = |xi| = |xk|. <br />
Este lema técnico tem as seguintes conseqüências úteis:<br />
2.21 Teorema. Seja A ∈ Mn (C) uma matriz cujas entradas são todas não-nulas e seja λ um autovalor<br />
de A que não é um ponto interior de nenhum disco de Gershgorin. Então todo círculo de Gershgorin<br />
de A passa por λ (isto é, λ está na interseção de todos os círculos de Gershgorin de A) e se x =<br />
(x1, . . . , xn) = 0 é um autovetor associado a λ então<br />
Prova. Decorre diretamente do lema anterior. <br />
j=1<br />
j=i<br />
|xi| = |xj| para todos i, j = 1, . . . , n.<br />
2.22 Corolário. Se A ∈ Mn (C) é uma matriz cujas entradas são todas não-nulas e diagonalmente dominante<br />
tal que |aii| > n<br />
|aij| para pelo menos alguma linha i, então A é invertível.<br />
j=1<br />
j=i
Rodney Josué Biezuner 24<br />
Prova. Pois, como A é diagonalmente dominante, se 0 é um autovalor de A então 0 não pode ser um ponto<br />
interior de nenhum disco de Gershgorin. Por outro lado, pelo teorema anterior, segue que todo círculo de<br />
Gershgorin passa por 0. Entretanto, o i-ésimo círculo de Gershgorin centrado em aii e com raio Ri < |aii|<br />
não pode passar por 0. Concluímos que 0 não é um autovalor de A, logo A é invertível. <br />
As matrizes do Corolário 2.22 são as antíteses das matrizes esparsas que nos interessam. Usando com<br />
maior cuidado a informação dada pelo Lema 2.20 podemos obter resultados que se aplicam a matrizes<br />
esparsas.<br />
2.23 Definição. Dizemos que uma matriz A = (aij) ∈ Mn (C) satisfaz a propriedade FC se para todo par<br />
de inteiros distintos i, j existe uma seqüência de inteiros distintos i1 = i, i2, i3, . . . , im−1, im = j, com<br />
1 m n, tais que todas as entradas matriciais<br />
são não-nulas.<br />
ai1i2 , ai2i3 , . . . , aim−1im<br />
Por exemplo, a matriz diagonalmente dominante não-invertível<br />
⎡<br />
4<br />
⎣ 0<br />
2<br />
1<br />
1<br />
1<br />
⎤<br />
⎦ ,<br />
0 1 1<br />
já vista anteriormente, não satisfaz a propriedade FC porque o par 2, 1 não admite tal seqüência (a única<br />
seqüência possível é a23, a31). Já qualquer par de inteiros distintos i, j tal que aij = 0 admite a seqüência<br />
trivial não-nula aij, de modo que uma matriz cujas entradas não-diagonais são todas não-nulas satisfaz a<br />
propriedade FC. O significado da abreviatura “FC”, ou “fortemente conexo”, ficará claro mais adiante.<br />
2.24 Teorema. Seja A ∈ Mn (C) uma matriz que satisfaz a propriedade FC e seja λ um autovalor de A que<br />
não é um ponto interior de nenhum disco de Gershgorin. Então todo círculo de Gershgorin de A passa<br />
por λ (isto é, λ está na interseção de todos os círculos de Gershgorin de A) e se x = (x1, . . . , xn) = 0<br />
é um autovetor associado a λ então<br />
|xi| = |xj| para todos i, j = 1, . . . , n.<br />
Prova. Seja x = (x1, . . . , xn) = 0 um autovetor associado a λ e i um índice tal que<br />
Pelo Lema 2.20,<br />
|xi| |xk| para k = 1, . . . , n.<br />
|λ − aii| = Ri (A) .<br />
Seja j = i qualquer outro índice e i1 = i, i2, i3, . . . , im−1, im = j, com 1 m n, índices tais que todas as<br />
entradas matriciais<br />
aii2 , ai2i3 , . . . , aim−1j = 0.<br />
Como aii2 = 0, segue da segunda afirmativa do Lema 2.20 que |xi2| = |xi|. Mas então ai2i3 = 0 e portanto<br />
|xi3| = |xi2| = |xi|. Prosseguindo desta forma, concluímos que<br />
|xi| = |xi2| = . . . <br />
xim−1<br />
= |xj| .<br />
Em particular, segue novamente do Lema 2.20 que o j-ésimo círculo de Gershgorin passa por λ. Como j é<br />
arbitrário, isso prova o teorema. <br />
2.25 Corolário. Se A ∈ Mn (C) é uma matriz que satisfaz a propriedade FC e diagonalmente dominante<br />
tal que |aii| > n<br />
|aij| para pelo menos alguma linha i, então A é invertível.<br />
j=1<br />
j=i
Rodney Josué Biezuner 25<br />
Prova. Segue do teorema anterior da mesma forma que o Corolário 2.22 segue do Teorema 2.21. <br />
Vamos tentar entender melhor o significado da propriedade FC. Note que ela se refere apenas à localização<br />
dos elementos não-nulos de A fora da diagonal principal – os elementos da diagonal principal e os valores<br />
específicos dos elementos fora da diagonal principal são irrelevantes. Isso motiva as seguintes definições:<br />
2.26 Definição. Dada uma matriz A = (aij) ∈ Mn (C) definimos o módulo da matriz A como sendo a<br />
matriz<br />
|A| = (|aij|)<br />
cujos elementos são os módulos dos elementos da matriz A e a matriz indicadora de A como sendo<br />
a matriz<br />
M (A) = (µij) ,<br />
onde<br />
µij =<br />
1 se aij = 0,<br />
0 se aij = 0.<br />
O conceito de uma seqüência de entradas não-nulas da matriz A que aparece na definição da propriedade<br />
FC pode ser visualizado em termos de caminhos em um grafo associado a A:<br />
2.27 Definição. Dada uma matriz A ∈ Mn (C), o grafo direcionado de A é o grafo direcionado Γ (A)<br />
com n nodos P1, . . . , Pn tais que existe um arco direcionado em Γ (A) de Pi a Pj se e somente se aij = 0.<br />
Um caminho direcionado γ em um grafo Γ é uma seqüência de arcos Pi1Pi2, Pi2Pi3, . . . em Γ. O<br />
comprimento de um caminho direcionado é o número de arcos sucessivos no caminho direcionado. Um<br />
ciclo é um caminho direcionado que começa e termina no mesmo nó.<br />
Dizemos que um grafo direcionado é fortemente conexo se entre qualquer par de nodos distintos<br />
Pi, Pj ∈ Γ existir um caminho direcionado de comprimento finito que começa em Pi e termina em Pj.<br />
Observe que quando Γ é um grafo direcionado com n nodos, se existe um caminho direcionado entre dois<br />
nodos de Γ, então sempre existe um caminho direcionado entre estes dois nodos de comprimento menor que<br />
ou igual a n − 1 (Exercício 2.7).<br />
2.28 Teorema. A ∈ Mn (C) satisfaz a propriedade FC se e somente se Γ (A) é fortemente conexo.<br />
Agora estamos em condições de verificar a invertibilidade das matrizes esparsas oriundas da discretização<br />
de EDPs através de diferenças finitas:<br />
2.29 Teorema. As matrizes de discretização do problema modelo são invertíveis.<br />
Prova. É fácil ver que as matrizes de discretização obtidas no capítulo anterior para o intervalo e para<br />
o quadrado são matrizes diagonalmente dominantes com dominância diagonal estrita nas linhas correspondentes<br />
a pontos interiores adjacentes à fronteira. Além disso, elas satisfazem a propriedade FC. De fato, cada<br />
índice i da matriz corresponde a um ponto interior Pi da malha e aij = 0 sempre que Pi e Pj são pontos<br />
vizinhos naqueles esquemas. Então, dados dois pontos distintos Pi, Pj é fácil encontrar uma seqüência de<br />
índices i1 = i, i2, i3, . . . , im−1, im = j, com 1 m n, tais que todas as entradas matriciais<br />
ai1i2, ai2i3, . . . , aim−1im<br />
são não-nulas: no caso unidimensional, basta percorrer a malha diretamente de Pi até Pj (andando a partir<br />
de Pi sempre para a direita ou sempre para a esquerda, conforme o caso, até encontrar Pj), e no caso<br />
bidimensional basta usar qualquer caminho interior de Pi até Pj (pode-se usar a ordem lexicográfica para<br />
percorrer a malha, ou a ordem lexicográfica inversa, dependendo das posições relativas de Pi e Pj; no entanto,<br />
estes caminhos são mais longos que o necessário). Em outras palavras, identificando as malhas de pontos<br />
internos com os grafos direcionados da matriz de discretização, de modo que existe um arco direcionado entre
Rodney Josué Biezuner 26<br />
dois pontos da malha se e somente se eles são vizinhos, os esquemas de discretização considerados garantem<br />
que estes grafos são fortemente conexos. <br />
Verificar a propriedade FC a partir do grafo direcionado de A pode ser impraticável se o tamanho da<br />
matriz for muito grande ou se a matriz não tiver origem na discretização de um problema de EDPs. Existe<br />
um método computacional mais explícito para fazê-lo:<br />
2.30 Teorema. Sejam A ∈ Mn (C) e Pi, Pj nodos de Γ (A). Existe um caminho direcionado de comprimento<br />
m em Γ (A) de Pi para Pj se e somente se<br />
ou, equivalentemente, se e somente se<br />
(|A| m ) ij = 0<br />
[M (A) m ] ij = 0.<br />
Prova. Provaremos o teorema por indução. Para m = 1 a afirmativa é trivial. Para m = 2, temos<br />
de modo que<br />
<br />
|A| 2<br />
ij<br />
<br />
|A| 2<br />
ij<br />
=<br />
n<br />
k=1<br />
(|A|) ik (|A|) kj =<br />
n<br />
k=1<br />
|aik| |akj| ,<br />
= 0 se e somente se aik, akj são ambos não-nulos para algum índice k. Mas isso é<br />
equivalente a dizer que existe um caminho direcionado de comprimento 2 em Γ (A) de Pi para Pj.<br />
Em geral, supondo a afirmativa provada para m, temos<br />
<br />
|A| m+1<br />
ij<br />
=<br />
n<br />
k=1<br />
(|A| m ) ik (|A|) kj =<br />
n<br />
k=1<br />
(|A| m ) ik |akj| = 0<br />
se e somente se (|A| m ) ik , akj são ambos não-nulos para algum índice k. Por hipótese de indução, isso é<br />
equivalente a existir um caminho direcionado de comprimento m em Γ (A) de Pi para Pk e um caminho<br />
direcionado de comprimento 1 em Γ (A) de Pk para Pj, isto é, um caminho direcionado de comprimento<br />
m + 1 em Γ (A) de Pi para Pj. O mesmo argumento vale para M (A). <br />
2.31 Definição. Seja A = (aij) ∈ Mn (C). Dizemos que A 0 se aij 0 para todos 1 i, j n e que<br />
A > 0 se aij > 0 para todos 1 i, j n.<br />
2.32 Corolário. Seja A ∈ Mn (C). Existe um caminho direcionado de comprimento m em Γ (A) de cada<br />
nodo Pi para cada nodo Pj se e somente se<br />
ou, equivalentemente, se e somente se<br />
|A| m > 0<br />
M (A) m > 0.<br />
2.33 Corolário. Seja A ∈ Mn (C). A satisfaz a propriedade FC se e somente se<br />
ou, equivalentemente, se e somente se<br />
(I + |A|) n−1 > 0<br />
[I + M (A)] n−1 > 0.
Rodney Josué Biezuner 27<br />
Prova. Temos<br />
(I + |A|) n−1 <br />
n − 1<br />
= I + (n − 1) |A| + |A|<br />
2<br />
2 + . . . +<br />
<br />
n − 1<br />
|A|<br />
n − 3<br />
n−1 + |A| n−1 > 0<br />
se e somente se para cada par de índices i, j com i = j pelo menos um dos termos |A| , |A| 2 , . . . , |A| n−1<br />
tem uma entrada positiva em (i, j). Pelo Teorema 2.30, isso ocorre se e somente se existe algum caminho<br />
direcionado em Γ (A) de Pi para Pj com comprimento n−1. Isto é equivalente a A satisfazer a propriedade<br />
FC. O mesmo argumento vale para M (A). <br />
Em geral, a maneira como uma matriz foi obtida (como as nossas matrizes de discretização; veja a última<br />
seção do capítulo) torna clara se elas são matrizes que satisfazem a propriedade FC ou não. Se isso<br />
não é possível, e pretende-se verificar a propriedade FC através do Corolário 2.33, é preferível calcular<br />
[I + M (A)] n−1 , já que M (A) é uma matriz composta apenas de 0’s e 1’s.<br />
2.5 Matrizes Irredutíveis<br />
Às vezes, os resultados da seção anterior são formulados em termos de matrizes irredutíveis. Neste seção<br />
examinaremos esta formulação equivalente.<br />
Lembre-se que uma matriz de permutação P é uma matriz quadrada cujas entradas são todas 0 ou 1<br />
e, além disso, em cada linha e em cada coluna de P existe exatamente um 1. Em particular, P é uma matriz<br />
ortogonal, de modo que P −1 = P t , isto é, a inversa de P também é uma matriz de permutação. Um caso<br />
especial de uma matriz de permutação é uma matriz de transposição, que é uma matriz de permutação T<br />
igual à matriz identidade exceto em duas posições, isto é, para algum par de índices fixado k, l temos<br />
⎧<br />
⎨ δij se (i, j) = (k, l) , (l, k) , (k, k) ou (l, l) ,<br />
Tij =<br />
⎩<br />
1<br />
0<br />
e (i, j) = (k, l) ou se (i, j) = (l, k) ,<br />
se (i, j) = (k, k) ou se (i, j) = (l, l) .<br />
Matrizes de transposição são simétricas. O efeito de multiplicar uma matriz A por uma matriz de transposição<br />
à esquerda é trocar a posição de duas linhas da matriz A (no caso acima, as linhas k e l), enquanto que a<br />
multiplicação de A por uma matriz de transposição à direita muda a posição de duas colunas de A (no caso<br />
acima, as colunas k e l).<br />
T A =<br />
AT =<br />
⎡<br />
⎢<br />
⎣<br />
⎡<br />
⎢<br />
⎣<br />
1 0 0 0<br />
0 0 1 0<br />
0 1 0 0<br />
0 0 0 1<br />
⎤ ⎡<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎦ ⎣<br />
a11 a12 a13 a14<br />
a21 a22 a23 a24<br />
a31 a32 a33 a34<br />
a41 a42 a43 a44<br />
a11 a12 a13 a14<br />
a21 a22 a23 a24<br />
a31 a32 a33 a34<br />
a41 a42 a43 a44<br />
⎤ ⎡<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎦ ⎣<br />
1 0 0 0<br />
0 0 1 0<br />
0 1 0 0<br />
0 0 0 1<br />
⎤<br />
⎡<br />
⎥<br />
⎦ =<br />
⎢<br />
⎣<br />
⎤<br />
⎥<br />
⎦ =<br />
⎡<br />
⎢<br />
⎣<br />
a11 a12 a13 a14<br />
a31 a32 a33 a34<br />
a21 a22 a23 a24<br />
a41 a42 a43 a44<br />
a11 a13 a12 a14<br />
a21 a23 a22 a24<br />
a31 a33 a32 a34<br />
a41 a43 a42 a44<br />
Pode-se provar que toda matriz de permutação P é o produto de matrizes de transposição P = T1 . . . Tm;<br />
em particular, P t = Tm . . . T1. A matriz<br />
P t AP = Tm . . . T1AT1 . . . Tm<br />
é portanto obtida através da permutação de linhas e colunas de A, de modo que nenhum novo elemento é<br />
criado ou algum elemento existente de A destruído.<br />
2.34 Definição. Dizemos que uma matriz A ∈ Mn (C) é redutível se existe alguma matriz de permutação<br />
P e algum inteiro 1 m n − 1 tal que<br />
P t <br />
B C<br />
AP =<br />
0 D<br />
⎤<br />
⎥<br />
⎦ ,<br />
⎤<br />
⎥<br />
⎦ .
Rodney Josué Biezuner 28<br />
onde B é uma matriz m × m, D é uma matriz (n − m) × (n − m), C é uma matriz m × (n − m) e 0 é<br />
a matriz nula (n − m) × m. Caso contrário, dizemos que A é irredutível.<br />
Da definição vemos que se |A| > 0, então A é irredutível, e para que A seja redutível, ela precisa ter pelo<br />
menos n − 1 zeros (caso m = 1). A motivação para este nome é a seguinte. Suponha que queiramos resolver<br />
o sistema Ax = b e que A seja redutível. Então, se escrevermos<br />
A = P t AP =<br />
B C<br />
0 D<br />
teremos Ax = P AP t x = b ou AP t x = P t b; denotando x = P t x e b = P t b, resolver o sistema Ax = b é então<br />
equivalente a resolver o sistema<br />
Ax = b.<br />
Escrevendo<br />
x =<br />
y<br />
z<br />
<br />
b1<br />
, b =<br />
b2<br />
onde y, b1 ∈ C m e z, b2 ∈ C n−m , este sistema é por sua vez equivalente ao sistema<br />
By + Cz = b1<br />
Dz = b2<br />
Se resolvermos primeiro Dz = b2 e utilizarmos o valor de z encontrado na primeira equação resolvendo<br />
By = b1 − Cz, teremos reduzido o problema original a dois problemas menores, mais fáceis de resolver.<br />
2.35 Teorema. Uma matriz A ∈ Mn (C) é irredutível se e somente se<br />
ou, equivalentemente, se e somente se<br />
(I + |A|) n−1 > 0<br />
<br />
,<br />
<br />
[I + M (A)] n−1 > 0.<br />
Prova. Para provar o resultado, mostraremos que A é redutível se e somente se (I + |A|) n−1 possui pelo<br />
menos uma entrada nula.<br />
Assuma primeiramente que A é redutível, de modo que para alguma matriz de permutação P tenhamos<br />
Observe que<br />
A = P<br />
B C<br />
0 D<br />
<br />
P t =: P AP t .<br />
|A| = P AP t = P A P t ,<br />
já que o efeito de P é apenas trocar linhas e colunas. Além disso, note que<br />
A k <br />
=<br />
para alguma matriz Ck. Logo, como<br />
B k Ck<br />
0 D k<br />
(I + |A|) n−1 = I + P A P t n−1 = P I + A n−1 P t<br />
= P<br />
<br />
I + (n − 1) |A| +<br />
n − 1<br />
2<br />
<br />
|A| 2 + . . . +<br />
<br />
n − 1<br />
|A|<br />
n − 3<br />
n−1 + |A| n−1<br />
<br />
P t
Rodney Josué Biezuner 29<br />
e todos os termos dentro dos colchetes são matrizes que tem um bloco (n − m) × m nulo no canto esquerdo<br />
inferior, segue que (I + |A|) n−1 é redutível, logo possui entradas nulas e não pode ser positiva.<br />
Reciprocamente, suponha que (I + |A|) n−1 possui pelo menos uma entrada nula. Como<br />
(I + |A|) n−1 = I +<br />
n−1 <br />
m=1<br />
n − 1<br />
m<br />
<br />
|A| m ,<br />
(I + |A|) n−1 <br />
não possui entradas diagonais nulas, logo podemos assumir que para algum par i = j temos<br />
(I + |A|) n−1<br />
= 0, o que implica [|A| m ] ij = 0 para todo 1 m n − 1. Pelo Teorema 2.30 (e observação<br />
ij<br />
imediatamente posterior à definição de grafo direcionado), não existe um caminho direcionado em Γ (A) de<br />
comprimento finito entre Pi e Pj. Defina os conjuntos de nodos<br />
S1 := {Pk : Pk = Pj ou existe um caminho direcionado em Γ (A) entre Pk e Pj} ,<br />
S2 = [ nodos de Γ (A)] \S1.<br />
Por definição destes conjuntos, não pode existir nenhum caminho de algum nodo de S2 para algum nodo de<br />
S1, logo [|A| m ] lk = 0 se Pl ∈ S2 e Pk ∈ S1. E ambos os conjuntos são não-vazios, pois Pj ∈ S1 e Pi ∈ S2.<br />
Renomeando os nodos de modo que<br />
<br />
S1 = P1, . . . , <br />
Pm ,<br />
<br />
S2 = Pm+1, . . . , <br />
Pn ,<br />
segue que existe uma matriz de permutação P tal que<br />
P t <br />
B C<br />
AP =<br />
0 D<br />
De fato, P é justamente a matriz de permutação que troca as colunas de tal forma que as variáveis anteriores<br />
correspondentes aos nodos P1, . . . , Pm no sistema Ax = b são as novas m primeiras variáveis do sistema linear<br />
Ax = b; como não existe nenhum caminho direcionado entre nenhum dos nodos Pm+1, . . . , Pn e qualquer um<br />
dos nodos P1, . . . , Pm, temos aij = 0 para m + 1 i n e 1 j m pelo Teorema 2.30. <br />
2.36 Corolário. Uma matriz A ∈ Mn (C) é irredutível se e somente se ela satisfaz a propriedade FC.<br />
2.37 Proposição. Se A é uma matriz irredutível, diagonalmente dominante tal que |aii| > n<br />
|aij| para<br />
pelo menos alguma linha i, então A é invertível.<br />
Além disso, se A é hermitiana e todos os elementos da diagonal principal de A são positivos, então<br />
todos os autovalores de A são positivos.<br />
Prova. O resultado segue do Teorema 2.34, do Corolário 2.25 e do Teorema dos Discos de Gershgorin (veja<br />
comentários após o Teorema 2.18). <br />
2.38 Corolário. Os autovalores das matrizes de discretização do problema modelo são positivos.<br />
2.6 Exercícios<br />
2.1 Mostre que as normas matriciais introduzidas na primeira seção deste capítulo (Exemplos 2.3 até 2.11)<br />
são de fato normas vetoriais.<br />
<br />
.<br />
j=1<br />
j=i
Rodney Josué Biezuner 30<br />
2.2 Mostre que a norma lp (Exemplo 2.5) é uma norma matricial.<br />
2.3 Mostre que a norma l2 é diferente da 2-norma em Mn (veja Exemplo 2.10).<br />
2.4 Seja V um espaço vetorial de dimensão finita e · 1 , · 2 normas vetoriais quaisquer. Prove que existe<br />
uma constante C > 0 tal que<br />
1<br />
C x 1 x 2 C x 1<br />
para todo vetor x ∈ V .<br />
2.5 Seja · uma norma matricial. Prove diretamente das propriedades de uma norma matricial que<br />
I 1.<br />
2.6 a) Seja · uma norma vetorial. Prove que se α > 0, então α · é também uma norma vetorial.<br />
b) Seja · uma norma matricial. Conclua do Lema 2.14 que se α < 1, então α · não é uma norma<br />
matricial.<br />
c) Seja · uma norma matricial. Se α > 1, podemos concluir que α · não é uma norma matricial?<br />
2.7 Mostre que se Γ é um grafo direcionado com n nodos, se existe um caminho direcionado entre dois<br />
nodos de Γ, então sempre existe um caminho direcionado entre estes dois nodos de comprimento menor<br />
que ou igual a n − 1
Capítulo 3<br />
Métodos Iterativos <strong>Linear</strong>es<br />
Neste capítulo investigaremos os métodos iterativos básicos para a resolução de sistemas lineares<br />
Ax = b.<br />
Embora a matriz A que temos em mente é em geral uma matriz grande e esparsa, do tipo que aparece em<br />
esquemas de diferenças finitas para equações diferenciais parciais, os métodos considerados aqui requerem<br />
em princípio apenas que A seja uma matriz invertível com todas as entradas diagonais aii não-nulas (embora<br />
a matriz A deva satisfazer critérios adicionais, de acordo com cada método, para assegurar a convergência<br />
para a solução exata).<br />
Métodos iterativos requerem um chute inicial x 0 , ou seja, um vetor inicial que aproxima a solução exata<br />
x (se não há nenhuma informação disponível sobre a solução exata, de modo que não temos como construir<br />
o chute inicial de forma inteligente, x 0 pode ser uma aproximação muito ruim de x). Uma vez que x 0 é<br />
dado, o método iterativo gera a partir de x 0 uma nova aproximação x 1 , que esperamos deve aproximar<br />
melhor a solução exata. Em seguida, x 1 é usada para gerar uma nova melhor aproximação x 2 e assim por<br />
diante. Desta forma, gera-se uma seqüência de vetores x k que espera-se convergir para x. Como na prática<br />
não podemos iterar para sempre, algum critério de parada deve ser estabelecido a priori. Uma vez que x k<br />
esteja suficientemente próximo da solução exata quanto se precise, de acordo com uma margem de tolerância<br />
previamente fixada, pára-se o processo de iteração e aceita-se x k como a solução aproximada adequada para<br />
o problema. Por exemplo, o critério de parada pode ser estabelecido através de uma cota de tolerância τ:<br />
quando b − Ax k < τ<br />
ou quando x k+1 − x k < τ<br />
as iterações são interrompidas e o último valor aproximado obtido é aceito como a melhor aproximação da<br />
solução dentro das circunstâncias.<br />
Os métodos discutidos neste capítulo não necessitam de um bom chute inicial (embora, é claro, quanto<br />
melhor o chute inicial, menor o número de iterações necessárias para se chegar à solução aproximada com<br />
a exatidão especificada). Embora os métodos iterativos lineares são muitos lentos em relação a outros<br />
métodos iterativos desenvolvidos mais recentemente, sendo portanto raramente utilizados isoladamente, eles<br />
são frequentemente usados hoje em dia como componentes de certos métodos iterativos ultra-rápidos, tais<br />
como o método multigrid.<br />
31
Rodney Josué Biezuner 32<br />
3.1 Método Iterativos Básicos<br />
3.1.1 Método de Jacobi<br />
O método iterativo linear mais simples (que já foi descrito também como o mais lento para convergir, embora<br />
isso realmente depende da matriz A do sistema) é o método de Jacobi (1845) Escrevendo o sistema Ax = b<br />
na forma ⎧⎪<br />
n<br />
a1jxj = b1<br />
⎨ j=1<br />
. ,<br />
n<br />
⎪⎩ anjxj = bn<br />
se aii = 0 para todo i, cada xi pode ser isolado na i-ésima equação e escrito na forma<br />
xi = 1<br />
⎛<br />
⎜<br />
⎝bi ⎞<br />
n ⎟<br />
− aijxj ⎟<br />
⎠ .<br />
Isso sugere definir um método iterativo da seguinte forma: suposto x k = x k 1, . . . , x k n<br />
anterior, obtemos x k+1 = x k+1<br />
1<br />
, . . . , x k+1<br />
n<br />
x k+1<br />
i<br />
aii<br />
por<br />
j=1<br />
1<br />
=<br />
aii<br />
⎛<br />
⎜<br />
⎝ bi −<br />
j=1<br />
j=i<br />
n<br />
j=1<br />
j=i<br />
aijx k j<br />
⎞<br />
obtido no passo<br />
⎟<br />
⎠ . (3.1)<br />
No caso da fórmula de cinco pontos para o problema de Poisson, como a equação para cada ponto (i, j)<br />
é dada por<br />
o método de Jacobi é<br />
−ui,j−1 − ui,j+1 + 4ui,j − ui−1,j − ui+1,j = h 2 fi,j<br />
k<br />
ui,j−1 + u k i−1,j + u k i+1,j + u k i,j+1 + h 2 <br />
fi,j . (3.2)<br />
u k+1 1<br />
i,j =<br />
4<br />
No caso especial da equação de Laplace (f = 0) com condição de fronteira de Dirichlet não-nula, o método<br />
de Jacobi é simplesmente a propriedade do valor médio discreta<br />
u k+1<br />
i,j<br />
1 k<br />
= ui,j−1 + u<br />
4<br />
k i−1,j + u k i+1,j + u k <br />
i,j+1 . (3.3)<br />
Em outras palavras, calculados os valores de u em todos os pontos da malha na iteração anterior, o novo<br />
valor de u em um ponto interior da malha nesta iteração é calculado através da média dos seus quatro<br />
pontos vizinhos. Os valores iniciais de u nos pontos interiores da malha para a primeira iteração (isto é, o<br />
chute inicial) podem ser atribuidos arbitrariamente ou através de algum argumento razoável; por exemplo,<br />
podemos utilizar uma média ponderada dos valores de fronteira para o valor inicial em cada ponto interior<br />
da malha, de acordo com a posição do ponto em relação aos pontos das quatro fronteiras discretizadas.<br />
Em forma matricial, o algoritmo de Jacobi pode ser descrito da seguinte forma. Denotando por D = diag<br />
(a11, . . . , ann) a matriz diagonal cujas entradas são as entradas diagonais de A, temos que<br />
x k+1 = D −1 (D − A) x k + b <br />
(3.4)<br />
ou<br />
x k+1 = D −1 Cx k + b <br />
onde C = D − A é a matriz consistindo dos elementos restantes de A fora da diagonal principal.<br />
(3.5)
Rodney Josué Biezuner 33<br />
3.1.2 Método de Gauss-Seidel<br />
Um método iterativo que converge cerca de duas vezes mais rápido que o método de Jacobi (na maioria<br />
das aplicações) é o método de Gauss-Seidel (desenvolvido inicialmente por Gauss em 1819 para resolver<br />
sistemas de equações lineares que apareciam no seu método de quadrados mínimos e obtendo sua forma final<br />
em 1874 por Seidel), onde os valores de x são atualizados dentro de cada iteração, sem esperar pela próxima.<br />
Em outras palavras, obtido o valor de x k+1<br />
i este é usado no lugar de xk i no cálculo seguinte de xk+1 i+1 . No<br />
sistema Ax = b em que aii = 0 para todo i, como antes isolamos cada xi na i-ésima equação mas desta vez<br />
escrevemos<br />
xi = 1<br />
⎛<br />
⎞<br />
i−1<br />
n<br />
⎝bi − aijxj − ⎠ .<br />
Então definimos<br />
pois os valores x k+1<br />
1<br />
x k+1<br />
i<br />
aii<br />
⎛<br />
1<br />
=<br />
aii<br />
j=1<br />
i−1<br />
⎝bi −<br />
j=1<br />
aijx k+1<br />
j<br />
j=i+1<br />
−<br />
aijxj<br />
n<br />
j=i+1<br />
aijx k j<br />
⎞<br />
⎠ (3.6)<br />
, . . . , x k+1<br />
i−1 já foram computados nesta iteração, enquanto que os valores xk i+1 , . . . , xk n são<br />
fornecidos pela iteração anterior.<br />
Por exemplo, no caso da equação de Laplace, poderíamos utilizar a fórmula<br />
u k+1<br />
i,j<br />
1 k+1<br />
= ui,j−1 + uk+1 i−1,j<br />
4<br />
+ uki+1,j + u k <br />
i,j+1<br />
assumindo que os pontos da malha são percorridos na ordem lexicográfica, de modo que quando vamos<br />
calcular o valor de u no ponto i, j na iteração k + 1, nesta mesma iteração já calculamos os valores de u em<br />
i − 1, j e em i, j − 1, e usamos estes valores para calcular u k+1<br />
i,j ao invés dos valores u k i,j−1 e uk i−1,j obtidos<br />
na iteração anterior.<br />
Em forma matricial, o algoritmo de Gauss-Seidel pode ser descrito da seguinte forma. Dada uma matriz<br />
A, existe uma única decomposição<br />
A = D − L − U (3.8)<br />
onde D é uma matriz diagonal, L é uma matriz estritamente triangular inferior e U é uma matriz estritamente<br />
triangular superior; de fato, D = diag (a11, . . . , ann) é a parte diagonal de A, −L é a parte estritamente<br />
triangular inferior de A e −U é a parte estritamente triangular superior de A. Então o algoritmo de Gauss-<br />
Seidel pode ser definido por<br />
x k+1 = D −1 Lx k+1 + Ux k + b <br />
(3.9)<br />
ou<br />
donde<br />
(D − L) x k+1 = Ux k + b,<br />
(3.7)<br />
x k+1 = (D − L) −1 Ux k + b . (3.10)<br />
3.1 Exemplo. Existem matrizes para as quais o método de Jacobi converge e o método de Gauss-Seidel<br />
diverge, e vice-versa. Veja o Exercício 3.1. <br />
3.1.3 Método SOR<br />
O processo de corrigir uma equação através da modificação de uma variável é às vezes chamado de relaxamento.<br />
Antes da correção, a equação não é verdadeira; como um conjunto de partes que não se ajustam,<br />
ela está em estado de tensão. A correção de uma variável relaxa a tensão. O método de Gauss-Seidel efetua<br />
relaxamento sucessivo, ou seja, passa de equação para equação, relaxando uma depois da outra. [Watkins]<br />
Por este motivo, os métodos de Jacobi e de Gauss-Seidel são também chamados métodos de relaxamento.<br />
Em muitos casos, a convergência pode ser substancialmente acelerada através de sobrerelaxamento. Isso
Rodney Josué Biezuner 34<br />
significa que ao invés de fazer uma correção para a qual a equação é satisfeita exatamente, nós fazemos<br />
uma correção maior. No caso mais simples, escolhe-se um fator de relaxamento ω > 1 que sobrecorrige por<br />
aquele fator em cada passo (se mover um passo na direção de x k para x k+1 é bom, mover naquela direção<br />
ω > 1 passos é melhor). Este é o chamado método de sobrerelaxamento sucessivo (SOR, successive<br />
overrelaxation; desenvolvido em 1950 por Young): usando o método de Gauss-Seidel obtemos<br />
x k+1<br />
⎛<br />
1 i−1<br />
i = ⎝bi − aijx<br />
aii<br />
k+1<br />
j −<br />
n<br />
aijx k ⎞<br />
⎠<br />
j ;<br />
daí tomamos<br />
Isso pode ser resumido em<br />
x k+1<br />
i<br />
= xk i + ω<br />
⎡<br />
x k+1<br />
i<br />
⎣ 1<br />
aii<br />
j=1<br />
= xk i + ω x k+1<br />
i<br />
⎛<br />
i−1<br />
⎝bi −<br />
j=1<br />
aijx k+1<br />
j<br />
j=i+1<br />
− xk <br />
i .<br />
−<br />
n<br />
j=i+1<br />
⎞<br />
aijx k⎠ j − x k i<br />
⎤<br />
⎦ . (3.11)<br />
Quando ω = 1, o método SOR é exatamente o método de Gauss-Seidel. Um fator ω < 1 (subrelaxamento)<br />
normalmente diminui a velocidade de convergência.<br />
Para a maioria dos problemas, o melhor valor para o fator de relaxamento é desconhecido. Para a matriz<br />
de discretização obtida a partir da fórmula de cinco pontos, é sabido que o valor ótimo de ω é, como veremos<br />
na próxima seção,<br />
ω =<br />
2<br />
. (3.12)<br />
1 + sen (πh)<br />
Em forma matricial, o método SOR pode ser descrito da seguinte forma. Como antes, dada uma matriz<br />
A escrevemos<br />
A = D − L − U (3.13)<br />
onde D é uma matriz diagonal, L é uma matriz estritamente triangular inferior e U é uma matriz estritamente<br />
triangular superior. Então, escrevendo o algoritmo SOR na forma<br />
= aiix k ⎡<br />
i−1<br />
i + ω ⎣bi −<br />
−<br />
⎤<br />
n<br />
⎦ ,<br />
temos<br />
aiix k+1<br />
i<br />
j=1<br />
aijx k+1<br />
j<br />
j=i<br />
aijx k j<br />
Dx k+1 = Dx k + ω Lx k+1 + (U − D) x k + b <br />
ou <br />
1<br />
D − L x<br />
ω k+1 <br />
1 − ω<br />
= D + U x<br />
ω k + b,<br />
donde<br />
x k+1 =<br />
(3.14)<br />
−1 <br />
1<br />
1 − ω<br />
D − L<br />
D + U x<br />
ω ω k <br />
+ b . (3.15)<br />
3.1.4 Comparação da Velocidade de Convergência dos Três Métodos no Problema<br />
Modelo<br />
A tabela a seguir foi extraída de [Watkins], págs. 533 e 542. Os métodos introduzidos acima foram usados<br />
para resolver o sistema linear Ax = b onde A é a matriz de discretização obtida a partir da fórmula dos
Rodney Josué Biezuner 35<br />
cinco pontos do laplaciano no quadrado unitário Ω = (0, 1) 2 e b é estabelecido pela condição de fronteira de<br />
Dirichlet dada por<br />
⎧<br />
⎪⎨<br />
g (x, y) =<br />
⎪⎩<br />
0<br />
y<br />
(x − 1) sen x<br />
x (2 − x)<br />
se x = 0,<br />
se x = 1,<br />
se y = 0,<br />
se y = 1,<br />
ou seja, para resolver o problema discretizado<br />
<br />
−∆dud = 0 em Ωd,<br />
sobre ∂Ωd.<br />
As iterações foram interrompidas quando<br />
ud = gd<br />
<br />
u k+1 − u k 2<br />
|u k+1 | 2<br />
< 10 −8 .<br />
O número de iterações necessárias para convergir de acordo com esta margem de tolerância, para três refinamentos<br />
possíveis da malha (correspondentes a matrizes de dimensões n = 81, 361 e 1521, respectivamente),<br />
de acordo com cada método e para diferentes valores de ω no caso do método SOR é apresentado na tabela<br />
abaixo.<br />
h = 0.1 h = 0.05 h = 0.025<br />
Jacobi 299 1090 3908<br />
SOR (ω = 0.8) 235 845 3018<br />
Gauss-Seidel 160 581 2082<br />
SOR (ω = 1.4) 67 262 955<br />
SOR (ω = 1.6) 42 151 577<br />
SOR (ω = 1.7) 57 96 412<br />
SOR (ω = 1.8) 86 89 252<br />
SOR (ω = 1.9) 176 180 179<br />
SOR (ω = 2.0) ∞ ∞ ∞<br />
Vemos que o método de Gauss-Seidel é cerca de duas vezes mais rápido para convergir que o método de<br />
Jacobi e que dependendo da escolha de ω, o método SOR pode ser até dez vezes mais rápido que o método<br />
de Gauss-Seidel para a malha mais refinada. Subrelaxamento não ajuda e para ω = 2 o método SOR é<br />
divergente.<br />
3.1.5 Método de Jacobi Amortecido<br />
O método de Gauss-Seidel pode ser sobrerelaxado através de um parâmetro ω > 1 para obter um método<br />
que converge mais rápido. Já o método de Jacobi não pode em geral ser sobrerelaxado, porque o método<br />
obtido não converge. Ele pode no entanto ser subrelaxado através de um parâmetro ω < 1 para obter um<br />
método convergente, se bem que mais vagaroso. A vantagem de se utilizar um tal método é que para certos<br />
valores de ω ele é um ótimo suavizador de erro (em um sentido que será explicado mais tarde), enquanto<br />
que o método de Jacobi usual não possui esta propriedade. Assim, o método de Jacobi amortecido pode ser<br />
usado em métodos multigrid, como veremos mais tarde.<br />
Pelo método de Jacobi usual obtemos<br />
⎛<br />
⎞<br />
x k+1<br />
i<br />
1<br />
=<br />
aii<br />
⎜<br />
⎝ bi −<br />
n<br />
j=1<br />
j=i<br />
aijx k j<br />
⎟<br />
⎠ ,
Rodney Josué Biezuner 36<br />
e tomamos<br />
ou seja,<br />
x k+1<br />
i<br />
x k+1<br />
i<br />
= xk ⎢<br />
i + ω ⎢<br />
1<br />
⎣<br />
= xk i + ω x k+1<br />
i<br />
⎡<br />
aii<br />
⎛<br />
⎜<br />
⎝ bi −<br />
n<br />
j=1<br />
j=i<br />
− xk <br />
i ,<br />
⎞<br />
⎟<br />
aijx k j ⎠ − xki ⎤<br />
⎥<br />
⎦ . (3.16)<br />
Este método é conhecido como método de Jacobi amortecido, método de Jacobi ponderado ou ainda<br />
método de relaxamento simultâneo (diferente do método de relaxamento sucessivo, baseado no método de<br />
Gauss-Seidel, em que cada variável é substituída sucessivamente dentro da mesma iteração à medida que<br />
ela é atualizada; no método de Jacobi, as variáveis são todas substituídas simultameamente na próxima<br />
iteração).<br />
Em forma matricial, o método de Jacobi amortecido pode ser descrito da seguinte forma. Denotando por<br />
D a parte diagonal de A, temos<br />
⎛<br />
⎞<br />
temos<br />
aiix k+1<br />
i<br />
= aiix k i + ω<br />
⎝bi −<br />
n<br />
j=1<br />
aijx k j<br />
Dx k+1 = Dx k + ω b − Ax k<br />
ou <br />
1<br />
ω D<br />
<br />
x k+1 <br />
1<br />
= D − A x<br />
ω k + ωb,<br />
donde<br />
x k+1 =<br />
⎠ ,<br />
(3.17)<br />
<br />
1<br />
ω D<br />
−1 <br />
1<br />
D − A x<br />
ω k <br />
+ b . (3.18)<br />
Em contraste com o método SOR, que converge em geral para 0 < ω < 2, o método de Jacobi amortecido<br />
converge para 0 < ω 1 (veja a próxima seção).<br />
3.2 Análise de Convergência dos Métodos Iterativos <strong>Linear</strong>es<br />
Os métodos iterativos básicos são casos especiais de uma classe geral de métodos chamados métodos iterativos<br />
lineares:<br />
3.2 Definição. Um método iterativo linear para resolver o sistema Ax = b é um método da forma<br />
x k+1 = Rx k + Nb<br />
onde R e N são matrizes dadas. A matriz R é chamada a matriz de iteração do método.<br />
Em geral, um método iterativo linear para resolver o sistema linear<br />
envolve a decomposição da matriz A na forma<br />
Ax = b<br />
A = B − C, (3.19)<br />
onde B é necessariamente uma matriz invertível, e em seguida a resolução iterativa do sistema de equações<br />
Bx k+1 = Cx k + b (3.20)
Rodney Josué Biezuner 37<br />
ou, mais explicitamente,<br />
x k+1 = B −1 Cx k + b .<br />
Na notação da definição, temos que a matriz de iteração é<br />
e<br />
R = B −1 C = B −1 (B − A) = I − B −1 A (3.21)<br />
N = B −1 . (3.22)<br />
Se x k → x, então Bx = Cx + b, donde Ax = b. Do ponto de vista prático, é importante que a matriz B<br />
seja “fácil de resolver” (mesmo que a inversa de B não seja efetivamente calculada), como nos exemplos da<br />
seção anterior:<br />
B C R<br />
Jacobi D D − A D−1 (D − A)<br />
Jacobi amortecido<br />
1<br />
ω D<br />
1<br />
D − A<br />
ω<br />
<br />
1<br />
ω D<br />
−1 <br />
1<br />
D − A<br />
ω<br />
Gauss-Seidel D − L U (D − L) −1 U<br />
−1 <br />
1 1 − ω<br />
1<br />
1 − ω<br />
SOR<br />
D − L D + U D − L<br />
D + U<br />
ω ω ω ω<br />
Para obter uma convergência rápida também gostaríamos que B ≈ A e C ≈ 0. Deste ponto de vista, o ideal<br />
seria B = A e C = 0 (convergência em uma iteração), mas isso viola em geral o critério que B seja “fácil<br />
de resolver”. Um compromisso é necessário: B deve aproximar A o melhor possível sem se tornar muito<br />
complicada.<br />
3.2.1 Convergência dos Métodos Iterativos <strong>Linear</strong>es<br />
3.3 Definição. Para métodos iterativos em geral, o erro algébrico é definido por<br />
enquanto que o erro residual é dado por<br />
e k = x − x k , (3.23)<br />
r k = b − Ax k . (3.24)<br />
O erro algébrico tem interesse puramente teórico (para provar que determinado método iterativo converge,<br />
precisamos mostrar que o erro algébrico tende a zero), já que ele só pode ser calculado uma vez que se<br />
conhece a solução exata, e se este for o caso obviamente não há necessidade de resolver o sistema. Já o erro<br />
residual pode ser usado como critério de parada para o método iterativo. O erro algébrico e o erro residual<br />
estão relacionados através da expressão:<br />
Ae k = r k , (3.25)<br />
pois Ae k = Ax − Ax k = b − Ax k = r k .<br />
Para os métodos iterativos lineares, como<br />
segue que<br />
Be k+1 = Bx − Bx k+1 = Ax + Cx − Cx k − b = C x − x k = Ce k ,<br />
e k+1 = B −1 C e k
Rodney Josué Biezuner 38<br />
ou<br />
e k+1 = Re k . (3.26)<br />
Por este motivo, a matriz de iteração também é chamada de matriz de propagação do erro. Segue de (3.26)<br />
que<br />
e k = R k e 0 , (3.27)<br />
de modo que o erro converge para 0, independentemente do chute inicial x 0 , se e somente se R k → 0. Isso<br />
ocorre se e somente se existe alguma norma matricial · tal que R < 1. Obter uma norma matricial<br />
que satisfaz esta propriedade, no entanto, é difícil. Vamos obter uma condição necessária e suficiente para<br />
R k → 0 em termos do raio espectral da matriz de iteração, que é em geral um pouco mais fácil de calcular.<br />
Antes, para motivar o resultado, suponha que R seja uma matriz diagonalizável com λ1, . . . , λn os seus<br />
autovalores e {v1, . . . , vn} uma correspondente base de autovetores. Escrevendo o erro inicial como uma<br />
combinação linear dos autovetores, temos<br />
Logo,<br />
de modo que<br />
e 0 =<br />
n<br />
aivi.<br />
i=1<br />
e k = R k e 0 =<br />
<br />
e k <br />
n<br />
i=1<br />
aiλ k i vi,<br />
n<br />
|ai| |λi| k |vi| .<br />
i=1<br />
Como |λi| k → 0 se e somente se |λi| < 1, concluímos que e k → 0 qualquer que seja o erro inicial (isto é,<br />
qualquer que seja o chute inicial), se e somente se<br />
ρ (R) = max<br />
1in |λi| < 1 .<br />
3.4 Lema. Se A ∈ Mn (C) e · é qualquer norma matricial, então<br />
ρ (A) A .<br />
Prova. Seja λ um autovalor qualquer de A e x um autovetor não-nulo associado a λ, de modo que<br />
Ax = λx.<br />
Considere a matriz X ∈ Mn (C) cujas colunas são todas iguais ao vetor x. Temos também<br />
de modo que<br />
donde<br />
AX = λX<br />
|λ| X = AX A X ,<br />
|λ| A<br />
para todo autovalor λ de A. Como existe um autovalor λ de A tal que ρ (A) = |λ|, isso prova o resultado. <br />
3.5 Lema. Seja A ∈ Mn (C) e ε > 0 dado. Então existe uma norma matricial · tal que<br />
ρ (A) A ρ (A) + ε. (3.28)
Rodney Josué Biezuner 39<br />
Prova. Toda matriz complexa A é triangularizável através de uma matriz unitária U isto é, isto é, existe<br />
uma matriz triangular T e uma matriz U que satisfaz U ∗ U = UU ∗ = I (veja [Hoffman-Kunze]) tais que<br />
A = U ∗ T U;<br />
T é chamada a forma triangular ou forma normal de Schur de A. Seja então<br />
⎡<br />
λ1<br />
⎢<br />
T = ⎢<br />
⎣<br />
a12<br />
λ2<br />
a22<br />
a23<br />
λ3<br />
. . .<br />
. . .<br />
. . .<br />
. ..<br />
a1n<br />
a2n<br />
a3n<br />
.<br />
⎤<br />
⎥<br />
⎦<br />
a forma triangular de A. Para t ∈ R arbitrário, considere a matriz diagonal<br />
⎡<br />
t<br />
⎢ t<br />
Dt = ⎢<br />
⎣<br />
2<br />
. ..<br />
tn ⎤<br />
⎥<br />
⎦ .<br />
Temos<br />
DtT D −1<br />
t<br />
⎡<br />
⎢<br />
= ⎢<br />
⎣<br />
λn<br />
λ1 a12t −1 a22t −2 . . . . . . a1nt −n+1<br />
λ2 a23t −1 . . . . . . a2nt −n+2<br />
Logo, para t > 0 suficientemente grande, a matriz DtT D −1<br />
t<br />
λ3 . . . . . . a3nt−n+3 . ..<br />
.<br />
.<br />
λn−1 an−1,nt−1 tem a propriedade que a soma dos valores<br />
absolutos de elementos fora da diagonal principal é menor que ε. Em particular, se ·L denota a norma do<br />
máximo das somas das linhas, podemos garantir que<br />
<br />
ρ (A) + ε<br />
L<br />
DtT D −1<br />
t<br />
para t suficientemente grande. Portanto, fixado um tal t, se definirmos uma norma por<br />
A := DtUAU ∗ D −1<br />
<br />
<br />
t = L U ∗ D −1<br />
<br />
−1 ∗ −1<br />
t AU Dt ,<br />
L<br />
teremos<br />
Pelo lema anterior, ρ (A) A. <br />
A = DtUAU ∗ D −1<br />
<br />
<br />
t = L DtT D −1<br />
t<br />
λn<br />
<br />
ρ (A) + ε.<br />
L<br />
3.6 Lema. Seja A ∈ Mn (C). Se existe alguma norma matricial · tal que A < 1, então<br />
Prova. Se A < 1, então<br />
<br />
A k → 0.<br />
<br />
A k A k → 0.<br />
⎤<br />
⎥ .<br />
⎥<br />
⎦
Rodney Josué Biezuner 40<br />
3.7 Proposição. Seja A ∈ Mn (C). Então<br />
se e somente se<br />
A k → 0<br />
ρ (A) < 1.<br />
Prova. Se existe algum autovalor λ de A tal que |λ| 1 e x é um autovetor não-nulo correspondente, então<br />
A k x = λ k x<br />
não converge para 0. Reciprocamente, se ρ (A) < 1, então pelo Lema 3.5 existe uma norma matricial · tal<br />
que A < 1, logo A k → 0 pelo lema anterior. <br />
Finalmente obtemos uma condição necessária e suficiente para um método iterativo linear convergir:<br />
3.8 Corolário. Seja R a matriz de iteração de um método iterativo linear. Então<br />
se e somente se<br />
e k → 0<br />
ρ (R) < 1.<br />
Em outras palavras, um método iterativo linear é convergente independentemente da escolha do chute<br />
inicial se e somente se todos os autovalores da matriz de iteração têm valor absoluto menor que 1.<br />
Portanto, a análise da convergência de um determinado método iterativo linear passa pela análise dos autovalores<br />
de sua matriz de iteração R. Como esta última depende da matriz de coeficientes A do sistema<br />
linear, a convergência ou não de qualquer um dos métodos iterativos lineares vai depender da matriz A.<br />
3.2.2 Velocidade de Convergência dos Métodos Iterativos <strong>Linear</strong>es<br />
O raio espectral também dá informação sobre a velocidade de convergência. Se nós tivermos dois métodos<br />
iterativos lineares diferentes, isto é, duas maneiras diferentes de decompor a matriz A:<br />
A = B1 − C1 = B2 − C2,<br />
então o segundo método convergirá mais rápido se e somente se<br />
ρ (R2) < ρ (R1) .<br />
Em particular, a velocidade de convergência relativa dos métodos iterativos lineares também vai depender<br />
da matriz A: para certas matrizes um determinado método é superior ao outro, enquanto que para outras<br />
matrizes o contrário é verdadeiro.<br />
Vamos analisar a velocidade de convergência dos métodos iterativos com maior precisão. Novamente à<br />
título de motivação, suponha que R é uma matriz diagonalizável com seu maior autovalor sendo um autovalor<br />
simples. Ordene os autovalores de R na forma<br />
|λ1| > |λ2| . . . |λn|<br />
e seja {v1, . . . , vn} uma correspondente base de autovetores. Escrevendo de novo<br />
donde<br />
e 0 =<br />
n<br />
aivi,<br />
i=1<br />
e k = R k e 0 =<br />
n<br />
i=1<br />
aiλ k i vi,
Rodney Josué Biezuner 41<br />
segue que<br />
e k = λ k 1<br />
<br />
a1v1 +<br />
Como k λi<br />
→ 0,<br />
λ1<br />
n<br />
i=2<br />
ai<br />
λi<br />
a taxa de convergência é determinada por |λ1| k . Para k grande, temos<br />
Portanto, e k+1 <br />
e k ≈ λ k 1a1v1.<br />
λ1<br />
k<br />
vi<br />
<br />
.<br />
|e k | = |λ1| = ρ (R) . (3.29)<br />
Em outras palavras, a convergência é linear com taxa de convergência igual ao raio espectral. Se a1 =<br />
0 a convergência será mais rápida, pois dependerá do módulo do segundo autovalor, mas é obviamente<br />
extremamente raro que o erro inicial satisfaça esta condição, isto é, que ele não tenha nenhuma componente<br />
na direção do primeiro autovetor. Para o caso geral, precisamos do seguinte resultado:<br />
3.9 Proposição. Seja A ∈ Mn (C) e · uma norma matricial. Então<br />
ρ (A) = lim A k 1/k .<br />
Prova. Como os autovalores da matriz A k são as k-ésimas potências dos autovalores de A (este resultado<br />
pode ser mais facilmente visto a partir da forma triangular de A), temos que<br />
donde<br />
Por outro lado, dado ε > 0, a matriz<br />
ρ (A) k = ρ A k A k ,<br />
ρ (A) A k 1/k .<br />
B =<br />
1<br />
ρ (A) + ε A<br />
tem raio espectral menor que 1, logo B k → 0. Portanto, existe algum N = N (ε, A) tal que<br />
<br />
B k < 1,<br />
para todo k > N. Logo, A k < (ρ (A) + ε) k ,<br />
donde A k 1/k < ρ (A) + ε<br />
para todo k > N. <br />
3.10 Definição. A taxa média de convergência de um método iterativo linear com matriz de iteração<br />
R é definida como sendo<br />
<br />
Rk (R) = − log R 10<br />
k 1/k = − 1<br />
k log <br />
R 10<br />
k (3.30)<br />
e a taxa assintótica de convergência é dada por<br />
R∞ (R) = lim<br />
k→∞ Rk (R) . (3.31)
Rodney Josué Biezuner 42<br />
3.11 Corolário. Seja R a matriz de iteração de um método iterativo linear. Então a taxa assintótica de<br />
convergência do método é dada por<br />
Prova. Pois<br />
R∞ (R) = − lim<br />
k→∞ log 10<br />
R∞ (R) = − log 10 ρ (R) . (3.32)<br />
<br />
R k 1/k <br />
= − log10 lim R k 1/k = − log10 ρ (R) .<br />
<br />
A taxa assintótica de convergência mede o aumento no número de casas decimais corretas na solução por<br />
iteração. De fato, usando a norma matricial do Lema 3.5 e medindo as normas dos vetores de acordo, temos<br />
donde<br />
ou<br />
Assim, se<br />
teremos<br />
<br />
e k+1 <br />
|e k | =<br />
− log 10<br />
<br />
R k+1 e 0 <br />
|R k e 0 |<br />
<br />
e k+1 <br />
k→∞<br />
R = ρ (R) + ε,<br />
|e k | = − log 10 ρ (R) + O (ε)<br />
<br />
log e 10<br />
k <br />
− log e 10<br />
k+1 = R∞ (R) + O (ε) . (3.33)<br />
<br />
e k = O 10 −p ,<br />
<br />
e k+1 = O 10 −q ,<br />
q − p ≈ R∞ (R) ,<br />
isto é, reduzimos R∞ (R) ≈ q − p casas decimais no erro. Visto de outra forma, como<br />
donde<br />
ou<br />
<br />
e k+m <br />
|e k | =<br />
<br />
R k+m e 0 <br />
− log 10<br />
|R k e 0 | Rm = ρ (R) m + O (ε) ,<br />
<br />
e k+m <br />
|e k | ≈ −m log 10 ρ (R) ,<br />
m = log <br />
e 10<br />
k+m / ek <br />
log10 ρ (R)<br />
é o número de iterações necessárias para diminuir o erro de um número prescrito de casas decimais.<br />
3.2.3 Convergência para Matrizes Simétricas Positivas Definidas<br />
(3.34)<br />
Para matrizes reais simétricas positivas definidas é mais fácil provar a convergência dos métodos iterativos<br />
lineares. Temos o seguinte resultado básico a seguir. Antes precisamos da seguinte definição:<br />
3.12 Definição. Introduzimos uma ordenação parcial em Mn definindo<br />
se<br />
para todo x ∈ C n .<br />
A B<br />
〈Ax, x〉 〈Bx, x〉
Rodney Josué Biezuner 43<br />
Em particular, se A é uma matriz positiva definida, segue que A εI para algum ε (o menor autovalor de<br />
A) e denotamos este fato por<br />
A > 0.<br />
Lembramos que se A é uma matriz simétrica positiva definida e P é uma matriz invertível, então B = P t AP<br />
também é uma matriz simétrica positiva definida, pois<br />
e<br />
B t = P t AP t = P t A t P t t = P t AP = B<br />
〈Bx, x〉 = P t AP x, x = 〈AP x, P x〉 .<br />
3.13 Teorema. Seja A uma matriz simétrica positiva definida e seja A = B −C com B invertível. Então o<br />
método iterativo linear com matriz de iteração R = B −1 C converge se e somente se a matriz simétrica<br />
B t + C é positiva definida.<br />
Prova. Para ver que B t + C é simétrica, escreva B t + C = B t + B − A e note que<br />
B t + C t = B t + B − A t = B + B t − A = B t + B − A = B t + C.<br />
Medimos a norma do erro através da norma induzida por A<br />
|x| A := 〈Ax, x〉 1/2<br />
e consideraremos a norma matricial · A induzida por esta norma. Se provarmos que<br />
o método convergirá. Temos<br />
R A < 1,<br />
R 2<br />
A = B −1 C 2 <br />
B<br />
= sup<br />
A<br />
x=0<br />
−1Cx 2 A<br />
|x| 2<br />
<br />
−1 −1 t −t −1 AB Cx, B Cx C B AB Cx, x<br />
= sup<br />
= sup<br />
. (3.35)<br />
A<br />
x=0 〈Ax, x〉<br />
x=0 〈Ax, x〉<br />
Observe que C t B −t AB −1 C é uma matriz simétrica positiva definida, pois<br />
C t B −t AB −1 C = B t − A B −t AB −1 (B − A) = I − AB −t A I − B −1 A <br />
= I − B −1 A t A I − B −1 A .<br />
Portanto, para provar que R A < 1, basta mostrar que<br />
Continuando o desenvolvimento da expressão em outra direção, temos<br />
C t B −t AB −1 C = I − AB −t A I − B −1 A <br />
C t B −t AB −1 C < A. (3.36)<br />
= A − AB −t A + AB −1 A − AB −t AB −1 A <br />
= A − AB −t B + B t − A B −1 A<br />
= A − B −1 A t B t + C B −1 A.<br />
de modo que (3.36) vale se e somente se B t + C é positiva definida.
Rodney Josué Biezuner 44<br />
3.3 Convergência dos Métodos Iterativos <strong>Linear</strong>es para Matrizes<br />
de Discretização<br />
3.3.1 Convergência do Método de Jacobi<br />
3.14 Teorema. Se A é uma matriz irredutível, diagonalmente dominante tal que |aii| > n<br />
|aij| para pelo<br />
menos alguma linha i, então o método de Jacobi converge.<br />
Prova. Seja D a parte diagonal da matriz A e R = D −1 (D − A) = I − D −1 A a matriz de iteração do<br />
método de Jacobi para A. Suponha por absurdo que exista um autovalor λ de R tal que |λ| 1. Como<br />
λ det λ −1 R − I = det (R − λI) = 0, temos<br />
det I − λ −1 R = 0.<br />
Por outro lado, observe que I − λ−1R também é irredutível, pois<br />
Rij = I − D −1 A <br />
ij =<br />
<br />
0 se i = j,<br />
se i = j,<br />
− aij<br />
aii<br />
−1<br />
I − λ R ij =<br />
<br />
1 se i = j,<br />
se i = j,<br />
−1<br />
aij<br />
λ<br />
aii<br />
de modo que, onde A se anula, I −λ −1 R também se anula. Além disso, I −λ −1 R é diagonalmente dominante<br />
e estritamente dominante nas linhas onde A é, pois |λ| −1 1, I − λ −1 R <br />
n <br />
<br />
I − λ −1 R <br />
j=1<br />
j=i<br />
ij<br />
<br />
<br />
= |λ|−1<br />
|aii|<br />
n<br />
j=1<br />
j=i<br />
|aij| 1<br />
|aii|<br />
ii<br />
= 1 e<br />
n<br />
|aij| .<br />
Mas, pela Proposição 2.36, isso implica que I − λ −1 R é invertível, uma contradição. <br />
O Teorema 3.14 mostra que o método de Jacobi converge para as matrizes de discretização obtidas através<br />
dos esquemas de diferenças finitas do Capítulo 1.<br />
Através do Teorema 3.14, fomos capazes de provar a convergência do método de Jacobi para as matrizes de<br />
discretização sem calcular explicitamente os seus raios espectrais. Para analizar a velocidade de convergência<br />
do método de Jacobi, no entanto, é necessário obter os raios espectrais destas matrizes. Vamos fazer isso para<br />
as matrizes de discretização obtidas a partir da fórmula de três pontos unidimensional e a partir da fórmula<br />
de cinco pontos bidimensional. Para isso, precisaremos obter os autovalores destas matrizes de discretização.<br />
No caso da fórmula de três pontos unidimensional, lembrando que as autofunções para o problema de<br />
Dirichlet do laplaciano no intervalo [0, 1] são as funções trigonométricas<br />
Uj (x) = sen jπx,<br />
isso sugere que os autovetores uj da matriz A sejam os vetores de coordenadas<br />
Uj (x1) , Uj (x2) , . . . , Uj (xn−2) , Uj (xn−1) = Uj (h) , Uj (2h) , . . . , Uj ((n − 2) h) , Uj ((n − 1) h) ,<br />
ou seja, como h = 1/n, os vetores<br />
<br />
uj = sen jπ<br />
<br />
2jπ (n − 2) jπ (n − 1) jπ<br />
, sen , . . . , sen , sen .<br />
n n n<br />
n<br />
Usando identidades trigonométricas, vamos verificar que isso de fato acontece:<br />
j=1<br />
j=i<br />
j=1<br />
j=i
Rodney Josué Biezuner 45<br />
3.15 Lema. Os n − 1 autovalores da matriz de discretização A da fórmula dos três pontos unidimensional<br />
são<br />
λj = 2<br />
h2 <br />
1 − cos jπ<br />
<br />
=<br />
n<br />
4 jπ<br />
sen2<br />
h2 2n<br />
(3.37)<br />
e os autovetores correspondentes são<br />
<br />
uj = sen jπ<br />
n<br />
j = 1, . . . , n − 1.<br />
Prova. Temos<br />
⎡<br />
2 −1<br />
⎢<br />
−1<br />
⎢<br />
⎣<br />
2<br />
−1<br />
−1<br />
. ..<br />
. ..<br />
pois<br />
. ..<br />
. .. −1<br />
−1 2 −1<br />
−1 2<br />
2 sen jπ<br />
n<br />
− sen 2jπ<br />
n<br />
⎡<br />
⎤<br />
⎢<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎦ ⎢<br />
⎣<br />
sen<br />
, sen 2jπ<br />
n<br />
sen jπ<br />
n<br />
sen 2jπ<br />
n<br />
.<br />
.<br />
(n − 2) jπ<br />
sen<br />
n<br />
(n − 1) jπ<br />
n<br />
= 2 sen jπ<br />
n<br />
(n − 2) jπ<br />
, . . . , sen , sen<br />
n<br />
<br />
(n − 1) jπ<br />
n<br />
(3.38)<br />
⎤ ⎡<br />
⎥ ⎢<br />
2 sen<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎥ = ⎢<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎦ ⎣<br />
jπ 2jπ<br />
− sen<br />
n n<br />
− sen jπ<br />
⎤<br />
⎥<br />
2jπ 3jπ<br />
⎥<br />
+ 2 sen − sen ⎥<br />
n n n<br />
⎥<br />
.<br />
⎥<br />
.<br />
⎥<br />
(n − 3) jπ (n − 2) jπ (n − 1) jπ ⎥<br />
− sen + 2 sen − sen ⎥<br />
n<br />
n<br />
n ⎥<br />
(n − 2) jπ (n − 1) jπ ⎦<br />
− sen + 2 sen<br />
n<br />
n<br />
<br />
= 2 1 − cos jπ<br />
⎡<br />
⎢<br />
sen<br />
⎢<br />
⎢<br />
n ⎢<br />
⎣<br />
jπ<br />
n<br />
sen 2jπ<br />
⎤<br />
⎥<br />
n<br />
⎥<br />
. ⎥<br />
. ⎥ ,<br />
⎥<br />
(n − 2) jπ ⎥<br />
sen ⎥<br />
n ⎥<br />
(n − 1) jπ ⎦<br />
sen<br />
n<br />
− 2 sen jπ<br />
n<br />
cos jπ<br />
n<br />
<br />
= 2 1 − cos jπ<br />
<br />
sen<br />
n<br />
jπ<br />
n ,<br />
(n − k − 1) jπ (n − k) jπ (n − k + 1) jπ<br />
− sen + 2 sen − sen<br />
<br />
n<br />
n<br />
n<br />
(n − k) jπ<br />
= − sen<br />
−<br />
n<br />
jπ<br />
<br />
<br />
(n − k) jπ (n − k) jπ<br />
+ 2 sen − sen<br />
+<br />
n<br />
n<br />
n<br />
jπ<br />
<br />
n<br />
(n − k) jπ<br />
= − sen cos<br />
n<br />
jπ (n − k) jπ<br />
+ cos sen<br />
n n<br />
jπ (n − k) jπ<br />
+ 2 sen<br />
n n<br />
(n − k) jπ<br />
− sen cos<br />
n<br />
jπ (n − k) jπ<br />
− cos sen<br />
n n<br />
jπ<br />
<br />
n<br />
= 2 1 − cos jπ<br />
<br />
(n − k) jπ<br />
sen ,<br />
n n
Rodney Josué Biezuner 46<br />
e<br />
(n − 2) jπ (n − 1) jπ<br />
− sen + 2 sen<br />
<br />
n<br />
n<br />
(n − 1) jπ<br />
= − sen<br />
−<br />
n<br />
jπ<br />
<br />
(n − 1) jπ<br />
+ 2 sen<br />
n<br />
n<br />
(n − 1) jπ<br />
= − sen cos<br />
n<br />
jπ (n − 1) jπ<br />
+ cos sen<br />
n n<br />
jπ<br />
n<br />
(n − 1) jπ<br />
= − sen cos<br />
n<br />
jπ (n − 1) jπ<br />
− sen cos<br />
n n<br />
jπ<br />
<br />
n<br />
= 2 1 − cos jπ<br />
<br />
(n − 1) jπ<br />
sen ,<br />
n n<br />
onde na penúltima identidade usamos o fato que<br />
porque<br />
cos<br />
(n − 1) jπ<br />
n<br />
sen jπ<br />
n<br />
= − sen (n − 1) jπ<br />
n<br />
+ 2 sen (n − 1) jπ<br />
n<br />
+ 2 sen (n − 1) jπ<br />
n<br />
cos jπ<br />
n<br />
<br />
(n − 1) jπ<br />
0 = sen jπ = sen<br />
+<br />
n<br />
jπ<br />
<br />
(n − 1) jπ<br />
= sen cos<br />
n<br />
n<br />
jπ (n − 1) jπ<br />
+ cos sen<br />
n n<br />
jπ<br />
n .<br />
<br />
No caso da fórmula de cinco pontos bidimensional, lembrando que as autofunções de Dirichlet do laplaciano<br />
no quadrado unitário [0, 1] × [0, 1] são as funções<br />
Ukl (x, y) = sen kπx sen lπy,<br />
isso sugere que os autovetores ukl da matriz A na ordem lexicográfica são os vetores de coordenadas<br />
ou seja,<br />
ou seja, como h = 1/n, os vetores<br />
ukl =<br />
Ukl (x1, y1) , Ukl (x2, y1) , . . . , Ukl (xn−1, y1) ,<br />
Ukl (x1, y2) , Ukl (x2, y2) , . . . , Ukl (xn−1, y2) ,<br />
.<br />
.<br />
Ukl (x1, yn−1) , Ukl (x2, yn−1) , . . . , Ukl (xn−1, yn−1)<br />
Ukl (h, h) , Ukl (2h, h) , . . . , Ukl ((n − 1) h, h) ,<br />
Ukl (h, 2h) , Ukl (2h, 2h) , . . . , Ukl ((n − 1) h, 2h) ,<br />
.<br />
Ukl (h, (n − 1) h) , Ukl (2h, (n − 1) h) , . . . , Ukl ((n − 1) h, (n − 1) h) ,<br />
<br />
sen kπ<br />
n<br />
sen kπ<br />
n<br />
. . . ,<br />
sen kπ<br />
n<br />
lπ 2kπ<br />
sen , sen<br />
m n<br />
2lπ 2kπ<br />
sen , sen<br />
n n<br />
(n − 1) lπ<br />
sen , sen<br />
n<br />
2kπ<br />
n<br />
lπ (n − 1) kπ<br />
sen , . . . , sen sen<br />
n n<br />
lπ<br />
n ,<br />
2lπ (n − 1) kπ<br />
sen , . . . , sen sen<br />
n n<br />
2lπ<br />
n ,<br />
(n − 1) lπ (n − 1) kπ<br />
sen , . . . , sen sen<br />
n<br />
n<br />
<br />
(n − 1) lπ<br />
.<br />
n
Rodney Josué Biezuner 47<br />
3.16 Lema. Os (n − 1) 2 autovalores da matriz de discretização A da fórmula dos cinco pontos bidimensional<br />
são<br />
λkl = 2<br />
h2 <br />
2 − cos kπ<br />
<br />
lπ<br />
− cos =<br />
n n<br />
4<br />
h2 <br />
<br />
2 kπ lπ<br />
sen + sen2<br />
2n 2n<br />
(3.39)<br />
e os autovetores correspondentes são<br />
ukl =<br />
<br />
sen kπ<br />
n<br />
sen kπ<br />
n<br />
. . . ,<br />
sen kπ<br />
n<br />
lπ 2kπ<br />
sen , sen<br />
n n<br />
2lπ 2kπ<br />
sen , sen<br />
n n<br />
(n − 1) lπ<br />
sen , sen<br />
n<br />
2kπ<br />
n<br />
k = 1, . . . , n − 1, l = 1, . . . , m − 1.<br />
lπ (n − 1) kπ<br />
sen , . . . , sen sen<br />
n n<br />
lπ<br />
n ,<br />
2lπ (n − 1) kπ<br />
sen , . . . , sen<br />
n n<br />
(n − 1) lπ (n − 1) kπ<br />
sen , . . . , sen sen<br />
n<br />
n<br />
sen 2lπ<br />
, (3.40)<br />
n<br />
<br />
(n − 1) lπ<br />
,<br />
n<br />
Prova. Embora a demonstração deste lema possa ser feita de maneira análoga à do lema anterior, usando<br />
identidades trigonométricas, daremos uma demonstração diferente. Lembrando que as autofunções e os<br />
autovalores de Dirichlet do laplaciano no retângulo são facilmente obtidos através do método de separação<br />
de variáveis, encontraremos os autovalores da matriz A usando um método de separação de variáveis discreto<br />
para achar os autovalores do laplaciano discreto dado pela fórmula dos cinco pontos:<br />
− ui,j−1 + ui−1,j − 4ui,j + ui+1,j + ui,j+1<br />
h 2 = λui,j. (3.41)<br />
Em particular, este método não depende da maneira como os pontos da malha são ordenados (não depende<br />
da matriz A usada para representar o laplaciano discreto). Como no método de separação de variáveis<br />
contínuo, assumimos que as soluções da equação discreta acima são produtos da forma<br />
ui,j = F (i) G (j) , (3.42)<br />
onde F e G são funções de uma variável inteira. Substituindo esta expressão na equação de Helmholtz<br />
discreta, obtemos<br />
F (i) G (j − 1) + F (i − 1) G (j) − 4F (i) G (j) + F (i + 1) G (j) + F (i) G (j + 1) = −λh 2 F (i) G (j) .<br />
Dividindo esta equação por F (i) G (j), segue que<br />
F (i − 1) − 2F (i) + F (i + 1)<br />
F (i)<br />
+ G (j − 1) − 2G (j) + G (j + 1)<br />
G (j)<br />
= −λh 2 .<br />
Separando as variáveis, concluímos que cada um dos quocientes acima é independente de i ou de j, isto é,<br />
eles são constantes:<br />
onde as constantes α, β estão relacionadas pela identidade<br />
F (i − 1) − 2F (i) + F (i + 1)<br />
= A,<br />
F (i)<br />
(3.43)<br />
G (j − 1) − 2G (j) + G (j + 1)<br />
= B,<br />
G (j)<br />
(3.44)<br />
A + B = −λh 2 . (3.45)
Rodney Josué Biezuner 48<br />
Estas equações podem ser escritas como fórmulas de recorrência (análogas às equações diferenciais ordinárias<br />
obtidas no método de separação de variáveis contínuo)<br />
F (i + 1) − (A + 2) F (i) + F (i − 1) = 0,<br />
G (j − 1) − (B + 2) G (j) + G (j + 1) = 0.<br />
Para resolvê-las, é mais conveniente trabalhar com as constantes<br />
Desta forma, as equações para F e G tornam-se<br />
2α = A + 2,<br />
2β = B + 2.<br />
F (i − 1) − 2αF (i) + F (i + 1) = 0, (3.46)<br />
G (j − 1) − 2βG (j) + G (j + 1) = 0. (3.47)<br />
Vamos resolver a equação para F , já que a equação para G é idêntica. Substituindo em (3.46) uma solução<br />
da forma<br />
F (i) = z i<br />
(3.48)<br />
obtemos<br />
z i−1 − 2αz i + z i+1 = 0,<br />
donde, dividindo por z i−1 extraímos a equação quadrática (análoga à equação indicial)<br />
As duas raízes são<br />
z 2 − 2αz + 1 = 0. (3.49)<br />
z± = α ± α 2 − 1,<br />
com z+ + z− = 2α e z+z− = 1. Portanto, a solução geral para a equação (3.46) é<br />
F (i) = c1z i + + c2z i −<br />
para algumas constantes c1, c2. Para determinarmos estas constantes e também α, aplicamos as condições<br />
de fronteira, que implicam<br />
F (0) = F (n) = 0.<br />
A primeira destas por sua vez implica que c1 = −c2, logo<br />
F (i) = c z i + − z i −<br />
. (3.50)<br />
Como a equação para F é homogênea, a constante c é arbitrária. Aplicando a segunda, segue que<br />
ou, como z+z− = 1,<br />
z n + = z n −,<br />
z 2n<br />
+ = 1<br />
Conseqüentemente, z+ é uma 2n-ésima raiz complexa de 1:<br />
z+ = e ijπ/n<br />
(3.51)<br />
para algum inteiro 1 k 2n − 1, onde i = √ −1. Como z− = 1/z+, podemos restringir 0 k n − 1 e<br />
(3.50) produz todas as soluções não-triviais F de (3.46).
Rodney Josué Biezuner 49<br />
Portanto,<br />
e, escolhendo c = 1/2,<br />
Analogamente,<br />
e<br />
Segue que os autovalores são<br />
α = z+ + z−<br />
2<br />
= eiπk/n + e −iπk/n<br />
2<br />
= cos kπ<br />
, 0 k n − 1,<br />
n<br />
Fk (i) = e iπki/n − e −iπki/n = sen ikπ<br />
n .<br />
β = cos lπ<br />
, 0 l n − 1,<br />
n<br />
Gl (j) = sen jlπ<br />
n .<br />
λkl = 2<br />
h2 <br />
2 − cos kπ<br />
<br />
lπ<br />
− cos<br />
n n<br />
e as coordenadas das autofunções associadas são dadas por<br />
<br />
(ukl) i,j = Fk (i) Gl (j) = sen ikπ<br />
n<br />
sen jlπ<br />
m .<br />
3.17 Teorema. Seja A a matriz de discretização obtida a partir da fórmula de três pontos unidimensional<br />
ou a partir da fórmula de cinco pontos bidimensional. Seja R = D −1 (D − A) a matriz de iteração do<br />
método de Jacobi. Então<br />
ρ (R) = cos π<br />
. (3.52)<br />
n<br />
Prova. Vamos provar para a fórmula de cinco pontos bidimensional; o argumento para a fórmula de três<br />
pontos unidimensional é análogo e fica deixado como exercício. Para o método de Jacobi, a matriz de<br />
discretização x k+1 = Rx k + D −1 b é obtida através da fórmula:<br />
Já vimos no Lema 3.16 que<br />
com<br />
Daí segue que<br />
Logo<br />
para<br />
u k+1<br />
i,j<br />
1 k<br />
= ui,j−1 + u<br />
4<br />
k i,j+1 + u k i−1,j + u k <br />
i+1,j .<br />
−u kl<br />
i−1,j − u kl<br />
i+1,j + 4u kl<br />
i,j − u kl<br />
i,j−1 − u kl<br />
i,j+1 = λklh 2 u kl<br />
i,j<br />
λkl = 2<br />
h2 <br />
2 − cos kπ<br />
<br />
lπ<br />
− cos .<br />
n n<br />
u kl<br />
i,j−1 + u kl<br />
i,j+1 + u kl<br />
i−1,j + u kl<br />
i+1,j = 4 − λklh 2 u kl<br />
i,j<br />
µlk = 1 − 1<br />
4 λklh 2 = 1 − 1<br />
2<br />
1 kl<br />
ui,j−1 + u<br />
4<br />
kl<br />
i,j+1 + u kl<br />
i−1,j + u kl <br />
i+1,j = µlku kl<br />
i,j<br />
<br />
2 − cos kπ<br />
<br />
lπ<br />
− cos =<br />
n n<br />
1<br />
<br />
cos<br />
2<br />
kπ<br />
<br />
lπ<br />
+ cos .<br />
n n<br />
Estes são os autovalores da matriz de iteração de Jacobi para a matriz de discretização obtida a partir da<br />
fórmula de cinco pontos (observe que elas possuem os mesmos autovetores; no entanto R possui autovalores<br />
nulos). Segue que o máximo autovalor ocorre quando k = l = 1, logo<br />
ρ (R) = cos π<br />
n .
Rodney Josué Biezuner 50<br />
<br />
Para o quadrado unitário temos<br />
ρ (R) = cos (πh) . (3.53)<br />
Vemos em particular que ρ (R) → 1 quando h → 0, de modo que a velocidade de convergência do método<br />
de Jacobi vai ficando cada vez menor para malhas mais refinadas. Podemos dizer mais usando a expansão<br />
da função cosseno em torno da origem<br />
se h é pequeno podemos aproximar<br />
cos x = 1 − 1<br />
2 x2 + O x 4 ;<br />
cos (πh) ≈ 1 − π2<br />
2 h2 ,<br />
de modo que ρ (R) → 1 quadraticamente quando h → 0. Em outras palavras, para uma malha duas vezes<br />
mais refinada (isto é, h reduzido pela metade), o método de Jacobi é cerca de quatro vezes mais vagaroso<br />
em média (consulte novamente a tabela no final da seção anterior). A tabela abaixo mostra os valores do<br />
raio espectral para alguns valores de h:<br />
h 0.1 0.05 0.025<br />
ρ (R) 0.9511 0.9877 0.9969<br />
Para h = 0.025 (correspondente a uma matriz de tamanho n = 39 × 39 = 1521), temos<br />
R∞ (R) = − log 10 (0.9969) = 0.0013484,<br />
de modo que para reduzir o erro pelo fator de uma casa decimal precisamos de<br />
iterações.<br />
m = log 10 0.1<br />
log 10 ρ (R)<br />
1<br />
= −<br />
log10 ρ (R) =<br />
1<br />
≈ 742<br />
0.00135<br />
3.3.2 Convergência do Método de Gauss-Seidel<br />
3.18 Teorema. Se A é uma matriz irredutível, diagonalmente dominante tal que |aii| > n<br />
|aij| para pelo<br />
menos alguma linha i, então o método de Gauss-Seidel converge.<br />
Prova. Sejam D a parte diagonal, −L a parte triangular inferior estrita e −U a parte triangular superior<br />
estrita da matriz A, e seja R = (D − L) −1 U a matriz de iteração do método de Gauss-Seidel para A.<br />
Escrevemos<br />
R = (D − L) −1 U = D I − D −1 L −1 U<br />
ou<br />
j=1<br />
j=i<br />
R = I − D −1 L −1 D −1 U. (3.54)<br />
Suponha por absurdo que exista um autovalor λ de R tal que |λ| 1; como na demonstração do Teorema<br />
3.9, temos<br />
Agora, observando que<br />
det I − λ −1 R <br />
= det I − λ −1 <br />
−1 −1 −1<br />
I − D L D U = 0.<br />
det I − D −1 L = 1
Rodney Josué Biezuner 51<br />
porque I − D−1L é uma matriz triangular inferior com apenas 1’s na diagonal principal, escrevemos<br />
<br />
0 = det I − λ −1 <br />
−1 −1 −1<br />
I − D L D U<br />
= det I − D −1 L <br />
det I − λ −1 <br />
−1 −1 −1<br />
I − D L D U<br />
I −1<br />
= det − D L <br />
I − λ −1 <br />
−1 −1 −1<br />
I − D L D U<br />
Por outro lado,<br />
= det I − D −1 L − λ −1 D −1 U .<br />
D −1 A = I − D −1 L − D −1 U<br />
é irredutível, diagonalmente dominante e estritamente dominante nas linhas onde A é porque<br />
−1<br />
D A ij =<br />
<br />
1 se i = j,<br />
aij<br />
se i = j.<br />
aii<br />
Logo, a matriz I − D −1 L − λ −1 D −1 U também satisfaz estas propriedades, pois I, −D −1 L e −D −1 U são<br />
respectivamente a parte diagonal, a parte triangular inferior estrita e a parte triangular superior estrita da<br />
matriz D −1 A, e multiplicar a parte triangular inferior estrita pelo número λ −1 cujo módulo é menor que ou<br />
igual a 1 não alterará a dominância diagonal (na verdade só tende a melhorá-la) nem acrescentará zeros à<br />
matriz. A Proposição 2.16 implica então que I − D −1 L − λ −1 D −1 U é invertível, um absurdo. <br />
Usando o Teorema 3.18, concluímos que o método de Gauss-Seidel converge para as matrizes de discretização<br />
obtidas através dos esquemas de diferenças finitas do Capítulo 1. Para analizar a velocidade de convergência<br />
do método de Gauss-Seidel, vamos obter os raios espectrais para as matrizes de discretização obtidas a partir<br />
da fórmula de três pontos unidimensional e a partir da fórmula de cinco pontos bidimensional.<br />
3.19 Teorema. Seja A a matriz de discretização obtida a partir da fórmula de três pontos unidimensional<br />
ou a partir da fórmula de cinco pontos bidimensional. Seja R = (D − L) −1 U a matriz de iteração do<br />
método de Gauss-Seidel. Então<br />
2 π<br />
ρ (R) = cos . (3.55)<br />
n<br />
Prova. Para obter o raio espectral da matriz de iteração R, queremos encontrar os autovalores µ de R:<br />
ou seja,<br />
Ru = (D − L) −1 Uu = µu,<br />
Uu = µ (D − L) u<br />
(um problema de autovalor generalizado). No caso da matriz de discretização da fórmula de cinco pontos,<br />
isso significa encontrar µ tal que<br />
Para os autovalores não-nulos, podemos fazer a substituição<br />
ui,j+1 + ui+1,j = µ (4ui,j − ui,j−1 − ui−1,j) . (3.56)<br />
ui,j = µ i+j<br />
2 vi,j (3.57)<br />
para transformar a equação de autovalor naquela que aparece no método de Jacobi. Temos<br />
<br />
µ i+j+1<br />
2 vi,j + µ i+j+1 <br />
2 vi+1,j = µ 4µ i+j<br />
2 vi,j − µ i+j−1<br />
2 vi,j−1 − µ i+j−1<br />
2 vi−1,j<br />
= 4µ i+j+2<br />
2 vi,j − µ i+j+1<br />
2 vi,j−1 − µ i+j+1<br />
2 vi−1,j,
Rodney Josué Biezuner 52<br />
de modo que, dividindo por µ i+j+1<br />
2 , obtemos<br />
vi−1,j + vi+1,j + vi,j−1 + vi,j+1 = µ 1/2 4vi,j.<br />
Portanto os autovalores da matriz de iteração de Gauss-Seidel para esta matriz são exatamente os quadrados<br />
dos autovalores da matriz de iteração de Jacobi (e os autovetores são os mesmos):<br />
µlk = 1<br />
<br />
cos<br />
4<br />
kπ<br />
2 lπ<br />
+ cos .<br />
n n<br />
Portanto, o máximo autovalor ocorre quando k = l = 1 e<br />
2 π<br />
ρ (R) = cos<br />
n .<br />
O argumento para a fórmula de três pontos é análogo. <br />
Para o quadrado unitário temos<br />
ρ (R) = cos 2 (πh) ,<br />
e usando<br />
cos 2 x =<br />
se h é pequeno podemos aproximar<br />
<br />
1 − 1<br />
2 x2 + O x 4 2<br />
= 1 − x 2 + O x 4 ,<br />
cos 2 (πh) ≈ 1 − π 2 h 2 .<br />
No método de Gauss-Seidel ainda temos ρ (R) → 1 quadraticamente quando h → 0, mas a sua velocidade<br />
de convergência para a matriz de discretização de cinco pontos do quadrado unitário é duas vezes maior que<br />
a do método de Jacobi. Para ver isso, faça a expansão do logaritmo em torno do ponto x = 1:<br />
Segue que<br />
3.3.3 Convergência do Método SOR<br />
3.20 Teorema. Se o método SOR converge, então<br />
log (1 + x) = x + O h 2 .<br />
R∞ (RJacobi) = π2<br />
2 h2 + O h 4 , (3.58)<br />
R∞ (RGauss-Seidel) = π 2 h 2 + O h 4 . (3.59)<br />
0 < ω < 2.<br />
Prova. A matriz de iteração do método SOR é<br />
−1 <br />
1<br />
1 − ω<br />
1<br />
R = D − L<br />
D + U =<br />
ω ω<br />
= I − ωD −1 L <br />
−1 −1 1 − ω<br />
ωD D + U<br />
ω<br />
ou<br />
Se λ1, . . . , λn são os autovalores de R, então<br />
ω D I − ωD −1 L −1 <br />
1 − ω<br />
ω<br />
<br />
D + U<br />
R = I − ωD −1 L −1 (1 − ω) I + ωD −1 U . (3.60)<br />
det R = λ1 . . . λn.
Rodney Josué Biezuner 53<br />
Mas,<br />
I −1 −1 −1<br />
det R = det − ωD L (1 − ω) I + ωD U <br />
= det I − ωD −1 L −1 −1<br />
det (1 − ω) I + ωD U<br />
= (1 − ω) n ,<br />
já que I − ωD −1 L é uma matriz triangular inferior com apenas 1 na diagonal principal e (1 − ω) I + ωD −1 U<br />
é uma matriz triangular superior com apenas 1 − ω na diagonal principal. Logo<br />
λ1 . . . λn = (1 − ω) n .<br />
Em particular, pelo menos um dos autovalores λj de R deve satisfazer<br />
|λj| |1 − ω| .<br />
Mas, se o método SOR converge, devemos ter também |λ| < 1 para todo autovalor λ de R. Logo<br />
donde<br />
<br />
|1 − ω| < 1,<br />
0 < ω < 2.<br />
3.21 Corolário. Se R é a matriz de iteração n × n para o método SOR, então<br />
det R = (1 − ω) n .<br />
Em particular, diferente das matrizes de iteração dos métodos de Jacobi e de Gauss-Seidel (para a matriz de<br />
discretização de cinco pontos), zero não é um autovalor para a matriz de iteração do método SOR se ω = 1<br />
(para nenhuma matriz).<br />
3.22 Teorema. Se A é uma matriz irredutível, diagonalmente dominante tal que |aii| > n<br />
|aij| para pelo<br />
menos alguma linha i, então o método SOR converge se 0 < ω 1.<br />
Prova. A demonstração é análoga à do Teorema 3.18. A matriz de iteração do método SOR é<br />
R = I − ωD −1 L −1 (1 − ω) I + ωD −1 U .<br />
Suponha por absurdo que exista um autovalor λ de R tal que |λ| 1; temos<br />
Agora, observando que<br />
det I − λ −1 R = det<br />
j=1<br />
j=i<br />
<br />
I − λ −1 I − ωD −1 L −1 (1 − ω) I + ωD −1 U <br />
= 0.<br />
det I − ωD −1 L = 1<br />
porque I − ωD −1 L é uma matriz triangular inferior com apenas 1’s na diagonal principal, escrevemos<br />
0 = det<br />
<br />
I − λ −1 I − ωD −1 L −1 (1 − ω) I + ωD −1 U <br />
= det I − ωD −1 L det<br />
= det<br />
<br />
I − λ −1 I − ωD −1 L −1 (1 − ω) I + ωD −1 U <br />
I − ωD −1 L <br />
I − λ −1 I − ωD −1 L −1 (1 − ω) I + ωD −1 U <br />
= det I − ωD −1 L − λ −1 (1 − ω) I + ωD −1 U <br />
= det 1 − λ −1 (1 − ω) I − ωD −1 L − λ −1 ωD −1 U .
Rodney Josué Biezuner 54<br />
Por outro lado, como vimos na demonstração do Teorema 3.18, a matriz<br />
D −1 A = I − D −1 L − D −1 U<br />
é irredutível, diagonalmente dominante e estritamente dominante nas linhas onde A é, logo a matriz<br />
S = 1 − λ −1 (1 − ω) I − ωD −1 L − λ −1 ωD −1 U<br />
também satisfaz estas propriedades. De fato, S tem zeros nas mesmas posições que I − D −1 L − D −1 U, logo<br />
a sua irredutibilidade não é afetada. Além disso, pela dominância diagonal de D −1 A, sabemos que se<br />
bij = D −1 L <br />
ij ,<br />
cij = D −1 U <br />
ij .<br />
então<br />
i−1<br />
1 |bij| +<br />
j=1<br />
Para provar a dominância diagonal de S, observamos que os valores que S possui na diagonal principal são<br />
de modo que precisamos provar que<br />
se 0 < ω 1 e |λ| 1. Provaremos que<br />
1 − λ −1 (1 − ω) = 1 −<br />
j=1<br />
n<br />
j=i+1<br />
1 − ω<br />
λ<br />
|cij| .<br />
<br />
<br />
<br />
λ + ω − 1<br />
i−1<br />
<br />
λ ω |bij| + ω<br />
|λ|<br />
<br />
<br />
<br />
λ + ω − 1<br />
<br />
λ ω,<br />
<br />
<br />
<br />
λ + ω − 1<br />
<br />
ω<br />
λ <br />
|λ| .<br />
λ + ω − 1<br />
= ,<br />
λ<br />
Para isso, observe que como |λ| 1 basta provar a primeira desigualdade, a qual por sua vez é equivalente a<br />
|λ + ω − 1| |λ| ω.<br />
É fácil ver que esta desigualdade é válida quando λ ∈ R, pois<br />
n<br />
j=i+1<br />
|cij|<br />
|λ + ω − 1| = λ + ω − 1 λω porque λ − 1 λω − ω = ω (λ − 1) .<br />
Para o caso geral em que λ ∈ C, fazemos cair no caso real escrevendo<br />
|λ + ω − 1| 2 = |λ − (1 − ω)| 2 = |λ| 2 − 2 (Re λ) (1 − ω) + (1 − ω) 2<br />
|λ| 2 − 2 |λ| (1 − ω) + (1 − ω) 2 = [|λ| − (1 − ω)] 2<br />
= [|λ| + ω − 1] 2 |λ| 2 ω 2 .<br />
O resultado acima continua valendo com desigualdade estrita nas linhas onde a desigualdade é estrita. A<br />
Proposição 2.36 implica então que S é invertível, contradizendo det S = 0. <br />
3.23 Teorema. Seja A uma matriz simétrica positiva definida. Então o método SOR converge se 0 < ω < 2.
Rodney Josué Biezuner 55<br />
Prova. Usaremos o Teorema 3.13. Escrevendo A = D − L − U, temos L t = U porque A é simétrica e as<br />
entradas diagonais de D positivas porque A é positiva definida. Para o método SOR temos<br />
B = 1<br />
1 − ω<br />
D − L e C = D + U,<br />
ω ω<br />
logo<br />
B t + C = 1<br />
ω D − Lt 1 − ω 2 − ω<br />
+ D + U =<br />
ω ω D<br />
é uma matriz simétrica positiva definida se 0 < ω < 2. <br />
Na verdade, se as entradas diagonais de uma matriz simétrica são positivas, a condição de ser definida<br />
positiva é equivalente à convergência do método SOR para 0 < ω < 2, como o próximo resultado mostra.<br />
3.24 Teorema. Seja A uma matriz simétrica com entradas diagonais positivas. Então o método SOR<br />
converge se e somente se A é positiva definida e 0 < ω < 2.<br />
Prova. Assuma que A é positiva definida e que 0 < ω < 2. Seja<br />
R = I − ωD −1 L −1 (1 − ω) I + ωD −1 U <br />
a matriz de iteração do método SOR. Se λ é um autovalor de R e x um autovetor associado, temos Rx = λx,<br />
donde (1 − ω) I + ωD −1 U x = λ I − ωD −1 L x.<br />
Fazendo o produto interno canônico (hermitiano) de C n de ambos os lados com o vetor x, segue que<br />
(1 − ω) 〈x, x〉 + ω x, D −1 Ux = λ 〈x, x〉 − ω x, D −1 Lx <br />
Isolando λ,<br />
λ = (1 − ω) 〈x, x〉 + ω x, D−1Ux <br />
〈x, x〉 − ω 〈x, D−1 . (3.61)<br />
Lx〉<br />
Como A é simétrica, o produto de matrizes simétricas D −1 A = I − D −1 U − D −1 L também é; como<br />
D −1 U, D −1 L são respectivamente a parte estritamente triangular superior e estritamente triangular inferior<br />
de uma matriz simétrica, temos<br />
D −1 U t = D −1 L.<br />
Logo<br />
e definindo<br />
podemos escrever<br />
x, D −1 Ux =<br />
D <br />
−1 t<br />
U x, x = D −1 L x, x = 〈x, (D−1L) x〉,<br />
z =<br />
λ =<br />
x, D −1 L x <br />
〈x, x〉<br />
,<br />
(1 − ω) + ωz<br />
. (3.62)<br />
1 − ωz<br />
Os argumentos acima assumem que o denominador é não-nulo. E, de fato, temos<br />
Re z = 1<br />
<br />
−1 −1<br />
1 x, D L x x, D U x<br />
(z + z) = +<br />
2 2 〈x, x〉<br />
〈x, x〉<br />
= 1<br />
<br />
−1 x, I − D A x<br />
=<br />
2 〈x, x〉<br />
1<br />
<br />
−1 x, D A x<br />
1 −<br />
.<br />
2 〈x, x〉<br />
= 1<br />
<br />
−1 −1 x, D L + D U x<br />
2 〈x, x〉
Rodney Josué Biezuner 56<br />
e como A é positiva definida, D −1 A também é, o que implica<br />
x, D −1 A x <br />
〈x, x〉<br />
donde<br />
Re z < 1<br />
2 .<br />
de modo que a parte real do denominador 1 − ωz de λ é não-nula para 0 < ω < 2. Segue que<br />
|λ| 2 = λλ =<br />
[(1 − ω) + ωz] [(1 − ω) + ωz]<br />
(1 − ωz) (1 − ωz)<br />
> 0<br />
= ω2 − 2ω 2 Re z − 2ω + 4ω Re z + 1 − 2ω Re z + ω 2 |z| 2<br />
1 − 2ω Re z + ω 2 |z| 2<br />
ω (2 − ω) (1 − 2 Re z)<br />
= 1 −<br />
1 − 2ω Re z + ω2 2 .<br />
|z|<br />
Como 0 < ω < 2 e Re z < 1<br />
, temos<br />
2<br />
e concluímos que<br />
ω (2 − ω) (1 − 2 Re z) > 0,<br />
|λ| < 1<br />
= (1 − ω)2 + 2ω (1 − ω) Re z + ω 2 |z| 2<br />
1 − 2ω Re z + ω 2 |z| 2<br />
para todo autovalor λ de R, logo o método SOR converge. A demonstração da recíproca (assim como uma<br />
demonstração alternativa, variacional, deste teorema) pode ser vista em [Young]. <br />
Usando o Teorema 3.22, concluímos que o método SOR converge para as matrizes de discretização obtidas<br />
através dos esquemas de diferenças finitas do Capítulo 1 se 0 < ω 1. Isso permite apenas subrelaxamento<br />
do método de Gauss-Seidel, o que em geral reduz a velocidade de convergência. Por outro lado, usando o<br />
Teorema 3.23 ou o Teorema 3.24, concluímos que o método SOR converge para as matrizes de discretização<br />
obtidas a partir da fórmula de três pontos unidimensional e a partir da fórmula de cinco pontos bidimensional<br />
se 0 < ω < 2, já que estas são matrizes simétricas, positivas definidas (já as matrizes de discretização obtidas<br />
através de coordenadas polares ou pelo esquema de Shortley-Weller não são simétricas, em geral, como<br />
vimos).<br />
Em seguida fazemos uma análise da velocidade de convergência do método SOR para a matriz de discretização<br />
da fórmula de cinco pontos, bem como obtemos o melhor valor do fator de relaxamento ω para<br />
este caso.<br />
3.25 Lema. Seja A a matriz de discretização obtida a partir da fórmula de três pontos unidimensional ou<br />
a partir da fórmula de cinco pontos bidimensional. Se λ = 0 é um autovalor de RSOR, então existe<br />
um autovalor λJ de RJ tal que<br />
1 − ω − λ<br />
λJ =<br />
λ1/2 . (3.63)<br />
ω2 Reciprocamente, se λJ é um autovalor de RJ e λ ∈ C satisfaz a equação acima, então λ é um autovalor<br />
de RSOR.<br />
Prova. Argumentamos como na demonstração do Teorema 3.13. Para obter o raio espectral da matriz de<br />
iteração RSOR, queremos encontrar os autovalores λ de RSOR:<br />
RSORu = I − ωD −1 L −1 (1 − ω) I + ωD −1 U u = λu,<br />
ou seja, (1 − ω) I + ωD −1 U u = λ I − ωD −1 L u
Rodney Josué Biezuner 57<br />
No caso da matriz de discretização da fórmula de cinco pontos, isso significa encontrar λ tal que<br />
(1 − ω) ui,j + ω<br />
4 ui,j+1 + ω<br />
4 ui+1,j<br />
<br />
= λ ui,j − ω<br />
4 ui,j−1 − ω<br />
4 ui−1,j<br />
<br />
ou<br />
1 − ω − λ<br />
ui,j =<br />
ω<br />
1<br />
4 (ui,j+1<br />
Fazendo a substituição<br />
+ ui+1,j + λui,j−1 + λui−1,j) . (3.64)<br />
e dividindo por µ i+j+1<br />
2 , segue que<br />
ui,j = λ i+j<br />
2 vi,j<br />
vi−1,j + vi+1,j + vi,j−1 + vi,j+1 =<br />
1 − ω − λ<br />
λ 1/2 ω 4vi,j<br />
e daí o resultado. <br />
Resolvendo a equação (3.63) como uma equação quadrática em √ λ, vemos que as duas raízes λ± = λ±<br />
podem ser escritas na forma<br />
Denotaremos<br />
e por λJ = ρ (RJ) o maior autovalor do método de Jacobi.<br />
λ± = 1<br />
<br />
−ωλJ ± ω<br />
4<br />
2λ2 2 J − 4 (ω − 1) . (3.65)<br />
Λω,λJ = max (|λ+| , |λ−|) (3.66)<br />
3.26 Proposição. Seja A a matriz de discretização obtida a partir da fórmula de três pontos unidimensional<br />
ou a partir da fórmula de cinco pontos bidimensional. Então<br />
Prova. Por definição,<br />
De (3.65) segue que<br />
Λω,λJ = 1<br />
4<br />
ρ (RSOR,ω) = Λ ω,λJ<br />
ρ (RSOR,ω) = max Λω,λJ<br />
λJ<br />
.<br />
<br />
<br />
<br />
ωλJ +<br />
<br />
ω 2 λ 2<br />
2<br />
<br />
J − 4 (ω − 1) <br />
.<br />
2<br />
(3.67)<br />
Se 0 < ω 1, ω2λ 2<br />
J − 4 (ω − 1) 0 e Λω,λJ é uma função crescente de λJ, logo o máximo é atingido em λJ.<br />
Se ω > 1, defina<br />
<br />
4 (ω − 1)<br />
λc =<br />
ω2 .<br />
Se λJ > λc, ω 2 λ 2<br />
J − 4 (ω − 1) > 0 e segue a conclusão como no caso anterior. Se λJ λc, então ω 2 λ 2<br />
J −<br />
4 (ω − 1) 0 e<br />
onde i = √ −1, logo<br />
Λω,λJ =<br />
<br />
<br />
<br />
ωλJ +<br />
= ω − 1,<br />
<br />
ω2λ 2<br />
<br />
J − 4 (ω − 1) = 4 (ω − 1) − ω2λ 2<br />
Ji,<br />
<br />
ω 2 λ 2<br />
<br />
<br />
J − 4 (ω − 1) <br />
<br />
e novamente Λω,λJ é uma função crescente de λJ. <br />
2<br />
<br />
<br />
<br />
= <br />
<br />
ω 2 λ 2 J +<br />
<br />
4 (ω − 1) − ω 2 λ 2<br />
J<br />
2
Rodney Josué Biezuner 58<br />
Defina<br />
ωótimo =<br />
1 +<br />
2<br />
<br />
1 − λ 2<br />
J<br />
. (3.68)<br />
Note que 1 < ωótimo < 2. Mostraremos que ωótimo é de fato o melhor valor para o fator de relaxamento no<br />
método SOR. Antes precisamos do seguinte resultado:<br />
3.27 Proposição. Seja A a matriz de discretização obtida a partir da fórmula de três pontos unidimensional<br />
ou a partir da fórmula de cinco pontos bidimensional. Então<br />
⎧ <br />
⎨ 1<br />
ωλJ ρ (RSOR,ω) =<br />
+ ω<br />
⎩<br />
4<br />
2λ 2<br />
2 J − 4 (ω − 1) se 0 < ω ωótimo,<br />
(3.69)<br />
ω − 1 se ωótimo ω < 2.<br />
Prova. Temos ω 2 λ 2<br />
J − 4 (ω − 1) 0 para 0 < ω < 2 se e somente se ω ωótimo. De fato, as raízes de<br />
f (ω) = ω 2 λ 2<br />
J − 4ω + 4 são<br />
ω± =<br />
<br />
4 ± 4 1 − λ 2<br />
J<br />
2λ 2<br />
J<br />
= 2<br />
λ 2<br />
<br />
1 ± 1 − λ<br />
J<br />
2<br />
<br />
J<br />
de modo que a raiz positiva de f é maior que 2, logo para que f (ω) 0 se 0 < ω < 2, devemos ter<br />
ω 2<br />
λ 2<br />
<br />
1 − 1 − λ<br />
J<br />
2<br />
<br />
J = 2<br />
λ 2<br />
<br />
1 − 1 − λ<br />
J<br />
2<br />
<br />
J<br />
=<br />
1 +<br />
1 +<br />
2<br />
.<br />
<br />
1 − λ 2<br />
J<br />
O resultado segue então como na demonstração da proposição anterior. <br />
<br />
1 − λ 2<br />
J<br />
3.28 Teorema. Seja A a matriz de discretização obtida a partir da fórmula de três pontos unidimensional<br />
ou a partir da fórmula de cinco pontos bidimensional. Então o fator de relaxamento ótimo para o<br />
método SOR é dado por<br />
2<br />
ωótimo =<br />
1 + sen π<br />
n<br />
é o fator de relaxamento ótimo para o método SOR.<br />
Prova. Se 0 < ω ωótimo, então ω 2 λ 2<br />
J − 4 (ω − 1) 0 e<br />
<br />
d<br />
ωλJ + ω<br />
dω<br />
2λ 2<br />
<br />
J − 4 (ω − 1) = λJ<br />
Temos ωλ 2<br />
J − 2 < 0, porque 0 < ω < 2 e λJ < 1, e<br />
pois<br />
<br />
<br />
ωλ 2<br />
<br />
<br />
J − 2<br />
2<br />
<br />
=<br />
<br />
<br />
ωλ 2<br />
<br />
<br />
J − 2<br />
= ω 2 λ 4<br />
J − 4λ 2<br />
λJ<br />
> λJ<br />
Jω + 4 > ω 2 λ 4<br />
<br />
ω 2 λ 2<br />
J − 4 (ω − 1)<br />
<br />
ω2λ 2<br />
J − 4 (ω − 1) + ωλ 2<br />
<br />
ω2λ 2<br />
J − 4 (ω − 1)<br />
<br />
ω 2 λ 2<br />
J − 4 (ω − 1),<br />
J − 4λ 2<br />
2 .<br />
Jω + 4λ 2<br />
J > ω 2 λ 4<br />
J − 4λ 2<br />
J − 2<br />
.<br />
J (ω − 1)<br />
(3.70)
Rodney Josué Biezuner 59<br />
Isso implica<br />
<br />
d<br />
ωλJ + ω<br />
dω<br />
2λ 2<br />
<br />
J − 4 (ω − 1) < 0,<br />
logo ρ (RSOR,ω) é decrescente de 0 até ωótimo. Para ωótimo ω < 2, ρ (RSOR,ω) = ω − 1 é claramente<br />
crescente. Portanto, ρ (RSOR,ω) atinge o seu mínimo em ωótimo.<br />
Pelo Teorema 3.15, temos<br />
λJ = cos π<br />
n ,<br />
logo<br />
ωótimo =<br />
1 +<br />
<br />
Para o quadrado unitário temos<br />
e conseqüentemente<br />
e usando<br />
se h é pequeno podemos aproximar<br />
2<br />
<br />
1 − λ 2<br />
J<br />
ρ (RSOR,ω) =<br />
ωótimo =<br />
2<br />
2<br />
= =<br />
π<br />
1 + 1 − cos2 1 + sen<br />
n<br />
π .<br />
n<br />
2<br />
1 + sen (πh)<br />
2<br />
1 − sen (πh)<br />
− 1 =<br />
1 + sen (πh) 1 + sen (πh) .<br />
1 − x<br />
1 + x = 1 − 2x + O x 2 ,<br />
sen x = x + O x 3 ,<br />
1 − sen (πh)<br />
1 + sen (πh) ≈ 1 − 2πh + O h 2 .<br />
Portanto, usando o valor ótimo de ω no método SOR, temos ρ (R) → 1 linearmente quando h → 0, um<br />
resultado muito melhor que o obtido nos métodos de Jacobi e de Gauss-Seidel. Para uma comparação mais<br />
precisa, usando<br />
log (1 + x) = x + O h 2<br />
temos que<br />
Segue que<br />
R∞ (RSOR) = 2πh + O h 2 . (3.71)<br />
R∞ (RSOR)<br />
R∞ (RGauss-Seidel)<br />
2πh<br />
≈<br />
π2 2<br />
=<br />
h2 πh .<br />
Em particular, se h = 0.025, temos ωótimo = 1. 8545 e R∞ (RSOR) /R∞ (RGauss-Seidel) = 25.5, isto é, o<br />
método SOR é 25 vezes mais rápido que o método de Gauss-Seidel. Quanto mais refinada a malha, maior é<br />
a diferença na velocidade de convergência entre os dois métodos.<br />
3.3.4 Convergência do Método de Jacobi Amortecido<br />
3.29 Teorema. Se o método de Jacobi converge, então o método de Jacobi amortecido converge para<br />
0 < ω 1.
Rodney Josué Biezuner 60<br />
Prova. Vamos escrever a matriz de iteração RJ,ω do método de Jacobi amortecido em função da matriz de<br />
iteração do método de Jacobi RJ. Temos<br />
de modo que<br />
<br />
1<br />
RJ,ω =<br />
ω D<br />
−1 <br />
1<br />
D − A<br />
ω<br />
donde<br />
Em particular,<br />
se e somente se<br />
Portanto, λJ é um autovalor de RJ se e somente se<br />
RJ = D −1 (D − A)<br />
= ωD −1<br />
<br />
1<br />
D − D + D − A = ωD<br />
ω −1<br />
<br />
1<br />
D − D + ωD<br />
ω −1 (D − A)<br />
RJ,ω = (1 − ω) I + ωRJ. (3.72)<br />
RJv = λv<br />
[RJ,ω − (1 − ω) I] v = ωλv.<br />
λJ,ω = ωλJ + 1 − ω (3.73)<br />
é um autovalor de RJ,ω. Logo, se todo autovalor de RJ satisfaz |λJ| < 1 (isto é, ρ (RJ) < 1 equivalente ao<br />
método de Jacobi convergir) e ω < 1, então<br />
|λJ,ω| 2 = (ωλJ + 1 − ω) ωλJ + 1 − ω <br />
= ω 2 |λJ| 2 + 2 Re λJω (1 − ω) + (1 − ω) 2<br />
ω 2 |λJ| 2 + 2 |λJ| ω (1 − ω) + (1 − ω) 2<br />
= (ω |λJ| + 1 − ω) 2<br />
< 1.<br />
<br />
Segue do Teorema 3.13 que o método de Jacobi amortecido converge para as matrizes de discretização do<br />
Capítulo 1 se 0 < ω 1.<br />
3.30 Corolário.<br />
Para o quadrado unitário temos<br />
Usando<br />
se h é pequeno podemos aproximar<br />
ρ (RJ,ω) = ω [ρ (RJ) − 1] + 1. (3.74)<br />
ρ (RJ,ω) = ω [cos (πh) − 1] + 1. (3.75)<br />
cos x = 1 − 1<br />
2 x2 + O x 4 ,<br />
log (1 + x) = x + O h 2 ,<br />
ρ (RJ,ω) ≈ 1 − ω π2<br />
2 h2 + O h 4 ,<br />
R∞ (RJ,ω) ≈ ω π2<br />
2 h2 .<br />
Vemos que a velocidade de convergência do método de Jacobi amortecido é da mesma ordem que a do método<br />
de Jacobi, um pouco pior para valores de ω próximos de 1 e muito pior para valores de ω próximos de 0.
Rodney Josué Biezuner 61<br />
3.3.5 Resumo<br />
3.4 Exercícios<br />
Método ρ (R) R∞ (R)<br />
Jacobi cos (πh)<br />
π 2<br />
2 h2 + O h 4<br />
Gauss-Seidel cos 2 (πh) π 2 h 2 + O h 4<br />
SOR ótimo 1 − 2πh + O h 2<br />
2πh + O h 2<br />
Jacobi amortecido 1 − ω π2<br />
2 h2 + O h 4 ω π2<br />
2 h2 + O h 4<br />
3.1 Os métodos de Jacobi e Gauss-Seidel não são sempre comparáveis: existem sistemas lineares para as<br />
quais o método de Jacobi converge, enquanto que o método de Gauss-Seidel não converge ou até mesmo<br />
diverge, e vice-versa.<br />
a) Verifique no computador que o método de Jacobi converge para o sistema linear<br />
⎧<br />
⎨<br />
⎩<br />
x + z = 2<br />
−x + y = 0<br />
x + 2y − 3z = 0<br />
enquanto que o método de Gauss-Seidel não converge (observe que a solução exata deste sistema é<br />
(1, 1, 1)).<br />
b) Verifique no computador que o método de Gauss-Seidel converge se<br />
⎧<br />
⎨<br />
⎩<br />
2x + y + z = 4<br />
x + 2y + z = 4<br />
x + y + 2z = 4<br />
enquanto que o método de Jacobi não converge, usando o vetor (0, 0, 0) como chute inicial (observe<br />
que a solução exata deste sistema é (1, 1, 1)).<br />
c) Justifique matematicamente o resultado de cada um dos ítens anteriores.
Capítulo 4<br />
Métodos de Projeção<br />
A maioria dos métodos iterativos práticos para a resolução de sistemas lineares grandes usa um processo<br />
de projeção de uma forma ou outra. Um processo de projeção é uma maneira canônica de obter uma<br />
aproximação para a solução do sistema linear dentro de um subespaço especificado. Neste capítulo veremos<br />
a técnica descrita de maneira geral e uma aplicação detalhada para o caso unidimensional.<br />
4.1 Teoria Geral<br />
A idéia básica de uma técnica de projeção é extrair uma solução aproximada para a solução do sistema Ax = b<br />
de um subespaço especificado K ⊂ R n , chamado o subespaço de busca. Se m = dim K, então em geral<br />
são necessárias m restrições para obter esta aproximação. Uma maneira típica de descrever estas restrições<br />
é impor m condições de ortogonalidade; um exemplo é exigir que o vetor residual r = b − Ax seja ortogonal<br />
a m vetores linearmente independentes que geram um subespaço L, chamado o subespaço de restrições.<br />
Muitos métodos matemáticos são baseados neste tipo de descrição, conhecida como as condições de Petrov-<br />
Galerkin. Existem duas classes gerais de métodos de projeção: os métodos de projeção ortogonal, quando<br />
L = K (e neste caso as condições de Petrov-Galerkin são chamadas simplesmente condições de Galerkin), e<br />
os métodos de projeção oblíqua, quando L = K.<br />
4.1 Definição. Seja A ∈ Mn (C) uma matriz invertível e K, L ⊂ R n dois subespaços vetoriais m-dimensionais.<br />
Um método de projeção sobre o subespaço K ortogonal ao subespaço L é um processo que encontra<br />
uma solução aproximada x em K para o sistema Ax = b tal que o vetor residual r = b − Ax é ortogonal<br />
a L, ou seja,<br />
encontrar x ∈ K tal que r = b − Ax ⊥ L. (4.1)<br />
Se queremos explorar o conhecimento de um bom chute inicial x 0 para a solução, então a aproximação é<br />
buscada no espaço afim x 0 + K. Neste caso, a técnica é redefinida como<br />
Denotando<br />
e o vetor resíduo inicial<br />
encontrar x ∈ x 0 + K tal que r = b − Ax ⊥ L. (4.2)<br />
x = x 0 + p<br />
r 0 = b − Ax 0 ,<br />
de modo que r = b − Ax = b − A x 0 + p = r 0 − Ap, a solução aproximada pode ser descrita como<br />
x = x 0 + p, p ∈ K,<br />
r 0 − Ap, w = 0 para todo w ∈ L.<br />
O vetor p que está no subespaço de busca é chamado o vetor de busca.<br />
62<br />
(4.3)
Rodney Josué Biezuner 63<br />
4.1.1 Representação Matricial<br />
Sejam BK = {v1, . . . , vm} e BL = {w1, . . . , wm} bases para K e L, respectivamente. Construímos as matrizes<br />
n × m<br />
V = [v1 · · · vm] , (4.4)<br />
W = [w1 · · · wm] ,<br />
que tem estes vetores como colunas. Então a solução aproximada pode ser escrita na forma<br />
x = x 0 + V y (4.5)<br />
para algum vetor y ∈ R m , ou seja, p = V y. A condição de ortogonalidade r 0 − AV y, w = 0 para todo<br />
w ∈ L também pode ser representada matricialmente na forma<br />
para todo z ∈ R m , ou seja,<br />
ou<br />
(W z) T r 0 − AV y = z T W T r 0 − AV y = 0<br />
W T r 0 − AV y = 0<br />
W T AV y = W T r 0 . (4.6)<br />
A partir daí, se assumirmos que a matriz m × m W T AV é invertível (o que não é garantido mesmo quando<br />
A é invertível; veja Exercício 4.1), obtemos a seguinte expressão matricial para a solução aproximada:<br />
x = x 0 + V W T AV −1 W T r 0 . (4.7)<br />
Desta forma, um algoritmo típico para um método de projeção tem a forma<br />
Algoritmo para um Método de Projeção<br />
do until stop criterion<br />
⎡<br />
⎢<br />
⎣<br />
Selecione um par de subespaços K e L<br />
Escolha bases BK = {v1, . . . , vn} e BL = {w1, . . . , wn} para K e L<br />
r ← b − Ax;<br />
y ← W T AV −1 W T r;<br />
x ← x + V y;<br />
end do<br />
Em muitos algoritmos, a matriz W T AV não precisa ser formada, e muito menos sua inversa calculada, da<br />
mesma forma que a matriz de iteração não precisava ser explicitamente calculada nos métodos iterativos<br />
lineares.<br />
A matriz W T AV é invertível se e somente se nenhum vetor do subespaço AK é ortogonal ao subespaço<br />
L (Exercício 4.2). Duas condições independentes que garantem a invertibilidade de W T AV são dadas pela<br />
proposição seguinte:<br />
4.2 Proposição. Se A ∈ Mn (C) e os subespaços K, L ⊂ R n satisfazem qualquer uma das duas condições a<br />
seguir<br />
(i) A é positiva definida e L = K, ou<br />
(ii) A é invertível e L = AK.<br />
Ax = b<br />
então a matriz W T AV é invertível quaisquer que sejam as bases V, W de K, L, respectivamente.
Rodney Josué Biezuner 64<br />
Prova: (i) Como L = K, podemos escrever W = V P para alguma matriz m × m invertível P (Exercício<br />
4.3). Então<br />
W T AV = P T V T AV<br />
Como A é positiva definida, segue que V T AV também é (Exercício 4.4); em particular, a matriz m × m<br />
V T AV é invertível. Logo, sendo o produto de duas matrizes invertíveis, W T AV é invertível.<br />
(ii) Neste caso, como L = AK, podemos escrever W = AV P para alguma matriz m × m invertível P .<br />
Daí,<br />
W T AV = P T (AV ) T AV.<br />
Como A é invertível, a matriz n × m AV possui posto máximo, logo a matriz m × m (AV ) T AV é invertível<br />
(Exercício 4.5). Novamente, sendo o produto de duas matrizes invertíveis, W T AV é invertível. <br />
Em particular, se A é uma matriz simétrica e um método de projeção ortogonal é utilizado, podemos tomar<br />
V = W e a matriz projetada V T AV também é simétrica; da mesma forma, se além disso A for positiva<br />
definida, V T AV também será.<br />
4.1.2 Minimização de Funcionais<br />
A solução aproximada x do sistema Ax = b através de um método de projeção pode ser obtida como o ponto<br />
de mínimo de um funcional quadrático associado à matriz A. Consideremos primeiro o caso em que A é uma<br />
matriz simétrica positiva definida. Neste caso, a própria solução do sistema Ax = b é o minimizante de um<br />
funcional quadrático associado à matriz A:<br />
4.3 Teorema. (Método Variacional para a Resolução de Sistemas <strong>Linear</strong>es) Seja A ∈ Mn (R) uma matriz<br />
simétrica positiva definida e b ∈ Rn . Então a solução do sistema Ax = b é o único ponto x que<br />
minimiza o funcional quadrático<br />
f (y) = 1<br />
〈Ay, y〉 − 〈b, y〉 .<br />
2<br />
(4.8)<br />
Prova: Uma matriz simétrica positiva definida é em particular invertível, logo existe uma única solução x<br />
para o sistema Ax = b. Temos<br />
Como A é positiva definida, segue que<br />
e<br />
se e somente se y = x. Portanto,<br />
f (y) − f (x) = 1<br />
1<br />
〈Ay, y〉 − 〈b, y〉 − 〈Ax, x〉 + 〈b, x〉<br />
2 2<br />
= 1<br />
1<br />
〈Ay, y〉 − 〈Ax, y〉 − 〈Ax, x〉 + 〈Ax, x〉<br />
2 2<br />
= 1<br />
1<br />
〈Ay, y〉 − 〈Ax, y〉 + 〈Ax, x〉<br />
2 2<br />
= 1 1 1 1<br />
〈Ay, y〉 − 〈Ax, y〉 − 〈Ax, y〉 + 〈Ax, x〉<br />
2 2 2 2<br />
= 1<br />
1<br />
〈A (y − x) , y〉 − 〈A (y − x) , x〉<br />
2 2<br />
= 1<br />
〈A (y − x) , y − x〉 .<br />
2<br />
〈A (y − x) , y − x〉 0<br />
〈A (y − x) , y − x〉 = 0<br />
f (y) > f (x)
Rodney Josué Biezuner 65<br />
para todo y = x e o mínimo de f ocorre em x. <br />
Em muitos problemas, o funcional f tem um significado físico, correspondendo a um funcional de energia; o<br />
minimizante deste funcional de energia corresponde a um estado de equilíbrio do sistema.<br />
Observe que, definindo um produto interno a partir da matriz simétrica positiva definida A da maneira<br />
usual por 〈v, w〉 A = 〈Av, w〉 e considerando a norma vetorial induzida vA = 〈v, v〉 1/2<br />
A , chamada A-norma,<br />
o funcional f pode ser escrito na forma (substituindo b = Ax)<br />
f (y) = 1<br />
2 y2 A − 〈x, y〉 A . (4.9)<br />
O vetor de aproximação x de um método de projeção ortogonal sobre K a partir de um vetor inicial x 0 é<br />
exatamente o minimizante da primeira parte deste funcional sobre o subespaço afim x 0 + K:<br />
4.4 Proposição. Sejam A ∈ Mn (R) uma matriz simétrica positiva definida e L = K. Então x é o vetor de<br />
aproximação de um método de projeção ortogonal sobre K a partir de um vetor inicial x 0 se e somente<br />
se ele minimiza a A-norma do erro sobre x 0 + K, isto é, se e somente se<br />
E (x) = min<br />
y∈x0 E (y) .<br />
+K<br />
Prova: Seja x a solução exata do sistema Ax = b. Então a A-norma do erro é dada por<br />
E (y) = x − y A .<br />
Segue do lema da projeção ortogonal (ou lema da melhor aproximação) que x é um minimizante de E (y)<br />
sobre o subespaço afim x 0 + K se e somente se x − x é A-ortogonal a K, ou seja, se e somente se<br />
ou, equivalentemente,<br />
〈A (x − x) , v〉 = 0 para todo v ∈ K,<br />
〈b − Ax, v〉 = 0 para todo v ∈ K.<br />
Esta é a condição de Galerkin que define o vetor de aproximação de um método de projeção ortogonal (veja<br />
(4.2)). <br />
Vamos considerar agora o caso de um método de projeção oblíqua em que L = AK.<br />
4.5 Proposição. Sejam A ∈ Mn (C) uma matriz qualquer e L = AK. Então x é o vetor de aproximação<br />
de um método de projeção oblíqua sobre K ortogonal a L a partir de um vetor inicial x 0 se e somente<br />
se ele minimiza a 2-norma do resíduo sobre x 0 + K, isto é, se e somente se<br />
R (x) = min<br />
y∈x0 R (y) .<br />
+K<br />
Prova: Considere o sistema Ax = b. Então a 2-norma do resíduo é dada por<br />
R (y) = b − Ay 2 .<br />
Segue do lema da projeção ortogonal (ou lema da melhor aproximação) que x é um minimizante de R (y)<br />
sobre o subespaço afim x 0 + K se e somente se b − Ax é ortogonal a AK = L, ou seja, se e somente se<br />
〈b − Ax, w〉 = 0 para todo w ∈ L.<br />
Esta é a condição de Petrov-Galerkin que define o vetor de aproximação de um método de projeção oblíqua<br />
(veja (4.2)).
Rodney Josué Biezuner 66<br />
4.1.3 Estimativa do Erro em Métodos de Projeção<br />
Se nenhum vetor do subespaço K está próximo da solução exata x, então é impossível encontrar uma boa<br />
aproximação x para x em K. Por outro lado, se existir algum vetor em K que está a uma pequena distância<br />
ε de x, então podemos perguntar qual a melhor aproximação a x podemos encontrar em K. No que se segue<br />
assumiremos x 0 = 0; em particular, o subespaço afim x 0 + K é o subespaço vetorial K.<br />
Seja PK a projeção ortogonal sobre K, definida por<br />
e Q L K<br />
a projeção oblíqua sobre K e ortogonalmente a L, definida por<br />
PKx ∈ K, x − PKx ⊥ K, (4.10)<br />
Q L Kx ∈ K, x − Q L Kx ⊥ L. (4.11)<br />
(Observe que se K = L (isto é, projeção ortogonal), temos Q K K = PK.) Então o problema de aproximação da<br />
Definição 4.1 pode ser expresso na linguagem destes operadores como<br />
Equivalentemente, definindo o operator Am : K −→ K por<br />
ele pode ser expresso na forma<br />
encontrar x ∈ K tal que Q L K (b − Ax) = 0. (4.12)<br />
Am = Q L KAPK,<br />
encontrar x ∈ K tal que Amx = Q L Kb, (4.13)<br />
de modo que um problema n-dimensional é aproximado por um problema m-dimensional.<br />
4.6 Proposição. Assuma x 0 = 0. Suponha que K é invariante por A e que b ∈ K. Então o vetor de<br />
aproximação x de um método de projeção (ortogonal ou oblíqua) sobre K a partir do vetor inicial x 0<br />
é a solução exata x.<br />
Prova: Temos QL K (b − Ax) = 0. Como por hipótese Ax, b ∈ K, segue que QLK Ax = Ax e QLK b = b, logo<br />
b − Ax = 0 e portanto x = x. <br />
O mesmo resultado vale se x0 = 0 sob a hipótese adicional que o resíduo inicial r0 = b − Ax0 ∈ K.<br />
A distância da solução exata x ao subespaço K, que pode ser escrita como (I − PK) x, desempenha um<br />
papel fundamental na estimativa do erro da solução aproximada x ∈ K, já que a distância desta à solução<br />
exata obviamente não pode ser menor que a distância de x a K. O próximo resultado fornece uma estimativa<br />
superior para a norma do resíduo da solução exata com respeito ao operador aproximado Am.<br />
4.7 Teorema. Assuma x 0 = 0 e b ∈ K. Denote<br />
Então a solução exata x satisfaz a estimativa<br />
isto é,<br />
Prova: Como b ∈ K, segue que<br />
γ = Q L KA (I − PK) .<br />
b − Amx γ (I − PK) x ,<br />
dist (Amx, b) γ dist (x, K) .<br />
b − Amx = Q L K (b − APKx) = Q L KA (x − PKx) = Q L KA (I − PK) x.<br />
Daí, já que I − PK é uma projeção e portanto satisfaz (I − PK) 2 = (I − PK), podemos escrever<br />
<br />
b − Amx = Q L KA (I − PK) (I − PK) x γ (I − PK) x .
Rodney Josué Biezuner 67<br />
4.2 Caso Unidimensional: Métodos de Descida<br />
Nesta seção, A será sempre uma matriz real simétrica positiva definida.<br />
Outra maneira de enxergar o resultado do Teorema 4.3 é observar que o gradiente do funcional f é<br />
Se x é um ponto de mínimo temos ∇f (x) = 0, ou seja,<br />
∇f (y) = Ay − b. (4.14)<br />
Ax = b.<br />
O método variacional sugerido pelo Teorema 4.3 é a base dos métodos iterativos de descida em geral, e do<br />
método do gradiente conjugado em particular. A idéia é usar as idéias do cálculo diferencial para encontrar<br />
o mínimo do funcional quadrático f.<br />
4.2.1 Métodos de Descida<br />
A filosofia dos métodos de descida é começar com um chute inicial x 0 e gerar uma seqüência de iterados<br />
x 1 , x 2 , . . . , x k , . . . que satisfazem<br />
f x k+1 f x k<br />
ou, melhor ainda,<br />
f x k+1 < f x k<br />
de tal modo que x k convirja para o minimizador de f. Em outras palavras, em um método de descida<br />
buscamos encontrar uma seqüência minimizante x k que convirja para a solução do sistema.<br />
O passo de x k para x k+1 envolve dois ingredientes: (1) uma direção de busca e (2) um avanço de<br />
comprimento especificado na direção de busca. Uma direção de busca significa a escolha de um vetor p k que<br />
indicará a direção que avançaremos de x k para x k+1 . O comprimento do avanço é equivalente à escolha de<br />
um escalar αk multiplicando o vetor p k . Assim,<br />
x k+1 = x k + αkp k .<br />
A escolha de αk é também chamada uma busca na reta, já que queremos escolher um ponto na reta<br />
x k + αp k : α ∈ R <br />
tal que<br />
f x k + αp k f x k .<br />
Idealmente, gostaríamos de escolher αk de tal modo que<br />
f x k+1 = f x k + αkp k = min<br />
α∈R f x k + αp k<br />
Esta é chamada uma busca exata na reta. Para funcionais quadráticos, a busca exata na reta é trivial e<br />
obtemos uma fórmula para o valor de αk, como veremos a seguir. Denotaremos o resíduo em cada iteração<br />
por<br />
r k = b − Ax k . (4.15)<br />
4.7 Proposição. Seja αk ∈ R tal que<br />
Então<br />
f x k + αkp k = min<br />
α∈R f x k + αp k .<br />
αk =<br />
p k , r k <br />
〈pk , Apk . (4.16)<br />
〉
Rodney Josué Biezuner 68<br />
Prova: Considere o funcional<br />
g é um polinômio quadrático em α, pois<br />
g (α) = f x k + αp k .<br />
g (α) = 1 k k<br />
A x + αp<br />
2<br />
, x k + αp k − b, x k + αp k<br />
= 1<br />
2<br />
k k<br />
Ax , x − b, x k + α k k<br />
Ap , x<br />
2<br />
+ α<br />
2<br />
= f x k + α Ax k , p k − b, p k + α2<br />
2<br />
= f x k − α r k , p k + α2<br />
2<br />
Ap k , p k ,<br />
Ax k , p k + α2<br />
Ap k , p k <br />
2<br />
Ap k , p k − α b, p k<br />
portanto o mínimo de g é atingido no vértice −B/2A da parábola Y = AX 2 + BX + C. <br />
Observe que αk = 0 se e somente se p k , r k = 0, isto é, a direção de busca é ortogonal ao resíduo. Como<br />
gostaríamos sempre que possível de ter x k+1 = x k , devemos sempre escolher a direção de busca de forma a<br />
não ser ortogonal a r k . Se esta escolha é feita, então teremos sempre f x k+1 < f x k .<br />
4.8 Exemplo. (Método de Gauss-Seidel) Considere o método de descida em que as primeiras n direções de<br />
busca p 1 , . . . , p n são os vetores e1, . . . , en da base canônica de R n , e isso é repetido a cada n iterações,<br />
de modo que p k+n = ek para todo k = 1, . . . , n, com uma busca na reta exata executada em cada<br />
iteração. Então cada grupo de n iterações corresponde a uma iteração do método de Gauss-Seidel. <br />
4.9 Exemplo. (Método SOR) Usando as mesmas direções de busca do exemplo anterior, mas com x k+1 =<br />
x k + ωαkp k , ω = 1, obtemos um método de descida em que as buscas nas retas são inexatas. Cada<br />
grupo de n iterações corresponde a uma iteração do método SOR. <br />
Observe que o método de descida é um método de projeção em que L e K são subespaços unidimensionais,<br />
com K = p k e L um subespaço não ortogonal a K, em cada iteração k. Se o método de descida será um<br />
método de projeção ortogonal ou oblíquo dependerá da escolha do vetor de direção de busca p k .<br />
4.2.2 Método da Descida Mais Acentuada<br />
Do Cálculo Diferencial, sabemos que a direção em que a função cresce a uma taxa mais rápida a partir de<br />
um ponto é a direção do gradiente neste ponto. Esta observação é a base da escolha da direção de busca no<br />
método da descida mais acentuada (também chamado método do gradiente). Em outras palavras, escolhemos<br />
ou<br />
p k = −∇f x k = b − Ax k<br />
p k = r k . (4.17)<br />
Como neste caso K = L = p k , o método da descida mais acentuada será um método de projeção ortogonal.<br />
Buscar na direção da descida mais acentuada é uma idéia natural, mas que na prática não funciona sem<br />
modificações. De fato, em alguns casos o método é de velocidade comparável à do método de Jacobi, como<br />
na matriz de discretização da fórmula de cinco pontos aplicada ao problema descrito na primeira seção deste<br />
capítulo [Watkins]:<br />
∆x = 0.1 ∆x = 0.05 ∆x = 0.025<br />
Jacobi 299 1090 3908<br />
Descida Mais Acentuada 304 1114 4010<br />
De fato, como as iterações do método de descida mais acentuada são bem mais custosas que as do método<br />
de Jacobi, o primeiro é muito pior que este último.
Rodney Josué Biezuner 69<br />
Para entender melhor o método da descida mais acentuada, porque ele pode ser lento e as modificações<br />
que vamos fazer para torná-lo mais rápido levando ao método do gradiente conjugado a ser visto no próximo<br />
capítulo, vamos entender o processo do ponto de vista geométrico. Como vimos na demonstração do Teorema<br />
4.3, o funcional quadrático f é da forma<br />
f (y) = 1<br />
〈A (y − x) , (y − x)〉 + c (4.18)<br />
2<br />
onde c = f (x) é uma constante. Já que A é uma matriz simétrica, existe uma matriz ortogonal P tal que<br />
P t AP é uma matriz diagonal D , cujos valores na diagonal principal são exatamente os autovalores positivos<br />
de A. Nas coordenadas<br />
z = P t (y − x) ,<br />
o funcional f tem a forma<br />
f (z) = 1<br />
1<br />
〈Dz, z〉 + c =<br />
2 2<br />
n<br />
i=1<br />
λiz 2 i + c. (4.19)<br />
As curvas de nível do funcional f neste sistema de coordenadas são elipses (em R 2 , elipsóides em R 3 e<br />
hiperelipsóides em R n ) centradas na origem com eixos paralelos aos eixos coordenados e f (0) = c é nível<br />
mínimo de f; elipses correspondentes a menores valores de f estão dentro de elipses correspondentes a maiores<br />
valores de f. Como P é uma aplicação ortogonal, as curvas de nível de f no sistema de coordenadas original<br />
também são elipses, centradas em x, e uma reta de um ponto y até o ponto x corta elipses de níveis cada vez<br />
menores até chegar ao mínimo da função f em x, centro de todas as elipses. O vetor gradiente é perpendicular<br />
às curvas de nível, logo é perpendicular às elipses. Seguir a direção de descida mais acentuada equivale a<br />
cortar a elipse que contém x k ortogonalmente na direção do interior da elipse até encontrar um ponto x k+1<br />
situado em uma elipse que a reta tangencie, pois a partir daí a reta irá na direção de elipses com níveis<br />
maiores, portanto este é o ponto da reta onde f atinge o seu mínimo. Em particular, vemos que a próxima<br />
direção p k+1 é ortogonal à direção anterior p k , tangente a esta elipse (veja também o Corolário 4.12). Em<br />
geral, a direção de descida mais acentuada não é a direção de x (quando bastaria uma iteração para atingir<br />
a solução exata) a não ser que A seja um múltiplo escalar da identidade, de modo que todos os autovalores<br />
de A são iguais e as elipses são círculos. Por outro lado, se os autovalores de A têm valores muito diferentes<br />
uns dos outros, com alguns muito pequenos e alguns muito grandes, as elipses serão bastante excêntricas<br />
e, dependendo do chute inicial, a convergência pode ser muito lenta. Matrizes com estas propriedades são<br />
chamadas mal-condicionadas; para que o método de descida acentuada seja lento, a matriz A não precisa<br />
ser muito mal-condicionada (veja a Definição 4.14 e a discussão que se segue).<br />
Como vimos na seção anterior, os algoritmos de Gauss-Seidel e SOR podem ser encarados como algoritmos<br />
de descida. A discussão no parágrafo anterior também pode ser usada para entender a relativa lentidão destes<br />
algoritmos.<br />
A seguir, provaremos a convergência do método da descida mais acentuada.<br />
4.10 Lema. (Desigualdade de Kantorovich) Sejam A ∈ Mn (R) uma matriz simétrica positiva definida e<br />
denote por λmax e λmin seu menor autovalor e seu maior autovalor, respectivamente. Então<br />
para todo x = 0.<br />
〈Ax, x〉 A −1 x, x <br />
〈x, x〉 2<br />
(λmin + λmax) 2<br />
4λminλmax<br />
Prova: Denote os autovalores de A por λ1 . . . λn, de modo que λmin = λ1 e λmax = λn. Como o<br />
quociente à esquerda da desigualdade é homogêneo, basta provar a desigualdade para vetores x unitários.<br />
Como A é simétrica, existem uma matriz diagonal D e uma matriz ortogonal P tais que A = P T DP . Segue<br />
que<br />
〈Ax, x〉 A −1 x, x = P T DP x, x P T D −1 P x, x = 〈DP x, P x〉 D −1 P x, P x .
Rodney Josué Biezuner 70<br />
Denote y = P x = (y1, . . . , yn) e βi = y2 i . Então y também é um vetor unitário e<br />
λ := 〈Dy, y〉 =<br />
n<br />
i=1<br />
βiλi<br />
é uma combinação convexa dos autovalores λi de A, ao passo que<br />
é uma combinação convexa dos autovalores λ −1<br />
i<br />
µ := D −1 y, y =<br />
µ 1<br />
λ1<br />
n<br />
βi<br />
λi<br />
i=1<br />
de A −1 . Consequentemente,<br />
+ 1<br />
−<br />
λn<br />
λ<br />
. (4.20)<br />
λ1λn<br />
De fato, a função ϕ (t) = 1/t é convexa, logo o ponto (λ, µ), que é a combinação convexa de pontos localizados<br />
no gráfico de ϕ, está localizado na região plana convexa limitada pelo gráfico de ϕ e o segmento de reta que<br />
une os pontos extremos do gráfico (λ1, 1/λ1) e (λn, 1/λn), ou seja, o segmento de reta<br />
t ↦−→ − 1<br />
λ1λn<br />
t + 1<br />
λ1<br />
+ 1<br />
, λ1 t λn.<br />
λn<br />
Em particular, o ponto (λ, µ) está abaixo do ponto do segmento correspondente a t = λ.<br />
Portanto,<br />
〈Ax, x〉 A −1 x, x <br />
1<br />
= λµ λ +<br />
λ1<br />
1<br />
−<br />
λn<br />
λ<br />
<br />
.<br />
λ1λn<br />
O máximo da função quadrática<br />
é atingido para t = (a + b) /2. Concluímos que<br />
<br />
〈Ax, x〉 A −1 x, x λ1 + λn<br />
2<br />
<br />
1 1 t<br />
t ↦−→ t + −<br />
a b ab<br />
1<br />
λ1<br />
+ 1<br />
−<br />
λn<br />
λ1<br />
<br />
+ λn<br />
2λ1λn<br />
= (λ1 + λn) 2<br />
.<br />
4λ1λn<br />
4.11 Lema. Seja x k+1 = x k + αkp k obtido através de uma busca exata na reta. Então<br />
e<br />
Prova: Temos<br />
r k+1 ⊥ p k<br />
e k+1 ⊥A p k .<br />
b − Ax k+1 = b − Ax k − αkAp k ,<br />
de modo que a seqüência dos resíduos é dada pela fórmula<br />
Logo,<br />
k+1 k<br />
r , p = r k+1 , p k k k<br />
− αk Ap , p = r k , p k −<br />
r k+1 = r k − αkAp k . (4.21)<br />
<br />
k k p , r <br />
〈pk , Apk k k<br />
Ap , p<br />
〉<br />
= 0.
Rodney Josué Biezuner 71<br />
A segunda relação de A-ortogonalidade segue diretamente da primeira relação de ortogonalidade; de fato,<br />
lembrando que<br />
Ae k+1 = r k+1 ,<br />
temos e k+1 , p k <br />
A = Ae k+1 , p k = r k+1 , p k = 0.<br />
<br />
O significado geométrico deste resultado é que o mínimo do funcional f na reta xk + αkpk ocorre quando a<br />
derivada direcional de f na direção de busca é zero, ou seja,<br />
0 = ∂f k+1<br />
x<br />
∂pk<br />
= ∇f x k+1 k+1<br />
, pk = r , pk .<br />
4.12 Corolário. No método da descida mais acentuada vale<br />
e<br />
r k+1 ⊥ r k<br />
e k+1 ⊥A r k .<br />
4.13 Teorema. Sejam A ∈ Mn (R) uma matriz simétrica positiva definida e denote por λmax e λmin seu<br />
menor autovalor e seu maior autovalor, respectivamente. Então o erro algébrico do método da descida<br />
mais acentuada satisfaz a estimativa<br />
Em particular,<br />
<br />
k+1<br />
e <br />
A λmax − λmin <br />
k<br />
e<br />
λmax + λmin<br />
.<br />
A<br />
<br />
e k A <br />
λmax − λmin<br />
λmax + λmin<br />
k e 0 A<br />
e portanto o método da descida mais acentuada converge qualquer que seja o chute inicial x 0 .<br />
Prova: Temos<br />
e k+1 = x − x k+1 = x − x k + αkr k = e k − αkr k .<br />
Logo, pelo Corolário 4.12,<br />
<br />
k+1<br />
e 2<br />
A = e k+1 , e k+1<br />
A = e k+1 , e k k+1 k<br />
− αk e , r<br />
A <br />
A = e k+1 , e k<br />
A<br />
= e k+1 , Ae k = e k+1 , r k .<br />
Daí, usando a desigualdade de Kantorovich,<br />
<br />
e k+1 2<br />
A = e k − αkr k , r k = e k , r k − αk<br />
= e k <br />
k k<br />
, r<br />
k r , r<br />
1 −<br />
<br />
k k r , r <br />
= e k <br />
, Ae<br />
k<br />
1 −<br />
= k<br />
e 2<br />
<br />
1 −<br />
A<br />
e k 2<br />
A<br />
= e k 2<br />
A<br />
<br />
〈rk , Ark 〉 〈ek , rk 〉<br />
<br />
k k r , r <br />
k k r , r <br />
r k , r k <br />
〈rk , Ark 〉 〈A−1rk , rk 〉<br />
<br />
k k r , r <br />
k k r , r <br />
〈rk , Ark 〉 〈rk , A−1rk 〉<br />
1 − 4λminλmax<br />
(λmin + λmax) 2<br />
λmax − λmin<br />
λmax + λmin<br />
2<br />
.
Rodney Josué Biezuner 72<br />
<br />
Observamos que o fator de convergência obtido no Teorema 4.13 é ótimo (veja Exercício 4.6).<br />
Introduzimos o número de condição de uma matriz, que é uma medida do quão mal-comportada ela é.<br />
4.14 Definição. Seja A ∈ Mn (R) uma matriz simétrica positiva definida. O número de condição de A é<br />
definido por<br />
κ (A) = λmax<br />
.<br />
λmin<br />
Quanto menor o número de condição de A, isto é, quanto mais próximo de 1, mais próximos a esferas<br />
são os elipsóides de nível do funcional f; reciprocamente, quando maior o número de condição de A, mais<br />
excêntricos são estes. A constante do Teorema 4.13 pode ser mais convenientemente expressa em termos do<br />
número de condição da matriz:<br />
4.15 Corolário. Sejam A ∈ Mn (R) uma matriz simétrica positiva definida e denote por λmax e λmin seu<br />
menor autovalor e seu maior autovalor, respectivamente. Então o erro algébrico do método da descida<br />
mais acentuada satisfaz a estimativa<br />
<br />
k+1<br />
e <br />
κ (A) − 1 <br />
k<br />
e A κ (A) + 1<br />
. A<br />
Desta forma, vemos que quanto mais κ (A) é próximo de 1 maior é a velocidade de convergência do método<br />
da descida acentuada; reciprocamente, quando maior κ (A), mais lento ele é.<br />
Reunindo as informações obtidas, um algoritmo para o método da descida mais acentuada pode ser<br />
apresentado da seguinte forma:<br />
initialize x;<br />
set b;<br />
r ← b − Ax;<br />
do ⎡ until stop criterion<br />
compute Ar;<br />
⎢ α ← 〈r, r〉 / 〈r, Ar〉 ;<br />
⎣ x ← x + αr;<br />
r ← r − αAr;<br />
4.3 Exercícios<br />
4.1 Considere a matriz invertível<br />
A =<br />
0 I<br />
I I<br />
onde I é a matriz identidade m × m, e seja V = W = {e1, . . . , em}. Verifique que W T AV é singular.<br />
4.2 Verifique que a matriz W T AV é invertível se e somente se nenhum vetor do subespaço AK é ortogonal<br />
ao subespaço L.<br />
4.3 Sejam B1 = {v1, . . . , vm} e B2 = {w1, . . . , wm} duas bases para o subespaço K ⊂ R n e considere as<br />
matrizes n × m V = [v1 · · · vm] e W = [w1 · · · wm]. Mostre que existe uma matriz m × m invertível P<br />
tal que V = W P .<br />
4.4 Mostre que se A é uma matriz positiva definida n × n e V é uma matriz n × m cujas colunas são<br />
linearmente independentes, então a matriz m × m V T AV também é uma matriz positiva definida.<br />
4.5 Mostre que se A é uma matriz n × m cujas colunas são linearmente independentes, então a matriz<br />
m × m B T B é invertível.<br />
<br />
,
Rodney Josué Biezuner 73<br />
4.6 Verifique que a taxa de convergência para o método da descida mais acentuada obtida no Teorema 4.12<br />
é ótima da seguinte maneira: se v1 e vn são os autovetores associados a λmin e λmax, respectivamente,<br />
mostre que se e 0 = v1 + v2, então<br />
<br />
e k+1 A = λmax − λmin<br />
λmax + λmin<br />
<br />
e k A .<br />
4.7 O número de condição para uma matriz invertível A ∈ Mn (C) qualquer é definido por<br />
<br />
κ (A) = A −1<br />
2 A .<br />
2<br />
a) Mostre que se A é uma matriz simétrica positiva definida esta definição coincide com a Definição<br />
4.14.<br />
b) Verifique que κ (A) 1 para toda matriz A.<br />
c) Considere o sistema Ax = b. Se y é uma aproximação de x com erro algébrico e = x − y e erro<br />
residual r = b − Ay, mostre que<br />
1 f2 e2 r2 κ (A)<br />
κ (A) x2 f2 e2 .<br />
x2 Esta desigualdade é ótima, no sentido de que a igualdade é atingida para certos valores de y. Ela<br />
mostra que para uma matriz mal-condicionada (isto é, com um número de condição relativamente<br />
alto), o erro residual pode ser muito pequeno ao mesmo tempo em que o erro algébrico pode ser muito<br />
grande e vice-versa.
Capítulo 5<br />
Métodos de Subespaços de Krylov<br />
Os métodos de projeção deste capítulo estão entre os mais importantes e populares disponíveis. Eles estão<br />
baseados na projeção sobre subespaços de Krylov, que são subespaços gerados por vetores da forma p (A) v<br />
onde p é um polinômio.<br />
5.1 Motivação<br />
Como vimos ao estudar os métodos iterativos lineares para a resolução do sistema Ax = b, estes métodos<br />
consistem em obter uma decomposição apropriada A = B − C da matriz do sistema, onde B é uma matriz<br />
próxima da matriz original A mas fácil de resolver. Então o método iterativo pode ser descrito pela relação<br />
de recorrência<br />
x m+1 = I − B −1 A x m + B −1 b,<br />
onde R = I − B −1 A é a matriz de iteração. A matriz mais fácil de resolver é<br />
B = I,<br />
exceto que esta matriz em geral está muito longe de A. Quando esta escolha é feita, obtemos a chamada<br />
iteração de Richardson:<br />
x m+1 = (I − A) x m + b = x m + b − Ax m<br />
ou, simplesmente,<br />
x m+1 = x m + r m . (5.1)<br />
Assim, o método da iteração de Richardson consiste simplesmente em somar o resíduo da aproximação à<br />
própria aproximação para obter a próxima aproximação. Na verdade, o método de iteração de Richardson<br />
desempenha papel importante na teoria de convergência dos métodos iterativos: por exemplo, todo método<br />
iterativo linear com decomposição A = B − C pode ser visto como a iteração de Richardson aplicada ao<br />
sistema equivalente (precondicionado)<br />
B −1 Ax = B −1 b.<br />
A partir de (5.1) obtemos sua correspondente equação residual:<br />
Através da iteração para trás desta equação obtemos<br />
r m+1 = (I − A) r m . (5.2)<br />
r m = (I − A) m r 0<br />
(5.3)<br />
= pm (A) r 0 , (5.4)<br />
74
Rodney Josué Biezuner 75<br />
ou seja, o m-ésimo resíduo é da forma pm (A) r 0 onde pm é um polinômio de grau m. Além disso, como<br />
x m+1 = x m + r m = x m−1 + r m−1 + r m = . . . =<br />
=<br />
m<br />
j=0<br />
(I − A) j r 0 ,<br />
m<br />
r j<br />
segue que as aproximação também são da forma qm (A) r 0 onde qm é um polinômio de grau igual a m.<br />
Portanto, tanto os resíduos r0 , . . . , rm como as aproximações x0 , . . . , xm pertencem ao subespaço<br />
0<br />
Km+1 A, r = p (A) r 0 : p é um polinômio de grau menor que ou igual a m <br />
= r 0 , Ar 0 , . . . , A m r 0 .<br />
5.2 Subespaços de Krylov<br />
5.1 Definição. Dada uma matriz A ∈ Mn (C) e um vetor v ∈ C n , definimos o subespaço de Krylov<br />
Km (A, v) = v, Av, . . . , A m−1 v . (5.5)<br />
Em outras palavras, Km (A, v) é o subespaço de todos os vetores que podem ser escritos na forma w = p (A) v,<br />
onde p é um polinômio de grau menor que ou igual a m−1. Se não houver motivo para confusão denotaremos<br />
o subespaço de Krylov Km (A, v) simplesmente por Km.<br />
Como vimos no capítulo anterior, um método de projeção geral para resolver o sistema linear<br />
Ax = b<br />
extrai uma solução aproximada x m de um subespaço afim x 0 + Km de dimensão m através da imposição da<br />
condição de Petrov-Galerkin<br />
r m = b − Ax m ⊥ Lm.<br />
Um método de subespaço de Krylov é um método de projeção para o qual o subespaço Km é o subespaço<br />
de Krylov<br />
0<br />
Km A, r = r 0 , Ar 0 , . . . , A m−1 r 0 . (5.6)<br />
As diferentes versões de métodos de subespaço de Krylov decorrem principalmente das diferentes escolhas<br />
de Lm.<br />
Lembramos alguns fatos de <strong>Álgebra</strong> <strong>Linear</strong>.<br />
5.2 Definição. O polinômio mínimo de um vetor v com respeito à matriz A (também chamado o Aanulador<br />
de v) é o polinômio mônico de menor grau p que anula v, isto é, tal que p (A) v = 0. O grau<br />
do polinômio mínimo é chamado o grau de v com respeito a A.<br />
É uma consequência do Teorema de Cayley-Hamilton que<br />
grau v n.<br />
5.3 Proposição. Seja d = grau v. Então Kd é invariante por A e Kd = Km para todo m d.<br />
Além disso,<br />
se e somente se m d. Portanto,<br />
dim Km = m<br />
dim Km = min {m, d} .<br />
j=0
Rodney Josué Biezuner 76<br />
Prova: Os vetores v, Av, . . . , A m−1 v formam uma base para Km se e somente se o único polinômio de grau<br />
menor ou igual a m − 1 que anula v é o polinômio nulo. <br />
Apesar dos vetores v, Av, . . . , A m−1 v formarem uma base para o subespaço de Krylov Km (quando m <br />
grau v), esta é uma base mal-condicionada, no sentido que à medida que k aumenta o vetor A k v fica cada vez<br />
mais próximo do autovetor associado ao maior autovalor de A, como veremos em detalhe quando estudarmos<br />
o método de potências para obter autovalores de matrizes. Assim, para m grande os vetores v, Av, . . . , A m−1 v<br />
tornam-se aproximadamente linearmente dependentes, o que torna-se um problema em aritmética de precisão<br />
finita. Para obter uma base bem condicionada para o subespaço de Krylov é necessário usar um método de<br />
ortogonalização, como veremos a seguir.<br />
5.3 Algoritmo de Arnoldi<br />
O método de Arnoldi é um método de projeção ortogonal em subespaços de Krylov, ou seja, Lm = Km =<br />
<br />
0<br />
Km A, r , aplicável para matrizes gerais, não necessariamente hermitianas. O procedimento foi introduzido<br />
pela primeira vez em 1951 como uma maneira de calcular a forma de Hessenberg de matrizes densas. Arnoldi<br />
sugeriu que os autovalores da forma de Hessenberg, obtida através de menos que n passos, eram boas<br />
aproximações para alguns dos autovalores da matriz original. Posteriormente, verificou-se que isso conduz<br />
a uma técnica eficiente para a aproximação dos autovalores de matrizes esparsas grandes, como veremos<br />
em detalhes quando formos estudar métodos para a obtenção de autovalores de matrizes. Posteriormente o<br />
método foi estendido para a solução de sistemas lineares esparsos grandes.<br />
O algoritmo de Arnoldi , propriamente dito, é um procedimento para a construção de uma base ortonormal<br />
para o subespaço de Krylov Km, já que, como observado antes, a base natural v, Av, . . . , Am−1v não é<br />
bem condicionada. Simplesmente ortogonalizar esta base mal-condicionada também não é uma boa opção<br />
numérica. No algoritmo de Arnoldi, o processo de ortogonalização de Gram-Schmidt é usado da seguinte<br />
maneira. Inicialmente obtém-se o primeiro vetor unitário através da normalização do vetor v:<br />
v1 = v<br />
v .<br />
Em seguida, calcula-se o vetor Av1 (ao invés de Av) e ortogonaliza-se este vetor com relação ao vetor v1<br />
através do método de Gram-Schmidt:<br />
w1 = Av1 − proj Av1 = Av1 − 〈Av1, v1〉 v1,<br />
〈v1〉<br />
v2 = w1<br />
w1 .<br />
Tendo sido obtido o vetor v2, calcula-se Av2 (ao invés de A 2 v = A (Av)) e ortogonaliza-se este vetor com<br />
relação aos vetores v1, v2 através do método de Gram-Schmidt:<br />
w2 = Av2 − proj Av2 = Av2 − 〈Av2, v1〉 v1 − 〈Av2, v2〉 v2,<br />
〈v1,v2〉<br />
v3 = w2<br />
w2 .<br />
No passo geral, tendo sido obtido o vetor vj no passo anterior, calcula-se e ortogonaliza-se este vetor com<br />
relação aos vetores v1, . . . , vj obtidos nos passos anteriores através do método de Gram-Schmidt:<br />
wj = Avj − proj<br />
〈v1,...,vj〉<br />
Avj = Avj −<br />
j<br />
〈Avj, vi〉 vi, (5.7)<br />
i=1<br />
vj+1 = wj<br />
. (5.8)<br />
wj
Rodney Josué Biezuner 77<br />
Podemos resumir este procedimento no seguinte algoritmo:<br />
Algoritmo de Arnoldi<br />
Atribua v;<br />
v1 ← v/ v2 ;<br />
Para<br />
⎡<br />
j = 1, . . . , m faça:<br />
Calcule hij = 〈Avj, vi〉 para i = 1, . . . , j;<br />
⎢ Calcule wj = Avj −<br />
⎢<br />
⎣<br />
j<br />
hijvi;<br />
i=1<br />
hj+1,j = wj2 ;<br />
Se hj+1,j = 0 então pare;<br />
vj+1 ← wj/hj+1,j;<br />
fim do laço<br />
O algoritmo sofre um colapso se o vetor wj é nulo e o vetor vj+1 não pode mais ser calculado.<br />
5.4 Proposição. Assuma que o algoritmo de Arnoldi não pára antes do m-ésimo passo. Então os vetores<br />
v1, . . . , vm formam uma base ortonormal para o subespaço de Krylov<br />
Km (A, v1) = v1, Av1, . . . , A m−1 <br />
v1<br />
Prova: Os vetores v1, . . . , vm são ortonormais por construção, logo são linearmente independentes. Basta<br />
então mostrar que v1, . . . , vm ∈ Km (A, v1) para concluir que eles formam uma base para Km (A, v1). Para<br />
isso, basta mostrar que cada vetor vj é da forma qj−1 (A) v1 para algum polinômio qj−1 de grau j − 1. Isso<br />
pode ser visto por indução. Se j = 1, temos q0 (t) ≡ 1. Assumindo o resultado verdadeiro para todos os<br />
inteiros até j, considere vj+1. Temos<br />
hj+1,jvj+1 = wj = Avj −<br />
j<br />
hijvi = Aqj−1 (A) v1 −<br />
i=1<br />
de modo que vj+1 = qj (A) v1 para qj = (1/hj+1,j)<br />
j<br />
hijqi−1 (A) v1,<br />
i=1<br />
<br />
tqj−1 (t) − j<br />
<br />
hijqi−1 (t) , que é um polinômio de grau<br />
j. <br />
O significado do colapso do algoritmo de Arnoldi, quando o vetor vj+1 não pode ser mais calculado é<br />
dado a seguir:<br />
5.5 Proposição. O algoritmo de Arnoldi sofre um colapso no passo j, isto é hj+1,j = 0, se e somente se<br />
o polinômio mínimo de v tem grau j. Além disso, neste caso o subespaço Kj é invariante por A e<br />
portanto a solução obtida pelo método de projeção associado é exata.<br />
Prova: Se o grau de v é j, então hj+1,j = 0, caso contrário vj+1 poderia ser definido e pela Proposição 5.4<br />
Kj+1 teria dimensão j + 1 maior que o grau de v, contrariando a Proposição 5.3.<br />
Reciprocamente, assuma hj+1,j = 0. Então pelas Proposições 5.3 e 5.4 o grau de v é d j. Mas pela<br />
primeira parte desta demonstração, não podemos ter d < j, pois isso implicaria hd+1,d = 0 e o algoritmo já<br />
teria entrado em colapso no passo d.<br />
O restante do enunciado segue diretamente da Proposição 5.3 e da Proposição 4.6. <br />
Por isso, tais colapsos são chamados colapsos sortudos. Infelizmente eles raramente ocorrem na prática, mas<br />
mesmo quando isso não ocorre as iteradas obtidas aproximam a solução exata em um número relativamente<br />
pequeno de iterações se comparado com os métodos lineares básicos.<br />
Vamos agora representar o algoritmo de Arnoldi em uma forma matricial.<br />
5.6 Definição. Dizemos que A = (aij) é uma matriz de Hessenberg se aij = 0 para todo i > j + 1<br />
(matriz de Hessenberg superior) ou se aij = 0 para todo i < j − 1 (matriz de Hessenberg inferior).<br />
i=1
Rodney Josué Biezuner 78<br />
Assim, uma típica matriz de Hessenberg superior quadrada m × m é da forma<br />
⎡<br />
h11<br />
⎢ h21 ⎢<br />
0<br />
⎢<br />
0<br />
H = ⎢ 0<br />
⎢<br />
.<br />
⎢ .<br />
⎢<br />
⎣<br />
.<br />
.<br />
h12<br />
h22<br />
h32<br />
0<br />
0<br />
.<br />
.<br />
.<br />
.<br />
h13<br />
h23<br />
h33<br />
h43<br />
0<br />
.<br />
.<br />
.<br />
.<br />
h14<br />
h24<br />
h34<br />
h44<br />
. ..<br />
. ..<br />
. . .<br />
. . .<br />
. . .<br />
. ..<br />
. ..<br />
. ..<br />
. ..<br />
. ..<br />
. ..<br />
. ..<br />
. . .<br />
. . .<br />
. . .<br />
. . .<br />
. ..<br />
. ..<br />
h1m<br />
h2m<br />
h3m<br />
h4m<br />
.<br />
.<br />
.<br />
.<br />
hm−1,m<br />
⎤<br />
⎥ ,<br />
⎥<br />
⎦<br />
(5.9)<br />
0 0 0 0 . . . 0 hm,m−1 hmm<br />
ou seja, é uma matriz obtida a partir de uma matriz triangular superior em que a subdiagonal inferior é<br />
preenchida. Similarmente, uma matriz de Hessenberg inferior quadrada é uma matriz obtida a partir de uma<br />
matriz triangular inferior em que a subdiagonal superior é preenchida. Uma típica matriz de Hessenberg<br />
superior (m + 1) × m é da forma<br />
⎡<br />
h11<br />
⎢ h21 ⎢<br />
0<br />
⎢<br />
0<br />
⎢<br />
H = ⎢ 0<br />
⎢ .<br />
⎢ .<br />
⎢ .<br />
⎢ .<br />
⎣ 0<br />
h12<br />
h22<br />
h32<br />
0<br />
0<br />
.<br />
.<br />
0<br />
h13<br />
h23<br />
h33<br />
h43<br />
0<br />
.<br />
.<br />
0<br />
h14<br />
h24<br />
h34<br />
h44<br />
. ..<br />
. ..<br />
0<br />
. . .<br />
. . .<br />
. . .<br />
. ..<br />
. ..<br />
. ..<br />
. ..<br />
. . .<br />
. ..<br />
. ..<br />
. ..<br />
0<br />
. . .<br />
. . .<br />
. . .<br />
. . .<br />
. ..<br />
. ..<br />
hm,m−1<br />
h1m<br />
h2m<br />
h3m<br />
h4m<br />
.<br />
.<br />
hm−1,m<br />
hmm<br />
⎤<br />
⎥ .<br />
⎥<br />
⎦<br />
(5.10)<br />
0 0 0 0 0 0 0 hm+1,m<br />
A partir daí, em uma matriz de Hessenberg superior n×m com n > m+1 todas as linhas i tais que i > m+1<br />
são nulas.<br />
5.7 Proposição. Denote por Vm a matriz n × m cujas colunas são os vetores v1, . . . , vm, por Hm a matriz<br />
de Hessenberg (m + 1) × m cujas entradas não-nulas são os elementos hij definidos pelo algoritmo de<br />
Arnoldi e por Hm a matriz m × m obtida de através da eliminação da última linha de Hm. Então<br />
valem as seguintes relações:<br />
AVm = VmHm + wme T m = Vm+1 Hm, (5.11)<br />
V T m AVm = Hm. (5.12)<br />
Prova: Se M é uma matriz, denotemos por (M) j a sua j-ésima coluna. Do algoritmo de Arnoldi temos,<br />
para j = 1, . . . , m,<br />
Por outro lado,<br />
(AVm) j = Avj =<br />
<br />
j<br />
i=1<br />
Vm+1 Hm<br />
hijvi + wj =<br />
<br />
kj<br />
=<br />
m+1 <br />
i=1<br />
j<br />
i=1<br />
j+1<br />
hijvi + hj+1,jvj+1 =<br />
j+1<br />
hijvi =<br />
i=1<br />
hijvi,<br />
<br />
hijvi. (5.13)<br />
i=1
Rodney Josué Biezuner 79<br />
de modo que segue de (5.13) que<br />
<br />
Vm+1 Hm<br />
<br />
j<br />
j+1<br />
= hijvi = (AVm) j ,<br />
logo AVm = Vm+1 Hm. Da mesma forma, para j = 1, . . . , m − 1,<br />
de modo que<br />
i=1<br />
j+1<br />
(VmHm) j =<br />
i=1<br />
<br />
wme T <br />
m = 0,<br />
j<br />
<br />
hijvi,<br />
<br />
VmHm + wme T <br />
m j =<br />
j+1<br />
hijvi = (AVm) j<br />
i=1<br />
para j = 1, . . . , m − 1, enquanto que para j = m temos<br />
de modo que<br />
(VmHm) m =<br />
m<br />
himvi,<br />
i=1<br />
<br />
wme T <br />
m m = wm = hj+1,jvm+1,<br />
<br />
VmHm + wme T <br />
m m =<br />
m+1<br />
i=1<br />
<br />
hijvi = (AVm) m .<br />
Portanto, AVm = VmHm + wme T m. Finalmente, multiplicando ambos os lados desta última relação por V T m e<br />
usando o fato que os vetores v1, . . . , vm são ortonormais e wm é ortogonal a todos eles, segue que V T m Vm = I<br />
e V T <br />
m wmeT <br />
T T<br />
m = Vm wm em = 0, donde obtemos a última relação do enunciado desta proposição. <br />
5.4 Implementação Prática: Métodos de Ortogonalização Estáveis<br />
O algoritmo de Gram-Schmidt é numericamente instável: pequenos erros de arredondamento podem dar<br />
origem a vetores muito longe de serem ortogonais (veja Exercício 5.1). Na implementação prática do algoritmo<br />
de Arnoldi é necessário considerar métodos de ortogonalização numericamente estáveis.<br />
5.4.1 Método de Gram-Schmidt Modificado (MGS)<br />
O método de Gram-Schmidt modificado (MGS) é uma modificação pequena do método de Gram-<br />
Schmidt que produz um algoritmo de ortogonalização estável. Na ausência de erros de arredondamento,<br />
eles produzem os mesmos vetores. No algoritmo de Gram-Schmidt clássico, dada uma base {u1, . . . , um} de<br />
um subespaço vetorial, uma vez calculados os vetores ortonormais v1, . . . , vj−1 correspondentes, os escalares<br />
hij = 〈uj, vi〉, i = 1, . . . , j −1 são todos calculados simultaneamente para produzir o próximo vetor ortogonal<br />
unitário vj<br />
j−1<br />
wj = uj − hijvi, (5.14)<br />
i=1<br />
vj = wj<br />
. (5.15)<br />
wj
Rodney Josué Biezuner 80<br />
No método modificado, assim que o primeiro vetor ortogonal v1 = u1 é obtido, todos os vetores u2, . . . , um<br />
são atualizados através do escalar h1i = 〈ui, v1〉:<br />
v 1 i = ui − h1iv1, i = 2, . . . , m.<br />
Assim, os vetores v1 2, . . . , v1 m já são ortogonais a v1. Em particular, podemos tomar v2 = v1 2/ v1 <br />
<br />
2 . Uma<br />
2<br />
:<br />
vez obtido v2, todos os vetores v1 3, . . . , v1 m são atualizados através dos escalares h2i = v1 i , v2<br />
v 2 i = v 1 i − h2iv2, i = 3, . . . , m.<br />
Assim, os vetores v2 3, . . . , v2 m são ortogonais a v1 e v2. Em particular, tomamos v3 = v2 3/ v2 <br />
<br />
3 e continuamos o<br />
processo até o fim. Em geral, no passo j, uma vez obtido o vetor unitário vj, ortogonal aos vetores ortonormais<br />
v1, . . . , vj−1, os vetores v j−1<br />
j+1 , . . . , vj−1 m que já eram ortogonais aos vetores v1, . . . , vj−1, são atualizados através<br />
<br />
dos escalares hji =<br />
e tomamos<br />
v j−1<br />
j<br />
, vj<br />
para produzir vetores v j<br />
j+1 , . . . , vj m ortogonais a v1, . . . , vj−1, vj:<br />
v j<br />
i<br />
= vj−1<br />
i − hjivj, i = j + 1, . . . , m, (5.16)<br />
vj+1 = vj j+1<br />
<br />
<br />
v j<br />
<br />
<br />
. (5.17)<br />
j+1<br />
.<br />
Em aritmética exata, os algoritmos de Gram-Schmidt e de Gram-Schmidt modificado são equivalentes;<br />
além disso, eles têm o mesmo custo computacional (2m2n flops) e de armazenamento ((m + 1) n). Para<br />
entender porque o MGS é mais estável, observe que os dois métodos são idênticos no cálculo de v1 e v2. A<br />
primeira diferença surge no cálculo de v3. No método de Gram-Schmidt clássico (GS) temos<br />
com<br />
w GS<br />
3 = v3 − h13v1 − h23v2<br />
h13 = 〈u3, v1〉 e h23 = 〈u3, v2〉 .<br />
O termo h23v2 é a componente de u3 na direção de v2. Quando este componente é removido de u3, obtemos<br />
um vetor ortogonal a v2, desde que o escalar h23 seja calculado com exatidão. No método MGS primeiro<br />
calculamos<br />
v 1 3 = u3 − h13v1<br />
e depois<br />
com<br />
Daí,<br />
w MGS<br />
3<br />
v 2 3 = v 1 3 − h23v2,<br />
h13 = 〈u3, v1〉 = h13 e h23 = v 1 <br />
3, v2 .<br />
= v 2 3 = u3 − h13v1 − h23v2 = u3 − h13v1 − h23v2<br />
Em princípio, u3 e v 1 3 = u3 − h13v1 têm as mesmas componentes na direção de v2, já que v1 é ortogonal<br />
a v2, e não faria diferença usar h23 ou h23. Na prática, os vetores v1 e v2 não são exatamente ortogonais,<br />
por causa de erros de arredondamento, portanto o termo h13v1 tem uma pequena componente na direção de<br />
v2. Além disso, erros de arredondamento também ocorrem na subtração de h13v1 de u3, portanto este vetor<br />
diferença também tem uma componente na direção de v2. O método de Gram-Schmidt clássico ignora estes<br />
erros, enquanto que o método modificado, trabalhando com o vetor v 1 3 ao invés de u3, leva estes erros em<br />
conta e os corrige no cálculo de h23.
Rodney Josué Biezuner 81<br />
Para obter um algoritmo computacionalmente implementável para o MGS, observe que enquanto que no<br />
método de Gram-Schmidt clássico, uma vez obtidos os vetores ortonormais v1, . . . , vj−1 obtemos o próximo<br />
vetor ortogonal unitário vj fazendo<br />
wj = uj −<br />
vj = wj<br />
wj ,<br />
no método de Gram-Schmidt modificado fazemos<br />
v j−2<br />
j<br />
v j−1<br />
j<br />
j<br />
projvi uj,<br />
i=1<br />
v 1 j = uj − proj v1 uj,<br />
v 2 j = v 1 j − proj v2 v1 j ,<br />
v 3 j = v 2 j − proj v3 v 2 j ,<br />
.<br />
. (5.18)<br />
= vj−3 j<br />
= vj−2 j<br />
vj = vj−1 j<br />
<br />
<br />
v j−1<br />
<br />
<br />
.<br />
<br />
j<br />
− projvj−2 vj−3 j ,<br />
− projvj−1 vj−2 j ,<br />
Usando o MGS, o algoritmo de Arnoldi tem o seguinte aspecto. Obtém-se o primeiro vetor unitário<br />
através da normalização do vetor v:<br />
v1 = v<br />
v .<br />
Em seguida, calcula-se o vetor Av1 e ortogonaliza-se este vetor com relação ao vetor v1:<br />
v 1 2 = Av1 − proj v1 Av1 = Av1 − 〈Av1, v1〉 v1,<br />
v2 = v1 2<br />
v 1 2 .<br />
Como já observado anteriormente, até aqui o MGS é idêntico ao método de Gram-Schmidt clássico. Tendo<br />
sido obtido o vetor v2, calcula-se Av2 e ortogonaliza-se este vetor primeiro com relação ao vetor v1 e depois<br />
o vetor resultante é ortogonalizado com relação ao vetor v2:<br />
v 1 3 = Av2 − projv1 Av2 = Av2 − 〈Av2, v1〉 v1,<br />
v 2 3 = v 1 3 − projv2 v 1 3 = v 1 3 − v 1 <br />
3, v2 v2,<br />
v3 = v2 3<br />
v 2 3 .<br />
No passo geral, tendo sido obtido o vetor vj no passo anterior, calcula-se Avj e ortogonaliza-se este vetor<br />
com relação ao primeiro vetor v1; em seguida o vetor resultante é ortogonalizado com relação ao vetor v2, e
Rodney Josué Biezuner 82<br />
assim por diante, até que o vetor resultante do passo anterior seja ortogonalizado com relação ao vetor vj:<br />
v 1 j = Avj − projv1 Avj = Avj − 〈Avj, v1〉 v1,<br />
<br />
v2,<br />
v j−1<br />
j<br />
v 2 j = v 1 j − proj v2 v1 j = v 1 j − v 1 j , v2<br />
.<br />
= vj−2 j − projvj−1 vj−2 j<br />
v j<br />
j = vj−1 j − projvj vj−1 j<br />
vj+1 = vj j<br />
<br />
<br />
v j<br />
<br />
<br />
.<br />
<br />
j<br />
= vj−2 j<br />
= vj−1 j −<br />
Podemos resumir este procedimento no seguinte algoritmo:<br />
−<br />
<br />
<br />
v j−2<br />
j<br />
v j−1<br />
j<br />
Algoritmo de Arnoldi MGS<br />
Atribua v;<br />
v1 ← v/ v2 ;<br />
Para ⎡ j = 1, . . . , m faça<br />
Calcule wj = Avj;<br />
⎢ Para<br />
<br />
i = 1, . . . , j faça<br />
⎢ hij ⎢ ← 〈wj, vi〉 ;<br />
⎢ wj ⎢ ← wj − hijvi<br />
⎢ fim do laço<br />
⎢ hj+1,j ⎢ = wj2 ;<br />
⎣ Se hj+1,j = 0 então pare;<br />
vj+1 ← wj/hj+1,j;<br />
fim do laço<br />
, vj<br />
<br />
vj−1, (5.19)<br />
<br />
vj,<br />
Embora o MGS seja mais estável, em situações onde os erros de cancelamento podem ser muito severos<br />
nos passos de ortogonalização é necessário considerar métodos ainda mais estáveis.<br />
, vj−1<br />
5.4.2 Método de Gram-Schmidt Modificado com Reortogonalização (MGSR)<br />
que deve<br />
ser<br />
<br />
ortogonal aos vetores w1, . . . , wj−1. Isso pode ser verificado diretamente, calculando os produtos internos<br />
v (j−1)<br />
<br />
j , wi e verificando se eles são próximos de 0 dentro de uma margem de tolerância pre-estabelecida. Se<br />
temos que nos dar a este trabalho, é melhor aproveitar os cálculos destes produtos internos e fazer logo uma<br />
segunda ortogonalização. Assim no primeiro loop do algoritmo MGS anterior acrescentamos um segundo<br />
loop: ⎡<br />
Calcule wj = Avj;<br />
⎢ Para<br />
<br />
i = 1, . . . , j faça<br />
⎢ hij ⎢ ← 〈wj, vi〉 ;<br />
⎢ wj ⎢ ← wj − hijvi<br />
⎢ Para ⎡ i = 1, . . . , j faça<br />
⎢ γ ← 〈wj, vi〉 ;<br />
⎢ ⎣ wj ⎢ ← wj − γvi;<br />
⎢ hij ⎢ ← hij + γ;<br />
⎢ fim do laço<br />
⎢ hj+1,j ⎢ = wj2 ;<br />
⎣ Se hj+1,j = 0 então pare;<br />
vj+1 ← wj/hj+1,j;<br />
Uma melhoria simples é recorrer à ortogonalização dupla. Ou seja, no passo j obtemos o vetor v (j−1)<br />
j
Rodney Josué Biezuner 83<br />
Ortogonalizações adicionais são supérfluas: duas ortogonalizações são suficientes para fazer o vetor wj ortogonal<br />
aos vetores w1, . . . , wj−1 na precisão de máquina (veja [Watkins], p. 233, ou [Saad], p. 156).<br />
GS MGS MGSR<br />
Flops 2m 2 n 2m 2 n 4m 2 n<br />
Armazenagem (m + 1) n (m + 1) n (m + 1) n<br />
5.5 Método de Arnoldi para Sistemas <strong>Linear</strong>es<br />
Dado um chute inicial x0 para a solução do sistema linear Ax = b, o método de Arnoldi para sistemas<br />
lineares é um método de projeção ortogonal em que<br />
0<br />
K = L = Km A, r = r 0 , Ar 0 , A 2 r 0 , . . . , A m−1 r 0<br />
em que r 0 = b−Ax 0 . Portanto, o método busca uma solução aproximada x m ∈ x 0 +Km impondo a condição<br />
de Galerkin<br />
r m = b − Ax m ⊥ Km.<br />
De acordo com o capítulo anterior, se Vm = [v1 · · · vm] é uma matriz cujas colunas formam uma base<br />
ortonormal para Km, obtidas através do algoritmo de Arnoldi, temos<br />
com<br />
x m = x 0 + Vmy m<br />
y m = V T −1 T<br />
m AVm Vm r 0 = H −1<br />
m V T m r 0 = H −1<br />
m V T <br />
r m<br />
0 <br />
v1 = r 0 H −1<br />
m V T m (v1)<br />
= r 0 H −1<br />
m (e1) .<br />
Baseados nestas observações, temos então o seguinte método de Arnoldi para sistemas lineares, chamado<br />
método da ortogonalização completa (ou FOM de full orthogonalization method):<br />
Algoritmo de Arnoldi para Sistemas <strong>Linear</strong>es FOM<br />
Inicialize x 0 ;<br />
Calcule r 0 = b − Ax 0 ;<br />
Calcule β = r 0 2 ;<br />
v1 ← r 0 /β;<br />
Inicialize a matriz Hm = (hij) m×m = 0;<br />
Para ⎡ j = 1, . . . , m faça<br />
Calcule wj = Avj;<br />
⎢ Para i = 1, . . . , j faça<br />
⎢ hij ⎢ ← 〈wj, vi〉 ;<br />
⎢ wj ⎢ ← wj − hijvi<br />
⎢ fim do laço<br />
⎢ hj+1,j ⎢ = wj2 ;<br />
⎣ Se hj+1,j = 0 tome m := j e saia do laço;<br />
vj+1 ← wj/hj+1,j;<br />
fim do laço<br />
Calcule ym = βH −1<br />
m (e1) ; //não é necessário encontrar H−1 m<br />
Calcule xm = x0 + Vmym .<br />
Este algoritmo pode ser também obtido diretamente. A condição de Galerkin r m ⊥ Km<br />
A, r 0 é equivalente<br />
a<br />
V T m (b − Ax m ) = 0
Rodney Josué Biezuner 84<br />
ou<br />
V T m Ax m = V T m b<br />
Escolhendo o chute inicial x 0 = 0 para simplificar, temos que b = r 0 = r 0 v1, donde<br />
V T m Ax m = r 0 V T m v1 = r 0 e1.<br />
Como xm <br />
0 ∈ Km A, r , podemos escrever xm = Vmym para algum vetor ym ∈ Rm . Logo<br />
V T m AVmy m = r 0 e1,<br />
<br />
0 que pode ser interpretado como o sistema Ax = b projetado no subespaço Km A, r . Usando o fato que<br />
V T m AVm = Hm, segue que<br />
H m y m = 0<br />
r e1. (5.20)<br />
Resolvendo este sistema obtemos y m e daí a aproximação<br />
x m = Vmy m . (5.21)<br />
Como em geral m ≪ n, este sistema é bem mais fácil de resolver que o sistema original, possibilitando<br />
o uso de métodos diretos. De fato, embora a matriz de Hessenberg seja uma matriz densa, como ela é<br />
quase triangular uma decomposição QR passa a ser competitiva com a decomposição LU e é indicada (para<br />
matrizes gerais, o custo da decomposição LU é a metade do custo da decomposição QR). Maiores detalhes<br />
serão fornecidos na próxima seção.<br />
O algoritmo depende do parâmetro m que em geral deve ser selecionado dinamicamente. Em geral, m é<br />
progressivamente aumentado até que o resíduo r m é menor que alguma tolerância previamente estabelecida.<br />
Ao invés de calcular o resíduo diretamente, podemos obter a norma do resíduo de maneira menos custosa<br />
através do seguinte resultado:<br />
5.8 Proposição. O resíduo calculado através do método de Arnoldi FOM satisfaz<br />
logo<br />
Em particular, os resíduos são ortogonais.<br />
Prova: Temos, pela Proposição 5.7,<br />
<br />
r m = −hm+1,m 〈em, y m 〉 v m+1 ,<br />
r m <br />
2 = hm+1,m e T my m (5.22)<br />
r m = b − Ax m = b − A x 0 + Vmy m<br />
= r 0 − AVmy m<br />
= r 0 v1 − VmHm + wme T m<br />
y m<br />
= r 0 v1 − VmHmy m − wme T m<br />
m y<br />
= r 0 <br />
v1 − Vm r 0 e1 − hm+1,mv m+1 e T my m<br />
= −hm+1,m 〈em, y m 〉 v m+1 .
Rodney Josué Biezuner 85<br />
5.6 Decomposição QR via MGS<br />
Lembramos que uma decomposição QR de uma matriz A é uma fatorização<br />
A = QR (5.23)<br />
onde Q é uma matriz ortogonal (no caso real, unitária no caso complexo) e R é uma matriz triangular superior.<br />
Usando esta decomposição, podemos resolver o sistema linear Ax = b da seguinte maneira. Multiplicando<br />
ambos os lados da equação por Q T obtemos<br />
Q T Ax = Q T b,<br />
de modo que o sistema original é equivalente ao sistema<br />
Rx = Q T b (5.24)<br />
cuja matriz de coeficientes é uma matriz triangular superior, logo pode ser resolvido por substituição.<br />
Para calcular a decomposição QR de uma matriz, um dos métodos que podem ser usados é o próprio<br />
MGS. Outros métodos serão vistos no capítulo sobre autovalores. Para facilitar a compreensão, veremos<br />
primeiro como fazer a decomposição QR usando o método de Gram-Schmidt modificado. No que se segue<br />
assumiremos que A é uma matriz n×m cujas m colunas são linearmente independentes. Escrevendo a matriz<br />
A em colunas<br />
A = <br />
A1 A2 · · · Am , (5.25)<br />
aplicamos o método de Gram-Schmidt às colunas de A, obtendo<br />
Resolvendo em termos de Aj, podemos escrever<br />
com<br />
Assim, tomando<br />
e<br />
j−1<br />
wj = Aj − 〈Aj, vi〉 vi, (5.26)<br />
i=1<br />
vj = wj<br />
. (5.27)<br />
wj<br />
j−1<br />
Aj = rijvi + wj vj =<br />
⎡<br />
⎢<br />
R = ⎢<br />
⎣<br />
i=1<br />
j<br />
i=1<br />
rijvi<br />
(5.28)<br />
rij = 〈Aj, vi〉 , (5.29)<br />
rjj = wj . (5.30)<br />
Q = v1 v2 · · · vm<br />
r11 r12 r13 . . . r1m<br />
0 r22 r23 . . . r2m<br />
0<br />
0<br />
0<br />
0<br />
r33<br />
0<br />
. . .<br />
. ..<br />
r3m<br />
.<br />
. . .<br />
. .. . .. .<br />
0 0 0 . . . 0 rmm<br />
<br />
⎤<br />
⎥<br />
⎦<br />
(5.31)<br />
(5.32)
Rodney Josué Biezuner 86<br />
segue que<br />
A1 A2 · · · Am<br />
<br />
= v1 v2 · · · vm<br />
⎡<br />
r11<br />
⎢<br />
0<br />
⎢<br />
⎢<br />
0<br />
⎢ 0<br />
⎢ .<br />
⎣ .<br />
r12<br />
r22<br />
0<br />
0<br />
.<br />
.<br />
r13<br />
r23<br />
r33<br />
0<br />
.<br />
.<br />
. . .<br />
. . .<br />
. . .<br />
. ..<br />
. .. . ..<br />
r1m<br />
r2m<br />
r3m<br />
.<br />
.<br />
.<br />
⎤<br />
⎥ ,<br />
⎥<br />
⎦<br />
(5.33)<br />
0 0 0 . . . 0 rmm<br />
ou seja, A = QR.<br />
Devido aos problemas da instabilidade do método de Gram-Schmidt clássico, é melhor usar o método de<br />
Gram-Schmidt modificado para fazer a decomposição QR de uma matriz. Resolvendo o j-ésimo passo do<br />
MGS<br />
em termos de Aj, denotando<br />
segue que<br />
onde definimos<br />
v j−2<br />
j<br />
v j−1<br />
j<br />
v 1 j = Aj − 〈Aj, v1〉 v1,<br />
v 2 j = v 1 j − v 1 j , v2<br />
v 3 j = v 2 j − v 2 j , v3<br />
.<br />
= vj−3 j<br />
−<br />
<br />
v2,<br />
v3,<br />
v j−3<br />
j<br />
= vj−2 j −<br />
<br />
v j−2<br />
j<br />
vj = vj−1 j<br />
<br />
<br />
v j−1<br />
<br />
<br />
,<br />
<br />
Aj = v 1 j + 〈Aj, v1〉 v1<br />
= v 2 j + v 1 j , v2<br />
= v 3 j + v 2 <br />
j , v3 v3 + v 1 j , v2<br />
. . .<br />
= v j−1<br />
j<br />
+<br />
j−1<br />
i=1<br />
<br />
<br />
= v j−1<br />
<br />
j−1<br />
vj +<br />
=<br />
j<br />
j<br />
i=1<br />
rijvi,<br />
j<br />
<br />
, vj−2 vj−2,<br />
<br />
, vj−1 vj−1,<br />
v 0 j = Aj, (5.34)<br />
<br />
v2 + 〈Aj, v1〉 v1<br />
<br />
v2 + 〈Aj, v1〉 v1<br />
i−1<br />
vj , vi vi<br />
i=1<br />
i−1<br />
vj , vi vi<br />
(5.35)<br />
rij = v i−1 <br />
j , vi se i = 1, . . . , j − 1, (5.36)<br />
<br />
<br />
rjj = v j−1<br />
<br />
<br />
. (5.37)<br />
Assim, se Q e R são definidas como em (5.31) e (5.32), novamente nós temos A = QR.<br />
j
Rodney Josué Biezuner 87<br />
5.7 Algoritmo de Lanczos e Método do Gradiente Conjugado<br />
O algoritmo de Lanczos pode ser visto como uma simplificação do método de Arnoldi para matrizes simétricas.<br />
Quando a matriz A é simétrica, a matriz de Hessenberg Hm torna-se uma matriz tridiagonal simétrica, pois<br />
Hm = V T m AVm e uma matriz de Hessenberg simétrica é necessariamente tridiagonal. Isso leva a uma<br />
recorrência de três termos no processo de Arnoldi e a recorrências curtas para algoritmos de solução tais<br />
como o FOM.<br />
A notação padrão para descrever o algoritmo de Lanczos é obtida tomando<br />
αj = hjj,<br />
βj = hj−1,j<br />
de modo que a matriz de Hessenberg Hm resultante tem a forma<br />
⎡<br />
⎢<br />
Tm = ⎢<br />
⎣<br />
α1 β2<br />
β2 α2 β3<br />
. .. . ..<br />
. ..<br />
βm−1 αm−1 βm<br />
(na notação padrão do algoritmo de Lanczos, a matriz de Hessenberg Hm é denotada por Tm, para enfatizar<br />
a sua tridiagonalidade). Isto leva à seguinte variação MGS do método de Arnoldi (FOM):<br />
βm<br />
Algoritmo de Lanczos com MGS<br />
Inicialize x0 ;<br />
Calcule r0 = b − Ax0 ;<br />
Calcule β = r0 ;<br />
2<br />
v1 ← r0 /β;<br />
Inicialize β1 = 0, v0 ≡ 0;<br />
Para ⎡ j = 1, . . . , m faça<br />
wj ← Avj − βjvj−1;<br />
⎢ αj ⎢ ← 〈wj, vi〉 ;<br />
⎢ wj ⎢ ← wj − αjvj;<br />
⎢ βj+1 ⎢ ← wj ;<br />
⎣ Se βj+1 = 0 então pare;<br />
vj+1 ← wj/ βj+1;<br />
fim do laço<br />
Atribua a matriz Tm = tridiag (βi, αi, βi+1);<br />
Atribua a matriz Vm = [v1 · · · vm] ;<br />
αm<br />
Calcule ym = T −1<br />
m (βe1) ; //não é necessário encontrar T −1<br />
m<br />
Calcule xm = x0 + Vmym .<br />
Este algoritmo pode ser consideravelmente simplificado, através da obtenção de uma fórmula de recorrência<br />
de três termos, levando ao método do gradiente conjugado. Primeiro, fazemos uma decomposição LU da<br />
matriz tridiagonal Tm = LmUm sem pivôs:<br />
⎡<br />
1<br />
⎢ µ2 ⎢ 1<br />
⎢<br />
Tm = µ3 ⎢ 1<br />
⎢<br />
⎣<br />
. ..<br />
Lm<br />
⎤<br />
⎡<br />
. ..<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎦ ⎢<br />
⎣<br />
µm 1<br />
η1 β2<br />
η2 β3<br />
η3<br />
Um<br />
⎤<br />
⎥<br />
⎦<br />
. ..<br />
. .. βm<br />
ηm<br />
⎤<br />
⎥<br />
⎦<br />
(5.38)
Rodney Josué Biezuner 88<br />
onde os coeficientes das matrizes bidiagonais Lm e Um podem ser obtidas através da seguinte fórmula de<br />
recorrência:<br />
isto é,<br />
η1 = α1,<br />
µ2 = β2η −1<br />
1 ,<br />
η2 = α2 − µ2β2,<br />
µ3 = β3η −1<br />
2 ,<br />
.<br />
µm = βmη −1<br />
m−1 ,<br />
ηm = αm − µmβm,<br />
µj = βjη −1<br />
j−1 , (5.39)<br />
ηj = αj − µjβj. (5.40)<br />
(Observe que ηj = 0 para todo j porque Tm é simétrica, positiva definida.) A solução aproximada é dada<br />
então por<br />
Definindo<br />
segue que<br />
x m = x 0 + VmU −1<br />
m L −1<br />
m (βe1) . (5.41)<br />
Pm = VmU −1<br />
m , (5.42)<br />
z m = L −1<br />
m (βe1) , (5.43)<br />
x m = x 0 + Pmz m . (5.44)<br />
Por causa da estrutura triangular superior bidiagonal de Um, Pm pode ser atualizada facilmente. De fato,<br />
escreva Pm em colunas:<br />
Pm = p1 p2 · · · pm<br />
<br />
.<br />
Da relação PmUm = Vm segue que<br />
donde<br />
βmpm−1 + ηmpm = vm,<br />
pm = η −1<br />
m (vm − βmpm−1) . (5.45)<br />
Além disso, por causa da estrutura triangular inferior bidiagonal com diagonal unitária de Um, da relação<br />
Lmz m = βe1 segue que<br />
µmz m j−1 + z m j = 0<br />
para j > 1, e portanto podemos escrever (lembrando que zm é um vetor de Rm assim como ym )<br />
z m <br />
m−1 z<br />
=<br />
ζm <br />
com<br />
Assim,<br />
(5.46)<br />
ζ m = −µmζ m−1 . (5.47)<br />
x m = x 0 + Pm−1 pm<br />
z m−1<br />
ζ m<br />
= x 0 + Pm−1z m−1 + ζ m pm,
Rodney Josué Biezuner 89<br />
donde<br />
x m = x m−1 + ζ m pm. (5.48)<br />
Isso dá a seguinte versão direta para o algoritmo de Lanczos para sistemas lineares:<br />
Algoritmo de Lanczos Direto<br />
Inicialize x 0 ;<br />
Calcule r 0 = b − Ax 0 ;<br />
Calcule ζ 1 = β = r 0 2 ;<br />
v1 ← r 0 /β;<br />
Inicialize β1 = µ1 ≡ 0;<br />
Inicialize p0 ≡ 0;<br />
Para<br />
⎡<br />
m = 1, 2, . . . , até limite de tolerância faça<br />
⎢<br />
⎣<br />
w ← Avm − βmvm−1;<br />
αm ← 〈w, vm〉 ;<br />
Se m > 1 então<br />
µm ← βm/ηm−1;<br />
ζ m ← −µmζ m−1 ;<br />
ηm ← αm − µmβm;<br />
pm ← (vm − βmpm−1) /ηm;<br />
x m ← x m−1 + ζ m pm;<br />
w ← w − αmvm;<br />
βm+1 ← w ;<br />
Se βm+1 = 0 então pare;<br />
vm+1 ← w/ βm+1;<br />
fim do laço<br />
Este algoritmo ainda pode ser consideravelmente simplificado. O resultado, uma fórmula tripla de<br />
recorrência, extremamente simples e que não envolve o cálculo da base ortonormal {v1, . . . , vm}, é o chamado<br />
método do gradiente conjugado (CG). Para obtê-lo, observamos primeiramente que os vetores pm são<br />
A-conjugados (isto é, A-ortogonais):<br />
5.9 Proposição.<br />
para todos i = j.<br />
Prova: Para provar isso, basta mostrar que<br />
é uma matriz diagonal. Isso segue de<br />
〈pi, pj〉 A = 〈Api, pj〉 = 0 (5.49)<br />
P T mAPm<br />
P T mAPm = U −T<br />
m V T m AVmU −1<br />
m<br />
= U −T<br />
m TmU −1<br />
m<br />
= U −T<br />
m Lm<br />
e do fato que U −T<br />
m Lm é uma matriz triangular inferior (a inversa de uma matriz triangular superior é uma<br />
matriz triangular superior e o produto de duas matrizes triangulares inferiores é uma matriz triangular<br />
inferior) que é simétrica. <br />
Usando a notação padrão do método do gradiente conjugado (ou seja, agora os escalares αm, βm terão<br />
um significado completamente diferente do anterior), reescrevemos (5.48) na forma<br />
x m+1 = x m + αmp m , (5.50)
Rodney Josué Biezuner 90<br />
de modo que os resíduos satisfazem<br />
r m+1 = r m − αmAp m . (5.51)<br />
Como os resíduos são ortogonais (Proposição 5.8), segue que 〈r m − αmAp m , r m 〉 = 0, donde<br />
Reescrevemos também (5.45) na forma<br />
αm = 〈rm , rm 〉<br />
〈Apm , rm . (5.52)<br />
〉<br />
p m+1 = r m+1 + βmp m ; (5.53)<br />
para isso usamos a Proposição 5.8 e fazemos uma mudança de escala nos vetores p m (isso não altera a<br />
validade de (5.50), em que assumimos os vetores p m tomados já com a mudança de escala; assim os vetores<br />
p m do algoritmo do gradiente conjugado considerado aqui também são diferentes dos vetores considerados<br />
acima no algoritmo de Lanczos, sendo múltiplos adequados destes). Daí, como<br />
r m+1 + βmp m , Ap m = p m+1 , Ap m = 0,<br />
segue que<br />
Observe porém que<br />
enquanto que de (5.51) temos<br />
βm = −<br />
Ap m , r m+1 <br />
〈Ap m , p m 〉 .<br />
〈Ap m , r m 〉 = Ap m , p m − βmp m−1 = 〈Ap m , p m 〉 , (5.54)<br />
Ap m = −α −1 m+1 m<br />
m r − r .<br />
Portanto, usando a ortogonalidade dos resíduos, podemos escrever<br />
βm = −<br />
Ap m , r m+1 <br />
〈Ap m , r m 〉 =<br />
r m+1 , r m+1 <br />
〈r m , r m 〉<br />
Além disso, usando (5.54) também podemos reescrever (5.52) na forma<br />
. (5.55)<br />
αm = 〈rm , rm 〉<br />
〈Apm , pm . (5.56)<br />
〉<br />
Estas últimas fórmulas para αm e βm são muito mais convenientes para o algoritmo do gradiente conjugado:<br />
Algoritmo do Gradiente Conjugado<br />
Inicialize x0 ;<br />
Atribua b;<br />
r ← b − Ax0 ;<br />
p ← r;<br />
current 〈r, r〉 ← r0 , r0 ;<br />
Atribua o limite de tolerância e o número máximo de iterações;<br />
N = 0; //número de iterações.<br />
Faça até que o limite de tolerância seja atingido<br />
ou<br />
⎡<br />
até o número máximo de iterações<br />
Calcule Ap;<br />
⎢ α ← current 〈r, r〉 / 〈p, Ap〉 ;<br />
⎢ x ← x + αp;<br />
⎢ r ← r − αAp;<br />
⎢ β ← 〈r, r〉 /current 〈r, r〉 ;<br />
⎢ p ← r + βp;<br />
⎣ current 〈r, r〉 ← 〈r, r〉 ;<br />
N + +;<br />
fim do laço
Rodney Josué Biezuner 91<br />
5.8 Método do Gradiente Conjugado como um Método de Descida<br />
O método do gradiente conjugado é uma das mais conhecidas e usadas técnicas iterativas para resolver sistemas<br />
lineares envolvendo matrizes simétricas esparsas, dada sua eficiência e simplicidade de implementação.<br />
Como vimos na seção anterior, ele é matematicamente equivalente ao FOM. No que se segue, veremos uma<br />
descrição alternativa do método CG, em que ele é visto como uma modificação do método de descida mais<br />
acentuada (método do gradiente).<br />
Os métodos iterativos lineares básicos e os métodos de descida que vimos anteriormente são limitados<br />
pela sua falta de memória, no sentido de que apenas informação sobre x k é usada para obter x k+1 . Toda a<br />
informação sobre as iterações anteriores é perdida. O método do gradiente conjugado é uma variação simples<br />
do método da descida mais acentuada que funciona melhor porque a informação obtida através das iterações<br />
anteriores é utilizada.<br />
Para entender como isso funciona, observe que depois de m iterações x k+1 = x k + αkp k de um método<br />
de descida temos<br />
x m = x 0 + α0p 0 + α1p 1 + . . . + αm−1p m−1 ,<br />
de modo que x m está no subespaço afim gerado pelo chute inicial x 0 e pelos vetores p 0 , p 1 , . . . , p m−1 .<br />
Enquanto o método da descida mais acentuada minimiza o funcional quadrático de energia f associado ao<br />
sistema Ax = b apenas ao longo das m retas x k +αkp k , cuja união constitui apenas um pequeno subconjunto<br />
do subespaço afim m-dimensional x 0 + p 0 , p 1 , . . . , p m−1 , o método do gradiente conjugado minimiza f sobre<br />
todo o subespaço afim x 0 + p 0 , p 1 , . . . , p m−1 .<br />
Para definir as direções de busca do método do gradiente conjugado (que é, antes de mais nada, um método<br />
de descida), começamos dando uma prova mais simples da Proposição 4.4 que não utiliza a linguagem de<br />
métodos de projeção:<br />
5.10 Teorema. Seja A ∈ Mn (R) uma matriz simétrica positiva definida e b ∈ R n . Então, o funcional<br />
quadrático de energia associado ao sistema Ax = b pode ser escrito na forma<br />
f (y) = 1<br />
2 e2<br />
1<br />
A −<br />
2 x2 A . (5.57)<br />
onde e = x − y é o erro algébrico. Em particular, minimizar o funcional quadrático f é equivalente a<br />
minimizar a A-norma do erro.<br />
Prova: Pela regra do paralelogramo, temos<br />
donde<br />
ou<br />
Logo,<br />
x + y 2<br />
A + x − y2 A = 2 x2 A + 2 y2 A ,<br />
2 y 2<br />
A = x − y2 A + x2 A + 2 〈y, x〉 A + y2 A − 2 x2 A<br />
= x − y 2<br />
A + 2 〈y, x〉 A − x2 A + y2 A ,<br />
y 2<br />
A − 2 〈y, x〉 A = x − y2 A − x2 A .<br />
<br />
Em um método de descida, depois de m iterações temos:<br />
f (y) = 1<br />
2 y2 A − 〈y, x〉 1<br />
A =<br />
2 e2<br />
1<br />
A −<br />
2 x2 A . (5.58)<br />
e m = x − x m<br />
= x − x 0 − α0p 0 + α1p 1 + . . . + αm−1p m−1<br />
= e 0 m−1<br />
−<br />
<br />
αip i .<br />
i=0
Rodney Josué Biezuner 92<br />
Minimizar e m A é portanto equivalente a minimizar<br />
<br />
<br />
<br />
<br />
e0 m−1 <br />
− αip<br />
i=0<br />
i<br />
<br />
<br />
<br />
,<br />
<br />
A<br />
o que por sua vez é equivalente a encontrar a melhor aproximação do vetor e 0 no subespaço Wm =<br />
p 0 , p 1 , . . . , p m−1 . Esta é dada pelo lema da melhor aproximação, que enunciamos em detalhe por co-<br />
modidade:<br />
5.11 Proposição. (Lema da Melhor Aproximação) Sejam A ∈ Mn (R) uma matriz simétrica positiva<br />
definida, v ∈ R n e W um subsespaço de R n . Então existe um único w ∈ W tal que<br />
v − w A = min<br />
z∈W v − z A .<br />
O vetor w é caracterizado pela condição v − w ⊥A W .<br />
Segue deste resultado que emA é minimizado quando escolhemos p = m−1 <br />
αip<br />
i=0<br />
i ∈ Wm tal que em = e0 − p<br />
satisfaz<br />
e m ⊥A p i para i = 1, . . . , m − 1. (5.59)<br />
Nosso objetivo então é desenvolver um método em que o erro a cada passo é conjugado com todas as direções<br />
de busca anteriores. Como fazer isso? Pelo Lema 4.11, cujo enunciado repetimos a seguir como Proposição<br />
5.12 para facilitar a consulta, sabemos que em qualquer método de descida em que a busca na reta é exata<br />
satisfaz automaticamente e m ⊥A p m−1 , isto é, (5.59) é válido para a última iteração (o erro da iteração<br />
presente é A-ortogonal à direção de busca da iteração anterior):<br />
5.12 Proposição. Seja x m+1 = x m + αmp m obtido através de uma busca na reta exata. Então<br />
e<br />
r m+1 ⊥ p m<br />
e m+1 ⊥A p m .<br />
Fazendo uma busca exata na reta x 0 + tp 0 obtemos o escalar α0 e<br />
Pela Proposição 5.12 segue que e 1 ⊥A p 0 . Como<br />
x 1 = x 0 + α0p 0<br />
e 2 = x − x 2 = x − x 1 − α1p 1 = e 1 − α1p 1 ,<br />
para que tenhamos e 2 ⊥A p 0 é necessário escolher p 1 conjugado a p 0 . Se isso foi feito, fazendo em seguida<br />
uma busca exata na reta x 1 + tp 1 obtemos o escalar α1,<br />
x 1 = x 0 + α0p 0<br />
e, pela Proposição 5.12, e 2 ⊥A p 1 . No m-ésimo passo, como<br />
ou seja,<br />
e m = x − x m = x − x m−1 − αm−1p m−1<br />
e m = e m−1 − αm−1p m−1 , (5.60)<br />
para que o erro e m seja conjugado aos vetores p 0 , . . . , p m−2 basta escolher a direção de busca p m conjugada<br />
a p 0 , . . . , p m−1 ; para assegurar que e m também seja conjugado ao vetor p m−1 , basta fazer uma busca exata
Rodney Josué Biezuner 93<br />
na reta x m−1 + tp m−1 . Assim, uma condição necessária para obter (5.59) é escolher as direções de busca de<br />
tal forma que<br />
p i ⊥A p j para todos i = j. (5.61)<br />
Um método com estas características é chamado um método de direções conjugadas. Estes resultados<br />
são resumidos na proposição a seguir:<br />
5.13 Teorema. Se um método emprega direções de busca conjugadas e performa buscas na reta exatas,<br />
então<br />
e m ⊥A p i<br />
para i = 1, . . . , m − 1,<br />
para todo m. Conseqüentemente<br />
onde Wm = p 0 , p 1 , . . . , p m−1 .<br />
e m <br />
A = min 0<br />
e − pA ,<br />
p∈Wm<br />
Prova: A demonstração é por indução. Para m = 1, temos e 1 ⊥A p 0 pela Proposição 5.12 porque a busca<br />
na reta é exata. Em seguida, assuma e m ⊥A p i para i = 1, . . . , m − 1; queremos mostrar que e m+1 ⊥A p i<br />
para i = 1, . . . , m. Como<br />
e m+1 = e m − αmp m ,<br />
para i = 1, . . . , m − 1 temos<br />
e m+1 , p i <br />
A = e m − αmp m , p i<br />
A = e m , p i<br />
A<br />
m i<br />
− αm p , p <br />
= 0 − 0 = 0<br />
A<br />
porque as direções de busca são conjugadas. e m+1 ⊥A p m segue novamente da Proposição 5.12. <br />
Quando a direção inicial é dada pelo vetor gradiente de f, como na primeira iteração do método da descida<br />
mais acentuada, obtemos o método do gradiente conjugado. As direções subseqüentes são escolhidas através<br />
de A-ortogonalizar o resíduo (ou vetor gradiente de f, que é a direção de busca em cada iteração do método<br />
da descida mais acentuada) com todas as direções de busca anteriores, o que pode ser feito simplesmente<br />
utilizando-se o algoritmo de Gram-Schmidt que no método do gradiente conjugado produz o mesmo resultado<br />
que um método mais estável como o MGS, como veremos. Dado um chute inicial p 0 , a primeira direção é<br />
ou seja, a direção inicial é o primeiro resíduo:<br />
p 0 = −∇f x 0 = b − Ax 0 = r 0<br />
Depois de m passos com direções de busca conjugadas p 0 , . . . , p m , escolhemos<br />
p m+1 = r m+1 −<br />
onde os cmi são dados pelo algoritmo de Gram-Schmidt:<br />
cmi =<br />
p 0 = r 0 . (5.62)<br />
m<br />
i=0<br />
r m+1 , p i <br />
〈p i , p i 〉 A<br />
cmip i<br />
A<br />
(5.63)<br />
. (5.64)<br />
de forma que p m+1 ⊥A p i para todos i = 1, . . . , m. Felizmente, como veremos a seguir depois de algum<br />
trabalho preliminar (Corolário 5.17), cmi = 0 para todo i exceto i = m, o que torna necessário que apenas<br />
a direção de busca mais recente p m seja armazenada na memória do computador, o que garante que a<br />
implementação do gradiente conjugado é eficiente:<br />
p m+1 = r m+1 −<br />
r m+1 , p m <br />
A<br />
〈pm , pm p<br />
〉 A<br />
m = r m+1 −<br />
r m+1 , Ap m <br />
〈p m , Ap m 〉 pm<br />
(5.65)
Rodney Josué Biezuner 94<br />
ou, definindo<br />
temos que<br />
βm = −<br />
r m+1 , Ap m <br />
〈p m , Ap m 〉<br />
, (5.66)<br />
p m+1 = r m+1 + βmp m . (5.67)<br />
Esta é a modificação do método do gradiente conjugado em relação ao método da descida mais acentuada,<br />
no qual tomamos p m+1 = r m+1 .<br />
Podemos obter uma expressão mais simples para o escalar βm, em função apenas dos resíduos. Com<br />
efeito, temos m+1 m+1<br />
r , r = r m+1 , r m m+1 m<br />
− αm r , Ap m+1 m<br />
= −αm r , Ap <br />
porque os resíduos obtidos através do método do gradiente conjugado são mutualmente ortogonais (veja<br />
Corolário 5.16), logo<br />
Temos<br />
β = −<br />
r m+1 , Ap m <br />
porque p m−1 , r m = 0 pela Proposição 5.12, logo<br />
Portanto<br />
r m+1 , r m+1 <br />
〈pm , Apm 〉 =<br />
αm 〈pm , Apm 〉 .<br />
αm = 〈pm , rm 〉<br />
〈pm , Apm 〉 =<br />
<br />
m m−1 m r + βp , r <br />
〈pm , Apm =<br />
〉<br />
〈rm , rm 〉<br />
〈pm , Apm 〉 ,<br />
αm = 〈rm , rm 〉<br />
〈pm , Apm . (5.68)<br />
〉<br />
β =<br />
r m+1 , r m+1 <br />
〈r m , r m 〉<br />
. (5.69)<br />
Podemos obter um algoritmo ainda mais eficiente para o método do gradiente conjugado se observarmos que<br />
para calcular o resíduo r m+1 = b − Ax m+1 em cada iteração não é necessário calcular Ax m+1 explicitamente;<br />
de fato, como vimos na demonstração da Proposição 5.12, temos r m+1 = r m −αmAp m . Desta forma, obtemos<br />
o mesmo algoritmo do gradiente conjugado obtido na seção anterior a partir do algoritmo de Lanczos.<br />
5.8.1 Convergência do Método do Gradiente Conjugado em Aritmética Exata<br />
Vamos agora provar uma série de resultados com o objetivo principal de demonstrar o fato mencionado<br />
acima que cmi = 0 para todo i = 1, . . . , m − 1 e também que o método do gradiente conjugado converge em<br />
aritmética exata em precisas n iterações se a matriz A tem tamanho n.<br />
5.14 Teorema. Depois de j iterações do algoritmo do gradiente conjugado (com rm = 0 em cada iteração),<br />
temos 0 1 j−1<br />
p , p , . . . , p = r 0 , r 1 , . . . , r j−1 0<br />
= Kj A, r .<br />
Prova: A demonstração é por indução. O resultado é trivial para j = 0, pois p0 = r0 . Assuma o resultado<br />
válido para j − 1. Em primeiro lugar, mostraremos que<br />
0 1 j<br />
r , r , . . . , r 0<br />
⊂ Kj+1 A, r . (5.70)<br />
Em vista da hipótese de indução, basta mostrar que rj ∈ Kj+1<br />
rj−1 <br />
0 ∈ Kj A, r ⊂ Kj+1<br />
também por hipótese de indução, pj−1 <br />
0 ∈ Kj+1 A, r , logo<br />
Ap j−1 ∈ Kj<br />
A, r 0 . Como r j = r j−1 − αj−1Ap j−1 e<br />
A, r 0 por hipótese de indução, basta provar que Ap j−1 ∈ Kj+1<br />
0<br />
A, Ar = Ar 0 , A 2 r 0 , . . . , A j r 0 ⊂ r 0 , Ar 0 , A 2 r 0 , . . . , A j r 0 0<br />
= Kj+1 A, r .<br />
A, r 0 . Mas,
Rodney Josué Biezuner 95<br />
Em seguida, mostraremos que<br />
p 0 , p 1 , . . . , p j ⊂ r 0 , r 1 , . . . , r j . (5.71)<br />
Por hipótese de indução, basta provar que pj ∈ r0 , r1 , . . . , rj . Isso segue de (5.63) e da hipótese de indução.<br />
Até aqui provamos que<br />
0 1 j<br />
p , p , . . . , p ⊂ r 0 , r 1 , . . . , r j 0<br />
⊂ Kj+1 A, r . (5.72)<br />
Para provar que eles são iguais, basta mostrar que eles têm a mesma dimensão. Isso decorre de<br />
e<br />
dim r 0 , r 1 , . . . , r j j + 1,<br />
0<br />
dim Kj+1 A, r j + 1<br />
dim p 0 , p 1 , . . . , p j = j + 1,<br />
o último porque os vetores p 0 , p 1 , . . . , p j são vetores não-nulos A-ortogonais. <br />
5.15 Corolário. Depois de j iterações do algoritmo do gradiente conjugado, temos<br />
0<br />
A, r <br />
para todo j.<br />
e j ⊥A Kj<br />
Prova: Segue imediatamente do teorema anterior e do Teorema 5.13. <br />
5.16 Corolário. Depois de j iterações do algoritmo do gradiente conjugado, temos<br />
r j 0<br />
⊥ Kj A, r <br />
para todo j.<br />
Prova: Em vista do Teorema 5.14, basta provar que r j ⊥ p 0 , p 1 , . . . , p j−1 para todo j. Como Ae j+1 = r j+1 ,<br />
j+1 i<br />
r , p = Ae j+1 , p i = e j+1 , p i<br />
= 0 A<br />
para todo i = 1, . . . , j − 1, como vimos na demonstração do Teorema 5.13. <br />
5.17 Corolário. cmi = 0 para todo i = 1, . . . , m − 1.<br />
Prova: Temos que provar que r m+1 , p i <br />
A = r m+1 , Ap i = 0<br />
para todos i = 1, . . . , m − 1. Pelo Teorema 5.14, pi ∈ p0 , p1 , . . . , pi = r0 , Ar0 , . . . , Air <br />
0 = Ki+1 A, r ,<br />
logo<br />
e o resultado segue do corolário anterior. <br />
Ap i ∈ Ar 0 , A 2 r 0 , . . . , A i+1 r 0<br />
⊂ Ki+2 A, r 0<br />
⊂ Km+1 A, r <br />
5.18 Teorema. Seja A ∈ Mn (R) uma matriz simétrica positiva definida. Então o método do gradiente<br />
conjugado converge em n iterações.<br />
Prova: Se fizemos n − 1 iterações para obter x, pelo Corolário 5.16 os vetores r 0 , r 1 , . . . , r n−1 formam uma<br />
base ortogonal para R n . Depois de mais uma iteração, de acordo com este mesmo corolário o resíduo r n<br />
satisfaz r n ⊥ r 0 , r 1 , . . . , r n−1 = R n , logo r n = 0.
Rodney Josué Biezuner 96<br />
5.9 Velocidade de Convergência do Método do Gradiente Conjugado<br />
Na maioria das aplicações o método do gradiente conjugado converge ainda mais rápido do que as n iterações<br />
previstas pelo Teorema 5.18, se apenas uma boa aproximação é requerida. Para obter uma estimativa da<br />
velocidade de convergência do método do gradiente conjugado, precisamos desenvolver algumas ferramentas<br />
teóricas antes.<br />
5.9.1 Polinômios de Chebyshev<br />
Polinômios de Chebyshev são provavelmente os mais úteis polinômios na Teoria de Aproximação, a área<br />
que se ocupa em determinar como melhor aproximar funções através de funções mais simples (tais como<br />
polinômios). Os polinômios de Chebyshev do primeiro tipo surgiram inicialmente como soluções da equação<br />
de Chebyshev: 1 − x 2 y ′′ − xy ′ + n 2 y = 0<br />
5.19 Definição. O polinômio de Chebyshev do primeiro tipo de grau k é o polinômio de grau k Ck :<br />
[−1, 1] −→ R definido por<br />
Ck (t) = cos k cos −1 t .<br />
Que Ck é de fato um polinômio de grau k pode ser visto através da seguinte fórmula de recorrência:<br />
5.20 Proposição. Vale a seguinte fórmula de recorrência de três termos para os polinômios de Chebyshev<br />
C0 (t) = 1,<br />
C1 (t) = t,<br />
Ck+1 (t) = 2tCk (t) − Ck−1 (t) .<br />
(5.73)<br />
Em particular, Ck (t) é um polinômio real de grau k, Ck (t) é uma função par se k é par e uma função<br />
ímpar se k é ímpar.<br />
Prova: Usando a identidade trigonométrica<br />
segue que<br />
cos [(k + 1) θ] + cos [(k − 1) θ] = 2 cos θ cos kθ,<br />
Ck+1 (t) + Ck−1 (t) = cos [(k + 1) arccos t] + cos [(k − 1) arccos t]<br />
= 2 cos (arccos t) cos [k arccos t]<br />
= 2tCk (t) .<br />
<br />
A fórmula de recorrência da Proposição 5.20 permite estender naturalmente o domínio dos polinômios de<br />
Chebyshev à reta toda. Isso também pode ser feito estendendo a definição trigonométrica:<br />
−1<br />
cosh k cosh t se t 1,<br />
Ck (t) =<br />
(−1) k cosh k cosh −1 |t| <br />
(5.74)<br />
se t −1.<br />
De fato, usando a identidade trigonométrica hiperbólica<br />
cosh [(k + 1) θ] + cosh [(k − 1) θ] = 2 cosh θ cosh kθ,
Rodney Josué Biezuner 97<br />
vemos que vale a mesma fórmula de recorrência da Definição 5.19. O polinômio de Chebyshev Ck (t) possui<br />
k raízes simples, todas localizadas no intervalo [−1, 1] dadas por<br />
<br />
2j − 1<br />
tj = cos<br />
2k π<br />
<br />
, j = 1, . . . , k,<br />
como pode ser verificado diretamente da definição. Em particular, os polinômios de Chebyshev não se anulam<br />
fora deste intervalo. Observe também que |Ck (t)| 1 para t ∈ [−1, 1]. À título de informação, eles formam<br />
uma base ortogonal no espaço de funções apropriado no sentido que<br />
1<br />
dt<br />
Ck (t) Cl (t) √<br />
−1<br />
1 − t2 =<br />
⎧<br />
⎨ 0 se k = l,<br />
π se k = l = 0,<br />
⎩<br />
π/2 se k = l = 0.<br />
5.21 Proposição. Se |t| 1, vale<br />
Ck (t) = 1<br />
2<br />
Prova: Como resultado de (5.74), segue que<br />
Por outro lado,<br />
e<br />
logo<br />
Ck (t) = cosh k cosh −1 t = 1<br />
2<br />
= 1<br />
e<br />
2<br />
cosh−1 t k +<br />
t + t2 k <br />
− 1 + t + t2 <br />
−k<br />
− 1 .<br />
<br />
e k cosh−1 t + e −k cosh −1 t <br />
<br />
e cosh−1 t −k <br />
.<br />
e x = cosh x + sinh x<br />
cosh 2 x − sinh 2 x = 1,<br />
e cosh−1 <br />
t −1 −1<br />
= cosh cosh t + sinh cosh t<br />
<br />
cosh 2 cosh −1 t − 1<br />
= t +<br />
= t + t 2 − 1,<br />
donde segue o resultado. <br />
Em particular, para valores grandes de k pode-se usar a aproximação<br />
Ck (t) 1<br />
<br />
t +<br />
2<br />
t2 k − 1 .<br />
para |t| 1. No que se segue denotaremos o subespaço de todos os polinômios reais de grau menor ou igual<br />
a k por Pk [x]. O seguinte teorema é um importante resultado em Teoria da Aproximação:<br />
5.22 Teorema. Seja [a, b] ⊂ R um intervalo não vazio e c /∈ [a, b]. Então o mínimo<br />
é atingido pelo polinômio<br />
µk = min<br />
Ck (x) :=<br />
p∈Pk[x]<br />
p(c)=1<br />
Ck<br />
Ck<br />
max<br />
x∈[a,b]<br />
|p (x)|<br />
<br />
x − b<br />
1 + 2<br />
b − a<br />
.<br />
c − b<br />
1 + 2<br />
b − a
Rodney Josué Biezuner 98<br />
Consequentemente,<br />
Prova: Denote por<br />
o ponto médio do intervalo [a, b]. Então<br />
µk = <br />
<br />
<br />
Ck<br />
m :=<br />
1<br />
<br />
c − b <br />
. (5.75)<br />
1 + 2<br />
b − a<br />
a + b<br />
2<br />
x − b b − a + 2x − 2b<br />
1 + 2 = =<br />
b − a b − a<br />
2x − (a + b)<br />
x − m<br />
= 2<br />
b − a .<br />
Assim, se c /∈ [a, b] então 2<br />
c − m<br />
b − a<br />
<br />
<br />
<br />
> 1<br />
b − a<br />
de modo que o denominador na expressão de Ck (x) nunca se anula. Por outro lado, se x ∈ [a, b] então<br />
<br />
<br />
<br />
− m<br />
2x <br />
b − a 1.<br />
Como<br />
max<br />
t∈[−1,1] |Ck (t)| = 1,<br />
segue (5.75).<br />
Portanto, para provar que o mínimo é atingido pelo polinômio Ck, precisamos mostrar que se pk ∈ Pk [x]<br />
é tal que p (c) = 1 e<br />
max |p (x)| µk,<br />
x∈[a,b]<br />
então pk = Ck. De fato, pela definição trigonométrica dos polinômios de Chebyshev, Ck (t) atinge os valores<br />
±1 alternadamente nos pontos<br />
<br />
j<br />
tj = cos<br />
k π<br />
<br />
, j = 0, 1, . . . , k.<br />
Correspondentemente, Ck (x) atinge os valores ±µk nos pontos<br />
xj = 1<br />
<br />
<br />
j<br />
a + b + (b − a) cos<br />
2<br />
k π<br />
<br />
, j = 0, 1, . . . , k<br />
dentro do intervalo [a, b]. Como<br />
<br />
<br />
|pk (xj)| µk = <br />
<br />
Ck (xj) ,<br />
concluímos que o polinômio diferença rk = Ck − pk de grau menor ou igual a k satisfaz<br />
rk (xj) 0 se j é par,<br />
rk (xj) 0 se j é ímpar.<br />
Pelo teorema do valor intermediário, rk possui pelo menos uma raiz em cada subintervalo [xj, xj+1]. Mesmo<br />
quando as raízes de rk em [xj−1, xj] e [xj, xj+1] coincidem, ou seja, xj é uma raiz de rk, esta é uma raiz de<br />
multiplicidade 2 (pois r ′ k (xj) = 0, isto é, xj também é uma raiz da derivada de rk). Consequentemente, o<br />
polinômio rk tem pelo menos k raízes em [a, b]. Mas, como<br />
rk (c) = Ck (c) − pk (c) = 1 − 1 = 0,<br />
c /∈ [a, b] é a (k + 1)-ésima raiz de rk. Isso constitui uma contradição, a menos que rk ≡ 0, o que implica<br />
pk = Ck.
Rodney Josué Biezuner 99<br />
5.9.2 Velocidade de Convergência do CG<br />
5.23 Lema. Seja A ∈ Mn (R) uma matriz simétrica positiva definida. Então o erro algébrico do método do<br />
gradiente conjugado satisfaz <br />
e k =<br />
A<br />
min<br />
<br />
p (A) e 0 .<br />
A<br />
p∈Pk[x]<br />
p(0)=1<br />
Prova: Pelos Teoremas 5.13 e 5.14, o método do gradiente conjugado minimiza a A-norma do erro no<br />
subespaço afim e0 <br />
0 + Kk A, r <br />
0 . Mas Kk A, r é o conjunto de todos os vetores da forma q (A) r0 onde<br />
q é um polinômio de grau menor ou igual a k − 1, enquanto que r0 = Ae0 . Portanto, o subespaço afim<br />
e0 <br />
0 + Kk A, r consiste de todos os vetores da forma e0 + q (A) Ae0 , ou seja, de todos os vetores na forma<br />
p (A) e 0 onde p é um polinômio de grau menor ou igual a k tal que p (0) = 1. <br />
5.24 Teorema. Seja A ∈ Mn (R) uma matriz simétrica positiva definida. Então o erro algébrico do método<br />
do gradiente conjugado satisfaz<br />
<br />
e k k <br />
κ (A) − 1 e<br />
2 <br />
A<br />
κ (A) + 1<br />
0 . (5.76)<br />
A<br />
Prova: Denote por λ1 . . . λn os autovalores de A e por v1, . . . , vn uma base A-ortonormal de autovetores<br />
correspondentes. Escrevendo<br />
e 0 n<br />
= aivi,<br />
segue que<br />
Assim,<br />
<br />
p (A) e 0 2<br />
A =<br />
n<br />
a 2 i p (λi) 2 <br />
<br />
i=1<br />
p (A) e 0 =<br />
donde, pelo lema anterior, e k A min<br />
i=1<br />
n<br />
aip (λi) vi.<br />
i=1<br />
2<br />
max p (λi)<br />
1in<br />
p∈Pk[x]<br />
p(0)=1<br />
<br />
e 0 2<br />
A <br />
<br />
max<br />
x∈[λ1,λn] p (x) 0<br />
e . A<br />
Segue agora do Lema 5.22 que e k A µ e 0 A<br />
onde<br />
µ = <br />
<br />
<br />
=<br />
Ck<br />
Ck<br />
1<br />
<br />
1 − 2<br />
λn<br />
λn − λ1<br />
1<br />
,<br />
κ (A) + 1<br />
κ (A) − 1<br />
<br />
<br />
= <br />
<br />
<br />
Ck<br />
1<br />
<br />
− λn<br />
<br />
+ λ1 <br />
=<br />
λn − λ1<br />
max p (x)2<br />
x∈[λ1,λn]<br />
Ck<br />
1<br />
<br />
λn + λ1<br />
λn − λ1<br />
e 0 2<br />
A ,<br />
(para obter a última igualdade usamos a simetria dos polinômios de Chebyshev, como visto na Proposição<br />
5.20, e a sua positividade no intervalo [1, +∞) que decorre diretamente da fórmula da Proposição 5.21). Pela<br />
Proposição 5.21 e o comentário que se segue, temos<br />
<br />
κ (A) + 1<br />
Ck<br />
<br />
κ (A) − 1<br />
1<br />
⎛<br />
⎝<br />
κ (A) + 1<br />
2 κ (A) − 1 +<br />
⎞k<br />
κ 2 (A) + 1<br />
− 1⎠<br />
,<br />
κ (A) − 1
Rodney Josué Biezuner 100<br />
donde<br />
<br />
e k ⎛<br />
2 ⎝<br />
κ (A) + 1<br />
A κ (A) − 1 +<br />
⎛<br />
<br />
κ (A) + 1 +<br />
= 2 ⎝<br />
<br />
κ 2 (A) + 1<br />
κ (A) − 1<br />
⎞<br />
− 1⎠<br />
−k<br />
<br />
e 0 A<br />
(κ (A) + 1) 2 − (κ (A) − 1) 2<br />
κ (A) − 1<br />
<br />
κ (A) + 1 + 2<br />
= 2<br />
−k κ (A) e<br />
κ (A) − 1<br />
0 A<br />
⎛ κ ⎞<br />
2<br />
⎜<br />
(A) + 1<br />
= 2 ⎝κ<br />
κ <br />
⎟<br />
⎠<br />
(A) + 1 (A) − 1<br />
= 2<br />
κ (A) − 1<br />
κ (A) + 1<br />
k e 0 A .<br />
−k<br />
<br />
e 0 A<br />
⎞<br />
⎠<br />
−k<br />
<br />
e 0 A<br />
<br />
Esta estimativa é bem melhor que a estimativa do método da descida mais acentuada (o número de condição<br />
é subtituido aqui pela sua raiz quadrada), mostrando que o método do gradiente conjugado é bem mais<br />
rápido. Por outro lado, como naquele método, a velocidade de convergência do método CG dependerá<br />
fortemente da boa ou má condicionalidade da matriz A.<br />
Uma comparação entre a velocidade de convergência dos métodos de gradiente para a matriz de discretização<br />
da fórmula de cinco pontos aplicada ao mesmo problema do Capítulo 3 (Seção 3.1.4) é dada na<br />
tabela a seguir [Watkins]. O tamanho das matrizes usadas é indicado na linha superior da tabela e o número<br />
de iterações necessárias para obter um erro algébrico menor normalizado menor que igual a 10 −8 é dado<br />
para cada método.<br />
n = 81 n = 361 n = 1521<br />
Descida Mais Acentuada 304 1114 4010<br />
Gradiente Conjugado 29 60 118<br />
No caso desta matriz de discretização temos<br />
κ (A) =<br />
2 (n − 1) π<br />
sen<br />
2n<br />
π<br />
sen2 2n<br />
2 π π∆x<br />
= cot = cot2<br />
2n 2 ≈<br />
de modo que <br />
κ (A) − 1 1 − π∆x/2<br />
≈ ≈ 1 − π∆x,<br />
κ (A) + 1 1 + π∆x/2<br />
4<br />
π 2 ∆x 2<br />
o que dá uma velocidade de convergência para o método do gradiente conjugado duas vezes maior que a<br />
do método SOR com o fator de relaxamento ótimo. No entanto, deve-se ter em mente que enquanto que a<br />
taxa de covergência que obtivemos para o método SOR é precisa, a estimativa de erro (5.76) do Teorema<br />
5.24 para o método do gradiente conjugado é apenas um limitante superior grosseiro e pode ser melhorada<br />
(veja [Watkins] para algumas estimativas melhoradas). De fato, embora a taxa de convergência assintótica<br />
(5.76) dependa apenas do número de condição, e portanto apenas dos autovalores extremais, a convergência<br />
do método do gradiente conjugado é influenciada pelo espectro inteiro, como o próximo resultado ilustra:
Rodney Josué Biezuner 101<br />
5.25 Teorema. Seja A ∈ Mn (R) uma matriz simétrica positiva definida com apenas m autovalores distintos.<br />
Então o método do gradiente conjugado converge em m iterações.<br />
Prova: Sejam λ1, . . . , λm os m autovalores distintos de A. Seja<br />
p (x) = a (x − λ1) . . . (x − λm)<br />
um polinômio de grau m onde a é escolhido de tal forma a produzir p (0) = 1. Como p (λi) = 0 para todo i,<br />
pela demonstração do Teorema 5.24 (e usando a mesma notação de lá) segue que<br />
p (A) e 0 =<br />
n<br />
aip (λi) vi = 0.<br />
i=1<br />
Logo, pelo Lema 5.23, temos que e m = 0. <br />
Mesmo se isso não ocorre, se os autovalores de A não estão distribuídos uniformemente em [λmin, λmax] mas<br />
se acumulam em subintervalos de [λmin, λmax], pode-se obter melhores taxas de convergência do que (5.76)<br />
(veja [Hackbusch] e [Watkins]).<br />
5.10 Exercícios<br />
5.1 Considere os vetores<br />
v1 =<br />
⎡<br />
⎢<br />
⎣<br />
1<br />
ε<br />
0<br />
0<br />
⎤<br />
⎥<br />
⎦ , v2 =<br />
⎡<br />
⎢<br />
⎣<br />
1<br />
0<br />
ε<br />
0<br />
⎤<br />
⎥<br />
⎦ e v3 =<br />
onde ε ≪ 1. Estes vetores são aproximadamente linearmente independentes.<br />
a) Use o método de Gram-Schmidt clássico para ortogonalizar estes vetores, usando a aproximação<br />
1 + ε 2 = 1 (um computador faria erros de arredondamento adicionais). Verifique que 〈w2, w3〉 = 1/2 e<br />
portanto estes vetores estão muito longe de serem ortogonais.<br />
b) Use o método de Gram-Schmidt modificado para ortogonalizar estes vetores, também usando a<br />
aproximação 1 + ε 2 = 1. Verifique que 〈w2, w3〉 = 0 e que 〈w1, w2〉 = −ε/ √ 2, 〈w1, w3〉 = −ε/ √ 6;<br />
portanto estes vetores estão muito próximos de serem ortogonais.<br />
5.2 Mostre que os algoritmos de Gram-Schmidt clássico e modificado são matematicamente equivalentes<br />
em aritmética exata, isto é, produzem os mesmos vetores.<br />
5.3 Prove que os vetores v1, . . . , vm gerados pelo algoritmo de Arnoldi com MGS formam uma base ortonormal<br />
para o subespaço de Krylov Km (A, v).<br />
5.4 Prove que o inversa de uma matriz triangular superior é uma matriz triangular superior. Prove a<br />
afirmativa equivalente para matrizes triangulares inferiores.<br />
5.5 Prove que o produto de matrizes triangulares superiores é uma matriz triangular superior. Prove a<br />
afirmativa equivalente para matrizes triangulares inferiores.<br />
⎡<br />
⎢<br />
⎣<br />
1<br />
0<br />
0<br />
ε<br />
⎤<br />
⎥<br />
⎦ ,
Capítulo 6<br />
O Problema do Autovalor<br />
Por causa do teorema de Abel com respeito à inexistência de uma fórmula para calcular as raízes de um<br />
polinômio de grau maior ou igual a 5, não existem métodos diretos para calcular autovalores. Todo método<br />
para calcular autovalores é necessariamente um método iterativo.<br />
De fato, dado um polinômio mônico<br />
p (z) = z n + an−1z n−1 + . . . + a1z + a0,<br />
seu determinante é igual a (−1) n vezes o determinante da matriz<br />
⎡<br />
−z<br />
⎢<br />
1<br />
⎢<br />
⎣<br />
−z<br />
1 −z<br />
1 −z<br />
. .. . ..<br />
−a0<br />
−a1<br />
−a2<br />
.<br />
.<br />
−an−1<br />
⎤<br />
⎥ ,<br />
⎥<br />
⎦<br />
1 −z − an−1<br />
logo as raízes de p são os autovalores da matriz<br />
⎡<br />
0<br />
⎢<br />
1<br />
⎢<br />
⎣<br />
0<br />
1 0<br />
1 0<br />
. .. . ..<br />
−a0<br />
−a1<br />
−a2<br />
.<br />
−an−1<br />
⎤<br />
⎥ .<br />
⎥<br />
⎦<br />
1 −an−1<br />
Portanto, o problema de encontrar as raízes de um polinômio é equivalente ao problema de encontrar os<br />
autovalores de uma matriz.<br />
6.1 Caracterização Variacional dos Autovalores de uma Matriz<br />
Simétrica: Quociente de Rayleigh<br />
Os autovalores de uma matriz simétrica podem ser caracterizados variacionalmente.<br />
6.1 Definição. Seja A ∈ Mn (R) uma matriz simétrica. Dado x ∈ R n , o quociente<br />
r (x) =<br />
102<br />
〈Ax, x〉<br />
x 2
Rodney Josué Biezuner 103<br />
é chamado o quociente de Rayleigh de x. A função r : R n −→ R é chamada o funcional de<br />
Rayleigh (ou também o quociente de Rayleigh).<br />
6.2 Teorema. (Princípio de Rayleigh) Seja A ∈ Mn (R) uma matriz simétrica. Se x é um ponto crítico do<br />
funcional de Rayleigh, então x é um autovetor de A e r (x) é o autovalor correspondente.<br />
Prova: Escrevendo<br />
Temos<br />
de modo que<br />
Portanto,<br />
<br />
r (x) =<br />
<br />
aijxixj<br />
i,j=1<br />
<br />
x<br />
i,j=1<br />
2 i<br />
2 x<br />
∂r<br />
(x) =<br />
∂xk<br />
2 <br />
<br />
aikxi − 2xk aijxixj<br />
i=1<br />
i,j=1<br />
x 4 = 2<br />
∇r (x) = 2<br />
2 [Ax − r (x) x] .<br />
x<br />
∇r (x) = 0 se e somente se Ax = r (x) x.<br />
x 2 [(Ax) k − r (x) xk] ,<br />
6.3 Corolário. O quociente de Rayleigh é uma aproximação de segunda ordem para os autovalores de A,<br />
ou seja, se v é um autovetor de A, segue que<br />
<br />
r (x) − r (v) = O x − v 2<br />
quando x → v<br />
Prova: Segue da fórmula de Taylor, já que ∇r (v) = 0. <br />
Podemos obter uma descrição geométrica mais precisa dos pontos críticos do funcional de Rayleigh:<br />
6.4 Teorema. (Princípio de Rayleigh) Seja A ∈ Mn (R) uma matriz simétrica. Sejam λ1 . . . λn os<br />
autovalores de A, de modo que λ1 é o menor autovalor de A e λn é o maior autovalor de A. Então<br />
e<br />
λ1 = min<br />
x∈R n<br />
〈Ax, x〉<br />
x<br />
x=0<br />
2<br />
λn = max<br />
x∈R n<br />
〈Ax, x〉<br />
x<br />
x=0<br />
2<br />
Prova: Seja B = {v1, . . . , vn} uma base ortonormal de autovetores de A correspondentes aos autovalores<br />
λ1, . . . , λn. Então, para todo x = n<br />
xivi temos<br />
λ1 x 2 =<br />
<br />
n<br />
i=1<br />
n<br />
i=1<br />
i=1<br />
λ1x 2 i<br />
λix 2 i =<br />
i=1<br />
n<br />
λixixj 〈vi, vj〉 =<br />
i,j=1<br />
<br />
n<br />
n<br />
= λixivi,<br />
= 〈Ax, x〉 .<br />
j=1<br />
xjvj<br />
i=1<br />
n<br />
〈λixivi, xjvj〉<br />
i,j=1<br />
<br />
n<br />
n<br />
= xiAvi,<br />
j=1<br />
xjvj<br />
<br />
=<br />
<br />
A<br />
n<br />
i=1<br />
xivi<br />
<br />
,<br />
n<br />
j=1<br />
xjvj<br />
<br />
(6.1)<br />
(6.2)
Rodney Josué Biezuner 104<br />
Portanto, para todo x ∈ R n , x = 0, vale<br />
λ1 <br />
〈Ax, x〉<br />
2 .<br />
x<br />
O mínimo é atingido em x = v1 ou em qualquer outro autovetor de A associado a λ1. Da mesma forma,<br />
obtemos<br />
λn x 2 n<br />
= λnx 2 n<br />
i λix 2 i = 〈Ax, x〉 .<br />
i=1<br />
<br />
Os outros autovalores de A, λ2, . . . , λn−1, são pontos de sela e podem ser encontrado através de um<br />
princípio de minimax:<br />
6.5 Teorema. (Princípio de Minimax para Autovalores) Seja A ∈ Mn (R) uma matriz simétrica. Sejam<br />
λ1 . . . λn os autovalores de A. Então<br />
⎛<br />
⎞<br />
λj = min<br />
i=1<br />
W ⊂R n subespaço<br />
dim W =j<br />
⎝ max<br />
x∈W<br />
x=1<br />
Prova: Seja W ⊂ R n um subespaço de dimensão j. Primeiro mostraremos que<br />
max 〈Ax, x〉 λj.<br />
x∈W<br />
x=1<br />
〈Ax, x〉 ⎠ . (6.3)<br />
Seja B = {v1, . . . , vn} uma base ortonormal de autovetores de A correspondentes aos autovalores λ1, . . . , λn.<br />
Seja Z = 〈v1, . . . , vj−1〉. Como Z ⊥ = 〈vj, . . . , vn〉, temos<br />
de modo que<br />
n dim W + Z ⊥ = dim W + dim Z ⊥ − dim W ∩ Z ⊥ = j + n − (j − 1) − dim W ∩ Z ⊥ ,<br />
dim W ∩ Z ⊥ 1<br />
e existe um vetor x ∈ W ∩ Z⊥ tal que x = 1. Escrevendo x = n<br />
xkvk, temos x = n<br />
|xk| 2 = 1, donde<br />
<br />
n<br />
n<br />
〈Ax, x〉 = xkAvk,<br />
=<br />
k=j<br />
n<br />
k=j<br />
l=j<br />
λk |xk| 2 λj<br />
xlvl<br />
k=j<br />
k=j<br />
<br />
n<br />
n<br />
= xkλkvk,<br />
n<br />
|xk| 2 = λj.<br />
k=j<br />
l=j<br />
xlvl<br />
<br />
=<br />
k=j<br />
n<br />
λkxkxl 〈vk, vl〉<br />
Para completar a demonstração, devemos encontrar um subespaço W ⊂ R n de dimensão j tal que<br />
〈Ax, x〉 λj para todo x ∈ W com x = 1. Tomemos W = 〈v1, . . . , vj〉. Temos<br />
<br />
j<br />
〈Ax, x〉 = xkAvk,<br />
=<br />
k=1<br />
j<br />
k=1<br />
O minimax é atingido em vj. <br />
j<br />
l=1<br />
λk |xk| 2 λj<br />
xlvl<br />
<br />
j<br />
= xkλkvk,<br />
k=1<br />
j<br />
|xk| 2 = λj.<br />
k=1<br />
j<br />
l=1<br />
xlvl<br />
<br />
=<br />
k,l=j<br />
j<br />
λkxkxl 〈vk, vl〉<br />
k,l=1
Rodney Josué Biezuner 105<br />
6.2 Método das Potências<br />
O método das potências ou método das iterações é o algoritmo mais simples para o cálculo de autovalores<br />
de matrizes, mas ele pode encontrar apenas o maior autovalor (em módulo) de uma matriz A ∈ Mn (C),<br />
chamado o autovalor dominante de A, desde que haja apenas um. Para simplificar a exposição, suponha<br />
que A é uma matriz diagonalizável cujo maior autovalor (em módulo) é um autovalor simples (isto é, seu<br />
autoespaço associado tem dimensão 1). Ordene os autovalores de A na forma<br />
|λ1| > |λ2| . . . |λn|<br />
e seja {v1, . . . , vn} uma base correspondente de autovetores. Assim, λ1 é o autovalor dominante de A e<br />
v1 um autovetor dominante. Quando A tem um autovalor dominante, este e um correspondente autovetor<br />
dominante podem ser encontrados através do método das potências, que consiste essencialmente em tomar<br />
um vetor v0 arbitrário e considerar as potências<br />
v0, Av0, A 2 v0, . . . , A k v0, . . . (6.4)<br />
É essencial que o vetor v0 possua uma componente na direção do autovetor dominante v1. Este não é a<br />
priori conhecido, mas se a escolha é arbitrária há grande probabilidade que isso ocorra na prática. De fato,<br />
para quase todas as escolhas de v0 devemos ter<br />
v0 =<br />
n<br />
i=1<br />
com a1 = 0; raramente uma escolha aleatória de v0 produzirá um vetor no subespaço 〈v2, . . . , vn〉. Temos<br />
então<br />
A k n<br />
v0 = aiλvi,<br />
donde escrevemos<br />
A k v0 = λ k 1<br />
<br />
a1v1 +<br />
i=1<br />
aivi<br />
n<br />
i=2<br />
ai<br />
λi<br />
Embora Ak <br />
v0<br />
→ ∞ se λ1 > 1 e Ak <br />
v0<br />
→ 0 se λ1 < 1, como<br />
λi<br />
λ1<br />
k → 0,<br />
para todo i = 2, . . . , n, segue que a sequência reescalada<br />
A k v0<br />
λ k 1<br />
→ a1v1<br />
converge para um autovetor dominante. No entanto, como o autovalor λ1 não é conhecido a priori, é<br />
impossível trabalhar com esta sequência. Portanto, trabalhamos ao invés com a sequência normalizada<br />
wk = Ak v0<br />
A k v0<br />
onde · é uma norma qualquer (por exemplo, a norma do máximo), que converge para um autovetor<br />
dominante unitário.<br />
λ1<br />
k<br />
vi<br />
<br />
.<br />
(6.5)
Rodney Josué Biezuner 106<br />
6.6 Proposição. Seja A ∈ Mn (C) uma matriz diagonalizável e assuma que o seu autovalor dominante λ1<br />
é simples. Dado um vetor arbitrário v0 ∈ C n que possui uma componente não-nula no autoespaço<br />
associado a λ1, defina a sequência<br />
onde<br />
Então<br />
w0 = v0,<br />
wk+1 = Awk<br />
.<br />
αk<br />
αk = Awk .<br />
wk → v1,<br />
αk → λ1,<br />
onde v1 é um autovetor dominante unitário. Além disso, a taxa assintótica de convergência é<br />
<br />
λ2 <br />
O <br />
.<br />
Se A é uma matriz simétrica real e definirmos<br />
então<br />
com taxa assintótica de convergência<br />
Prova: Temos<br />
λ1<br />
µk = 〈Awk, wk〉 ,<br />
O<br />
µk → λ1<br />
<br />
λ2<br />
λ1<br />
wk = Akv0 ,<br />
αk<br />
2<br />
<br />
<br />
<br />
<br />
.<br />
onde αk = α1 . . . αk é simplesmente o escalar apropriado que normaliza o vetor A k v0, isto é, αk = A k v0<br />
Escrevendo<br />
segue que<br />
Como<br />
wk = λk 1<br />
αk<br />
a1v1 +<br />
<br />
v0 =<br />
a1v1 +<br />
n<br />
i=2<br />
ai<br />
n<br />
aivi,<br />
i=1<br />
n<br />
i=2<br />
λi<br />
λ1<br />
ai<br />
k<br />
λi<br />
λ1<br />
k<br />
vi<br />
vi → a1v1<br />
e wk sendo uma sequência unitária possui uma subsequência convergente, concluímos que wk converge para<br />
um vetor unitário na direção de v1.<br />
Como<br />
Awk = αkwk,<br />
tomando o limite em ambos os lados concluímos que<br />
Av1 = (lim αk) v1,<br />
<br />
.<br />
<br />
.
Rodney Josué Biezuner 107<br />
logo lim αk = λ1.<br />
Finalmente, a taxa assintótica de convergência segue de<br />
<br />
n<br />
<br />
k <br />
λi <br />
ai vi<br />
<br />
<br />
n<br />
<br />
k λi <br />
n<br />
<br />
|ai| <br />
vi |ai| vi<br />
i=2<br />
λ1<br />
i=2<br />
λ1<br />
i=2<br />
λ2<br />
λ1<br />
<br />
<br />
<br />
<br />
k<br />
<br />
<br />
C (v0) <br />
<br />
O caso A simétrico segue do Corolário 6.3. <br />
Vemos que a velocidade de convergência do método das potências pode ser muito lenta se a diferença entre<br />
o maior e o segundo maior autovalores não for muito grande, uma situação frequentemente encontrada na<br />
prática. O método das potências funciona mesmo quando o autovalor dominante não é simples, desde que<br />
não existam outros autovalores de A diferentes do autovalor dominante que tenham o mesmo valor em<br />
módulo, isto é quando existe apenas um autovalor dominante (Exercício 6.1). É claro que o método não vai<br />
produzir uma base para o autoespaço dominante, apenas um autovetor deste autoespaço, correspondente ao<br />
vetor unitário na direção da componente do vetor inicial. Quando existem vários autovalores dominantes, o<br />
método não pode ser aplicado. Em particular, o método não pode ser aplicado a matrizes reais que possuem<br />
um autovalor dominante complexo, já que neste caso o seu conjugado também é um autovalor dominante.<br />
Esta situação ocorre também com matrizes ortogonais, já que todos os autovalores de uma matriz ortogonal<br />
tem norma 1.<br />
Se A não é diagonalizável, o autovalor dominante de A ainda pode ser encontrado pelo método das<br />
potências (desde que não haja mais de um autovalor dominante, como observado no parágrafo anterior),<br />
como discutido no Exercício 6.2.<br />
6.2.1 Método das Potências Inverso<br />
O método das potência permite apenas encontrar o autovalor dominante. Para obter o menor autovalor<br />
de A, podemos aplicar o método das potências à matriz inversa A −1 , pois se λ é o menor autovalor de A,<br />
1/λ será o maior autovalor de A −1 . Este método é chamado método das potências inverso ou iteração<br />
inversa (quando o método das potências é chamado iteração direta).<br />
6.2.2 Método das Potências com Deslocamento<br />
Teoricamente, o método das potências poderia ser aplicado diretamente para encontrar todos os autovalores<br />
de A. Por exemplo, para encontrar λ2 e um autovetor associado, uma vez encontrado o autovetor associado<br />
ao primeiro autovalor, bastaria tomar um novo vetor inicial que não tivesse componentes na direção do<br />
autovetor dominante (ou autoespaço dominante; veja Exercício 6.1), mas apenas na direção de v2. Isso seria<br />
fácil de conseguir se os autovetores de A fosse ortogonais (por exemplo, se A é simétrica): bastaria tomar<br />
um vetor inicial aleatório v0, com componentes na direção de todos os autovetores de A, e subtrair dele a<br />
sua componente ortogonal na direção do autovetor dominante. Na notação da seção anterior, bastaria tomar<br />
v0 = v0 − a1v1 =<br />
n<br />
aivi,<br />
e proceder desta maneira até encontrar todos os autovalores de A (desde que não haja autovalores distintos<br />
mas iguais em módulo). Na prática isso não funciona, porque erros de arredondamento apareceriam<br />
imediatamente:<br />
n<br />
Av0 = ελ1v1 + aiλivi;<br />
ao invés de obter λ2 e um autovetor associado, voltaríamos a obter λ1 e um autovetor dominante.<br />
Para encontrar os demais autovalores da matriz A, observe que se A tem autovalores λ1, . . . , λn, então<br />
A − σI tem autovalores λ1 − σ, . . . , λn − σ. O escalar σ é chamado um deslocamento. Podemos então aplicar<br />
i=2<br />
i=2<br />
λ2<br />
λ1<br />
<br />
<br />
<br />
<br />
k<br />
.
Rodney Josué Biezuner 108<br />
o método das potências à matriz (A − σI) −1 , pois os autovalores de A são<br />
de modo que o autovalor dominante de (A − σI) −1 é<br />
1 1<br />
, . . . ,<br />
λ1 − σ λn − σ ,<br />
1<br />
λi − σ<br />
onde λi é o autovalor de A mais próximo de σ. Assim, podemos encontrar todos os autovalores de A<br />
variando o deslocamento σ. Este método é chamado método das potências com deslocamento ou<br />
iteração com deslocamento. Ele é particularmente eficiente quando possuímos boas estimativas para os<br />
autovalores de A (estimativas grosseiras podem ser obtidas através do teorema dos discos de Gershgorin).<br />
Como já observado anteriormente, a convergência do método das potências direto será lenta quando λ1 e<br />
λ2 forem muito próximos. No caso do método das potências com deslocamento, uma escolha cuidadosa do<br />
deslocamento σ pode aumentar substancialmente a velocidade de convergência. Com efeito, observe que<br />
neste caso temos (para simplificar a compreensão, novamente supomos A diagonalizável e, adicionalmente,<br />
que todos os autovalores são simples):<br />
donde<br />
<br />
<br />
<br />
<br />
<br />
<br />
(A − σI) −1 <br />
k 1<br />
v0 =<br />
λi − σ<br />
(A − σI) −1 k<br />
v0 −<br />
1<br />
λi − σ<br />
⎡<br />
k ⎢<br />
⎣aivi +<br />
k<br />
aivi<br />
de modo que a taxa assintótica de convergência é dada por<br />
<br />
λi<br />
<br />
− σ <br />
<br />
− σ <br />
λi<br />
<br />
<br />
<br />
<br />
<br />
n<br />
j=1<br />
j=i<br />
ai<br />
k λi − σ<br />
λj − σ<br />
n<br />
<br />
λi<br />
|ai| <br />
− σ <br />
<br />
λj<br />
− σ <br />
j=1<br />
j=i<br />
⎛<br />
⎜<br />
⎜<br />
⎝<br />
k<br />
vj<br />
|vj|<br />
⎤<br />
⎥<br />
⎦<br />
⎞<br />
n<br />
<br />
⎟ λi<br />
|ai| |vj| ⎟ <br />
− σ <br />
<br />
⎠ − σ <br />
onde λi é o autovalor mais próximo a λi. Tomando o deslocamento σ significantemente mais próximo de λi<br />
do que de λi , podemos obter<br />
<br />
λi<br />
<br />
− σ <br />
<br />
− σ ≪ 1,<br />
λi<br />
acelerando a convergência do método.<br />
É importante observar que tanto na iteração inversa, quanto na iteração com deslocamento, em nenhum<br />
momento é necessário calcular a inversa A−1 explicitamente, o que consumiria muito tempo e recursos.<br />
Embora as iteradas satisfazem<br />
wk+1 = 1<br />
(A − σI) −1 wk,<br />
basta resolver o sistema<br />
σk+1<br />
(A − σI) wk+1 = wk<br />
j=1<br />
j=i<br />
λi<br />
k<br />
(6.6)
Rodney Josué Biezuner 109<br />
e então tomar<br />
wk+1 = 1<br />
wk+1.<br />
σk+1<br />
Além disso, apesar de A − λI ser uma matriz singular quando λ é um autovalor de A, e portanto tomar um<br />
deslocamento σ muito próximo a λ produz uma matriz A − σI muito mal condicionada, isso não atrapalha<br />
a eficência da iteração com deslocamento em nada (veja [Parlett]).<br />
Finalmente, notamos que se os autovalores de uma matriz já são conhecidos, o método padrão para<br />
encontrar os autovetores de A é o método das potências com deslocamento, já que os deslocamentos podem<br />
ser escolhido arbitrariamente próximos dos autovalores, tornando a convergência muito rápida.<br />
6.2.3 Iteração do Quociente de Rayleigh<br />
Quando a matriz A é simétrica, combinando a iteração inversa e o quociente de Rayleigh é possível obter<br />
um método extremamente rápido, de tal forma que depois de 2 ou 3 passos o número de dígitos corretos no<br />
autovalor triplica a cada iteração. A idéia é não manter o valor de deslocamento constante, mas atualizá-lo<br />
a cada iteração com uma aproximação melhor do autovalor dada pelo quociente de Rayleigh. O algoritmo<br />
para a iteração do quociente de Rayleigh é o seguinte:<br />
Iteração do Quociente de Rayleigh<br />
Atribua v 0 ;<br />
v 0 ← v 0 / v 0 ;<br />
λ 0 = 〈Av0, v0〉 ;<br />
⎡<br />
Para k = 0, 1, 2, . . ., até limite de tolerância<br />
⎣<br />
Resolva A − λ k I w = v k ;<br />
v k+1 ← w/ w ;<br />
λ k+1 ← Av k+1 , v k+1 ;<br />
fim do laço<br />
Vamos verificar que a convergência da iteração de Rayleigh é cúbica:<br />
6.7 Proposição. Seja A ∈ Mn (R) uma matriz simétrica e assuma que o autovalor λi é simples. Dado um<br />
vetor arbitrário v 0 ∈ R n que possui uma componente não-nula no autoespaço associado a λi, tome<br />
λ 0 = Av 0 , v 0 e defina a sequência<br />
v k+1 =<br />
<br />
<br />
A − λ k I −1 v k<br />
(A − λ k I) −1 v k<br />
λ k+1 = Av k+1 , v k+1 .<br />
Então v k converge para um autovetor unitário vi associado a λi e λ k → λi com uma taxa de con-<br />
vergência que satisfaz<br />
<br />
v k+1 − vi<br />
e <br />
λ k+1 <br />
− λi<br />
= O<br />
Prova: Pelo Corolário 6.3,<br />
<br />
λ k − λi<br />
<br />
<br />
,<br />
<br />
v k<br />
= O − (±vi) 3<br />
<br />
= O<br />
λ k <br />
− λi<br />
3<br />
.<br />
v k <br />
− vi<br />
2<br />
.<br />
Pelas estimativas para a iteração inversa com deslocamento obtidas na subseção anterior, temos<br />
<br />
v k+1 <br />
λi<br />
− vi<br />
C <br />
− λ<br />
<br />
k<br />
<br />
<br />
v <br />
k <br />
− vi<br />
.<br />
λi − λk
Rodney Josué Biezuner 110<br />
Como λk está próximo de λi, podemos substituir λi − λk por λi<br />
<br />
v k+1 <br />
− vi<br />
= O λ k <br />
− λi<br />
v k <br />
− vi<br />
= O<br />
<br />
− λi<br />
no denominador, de modo que<br />
v k+1 <br />
− vi<br />
3<br />
.<br />
As constantes implícitas no símbolo O são uniformes para vizinhanças suficientemente pequenas de λi e vi.<br />
Para obter a taxa de convergência para os autovalores, use o resultado obtido e o Corolário 6.3 duas vezes<br />
escrevendo <br />
λ k+1 v − λi<br />
= O<br />
k+1 <br />
− vi<br />
2<br />
v = O<br />
k <br />
− vi<br />
6<br />
λ = O<br />
k <br />
− λi<br />
3<br />
.<br />
<br />
Este resultado vale mesmo quando o autovalor não é simples (Exercício 6.3).<br />
No caso em que A não é simétrica, a iteração do quociente de Rayleigh ainda pode ser usada, mas<br />
a convergência é apenas quadrática (veja [Watkins]). Para uma análise mais rigorosa da convergência do<br />
método das potências e todas as suas variações, inclusive a iteração do quociente de Rayleigh, veja [Parlett].<br />
6.3 Algoritmo QR<br />
O algoritmo QR (não confundir com a decomposição QR) é o algoritmo preferido para encontrar todos os<br />
autovalores de uma matriz não-simétrica densa. O algoritmo básico QR pode ser descrito da seguinte forma.<br />
Seja A ∈ Mn (C) uma matriz cujos autovalores queremos calcular. Começando com<br />
A0 = A, (6.7)<br />
definimos iterativamente uma sequência de matrizes A1, A2, . . ., recursivamente da seguinte maneira. Primeiro<br />
fazemos a decomposição QR da matriz obtida no passo anterior:<br />
Em seguida definimos<br />
Observe que, como<br />
Ak−1 = QkRk. (6.8)<br />
Ak = RkQk. (6.9)<br />
Ak = Q ∗ kAk−1Qk, (6.10)<br />
todas as matrizes da sequência, que denominaremos sequência QR, possuem os mesmos autovalores. Veremos<br />
mais tarde que o algortimo QR é simplesmente uma implementação de um procedimento conhecido como<br />
iteração simultânea, o qual é uma extensão natural do método das potências. Consequentemente, pode ser<br />
mostrado que a sequência QR converge, sob certas condições, para uma matriz triangular superior na forma<br />
⎡<br />
⎤<br />
λ1 ∗ · · · ∗<br />
⎢<br />
. ..<br />
. ⎥<br />
λ2 ⎢<br />
. ⎥<br />
⎢<br />
⎣<br />
. ⎥<br />
.. ∗ ⎦<br />
onde os autovalores da diagonal principal aparecem em ordem descrescente de magnitude. Em particular,<br />
como as matrizes da sequência QR são semelhantes, se A é hermitiana então a sequência converge para uma<br />
matriz diagonal.<br />
O algoritmo básico QR é ineficiente para uso prático. Cada decomposição QR custa 4<br />
3n3 flops e cada<br />
multiplicação matricial custa O n3 flops. Além disso, a convergência para a forma triangular é muito<br />
vagarosa, de forma que um número muito grande de passos é necessário antes que se atinja um limite de<br />
tolerância razoável. No que se segue, veremos procedimentos para diminuir os custos das decomposições<br />
QR e aumentar a velocidade de convergência do método. O primeiro procedimento, reduzir a matriz à sua<br />
λn
Rodney Josué Biezuner 111<br />
forma de Hessenberg, reduz cada passo no algoritmo QR a um custo de O n 2 flops para uma matriz geral<br />
e O (n) para uma matriz hermitiana. O segundo procedimento, deflação e deslocamento usando o quociente<br />
de Rayleigh, reduz o número de iterações necessárias para produzir convergência na precisão da máquina a<br />
O (n) iterações. Assim o custo total do algoritmo QR na sua implementação mais eficiente será O n 3 flops<br />
para matrizes gerais e O n 2 flops para matrizes hermitianas.<br />
6.3.1 Redução de uma matriz a sua forma de Hessenberg<br />
O custo das decomposições QR é reduzido drasticamente se reduzirmos a matriz A à sua forma de Hessenberg<br />
antes de começar as iterações QR, já que o custo de uma decomposição QR para matrizes de Hessenberg<br />
é O n 2 ; se além disso a matriz for Hermitiana, ou seja, tridiagonal, o custo é apenas O (n). Também o<br />
custo da multiplicação, de uma matriz de Hessenberg superior por uma matriz triangular, é reduzido para<br />
O n 2 . Essa redução funciona porque o algoritmo QR preserva a forma de Hessenberg, de modo que todas<br />
as matrizes da sequência QR são de Hessenberg assim como os fatores Q:<br />
6.8 Proposição. Seja H ∈ Mn (C) uma matriz de Hessenberg superior. Então toda matriz da sequência<br />
QR é também uma matriz de Hessenberg superior. Além disso, os fatores Qk da decomposição Ak−1 =<br />
QkRk também são Hessenberg superiores.<br />
Prova: Assuma A invertível, de modo que todas as matrizes da sequência QR são invertíveis; em particular,<br />
os fatores Qk, Rk também são invertíveis. Suponha por indução que Ak−1 é uma matriz de Hessenberg<br />
superior. Seja Ak−1 = QkRk uma decomposição QR de Ak−1. Afirmamos que<br />
Qk = Ak−1R −1<br />
k<br />
é uma matriz de Hessenberg superior. De fato, como a inversa de uma matriz triangular superior é uma<br />
matriz triangular superior, Qk é o produto de uma matriz de Hessenberg superior e de uma matriz triangular<br />
superior, logo também é uma matriz de Hessenberg superior. Segue que Ak = RkQk é o produto de uma<br />
matriz triangular superior e uma matriz de Hessenberg superior, logo também é uma matriz de Hessenberg<br />
superior.<br />
O caso geral, em que A é singular, é um pouco mais difícil. De fato, não é verdade que toda decomposição<br />
QR de uma matriz de Hessenberg superior vai produzir um fator Q Hessenberg superior. Mas é possível<br />
provar que é sempre possível escolher a decomposição QR de tal forma que o fator Q produzido é Hessenberg<br />
superior (veja [Watkins]). <br />
Antes de descrever o algoritmo que transforma uma matriz geral em uma matriz de Hessenberg superior<br />
(o custo da transformação será de 10<br />
3 n3 flops) vamos introduzir o conceito de refletores de Householder que<br />
são usados para introduzir zeros abaixo da subdiagonal inferior.<br />
No que se segue assumiremos sempre a norma vetorial como sendo a norma euclidiana.<br />
6.9 Definição. Seja u ∈ R n um vetor unitário. Então o operador Q : R n −→ R n definido por<br />
Q = I − 2uu T<br />
é chamado um refletor de Householder (ou simplesmente um refletor).<br />
A proposição a seguir resume as propriedades que caracterizam uma reflexão:<br />
6.10 Proposição. Sejam u ∈ R n um vetor unitário e Q = I − 2uu T um refletor. Então<br />
(i) Qu = −u.<br />
(ii) Qv = v para todo v ⊥ u.<br />
(iii) Q = Q T ( Q é simétrico).<br />
(6.11)
Rodney Josué Biezuner 112<br />
(iv) Q T = Q −1 ( Q é ortogonal).<br />
(v) Q −1 = Q ( Q é uma involução).<br />
Prova: (i) Usando o fato que u T u = 〈u, u〉 = 1, temos<br />
(ii) Usando o fato que u T v = 〈u, v〉 = 0, temos<br />
(iii)<br />
(iv),(v) Usando (iii) segue que<br />
Qu = u − 2 uu T u = u − 2u u T u = u − 2u = −u<br />
Qv = v − 2 uu T v = u − 2u u T v = u − 0 = u.<br />
Q T = I − 2uu T T = I − 2 u T T u T = I − 2uu T = Q.<br />
QQ T = QQ = I − 2uu T I − 2uu T = I − 4uu T + 4uu T uu T<br />
= I − 4uu T + 4u u T u u T = I − 4uu T + 4uu T<br />
= I.<br />
<br />
Em outras palavras Q = I − 2uu T leva cada vetor x ∈ R n em sua reflexão com relação ao hiperplano<br />
H = {v : 〈u, v〉 = 0} ortogonal a u.<br />
A possibilidade do uso de refletores para criar zeros em matrizes segue do seguinte resultado:<br />
6.11 Teorema. Sejam x, y ∈ R n tais que x = y mas x = y. Então existe um único refletor tal que<br />
Qx = y.<br />
Prova: (Existência) Para encontrar um vetor u tal que I − 2uu T x = y, primeiro notamos que o hiperplano<br />
de reflexão bisecta o ângulo entre x e y, de modo que o vetor x − y deve ser perpendicular a este plano.<br />
Portanto, nosso candidato é<br />
u =<br />
De fato, de (i) e (ii) da proposição anterior, temos<br />
pois<br />
Logo,<br />
<br />
x − y<br />
. (6.12)<br />
x − y<br />
Q (x − y) = y − x,<br />
Q (x + y) = x + y,<br />
〈x − y, x + y〉 = 〈x, x〉 + 〈x, y〉 − 〈y, x〉 − 〈y, y〉 = x 2 − y 2 = 0.<br />
Qx = 1<br />
1<br />
[Q (x − y) + Q (x + y)] = [y − x + x + y] = y.<br />
2 2<br />
6.12 Corolário. Seja x ∈ Rn um vetor não nulo. Então existe um refletor Q tal que<br />
⎡<br />
⎢<br />
Q ⎢<br />
⎣<br />
x1<br />
x2<br />
.<br />
.<br />
⎤<br />
⎥<br />
⎦ =<br />
⎡<br />
∗<br />
⎢ 0<br />
⎢ .<br />
⎣ .<br />
0<br />
⎤<br />
⎥<br />
⎦ .<br />
xn
Rodney Josué Biezuner 113<br />
Prova: Escolha y = (± x , 0, . . . , 0) no teorema anterior, com o sinal escolhido de tal forma a garantir que<br />
x = y. <br />
No caso complexo, basta tomar<br />
Q = I − 2uu ∗<br />
(6.13)<br />
e temos resultados análogos, bastando substituir simétrico ortogonal por hermitiano unitário.<br />
Vamos agora descrever o algoritmo para reduzir uma matriz geral A à forma de Hessenberg. Cada passo<br />
introduz os zeros nas posições desejadas de cada coluna, da primeira até a última, em um total de n−2 passos<br />
(já que evidentemente não há necessidade de transformar as últimas 2 colunas da matriz para colocá-la na<br />
forma de Hessenberg). Primeiro faça uma partição por blocos de A na forma<br />
<br />
a11 c<br />
A =<br />
T <br />
b A<br />
Seja Q1 : Fn−1 −→ Fn−1 um refletor (onde F = R ou C) tal que<br />
⎡ ⎤<br />
τ1<br />
⎢<br />
Q1b<br />
⎢ 0 ⎥<br />
= ⎢<br />
⎣ .<br />
⎥<br />
. ⎦<br />
0<br />
onde |τ1| = b e τ1b1 < 0. Defina o refletor Q1 : F n −→ F n<br />
e tome<br />
Então<br />
T 1 0<br />
Q1 =<br />
0 Q1<br />
<br />
⎡<br />
⎢<br />
A1/2 = Q1A = ⎢<br />
⎣<br />
A1 = Q1AQ −1<br />
1 = Q1AQ1 = A 1/2Q1 =<br />
⎡<br />
⎢<br />
⎣<br />
a11<br />
τ1<br />
0<br />
.<br />
0<br />
a11<br />
τ1<br />
0<br />
.<br />
.<br />
0<br />
c T Q1<br />
c T<br />
Q1 A<br />
Q1 A Q1<br />
⎤<br />
⎤<br />
⎥<br />
⎦<br />
⎡<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎥ ⎢<br />
⎥ = ⎢<br />
⎥ ⎢<br />
⎦ ⎣<br />
a11 ∗ · · · ∗<br />
Este é o fim do primeiro passo: a matriz A1, semelhante à matriz A através de uma matriz ortogonal, tem<br />
zeros na primeira coluna abaixo do primeiro elemento da subdiagonal.<br />
O segundo passo cria zeros na segunda coluna de A1, isto é, na primeira coluna de A1, nas posições<br />
desejadas. Assim, usamos um refletor Q2 : Fn−2 −→ Fn−2 exatamente como no primeiro passo, exceto que<br />
usamos A1 ao invés de A, e definimos<br />
⎡<br />
⎢<br />
Q2 = ⎢<br />
⎣<br />
1 0<br />
0 1<br />
0 0<br />
. .<br />
. .<br />
0 0<br />
0 · · · 0<br />
0 · · · 0<br />
Q2<br />
⎤<br />
⎥<br />
⎦<br />
τ1<br />
0<br />
.<br />
0<br />
A1<br />
⎤<br />
⎥ .<br />
⎥<br />
⎦
Rodney Josué Biezuner 114<br />
e<br />
Daí,<br />
⎡<br />
⎢<br />
A3/2 = Q2A1 = ⎢<br />
⎣<br />
a11 ∗ ∗ · · · ∗<br />
τ1 ∗ ∗ · · · ∗<br />
0<br />
.<br />
.<br />
0<br />
A2 = Q2A1Q −1<br />
2 = Q2A1Q2 = A 3/2Q2 =<br />
τ2<br />
.<br />
.<br />
0<br />
⎡<br />
⎢<br />
⎣<br />
Q2 A1<br />
⎤<br />
⎥ .<br />
⎥<br />
⎦<br />
a11 ∗ ∗ · · · ∗<br />
τ1<br />
0<br />
∗ ∗ · · · ∗<br />
.<br />
0<br />
τ2<br />
.<br />
0<br />
Q2 A1 Q2<br />
Procedemos desta forma em n−2 passos até encontrar uma matriz de Hessenberg An−2 semelhante à matriz<br />
original A através de uma matriz ortogonal Q = Qn−2 . . . Q2Q1.<br />
6.3.2 Aceleração do algoritmo QR<br />
Ordene os autovalores de A na forma<br />
|λ1| |λ2| . . . |λn| .<br />
Considere uma sequência (Ak) de iteradas do algoritmo QR tal que cada matriz Ak é de Hessenberg superior.<br />
Denote<br />
⎡<br />
⎤<br />
⎢<br />
Ak = ⎢<br />
⎣<br />
ak 11 ak 12 ak 13 ak 14 . . . . . . ak 1n<br />
ak 21 ak 22 ak 23 ak 24 . . . . . . ak 2n<br />
0 ak 32 ak 33 ak 34 . . . . . . ak 3n<br />
0 0 ak 43 ak . ..<br />
44<br />
. . . ak 4n<br />
0 0 0<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
.<br />
. ..<br />
. ..<br />
. ..<br />
. ..<br />
. ..<br />
. ..<br />
. ..<br />
. ..<br />
. ..<br />
.<br />
.<br />
.<br />
.<br />
. .. a k n−1,n<br />
0 0 0 0 . . . 0 a k n,n−1 a k nn<br />
No algoritmo QR as entradas subdiagonais (ou a maioria delas) convergem para 0 quando n → ∞. Mais<br />
precisamente, como veremos mais tarde, se<br />
então<br />
|λi| > |λi+1| ,<br />
a k i+1,i → 0 com taxa de convergência<br />
<br />
<br />
<br />
<br />
λi+1<br />
λi<br />
⎥ .<br />
⎥<br />
⎦<br />
<br />
<br />
<br />
, i = 1, . . . , n − 1.<br />
Portanto, uma maneira de acelerar a convergência do algoritmo é decrescer os quocientes |λi+1/λi|. Um modo<br />
de fazer isso é através do uso de um deslocamento, como no método das potências. A matriz deslocada A−σI<br />
tem autovalores<br />
|λ1 − σ| |λ2 − σ| . . . |λn − σ|<br />
e as taxas de convergência associadas são<br />
<br />
λi+1<br />
<br />
− σ <br />
<br />
λi − σ , i = 1, . . . , n − 1.<br />
⎤<br />
⎥ .<br />
⎥<br />
⎦
Rodney Josué Biezuner 115<br />
Assim, se escolhermos σ suficientemente próximo de um autovalor arbitrário que chamaremos λn após reordenar<br />
os índices (e assumindo λn−1 = λn), aplicando o algoritmo QR a A − σI observaremos que a<br />
(A − σI) k<br />
n,n−1 converge para 0 rapidamente. Uma vez que (A − σI)k n,n−1 seja suficientemente pequeno, esta<br />
entrada pode ser considerado 0 na prática e, adicionando σI à iterada (A − σI) k do algoritmo QR, obtemos<br />
⎡<br />
⎢<br />
Ak = ⎢<br />
⎣<br />
Ak<br />
0<br />
.<br />
0<br />
0 · · · 0 a k nn<br />
com a k nn uma boa aproximação para λn. Os autovalores restantes de Ak são os autovalores de Ak. Podemos<br />
então aplicar o algoritmo QR à matriz Ak, que tem ordem um a menos que a ordem de A. Continuando<br />
desta forma, usaremos o algoritmo QR em matrizes cada vez menores até obter todos os autovalores de A.<br />
Este processo, em que o tamanho da matriz é reduzido cada vez que um autovalor é encontrado, é chamado<br />
deflação.<br />
O próprio algoritmo QR pode ser usado para obter os valores para os deslocamentos σ, já que depois<br />
de algumas iterações a matriz está próxima da forma triangular e os valores na diagonal principal estão<br />
próximos aos autovalores de A. De fato, as entradas na diagonal principal são quocientes de Rayleigh, já<br />
que<br />
a k ii = e T i Akei = 〈Akei, ei〉 .<br />
Assim, o deslocamento pode ser modificado em cada iteração, como no método da iteração do quociente de<br />
Rayleigh, usando-se<br />
de modo que <br />
λi+1 − σk<br />
λi − σk<br />
σk = a k nn<br />
⎤<br />
⎥<br />
⎦ .<br />
<br />
<br />
<br />
→ 0 quando k → ∞<br />
e obtemos uma taxa de convergência melhor que linear. De fato, veremos que, como no método da iteração<br />
do quociente de Rayleigh, este algoritmo QR com deslocamento dado pelo quociente de Rayleigh<br />
possui convergência quadrática em geral e cúbica para matrizes hermitianas.<br />
Na prática, depois de apenas uma iteração QR já é seguro usar σ1 = a 1 nn. O único efeito dessa escolha é<br />
que a ordem dos autovalores obtidos no processo não é necessariamente crescente.<br />
O deslocamento dado pelo quociente de Rayleigh pode falhar às vezes, por exemplo quando o deslocamento<br />
obtido está a mesma distância de dois autovalores distintos, fazendo com que o método tenha dificuldade<br />
de “decidir” qual autovalor aproximar. Para evitar esta situação, é preferível usar o deslocamento de<br />
Wilkinson, que é definido como sendo o autovalor da submatriz 2 × 2<br />
<br />
a k n−1,n−1<br />
a k n,n−1<br />
ak n−1,n<br />
ak nn<br />
que está mais próximo de a k nn. Ele é fácil de calcular porque é a raiz de um polinômio do segundo grau. É<br />
possível provar para matrizes simétricas tridiagonais o algoritmo QR com deslocamento de Wilkinson sempre<br />
converge. Além disso, como estamos usando maior informação para obter o deslocamento, a taxa convergência<br />
no mínimo igual à do algoritmo QR usando o deslocamento dado pelo quociente de Rayleigh e muitas vezes<br />
melhor. Em geral, existem apenas casos muito especiais de matrizes para as quais o deslocamento de<br />
Wilkinson falha. A experiência tem mostrado que são necessárias apenas 5 ou 9 iterações do algoritmo<br />
QR para obter uma aproximação satisfatória para o primeiro autovalor e de 3 a 5 iterações em média para<br />
os autovalores restantes (às vezes menos); para matrizes hermitianas, 2 ou 3 iterações em média bastam.<br />
O deslocamento de Wilkinson tem a vantagem inicial de que pode ser usado para aproximar autovalores<br />
complexos de matrizes reais, já que ele pode ser um número complexo, enquanto que o quociente de Rayleigh
Rodney Josué Biezuner 116<br />
de uma matriz real sempre é um valor real. Para maiores detalhes sobre as informações contidas este parágrafo<br />
veja [Watkins].<br />
Por fim, às vezes ocorre durante as iterações do algoritmo QR que um elemento da subdiagonal inferior<br />
localizado próximo ao meio da matriz é suficientemente próximo de 0. Neste caso a matriz Ak tem a forma<br />
em blocos <br />
B11 B12<br />
0 B22<br />
e o problema pode ser quebrado em dois, aplicando o algoritmo QR aos blocos B11 e B22 separadamente.<br />
Como o custo de uma iteração QR de Hessenberg é O n 2 , dividindo o tamanho da matriz pela metade<br />
implica numa diminuição do custo por um fator de 4.<br />
6.3.3 Implementação prática do algoritmo QR<br />
Veja [Watkins].<br />
6.4 Iteração de subespaços e iteração simultânea<br />
No método das potências ou iteração direta, ao invés de iterarmos apenas um vetor, podemos considerar a<br />
iteração de um subespaço inteiro: se S ⊂ F n (onde F = R ou C), consideramos as iteradas<br />
S, AS, A 2 S, . . .<br />
Cada iterada A k S é um subespaço de F n que pode ser caracterizado por<br />
A k S = A k x : x ∈ S .<br />
Como no método da iteração direta as iteradas convergem para o autovetor dominante, esperamos que estes<br />
subespaços iterados convirjam para um autoespaço. Para verificar isso, precisamos definir uma noção de<br />
distância entre subespaços vetoriais.<br />
6.13 Definição. Dados dois subespaços S, T ⊂ F n , a distância entre eles é definida por<br />
dist (S, T ) = sen θ<br />
onde θ é o maior ângulo principal entre S e T . Dizemos que uma sequência de subespaços {Sk}<br />
converge para S se dist (Sk, S) → 0 e denotamos este fato por Sk → S.<br />
6.14 Teorema. Seja A ∈ Mn (F) diagonalizável com autovalores<br />
|λ1| |λ2| . . . |λn|<br />
e uma correspondente base de autovetores {v1, . . . , vn}. Suponha que |λm| > |λm+1| para algum m.<br />
Sejam<br />
Tm = 〈v1, . . . , vm〉 ,<br />
Um = 〈vm+1, . . . , vn〉 .<br />
Seja S um subespaço vetorial de dimensão m tal que S ∩ Um = {0}. Então existe uma constante C<br />
tal que<br />
dist A k <br />
λm+1<br />
<br />
S, Tm C <br />
<br />
Em particular, A k S → Tm linearmente com taxa de convergência |λm+1/λm|.<br />
λm
Rodney Josué Biezuner 117<br />
Prova: Uma demonstração rigorosa deste teorema está além dos propósitos deste curso. Daremos apenas<br />
algumas idéias para justificar o resultado.<br />
Em primeiro lugar, observe que dim A k S = m para todo k. De fato, temos<br />
ker A k ⊂ Um. (6.14)<br />
Isso pode ser facilmente visto escrevendo os vetores em coordenadas: dado um vetor v = n<br />
i=1 aivi, temos<br />
A k v =<br />
n<br />
i=1<br />
aiλ k i vi,<br />
de modo que A k v = 0 implica a1 = . . . = am = 0 pois v1, . . . , vn são linearmente independentes e λ1, . . . , λm<br />
são não nulos, já que |λ1| . . . |λm| > |λm+1| 0. Daí, (6.14) juntamente com dim S = m e S ∩Um = {0}<br />
implicam imediatamente que dim A k S = m para todo k.<br />
Agora, seja v ∈ S um vetor não nulo. Escrevendo<br />
v =<br />
n<br />
i=1<br />
segue de S∩Um = {0} que pelo menos um dos escalares a1, . . . , am é não nulo (assim, a condição S∩Um = {0}<br />
é equivalente a exigir no método das potências que o vetor inicial tenha uma componente na direção do<br />
autovetor dominante; aqui exigimos que cada vetor do subespaço tenha uma componente no autoespaço<br />
dominante). Temos<br />
A k v<br />
λ k m<br />
=<br />
m<br />
i=1<br />
ai<br />
λi<br />
λm<br />
k<br />
vi +<br />
aivi<br />
n<br />
i=m+1<br />
ai<br />
λi<br />
λm<br />
k<br />
vi.<br />
As componentes do vetor “normalizado” Akv/λk m no subespaço Um tendem a zero quando k aumenta com<br />
taxa de convergência |λm+1/λm| ou melhor (dependendo dos valores de am+1, . . . , an), consequentemente o<br />
vetor limite está no subespaço Tm. Como cada subsespaço AkS tem dimensão m, o limite dos subespaços<br />
não pode ser um subespaço próprio de Tm. <br />
Observe que a condição S ∩ Um = {0} ocorre quase sempre para uma escolha aleatória do subespaço mdimensional<br />
S (por exemplo, no caso de R3 a escolha aleatória de uma reta e um plano quase sempre resultará<br />
que o único ponto em que eles se interceptam é a origem).<br />
Para fazer a iteração de subespaços na prática, deve-se escolher uma base para S e iterar todos os<br />
vetores desta base simultaneamente. No processo de iterar o subespaço, devemos obviamente ortonormalizar<br />
a base do subespaço AkS em cada passo da iteração, usando um algoritmo robusto tal como o MGS com<br />
reortogonalização. Este processo todo é chamado iteração simultânea.<br />
Em notação matricial, a iteração simultânea pode ser descrita da seguinte maneira. Seja S um subespaço<br />
de dimensão m com base v1, . . . , vm. Utilizando um algoritmo robusto, encontramos uma base ortonormal<br />
q1, . . . , qm. Formamos então uma matriz inicial n × m com colunas ortonormais:<br />
<br />
.<br />
Em cada passo k da iteração, calculamos<br />
Q0 = q 0 1 · · · q 0 m<br />
Bk = AQk<br />
e fazemos a decomposição QR de Bk para obter uma base ortonormal para o subespaço A k S: se<br />
Bk = Qk+1Rk+1,<br />
então as colunas ortonormais de Qk+1 formam uma base ortonormal para A k S. No limite, teremos que as<br />
colunas das matrizes Qk convergem para os m autovetores dominantes (nas condições do teorema anterior).
Rodney Josué Biezuner 118<br />
6.4.1 Equivalência entre o Algoritmo QR e Iteração Simultânea<br />
O algoritmo QR puro é equivalente à iteração simultânea aplicada à matriz identidade, isto é, tomando<br />
Q0 = I. Ou seja, se na iteração simultânea<br />
⎡<br />
Q0 = I,<br />
⎣ Bk−1 = AQk−1, (6.15)<br />
Bk−1 = QkRk, definirmos<br />
e, reciprocamente, no algoritmo QR ⎡<br />
definirmos<br />
segue que<br />
Ak = Q ∗<br />
kAQ k, (6.16)<br />
Rk = Rk · · · R1<br />
⎣ A0 = A,<br />
Ak−1 = QkRk,<br />
Ak = RkQk,<br />
(6.17)<br />
(6.18)<br />
Qk = Q1 · · · Qk, (6.19)<br />
Rk = Rk · · · R1<br />
(6.20)<br />
Ak = Ak, (6.21)<br />
Q k = Qk, (6.22)<br />
Rk = Rk. (6.23)<br />
De fato, afirmamos que as matrizes Q k, Rk e as matrizes Qk, Rk são ambas caracterizadas como sendo a<br />
decomposição QR (portanto única) da matriz A k , a k-ésima potência de A:<br />
A k = Q kRk = Qk Rk. (6.24)<br />
A verificação de todos estes fatos segue por indução. O caso k = 0 é imediato, já que B0 = A. Como<br />
hipótese de indução, assumimos<br />
donde<br />
Daí, no caso da iteração simultânea temos<br />
enquanto que no algoritmo QR temos<br />
Ak−1 = Ak−1,<br />
A k−1 = Qk−1 Rk−1 = Q k−1Rk−1,<br />
Q k−1 = Qk−1,<br />
Rk−1 = Rk−1.<br />
A k = AA k−1 = AQ k−1Rk−1 = Q kRkRk−1 = Q kRk,<br />
A k = AA k−1 = A Qk−1 Rk−1 = Qk−1Ak−1 Rk−1 = Qk−1QkRk Rk−1 = Qk Rk.
Rodney Josué Biezuner 119<br />
Portanto,<br />
donde<br />
A k = Q kRk = Qk Rk<br />
Q k = Qk,<br />
Rk = Rk.<br />
Finalmente, pelo algoritmo QR podemos escrever (como em (6.10))<br />
donde, pela hipótese de indução,<br />
Ak = Q ∗ kAk−1Qk,<br />
Ak = Q ∗ kAk−1Qk = Q ∗ kQ ∗<br />
k−1AQ k−1Qk = Q ∗ k Q ∗ k−1A Qk−1Qk<br />
= Q ∗ kQ ∗ k−1 · · · Q ∗ 1AQ1 · · · Qk−1Qk = Q ∗ kA Qk<br />
= Ak.<br />
6.4.2 Convergência do Algoritmo QR<br />
Por simplicidade considere A simétrica. A relação<br />
A k = Qk Rk = (Q1 · · · Qk) (Rk · · · R1)<br />
explica porque o algoritmo QR encontra os autovetores de A: ele constrói bases ortonormais para o espaço<br />
coluna das potências sucessivas A k (e as colunas de A k são A k e1, . . . , A k en). A relação<br />
Ak = Q t kA Qk<br />
explica porque o algoritmo QR encontra os autovalores de A: os elementos da diagonal de Ak são os quocientes<br />
de Rayleigh correspondentes às colunas de Qk, isto é, aos autovetores de A. Como os autovetores de A são<br />
ortogonais e A-ortogonais, os elementos fora da diagonal principal também convergem para 0.<br />
6.5 Método de Arnoldi e Algoritmo de Lanczos<br />
Para matrizes esparsas, não simétricas, o método de Arnoldi é o método mais usado para encontrar os<br />
autovalores e autovetores, e para matrizes simétricas esparsas o método escolhido é o algoritmo de Lanczos.<br />
Na Proposição 5.7 vimos que no método de Arnoldi obtemos<br />
onde<br />
AQm = Qm+1 Hm<br />
Qm = q1 . . . qm<br />
,<br />
Qm+1 = q1 . . . qm qm+1<br />
,<br />
(6.25)<br />
são matrizes com colunas ortonormais e Hm é uma matriz de Hessenberg superior (m + 1) × m (na notação<br />
daquela proposição, a matriz Qm é denotada por Vm). Como naquela proposição, denote por Hm a matriz<br />
de Hessenberg superior quadrada obtida através de Hm quando suprimimos a última linha desta. Segue que<br />
<br />
AQm = QmHm + qm+1 0 . . . 0 hm+1,m
Rodney Josué Biezuner 120<br />
ou<br />
AQm = QmHm + qm+1hm+1,me t m. (6.26)<br />
Como vimos no capítulo anterior, se q, Aq, . . . , A m q são linearmente independentes, então hm+1,m = 0. Se<br />
eles são linearmente dependentes, então hm+1,m = 0 e<br />
AQm = QmHm. (6.27)<br />
6.15 Proposição. Sejam A ∈ Mn (F) e q1, . . . , qm ∈ Fn linearmente independentes. Sejam S = 〈q1, . . . , qm〉<br />
e considere a matriz n × m<br />
Q = q1 . . . qm<br />
<br />
.<br />
Então S é invariante sob A se e somente se existe algum B ∈ Mm (F) tal que<br />
AQ = QB.<br />
Além disso, todo autovalor de B é um autovalor de A com autovetor correspondente em S.<br />
Prova. Se existe tal B, então<br />
Aqj =<br />
m<br />
qibij ∈ S.<br />
i=1<br />
Reciprocamente, se S é invariante sob A, então para cada índice j = 1, . . . , m existem escalares bij tais que<br />
Aqj =<br />
m<br />
i=1<br />
Defina B = (bij). Se w é um autovetor de B com autovalor λ, então v = Qw ∈ S é um autovetor de A com<br />
autovalor λ. <br />
Portanto, os autovalores da matriz de Hessenberg Hm são também autovalores de A. Se m não é muito<br />
grande, podemos então usar o algoritmo QR para encontrar os autovalores de Hm. Na prática, dificilmente<br />
obteremos hm+1,m = 0 exatamente, mas se hm+1,m é próximo de zero podemos esperar que estamos próximos<br />
de um subespaço invariante e, portanto, que os autovalores de Hm estão próximos aos autovalores de A:<br />
6.16 Teorema. Sejam Qm, Hm e hm+1,m gerados pelo método de Arnoldi. Seja λ um autovalor de Hm<br />
com autovetor unitário x. Seja v = Qmx. Então<br />
onde xm denota a última componente de x.<br />
bijqi.<br />
Av − λv = |hm+1,m| |xm|<br />
O método de Arnoldi em geral obtém os autovalores periféricos. Os autovalores interiores podem ser encontradas<br />
através da estratégia do deslocamento.<br />
Quando A é simétrica, como vimos no capítulo anterior Hm é uma matriz tridiagonal Tm que pode ser<br />
obtida através de uma fórmula de recorrência.<br />
Veja [Watkins] para detalhes sobre implementações eficientes do método de Arnoldi e algoritmo de Lanczos<br />
para encontrar autovalores e autovetores de matrizes esparsas.<br />
6.6 O Problema de Autovalor Simétrico<br />
Para matrizes simétricas, existem algoritmos bem mais eficiente que o algoritmo QR. Veja [Parlett],<br />
[Trefethen-Bau], entre outros.
Rodney Josué Biezuner 121<br />
6.7 Exercícios<br />
6.1 Suponha que A ∈ Mn (C) é uma matriz diagonalizável tal que nenhum autovalor de A diferente do<br />
autovalor dominante λ1 tem módulo igual a A. Em outras palavras, se r é a dimensão do autoespaço<br />
associado a λ1, ou autovalores de A satisfazem<br />
com<br />
|λ1| = . . . = |λr| > |λ2| . . . |λn|<br />
λ1 = . . . = λr.<br />
Mostre que o método das potências pode ser aplicado a A para encontrar λ1 e um autovetor unitário<br />
no autoespaço associado a λ1.<br />
6.2 Usando a forma canônica de Jordan, mostre que a hipótese de A ser diagonalizável pode ser removida<br />
da hipótese do exercício anterior decompondo o vetor inicial v0 como a soma de um vetor na direção<br />
do autovetor dominante v1 e de vetores principais nos subespaços de Jordan da matriz.<br />
6.3 Prove a Proposição 6.7 sem assumir que o autovalor é simples.<br />
6.4 Prove que o produto de uma matriz triangular superior e uma matriz de Hessenberg superior é uma<br />
matriz de Hessenberg superior. O que se pode dizer sobre o produto de duas matrizes de Hessenberg<br />
superiores?<br />
6.5 Prove a unicidade do refletor na Proposição 6.11.
Referências Bibliográficas<br />
[BHM] William L. BRIGGS, Van Emden HENSON e Steve F. McCORMICK, A Multigrid<br />
Tutorial, 2nd. Ed., SIAM, 2000.<br />
[Demmel] James W. DEMMEL, Applied Numerical <strong>Linear</strong> Algebra, SIAM, 1997.<br />
[Hackbusch] W. HACKBUSCH, Iterative Solutions of Large Sparse Systems of Equations, Applied<br />
Mathematical Sciences 95, Springer-Verlag, 1994.<br />
[Hoffman-Kunze] K. HOFFMAN e R. KUNZE, <strong>Linear</strong> Algebra, 2nd. Ed., Prentice Hall, 1971.<br />
[Horn-Johnson] Roger A. HORN e Charles R. JOHNSON, Matrix Analysis, Cambridge University<br />
Press, 1985.<br />
[Komzsik] Louis KOMZSIK, The Lanczos Method: evolution and application, SIAM, 2003.<br />
[Kreyszig] KREYSZIG, E., Introductory Functional Analysis with Applications, John Wiley &<br />
Sons, 1978.<br />
[Mak] Ronald MAK, Java Number Cruncher: the Java Programmer’s Guide to Numerical<br />
Computing, Prentice Hall, 2003.<br />
[Meurant] Gérard MEURANT, The Lanczos and Conjugate Gradient Algorithms: from theory<br />
to finite precision computations, SIAM, 2006.<br />
[Parlett] Beresford N. PARLETT, The Symmetric Eigenvalue Problem, SIAM, 1998.<br />
[Saad] Yousef SAAD, Iterative Methods for Sparse <strong>Linear</strong> Systems, 2nd Ed., SIAM, 2003.<br />
[Stoer-Bulirsch] Josef STOER e Roland BULIRSCH, Introduction to Numerical Analysis, 3rd Ed.,<br />
Springer, 2002.<br />
[Strang] Gilbert STRANG, <strong>Linear</strong> Algebra and its Applications, 3rd Ed., Harcourt Brace Jovanovich,<br />
1988.<br />
[Trefethen-Bau] Lloyd N. TREFETHEN e David BAU, Numerical <strong>Linear</strong> Algebra, SIAM, 1997.<br />
[van der Vorst] Henk A. van der VORST, Iterative Krylov Methods for Large <strong>Linear</strong> Systems, Cambridge<br />
University Press, 2003.<br />
[Watkins] David S. WATKINS, Fundamentals of Matrix Computations, 2nd Ed., John Wiley &<br />
Sons, 2002.<br />
[Young] David M. YOUNG, Iterative Solutions of Large <strong>Linear</strong> Systems, Academic Press,<br />
1971.<br />
122