18.04.2013 Views

Álgebra Linear Numérica - Arquivo Escolar

Álgebra Linear Numérica - Arquivo Escolar

Álgebra Linear Numérica - Arquivo Escolar

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Notas de Aula<br />

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

Rodney Josué Biezuner 1<br />

Departamento de Matemática<br />

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

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

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

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

30 de novembro de 2009<br />

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


Sumário<br />

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

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

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

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

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

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

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

1 Matrizes Esparsas 7<br />

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

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

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

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

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

2 Invertibilidade de Matrizes Esparsas 13<br />

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1


Rodney Josué Biezuner 2<br />

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

6 O Problema do Autovalor 102<br />

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Capítulo 0<br />

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

Números Reais no Computador<br />

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

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

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

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

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

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

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

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

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

<br />

<br />

<br />

Erro relativo = <br />

erro absoluto<br />

<br />

valor exato .<br />

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

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

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

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

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

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

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

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

0.1 Ponto Flutuante<br />

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

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

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

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

3


Rodney Josué Biezuner 4<br />

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

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

a = a0 +<br />

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

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

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

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

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

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

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

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

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

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

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

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

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

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

que podemos representar:<br />

∞<br />

n=1<br />

an<br />

10 n<br />

−1 0 1<br />

0 0<br />

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

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

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

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

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

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

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

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

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

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

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

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

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

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

exato.<br />

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

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

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

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

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

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

não a garante.


Rodney Josué Biezuner 5<br />

0.2 Erros de Arredondamento<br />

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

0.3.1 Números normalizados<br />

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

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

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

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

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

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

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

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

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

ou seja,<br />

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

23<br />

i=0<br />

1<br />

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


Rodney Josué Biezuner 6<br />

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

ou seja,<br />

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

52<br />

i=0<br />

0.3.2 Números denormalizados<br />

1<br />

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

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

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

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

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

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

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

ou seja,<br />

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

1<br />

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

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

correspondente a<br />

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

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

ou seja,<br />

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

1<br />

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

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

correspondente a<br />

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

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

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

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

em números denormalizados.<br />

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

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

0.3.3 Outros valores numéricos<br />

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

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

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

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

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

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

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


Capítulo 1<br />

Matrizes Esparsas<br />

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

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

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

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

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

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

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

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

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

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

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

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

que ser desenvolvidos.<br />

1.1 Problema Modelo<br />

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

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

esparsa simétrica.<br />

1.1.1 Problema de Poisson Unidimensional<br />

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

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

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

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

respectivamente por<br />

e<br />

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

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

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

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

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

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

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

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

h 2<br />

7<br />

− 2<br />

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

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

(1.1)


Rodney Josué Biezuner 8<br />

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

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

h 2<br />

com erro<br />

ɛ = − 1<br />

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

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

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

uniformemente espaçados:<br />

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

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

ui = u(xi),<br />

fi = f (xi) .<br />

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

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

1 i n − 1, temos<br />

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

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

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

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

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

ou seja,<br />

⎪⎩<br />

1<br />

h2 ⎡<br />

2 −1<br />

⎢<br />

−1<br />

⎢<br />

⎣<br />

2<br />

−1<br />

−1<br />

. ..<br />

. ..<br />

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

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

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

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

. ..<br />

. .. −1<br />

−1 2 −1<br />

−1 2<br />

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

⎤ ⎡<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎦ ⎣<br />

1.1.2 Problema de Poisson Bidimensional<br />

.<br />

u1<br />

u2<br />

.<br />

.<br />

.<br />

un−2<br />

un−1<br />

⎤<br />

⎡<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ = ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎦ ⎣<br />

,<br />

f1 + ah −2<br />

f2<br />

..<br />

. .<br />

fn−2<br />

fn−1 + bh −2<br />

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

(0, 1) <br />

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

u = 0<br />

em Ω,<br />

sobre ∂Ω.<br />

(1.3)<br />

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

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

⎤<br />

⎥ .<br />

⎥<br />


Rodney Josué Biezuner 9<br />

onde<br />

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

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

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

A equação de Poisson<br />

pode ser agora discretizada. Denotamos<br />

h = 1<br />

n ,<br />

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

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

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

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

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

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

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

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

∆x2 ,<br />

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

∆y2 .<br />

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

A = 1<br />

h2 ⎡<br />

B −I<br />

⎤<br />

⎢<br />

−I<br />

⎢<br />

⎣<br />

B<br />

−I<br />

−I<br />

. ..<br />

. ..<br />

. ..<br />

. ..<br />

−I<br />

−I<br />

B −I<br />

⎥<br />

⎦<br />

−I B<br />

(n−1)×(n−1)


Rodney Josué Biezuner 10<br />

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

Observe que<br />

⎡<br />

4 −1<br />

⎢<br />

−1<br />

⎢<br />

B = ⎢<br />

⎣<br />

4<br />

−1<br />

−1<br />

. ..<br />

. ..<br />

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

. ..<br />

. .. −1<br />

−1 4 −1<br />

−1 4<br />

aii = 4<br />

aij = −1<br />

⎤<br />

⎥<br />

⎦<br />

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

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

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

A = 1<br />

h2 ⎡<br />

4<br />

⎢ −1<br />

⎢ 0<br />

⎢ −1<br />

⎢ 0<br />

⎢ 0<br />

⎢ 0<br />

⎣ 0<br />

−1<br />

4<br />

−1<br />

0<br />

−1<br />

0<br />

0<br />

0<br />

0<br />

−1<br />

4<br />

0<br />

0<br />

−1<br />

0<br />

0<br />

−1<br />

0<br />

0<br />

4<br />

−1<br />

0<br />

−1<br />

0<br />

0<br />

−1<br />

0<br />

−1<br />

4<br />

−1<br />

0<br />

−1<br />

0<br />

0<br />

−1<br />

0<br />

−1<br />

4<br />

0<br />

0<br />

0<br />

0<br />

0<br />

−1<br />

0<br />

0<br />

4<br />

−1<br />

0<br />

0<br />

0<br />

0<br />

−1<br />

0<br />

−1<br />

4<br />

⎤<br />

0<br />

0 ⎥<br />

0 ⎥<br />

0 ⎥<br />

0 ⎥<br />

−1 ⎥<br />

0 ⎥<br />

−1 ⎦<br />

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

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

1.2 Matrizes Esparsas<br />

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

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

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

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

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

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

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

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

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

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

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

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

levam matrizes irregularmente estruturadas.<br />

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

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

um vetor.


Rodney Josué Biezuner 11<br />

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

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

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

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

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

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

1.1 Exemplo. A matriz<br />

pode ser representada por<br />

⎡<br />

⎢<br />

A = ⎢<br />

⎣<br />

1 0 0 3 0<br />

5 7 0 0 2<br />

3 0 2 4 0<br />

0 0 6 9 0<br />

0 0 0 0 4<br />

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

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

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

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

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

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

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

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

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

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

1.2 Exemplo. A matriz<br />

⎡<br />

⎢<br />

A = ⎢<br />

⎣<br />

pode ser representada no formato CSR por<br />

1 0 0 3 0<br />

5 7 0 0 2<br />

3 0 2 4 0<br />

0 0 6 9 0<br />

0 0 0 0 4<br />

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

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

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

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

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

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

conveniente. <br />

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

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

⎤<br />

⎥<br />

⎦<br />

⎤<br />

⎥<br />


Rodney Josué Biezuner 12<br />

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

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

{<br />

lowerIndex = rowPointerArray[i];<br />

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

//loop over row i<br />

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

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

}<br />

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

usado no Octave.<br />

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

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

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

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

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

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

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

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

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

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

a matriz.


Capítulo 2<br />

Invertibilidade de Matrizes Esparsas<br />

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

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

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

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

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

2.1 Normas Matriciais<br />

Lembramos o conceito de norma vetorial:<br />

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

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

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

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

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

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

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

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

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

satisfaz a propriedade submultiplicativa<br />

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

AB A B (2.1)<br />

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

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

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

A 1 =<br />

13<br />

n<br />

|aij| . (2.2)<br />

i,j=1


Rodney Josué Biezuner 14<br />

De fato,<br />

<br />

AB 1 =<br />

n<br />

<br />

n <br />

<br />

<br />

i,j=1<br />

k=1<br />

aikbkj<br />

<br />

<br />

<br />

<br />

<br />

n<br />

i,j,k=1<br />

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

Com efeito,<br />

AB 2<br />

2 =<br />

n<br />

<br />

n <br />

<br />

<br />

i,j=1<br />

k=1<br />

aikbkj<br />

<br />

<br />

<br />

<br />

<br />

2<br />

<br />

n<br />

<br />

n<br />

i,j=1<br />

|aikbkj| <br />

⎛<br />

A2 = ⎝<br />

k=1<br />

|aik| 2<br />

n<br />

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

n<br />

i,j=1<br />

n<br />

l=1<br />

|aij| 2<br />

|blj| 2<br />

|aikblj| =<br />

⎞<br />

⎠<br />

<br />

1/2<br />

= ⎝<br />

n<br />

i,k=1<br />

|aik|<br />

n<br />

j,l=1<br />

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

. (2.3)<br />

⎛<br />

n<br />

i,k=1<br />

|aik| 2<br />

⎞ ⎛<br />

⎠ ⎝<br />

n<br />

j,l=1<br />

|blj| 2<br />

⎞<br />

⎠ = A 2<br />

2 B2 2 .<br />

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

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

2.5 Exemplo. Normas lp:<br />

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

⎛<br />

n<br />

Ap = ⎝ |aij| p<br />

⎞<br />

⎠<br />

<br />

i,j=1<br />

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

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

1/p<br />

A ∞ = max<br />

1i,jn |aij|<br />

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

então<br />

A =<br />

A 2 =<br />

1 1<br />

1 1<br />

2 2<br />

2 2<br />

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

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

Com efeito,<br />

<br />

AB n∞ = n max<br />

<br />

n <br />

<br />

<br />

<br />

,<br />

<br />

. (2.4)<br />

A n∞ = n max<br />

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

<br />

<br />

<br />

n max<br />

n<br />

aikbkj <br />

|aikbkj| n max A<br />

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

1i,jn<br />

∞ B∞ k=1<br />

k=1<br />

k=1<br />

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

n


Rodney Josué Biezuner 15<br />

2.7 Exemplo. Norma do operador:<br />

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

A = max<br />

|x|=1<br />

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

|x|1 x=0<br />

|Ax|<br />

. (2.6)<br />

|x|<br />

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

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

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

|Ax|<br />

|x| =<br />

<br />

<br />

<br />

A <br />

x <br />

.<br />

|x|<br />

Agora observe que<br />

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

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

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

<br />

<br />

<br />

A <br />

x <br />

=<br />

|x|<br />

|Ax| |Ax|<br />

= > |Ax| ,<br />

|x| ε<br />

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

max |Ax| max<br />

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

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

é uma norma matricial, escreva<br />

<br />

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

AB = max = max<br />

max<br />

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

|Bx| |Ay|<br />

max<br />

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

|Bx|<br />

= A B .<br />

x=0 |x|<br />

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

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

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

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

A L = max<br />

1in<br />

j=1<br />

n<br />

|aij| . (2.8)<br />

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

temos<br />

<br />

<br />

<br />

n<br />

<br />

<br />

n<br />

n<br />

|Ax| ∞ = max aijxj<br />

<br />

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

1in<br />

1in<br />

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

de modo que<br />

j=1<br />

j=1<br />

max<br />

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

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

⎧<br />

⎨<br />

yi =<br />

⎩<br />

aij<br />

|aij|<br />

1<br />

se aij = 0,<br />

se aij = 0.<br />

,<br />

j=1


Rodney Josué Biezuner 16<br />

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

max<br />

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

<br />

n<br />

∞ = max <br />

1in <br />

<br />

<br />

j=1<br />

aijyj<br />

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

A C = max<br />

1jn<br />

i=1<br />

<br />

<br />

<br />

<br />

= max<br />

<br />

1in<br />

j=1<br />

n<br />

|aij| = AL .<br />

n<br />

|aij| . (2.9)<br />

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

de suas colunas<br />

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

segue que<br />

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

donde<br />

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

= A C<br />

n<br />

i=1<br />

A C = max<br />

1jn |Aj| 1 .<br />

n<br />

|xiAi| 1 =<br />

i=1<br />

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

n<br />

|xi| |Ai| 1 <br />

i=1<br />

max<br />

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

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

para todo k, logo<br />

<br />

2.10 Exemplo. p-normas:<br />

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

n<br />

i=1<br />

max<br />

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

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

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

|xi| max<br />

1jn |Aj| 1<br />

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

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

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

x=0<br />

|Ax| p<br />

.<br />

|x| p<br />

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

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

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

∗<br />

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


Rodney Josué Biezuner 17<br />

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

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

λmax = max<br />

x=0<br />

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

|x| 2<br />

2<br />

= max<br />

x=0<br />

|Ax| 2<br />

.<br />

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

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

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

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

ρ (A) = max<br />

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

<br />

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

2<br />

|x| 2<br />

2<br />

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

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

<br />

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

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

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

particular para normas matriciais:<br />

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

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

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

e<br />

para todo x ∈ V .<br />

x 1 C1 x 2<br />

x 2 C2 x 1<br />

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

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

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

x =<br />

n<br />

i=1<br />

xiei<br />

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

x 1 =<br />

n<br />

|xi| .<br />

i=1


Rodney Josué Biezuner 18<br />

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

x 2 <br />

n<br />

xiei2 =<br />

i=1<br />

<br />

<br />

max<br />

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

= C2 x 1 ,<br />

n<br />

|xi| ei2 i=1<br />

<br />

n<br />

|xi|<br />

onde denotamos C2 = max<br />

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

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

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

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

se existisse e = n<br />

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

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

i=1<br />

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

<br />

<br />

<br />

x <br />

<br />

x<br />

m<br />

1 2<br />

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

2.2 Matrizes Diagonalmente Dominantes<br />

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

|aii| <br />

i=1<br />

i=1<br />

n<br />

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

j=1<br />

j=i<br />

e estritamente diagonalmente dominante se<br />

|aii| ><br />

n<br />

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

j=1<br />

j=i<br />

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

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

Para todo N ∈ N podemos escrever<br />

k=0<br />

k=0<br />

A −1 =<br />

∞<br />

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

k=0<br />

N<br />

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

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

=<br />

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

<br />

<br />

(I − A) k k<br />

I − A .<br />

k=0<br />

<br />

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

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

k=1


Rodney Josué Biezuner 19<br />

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

lim<br />

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

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

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

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

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

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

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

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

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

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

−1<br />

I − D A<br />

ij =<br />

<br />

0 se i = j,<br />

se i = j.<br />

−aij/aii<br />

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

n <br />

<br />

I − D −1 A n<br />

<br />

aij<br />

<br />

n<br />

= <br />

1<br />

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

|aii|<br />

j=1<br />

j=1<br />

j=i<br />

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

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

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

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

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

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

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

demonstra.<br />

⎡<br />

⎣<br />

aii<br />

4 2 1<br />

0 1 1<br />

0 1 1<br />

2.3 Teorema dos Discos de Gershgorin<br />

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

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

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

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

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

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

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

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

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

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

⎤<br />

⎦<br />

j=1<br />

j=i<br />

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


Rodney Josué Biezuner 20<br />

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

Ri (A) =<br />

n<br />

|aij| (2.12)<br />

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

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

G (A) =<br />

n<br />

i=1<br />

j=1<br />

j=i<br />

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

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

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

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

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

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

Ax = λx, temos<br />

n<br />

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

que é equivalente a<br />

Daí,<br />

ou seja,<br />

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

j=1<br />

j=k<br />

xk (λ − akk) =<br />

j=1<br />

j=k<br />

j=1<br />

n<br />

j=1<br />

j=k<br />

akjxj<br />

akjxj.<br />

n<br />

n<br />

n<br />

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

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

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

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

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

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

para 0 t 1. Note que<br />

At = D + tB<br />

j=1<br />

j=k<br />

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

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

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

Gk (A) =<br />

k<br />

i=1<br />

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

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


Rodney Josué Biezuner 21<br />

logo,<br />

e<br />

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

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

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

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

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

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

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

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

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

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

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

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

disjuntos.<br />

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

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

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

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

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

são positivos.<br />

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

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

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

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

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

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

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

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

⎛<br />

ρ (A) min ⎝ max<br />

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

j=1<br />

n<br />

|aij| , max<br />

n<br />

⎞<br />

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

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

L , AC ) .<br />

i=1<br />

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

n<br />

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

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

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

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

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

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

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

<br />

D −1 AD =<br />

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

autovalores de A:<br />

pj<br />

j=1<br />

aij<br />

pi<br />

|aij|


Rodney Josué Biezuner 22<br />

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

Em particular,<br />

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

ρ (A) min<br />

2.4 Propriedade FC<br />

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

⎛<br />

∩<br />

⎝ max<br />

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

n<br />

i=1<br />

n<br />

i=1<br />

1<br />

⎧<br />

⎪⎨<br />

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

⎪⎩<br />

1<br />

pi<br />

⎧<br />

⎪⎨<br />

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

n<br />

n<br />

n<br />

j=1<br />

j=i<br />

n<br />

i=1<br />

i=j<br />

pj |aij|<br />

1<br />

|aij|<br />

pi<br />

pj |aij| , max<br />

pi<br />

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

j=1<br />

pj |aij|<br />

pi<br />

i=1<br />

1<br />

⎞<br />

⎫<br />

⎪⎬<br />

⎪⎭<br />

⎫<br />

⎪⎬<br />

⎪⎭ .<br />

(2.14)<br />

⎠ . (2.15)<br />

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

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

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

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

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

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

|aii| <<br />

n<br />

j=1<br />

j=i<br />

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

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

Gershgorin é que<br />

n<br />

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

j=1<br />

j=i<br />

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

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

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

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

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

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

|aij|<br />

n<br />

j=1<br />

j=i<br />

|aij|<br />

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

|xi| = |xk|


Rodney Josué Biezuner 23<br />

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

então<br />

aij = 0,<br />

|xj| = |xk|<br />

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

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

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

n<br />

n<br />

n<br />

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

j=1<br />

j=i<br />

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

Como por hipótese<br />

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

j=1<br />

j=i<br />

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

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

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

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

donde<br />

n<br />

n<br />

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

j=1<br />

j=i<br />

j=1<br />

j=i<br />

|aij|<br />

n<br />

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

j=1<br />

j=i<br />

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

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

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

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

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

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

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

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

j=1<br />

j=i<br />

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

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

tal que |aii| > n<br />

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

j=1<br />

j=i


Rodney Josué Biezuner 24<br />

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

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

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

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

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

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

esparsas.<br />

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

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

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

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

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

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

⎡<br />

4<br />

⎣ 0<br />

2<br />

1<br />

1<br />

1<br />

⎤<br />

⎦ ,<br />

0 1 1<br />

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

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

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

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

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

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

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

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

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

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

Pelo Lema 2.20,<br />

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

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

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

entradas matriciais<br />

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

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

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

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

xim−1<br />

= |xj| .<br />

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

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

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

tal que |aii| > n<br />

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

j=1<br />

j=i


Rodney Josué Biezuner 25<br />

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

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

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

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

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

matriz<br />

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

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

a matriz<br />

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

onde<br />

µij =<br />

1 se aij = 0,<br />

0 se aij = 0.<br />

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


Rodney Josué Biezuner 26<br />

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

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

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

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

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

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

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

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

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

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

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

de modo que<br />

<br />

|A| 2<br />

ij<br />

<br />

|A| 2<br />

ij<br />

=<br />

n<br />

k=1<br />

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

n<br />

k=1<br />

|aik| |akj| ,<br />

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

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

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

<br />

|A| m+1<br />

ij<br />

=<br />

n<br />

k=1<br />

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

n<br />

k=1<br />

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

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

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

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

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

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

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

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

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

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

|A| m > 0<br />

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

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

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

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

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


Rodney Josué Biezuner 27<br />

Prova. Temos<br />

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

n − 1<br />

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

2<br />

2 + . . . +<br />

<br />

n − 1<br />

|A|<br />

n − 3<br />

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

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

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

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

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

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

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

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

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

2.5 Matrizes Irredutíveis<br />

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

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

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

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

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

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

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

⎧<br />

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

Tij =<br />

⎩<br />

1<br />

0<br />

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

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

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

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

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

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

T A =<br />

AT =<br />

⎡<br />

⎢<br />

⎣<br />

⎡<br />

⎢<br />

⎣<br />

1 0 0 0<br />

0 0 1 0<br />

0 1 0 0<br />

0 0 0 1<br />

⎤ ⎡<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎦ ⎣<br />

a11 a12 a13 a14<br />

a21 a22 a23 a24<br />

a31 a32 a33 a34<br />

a41 a42 a43 a44<br />

a11 a12 a13 a14<br />

a21 a22 a23 a24<br />

a31 a32 a33 a34<br />

a41 a42 a43 a44<br />

⎤ ⎡<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎦ ⎣<br />

1 0 0 0<br />

0 0 1 0<br />

0 1 0 0<br />

0 0 0 1<br />

⎤<br />

⎡<br />

⎥<br />

⎦ =<br />

⎢<br />

⎣<br />

⎤<br />

⎥<br />

⎦ =<br />

⎡<br />

⎢<br />

⎣<br />

a11 a12 a13 a14<br />

a31 a32 a33 a34<br />

a21 a22 a23 a24<br />

a41 a42 a43 a44<br />

a11 a13 a12 a14<br />

a21 a23 a22 a24<br />

a31 a33 a32 a34<br />

a41 a43 a42 a44<br />

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

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

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

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

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

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

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

P t <br />

B C<br />

AP =<br />

0 D<br />

⎤<br />

⎥<br />

⎦ ,<br />

⎤<br />

⎥<br />

⎦ .


Rodney Josué Biezuner 28<br />

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

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

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

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

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

A = P t AP =<br />

B C<br />

0 D<br />

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

equivalente a resolver o sistema<br />

Ax = b.<br />

Escrevendo<br />

x =<br />

y<br />

z<br />

<br />

b1<br />

, b =<br />

b2<br />

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

By + Cz = b1<br />

Dz = b2<br />

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

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

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

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

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

<br />

,<br />

<br />

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

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

menos uma entrada nula.<br />

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

Observe que<br />

A = P<br />

B C<br />

0 D<br />

<br />

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

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

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

A k <br />

=<br />

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

B k Ck<br />

0 D k<br />

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

= P<br />

<br />

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

n − 1<br />

2<br />

<br />

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

<br />

n − 1<br />

|A|<br />

n − 3<br />

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

<br />

P t


Rodney Josué Biezuner 29<br />

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

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

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

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

n−1 <br />

m=1<br />

n − 1<br />

m<br />

<br />

|A| m ,<br />

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

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

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

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

ij<br />

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

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

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

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

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

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

Renomeando os nodos de modo que<br />

<br />

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

Pm ,<br />

<br />

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

Pn ,<br />

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

P t <br />

B C<br />

AP =<br />

0 D<br />

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

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

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

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

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

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

|aij| para<br />

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

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

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

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

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

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

2.6 Exercícios<br />

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

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

<br />

.<br />

j=1<br />

j=i


Rodney Josué Biezuner 30<br />

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

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

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

uma constante C > 0 tal que<br />

1<br />

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

para todo vetor x ∈ V .<br />

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

I 1.<br />

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

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

matricial.<br />

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

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

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

que ou igual a n − 1


Capítulo 3<br />

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

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

Ax = b.<br />

Embora a matriz A que temos em mente é em geral uma matriz grande e esparsa, do tipo que aparece em<br />

esquemas de diferenças finitas para equações diferenciais parciais, os métodos considerados aqui requerem<br />

em princípio apenas que A seja uma matriz invertível com todas as entradas diagonais aii não-nulas (embora<br />

a matriz A deva satisfazer critérios adicionais, de acordo com cada método, para assegurar a convergência<br />

para a solução exata).<br />

Métodos iterativos requerem um chute inicial x 0 , ou seja, um vetor inicial que aproxima a solução exata<br />

x (se não há nenhuma informação disponível sobre a solução exata, de modo que não temos como construir<br />

o chute inicial de forma inteligente, x 0 pode ser uma aproximação muito ruim de x). Uma vez que x 0 é<br />

dado, o método iterativo gera a partir de x 0 uma nova aproximação x 1 , que esperamos deve aproximar<br />

melhor a solução exata. Em seguida, x 1 é usada para gerar uma nova melhor aproximação x 2 e assim por<br />

diante. Desta forma, gera-se uma seqüência de vetores x k que espera-se convergir para x. Como na prática<br />

não podemos iterar para sempre, algum critério de parada deve ser estabelecido a priori. Uma vez que x k<br />

esteja suficientemente próximo da solução exata quanto se precise, de acordo com uma margem de tolerância<br />

previamente fixada, pára-se o processo de iteração e aceita-se x k como a solução aproximada adequada para<br />

o problema. Por exemplo, o critério de parada pode ser estabelecido através de uma cota de tolerância τ:<br />

quando b − Ax k < τ<br />

ou quando x k+1 − x k < τ<br />

as iterações são interrompidas e o último valor aproximado obtido é aceito como a melhor aproximação da<br />

solução dentro das circunstâncias.<br />

Os métodos discutidos neste capítulo não necessitam de um bom chute inicial (embora, é claro, quanto<br />

melhor o chute inicial, menor o número de iterações necessárias para se chegar à solução aproximada com<br />

a exatidão especificada). Embora os métodos iterativos lineares são muitos lentos em relação a outros<br />

métodos iterativos desenvolvidos mais recentemente, sendo portanto raramente utilizados isoladamente, eles<br />

são frequentemente usados hoje em dia como componentes de certos métodos iterativos ultra-rápidos, tais<br />

como o método multigrid.<br />

31


Rodney Josué Biezuner 32<br />

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

3.1.1 Método de Jacobi<br />

O método iterativo linear mais simples (que já foi descrito também como o mais lento para convergir, embora<br />

isso realmente depende da matriz A do sistema) é o método de Jacobi (1845) Escrevendo o sistema Ax = b<br />

na forma ⎧⎪<br />

n<br />

a1jxj = b1<br />

⎨ j=1<br />

. ,<br />

n<br />

⎪⎩ anjxj = bn<br />

se aii = 0 para todo i, cada xi pode ser isolado na i-ésima equação e escrito na forma<br />

xi = 1<br />

⎛<br />

⎜<br />

⎝bi ⎞<br />

n ⎟<br />

− aijxj ⎟<br />

⎠ .<br />

Isso sugere definir um método iterativo da seguinte forma: suposto x k = x k 1, . . . , x k n<br />

anterior, obtemos x k+1 = x k+1<br />

1<br />

, . . . , x k+1<br />

n<br />

x k+1<br />

i<br />

aii<br />

por<br />

j=1<br />

1<br />

=<br />

aii<br />

⎛<br />

⎜<br />

⎝ bi −<br />

j=1<br />

j=i<br />

n<br />

j=1<br />

j=i<br />

aijx k j<br />

⎞<br />

obtido no passo<br />

⎟<br />

⎠ . (3.1)<br />

No caso da fórmula de cinco pontos para o problema de Poisson, como a equação para cada ponto (i, j)<br />

é dada por<br />

o método de Jacobi é<br />

−ui,j−1 − ui,j+1 + 4ui,j − ui−1,j − ui+1,j = h 2 fi,j<br />

k<br />

ui,j−1 + u k i−1,j + u k i+1,j + u k i,j+1 + h 2 <br />

fi,j . (3.2)<br />

u k+1 1<br />

i,j =<br />

4<br />

No caso especial da equação de Laplace (f = 0) com condição de fronteira de Dirichlet não-nula, o método<br />

de Jacobi é simplesmente a propriedade do valor médio discreta<br />

u k+1<br />

i,j<br />

1 k<br />

= ui,j−1 + u<br />

4<br />

k i−1,j + u k i+1,j + u k <br />

i,j+1 . (3.3)<br />

Em outras palavras, calculados os valores de u em todos os pontos da malha na iteração anterior, o novo<br />

valor de u em um ponto interior da malha nesta iteração é calculado através da média dos seus quatro<br />

pontos vizinhos. Os valores iniciais de u nos pontos interiores da malha para a primeira iteração (isto é, o<br />

chute inicial) podem ser atribuidos arbitrariamente ou através de algum argumento razoável; por exemplo,<br />

podemos utilizar uma média ponderada dos valores de fronteira para o valor inicial em cada ponto interior<br />

da malha, de acordo com a posição do ponto em relação aos pontos das quatro fronteiras discretizadas.<br />

Em forma matricial, o algoritmo de Jacobi pode ser descrito da seguinte forma. Denotando por D = diag<br />

(a11, . . . , ann) a matriz diagonal cujas entradas são as entradas diagonais de A, temos que<br />

x k+1 = D −1 (D − A) x k + b <br />

(3.4)<br />

ou<br />

x k+1 = D −1 Cx k + b <br />

onde C = D − A é a matriz consistindo dos elementos restantes de A fora da diagonal principal.<br />

(3.5)


Rodney Josué Biezuner 33<br />

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

Um método iterativo que converge cerca de duas vezes mais rápido que o método de Jacobi (na maioria<br />

das aplicações) é o método de Gauss-Seidel (desenvolvido inicialmente por Gauss em 1819 para resolver<br />

sistemas de equações lineares que apareciam no seu método de quadrados mínimos e obtendo sua forma final<br />

em 1874 por Seidel), onde os valores de x são atualizados dentro de cada iteração, sem esperar pela próxima.<br />

Em outras palavras, obtido o valor de x k+1<br />

i este é usado no lugar de xk i no cálculo seguinte de xk+1 i+1 . No<br />

sistema Ax = b em que aii = 0 para todo i, como antes isolamos cada xi na i-ésima equação mas desta vez<br />

escrevemos<br />

xi = 1<br />

⎛<br />

⎞<br />

i−1<br />

n<br />

⎝bi − aijxj − ⎠ .<br />

Então definimos<br />

pois os valores x k+1<br />

1<br />

x k+1<br />

i<br />

aii<br />

⎛<br />

1<br />

=<br />

aii<br />

j=1<br />

i−1<br />

⎝bi −<br />

j=1<br />

aijx k+1<br />

j<br />

j=i+1<br />

−<br />

aijxj<br />

n<br />

j=i+1<br />

aijx k j<br />

⎞<br />

⎠ (3.6)<br />

, . . . , x k+1<br />

i−1 já foram computados nesta iteração, enquanto que os valores xk i+1 , . . . , xk n são<br />

fornecidos pela iteração anterior.<br />

Por exemplo, no caso da equação de Laplace, poderíamos utilizar a fórmula<br />

u k+1<br />

i,j<br />

1 k+1<br />

= ui,j−1 + uk+1 i−1,j<br />

4<br />

+ uki+1,j + u k <br />

i,j+1<br />

assumindo que os pontos da malha são percorridos na ordem lexicográfica, de modo que quando vamos<br />

calcular o valor de u no ponto i, j na iteração k + 1, nesta mesma iteração já calculamos os valores de u em<br />

i − 1, j e em i, j − 1, e usamos estes valores para calcular u k+1<br />

i,j ao invés dos valores u k i,j−1 e uk i−1,j obtidos<br />

na iteração anterior.<br />

Em forma matricial, o algoritmo de Gauss-Seidel pode ser descrito da seguinte forma. Dada uma matriz<br />

A, existe uma única decomposição<br />

A = D − L − U (3.8)<br />

onde D é uma matriz diagonal, L é uma matriz estritamente triangular inferior e U é uma matriz estritamente<br />

triangular superior; de fato, D = diag (a11, . . . , ann) é a parte diagonal de A, −L é a parte estritamente<br />

triangular inferior de A e −U é a parte estritamente triangular superior de A. Então o algoritmo de Gauss-<br />

Seidel pode ser definido por<br />

x k+1 = D −1 Lx k+1 + Ux k + b <br />

(3.9)<br />

ou<br />

donde<br />

(D − L) x k+1 = Ux k + b,<br />

(3.7)<br />

x k+1 = (D − L) −1 Ux k + b . (3.10)<br />

3.1 Exemplo. Existem matrizes para as quais o método de Jacobi converge e o método de Gauss-Seidel<br />

diverge, e vice-versa. Veja o Exercício 3.1. <br />

3.1.3 Método SOR<br />

O processo de corrigir uma equação através da modificação de uma variável é às vezes chamado de relaxamento.<br />

Antes da correção, a equação não é verdadeira; como um conjunto de partes que não se ajustam,<br />

ela está em estado de tensão. A correção de uma variável relaxa a tensão. O método de Gauss-Seidel efetua<br />

relaxamento sucessivo, ou seja, passa de equação para equação, relaxando uma depois da outra. [Watkins]<br />

Por este motivo, os métodos de Jacobi e de Gauss-Seidel são também chamados métodos de relaxamento.<br />

Em muitos casos, a convergência pode ser substancialmente acelerada através de sobrerelaxamento. Isso


Rodney Josué Biezuner 34<br />

significa que ao invés de fazer uma correção para a qual a equação é satisfeita exatamente, nós fazemos<br />

uma correção maior. No caso mais simples, escolhe-se um fator de relaxamento ω > 1 que sobrecorrige por<br />

aquele fator em cada passo (se mover um passo na direção de x k para x k+1 é bom, mover naquela direção<br />

ω > 1 passos é melhor). Este é o chamado método de sobrerelaxamento sucessivo (SOR, successive<br />

overrelaxation; desenvolvido em 1950 por Young): usando o método de Gauss-Seidel obtemos<br />

x k+1<br />

⎛<br />

1 i−1<br />

i = ⎝bi − aijx<br />

aii<br />

k+1<br />

j −<br />

n<br />

aijx k ⎞<br />

⎠<br />

j ;<br />

daí tomamos<br />

Isso pode ser resumido em<br />

x k+1<br />

i<br />

= xk i + ω<br />

⎡<br />

x k+1<br />

i<br />

⎣ 1<br />

aii<br />

j=1<br />

= xk i + ω x k+1<br />

i<br />

⎛<br />

i−1<br />

⎝bi −<br />

j=1<br />

aijx k+1<br />

j<br />

j=i+1<br />

− xk <br />

i .<br />

−<br />

n<br />

j=i+1<br />

⎞<br />

aijx k⎠ j − x k i<br />

⎤<br />

⎦ . (3.11)<br />

Quando ω = 1, o método SOR é exatamente o método de Gauss-Seidel. Um fator ω < 1 (subrelaxamento)<br />

normalmente diminui a velocidade de convergência.<br />

Para a maioria dos problemas, o melhor valor para o fator de relaxamento é desconhecido. Para a matriz<br />

de discretização obtida a partir da fórmula de cinco pontos, é sabido que o valor ótimo de ω é, como veremos<br />

na próxima seção,<br />

ω =<br />

2<br />

. (3.12)<br />

1 + sen (πh)<br />

Em forma matricial, o método SOR pode ser descrito da seguinte forma. Como antes, dada uma matriz<br />

A escrevemos<br />

A = D − L − U (3.13)<br />

onde D é uma matriz diagonal, L é uma matriz estritamente triangular inferior e U é uma matriz estritamente<br />

triangular superior. Então, escrevendo o algoritmo SOR na forma<br />

= aiix k ⎡<br />

i−1<br />

i + ω ⎣bi −<br />

−<br />

⎤<br />

n<br />

⎦ ,<br />

temos<br />

aiix k+1<br />

i<br />

j=1<br />

aijx k+1<br />

j<br />

j=i<br />

aijx k j<br />

Dx k+1 = Dx k + ω Lx k+1 + (U − D) x k + b <br />

ou <br />

1<br />

D − L x<br />

ω k+1 <br />

1 − ω<br />

= D + U x<br />

ω k + b,<br />

donde<br />

x k+1 =<br />

(3.14)<br />

−1 <br />

1<br />

1 − ω<br />

D − L<br />

D + U x<br />

ω ω k <br />

+ b . (3.15)<br />

3.1.4 Comparação da Velocidade de Convergência dos Três Métodos no Problema<br />

Modelo<br />

A tabela a seguir foi extraída de [Watkins], págs. 533 e 542. Os métodos introduzidos acima foram usados<br />

para resolver o sistema linear Ax = b onde A é a matriz de discretização obtida a partir da fórmula dos


Rodney Josué Biezuner 35<br />

cinco pontos do laplaciano no quadrado unitário Ω = (0, 1) 2 e b é estabelecido pela condição de fronteira de<br />

Dirichlet dada por<br />

⎧<br />

⎪⎨<br />

g (x, y) =<br />

⎪⎩<br />

0<br />

y<br />

(x − 1) sen x<br />

x (2 − x)<br />

se x = 0,<br />

se x = 1,<br />

se y = 0,<br />

se y = 1,<br />

ou seja, para resolver o problema discretizado<br />

<br />

−∆dud = 0 em Ωd,<br />

sobre ∂Ωd.<br />

As iterações foram interrompidas quando<br />

ud = gd<br />

<br />

u k+1 − u k 2<br />

|u k+1 | 2<br />

< 10 −8 .<br />

O número de iterações necessárias para convergir de acordo com esta margem de tolerância, para três refinamentos<br />

possíveis da malha (correspondentes a matrizes de dimensões n = 81, 361 e 1521, respectivamente),<br />

de acordo com cada método e para diferentes valores de ω no caso do método SOR é apresentado na tabela<br />

abaixo.<br />

h = 0.1 h = 0.05 h = 0.025<br />

Jacobi 299 1090 3908<br />

SOR (ω = 0.8) 235 845 3018<br />

Gauss-Seidel 160 581 2082<br />

SOR (ω = 1.4) 67 262 955<br />

SOR (ω = 1.6) 42 151 577<br />

SOR (ω = 1.7) 57 96 412<br />

SOR (ω = 1.8) 86 89 252<br />

SOR (ω = 1.9) 176 180 179<br />

SOR (ω = 2.0) ∞ ∞ ∞<br />

Vemos que o método de Gauss-Seidel é cerca de duas vezes mais rápido para convergir que o método de<br />

Jacobi e que dependendo da escolha de ω, o método SOR pode ser até dez vezes mais rápido que o método<br />

de Gauss-Seidel para a malha mais refinada. Subrelaxamento não ajuda e para ω = 2 o método SOR é<br />

divergente.<br />

3.1.5 Método de Jacobi Amortecido<br />

O método de Gauss-Seidel pode ser sobrerelaxado através de um parâmetro ω > 1 para obter um método<br />

que converge mais rápido. Já o método de Jacobi não pode em geral ser sobrerelaxado, porque o método<br />

obtido não converge. Ele pode no entanto ser subrelaxado através de um parâmetro ω < 1 para obter um<br />

método convergente, se bem que mais vagaroso. A vantagem de se utilizar um tal método é que para certos<br />

valores de ω ele é um ótimo suavizador de erro (em um sentido que será explicado mais tarde), enquanto<br />

que o método de Jacobi usual não possui esta propriedade. Assim, o método de Jacobi amortecido pode ser<br />

usado em métodos multigrid, como veremos mais tarde.<br />

Pelo método de Jacobi usual obtemos<br />

⎛<br />

⎞<br />

x k+1<br />

i<br />

1<br />

=<br />

aii<br />

⎜<br />

⎝ bi −<br />

n<br />

j=1<br />

j=i<br />

aijx k j<br />

⎟<br />

⎠ ,


Rodney Josué Biezuner 36<br />

e tomamos<br />

ou seja,<br />

x k+1<br />

i<br />

x k+1<br />

i<br />

= xk ⎢<br />

i + ω ⎢<br />

1<br />

⎣<br />

= xk i + ω x k+1<br />

i<br />

⎡<br />

aii<br />

⎛<br />

⎜<br />

⎝ bi −<br />

n<br />

j=1<br />

j=i<br />

− xk <br />

i ,<br />

⎞<br />

⎟<br />

aijx k j ⎠ − xki ⎤<br />

⎥<br />

⎦ . (3.16)<br />

Este método é conhecido como método de Jacobi amortecido, método de Jacobi ponderado ou ainda<br />

método de relaxamento simultâneo (diferente do método de relaxamento sucessivo, baseado no método de<br />

Gauss-Seidel, em que cada variável é substituída sucessivamente dentro da mesma iteração à medida que<br />

ela é atualizada; no método de Jacobi, as variáveis são todas substituídas simultameamente na próxima<br />

iteração).<br />

Em forma matricial, o método de Jacobi amortecido pode ser descrito da seguinte forma. Denotando por<br />

D a parte diagonal de A, temos<br />

⎛<br />

⎞<br />

temos<br />

aiix k+1<br />

i<br />

= aiix k i + ω<br />

⎝bi −<br />

n<br />

j=1<br />

aijx k j<br />

Dx k+1 = Dx k + ω b − Ax k<br />

ou <br />

1<br />

ω D<br />

<br />

x k+1 <br />

1<br />

= D − A x<br />

ω k + ωb,<br />

donde<br />

x k+1 =<br />

⎠ ,<br />

(3.17)<br />

<br />

1<br />

ω D<br />

−1 <br />

1<br />

D − A x<br />

ω k <br />

+ b . (3.18)<br />

Em contraste com o método SOR, que converge em geral para 0 < ω < 2, o método de Jacobi amortecido<br />

converge para 0 < ω 1 (veja a próxima seção).<br />

3.2 Análise de Convergência dos Métodos Iterativos <strong>Linear</strong>es<br />

Os métodos iterativos básicos são casos especiais de uma classe geral de métodos chamados métodos iterativos<br />

lineares:<br />

3.2 Definição. Um método iterativo linear para resolver o sistema Ax = b é um método da forma<br />

x k+1 = Rx k + Nb<br />

onde R e N são matrizes dadas. A matriz R é chamada a matriz de iteração do método.<br />

Em geral, um método iterativo linear para resolver o sistema linear<br />

envolve a decomposição da matriz A na forma<br />

Ax = b<br />

A = B − C, (3.19)<br />

onde B é necessariamente uma matriz invertível, e em seguida a resolução iterativa do sistema de equações<br />

Bx k+1 = Cx k + b (3.20)


Rodney Josué Biezuner 37<br />

ou, mais explicitamente,<br />

x k+1 = B −1 Cx k + b .<br />

Na notação da definição, temos que a matriz de iteração é<br />

e<br />

R = B −1 C = B −1 (B − A) = I − B −1 A (3.21)<br />

N = B −1 . (3.22)<br />

Se x k → x, então Bx = Cx + b, donde Ax = b. Do ponto de vista prático, é importante que a matriz B<br />

seja “fácil de resolver” (mesmo que a inversa de B não seja efetivamente calculada), como nos exemplos da<br />

seção anterior:<br />

B C R<br />

Jacobi D D − A D−1 (D − A)<br />

Jacobi amortecido<br />

1<br />

ω D<br />

1<br />

D − A<br />

ω<br />

<br />

1<br />

ω D<br />

−1 <br />

1<br />

D − A<br />

ω<br />

Gauss-Seidel D − L U (D − L) −1 U<br />

−1 <br />

1 1 − ω<br />

1<br />

1 − ω<br />

SOR<br />

D − L D + U D − L<br />

D + U<br />

ω ω ω ω<br />

Para obter uma convergência rápida também gostaríamos que B ≈ A e C ≈ 0. Deste ponto de vista, o ideal<br />

seria B = A e C = 0 (convergência em uma iteração), mas isso viola em geral o critério que B seja “fácil<br />

de resolver”. Um compromisso é necessário: B deve aproximar A o melhor possível sem se tornar muito<br />

complicada.<br />

3.2.1 Convergência dos Métodos Iterativos <strong>Linear</strong>es<br />

3.3 Definição. Para métodos iterativos em geral, o erro algébrico é definido por<br />

enquanto que o erro residual é dado por<br />

e k = x − x k , (3.23)<br />

r k = b − Ax k . (3.24)<br />

O erro algébrico tem interesse puramente teórico (para provar que determinado método iterativo converge,<br />

precisamos mostrar que o erro algébrico tende a zero), já que ele só pode ser calculado uma vez que se<br />

conhece a solução exata, e se este for o caso obviamente não há necessidade de resolver o sistema. Já o erro<br />

residual pode ser usado como critério de parada para o método iterativo. O erro algébrico e o erro residual<br />

estão relacionados através da expressão:<br />

Ae k = r k , (3.25)<br />

pois Ae k = Ax − Ax k = b − Ax k = r k .<br />

Para os métodos iterativos lineares, como<br />

segue que<br />

Be k+1 = Bx − Bx k+1 = Ax + Cx − Cx k − b = C x − x k = Ce k ,<br />

e k+1 = B −1 C e k


Rodney Josué Biezuner 38<br />

ou<br />

e k+1 = Re k . (3.26)<br />

Por este motivo, a matriz de iteração também é chamada de matriz de propagação do erro. Segue de (3.26)<br />

que<br />

e k = R k e 0 , (3.27)<br />

de modo que o erro converge para 0, independentemente do chute inicial x 0 , se e somente se R k → 0. Isso<br />

ocorre se e somente se existe alguma norma matricial · tal que R < 1. Obter uma norma matricial<br />

que satisfaz esta propriedade, no entanto, é difícil. Vamos obter uma condição necessária e suficiente para<br />

R k → 0 em termos do raio espectral da matriz de iteração, que é em geral um pouco mais fácil de calcular.<br />

Antes, para motivar o resultado, suponha que R seja uma matriz diagonalizável com λ1, . . . , λn os seus<br />

autovalores e {v1, . . . , vn} uma correspondente base de autovetores. Escrevendo o erro inicial como uma<br />

combinação linear dos autovetores, temos<br />

Logo,<br />

de modo que<br />

e 0 =<br />

n<br />

aivi.<br />

i=1<br />

e k = R k e 0 =<br />

<br />

e k <br />

n<br />

i=1<br />

aiλ k i vi,<br />

n<br />

|ai| |λi| k |vi| .<br />

i=1<br />

Como |λi| k → 0 se e somente se |λi| < 1, concluímos que e k → 0 qualquer que seja o erro inicial (isto é,<br />

qualquer que seja o chute inicial), se e somente se<br />

ρ (R) = max<br />

1in |λi| < 1 .<br />

3.4 Lema. Se A ∈ Mn (C) e · é qualquer norma matricial, então<br />

ρ (A) A .<br />

Prova. Seja λ um autovalor qualquer de A e x um autovetor não-nulo associado a λ, de modo que<br />

Ax = λx.<br />

Considere a matriz X ∈ Mn (C) cujas colunas são todas iguais ao vetor x. Temos também<br />

de modo que<br />

donde<br />

AX = λX<br />

|λ| X = AX A X ,<br />

|λ| A<br />

para todo autovalor λ de A. Como existe um autovalor λ de A tal que ρ (A) = |λ|, isso prova o resultado. <br />

3.5 Lema. Seja A ∈ Mn (C) e ε > 0 dado. Então existe uma norma matricial · tal que<br />

ρ (A) A ρ (A) + ε. (3.28)


Rodney Josué Biezuner 39<br />

Prova. Toda matriz complexa A é triangularizável através de uma matriz unitária U isto é, isto é, existe<br />

uma matriz triangular T e uma matriz U que satisfaz U ∗ U = UU ∗ = I (veja [Hoffman-Kunze]) tais que<br />

A = U ∗ T U;<br />

T é chamada a forma triangular ou forma normal de Schur de A. Seja então<br />

⎡<br />

λ1<br />

⎢<br />

T = ⎢<br />

⎣<br />

a12<br />

λ2<br />

a22<br />

a23<br />

λ3<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

a1n<br />

a2n<br />

a3n<br />

.<br />

⎤<br />

⎥<br />

⎦<br />

a forma triangular de A. Para t ∈ R arbitrário, considere a matriz diagonal<br />

⎡<br />

t<br />

⎢ t<br />

Dt = ⎢<br />

⎣<br />

2<br />

. ..<br />

tn ⎤<br />

⎥<br />

⎦ .<br />

Temos<br />

DtT D −1<br />

t<br />

⎡<br />

⎢<br />

= ⎢<br />

⎣<br />

λn<br />

λ1 a12t −1 a22t −2 . . . . . . a1nt −n+1<br />

λ2 a23t −1 . . . . . . a2nt −n+2<br />

Logo, para t > 0 suficientemente grande, a matriz DtT D −1<br />

t<br />

λ3 . . . . . . a3nt−n+3 . ..<br />

.<br />

.<br />

λn−1 an−1,nt−1 tem a propriedade que a soma dos valores<br />

absolutos de elementos fora da diagonal principal é menor que ε. Em particular, se ·L denota a norma do<br />

máximo das somas das linhas, podemos garantir que<br />

<br />

ρ (A) + ε<br />

L<br />

DtT D −1<br />

t<br />

para t suficientemente grande. Portanto, fixado um tal t, se definirmos uma norma por<br />

A := DtUAU ∗ D −1<br />

<br />

<br />

t = L U ∗ D −1<br />

<br />

−1 ∗ −1<br />

t AU Dt ,<br />

L<br />

teremos<br />

Pelo lema anterior, ρ (A) A. <br />

A = DtUAU ∗ D −1<br />

<br />

<br />

t = L DtT D −1<br />

t<br />

λn<br />

<br />

ρ (A) + ε.<br />

L<br />

3.6 Lema. Seja A ∈ Mn (C). Se existe alguma norma matricial · tal que A < 1, então<br />

Prova. Se A < 1, então<br />

<br />

A k → 0.<br />

<br />

A k A k → 0.<br />

⎤<br />

⎥ .<br />

⎥<br />


Rodney Josué Biezuner 40<br />

3.7 Proposição. Seja A ∈ Mn (C). Então<br />

se e somente se<br />

A k → 0<br />

ρ (A) < 1.<br />

Prova. Se existe algum autovalor λ de A tal que |λ| 1 e x é um autovetor não-nulo correspondente, então<br />

A k x = λ k x<br />

não converge para 0. Reciprocamente, se ρ (A) < 1, então pelo Lema 3.5 existe uma norma matricial · tal<br />

que A < 1, logo A k → 0 pelo lema anterior. <br />

Finalmente obtemos uma condição necessária e suficiente para um método iterativo linear convergir:<br />

3.8 Corolário. Seja R a matriz de iteração de um método iterativo linear. Então<br />

se e somente se<br />

e k → 0<br />

ρ (R) < 1.<br />

Em outras palavras, um método iterativo linear é convergente independentemente da escolha do chute<br />

inicial se e somente se todos os autovalores da matriz de iteração têm valor absoluto menor que 1.<br />

Portanto, a análise da convergência de um determinado método iterativo linear passa pela análise dos autovalores<br />

de sua matriz de iteração R. Como esta última depende da matriz de coeficientes A do sistema<br />

linear, a convergência ou não de qualquer um dos métodos iterativos lineares vai depender da matriz A.<br />

3.2.2 Velocidade de Convergência dos Métodos Iterativos <strong>Linear</strong>es<br />

O raio espectral também dá informação sobre a velocidade de convergência. Se nós tivermos dois métodos<br />

iterativos lineares diferentes, isto é, duas maneiras diferentes de decompor a matriz A:<br />

A = B1 − C1 = B2 − C2,<br />

então o segundo método convergirá mais rápido se e somente se<br />

ρ (R2) < ρ (R1) .<br />

Em particular, a velocidade de convergência relativa dos métodos iterativos lineares também vai depender<br />

da matriz A: para certas matrizes um determinado método é superior ao outro, enquanto que para outras<br />

matrizes o contrário é verdadeiro.<br />

Vamos analisar a velocidade de convergência dos métodos iterativos com maior precisão. Novamente à<br />

título de motivação, suponha que R é uma matriz diagonalizável com seu maior autovalor sendo um autovalor<br />

simples. Ordene os autovalores de R na forma<br />

|λ1| > |λ2| . . . |λn|<br />

e seja {v1, . . . , vn} uma correspondente base de autovetores. Escrevendo de novo<br />

donde<br />

e 0 =<br />

n<br />

aivi,<br />

i=1<br />

e k = R k e 0 =<br />

n<br />

i=1<br />

aiλ k i vi,


Rodney Josué Biezuner 41<br />

segue que<br />

e k = λ k 1<br />

<br />

a1v1 +<br />

Como k λi<br />

→ 0,<br />

λ1<br />

n<br />

i=2<br />

ai<br />

λi<br />

a taxa de convergência é determinada por |λ1| k . Para k grande, temos<br />

Portanto, e k+1 <br />

e k ≈ λ k 1a1v1.<br />

λ1<br />

k<br />

vi<br />

<br />

.<br />

|e k | = |λ1| = ρ (R) . (3.29)<br />

Em outras palavras, a convergência é linear com taxa de convergência igual ao raio espectral. Se a1 =<br />

0 a convergência será mais rápida, pois dependerá do módulo do segundo autovalor, mas é obviamente<br />

extremamente raro que o erro inicial satisfaça esta condição, isto é, que ele não tenha nenhuma componente<br />

na direção do primeiro autovetor. Para o caso geral, precisamos do seguinte resultado:<br />

3.9 Proposição. Seja A ∈ Mn (C) e · uma norma matricial. Então<br />

ρ (A) = lim A k 1/k .<br />

Prova. Como os autovalores da matriz A k são as k-ésimas potências dos autovalores de A (este resultado<br />

pode ser mais facilmente visto a partir da forma triangular de A), temos que<br />

donde<br />

Por outro lado, dado ε > 0, a matriz<br />

ρ (A) k = ρ A k A k ,<br />

ρ (A) A k 1/k .<br />

B =<br />

1<br />

ρ (A) + ε A<br />

tem raio espectral menor que 1, logo B k → 0. Portanto, existe algum N = N (ε, A) tal que<br />

<br />

B k < 1,<br />

para todo k > N. Logo, A k < (ρ (A) + ε) k ,<br />

donde A k 1/k < ρ (A) + ε<br />

para todo k > N. <br />

3.10 Definição. A taxa média de convergência de um método iterativo linear com matriz de iteração<br />

R é definida como sendo<br />

<br />

Rk (R) = − log R 10<br />

k 1/k = − 1<br />

k log <br />

R 10<br />

k (3.30)<br />

e a taxa assintótica de convergência é dada por<br />

R∞ (R) = lim<br />

k→∞ Rk (R) . (3.31)


Rodney Josué Biezuner 42<br />

3.11 Corolário. Seja R a matriz de iteração de um método iterativo linear. Então a taxa assintótica de<br />

convergência do método é dada por<br />

Prova. Pois<br />

R∞ (R) = − lim<br />

k→∞ log 10<br />

R∞ (R) = − log 10 ρ (R) . (3.32)<br />

<br />

R k 1/k <br />

= − log10 lim R k 1/k = − log10 ρ (R) .<br />

<br />

A taxa assintótica de convergência mede o aumento no número de casas decimais corretas na solução por<br />

iteração. De fato, usando a norma matricial do Lema 3.5 e medindo as normas dos vetores de acordo, temos<br />

donde<br />

ou<br />

Assim, se<br />

teremos<br />

<br />

e k+1 <br />

|e k | =<br />

− log 10<br />

<br />

R k+1 e 0 <br />

|R k e 0 |<br />

<br />

e k+1 <br />

k→∞<br />

R = ρ (R) + ε,<br />

|e k | = − log 10 ρ (R) + O (ε)<br />

<br />

log e 10<br />

k <br />

− log e 10<br />

k+1 = R∞ (R) + O (ε) . (3.33)<br />

<br />

e k = O 10 −p ,<br />

<br />

e k+1 = O 10 −q ,<br />

q − p ≈ R∞ (R) ,<br />

isto é, reduzimos R∞ (R) ≈ q − p casas decimais no erro. Visto de outra forma, como<br />

donde<br />

ou<br />

<br />

e k+m <br />

|e k | =<br />

<br />

R k+m e 0 <br />

− log 10<br />

|R k e 0 | Rm = ρ (R) m + O (ε) ,<br />

<br />

e k+m <br />

|e k | ≈ −m log 10 ρ (R) ,<br />

m = log <br />

e 10<br />

k+m / ek <br />

log10 ρ (R)<br />

é o número de iterações necessárias para diminuir o erro de um número prescrito de casas decimais.<br />

3.2.3 Convergência para Matrizes Simétricas Positivas Definidas<br />

(3.34)<br />

Para matrizes reais simétricas positivas definidas é mais fácil provar a convergência dos métodos iterativos<br />

lineares. Temos o seguinte resultado básico a seguir. Antes precisamos da seguinte definição:<br />

3.12 Definição. Introduzimos uma ordenação parcial em Mn definindo<br />

se<br />

para todo x ∈ C n .<br />

A B<br />

〈Ax, x〉 〈Bx, x〉


Rodney Josué Biezuner 43<br />

Em particular, se A é uma matriz positiva definida, segue que A εI para algum ε (o menor autovalor de<br />

A) e denotamos este fato por<br />

A > 0.<br />

Lembramos que se A é uma matriz simétrica positiva definida e P é uma matriz invertível, então B = P t AP<br />

também é uma matriz simétrica positiva definida, pois<br />

e<br />

B t = P t AP t = P t A t P t t = P t AP = B<br />

〈Bx, x〉 = P t AP x, x = 〈AP x, P x〉 .<br />

3.13 Teorema. Seja A uma matriz simétrica positiva definida e seja A = B −C com B invertível. Então o<br />

método iterativo linear com matriz de iteração R = B −1 C converge se e somente se a matriz simétrica<br />

B t + C é positiva definida.<br />

Prova. Para ver que B t + C é simétrica, escreva B t + C = B t + B − A e note que<br />

B t + C t = B t + B − A t = B + B t − A = B t + B − A = B t + C.<br />

Medimos a norma do erro através da norma induzida por A<br />

|x| A := 〈Ax, x〉 1/2<br />

e consideraremos a norma matricial · A induzida por esta norma. Se provarmos que<br />

o método convergirá. Temos<br />

R A < 1,<br />

R 2<br />

A = B −1 C 2 <br />

B<br />

= sup<br />

A<br />

x=0<br />

−1Cx 2 A<br />

|x| 2<br />

<br />

−1 −1 t −t −1 AB Cx, B Cx C B AB Cx, x<br />

= sup<br />

= sup<br />

. (3.35)<br />

A<br />

x=0 〈Ax, x〉<br />

x=0 〈Ax, x〉<br />

Observe que C t B −t AB −1 C é uma matriz simétrica positiva definida, pois<br />

C t B −t AB −1 C = B t − A B −t AB −1 (B − A) = I − AB −t A I − B −1 A <br />

= I − B −1 A t A I − B −1 A .<br />

Portanto, para provar que R A < 1, basta mostrar que<br />

Continuando o desenvolvimento da expressão em outra direção, temos<br />

C t B −t AB −1 C = I − AB −t A I − B −1 A <br />

C t B −t AB −1 C < A. (3.36)<br />

= A − AB −t A + AB −1 A − AB −t AB −1 A <br />

= A − AB −t B + B t − A B −1 A<br />

= A − B −1 A t B t + C B −1 A.<br />

de modo que (3.36) vale se e somente se B t + C é positiva definida.


Rodney Josué Biezuner 44<br />

3.3 Convergência dos Métodos Iterativos <strong>Linear</strong>es para Matrizes<br />

de Discretização<br />

3.3.1 Convergência do Método de Jacobi<br />

3.14 Teorema. Se A é uma matriz irredutível, diagonalmente dominante tal que |aii| > n<br />

|aij| para pelo<br />

menos alguma linha i, então o método de Jacobi converge.<br />

Prova. Seja D a parte diagonal da matriz A e R = D −1 (D − A) = I − D −1 A a matriz de iteração do<br />

método de Jacobi para A. Suponha por absurdo que exista um autovalor λ de R tal que |λ| 1. Como<br />

λ det λ −1 R − I = det (R − λI) = 0, temos<br />

det I − λ −1 R = 0.<br />

Por outro lado, observe que I − λ−1R também é irredutível, pois<br />

Rij = I − D −1 A <br />

ij =<br />

<br />

0 se i = j,<br />

se i = j,<br />

− aij<br />

aii<br />

−1<br />

I − λ R ij =<br />

<br />

1 se i = j,<br />

se i = j,<br />

−1<br />

aij<br />

λ<br />

aii<br />

de modo que, onde A se anula, I −λ −1 R também se anula. Além disso, I −λ −1 R é diagonalmente dominante<br />

e estritamente dominante nas linhas onde A é, pois |λ| −1 1, I − λ −1 R <br />

n <br />

<br />

I − λ −1 R <br />

j=1<br />

j=i<br />

ij<br />

<br />

<br />

= |λ|−1<br />

|aii|<br />

n<br />

j=1<br />

j=i<br />

|aij| 1<br />

|aii|<br />

ii<br />

= 1 e<br />

n<br />

|aij| .<br />

Mas, pela Proposição 2.36, isso implica que I − λ −1 R é invertível, uma contradição. <br />

O Teorema 3.14 mostra que o método de Jacobi converge para as matrizes de discretização obtidas através<br />

dos esquemas de diferenças finitas do Capítulo 1.<br />

Através do Teorema 3.14, fomos capazes de provar a convergência do método de Jacobi para as matrizes de<br />

discretização sem calcular explicitamente os seus raios espectrais. Para analizar a velocidade de convergência<br />

do método de Jacobi, no entanto, é necessário obter os raios espectrais destas matrizes. Vamos fazer isso para<br />

as matrizes de discretização obtidas a partir da fórmula de três pontos unidimensional e a partir da fórmula<br />

de cinco pontos bidimensional. Para isso, precisaremos obter os autovalores destas matrizes de discretização.<br />

No caso da fórmula de três pontos unidimensional, lembrando que as autofunções para o problema de<br />

Dirichlet do laplaciano no intervalo [0, 1] são as funções trigonométricas<br />

Uj (x) = sen jπx,<br />

isso sugere que os autovetores uj da matriz A sejam os vetores de coordenadas<br />

Uj (x1) , Uj (x2) , . . . , Uj (xn−2) , Uj (xn−1) = Uj (h) , Uj (2h) , . . . , Uj ((n − 2) h) , Uj ((n − 1) h) ,<br />

ou seja, como h = 1/n, os vetores<br />

<br />

uj = sen jπ<br />

<br />

2jπ (n − 2) jπ (n − 1) jπ<br />

, sen , . . . , sen , sen .<br />

n n n<br />

n<br />

Usando identidades trigonométricas, vamos verificar que isso de fato acontece:<br />

j=1<br />

j=i<br />

j=1<br />

j=i


Rodney Josué Biezuner 45<br />

3.15 Lema. Os n − 1 autovalores da matriz de discretização A da fórmula dos três pontos unidimensional<br />

são<br />

λj = 2<br />

h2 <br />

1 − cos jπ<br />

<br />

=<br />

n<br />

4 jπ<br />

sen2<br />

h2 2n<br />

(3.37)<br />

e os autovetores correspondentes são<br />

<br />

uj = sen jπ<br />

n<br />

j = 1, . . . , n − 1.<br />

Prova. Temos<br />

⎡<br />

2 −1<br />

⎢<br />

−1<br />

⎢<br />

⎣<br />

2<br />

−1<br />

−1<br />

. ..<br />

. ..<br />

pois<br />

. ..<br />

. .. −1<br />

−1 2 −1<br />

−1 2<br />

2 sen jπ<br />

n<br />

− sen 2jπ<br />

n<br />

⎡<br />

⎤<br />

⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎦ ⎢<br />

⎣<br />

sen<br />

, sen 2jπ<br />

n<br />

sen jπ<br />

n<br />

sen 2jπ<br />

n<br />

.<br />

.<br />

(n − 2) jπ<br />

sen<br />

n<br />

(n − 1) jπ<br />

n<br />

= 2 sen jπ<br />

n<br />

(n − 2) jπ<br />

, . . . , sen , sen<br />

n<br />

<br />

(n − 1) jπ<br />

n<br />

(3.38)<br />

⎤ ⎡<br />

⎥ ⎢<br />

2 sen<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ = ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎦ ⎣<br />

jπ 2jπ<br />

− sen<br />

n n<br />

− sen jπ<br />

⎤<br />

⎥<br />

2jπ 3jπ<br />

⎥<br />

+ 2 sen − sen ⎥<br />

n n n<br />

⎥<br />

.<br />

⎥<br />

.<br />

⎥<br />

(n − 3) jπ (n − 2) jπ (n − 1) jπ ⎥<br />

− sen + 2 sen − sen ⎥<br />

n<br />

n<br />

n ⎥<br />

(n − 2) jπ (n − 1) jπ ⎦<br />

− sen + 2 sen<br />

n<br />

n<br />

<br />

= 2 1 − cos jπ<br />

⎡<br />

⎢<br />

sen<br />

⎢<br />

⎢<br />

n ⎢<br />

⎣<br />

jπ<br />

n<br />

sen 2jπ<br />

⎤<br />

⎥<br />

n<br />

⎥<br />

. ⎥<br />

. ⎥ ,<br />

⎥<br />

(n − 2) jπ ⎥<br />

sen ⎥<br />

n ⎥<br />

(n − 1) jπ ⎦<br />

sen<br />

n<br />

− 2 sen jπ<br />

n<br />

cos jπ<br />

n<br />

<br />

= 2 1 − cos jπ<br />

<br />

sen<br />

n<br />

jπ<br />

n ,<br />

(n − k − 1) jπ (n − k) jπ (n − k + 1) jπ<br />

− sen + 2 sen − sen<br />

<br />

n<br />

n<br />

n<br />

(n − k) jπ<br />

= − sen<br />

−<br />

n<br />

jπ<br />

<br />

<br />

(n − k) jπ (n − k) jπ<br />

+ 2 sen − sen<br />

+<br />

n<br />

n<br />

n<br />

jπ<br />

<br />

n<br />

(n − k) jπ<br />

= − sen cos<br />

n<br />

jπ (n − k) jπ<br />

+ cos sen<br />

n n<br />

jπ (n − k) jπ<br />

+ 2 sen<br />

n n<br />

(n − k) jπ<br />

− sen cos<br />

n<br />

jπ (n − k) jπ<br />

− cos sen<br />

n n<br />

jπ<br />

<br />

n<br />

= 2 1 − cos jπ<br />

<br />

(n − k) jπ<br />

sen ,<br />

n n


Rodney Josué Biezuner 46<br />

e<br />

(n − 2) jπ (n − 1) jπ<br />

− sen + 2 sen<br />

<br />

n<br />

n<br />

(n − 1) jπ<br />

= − sen<br />

−<br />

n<br />

jπ<br />

<br />

(n − 1) jπ<br />

+ 2 sen<br />

n<br />

n<br />

(n − 1) jπ<br />

= − sen cos<br />

n<br />

jπ (n − 1) jπ<br />

+ cos sen<br />

n n<br />

jπ<br />

n<br />

(n − 1) jπ<br />

= − sen cos<br />

n<br />

jπ (n − 1) jπ<br />

− sen cos<br />

n n<br />

jπ<br />

<br />

n<br />

= 2 1 − cos jπ<br />

<br />

(n − 1) jπ<br />

sen ,<br />

n n<br />

onde na penúltima identidade usamos o fato que<br />

porque<br />

cos<br />

(n − 1) jπ<br />

n<br />

sen jπ<br />

n<br />

= − sen (n − 1) jπ<br />

n<br />

+ 2 sen (n − 1) jπ<br />

n<br />

+ 2 sen (n − 1) jπ<br />

n<br />

cos jπ<br />

n<br />

<br />

(n − 1) jπ<br />

0 = sen jπ = sen<br />

+<br />

n<br />

jπ<br />

<br />

(n − 1) jπ<br />

= sen cos<br />

n<br />

n<br />

jπ (n − 1) jπ<br />

+ cos sen<br />

n n<br />

jπ<br />

n .<br />

<br />

No caso da fórmula de cinco pontos bidimensional, lembrando que as autofunções de Dirichlet do laplaciano<br />

no quadrado unitário [0, 1] × [0, 1] são as funções<br />

Ukl (x, y) = sen kπx sen lπy,<br />

isso sugere que os autovetores ukl da matriz A na ordem lexicográfica são os vetores de coordenadas<br />

ou seja,<br />

ou seja, como h = 1/n, os vetores<br />

ukl =<br />

Ukl (x1, y1) , Ukl (x2, y1) , . . . , Ukl (xn−1, y1) ,<br />

Ukl (x1, y2) , Ukl (x2, y2) , . . . , Ukl (xn−1, y2) ,<br />

.<br />

.<br />

Ukl (x1, yn−1) , Ukl (x2, yn−1) , . . . , Ukl (xn−1, yn−1)<br />

Ukl (h, h) , Ukl (2h, h) , . . . , Ukl ((n − 1) h, h) ,<br />

Ukl (h, 2h) , Ukl (2h, 2h) , . . . , Ukl ((n − 1) h, 2h) ,<br />

.<br />

Ukl (h, (n − 1) h) , Ukl (2h, (n − 1) h) , . . . , Ukl ((n − 1) h, (n − 1) h) ,<br />

<br />

sen kπ<br />

n<br />

sen kπ<br />

n<br />

. . . ,<br />

sen kπ<br />

n<br />

lπ 2kπ<br />

sen , sen<br />

m n<br />

2lπ 2kπ<br />

sen , sen<br />

n n<br />

(n − 1) lπ<br />

sen , sen<br />

n<br />

2kπ<br />

n<br />

lπ (n − 1) kπ<br />

sen , . . . , sen sen<br />

n n<br />

lπ<br />

n ,<br />

2lπ (n − 1) kπ<br />

sen , . . . , sen sen<br />

n n<br />

2lπ<br />

n ,<br />

(n − 1) lπ (n − 1) kπ<br />

sen , . . . , sen sen<br />

n<br />

n<br />

<br />

(n − 1) lπ<br />

.<br />

n


Rodney Josué Biezuner 47<br />

3.16 Lema. Os (n − 1) 2 autovalores da matriz de discretização A da fórmula dos cinco pontos bidimensional<br />

são<br />

λkl = 2<br />

h2 <br />

2 − cos kπ<br />

<br />

lπ<br />

− cos =<br />

n n<br />

4<br />

h2 <br />

<br />

2 kπ lπ<br />

sen + sen2<br />

2n 2n<br />

(3.39)<br />

e os autovetores correspondentes são<br />

ukl =<br />

<br />

sen kπ<br />

n<br />

sen kπ<br />

n<br />

. . . ,<br />

sen kπ<br />

n<br />

lπ 2kπ<br />

sen , sen<br />

n n<br />

2lπ 2kπ<br />

sen , sen<br />

n n<br />

(n − 1) lπ<br />

sen , sen<br />

n<br />

2kπ<br />

n<br />

k = 1, . . . , n − 1, l = 1, . . . , m − 1.<br />

lπ (n − 1) kπ<br />

sen , . . . , sen sen<br />

n n<br />

lπ<br />

n ,<br />

2lπ (n − 1) kπ<br />

sen , . . . , sen<br />

n n<br />

(n − 1) lπ (n − 1) kπ<br />

sen , . . . , sen sen<br />

n<br />

n<br />

sen 2lπ<br />

, (3.40)<br />

n<br />

<br />

(n − 1) lπ<br />

,<br />

n<br />

Prova. Embora a demonstração deste lema possa ser feita de maneira análoga à do lema anterior, usando<br />

identidades trigonométricas, daremos uma demonstração diferente. Lembrando que as autofunções e os<br />

autovalores de Dirichlet do laplaciano no retângulo são facilmente obtidos através do método de separação<br />

de variáveis, encontraremos os autovalores da matriz A usando um método de separação de variáveis discreto<br />

para achar os autovalores do laplaciano discreto dado pela fórmula dos cinco pontos:<br />

− ui,j−1 + ui−1,j − 4ui,j + ui+1,j + ui,j+1<br />

h 2 = λui,j. (3.41)<br />

Em particular, este método não depende da maneira como os pontos da malha são ordenados (não depende<br />

da matriz A usada para representar o laplaciano discreto). Como no método de separação de variáveis<br />

contínuo, assumimos que as soluções da equação discreta acima são produtos da forma<br />

ui,j = F (i) G (j) , (3.42)<br />

onde F e G são funções de uma variável inteira. Substituindo esta expressão na equação de Helmholtz<br />

discreta, obtemos<br />

F (i) G (j − 1) + F (i − 1) G (j) − 4F (i) G (j) + F (i + 1) G (j) + F (i) G (j + 1) = −λh 2 F (i) G (j) .<br />

Dividindo esta equação por F (i) G (j), segue que<br />

F (i − 1) − 2F (i) + F (i + 1)<br />

F (i)<br />

+ G (j − 1) − 2G (j) + G (j + 1)<br />

G (j)<br />

= −λh 2 .<br />

Separando as variáveis, concluímos que cada um dos quocientes acima é independente de i ou de j, isto é,<br />

eles são constantes:<br />

onde as constantes α, β estão relacionadas pela identidade<br />

F (i − 1) − 2F (i) + F (i + 1)<br />

= A,<br />

F (i)<br />

(3.43)<br />

G (j − 1) − 2G (j) + G (j + 1)<br />

= B,<br />

G (j)<br />

(3.44)<br />

A + B = −λh 2 . (3.45)


Rodney Josué Biezuner 48<br />

Estas equações podem ser escritas como fórmulas de recorrência (análogas às equações diferenciais ordinárias<br />

obtidas no método de separação de variáveis contínuo)<br />

F (i + 1) − (A + 2) F (i) + F (i − 1) = 0,<br />

G (j − 1) − (B + 2) G (j) + G (j + 1) = 0.<br />

Para resolvê-las, é mais conveniente trabalhar com as constantes<br />

Desta forma, as equações para F e G tornam-se<br />

2α = A + 2,<br />

2β = B + 2.<br />

F (i − 1) − 2αF (i) + F (i + 1) = 0, (3.46)<br />

G (j − 1) − 2βG (j) + G (j + 1) = 0. (3.47)<br />

Vamos resolver a equação para F , já que a equação para G é idêntica. Substituindo em (3.46) uma solução<br />

da forma<br />

F (i) = z i<br />

(3.48)<br />

obtemos<br />

z i−1 − 2αz i + z i+1 = 0,<br />

donde, dividindo por z i−1 extraímos a equação quadrática (análoga à equação indicial)<br />

As duas raízes são<br />

z 2 − 2αz + 1 = 0. (3.49)<br />

z± = α ± α 2 − 1,<br />

com z+ + z− = 2α e z+z− = 1. Portanto, a solução geral para a equação (3.46) é<br />

F (i) = c1z i + + c2z i −<br />

para algumas constantes c1, c2. Para determinarmos estas constantes e também α, aplicamos as condições<br />

de fronteira, que implicam<br />

F (0) = F (n) = 0.<br />

A primeira destas por sua vez implica que c1 = −c2, logo<br />

F (i) = c z i + − z i −<br />

. (3.50)<br />

Como a equação para F é homogênea, a constante c é arbitrária. Aplicando a segunda, segue que<br />

ou, como z+z− = 1,<br />

z n + = z n −,<br />

z 2n<br />

+ = 1<br />

Conseqüentemente, z+ é uma 2n-ésima raiz complexa de 1:<br />

z+ = e ijπ/n<br />

(3.51)<br />

para algum inteiro 1 k 2n − 1, onde i = √ −1. Como z− = 1/z+, podemos restringir 0 k n − 1 e<br />

(3.50) produz todas as soluções não-triviais F de (3.46).


Rodney Josué Biezuner 49<br />

Portanto,<br />

e, escolhendo c = 1/2,<br />

Analogamente,<br />

e<br />

Segue que os autovalores são<br />

α = z+ + z−<br />

2<br />

= eiπk/n + e −iπk/n<br />

2<br />

= cos kπ<br />

, 0 k n − 1,<br />

n<br />

Fk (i) = e iπki/n − e −iπki/n = sen ikπ<br />

n .<br />

β = cos lπ<br />

, 0 l n − 1,<br />

n<br />

Gl (j) = sen jlπ<br />

n .<br />

λkl = 2<br />

h2 <br />

2 − cos kπ<br />

<br />

lπ<br />

− cos<br />

n n<br />

e as coordenadas das autofunções associadas são dadas por<br />

<br />

(ukl) i,j = Fk (i) Gl (j) = sen ikπ<br />

n<br />

sen jlπ<br />

m .<br />

3.17 Teorema. Seja A a matriz de discretização obtida a partir da fórmula de três pontos unidimensional<br />

ou a partir da fórmula de cinco pontos bidimensional. Seja R = D −1 (D − A) a matriz de iteração do<br />

método de Jacobi. Então<br />

ρ (R) = cos π<br />

. (3.52)<br />

n<br />

Prova. Vamos provar para a fórmula de cinco pontos bidimensional; o argumento para a fórmula de três<br />

pontos unidimensional é análogo e fica deixado como exercício. Para o método de Jacobi, a matriz de<br />

discretização x k+1 = Rx k + D −1 b é obtida através da fórmula:<br />

Já vimos no Lema 3.16 que<br />

com<br />

Daí segue que<br />

Logo<br />

para<br />

u k+1<br />

i,j<br />

1 k<br />

= ui,j−1 + u<br />

4<br />

k i,j+1 + u k i−1,j + u k <br />

i+1,j .<br />

−u kl<br />

i−1,j − u kl<br />

i+1,j + 4u kl<br />

i,j − u kl<br />

i,j−1 − u kl<br />

i,j+1 = λklh 2 u kl<br />

i,j<br />

λkl = 2<br />

h2 <br />

2 − cos kπ<br />

<br />

lπ<br />

− cos .<br />

n n<br />

u kl<br />

i,j−1 + u kl<br />

i,j+1 + u kl<br />

i−1,j + u kl<br />

i+1,j = 4 − λklh 2 u kl<br />

i,j<br />

µlk = 1 − 1<br />

4 λklh 2 = 1 − 1<br />

2<br />

1 kl<br />

ui,j−1 + u<br />

4<br />

kl<br />

i,j+1 + u kl<br />

i−1,j + u kl <br />

i+1,j = µlku kl<br />

i,j<br />

<br />

2 − cos kπ<br />

<br />

lπ<br />

− cos =<br />

n n<br />

1<br />

<br />

cos<br />

2<br />

kπ<br />

<br />

lπ<br />

+ cos .<br />

n n<br />

Estes são os autovalores da matriz de iteração de Jacobi para a matriz de discretização obtida a partir da<br />

fórmula de cinco pontos (observe que elas possuem os mesmos autovetores; no entanto R possui autovalores<br />

nulos). Segue que o máximo autovalor ocorre quando k = l = 1, logo<br />

ρ (R) = cos π<br />

n .


Rodney Josué Biezuner 50<br />

<br />

Para o quadrado unitário temos<br />

ρ (R) = cos (πh) . (3.53)<br />

Vemos em particular que ρ (R) → 1 quando h → 0, de modo que a velocidade de convergência do método<br />

de Jacobi vai ficando cada vez menor para malhas mais refinadas. Podemos dizer mais usando a expansão<br />

da função cosseno em torno da origem<br />

se h é pequeno podemos aproximar<br />

cos x = 1 − 1<br />

2 x2 + O x 4 ;<br />

cos (πh) ≈ 1 − π2<br />

2 h2 ,<br />

de modo que ρ (R) → 1 quadraticamente quando h → 0. Em outras palavras, para uma malha duas vezes<br />

mais refinada (isto é, h reduzido pela metade), o método de Jacobi é cerca de quatro vezes mais vagaroso<br />

em média (consulte novamente a tabela no final da seção anterior). A tabela abaixo mostra os valores do<br />

raio espectral para alguns valores de h:<br />

h 0.1 0.05 0.025<br />

ρ (R) 0.9511 0.9877 0.9969<br />

Para h = 0.025 (correspondente a uma matriz de tamanho n = 39 × 39 = 1521), temos<br />

R∞ (R) = − log 10 (0.9969) = 0.0013484,<br />

de modo que para reduzir o erro pelo fator de uma casa decimal precisamos de<br />

iterações.<br />

m = log 10 0.1<br />

log 10 ρ (R)<br />

1<br />

= −<br />

log10 ρ (R) =<br />

1<br />

≈ 742<br />

0.00135<br />

3.3.2 Convergência do Método de Gauss-Seidel<br />

3.18 Teorema. Se A é uma matriz irredutível, diagonalmente dominante tal que |aii| > n<br />

|aij| para pelo<br />

menos alguma linha i, então o método de Gauss-Seidel converge.<br />

Prova. Sejam D a parte diagonal, −L a parte triangular inferior estrita e −U a parte triangular superior<br />

estrita da matriz A, e seja R = (D − L) −1 U a matriz de iteração do método de Gauss-Seidel para A.<br />

Escrevemos<br />

R = (D − L) −1 U = D I − D −1 L −1 U<br />

ou<br />

j=1<br />

j=i<br />

R = I − D −1 L −1 D −1 U. (3.54)<br />

Suponha por absurdo que exista um autovalor λ de R tal que |λ| 1; como na demonstração do Teorema<br />

3.9, temos<br />

Agora, observando que<br />

det I − λ −1 R <br />

= det I − λ −1 <br />

−1 −1 −1<br />

I − D L D U = 0.<br />

det I − D −1 L = 1


Rodney Josué Biezuner 51<br />

porque I − D−1L é uma matriz triangular inferior com apenas 1’s na diagonal principal, escrevemos<br />

<br />

0 = det I − λ −1 <br />

−1 −1 −1<br />

I − D L D U<br />

= det I − D −1 L <br />

det I − λ −1 <br />

−1 −1 −1<br />

I − D L D U<br />

I −1<br />

= det − D L <br />

I − λ −1 <br />

−1 −1 −1<br />

I − D L D U<br />

Por outro lado,<br />

= det I − D −1 L − λ −1 D −1 U .<br />

D −1 A = I − D −1 L − D −1 U<br />

é irredutível, diagonalmente dominante e estritamente dominante nas linhas onde A é porque<br />

−1<br />

D A ij =<br />

<br />

1 se i = j,<br />

aij<br />

se i = j.<br />

aii<br />

Logo, a matriz I − D −1 L − λ −1 D −1 U também satisfaz estas propriedades, pois I, −D −1 L e −D −1 U são<br />

respectivamente a parte diagonal, a parte triangular inferior estrita e a parte triangular superior estrita da<br />

matriz D −1 A, e multiplicar a parte triangular inferior estrita pelo número λ −1 cujo módulo é menor que ou<br />

igual a 1 não alterará a dominância diagonal (na verdade só tende a melhorá-la) nem acrescentará zeros à<br />

matriz. A Proposição 2.16 implica então que I − D −1 L − λ −1 D −1 U é invertível, um absurdo. <br />

Usando o Teorema 3.18, concluímos que o método de Gauss-Seidel converge para as matrizes de discretização<br />

obtidas através dos esquemas de diferenças finitas do Capítulo 1. Para analizar a velocidade de convergência<br />

do método de Gauss-Seidel, vamos obter os raios espectrais para as matrizes de discretização obtidas a partir<br />

da fórmula de três pontos unidimensional e a partir da fórmula de cinco pontos bidimensional.<br />

3.19 Teorema. Seja A a matriz de discretização obtida a partir da fórmula de três pontos unidimensional<br />

ou a partir da fórmula de cinco pontos bidimensional. Seja R = (D − L) −1 U a matriz de iteração do<br />

método de Gauss-Seidel. Então<br />

2 π<br />

ρ (R) = cos . (3.55)<br />

n<br />

Prova. Para obter o raio espectral da matriz de iteração R, queremos encontrar os autovalores µ de R:<br />

ou seja,<br />

Ru = (D − L) −1 Uu = µu,<br />

Uu = µ (D − L) u<br />

(um problema de autovalor generalizado). No caso da matriz de discretização da fórmula de cinco pontos,<br />

isso significa encontrar µ tal que<br />

Para os autovalores não-nulos, podemos fazer a substituição<br />

ui,j+1 + ui+1,j = µ (4ui,j − ui,j−1 − ui−1,j) . (3.56)<br />

ui,j = µ i+j<br />

2 vi,j (3.57)<br />

para transformar a equação de autovalor naquela que aparece no método de Jacobi. Temos<br />

<br />

µ i+j+1<br />

2 vi,j + µ i+j+1 <br />

2 vi+1,j = µ 4µ i+j<br />

2 vi,j − µ i+j−1<br />

2 vi,j−1 − µ i+j−1<br />

2 vi−1,j<br />

= 4µ i+j+2<br />

2 vi,j − µ i+j+1<br />

2 vi,j−1 − µ i+j+1<br />

2 vi−1,j,


Rodney Josué Biezuner 52<br />

de modo que, dividindo por µ i+j+1<br />

2 , obtemos<br />

vi−1,j + vi+1,j + vi,j−1 + vi,j+1 = µ 1/2 4vi,j.<br />

Portanto os autovalores da matriz de iteração de Gauss-Seidel para esta matriz são exatamente os quadrados<br />

dos autovalores da matriz de iteração de Jacobi (e os autovetores são os mesmos):<br />

µlk = 1<br />

<br />

cos<br />

4<br />

kπ<br />

2 lπ<br />

+ cos .<br />

n n<br />

Portanto, o máximo autovalor ocorre quando k = l = 1 e<br />

2 π<br />

ρ (R) = cos<br />

n .<br />

O argumento para a fórmula de três pontos é análogo. <br />

Para o quadrado unitário temos<br />

ρ (R) = cos 2 (πh) ,<br />

e usando<br />

cos 2 x =<br />

se h é pequeno podemos aproximar<br />

<br />

1 − 1<br />

2 x2 + O x 4 2<br />

= 1 − x 2 + O x 4 ,<br />

cos 2 (πh) ≈ 1 − π 2 h 2 .<br />

No método de Gauss-Seidel ainda temos ρ (R) → 1 quadraticamente quando h → 0, mas a sua velocidade<br />

de convergência para a matriz de discretização de cinco pontos do quadrado unitário é duas vezes maior que<br />

a do método de Jacobi. Para ver isso, faça a expansão do logaritmo em torno do ponto x = 1:<br />

Segue que<br />

3.3.3 Convergência do Método SOR<br />

3.20 Teorema. Se o método SOR converge, então<br />

log (1 + x) = x + O h 2 .<br />

R∞ (RJacobi) = π2<br />

2 h2 + O h 4 , (3.58)<br />

R∞ (RGauss-Seidel) = π 2 h 2 + O h 4 . (3.59)<br />

0 < ω < 2.<br />

Prova. A matriz de iteração do método SOR é<br />

−1 <br />

1<br />

1 − ω<br />

1<br />

R = D − L<br />

D + U =<br />

ω ω<br />

= I − ωD −1 L <br />

−1 −1 1 − ω<br />

ωD D + U<br />

ω<br />

ou<br />

Se λ1, . . . , λn são os autovalores de R, então<br />

ω D I − ωD −1 L −1 <br />

1 − ω<br />

ω<br />

<br />

D + U<br />

R = I − ωD −1 L −1 (1 − ω) I + ωD −1 U . (3.60)<br />

det R = λ1 . . . λn.


Rodney Josué Biezuner 53<br />

Mas,<br />

I −1 −1 −1<br />

det R = det − ωD L (1 − ω) I + ωD U <br />

= det I − ωD −1 L −1 −1<br />

det (1 − ω) I + ωD U<br />

= (1 − ω) n ,<br />

já que I − ωD −1 L é uma matriz triangular inferior com apenas 1 na diagonal principal e (1 − ω) I + ωD −1 U<br />

é uma matriz triangular superior com apenas 1 − ω na diagonal principal. Logo<br />

λ1 . . . λn = (1 − ω) n .<br />

Em particular, pelo menos um dos autovalores λj de R deve satisfazer<br />

|λj| |1 − ω| .<br />

Mas, se o método SOR converge, devemos ter também |λ| < 1 para todo autovalor λ de R. Logo<br />

donde<br />

<br />

|1 − ω| < 1,<br />

0 < ω < 2.<br />

3.21 Corolário. Se R é a matriz de iteração n × n para o método SOR, então<br />

det R = (1 − ω) n .<br />

Em particular, diferente das matrizes de iteração dos métodos de Jacobi e de Gauss-Seidel (para a matriz de<br />

discretização de cinco pontos), zero não é um autovalor para a matriz de iteração do método SOR se ω = 1<br />

(para nenhuma matriz).<br />

3.22 Teorema. Se A é uma matriz irredutível, diagonalmente dominante tal que |aii| > n<br />

|aij| para pelo<br />

menos alguma linha i, então o método SOR converge se 0 < ω 1.<br />

Prova. A demonstração é análoga à do Teorema 3.18. A matriz de iteração do método SOR é<br />

R = I − ωD −1 L −1 (1 − ω) I + ωD −1 U .<br />

Suponha por absurdo que exista um autovalor λ de R tal que |λ| 1; temos<br />

Agora, observando que<br />

det I − λ −1 R = det<br />

j=1<br />

j=i<br />

<br />

I − λ −1 I − ωD −1 L −1 (1 − ω) I + ωD −1 U <br />

= 0.<br />

det I − ωD −1 L = 1<br />

porque I − ωD −1 L é uma matriz triangular inferior com apenas 1’s na diagonal principal, escrevemos<br />

0 = det<br />

<br />

I − λ −1 I − ωD −1 L −1 (1 − ω) I + ωD −1 U <br />

= det I − ωD −1 L det<br />

= det<br />

<br />

I − λ −1 I − ωD −1 L −1 (1 − ω) I + ωD −1 U <br />

I − ωD −1 L <br />

I − λ −1 I − ωD −1 L −1 (1 − ω) I + ωD −1 U <br />

= det I − ωD −1 L − λ −1 (1 − ω) I + ωD −1 U <br />

= det 1 − λ −1 (1 − ω) I − ωD −1 L − λ −1 ωD −1 U .


Rodney Josué Biezuner 54<br />

Por outro lado, como vimos na demonstração do Teorema 3.18, a matriz<br />

D −1 A = I − D −1 L − D −1 U<br />

é irredutível, diagonalmente dominante e estritamente dominante nas linhas onde A é, logo a matriz<br />

S = 1 − λ −1 (1 − ω) I − ωD −1 L − λ −1 ωD −1 U<br />

também satisfaz estas propriedades. De fato, S tem zeros nas mesmas posições que I − D −1 L − D −1 U, logo<br />

a sua irredutibilidade não é afetada. Além disso, pela dominância diagonal de D −1 A, sabemos que se<br />

bij = D −1 L <br />

ij ,<br />

cij = D −1 U <br />

ij .<br />

então<br />

i−1<br />

1 |bij| +<br />

j=1<br />

Para provar a dominância diagonal de S, observamos que os valores que S possui na diagonal principal são<br />

de modo que precisamos provar que<br />

se 0 < ω 1 e |λ| 1. Provaremos que<br />

1 − λ −1 (1 − ω) = 1 −<br />

j=1<br />

n<br />

j=i+1<br />

1 − ω<br />

λ<br />

|cij| .<br />

<br />

<br />

<br />

λ + ω − 1<br />

i−1<br />

<br />

λ ω |bij| + ω<br />

|λ|<br />

<br />

<br />

<br />

λ + ω − 1<br />

<br />

λ ω,<br />

<br />

<br />

<br />

λ + ω − 1<br />

<br />

ω<br />

λ <br />

|λ| .<br />

λ + ω − 1<br />

= ,<br />

λ<br />

Para isso, observe que como |λ| 1 basta provar a primeira desigualdade, a qual por sua vez é equivalente a<br />

|λ + ω − 1| |λ| ω.<br />

É fácil ver que esta desigualdade é válida quando λ ∈ R, pois<br />

n<br />

j=i+1<br />

|cij|<br />

|λ + ω − 1| = λ + ω − 1 λω porque λ − 1 λω − ω = ω (λ − 1) .<br />

Para o caso geral em que λ ∈ C, fazemos cair no caso real escrevendo<br />

|λ + ω − 1| 2 = |λ − (1 − ω)| 2 = |λ| 2 − 2 (Re λ) (1 − ω) + (1 − ω) 2<br />

|λ| 2 − 2 |λ| (1 − ω) + (1 − ω) 2 = [|λ| − (1 − ω)] 2<br />

= [|λ| + ω − 1] 2 |λ| 2 ω 2 .<br />

O resultado acima continua valendo com desigualdade estrita nas linhas onde a desigualdade é estrita. A<br />

Proposição 2.36 implica então que S é invertível, contradizendo det S = 0. <br />

3.23 Teorema. Seja A uma matriz simétrica positiva definida. Então o método SOR converge se 0 < ω < 2.


Rodney Josué Biezuner 55<br />

Prova. Usaremos o Teorema 3.13. Escrevendo A = D − L − U, temos L t = U porque A é simétrica e as<br />

entradas diagonais de D positivas porque A é positiva definida. Para o método SOR temos<br />

B = 1<br />

1 − ω<br />

D − L e C = D + U,<br />

ω ω<br />

logo<br />

B t + C = 1<br />

ω D − Lt 1 − ω 2 − ω<br />

+ D + U =<br />

ω ω D<br />

é uma matriz simétrica positiva definida se 0 < ω < 2. <br />

Na verdade, se as entradas diagonais de uma matriz simétrica são positivas, a condição de ser definida<br />

positiva é equivalente à convergência do método SOR para 0 < ω < 2, como o próximo resultado mostra.<br />

3.24 Teorema. Seja A uma matriz simétrica com entradas diagonais positivas. Então o método SOR<br />

converge se e somente se A é positiva definida e 0 < ω < 2.<br />

Prova. Assuma que A é positiva definida e que 0 < ω < 2. Seja<br />

R = I − ωD −1 L −1 (1 − ω) I + ωD −1 U <br />

a matriz de iteração do método SOR. Se λ é um autovalor de R e x um autovetor associado, temos Rx = λx,<br />

donde (1 − ω) I + ωD −1 U x = λ I − ωD −1 L x.<br />

Fazendo o produto interno canônico (hermitiano) de C n de ambos os lados com o vetor x, segue que<br />

(1 − ω) 〈x, x〉 + ω x, D −1 Ux = λ 〈x, x〉 − ω x, D −1 Lx <br />

Isolando λ,<br />

λ = (1 − ω) 〈x, x〉 + ω x, D−1Ux <br />

〈x, x〉 − ω 〈x, D−1 . (3.61)<br />

Lx〉<br />

Como A é simétrica, o produto de matrizes simétricas D −1 A = I − D −1 U − D −1 L também é; como<br />

D −1 U, D −1 L são respectivamente a parte estritamente triangular superior e estritamente triangular inferior<br />

de uma matriz simétrica, temos<br />

D −1 U t = D −1 L.<br />

Logo<br />

e definindo<br />

podemos escrever<br />

x, D −1 Ux =<br />

D <br />

−1 t<br />

U x, x = D −1 L x, x = 〈x, (D−1L) x〉,<br />

z =<br />

λ =<br />

x, D −1 L x <br />

〈x, x〉<br />

,<br />

(1 − ω) + ωz<br />

. (3.62)<br />

1 − ωz<br />

Os argumentos acima assumem que o denominador é não-nulo. E, de fato, temos<br />

Re z = 1<br />

<br />

−1 −1<br />

1 x, D L x x, D U x<br />

(z + z) = +<br />

2 2 〈x, x〉<br />

〈x, x〉<br />

= 1<br />

<br />

−1 x, I − D A x<br />

=<br />

2 〈x, x〉<br />

1<br />

<br />

−1 x, D A x<br />

1 −<br />

.<br />

2 〈x, x〉<br />

= 1<br />

<br />

−1 −1 x, D L + D U x<br />

2 〈x, x〉


Rodney Josué Biezuner 56<br />

e como A é positiva definida, D −1 A também é, o que implica<br />

x, D −1 A x <br />

〈x, x〉<br />

donde<br />

Re z < 1<br />

2 .<br />

de modo que a parte real do denominador 1 − ωz de λ é não-nula para 0 < ω < 2. Segue que<br />

|λ| 2 = λλ =<br />

[(1 − ω) + ωz] [(1 − ω) + ωz]<br />

(1 − ωz) (1 − ωz)<br />

> 0<br />

= ω2 − 2ω 2 Re z − 2ω + 4ω Re z + 1 − 2ω Re z + ω 2 |z| 2<br />

1 − 2ω Re z + ω 2 |z| 2<br />

ω (2 − ω) (1 − 2 Re z)<br />

= 1 −<br />

1 − 2ω Re z + ω2 2 .<br />

|z|<br />

Como 0 < ω < 2 e Re z < 1<br />

, temos<br />

2<br />

e concluímos que<br />

ω (2 − ω) (1 − 2 Re z) > 0,<br />

|λ| < 1<br />

= (1 − ω)2 + 2ω (1 − ω) Re z + ω 2 |z| 2<br />

1 − 2ω Re z + ω 2 |z| 2<br />

para todo autovalor λ de R, logo o método SOR converge. A demonstração da recíproca (assim como uma<br />

demonstração alternativa, variacional, deste teorema) pode ser vista em [Young]. <br />

Usando o Teorema 3.22, concluímos que o método SOR converge para as matrizes de discretização obtidas<br />

através dos esquemas de diferenças finitas do Capítulo 1 se 0 < ω 1. Isso permite apenas subrelaxamento<br />

do método de Gauss-Seidel, o que em geral reduz a velocidade de convergência. Por outro lado, usando o<br />

Teorema 3.23 ou o Teorema 3.24, concluímos que o método SOR converge para as matrizes de discretização<br />

obtidas a partir da fórmula de três pontos unidimensional e a partir da fórmula de cinco pontos bidimensional<br />

se 0 < ω < 2, já que estas são matrizes simétricas, positivas definidas (já as matrizes de discretização obtidas<br />

através de coordenadas polares ou pelo esquema de Shortley-Weller não são simétricas, em geral, como<br />

vimos).<br />

Em seguida fazemos uma análise da velocidade de convergência do método SOR para a matriz de discretização<br />

da fórmula de cinco pontos, bem como obtemos o melhor valor do fator de relaxamento ω para<br />

este caso.<br />

3.25 Lema. Seja A a matriz de discretização obtida a partir da fórmula de três pontos unidimensional ou<br />

a partir da fórmula de cinco pontos bidimensional. Se λ = 0 é um autovalor de RSOR, então existe<br />

um autovalor λJ de RJ tal que<br />

1 − ω − λ<br />

λJ =<br />

λ1/2 . (3.63)<br />

ω2 Reciprocamente, se λJ é um autovalor de RJ e λ ∈ C satisfaz a equação acima, então λ é um autovalor<br />

de RSOR.<br />

Prova. Argumentamos como na demonstração do Teorema 3.13. Para obter o raio espectral da matriz de<br />

iteração RSOR, queremos encontrar os autovalores λ de RSOR:<br />

RSORu = I − ωD −1 L −1 (1 − ω) I + ωD −1 U u = λu,<br />

ou seja, (1 − ω) I + ωD −1 U u = λ I − ωD −1 L u


Rodney Josué Biezuner 57<br />

No caso da matriz de discretização da fórmula de cinco pontos, isso significa encontrar λ tal que<br />

(1 − ω) ui,j + ω<br />

4 ui,j+1 + ω<br />

4 ui+1,j<br />

<br />

= λ ui,j − ω<br />

4 ui,j−1 − ω<br />

4 ui−1,j<br />

<br />

ou<br />

1 − ω − λ<br />

ui,j =<br />

ω<br />

1<br />

4 (ui,j+1<br />

Fazendo a substituição<br />

+ ui+1,j + λui,j−1 + λui−1,j) . (3.64)<br />

e dividindo por µ i+j+1<br />

2 , segue que<br />

ui,j = λ i+j<br />

2 vi,j<br />

vi−1,j + vi+1,j + vi,j−1 + vi,j+1 =<br />

1 − ω − λ<br />

λ 1/2 ω 4vi,j<br />

e daí o resultado. <br />

Resolvendo a equação (3.63) como uma equação quadrática em √ λ, vemos que as duas raízes λ± = λ±<br />

podem ser escritas na forma<br />

Denotaremos<br />

e por λJ = ρ (RJ) o maior autovalor do método de Jacobi.<br />

λ± = 1<br />

<br />

−ωλJ ± ω<br />

4<br />

2λ2 2 J − 4 (ω − 1) . (3.65)<br />

Λω,λJ = max (|λ+| , |λ−|) (3.66)<br />

3.26 Proposição. Seja A a matriz de discretização obtida a partir da fórmula de três pontos unidimensional<br />

ou a partir da fórmula de cinco pontos bidimensional. Então<br />

Prova. Por definição,<br />

De (3.65) segue que<br />

Λω,λJ = 1<br />

4<br />

ρ (RSOR,ω) = Λ ω,λJ<br />

ρ (RSOR,ω) = max Λω,λJ<br />

λJ<br />

.<br />

<br />

<br />

<br />

ωλJ +<br />

<br />

ω 2 λ 2<br />

2<br />

<br />

J − 4 (ω − 1) <br />

.<br />

2<br />

(3.67)<br />

Se 0 < ω 1, ω2λ 2<br />

J − 4 (ω − 1) 0 e Λω,λJ é uma função crescente de λJ, logo o máximo é atingido em λJ.<br />

Se ω > 1, defina<br />

<br />

4 (ω − 1)<br />

λc =<br />

ω2 .<br />

Se λJ > λc, ω 2 λ 2<br />

J − 4 (ω − 1) > 0 e segue a conclusão como no caso anterior. Se λJ λc, então ω 2 λ 2<br />

J −<br />

4 (ω − 1) 0 e<br />

onde i = √ −1, logo<br />

Λω,λJ =<br />

<br />

<br />

<br />

ωλJ +<br />

= ω − 1,<br />

<br />

ω2λ 2<br />

<br />

J − 4 (ω − 1) = 4 (ω − 1) − ω2λ 2<br />

Ji,<br />

<br />

ω 2 λ 2<br />

<br />

<br />

J − 4 (ω − 1) <br />

<br />

e novamente Λω,λJ é uma função crescente de λJ. <br />

2<br />

<br />

<br />

<br />

= <br />

<br />

ω 2 λ 2 J +<br />

<br />

4 (ω − 1) − ω 2 λ 2<br />

J<br />

2


Rodney Josué Biezuner 58<br />

Defina<br />

ωótimo =<br />

1 +<br />

2<br />

<br />

1 − λ 2<br />

J<br />

. (3.68)<br />

Note que 1 < ωótimo < 2. Mostraremos que ωótimo é de fato o melhor valor para o fator de relaxamento no<br />

método SOR. Antes precisamos do seguinte resultado:<br />

3.27 Proposição. Seja A a matriz de discretização obtida a partir da fórmula de três pontos unidimensional<br />

ou a partir da fórmula de cinco pontos bidimensional. Então<br />

⎧ <br />

⎨ 1<br />

ωλJ ρ (RSOR,ω) =<br />

+ ω<br />

⎩<br />

4<br />

2λ 2<br />

2 J − 4 (ω − 1) se 0 < ω ωótimo,<br />

(3.69)<br />

ω − 1 se ωótimo ω < 2.<br />

Prova. Temos ω 2 λ 2<br />

J − 4 (ω − 1) 0 para 0 < ω < 2 se e somente se ω ωótimo. De fato, as raízes de<br />

f (ω) = ω 2 λ 2<br />

J − 4ω + 4 são<br />

ω± =<br />

<br />

4 ± 4 1 − λ 2<br />

J<br />

2λ 2<br />

J<br />

= 2<br />

λ 2<br />

<br />

1 ± 1 − λ<br />

J<br />

2<br />

<br />

J<br />

de modo que a raiz positiva de f é maior que 2, logo para que f (ω) 0 se 0 < ω < 2, devemos ter<br />

ω 2<br />

λ 2<br />

<br />

1 − 1 − λ<br />

J<br />

2<br />

<br />

J = 2<br />

λ 2<br />

<br />

1 − 1 − λ<br />

J<br />

2<br />

<br />

J<br />

=<br />

1 +<br />

1 +<br />

2<br />

.<br />

<br />

1 − λ 2<br />

J<br />

O resultado segue então como na demonstração da proposição anterior. <br />

<br />

1 − λ 2<br />

J<br />

3.28 Teorema. Seja A a matriz de discretização obtida a partir da fórmula de três pontos unidimensional<br />

ou a partir da fórmula de cinco pontos bidimensional. Então o fator de relaxamento ótimo para o<br />

método SOR é dado por<br />

2<br />

ωótimo =<br />

1 + sen π<br />

n<br />

é o fator de relaxamento ótimo para o método SOR.<br />

Prova. Se 0 < ω ωótimo, então ω 2 λ 2<br />

J − 4 (ω − 1) 0 e<br />

<br />

d<br />

ωλJ + ω<br />

dω<br />

2λ 2<br />

<br />

J − 4 (ω − 1) = λJ<br />

Temos ωλ 2<br />

J − 2 < 0, porque 0 < ω < 2 e λJ < 1, e<br />

pois<br />

<br />

<br />

ωλ 2<br />

<br />

<br />

J − 2<br />

2<br />

<br />

=<br />

<br />

<br />

ωλ 2<br />

<br />

<br />

J − 2<br />

= ω 2 λ 4<br />

J − 4λ 2<br />

λJ<br />

> λJ<br />

Jω + 4 > ω 2 λ 4<br />

<br />

ω 2 λ 2<br />

J − 4 (ω − 1)<br />

<br />

ω2λ 2<br />

J − 4 (ω − 1) + ωλ 2<br />

<br />

ω2λ 2<br />

J − 4 (ω − 1)<br />

<br />

ω 2 λ 2<br />

J − 4 (ω − 1),<br />

J − 4λ 2<br />

2 .<br />

Jω + 4λ 2<br />

J > ω 2 λ 4<br />

J − 4λ 2<br />

J − 2<br />

.<br />

J (ω − 1)<br />

(3.70)


Rodney Josué Biezuner 59<br />

Isso implica<br />

<br />

d<br />

ωλJ + ω<br />

dω<br />

2λ 2<br />

<br />

J − 4 (ω − 1) < 0,<br />

logo ρ (RSOR,ω) é decrescente de 0 até ωótimo. Para ωótimo ω < 2, ρ (RSOR,ω) = ω − 1 é claramente<br />

crescente. Portanto, ρ (RSOR,ω) atinge o seu mínimo em ωótimo.<br />

Pelo Teorema 3.15, temos<br />

λJ = cos π<br />

n ,<br />

logo<br />

ωótimo =<br />

1 +<br />

<br />

Para o quadrado unitário temos<br />

e conseqüentemente<br />

e usando<br />

se h é pequeno podemos aproximar<br />

2<br />

<br />

1 − λ 2<br />

J<br />

ρ (RSOR,ω) =<br />

ωótimo =<br />

2<br />

2<br />

= =<br />

π<br />

1 + 1 − cos2 1 + sen<br />

n<br />

π .<br />

n<br />

2<br />

1 + sen (πh)<br />

2<br />

1 − sen (πh)<br />

− 1 =<br />

1 + sen (πh) 1 + sen (πh) .<br />

1 − x<br />

1 + x = 1 − 2x + O x 2 ,<br />

sen x = x + O x 3 ,<br />

1 − sen (πh)<br />

1 + sen (πh) ≈ 1 − 2πh + O h 2 .<br />

Portanto, usando o valor ótimo de ω no método SOR, temos ρ (R) → 1 linearmente quando h → 0, um<br />

resultado muito melhor que o obtido nos métodos de Jacobi e de Gauss-Seidel. Para uma comparação mais<br />

precisa, usando<br />

log (1 + x) = x + O h 2<br />

temos que<br />

Segue que<br />

R∞ (RSOR) = 2πh + O h 2 . (3.71)<br />

R∞ (RSOR)<br />

R∞ (RGauss-Seidel)<br />

2πh<br />

≈<br />

π2 2<br />

=<br />

h2 πh .<br />

Em particular, se h = 0.025, temos ωótimo = 1. 8545 e R∞ (RSOR) /R∞ (RGauss-Seidel) = 25.5, isto é, o<br />

método SOR é 25 vezes mais rápido que o método de Gauss-Seidel. Quanto mais refinada a malha, maior é<br />

a diferença na velocidade de convergência entre os dois métodos.<br />

3.3.4 Convergência do Método de Jacobi Amortecido<br />

3.29 Teorema. Se o método de Jacobi converge, então o método de Jacobi amortecido converge para<br />

0 < ω 1.


Rodney Josué Biezuner 60<br />

Prova. Vamos escrever a matriz de iteração RJ,ω do método de Jacobi amortecido em função da matriz de<br />

iteração do método de Jacobi RJ. Temos<br />

de modo que<br />

<br />

1<br />

RJ,ω =<br />

ω D<br />

−1 <br />

1<br />

D − A<br />

ω<br />

donde<br />

Em particular,<br />

se e somente se<br />

Portanto, λJ é um autovalor de RJ se e somente se<br />

RJ = D −1 (D − A)<br />

= ωD −1<br />

<br />

1<br />

D − D + D − A = ωD<br />

ω −1<br />

<br />

1<br />

D − D + ωD<br />

ω −1 (D − A)<br />

RJ,ω = (1 − ω) I + ωRJ. (3.72)<br />

RJv = λv<br />

[RJ,ω − (1 − ω) I] v = ωλv.<br />

λJ,ω = ωλJ + 1 − ω (3.73)<br />

é um autovalor de RJ,ω. Logo, se todo autovalor de RJ satisfaz |λJ| < 1 (isto é, ρ (RJ) < 1 equivalente ao<br />

método de Jacobi convergir) e ω < 1, então<br />

|λJ,ω| 2 = (ωλJ + 1 − ω) ωλJ + 1 − ω <br />

= ω 2 |λJ| 2 + 2 Re λJω (1 − ω) + (1 − ω) 2<br />

ω 2 |λJ| 2 + 2 |λJ| ω (1 − ω) + (1 − ω) 2<br />

= (ω |λJ| + 1 − ω) 2<br />

< 1.<br />

<br />

Segue do Teorema 3.13 que o método de Jacobi amortecido converge para as matrizes de discretização do<br />

Capítulo 1 se 0 < ω 1.<br />

3.30 Corolário.<br />

Para o quadrado unitário temos<br />

Usando<br />

se h é pequeno podemos aproximar<br />

ρ (RJ,ω) = ω [ρ (RJ) − 1] + 1. (3.74)<br />

ρ (RJ,ω) = ω [cos (πh) − 1] + 1. (3.75)<br />

cos x = 1 − 1<br />

2 x2 + O x 4 ,<br />

log (1 + x) = x + O h 2 ,<br />

ρ (RJ,ω) ≈ 1 − ω π2<br />

2 h2 + O h 4 ,<br />

R∞ (RJ,ω) ≈ ω π2<br />

2 h2 .<br />

Vemos que a velocidade de convergência do método de Jacobi amortecido é da mesma ordem que a do método<br />

de Jacobi, um pouco pior para valores de ω próximos de 1 e muito pior para valores de ω próximos de 0.


Rodney Josué Biezuner 61<br />

3.3.5 Resumo<br />

3.4 Exercícios<br />

Método ρ (R) R∞ (R)<br />

Jacobi cos (πh)<br />

π 2<br />

2 h2 + O h 4<br />

Gauss-Seidel cos 2 (πh) π 2 h 2 + O h 4<br />

SOR ótimo 1 − 2πh + O h 2<br />

2πh + O h 2<br />

Jacobi amortecido 1 − ω π2<br />

2 h2 + O h 4 ω π2<br />

2 h2 + O h 4<br />

3.1 Os métodos de Jacobi e Gauss-Seidel não são sempre comparáveis: existem sistemas lineares para as<br />

quais o método de Jacobi converge, enquanto que o método de Gauss-Seidel não converge ou até mesmo<br />

diverge, e vice-versa.<br />

a) Verifique no computador que o método de Jacobi converge para o sistema linear<br />

⎧<br />

⎨<br />

⎩<br />

x + z = 2<br />

−x + y = 0<br />

x + 2y − 3z = 0<br />

enquanto que o método de Gauss-Seidel não converge (observe que a solução exata deste sistema é<br />

(1, 1, 1)).<br />

b) Verifique no computador que o método de Gauss-Seidel converge se<br />

⎧<br />

⎨<br />

⎩<br />

2x + y + z = 4<br />

x + 2y + z = 4<br />

x + y + 2z = 4<br />

enquanto que o método de Jacobi não converge, usando o vetor (0, 0, 0) como chute inicial (observe<br />

que a solução exata deste sistema é (1, 1, 1)).<br />

c) Justifique matematicamente o resultado de cada um dos ítens anteriores.


Capítulo 4<br />

Métodos de Projeção<br />

A maioria dos métodos iterativos práticos para a resolução de sistemas lineares grandes usa um processo<br />

de projeção de uma forma ou outra. Um processo de projeção é uma maneira canônica de obter uma<br />

aproximação para a solução do sistema linear dentro de um subespaço especificado. Neste capítulo veremos<br />

a técnica descrita de maneira geral e uma aplicação detalhada para o caso unidimensional.<br />

4.1 Teoria Geral<br />

A idéia básica de uma técnica de projeção é extrair uma solução aproximada para a solução do sistema Ax = b<br />

de um subespaço especificado K ⊂ R n , chamado o subespaço de busca. Se m = dim K, então em geral<br />

são necessárias m restrições para obter esta aproximação. Uma maneira típica de descrever estas restrições<br />

é impor m condições de ortogonalidade; um exemplo é exigir que o vetor residual r = b − Ax seja ortogonal<br />

a m vetores linearmente independentes que geram um subespaço L, chamado o subespaço de restrições.<br />

Muitos métodos matemáticos são baseados neste tipo de descrição, conhecida como as condições de Petrov-<br />

Galerkin. Existem duas classes gerais de métodos de projeção: os métodos de projeção ortogonal, quando<br />

L = K (e neste caso as condições de Petrov-Galerkin são chamadas simplesmente condições de Galerkin), e<br />

os métodos de projeção oblíqua, quando L = K.<br />

4.1 Definição. Seja A ∈ Mn (C) uma matriz invertível e K, L ⊂ R n dois subespaços vetoriais m-dimensionais.<br />

Um método de projeção sobre o subespaço K ortogonal ao subespaço L é um processo que encontra<br />

uma solução aproximada x em K para o sistema Ax = b tal que o vetor residual r = b − Ax é ortogonal<br />

a L, ou seja,<br />

encontrar x ∈ K tal que r = b − Ax ⊥ L. (4.1)<br />

Se queremos explorar o conhecimento de um bom chute inicial x 0 para a solução, então a aproximação é<br />

buscada no espaço afim x 0 + K. Neste caso, a técnica é redefinida como<br />

Denotando<br />

e o vetor resíduo inicial<br />

encontrar x ∈ x 0 + K tal que r = b − Ax ⊥ L. (4.2)<br />

x = x 0 + p<br />

r 0 = b − Ax 0 ,<br />

de modo que r = b − Ax = b − A x 0 + p = r 0 − Ap, a solução aproximada pode ser descrita como<br />

x = x 0 + p, p ∈ K,<br />

r 0 − Ap, w = 0 para todo w ∈ L.<br />

O vetor p que está no subespaço de busca é chamado o vetor de busca.<br />

62<br />

(4.3)


Rodney Josué Biezuner 63<br />

4.1.1 Representação Matricial<br />

Sejam BK = {v1, . . . , vm} e BL = {w1, . . . , wm} bases para K e L, respectivamente. Construímos as matrizes<br />

n × m<br />

V = [v1 · · · vm] , (4.4)<br />

W = [w1 · · · wm] ,<br />

que tem estes vetores como colunas. Então a solução aproximada pode ser escrita na forma<br />

x = x 0 + V y (4.5)<br />

para algum vetor y ∈ R m , ou seja, p = V y. A condição de ortogonalidade r 0 − AV y, w = 0 para todo<br />

w ∈ L também pode ser representada matricialmente na forma<br />

para todo z ∈ R m , ou seja,<br />

ou<br />

(W z) T r 0 − AV y = z T W T r 0 − AV y = 0<br />

W T r 0 − AV y = 0<br />

W T AV y = W T r 0 . (4.6)<br />

A partir daí, se assumirmos que a matriz m × m W T AV é invertível (o que não é garantido mesmo quando<br />

A é invertível; veja Exercício 4.1), obtemos a seguinte expressão matricial para a solução aproximada:<br />

x = x 0 + V W T AV −1 W T r 0 . (4.7)<br />

Desta forma, um algoritmo típico para um método de projeção tem a forma<br />

Algoritmo para um Método de Projeção<br />

do until stop criterion<br />

⎡<br />

⎢<br />

⎣<br />

Selecione um par de subespaços K e L<br />

Escolha bases BK = {v1, . . . , vn} e BL = {w1, . . . , wn} para K e L<br />

r ← b − Ax;<br />

y ← W T AV −1 W T r;<br />

x ← x + V y;<br />

end do<br />

Em muitos algoritmos, a matriz W T AV não precisa ser formada, e muito menos sua inversa calculada, da<br />

mesma forma que a matriz de iteração não precisava ser explicitamente calculada nos métodos iterativos<br />

lineares.<br />

A matriz W T AV é invertível se e somente se nenhum vetor do subespaço AK é ortogonal ao subespaço<br />

L (Exercício 4.2). Duas condições independentes que garantem a invertibilidade de W T AV são dadas pela<br />

proposição seguinte:<br />

4.2 Proposição. Se A ∈ Mn (C) e os subespaços K, L ⊂ R n satisfazem qualquer uma das duas condições a<br />

seguir<br />

(i) A é positiva definida e L = K, ou<br />

(ii) A é invertível e L = AK.<br />

Ax = b<br />

então a matriz W T AV é invertível quaisquer que sejam as bases V, W de K, L, respectivamente.


Rodney Josué Biezuner 64<br />

Prova: (i) Como L = K, podemos escrever W = V P para alguma matriz m × m invertível P (Exercício<br />

4.3). Então<br />

W T AV = P T V T AV<br />

Como A é positiva definida, segue que V T AV também é (Exercício 4.4); em particular, a matriz m × m<br />

V T AV é invertível. Logo, sendo o produto de duas matrizes invertíveis, W T AV é invertível.<br />

(ii) Neste caso, como L = AK, podemos escrever W = AV P para alguma matriz m × m invertível P .<br />

Daí,<br />

W T AV = P T (AV ) T AV.<br />

Como A é invertível, a matriz n × m AV possui posto máximo, logo a matriz m × m (AV ) T AV é invertível<br />

(Exercício 4.5). Novamente, sendo o produto de duas matrizes invertíveis, W T AV é invertível. <br />

Em particular, se A é uma matriz simétrica e um método de projeção ortogonal é utilizado, podemos tomar<br />

V = W e a matriz projetada V T AV também é simétrica; da mesma forma, se além disso A for positiva<br />

definida, V T AV também será.<br />

4.1.2 Minimização de Funcionais<br />

A solução aproximada x do sistema Ax = b através de um método de projeção pode ser obtida como o ponto<br />

de mínimo de um funcional quadrático associado à matriz A. Consideremos primeiro o caso em que A é uma<br />

matriz simétrica positiva definida. Neste caso, a própria solução do sistema Ax = b é o minimizante de um<br />

funcional quadrático associado à matriz A:<br />

4.3 Teorema. (Método Variacional para a Resolução de Sistemas <strong>Linear</strong>es) Seja A ∈ Mn (R) uma matriz<br />

simétrica positiva definida e b ∈ Rn . Então a solução do sistema Ax = b é o único ponto x que<br />

minimiza o funcional quadrático<br />

f (y) = 1<br />

〈Ay, y〉 − 〈b, y〉 .<br />

2<br />

(4.8)<br />

Prova: Uma matriz simétrica positiva definida é em particular invertível, logo existe uma única solução x<br />

para o sistema Ax = b. Temos<br />

Como A é positiva definida, segue que<br />

e<br />

se e somente se y = x. Portanto,<br />

f (y) − f (x) = 1<br />

1<br />

〈Ay, y〉 − 〈b, y〉 − 〈Ax, x〉 + 〈b, x〉<br />

2 2<br />

= 1<br />

1<br />

〈Ay, y〉 − 〈Ax, y〉 − 〈Ax, x〉 + 〈Ax, x〉<br />

2 2<br />

= 1<br />

1<br />

〈Ay, y〉 − 〈Ax, y〉 + 〈Ax, x〉<br />

2 2<br />

= 1 1 1 1<br />

〈Ay, y〉 − 〈Ax, y〉 − 〈Ax, y〉 + 〈Ax, x〉<br />

2 2 2 2<br />

= 1<br />

1<br />

〈A (y − x) , y〉 − 〈A (y − x) , x〉<br />

2 2<br />

= 1<br />

〈A (y − x) , y − x〉 .<br />

2<br />

〈A (y − x) , y − x〉 0<br />

〈A (y − x) , y − x〉 = 0<br />

f (y) > f (x)


Rodney Josué Biezuner 65<br />

para todo y = x e o mínimo de f ocorre em x. <br />

Em muitos problemas, o funcional f tem um significado físico, correspondendo a um funcional de energia; o<br />

minimizante deste funcional de energia corresponde a um estado de equilíbrio do sistema.<br />

Observe que, definindo um produto interno a partir da matriz simétrica positiva definida A da maneira<br />

usual por 〈v, w〉 A = 〈Av, w〉 e considerando a norma vetorial induzida vA = 〈v, v〉 1/2<br />

A , chamada A-norma,<br />

o funcional f pode ser escrito na forma (substituindo b = Ax)<br />

f (y) = 1<br />

2 y2 A − 〈x, y〉 A . (4.9)<br />

O vetor de aproximação x de um método de projeção ortogonal sobre K a partir de um vetor inicial x 0 é<br />

exatamente o minimizante da primeira parte deste funcional sobre o subespaço afim x 0 + K:<br />

4.4 Proposição. Sejam A ∈ Mn (R) uma matriz simétrica positiva definida e L = K. Então x é o vetor de<br />

aproximação de um método de projeção ortogonal sobre K a partir de um vetor inicial x 0 se e somente<br />

se ele minimiza a A-norma do erro sobre x 0 + K, isto é, se e somente se<br />

E (x) = min<br />

y∈x0 E (y) .<br />

+K<br />

Prova: Seja x a solução exata do sistema Ax = b. Então a A-norma do erro é dada por<br />

E (y) = x − y A .<br />

Segue do lema da projeção ortogonal (ou lema da melhor aproximação) que x é um minimizante de E (y)<br />

sobre o subespaço afim x 0 + K se e somente se x − x é A-ortogonal a K, ou seja, se e somente se<br />

ou, equivalentemente,<br />

〈A (x − x) , v〉 = 0 para todo v ∈ K,<br />

〈b − Ax, v〉 = 0 para todo v ∈ K.<br />

Esta é a condição de Galerkin que define o vetor de aproximação de um método de projeção ortogonal (veja<br />

(4.2)). <br />

Vamos considerar agora o caso de um método de projeção oblíqua em que L = AK.<br />

4.5 Proposição. Sejam A ∈ Mn (C) uma matriz qualquer e L = AK. Então x é o vetor de aproximação<br />

de um método de projeção oblíqua sobre K ortogonal a L a partir de um vetor inicial x 0 se e somente<br />

se ele minimiza a 2-norma do resíduo sobre x 0 + K, isto é, se e somente se<br />

R (x) = min<br />

y∈x0 R (y) .<br />

+K<br />

Prova: Considere o sistema Ax = b. Então a 2-norma do resíduo é dada por<br />

R (y) = b − Ay 2 .<br />

Segue do lema da projeção ortogonal (ou lema da melhor aproximação) que x é um minimizante de R (y)<br />

sobre o subespaço afim x 0 + K se e somente se b − Ax é ortogonal a AK = L, ou seja, se e somente se<br />

〈b − Ax, w〉 = 0 para todo w ∈ L.<br />

Esta é a condição de Petrov-Galerkin que define o vetor de aproximação de um método de projeção oblíqua<br />

(veja (4.2)).


Rodney Josué Biezuner 66<br />

4.1.3 Estimativa do Erro em Métodos de Projeção<br />

Se nenhum vetor do subespaço K está próximo da solução exata x, então é impossível encontrar uma boa<br />

aproximação x para x em K. Por outro lado, se existir algum vetor em K que está a uma pequena distância<br />

ε de x, então podemos perguntar qual a melhor aproximação a x podemos encontrar em K. No que se segue<br />

assumiremos x 0 = 0; em particular, o subespaço afim x 0 + K é o subespaço vetorial K.<br />

Seja PK a projeção ortogonal sobre K, definida por<br />

e Q L K<br />

a projeção oblíqua sobre K e ortogonalmente a L, definida por<br />

PKx ∈ K, x − PKx ⊥ K, (4.10)<br />

Q L Kx ∈ K, x − Q L Kx ⊥ L. (4.11)<br />

(Observe que se K = L (isto é, projeção ortogonal), temos Q K K = PK.) Então o problema de aproximação da<br />

Definição 4.1 pode ser expresso na linguagem destes operadores como<br />

Equivalentemente, definindo o operator Am : K −→ K por<br />

ele pode ser expresso na forma<br />

encontrar x ∈ K tal que Q L K (b − Ax) = 0. (4.12)<br />

Am = Q L KAPK,<br />

encontrar x ∈ K tal que Amx = Q L Kb, (4.13)<br />

de modo que um problema n-dimensional é aproximado por um problema m-dimensional.<br />

4.6 Proposição. Assuma x 0 = 0. Suponha que K é invariante por A e que b ∈ K. Então o vetor de<br />

aproximação x de um método de projeção (ortogonal ou oblíqua) sobre K a partir do vetor inicial x 0<br />

é a solução exata x.<br />

Prova: Temos QL K (b − Ax) = 0. Como por hipótese Ax, b ∈ K, segue que QLK Ax = Ax e QLK b = b, logo<br />

b − Ax = 0 e portanto x = x. <br />

O mesmo resultado vale se x0 = 0 sob a hipótese adicional que o resíduo inicial r0 = b − Ax0 ∈ K.<br />

A distância da solução exata x ao subespaço K, que pode ser escrita como (I − PK) x, desempenha um<br />

papel fundamental na estimativa do erro da solução aproximada x ∈ K, já que a distância desta à solução<br />

exata obviamente não pode ser menor que a distância de x a K. O próximo resultado fornece uma estimativa<br />

superior para a norma do resíduo da solução exata com respeito ao operador aproximado Am.<br />

4.7 Teorema. Assuma x 0 = 0 e b ∈ K. Denote<br />

Então a solução exata x satisfaz a estimativa<br />

isto é,<br />

Prova: Como b ∈ K, segue que<br />

γ = Q L KA (I − PK) .<br />

b − Amx γ (I − PK) x ,<br />

dist (Amx, b) γ dist (x, K) .<br />

b − Amx = Q L K (b − APKx) = Q L KA (x − PKx) = Q L KA (I − PK) x.<br />

Daí, já que I − PK é uma projeção e portanto satisfaz (I − PK) 2 = (I − PK), podemos escrever<br />

<br />

b − Amx = Q L KA (I − PK) (I − PK) x γ (I − PK) x .


Rodney Josué Biezuner 67<br />

4.2 Caso Unidimensional: Métodos de Descida<br />

Nesta seção, A será sempre uma matriz real simétrica positiva definida.<br />

Outra maneira de enxergar o resultado do Teorema 4.3 é observar que o gradiente do funcional f é<br />

Se x é um ponto de mínimo temos ∇f (x) = 0, ou seja,<br />

∇f (y) = Ay − b. (4.14)<br />

Ax = b.<br />

O método variacional sugerido pelo Teorema 4.3 é a base dos métodos iterativos de descida em geral, e do<br />

método do gradiente conjugado em particular. A idéia é usar as idéias do cálculo diferencial para encontrar<br />

o mínimo do funcional quadrático f.<br />

4.2.1 Métodos de Descida<br />

A filosofia dos métodos de descida é começar com um chute inicial x 0 e gerar uma seqüência de iterados<br />

x 1 , x 2 , . . . , x k , . . . que satisfazem<br />

f x k+1 f x k<br />

ou, melhor ainda,<br />

f x k+1 < f x k<br />

de tal modo que x k convirja para o minimizador de f. Em outras palavras, em um método de descida<br />

buscamos encontrar uma seqüência minimizante x k que convirja para a solução do sistema.<br />

O passo de x k para x k+1 envolve dois ingredientes: (1) uma direção de busca e (2) um avanço de<br />

comprimento especificado na direção de busca. Uma direção de busca significa a escolha de um vetor p k que<br />

indicará a direção que avançaremos de x k para x k+1 . O comprimento do avanço é equivalente à escolha de<br />

um escalar αk multiplicando o vetor p k . Assim,<br />

x k+1 = x k + αkp k .<br />

A escolha de αk é também chamada uma busca na reta, já que queremos escolher um ponto na reta<br />

x k + αp k : α ∈ R <br />

tal que<br />

f x k + αp k f x k .<br />

Idealmente, gostaríamos de escolher αk de tal modo que<br />

f x k+1 = f x k + αkp k = min<br />

α∈R f x k + αp k<br />

Esta é chamada uma busca exata na reta. Para funcionais quadráticos, a busca exata na reta é trivial e<br />

obtemos uma fórmula para o valor de αk, como veremos a seguir. Denotaremos o resíduo em cada iteração<br />

por<br />

r k = b − Ax k . (4.15)<br />

4.7 Proposição. Seja αk ∈ R tal que<br />

Então<br />

f x k + αkp k = min<br />

α∈R f x k + αp k .<br />

αk =<br />

p k , r k <br />

〈pk , Apk . (4.16)<br />


Rodney Josué Biezuner 68<br />

Prova: Considere o funcional<br />

g é um polinômio quadrático em α, pois<br />

g (α) = f x k + αp k .<br />

g (α) = 1 k k<br />

A x + αp<br />

2<br />

, x k + αp k − b, x k + αp k<br />

= 1<br />

2<br />

k k<br />

Ax , x − b, x k + α k k<br />

Ap , x<br />

2<br />

+ α<br />

2<br />

= f x k + α Ax k , p k − b, p k + α2<br />

2<br />

= f x k − α r k , p k + α2<br />

2<br />

Ap k , p k ,<br />

Ax k , p k + α2<br />

Ap k , p k <br />

2<br />

Ap k , p k − α b, p k<br />

portanto o mínimo de g é atingido no vértice −B/2A da parábola Y = AX 2 + BX + C. <br />

Observe que αk = 0 se e somente se p k , r k = 0, isto é, a direção de busca é ortogonal ao resíduo. Como<br />

gostaríamos sempre que possível de ter x k+1 = x k , devemos sempre escolher a direção de busca de forma a<br />

não ser ortogonal a r k . Se esta escolha é feita, então teremos sempre f x k+1 < f x k .<br />

4.8 Exemplo. (Método de Gauss-Seidel) Considere o método de descida em que as primeiras n direções de<br />

busca p 1 , . . . , p n são os vetores e1, . . . , en da base canônica de R n , e isso é repetido a cada n iterações,<br />

de modo que p k+n = ek para todo k = 1, . . . , n, com uma busca na reta exata executada em cada<br />

iteração. Então cada grupo de n iterações corresponde a uma iteração do método de Gauss-Seidel. <br />

4.9 Exemplo. (Método SOR) Usando as mesmas direções de busca do exemplo anterior, mas com x k+1 =<br />

x k + ωαkp k , ω = 1, obtemos um método de descida em que as buscas nas retas são inexatas. Cada<br />

grupo de n iterações corresponde a uma iteração do método SOR. <br />

Observe que o método de descida é um método de projeção em que L e K são subespaços unidimensionais,<br />

com K = p k e L um subespaço não ortogonal a K, em cada iteração k. Se o método de descida será um<br />

método de projeção ortogonal ou oblíquo dependerá da escolha do vetor de direção de busca p k .<br />

4.2.2 Método da Descida Mais Acentuada<br />

Do Cálculo Diferencial, sabemos que a direção em que a função cresce a uma taxa mais rápida a partir de<br />

um ponto é a direção do gradiente neste ponto. Esta observação é a base da escolha da direção de busca no<br />

método da descida mais acentuada (também chamado método do gradiente). Em outras palavras, escolhemos<br />

ou<br />

p k = −∇f x k = b − Ax k<br />

p k = r k . (4.17)<br />

Como neste caso K = L = p k , o método da descida mais acentuada será um método de projeção ortogonal.<br />

Buscar na direção da descida mais acentuada é uma idéia natural, mas que na prática não funciona sem<br />

modificações. De fato, em alguns casos o método é de velocidade comparável à do método de Jacobi, como<br />

na matriz de discretização da fórmula de cinco pontos aplicada ao problema descrito na primeira seção deste<br />

capítulo [Watkins]:<br />

∆x = 0.1 ∆x = 0.05 ∆x = 0.025<br />

Jacobi 299 1090 3908<br />

Descida Mais Acentuada 304 1114 4010<br />

De fato, como as iterações do método de descida mais acentuada são bem mais custosas que as do método<br />

de Jacobi, o primeiro é muito pior que este último.


Rodney Josué Biezuner 69<br />

Para entender melhor o método da descida mais acentuada, porque ele pode ser lento e as modificações<br />

que vamos fazer para torná-lo mais rápido levando ao método do gradiente conjugado a ser visto no próximo<br />

capítulo, vamos entender o processo do ponto de vista geométrico. Como vimos na demonstração do Teorema<br />

4.3, o funcional quadrático f é da forma<br />

f (y) = 1<br />

〈A (y − x) , (y − x)〉 + c (4.18)<br />

2<br />

onde c = f (x) é uma constante. Já que A é uma matriz simétrica, existe uma matriz ortogonal P tal que<br />

P t AP é uma matriz diagonal D , cujos valores na diagonal principal são exatamente os autovalores positivos<br />

de A. Nas coordenadas<br />

z = P t (y − x) ,<br />

o funcional f tem a forma<br />

f (z) = 1<br />

1<br />

〈Dz, z〉 + c =<br />

2 2<br />

n<br />

i=1<br />

λiz 2 i + c. (4.19)<br />

As curvas de nível do funcional f neste sistema de coordenadas são elipses (em R 2 , elipsóides em R 3 e<br />

hiperelipsóides em R n ) centradas na origem com eixos paralelos aos eixos coordenados e f (0) = c é nível<br />

mínimo de f; elipses correspondentes a menores valores de f estão dentro de elipses correspondentes a maiores<br />

valores de f. Como P é uma aplicação ortogonal, as curvas de nível de f no sistema de coordenadas original<br />

também são elipses, centradas em x, e uma reta de um ponto y até o ponto x corta elipses de níveis cada vez<br />

menores até chegar ao mínimo da função f em x, centro de todas as elipses. O vetor gradiente é perpendicular<br />

às curvas de nível, logo é perpendicular às elipses. Seguir a direção de descida mais acentuada equivale a<br />

cortar a elipse que contém x k ortogonalmente na direção do interior da elipse até encontrar um ponto x k+1<br />

situado em uma elipse que a reta tangencie, pois a partir daí a reta irá na direção de elipses com níveis<br />

maiores, portanto este é o ponto da reta onde f atinge o seu mínimo. Em particular, vemos que a próxima<br />

direção p k+1 é ortogonal à direção anterior p k , tangente a esta elipse (veja também o Corolário 4.12). Em<br />

geral, a direção de descida mais acentuada não é a direção de x (quando bastaria uma iteração para atingir<br />

a solução exata) a não ser que A seja um múltiplo escalar da identidade, de modo que todos os autovalores<br />

de A são iguais e as elipses são círculos. Por outro lado, se os autovalores de A têm valores muito diferentes<br />

uns dos outros, com alguns muito pequenos e alguns muito grandes, as elipses serão bastante excêntricas<br />

e, dependendo do chute inicial, a convergência pode ser muito lenta. Matrizes com estas propriedades são<br />

chamadas mal-condicionadas; para que o método de descida acentuada seja lento, a matriz A não precisa<br />

ser muito mal-condicionada (veja a Definição 4.14 e a discussão que se segue).<br />

Como vimos na seção anterior, os algoritmos de Gauss-Seidel e SOR podem ser encarados como algoritmos<br />

de descida. A discussão no parágrafo anterior também pode ser usada para entender a relativa lentidão destes<br />

algoritmos.<br />

A seguir, provaremos a convergência do método da descida mais acentuada.<br />

4.10 Lema. (Desigualdade de Kantorovich) Sejam A ∈ Mn (R) uma matriz simétrica positiva definida e<br />

denote por λmax e λmin seu menor autovalor e seu maior autovalor, respectivamente. Então<br />

para todo x = 0.<br />

〈Ax, x〉 A −1 x, x <br />

〈x, x〉 2<br />

(λmin + λmax) 2<br />

4λminλmax<br />

Prova: Denote os autovalores de A por λ1 . . . λn, de modo que λmin = λ1 e λmax = λn. Como o<br />

quociente à esquerda da desigualdade é homogêneo, basta provar a desigualdade para vetores x unitários.<br />

Como A é simétrica, existem uma matriz diagonal D e uma matriz ortogonal P tais que A = P T DP . Segue<br />

que<br />

〈Ax, x〉 A −1 x, x = P T DP x, x P T D −1 P x, x = 〈DP x, P x〉 D −1 P x, P x .


Rodney Josué Biezuner 70<br />

Denote y = P x = (y1, . . . , yn) e βi = y2 i . Então y também é um vetor unitário e<br />

λ := 〈Dy, y〉 =<br />

n<br />

i=1<br />

βiλi<br />

é uma combinação convexa dos autovalores λi de A, ao passo que<br />

é uma combinação convexa dos autovalores λ −1<br />

i<br />

µ := D −1 y, y =<br />

µ 1<br />

λ1<br />

n<br />

βi<br />

λi<br />

i=1<br />

de A −1 . Consequentemente,<br />

+ 1<br />

−<br />

λn<br />

λ<br />

. (4.20)<br />

λ1λn<br />

De fato, a função ϕ (t) = 1/t é convexa, logo o ponto (λ, µ), que é a combinação convexa de pontos localizados<br />

no gráfico de ϕ, está localizado na região plana convexa limitada pelo gráfico de ϕ e o segmento de reta que<br />

une os pontos extremos do gráfico (λ1, 1/λ1) e (λn, 1/λn), ou seja, o segmento de reta<br />

t ↦−→ − 1<br />

λ1λn<br />

t + 1<br />

λ1<br />

+ 1<br />

, λ1 t λn.<br />

λn<br />

Em particular, o ponto (λ, µ) está abaixo do ponto do segmento correspondente a t = λ.<br />

Portanto,<br />

〈Ax, x〉 A −1 x, x <br />

1<br />

= λµ λ +<br />

λ1<br />

1<br />

−<br />

λn<br />

λ<br />

<br />

.<br />

λ1λn<br />

O máximo da função quadrática<br />

é atingido para t = (a + b) /2. Concluímos que<br />

<br />

〈Ax, x〉 A −1 x, x λ1 + λn<br />

2<br />

<br />

1 1 t<br />

t ↦−→ t + −<br />

a b ab<br />

1<br />

λ1<br />

+ 1<br />

−<br />

λn<br />

λ1<br />

<br />

+ λn<br />

2λ1λn<br />

= (λ1 + λn) 2<br />

.<br />

4λ1λn<br />

4.11 Lema. Seja x k+1 = x k + αkp k obtido através de uma busca exata na reta. Então<br />

e<br />

Prova: Temos<br />

r k+1 ⊥ p k<br />

e k+1 ⊥A p k .<br />

b − Ax k+1 = b − Ax k − αkAp k ,<br />

de modo que a seqüência dos resíduos é dada pela fórmula<br />

Logo,<br />

k+1 k<br />

r , p = r k+1 , p k k k<br />

− αk Ap , p = r k , p k −<br />

r k+1 = r k − αkAp k . (4.21)<br />

<br />

k k p , r <br />

〈pk , Apk k k<br />

Ap , p<br />

〉<br />

= 0.


Rodney Josué Biezuner 71<br />

A segunda relação de A-ortogonalidade segue diretamente da primeira relação de ortogonalidade; de fato,<br />

lembrando que<br />

Ae k+1 = r k+1 ,<br />

temos e k+1 , p k <br />

A = Ae k+1 , p k = r k+1 , p k = 0.<br />

<br />

O significado geométrico deste resultado é que o mínimo do funcional f na reta xk + αkpk ocorre quando a<br />

derivada direcional de f na direção de busca é zero, ou seja,<br />

0 = ∂f k+1<br />

x<br />

∂pk<br />

= ∇f x k+1 k+1<br />

, pk = r , pk .<br />

4.12 Corolário. No método da descida mais acentuada vale<br />

e<br />

r k+1 ⊥ r k<br />

e k+1 ⊥A r k .<br />

4.13 Teorema. Sejam A ∈ Mn (R) uma matriz simétrica positiva definida e denote por λmax e λmin seu<br />

menor autovalor e seu maior autovalor, respectivamente. Então o erro algébrico do método da descida<br />

mais acentuada satisfaz a estimativa<br />

Em particular,<br />

<br />

k+1<br />

e <br />

A λmax − λmin <br />

k<br />

e<br />

λmax + λmin<br />

.<br />

A<br />

<br />

e k A <br />

λmax − λmin<br />

λmax + λmin<br />

k e 0 A<br />

e portanto o método da descida mais acentuada converge qualquer que seja o chute inicial x 0 .<br />

Prova: Temos<br />

e k+1 = x − x k+1 = x − x k + αkr k = e k − αkr k .<br />

Logo, pelo Corolário 4.12,<br />

<br />

k+1<br />

e 2<br />

A = e k+1 , e k+1<br />

A = e k+1 , e k k+1 k<br />

− αk e , r<br />

A <br />

A = e k+1 , e k<br />

A<br />

= e k+1 , Ae k = e k+1 , r k .<br />

Daí, usando a desigualdade de Kantorovich,<br />

<br />

e k+1 2<br />

A = e k − αkr k , r k = e k , r k − αk<br />

= e k <br />

k k<br />

, r<br />

k r , r<br />

1 −<br />

<br />

k k r , r <br />

= e k <br />

, Ae<br />

k<br />

1 −<br />

= k<br />

e 2<br />

<br />

1 −<br />

A<br />

e k 2<br />

A<br />

= e k 2<br />

A<br />

<br />

〈rk , Ark 〉 〈ek , rk 〉<br />

<br />

k k r , r <br />

k k r , r <br />

r k , r k <br />

〈rk , Ark 〉 〈A−1rk , rk 〉<br />

<br />

k k r , r <br />

k k r , r <br />

〈rk , Ark 〉 〈rk , A−1rk 〉<br />

1 − 4λminλmax<br />

(λmin + λmax) 2<br />

λmax − λmin<br />

λmax + λmin<br />

2<br />

.


Rodney Josué Biezuner 72<br />

<br />

Observamos que o fator de convergência obtido no Teorema 4.13 é ótimo (veja Exercício 4.6).<br />

Introduzimos o número de condição de uma matriz, que é uma medida do quão mal-comportada ela é.<br />

4.14 Definição. Seja A ∈ Mn (R) uma matriz simétrica positiva definida. O número de condição de A é<br />

definido por<br />

κ (A) = λmax<br />

.<br />

λmin<br />

Quanto menor o número de condição de A, isto é, quanto mais próximo de 1, mais próximos a esferas<br />

são os elipsóides de nível do funcional f; reciprocamente, quando maior o número de condição de A, mais<br />

excêntricos são estes. A constante do Teorema 4.13 pode ser mais convenientemente expressa em termos do<br />

número de condição da matriz:<br />

4.15 Corolário. Sejam A ∈ Mn (R) uma matriz simétrica positiva definida e denote por λmax e λmin seu<br />

menor autovalor e seu maior autovalor, respectivamente. Então o erro algébrico do método da descida<br />

mais acentuada satisfaz a estimativa<br />

<br />

k+1<br />

e <br />

κ (A) − 1 <br />

k<br />

e A κ (A) + 1<br />

. A<br />

Desta forma, vemos que quanto mais κ (A) é próximo de 1 maior é a velocidade de convergência do método<br />

da descida acentuada; reciprocamente, quando maior κ (A), mais lento ele é.<br />

Reunindo as informações obtidas, um algoritmo para o método da descida mais acentuada pode ser<br />

apresentado da seguinte forma:<br />

initialize x;<br />

set b;<br />

r ← b − Ax;<br />

do ⎡ until stop criterion<br />

compute Ar;<br />

⎢ α ← 〈r, r〉 / 〈r, Ar〉 ;<br />

⎣ x ← x + αr;<br />

r ← r − αAr;<br />

4.3 Exercícios<br />

4.1 Considere a matriz invertível<br />

A =<br />

0 I<br />

I I<br />

onde I é a matriz identidade m × m, e seja V = W = {e1, . . . , em}. Verifique que W T AV é singular.<br />

4.2 Verifique que a matriz W T AV é invertível se e somente se nenhum vetor do subespaço AK é ortogonal<br />

ao subespaço L.<br />

4.3 Sejam B1 = {v1, . . . , vm} e B2 = {w1, . . . , wm} duas bases para o subespaço K ⊂ R n e considere as<br />

matrizes n × m V = [v1 · · · vm] e W = [w1 · · · wm]. Mostre que existe uma matriz m × m invertível P<br />

tal que V = W P .<br />

4.4 Mostre que se A é uma matriz positiva definida n × n e V é uma matriz n × m cujas colunas são<br />

linearmente independentes, então a matriz m × m V T AV também é uma matriz positiva definida.<br />

4.5 Mostre que se A é uma matriz n × m cujas colunas são linearmente independentes, então a matriz<br />

m × m B T B é invertível.<br />

<br />

,


Rodney Josué Biezuner 73<br />

4.6 Verifique que a taxa de convergência para o método da descida mais acentuada obtida no Teorema 4.12<br />

é ótima da seguinte maneira: se v1 e vn são os autovetores associados a λmin e λmax, respectivamente,<br />

mostre que se e 0 = v1 + v2, então<br />

<br />

e k+1 A = λmax − λmin<br />

λmax + λmin<br />

<br />

e k A .<br />

4.7 O número de condição para uma matriz invertível A ∈ Mn (C) qualquer é definido por<br />

<br />

κ (A) = A −1<br />

2 A .<br />

2<br />

a) Mostre que se A é uma matriz simétrica positiva definida esta definição coincide com a Definição<br />

4.14.<br />

b) Verifique que κ (A) 1 para toda matriz A.<br />

c) Considere o sistema Ax = b. Se y é uma aproximação de x com erro algébrico e = x − y e erro<br />

residual r = b − Ay, mostre que<br />

1 f2 e2 r2 κ (A)<br />

κ (A) x2 f2 e2 .<br />

x2 Esta desigualdade é ótima, no sentido de que a igualdade é atingida para certos valores de y. Ela<br />

mostra que para uma matriz mal-condicionada (isto é, com um número de condição relativamente<br />

alto), o erro residual pode ser muito pequeno ao mesmo tempo em que o erro algébrico pode ser muito<br />

grande e vice-versa.


Capítulo 5<br />

Métodos de Subespaços de Krylov<br />

Os métodos de projeção deste capítulo estão entre os mais importantes e populares disponíveis. Eles estão<br />

baseados na projeção sobre subespaços de Krylov, que são subespaços gerados por vetores da forma p (A) v<br />

onde p é um polinômio.<br />

5.1 Motivação<br />

Como vimos ao estudar os métodos iterativos lineares para a resolução do sistema Ax = b, estes métodos<br />

consistem em obter uma decomposição apropriada A = B − C da matriz do sistema, onde B é uma matriz<br />

próxima da matriz original A mas fácil de resolver. Então o método iterativo pode ser descrito pela relação<br />

de recorrência<br />

x m+1 = I − B −1 A x m + B −1 b,<br />

onde R = I − B −1 A é a matriz de iteração. A matriz mais fácil de resolver é<br />

B = I,<br />

exceto que esta matriz em geral está muito longe de A. Quando esta escolha é feita, obtemos a chamada<br />

iteração de Richardson:<br />

x m+1 = (I − A) x m + b = x m + b − Ax m<br />

ou, simplesmente,<br />

x m+1 = x m + r m . (5.1)<br />

Assim, o método da iteração de Richardson consiste simplesmente em somar o resíduo da aproximação à<br />

própria aproximação para obter a próxima aproximação. Na verdade, o método de iteração de Richardson<br />

desempenha papel importante na teoria de convergência dos métodos iterativos: por exemplo, todo método<br />

iterativo linear com decomposição A = B − C pode ser visto como a iteração de Richardson aplicada ao<br />

sistema equivalente (precondicionado)<br />

B −1 Ax = B −1 b.<br />

A partir de (5.1) obtemos sua correspondente equação residual:<br />

Através da iteração para trás desta equação obtemos<br />

r m+1 = (I − A) r m . (5.2)<br />

r m = (I − A) m r 0<br />

(5.3)<br />

= pm (A) r 0 , (5.4)<br />

74


Rodney Josué Biezuner 75<br />

ou seja, o m-ésimo resíduo é da forma pm (A) r 0 onde pm é um polinômio de grau m. Além disso, como<br />

x m+1 = x m + r m = x m−1 + r m−1 + r m = . . . =<br />

=<br />

m<br />

j=0<br />

(I − A) j r 0 ,<br />

m<br />

r j<br />

segue que as aproximação também são da forma qm (A) r 0 onde qm é um polinômio de grau igual a m.<br />

Portanto, tanto os resíduos r0 , . . . , rm como as aproximações x0 , . . . , xm pertencem ao subespaço<br />

0<br />

Km+1 A, r = p (A) r 0 : p é um polinômio de grau menor que ou igual a m <br />

= r 0 , Ar 0 , . . . , A m r 0 .<br />

5.2 Subespaços de Krylov<br />

5.1 Definição. Dada uma matriz A ∈ Mn (C) e um vetor v ∈ C n , definimos o subespaço de Krylov<br />

Km (A, v) = v, Av, . . . , A m−1 v . (5.5)<br />

Em outras palavras, Km (A, v) é o subespaço de todos os vetores que podem ser escritos na forma w = p (A) v,<br />

onde p é um polinômio de grau menor que ou igual a m−1. Se não houver motivo para confusão denotaremos<br />

o subespaço de Krylov Km (A, v) simplesmente por Km.<br />

Como vimos no capítulo anterior, um método de projeção geral para resolver o sistema linear<br />

Ax = b<br />

extrai uma solução aproximada x m de um subespaço afim x 0 + Km de dimensão m através da imposição da<br />

condição de Petrov-Galerkin<br />

r m = b − Ax m ⊥ Lm.<br />

Um método de subespaço de Krylov é um método de projeção para o qual o subespaço Km é o subespaço<br />

de Krylov<br />

0<br />

Km A, r = r 0 , Ar 0 , . . . , A m−1 r 0 . (5.6)<br />

As diferentes versões de métodos de subespaço de Krylov decorrem principalmente das diferentes escolhas<br />

de Lm.<br />

Lembramos alguns fatos de <strong>Álgebra</strong> <strong>Linear</strong>.<br />

5.2 Definição. O polinômio mínimo de um vetor v com respeito à matriz A (também chamado o Aanulador<br />

de v) é o polinômio mônico de menor grau p que anula v, isto é, tal que p (A) v = 0. O grau<br />

do polinômio mínimo é chamado o grau de v com respeito a A.<br />

É uma consequência do Teorema de Cayley-Hamilton que<br />

grau v n.<br />

5.3 Proposição. Seja d = grau v. Então Kd é invariante por A e Kd = Km para todo m d.<br />

Além disso,<br />

se e somente se m d. Portanto,<br />

dim Km = m<br />

dim Km = min {m, d} .<br />

j=0


Rodney Josué Biezuner 76<br />

Prova: Os vetores v, Av, . . . , A m−1 v formam uma base para Km se e somente se o único polinômio de grau<br />

menor ou igual a m − 1 que anula v é o polinômio nulo. <br />

Apesar dos vetores v, Av, . . . , A m−1 v formarem uma base para o subespaço de Krylov Km (quando m <br />

grau v), esta é uma base mal-condicionada, no sentido que à medida que k aumenta o vetor A k v fica cada vez<br />

mais próximo do autovetor associado ao maior autovalor de A, como veremos em detalhe quando estudarmos<br />

o método de potências para obter autovalores de matrizes. Assim, para m grande os vetores v, Av, . . . , A m−1 v<br />

tornam-se aproximadamente linearmente dependentes, o que torna-se um problema em aritmética de precisão<br />

finita. Para obter uma base bem condicionada para o subespaço de Krylov é necessário usar um método de<br />

ortogonalização, como veremos a seguir.<br />

5.3 Algoritmo de Arnoldi<br />

O método de Arnoldi é um método de projeção ortogonal em subespaços de Krylov, ou seja, Lm = Km =<br />

<br />

0<br />

Km A, r , aplicável para matrizes gerais, não necessariamente hermitianas. O procedimento foi introduzido<br />

pela primeira vez em 1951 como uma maneira de calcular a forma de Hessenberg de matrizes densas. Arnoldi<br />

sugeriu que os autovalores da forma de Hessenberg, obtida através de menos que n passos, eram boas<br />

aproximações para alguns dos autovalores da matriz original. Posteriormente, verificou-se que isso conduz<br />

a uma técnica eficiente para a aproximação dos autovalores de matrizes esparsas grandes, como veremos<br />

em detalhes quando formos estudar métodos para a obtenção de autovalores de matrizes. Posteriormente o<br />

método foi estendido para a solução de sistemas lineares esparsos grandes.<br />

O algoritmo de Arnoldi , propriamente dito, é um procedimento para a construção de uma base ortonormal<br />

para o subespaço de Krylov Km, já que, como observado antes, a base natural v, Av, . . . , Am−1v não é<br />

bem condicionada. Simplesmente ortogonalizar esta base mal-condicionada também não é uma boa opção<br />

numérica. No algoritmo de Arnoldi, o processo de ortogonalização de Gram-Schmidt é usado da seguinte<br />

maneira. Inicialmente obtém-se o primeiro vetor unitário através da normalização do vetor v:<br />

v1 = v<br />

v .<br />

Em seguida, calcula-se o vetor Av1 (ao invés de Av) e ortogonaliza-se este vetor com relação ao vetor v1<br />

através do método de Gram-Schmidt:<br />

w1 = Av1 − proj Av1 = Av1 − 〈Av1, v1〉 v1,<br />

〈v1〉<br />

v2 = w1<br />

w1 .<br />

Tendo sido obtido o vetor v2, calcula-se Av2 (ao invés de A 2 v = A (Av)) e ortogonaliza-se este vetor com<br />

relação aos vetores v1, v2 através do método de Gram-Schmidt:<br />

w2 = Av2 − proj Av2 = Av2 − 〈Av2, v1〉 v1 − 〈Av2, v2〉 v2,<br />

〈v1,v2〉<br />

v3 = w2<br />

w2 .<br />

No passo geral, tendo sido obtido o vetor vj no passo anterior, calcula-se e ortogonaliza-se este vetor com<br />

relação aos vetores v1, . . . , vj obtidos nos passos anteriores através do método de Gram-Schmidt:<br />

wj = Avj − proj<br />

〈v1,...,vj〉<br />

Avj = Avj −<br />

j<br />

〈Avj, vi〉 vi, (5.7)<br />

i=1<br />

vj+1 = wj<br />

. (5.8)<br />

wj


Rodney Josué Biezuner 77<br />

Podemos resumir este procedimento no seguinte algoritmo:<br />

Algoritmo de Arnoldi<br />

Atribua v;<br />

v1 ← v/ v2 ;<br />

Para<br />

⎡<br />

j = 1, . . . , m faça:<br />

Calcule hij = 〈Avj, vi〉 para i = 1, . . . , j;<br />

⎢ Calcule wj = Avj −<br />

⎢<br />

⎣<br />

j<br />

hijvi;<br />

i=1<br />

hj+1,j = wj2 ;<br />

Se hj+1,j = 0 então pare;<br />

vj+1 ← wj/hj+1,j;<br />

fim do laço<br />

O algoritmo sofre um colapso se o vetor wj é nulo e o vetor vj+1 não pode mais ser calculado.<br />

5.4 Proposição. Assuma que o algoritmo de Arnoldi não pára antes do m-ésimo passo. Então os vetores<br />

v1, . . . , vm formam uma base ortonormal para o subespaço de Krylov<br />

Km (A, v1) = v1, Av1, . . . , A m−1 <br />

v1<br />

Prova: Os vetores v1, . . . , vm são ortonormais por construção, logo são linearmente independentes. Basta<br />

então mostrar que v1, . . . , vm ∈ Km (A, v1) para concluir que eles formam uma base para Km (A, v1). Para<br />

isso, basta mostrar que cada vetor vj é da forma qj−1 (A) v1 para algum polinômio qj−1 de grau j − 1. Isso<br />

pode ser visto por indução. Se j = 1, temos q0 (t) ≡ 1. Assumindo o resultado verdadeiro para todos os<br />

inteiros até j, considere vj+1. Temos<br />

hj+1,jvj+1 = wj = Avj −<br />

j<br />

hijvi = Aqj−1 (A) v1 −<br />

i=1<br />

de modo que vj+1 = qj (A) v1 para qj = (1/hj+1,j)<br />

j<br />

hijqi−1 (A) v1,<br />

i=1<br />

<br />

tqj−1 (t) − j<br />

<br />

hijqi−1 (t) , que é um polinômio de grau<br />

j. <br />

O significado do colapso do algoritmo de Arnoldi, quando o vetor vj+1 não pode ser mais calculado é<br />

dado a seguir:<br />

5.5 Proposição. O algoritmo de Arnoldi sofre um colapso no passo j, isto é hj+1,j = 0, se e somente se<br />

o polinômio mínimo de v tem grau j. Além disso, neste caso o subespaço Kj é invariante por A e<br />

portanto a solução obtida pelo método de projeção associado é exata.<br />

Prova: Se o grau de v é j, então hj+1,j = 0, caso contrário vj+1 poderia ser definido e pela Proposição 5.4<br />

Kj+1 teria dimensão j + 1 maior que o grau de v, contrariando a Proposição 5.3.<br />

Reciprocamente, assuma hj+1,j = 0. Então pelas Proposições 5.3 e 5.4 o grau de v é d j. Mas pela<br />

primeira parte desta demonstração, não podemos ter d < j, pois isso implicaria hd+1,d = 0 e o algoritmo já<br />

teria entrado em colapso no passo d.<br />

O restante do enunciado segue diretamente da Proposição 5.3 e da Proposição 4.6. <br />

Por isso, tais colapsos são chamados colapsos sortudos. Infelizmente eles raramente ocorrem na prática, mas<br />

mesmo quando isso não ocorre as iteradas obtidas aproximam a solução exata em um número relativamente<br />

pequeno de iterações se comparado com os métodos lineares básicos.<br />

Vamos agora representar o algoritmo de Arnoldi em uma forma matricial.<br />

5.6 Definição. Dizemos que A = (aij) é uma matriz de Hessenberg se aij = 0 para todo i > j + 1<br />

(matriz de Hessenberg superior) ou se aij = 0 para todo i < j − 1 (matriz de Hessenberg inferior).<br />

i=1


Rodney Josué Biezuner 78<br />

Assim, uma típica matriz de Hessenberg superior quadrada m × m é da forma<br />

⎡<br />

h11<br />

⎢ h21 ⎢<br />

0<br />

⎢<br />

0<br />

H = ⎢ 0<br />

⎢<br />

.<br />

⎢ .<br />

⎢<br />

⎣<br />

.<br />

.<br />

h12<br />

h22<br />

h32<br />

0<br />

0<br />

.<br />

.<br />

.<br />

.<br />

h13<br />

h23<br />

h33<br />

h43<br />

0<br />

.<br />

.<br />

.<br />

.<br />

h14<br />

h24<br />

h34<br />

h44<br />

. ..<br />

. ..<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

. ..<br />

. ..<br />

. ..<br />

. ..<br />

. ..<br />

. ..<br />

. . .<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

. ..<br />

h1m<br />

h2m<br />

h3m<br />

h4m<br />

.<br />

.<br />

.<br />

.<br />

hm−1,m<br />

⎤<br />

⎥ ,<br />

⎥<br />

⎦<br />

(5.9)<br />

0 0 0 0 . . . 0 hm,m−1 hmm<br />

ou seja, é uma matriz obtida a partir de uma matriz triangular superior em que a subdiagonal inferior é<br />

preenchida. Similarmente, uma matriz de Hessenberg inferior quadrada é uma matriz obtida a partir de uma<br />

matriz triangular inferior em que a subdiagonal superior é preenchida. Uma típica matriz de Hessenberg<br />

superior (m + 1) × m é da forma<br />

⎡<br />

h11<br />

⎢ h21 ⎢<br />

0<br />

⎢<br />

0<br />

⎢<br />

H = ⎢ 0<br />

⎢ .<br />

⎢ .<br />

⎢ .<br />

⎢ .<br />

⎣ 0<br />

h12<br />

h22<br />

h32<br />

0<br />

0<br />

.<br />

.<br />

0<br />

h13<br />

h23<br />

h33<br />

h43<br />

0<br />

.<br />

.<br />

0<br />

h14<br />

h24<br />

h34<br />

h44<br />

. ..<br />

. ..<br />

0<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

. ..<br />

. ..<br />

. ..<br />

. . .<br />

. ..<br />

. ..<br />

. ..<br />

0<br />

. . .<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

. ..<br />

hm,m−1<br />

h1m<br />

h2m<br />

h3m<br />

h4m<br />

.<br />

.<br />

hm−1,m<br />

hmm<br />

⎤<br />

⎥ .<br />

⎥<br />

⎦<br />

(5.10)<br />

0 0 0 0 0 0 0 hm+1,m<br />

A partir daí, em uma matriz de Hessenberg superior n×m com n > m+1 todas as linhas i tais que i > m+1<br />

são nulas.<br />

5.7 Proposição. Denote por Vm a matriz n × m cujas colunas são os vetores v1, . . . , vm, por Hm a matriz<br />

de Hessenberg (m + 1) × m cujas entradas não-nulas são os elementos hij definidos pelo algoritmo de<br />

Arnoldi e por Hm a matriz m × m obtida de através da eliminação da última linha de Hm. Então<br />

valem as seguintes relações:<br />

AVm = VmHm + wme T m = Vm+1 Hm, (5.11)<br />

V T m AVm = Hm. (5.12)<br />

Prova: Se M é uma matriz, denotemos por (M) j a sua j-ésima coluna. Do algoritmo de Arnoldi temos,<br />

para j = 1, . . . , m,<br />

Por outro lado,<br />

(AVm) j = Avj =<br />

<br />

j<br />

i=1<br />

Vm+1 Hm<br />

hijvi + wj =<br />

<br />

kj<br />

=<br />

m+1 <br />

i=1<br />

j<br />

i=1<br />

j+1<br />

hijvi + hj+1,jvj+1 =<br />

j+1<br />

hijvi =<br />

i=1<br />

hijvi,<br />

<br />

hijvi. (5.13)<br />

i=1


Rodney Josué Biezuner 79<br />

de modo que segue de (5.13) que<br />

<br />

Vm+1 Hm<br />

<br />

j<br />

j+1<br />

= hijvi = (AVm) j ,<br />

logo AVm = Vm+1 Hm. Da mesma forma, para j = 1, . . . , m − 1,<br />

de modo que<br />

i=1<br />

j+1<br />

(VmHm) j =<br />

i=1<br />

<br />

wme T <br />

m = 0,<br />

j<br />

<br />

hijvi,<br />

<br />

VmHm + wme T <br />

m j =<br />

j+1<br />

hijvi = (AVm) j<br />

i=1<br />

para j = 1, . . . , m − 1, enquanto que para j = m temos<br />

de modo que<br />

(VmHm) m =<br />

m<br />

himvi,<br />

i=1<br />

<br />

wme T <br />

m m = wm = hj+1,jvm+1,<br />

<br />

VmHm + wme T <br />

m m =<br />

m+1<br />

i=1<br />

<br />

hijvi = (AVm) m .<br />

Portanto, AVm = VmHm + wme T m. Finalmente, multiplicando ambos os lados desta última relação por V T m e<br />

usando o fato que os vetores v1, . . . , vm são ortonormais e wm é ortogonal a todos eles, segue que V T m Vm = I<br />

e V T <br />

m wmeT <br />

T T<br />

m = Vm wm em = 0, donde obtemos a última relação do enunciado desta proposição. <br />

5.4 Implementação Prática: Métodos de Ortogonalização Estáveis<br />

O algoritmo de Gram-Schmidt é numericamente instável: pequenos erros de arredondamento podem dar<br />

origem a vetores muito longe de serem ortogonais (veja Exercício 5.1). Na implementação prática do algoritmo<br />

de Arnoldi é necessário considerar métodos de ortogonalização numericamente estáveis.<br />

5.4.1 Método de Gram-Schmidt Modificado (MGS)<br />

O método de Gram-Schmidt modificado (MGS) é uma modificação pequena do método de Gram-<br />

Schmidt que produz um algoritmo de ortogonalização estável. Na ausência de erros de arredondamento,<br />

eles produzem os mesmos vetores. No algoritmo de Gram-Schmidt clássico, dada uma base {u1, . . . , um} de<br />

um subespaço vetorial, uma vez calculados os vetores ortonormais v1, . . . , vj−1 correspondentes, os escalares<br />

hij = 〈uj, vi〉, i = 1, . . . , j −1 são todos calculados simultaneamente para produzir o próximo vetor ortogonal<br />

unitário vj<br />

j−1<br />

wj = uj − hijvi, (5.14)<br />

i=1<br />

vj = wj<br />

. (5.15)<br />

wj


Rodney Josué Biezuner 80<br />

No método modificado, assim que o primeiro vetor ortogonal v1 = u1 é obtido, todos os vetores u2, . . . , um<br />

são atualizados através do escalar h1i = 〈ui, v1〉:<br />

v 1 i = ui − h1iv1, i = 2, . . . , m.<br />

Assim, os vetores v1 2, . . . , v1 m já são ortogonais a v1. Em particular, podemos tomar v2 = v1 2/ v1 <br />

<br />

2 . Uma<br />

2<br />

:<br />

vez obtido v2, todos os vetores v1 3, . . . , v1 m são atualizados através dos escalares h2i = v1 i , v2<br />

v 2 i = v 1 i − h2iv2, i = 3, . . . , m.<br />

Assim, os vetores v2 3, . . . , v2 m são ortogonais a v1 e v2. Em particular, tomamos v3 = v2 3/ v2 <br />

<br />

3 e continuamos o<br />

processo até o fim. Em geral, no passo j, uma vez obtido o vetor unitário vj, ortogonal aos vetores ortonormais<br />

v1, . . . , vj−1, os vetores v j−1<br />

j+1 , . . . , vj−1 m que já eram ortogonais aos vetores v1, . . . , vj−1, são atualizados através<br />

<br />

dos escalares hji =<br />

e tomamos<br />

v j−1<br />

j<br />

, vj<br />

para produzir vetores v j<br />

j+1 , . . . , vj m ortogonais a v1, . . . , vj−1, vj:<br />

v j<br />

i<br />

= vj−1<br />

i − hjivj, i = j + 1, . . . , m, (5.16)<br />

vj+1 = vj j+1<br />

<br />

<br />

v j<br />

<br />

<br />

. (5.17)<br />

j+1<br />

.<br />

Em aritmética exata, os algoritmos de Gram-Schmidt e de Gram-Schmidt modificado são equivalentes;<br />

além disso, eles têm o mesmo custo computacional (2m2n flops) e de armazenamento ((m + 1) n). Para<br />

entender porque o MGS é mais estável, observe que os dois métodos são idênticos no cálculo de v1 e v2. A<br />

primeira diferença surge no cálculo de v3. No método de Gram-Schmidt clássico (GS) temos<br />

com<br />

w GS<br />

3 = v3 − h13v1 − h23v2<br />

h13 = 〈u3, v1〉 e h23 = 〈u3, v2〉 .<br />

O termo h23v2 é a componente de u3 na direção de v2. Quando este componente é removido de u3, obtemos<br />

um vetor ortogonal a v2, desde que o escalar h23 seja calculado com exatidão. No método MGS primeiro<br />

calculamos<br />

v 1 3 = u3 − h13v1<br />

e depois<br />

com<br />

Daí,<br />

w MGS<br />

3<br />

v 2 3 = v 1 3 − h23v2,<br />

h13 = 〈u3, v1〉 = h13 e h23 = v 1 <br />

3, v2 .<br />

= v 2 3 = u3 − h13v1 − h23v2 = u3 − h13v1 − h23v2<br />

Em princípio, u3 e v 1 3 = u3 − h13v1 têm as mesmas componentes na direção de v2, já que v1 é ortogonal<br />

a v2, e não faria diferença usar h23 ou h23. Na prática, os vetores v1 e v2 não são exatamente ortogonais,<br />

por causa de erros de arredondamento, portanto o termo h13v1 tem uma pequena componente na direção de<br />

v2. Além disso, erros de arredondamento também ocorrem na subtração de h13v1 de u3, portanto este vetor<br />

diferença também tem uma componente na direção de v2. O método de Gram-Schmidt clássico ignora estes<br />

erros, enquanto que o método modificado, trabalhando com o vetor v 1 3 ao invés de u3, leva estes erros em<br />

conta e os corrige no cálculo de h23.


Rodney Josué Biezuner 81<br />

Para obter um algoritmo computacionalmente implementável para o MGS, observe que enquanto que no<br />

método de Gram-Schmidt clássico, uma vez obtidos os vetores ortonormais v1, . . . , vj−1 obtemos o próximo<br />

vetor ortogonal unitário vj fazendo<br />

wj = uj −<br />

vj = wj<br />

wj ,<br />

no método de Gram-Schmidt modificado fazemos<br />

v j−2<br />

j<br />

v j−1<br />

j<br />

j<br />

projvi uj,<br />

i=1<br />

v 1 j = uj − proj v1 uj,<br />

v 2 j = v 1 j − proj v2 v1 j ,<br />

v 3 j = v 2 j − proj v3 v 2 j ,<br />

.<br />

. (5.18)<br />

= vj−3 j<br />

= vj−2 j<br />

vj = vj−1 j<br />

<br />

<br />

v j−1<br />

<br />

<br />

.<br />

<br />

j<br />

− projvj−2 vj−3 j ,<br />

− projvj−1 vj−2 j ,<br />

Usando o MGS, o algoritmo de Arnoldi tem o seguinte aspecto. Obtém-se o primeiro vetor unitário<br />

através da normalização do vetor v:<br />

v1 = v<br />

v .<br />

Em seguida, calcula-se o vetor Av1 e ortogonaliza-se este vetor com relação ao vetor v1:<br />

v 1 2 = Av1 − proj v1 Av1 = Av1 − 〈Av1, v1〉 v1,<br />

v2 = v1 2<br />

v 1 2 .<br />

Como já observado anteriormente, até aqui o MGS é idêntico ao método de Gram-Schmidt clássico. Tendo<br />

sido obtido o vetor v2, calcula-se Av2 e ortogonaliza-se este vetor primeiro com relação ao vetor v1 e depois<br />

o vetor resultante é ortogonalizado com relação ao vetor v2:<br />

v 1 3 = Av2 − projv1 Av2 = Av2 − 〈Av2, v1〉 v1,<br />

v 2 3 = v 1 3 − projv2 v 1 3 = v 1 3 − v 1 <br />

3, v2 v2,<br />

v3 = v2 3<br />

v 2 3 .<br />

No passo geral, tendo sido obtido o vetor vj no passo anterior, calcula-se Avj e ortogonaliza-se este vetor<br />

com relação ao primeiro vetor v1; em seguida o vetor resultante é ortogonalizado com relação ao vetor v2, e


Rodney Josué Biezuner 82<br />

assim por diante, até que o vetor resultante do passo anterior seja ortogonalizado com relação ao vetor vj:<br />

v 1 j = Avj − projv1 Avj = Avj − 〈Avj, v1〉 v1,<br />

<br />

v2,<br />

v j−1<br />

j<br />

v 2 j = v 1 j − proj v2 v1 j = v 1 j − v 1 j , v2<br />

.<br />

= vj−2 j − projvj−1 vj−2 j<br />

v j<br />

j = vj−1 j − projvj vj−1 j<br />

vj+1 = vj j<br />

<br />

<br />

v j<br />

<br />

<br />

.<br />

<br />

j<br />

= vj−2 j<br />

= vj−1 j −<br />

Podemos resumir este procedimento no seguinte algoritmo:<br />

−<br />

<br />

<br />

v j−2<br />

j<br />

v j−1<br />

j<br />

Algoritmo de Arnoldi MGS<br />

Atribua v;<br />

v1 ← v/ v2 ;<br />

Para ⎡ j = 1, . . . , m faça<br />

Calcule wj = Avj;<br />

⎢ Para<br />

<br />

i = 1, . . . , j faça<br />

⎢ hij ⎢ ← 〈wj, vi〉 ;<br />

⎢ wj ⎢ ← wj − hijvi<br />

⎢ fim do laço<br />

⎢ hj+1,j ⎢ = wj2 ;<br />

⎣ Se hj+1,j = 0 então pare;<br />

vj+1 ← wj/hj+1,j;<br />

fim do laço<br />

, vj<br />

<br />

vj−1, (5.19)<br />

<br />

vj,<br />

Embora o MGS seja mais estável, em situações onde os erros de cancelamento podem ser muito severos<br />

nos passos de ortogonalização é necessário considerar métodos ainda mais estáveis.<br />

, vj−1<br />

5.4.2 Método de Gram-Schmidt Modificado com Reortogonalização (MGSR)<br />

que deve<br />

ser<br />

<br />

ortogonal aos vetores w1, . . . , wj−1. Isso pode ser verificado diretamente, calculando os produtos internos<br />

v (j−1)<br />

<br />

j , wi e verificando se eles são próximos de 0 dentro de uma margem de tolerância pre-estabelecida. Se<br />

temos que nos dar a este trabalho, é melhor aproveitar os cálculos destes produtos internos e fazer logo uma<br />

segunda ortogonalização. Assim no primeiro loop do algoritmo MGS anterior acrescentamos um segundo<br />

loop: ⎡<br />

Calcule wj = Avj;<br />

⎢ Para<br />

<br />

i = 1, . . . , j faça<br />

⎢ hij ⎢ ← 〈wj, vi〉 ;<br />

⎢ wj ⎢ ← wj − hijvi<br />

⎢ Para ⎡ i = 1, . . . , j faça<br />

⎢ γ ← 〈wj, vi〉 ;<br />

⎢ ⎣ wj ⎢ ← wj − γvi;<br />

⎢ hij ⎢ ← hij + γ;<br />

⎢ fim do laço<br />

⎢ hj+1,j ⎢ = wj2 ;<br />

⎣ Se hj+1,j = 0 então pare;<br />

vj+1 ← wj/hj+1,j;<br />

Uma melhoria simples é recorrer à ortogonalização dupla. Ou seja, no passo j obtemos o vetor v (j−1)<br />

j


Rodney Josué Biezuner 83<br />

Ortogonalizações adicionais são supérfluas: duas ortogonalizações são suficientes para fazer o vetor wj ortogonal<br />

aos vetores w1, . . . , wj−1 na precisão de máquina (veja [Watkins], p. 233, ou [Saad], p. 156).<br />

GS MGS MGSR<br />

Flops 2m 2 n 2m 2 n 4m 2 n<br />

Armazenagem (m + 1) n (m + 1) n (m + 1) n<br />

5.5 Método de Arnoldi para Sistemas <strong>Linear</strong>es<br />

Dado um chute inicial x0 para a solução do sistema linear Ax = b, o método de Arnoldi para sistemas<br />

lineares é um método de projeção ortogonal em que<br />

0<br />

K = L = Km A, r = r 0 , Ar 0 , A 2 r 0 , . . . , A m−1 r 0<br />

em que r 0 = b−Ax 0 . Portanto, o método busca uma solução aproximada x m ∈ x 0 +Km impondo a condição<br />

de Galerkin<br />

r m = b − Ax m ⊥ Km.<br />

De acordo com o capítulo anterior, se Vm = [v1 · · · vm] é uma matriz cujas colunas formam uma base<br />

ortonormal para Km, obtidas através do algoritmo de Arnoldi, temos<br />

com<br />

x m = x 0 + Vmy m<br />

y m = V T −1 T<br />

m AVm Vm r 0 = H −1<br />

m V T m r 0 = H −1<br />

m V T <br />

r m<br />

0 <br />

v1 = r 0 H −1<br />

m V T m (v1)<br />

= r 0 H −1<br />

m (e1) .<br />

Baseados nestas observações, temos então o seguinte método de Arnoldi para sistemas lineares, chamado<br />

método da ortogonalização completa (ou FOM de full orthogonalization method):<br />

Algoritmo de Arnoldi para Sistemas <strong>Linear</strong>es FOM<br />

Inicialize x 0 ;<br />

Calcule r 0 = b − Ax 0 ;<br />

Calcule β = r 0 2 ;<br />

v1 ← r 0 /β;<br />

Inicialize a matriz Hm = (hij) m×m = 0;<br />

Para ⎡ j = 1, . . . , m faça<br />

Calcule wj = Avj;<br />

⎢ Para i = 1, . . . , j faça<br />

⎢ hij ⎢ ← 〈wj, vi〉 ;<br />

⎢ wj ⎢ ← wj − hijvi<br />

⎢ fim do laço<br />

⎢ hj+1,j ⎢ = wj2 ;<br />

⎣ Se hj+1,j = 0 tome m := j e saia do laço;<br />

vj+1 ← wj/hj+1,j;<br />

fim do laço<br />

Calcule ym = βH −1<br />

m (e1) ; //não é necessário encontrar H−1 m<br />

Calcule xm = x0 + Vmym .<br />

Este algoritmo pode ser também obtido diretamente. A condição de Galerkin r m ⊥ Km<br />

A, r 0 é equivalente<br />

a<br />

V T m (b − Ax m ) = 0


Rodney Josué Biezuner 84<br />

ou<br />

V T m Ax m = V T m b<br />

Escolhendo o chute inicial x 0 = 0 para simplificar, temos que b = r 0 = r 0 v1, donde<br />

V T m Ax m = r 0 V T m v1 = r 0 e1.<br />

Como xm <br />

0 ∈ Km A, r , podemos escrever xm = Vmym para algum vetor ym ∈ Rm . Logo<br />

V T m AVmy m = r 0 e1,<br />

<br />

0 que pode ser interpretado como o sistema Ax = b projetado no subespaço Km A, r . Usando o fato que<br />

V T m AVm = Hm, segue que<br />

H m y m = 0<br />

r e1. (5.20)<br />

Resolvendo este sistema obtemos y m e daí a aproximação<br />

x m = Vmy m . (5.21)<br />

Como em geral m ≪ n, este sistema é bem mais fácil de resolver que o sistema original, possibilitando<br />

o uso de métodos diretos. De fato, embora a matriz de Hessenberg seja uma matriz densa, como ela é<br />

quase triangular uma decomposição QR passa a ser competitiva com a decomposição LU e é indicada (para<br />

matrizes gerais, o custo da decomposição LU é a metade do custo da decomposição QR). Maiores detalhes<br />

serão fornecidos na próxima seção.<br />

O algoritmo depende do parâmetro m que em geral deve ser selecionado dinamicamente. Em geral, m é<br />

progressivamente aumentado até que o resíduo r m é menor que alguma tolerância previamente estabelecida.<br />

Ao invés de calcular o resíduo diretamente, podemos obter a norma do resíduo de maneira menos custosa<br />

através do seguinte resultado:<br />

5.8 Proposição. O resíduo calculado através do método de Arnoldi FOM satisfaz<br />

logo<br />

Em particular, os resíduos são ortogonais.<br />

Prova: Temos, pela Proposição 5.7,<br />

<br />

r m = −hm+1,m 〈em, y m 〉 v m+1 ,<br />

r m <br />

2 = hm+1,m e T my m (5.22)<br />

r m = b − Ax m = b − A x 0 + Vmy m<br />

= r 0 − AVmy m<br />

= r 0 v1 − VmHm + wme T m<br />

y m<br />

= r 0 v1 − VmHmy m − wme T m<br />

m y<br />

= r 0 <br />

v1 − Vm r 0 e1 − hm+1,mv m+1 e T my m<br />

= −hm+1,m 〈em, y m 〉 v m+1 .


Rodney Josué Biezuner 85<br />

5.6 Decomposição QR via MGS<br />

Lembramos que uma decomposição QR de uma matriz A é uma fatorização<br />

A = QR (5.23)<br />

onde Q é uma matriz ortogonal (no caso real, unitária no caso complexo) e R é uma matriz triangular superior.<br />

Usando esta decomposição, podemos resolver o sistema linear Ax = b da seguinte maneira. Multiplicando<br />

ambos os lados da equação por Q T obtemos<br />

Q T Ax = Q T b,<br />

de modo que o sistema original é equivalente ao sistema<br />

Rx = Q T b (5.24)<br />

cuja matriz de coeficientes é uma matriz triangular superior, logo pode ser resolvido por substituição.<br />

Para calcular a decomposição QR de uma matriz, um dos métodos que podem ser usados é o próprio<br />

MGS. Outros métodos serão vistos no capítulo sobre autovalores. Para facilitar a compreensão, veremos<br />

primeiro como fazer a decomposição QR usando o método de Gram-Schmidt modificado. No que se segue<br />

assumiremos que A é uma matriz n×m cujas m colunas são linearmente independentes. Escrevendo a matriz<br />

A em colunas<br />

A = <br />

A1 A2 · · · Am , (5.25)<br />

aplicamos o método de Gram-Schmidt às colunas de A, obtendo<br />

Resolvendo em termos de Aj, podemos escrever<br />

com<br />

Assim, tomando<br />

e<br />

j−1<br />

wj = Aj − 〈Aj, vi〉 vi, (5.26)<br />

i=1<br />

vj = wj<br />

. (5.27)<br />

wj<br />

j−1<br />

Aj = rijvi + wj vj =<br />

⎡<br />

⎢<br />

R = ⎢<br />

⎣<br />

i=1<br />

j<br />

i=1<br />

rijvi<br />

(5.28)<br />

rij = 〈Aj, vi〉 , (5.29)<br />

rjj = wj . (5.30)<br />

Q = v1 v2 · · · vm<br />

r11 r12 r13 . . . r1m<br />

0 r22 r23 . . . r2m<br />

0<br />

0<br />

0<br />

0<br />

r33<br />

0<br />

. . .<br />

. ..<br />

r3m<br />

.<br />

. . .<br />

. .. . .. .<br />

0 0 0 . . . 0 rmm<br />

<br />

⎤<br />

⎥<br />

⎦<br />

(5.31)<br />

(5.32)


Rodney Josué Biezuner 86<br />

segue que<br />

A1 A2 · · · Am<br />

<br />

= v1 v2 · · · vm<br />

⎡<br />

r11<br />

⎢<br />

0<br />

⎢<br />

⎢<br />

0<br />

⎢ 0<br />

⎢ .<br />

⎣ .<br />

r12<br />

r22<br />

0<br />

0<br />

.<br />

.<br />

r13<br />

r23<br />

r33<br />

0<br />

.<br />

.<br />

. . .<br />

. . .<br />

. . .<br />

. ..<br />

. .. . ..<br />

r1m<br />

r2m<br />

r3m<br />

.<br />

.<br />

.<br />

⎤<br />

⎥ ,<br />

⎥<br />

⎦<br />

(5.33)<br />

0 0 0 . . . 0 rmm<br />

ou seja, A = QR.<br />

Devido aos problemas da instabilidade do método de Gram-Schmidt clássico, é melhor usar o método de<br />

Gram-Schmidt modificado para fazer a decomposição QR de uma matriz. Resolvendo o j-ésimo passo do<br />

MGS<br />

em termos de Aj, denotando<br />

segue que<br />

onde definimos<br />

v j−2<br />

j<br />

v j−1<br />

j<br />

v 1 j = Aj − 〈Aj, v1〉 v1,<br />

v 2 j = v 1 j − v 1 j , v2<br />

v 3 j = v 2 j − v 2 j , v3<br />

.<br />

= vj−3 j<br />

−<br />

<br />

v2,<br />

v3,<br />

v j−3<br />

j<br />

= vj−2 j −<br />

<br />

v j−2<br />

j<br />

vj = vj−1 j<br />

<br />

<br />

v j−1<br />

<br />

<br />

,<br />

<br />

Aj = v 1 j + 〈Aj, v1〉 v1<br />

= v 2 j + v 1 j , v2<br />

= v 3 j + v 2 <br />

j , v3 v3 + v 1 j , v2<br />

. . .<br />

= v j−1<br />

j<br />

+<br />

j−1<br />

i=1<br />

<br />

<br />

= v j−1<br />

<br />

j−1<br />

vj +<br />

=<br />

j<br />

j<br />

i=1<br />

rijvi,<br />

j<br />

<br />

, vj−2 vj−2,<br />

<br />

, vj−1 vj−1,<br />

v 0 j = Aj, (5.34)<br />

<br />

v2 + 〈Aj, v1〉 v1<br />

<br />

v2 + 〈Aj, v1〉 v1<br />

i−1<br />

vj , vi vi<br />

i=1<br />

i−1<br />

vj , vi vi<br />

(5.35)<br />

rij = v i−1 <br />

j , vi se i = 1, . . . , j − 1, (5.36)<br />

<br />

<br />

rjj = v j−1<br />

<br />

<br />

. (5.37)<br />

Assim, se Q e R são definidas como em (5.31) e (5.32), novamente nós temos A = QR.<br />

j


Rodney Josué Biezuner 87<br />

5.7 Algoritmo de Lanczos e Método do Gradiente Conjugado<br />

O algoritmo de Lanczos pode ser visto como uma simplificação do método de Arnoldi para matrizes simétricas.<br />

Quando a matriz A é simétrica, a matriz de Hessenberg Hm torna-se uma matriz tridiagonal simétrica, pois<br />

Hm = V T m AVm e uma matriz de Hessenberg simétrica é necessariamente tridiagonal. Isso leva a uma<br />

recorrência de três termos no processo de Arnoldi e a recorrências curtas para algoritmos de solução tais<br />

como o FOM.<br />

A notação padrão para descrever o algoritmo de Lanczos é obtida tomando<br />

αj = hjj,<br />

βj = hj−1,j<br />

de modo que a matriz de Hessenberg Hm resultante tem a forma<br />

⎡<br />

⎢<br />

Tm = ⎢<br />

⎣<br />

α1 β2<br />

β2 α2 β3<br />

. .. . ..<br />

. ..<br />

βm−1 αm−1 βm<br />

(na notação padrão do algoritmo de Lanczos, a matriz de Hessenberg Hm é denotada por Tm, para enfatizar<br />

a sua tridiagonalidade). Isto leva à seguinte variação MGS do método de Arnoldi (FOM):<br />

βm<br />

Algoritmo de Lanczos com MGS<br />

Inicialize x0 ;<br />

Calcule r0 = b − Ax0 ;<br />

Calcule β = r0 ;<br />

2<br />

v1 ← r0 /β;<br />

Inicialize β1 = 0, v0 ≡ 0;<br />

Para ⎡ j = 1, . . . , m faça<br />

wj ← Avj − βjvj−1;<br />

⎢ αj ⎢ ← 〈wj, vi〉 ;<br />

⎢ wj ⎢ ← wj − αjvj;<br />

⎢ βj+1 ⎢ ← wj ;<br />

⎣ Se βj+1 = 0 então pare;<br />

vj+1 ← wj/ βj+1;<br />

fim do laço<br />

Atribua a matriz Tm = tridiag (βi, αi, βi+1);<br />

Atribua a matriz Vm = [v1 · · · vm] ;<br />

αm<br />

Calcule ym = T −1<br />

m (βe1) ; //não é necessário encontrar T −1<br />

m<br />

Calcule xm = x0 + Vmym .<br />

Este algoritmo pode ser consideravelmente simplificado, através da obtenção de uma fórmula de recorrência<br />

de três termos, levando ao método do gradiente conjugado. Primeiro, fazemos uma decomposição LU da<br />

matriz tridiagonal Tm = LmUm sem pivôs:<br />

⎡<br />

1<br />

⎢ µ2 ⎢ 1<br />

⎢<br />

Tm = µ3 ⎢ 1<br />

⎢<br />

⎣<br />

. ..<br />

Lm<br />

⎤<br />

⎡<br />

. ..<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎦ ⎢<br />

⎣<br />

µm 1<br />

η1 β2<br />

η2 β3<br />

η3<br />

Um<br />

⎤<br />

⎥<br />

⎦<br />

. ..<br />

. .. βm<br />

ηm<br />

⎤<br />

⎥<br />

⎦<br />

(5.38)


Rodney Josué Biezuner 88<br />

onde os coeficientes das matrizes bidiagonais Lm e Um podem ser obtidas através da seguinte fórmula de<br />

recorrência:<br />

isto é,<br />

η1 = α1,<br />

µ2 = β2η −1<br />

1 ,<br />

η2 = α2 − µ2β2,<br />

µ3 = β3η −1<br />

2 ,<br />

.<br />

µm = βmη −1<br />

m−1 ,<br />

ηm = αm − µmβm,<br />

µj = βjη −1<br />

j−1 , (5.39)<br />

ηj = αj − µjβj. (5.40)<br />

(Observe que ηj = 0 para todo j porque Tm é simétrica, positiva definida.) A solução aproximada é dada<br />

então por<br />

Definindo<br />

segue que<br />

x m = x 0 + VmU −1<br />

m L −1<br />

m (βe1) . (5.41)<br />

Pm = VmU −1<br />

m , (5.42)<br />

z m = L −1<br />

m (βe1) , (5.43)<br />

x m = x 0 + Pmz m . (5.44)<br />

Por causa da estrutura triangular superior bidiagonal de Um, Pm pode ser atualizada facilmente. De fato,<br />

escreva Pm em colunas:<br />

Pm = p1 p2 · · · pm<br />

<br />

.<br />

Da relação PmUm = Vm segue que<br />

donde<br />

βmpm−1 + ηmpm = vm,<br />

pm = η −1<br />

m (vm − βmpm−1) . (5.45)<br />

Além disso, por causa da estrutura triangular inferior bidiagonal com diagonal unitária de Um, da relação<br />

Lmz m = βe1 segue que<br />

µmz m j−1 + z m j = 0<br />

para j > 1, e portanto podemos escrever (lembrando que zm é um vetor de Rm assim como ym )<br />

z m <br />

m−1 z<br />

=<br />

ζm <br />

com<br />

Assim,<br />

(5.46)<br />

ζ m = −µmζ m−1 . (5.47)<br />

x m = x 0 + Pm−1 pm<br />

z m−1<br />

ζ m<br />

= x 0 + Pm−1z m−1 + ζ m pm,


Rodney Josué Biezuner 89<br />

donde<br />

x m = x m−1 + ζ m pm. (5.48)<br />

Isso dá a seguinte versão direta para o algoritmo de Lanczos para sistemas lineares:<br />

Algoritmo de Lanczos Direto<br />

Inicialize x 0 ;<br />

Calcule r 0 = b − Ax 0 ;<br />

Calcule ζ 1 = β = r 0 2 ;<br />

v1 ← r 0 /β;<br />

Inicialize β1 = µ1 ≡ 0;<br />

Inicialize p0 ≡ 0;<br />

Para<br />

⎡<br />

m = 1, 2, . . . , até limite de tolerância faça<br />

⎢<br />

⎣<br />

w ← Avm − βmvm−1;<br />

αm ← 〈w, vm〉 ;<br />

Se m > 1 então<br />

µm ← βm/ηm−1;<br />

ζ m ← −µmζ m−1 ;<br />

ηm ← αm − µmβm;<br />

pm ← (vm − βmpm−1) /ηm;<br />

x m ← x m−1 + ζ m pm;<br />

w ← w − αmvm;<br />

βm+1 ← w ;<br />

Se βm+1 = 0 então pare;<br />

vm+1 ← w/ βm+1;<br />

fim do laço<br />

Este algoritmo ainda pode ser consideravelmente simplificado. O resultado, uma fórmula tripla de<br />

recorrência, extremamente simples e que não envolve o cálculo da base ortonormal {v1, . . . , vm}, é o chamado<br />

método do gradiente conjugado (CG). Para obtê-lo, observamos primeiramente que os vetores pm são<br />

A-conjugados (isto é, A-ortogonais):<br />

5.9 Proposição.<br />

para todos i = j.<br />

Prova: Para provar isso, basta mostrar que<br />

é uma matriz diagonal. Isso segue de<br />

〈pi, pj〉 A = 〈Api, pj〉 = 0 (5.49)<br />

P T mAPm<br />

P T mAPm = U −T<br />

m V T m AVmU −1<br />

m<br />

= U −T<br />

m TmU −1<br />

m<br />

= U −T<br />

m Lm<br />

e do fato que U −T<br />

m Lm é uma matriz triangular inferior (a inversa de uma matriz triangular superior é uma<br />

matriz triangular superior e o produto de duas matrizes triangulares inferiores é uma matriz triangular<br />

inferior) que é simétrica. <br />

Usando a notação padrão do método do gradiente conjugado (ou seja, agora os escalares αm, βm terão<br />

um significado completamente diferente do anterior), reescrevemos (5.48) na forma<br />

x m+1 = x m + αmp m , (5.50)


Rodney Josué Biezuner 90<br />

de modo que os resíduos satisfazem<br />

r m+1 = r m − αmAp m . (5.51)<br />

Como os resíduos são ortogonais (Proposição 5.8), segue que 〈r m − αmAp m , r m 〉 = 0, donde<br />

Reescrevemos também (5.45) na forma<br />

αm = 〈rm , rm 〉<br />

〈Apm , rm . (5.52)<br />

〉<br />

p m+1 = r m+1 + βmp m ; (5.53)<br />

para isso usamos a Proposição 5.8 e fazemos uma mudança de escala nos vetores p m (isso não altera a<br />

validade de (5.50), em que assumimos os vetores p m tomados já com a mudança de escala; assim os vetores<br />

p m do algoritmo do gradiente conjugado considerado aqui também são diferentes dos vetores considerados<br />

acima no algoritmo de Lanczos, sendo múltiplos adequados destes). Daí, como<br />

r m+1 + βmp m , Ap m = p m+1 , Ap m = 0,<br />

segue que<br />

Observe porém que<br />

enquanto que de (5.51) temos<br />

βm = −<br />

Ap m , r m+1 <br />

〈Ap m , p m 〉 .<br />

〈Ap m , r m 〉 = Ap m , p m − βmp m−1 = 〈Ap m , p m 〉 , (5.54)<br />

Ap m = −α −1 m+1 m<br />

m r − r .<br />

Portanto, usando a ortogonalidade dos resíduos, podemos escrever<br />

βm = −<br />

Ap m , r m+1 <br />

〈Ap m , r m 〉 =<br />

r m+1 , r m+1 <br />

〈r m , r m 〉<br />

Além disso, usando (5.54) também podemos reescrever (5.52) na forma<br />

. (5.55)<br />

αm = 〈rm , rm 〉<br />

〈Apm , pm . (5.56)<br />

〉<br />

Estas últimas fórmulas para αm e βm são muito mais convenientes para o algoritmo do gradiente conjugado:<br />

Algoritmo do Gradiente Conjugado<br />

Inicialize x0 ;<br />

Atribua b;<br />

r ← b − Ax0 ;<br />

p ← r;<br />

current 〈r, r〉 ← r0 , r0 ;<br />

Atribua o limite de tolerância e o número máximo de iterações;<br />

N = 0; //número de iterações.<br />

Faça até que o limite de tolerância seja atingido<br />

ou<br />

⎡<br />

até o número máximo de iterações<br />

Calcule Ap;<br />

⎢ α ← current 〈r, r〉 / 〈p, Ap〉 ;<br />

⎢ x ← x + αp;<br />

⎢ r ← r − αAp;<br />

⎢ β ← 〈r, r〉 /current 〈r, r〉 ;<br />

⎢ p ← r + βp;<br />

⎣ current 〈r, r〉 ← 〈r, r〉 ;<br />

N + +;<br />

fim do laço


Rodney Josué Biezuner 91<br />

5.8 Método do Gradiente Conjugado como um Método de Descida<br />

O método do gradiente conjugado é uma das mais conhecidas e usadas técnicas iterativas para resolver sistemas<br />

lineares envolvendo matrizes simétricas esparsas, dada sua eficiência e simplicidade de implementação.<br />

Como vimos na seção anterior, ele é matematicamente equivalente ao FOM. No que se segue, veremos uma<br />

descrição alternativa do método CG, em que ele é visto como uma modificação do método de descida mais<br />

acentuada (método do gradiente).<br />

Os métodos iterativos lineares básicos e os métodos de descida que vimos anteriormente são limitados<br />

pela sua falta de memória, no sentido de que apenas informação sobre x k é usada para obter x k+1 . Toda a<br />

informação sobre as iterações anteriores é perdida. O método do gradiente conjugado é uma variação simples<br />

do método da descida mais acentuada que funciona melhor porque a informação obtida através das iterações<br />

anteriores é utilizada.<br />

Para entender como isso funciona, observe que depois de m iterações x k+1 = x k + αkp k de um método<br />

de descida temos<br />

x m = x 0 + α0p 0 + α1p 1 + . . . + αm−1p m−1 ,<br />

de modo que x m está no subespaço afim gerado pelo chute inicial x 0 e pelos vetores p 0 , p 1 , . . . , p m−1 .<br />

Enquanto o método da descida mais acentuada minimiza o funcional quadrático de energia f associado ao<br />

sistema Ax = b apenas ao longo das m retas x k +αkp k , cuja união constitui apenas um pequeno subconjunto<br />

do subespaço afim m-dimensional x 0 + p 0 , p 1 , . . . , p m−1 , o método do gradiente conjugado minimiza f sobre<br />

todo o subespaço afim x 0 + p 0 , p 1 , . . . , p m−1 .<br />

Para definir as direções de busca do método do gradiente conjugado (que é, antes de mais nada, um método<br />

de descida), começamos dando uma prova mais simples da Proposição 4.4 que não utiliza a linguagem de<br />

métodos de projeção:<br />

5.10 Teorema. Seja A ∈ Mn (R) uma matriz simétrica positiva definida e b ∈ R n . Então, o funcional<br />

quadrático de energia associado ao sistema Ax = b pode ser escrito na forma<br />

f (y) = 1<br />

2 e2<br />

1<br />

A −<br />

2 x2 A . (5.57)<br />

onde e = x − y é o erro algébrico. Em particular, minimizar o funcional quadrático f é equivalente a<br />

minimizar a A-norma do erro.<br />

Prova: Pela regra do paralelogramo, temos<br />

donde<br />

ou<br />

Logo,<br />

x + y 2<br />

A + x − y2 A = 2 x2 A + 2 y2 A ,<br />

2 y 2<br />

A = x − y2 A + x2 A + 2 〈y, x〉 A + y2 A − 2 x2 A<br />

= x − y 2<br />

A + 2 〈y, x〉 A − x2 A + y2 A ,<br />

y 2<br />

A − 2 〈y, x〉 A = x − y2 A − x2 A .<br />

<br />

Em um método de descida, depois de m iterações temos:<br />

f (y) = 1<br />

2 y2 A − 〈y, x〉 1<br />

A =<br />

2 e2<br />

1<br />

A −<br />

2 x2 A . (5.58)<br />

e m = x − x m<br />

= x − x 0 − α0p 0 + α1p 1 + . . . + αm−1p m−1<br />

= e 0 m−1<br />

−<br />

<br />

αip i .<br />

i=0


Rodney Josué Biezuner 92<br />

Minimizar e m A é portanto equivalente a minimizar<br />

<br />

<br />

<br />

<br />

e0 m−1 <br />

− αip<br />

i=0<br />

i<br />

<br />

<br />

<br />

,<br />

<br />

A<br />

o que por sua vez é equivalente a encontrar a melhor aproximação do vetor e 0 no subespaço Wm =<br />

p 0 , p 1 , . . . , p m−1 . Esta é dada pelo lema da melhor aproximação, que enunciamos em detalhe por co-<br />

modidade:<br />

5.11 Proposição. (Lema da Melhor Aproximação) Sejam A ∈ Mn (R) uma matriz simétrica positiva<br />

definida, v ∈ R n e W um subsespaço de R n . Então existe um único w ∈ W tal que<br />

v − w A = min<br />

z∈W v − z A .<br />

O vetor w é caracterizado pela condição v − w ⊥A W .<br />

Segue deste resultado que emA é minimizado quando escolhemos p = m−1 <br />

αip<br />

i=0<br />

i ∈ Wm tal que em = e0 − p<br />

satisfaz<br />

e m ⊥A p i para i = 1, . . . , m − 1. (5.59)<br />

Nosso objetivo então é desenvolver um método em que o erro a cada passo é conjugado com todas as direções<br />

de busca anteriores. Como fazer isso? Pelo Lema 4.11, cujo enunciado repetimos a seguir como Proposição<br />

5.12 para facilitar a consulta, sabemos que em qualquer método de descida em que a busca na reta é exata<br />

satisfaz automaticamente e m ⊥A p m−1 , isto é, (5.59) é válido para a última iteração (o erro da iteração<br />

presente é A-ortogonal à direção de busca da iteração anterior):<br />

5.12 Proposição. Seja x m+1 = x m + αmp m obtido através de uma busca na reta exata. Então<br />

e<br />

r m+1 ⊥ p m<br />

e m+1 ⊥A p m .<br />

Fazendo uma busca exata na reta x 0 + tp 0 obtemos o escalar α0 e<br />

Pela Proposição 5.12 segue que e 1 ⊥A p 0 . Como<br />

x 1 = x 0 + α0p 0<br />

e 2 = x − x 2 = x − x 1 − α1p 1 = e 1 − α1p 1 ,<br />

para que tenhamos e 2 ⊥A p 0 é necessário escolher p 1 conjugado a p 0 . Se isso foi feito, fazendo em seguida<br />

uma busca exata na reta x 1 + tp 1 obtemos o escalar α1,<br />

x 1 = x 0 + α0p 0<br />

e, pela Proposição 5.12, e 2 ⊥A p 1 . No m-ésimo passo, como<br />

ou seja,<br />

e m = x − x m = x − x m−1 − αm−1p m−1<br />

e m = e m−1 − αm−1p m−1 , (5.60)<br />

para que o erro e m seja conjugado aos vetores p 0 , . . . , p m−2 basta escolher a direção de busca p m conjugada<br />

a p 0 , . . . , p m−1 ; para assegurar que e m também seja conjugado ao vetor p m−1 , basta fazer uma busca exata


Rodney Josué Biezuner 93<br />

na reta x m−1 + tp m−1 . Assim, uma condição necessária para obter (5.59) é escolher as direções de busca de<br />

tal forma que<br />

p i ⊥A p j para todos i = j. (5.61)<br />

Um método com estas características é chamado um método de direções conjugadas. Estes resultados<br />

são resumidos na proposição a seguir:<br />

5.13 Teorema. Se um método emprega direções de busca conjugadas e performa buscas na reta exatas,<br />

então<br />

e m ⊥A p i<br />

para i = 1, . . . , m − 1,<br />

para todo m. Conseqüentemente<br />

onde Wm = p 0 , p 1 , . . . , p m−1 .<br />

e m <br />

A = min 0<br />

e − pA ,<br />

p∈Wm<br />

Prova: A demonstração é por indução. Para m = 1, temos e 1 ⊥A p 0 pela Proposição 5.12 porque a busca<br />

na reta é exata. Em seguida, assuma e m ⊥A p i para i = 1, . . . , m − 1; queremos mostrar que e m+1 ⊥A p i<br />

para i = 1, . . . , m. Como<br />

e m+1 = e m − αmp m ,<br />

para i = 1, . . . , m − 1 temos<br />

e m+1 , p i <br />

A = e m − αmp m , p i<br />

A = e m , p i<br />

A<br />

m i<br />

− αm p , p <br />

= 0 − 0 = 0<br />

A<br />

porque as direções de busca são conjugadas. e m+1 ⊥A p m segue novamente da Proposição 5.12. <br />

Quando a direção inicial é dada pelo vetor gradiente de f, como na primeira iteração do método da descida<br />

mais acentuada, obtemos o método do gradiente conjugado. As direções subseqüentes são escolhidas através<br />

de A-ortogonalizar o resíduo (ou vetor gradiente de f, que é a direção de busca em cada iteração do método<br />

da descida mais acentuada) com todas as direções de busca anteriores, o que pode ser feito simplesmente<br />

utilizando-se o algoritmo de Gram-Schmidt que no método do gradiente conjugado produz o mesmo resultado<br />

que um método mais estável como o MGS, como veremos. Dado um chute inicial p 0 , a primeira direção é<br />

ou seja, a direção inicial é o primeiro resíduo:<br />

p 0 = −∇f x 0 = b − Ax 0 = r 0<br />

Depois de m passos com direções de busca conjugadas p 0 , . . . , p m , escolhemos<br />

p m+1 = r m+1 −<br />

onde os cmi são dados pelo algoritmo de Gram-Schmidt:<br />

cmi =<br />

p 0 = r 0 . (5.62)<br />

m<br />

i=0<br />

r m+1 , p i <br />

〈p i , p i 〉 A<br />

cmip i<br />

A<br />

(5.63)<br />

. (5.64)<br />

de forma que p m+1 ⊥A p i para todos i = 1, . . . , m. Felizmente, como veremos a seguir depois de algum<br />

trabalho preliminar (Corolário 5.17), cmi = 0 para todo i exceto i = m, o que torna necessário que apenas<br />

a direção de busca mais recente p m seja armazenada na memória do computador, o que garante que a<br />

implementação do gradiente conjugado é eficiente:<br />

p m+1 = r m+1 −<br />

r m+1 , p m <br />

A<br />

〈pm , pm p<br />

〉 A<br />

m = r m+1 −<br />

r m+1 , Ap m <br />

〈p m , Ap m 〉 pm<br />

(5.65)


Rodney Josué Biezuner 94<br />

ou, definindo<br />

temos que<br />

βm = −<br />

r m+1 , Ap m <br />

〈p m , Ap m 〉<br />

, (5.66)<br />

p m+1 = r m+1 + βmp m . (5.67)<br />

Esta é a modificação do método do gradiente conjugado em relação ao método da descida mais acentuada,<br />

no qual tomamos p m+1 = r m+1 .<br />

Podemos obter uma expressão mais simples para o escalar βm, em função apenas dos resíduos. Com<br />

efeito, temos m+1 m+1<br />

r , r = r m+1 , r m m+1 m<br />

− αm r , Ap m+1 m<br />

= −αm r , Ap <br />

porque os resíduos obtidos através do método do gradiente conjugado são mutualmente ortogonais (veja<br />

Corolário 5.16), logo<br />

Temos<br />

β = −<br />

r m+1 , Ap m <br />

porque p m−1 , r m = 0 pela Proposição 5.12, logo<br />

Portanto<br />

r m+1 , r m+1 <br />

〈pm , Apm 〉 =<br />

αm 〈pm , Apm 〉 .<br />

αm = 〈pm , rm 〉<br />

〈pm , Apm 〉 =<br />

<br />

m m−1 m r + βp , r <br />

〈pm , Apm =<br />

〉<br />

〈rm , rm 〉<br />

〈pm , Apm 〉 ,<br />

αm = 〈rm , rm 〉<br />

〈pm , Apm . (5.68)<br />

〉<br />

β =<br />

r m+1 , r m+1 <br />

〈r m , r m 〉<br />

. (5.69)<br />

Podemos obter um algoritmo ainda mais eficiente para o método do gradiente conjugado se observarmos que<br />

para calcular o resíduo r m+1 = b − Ax m+1 em cada iteração não é necessário calcular Ax m+1 explicitamente;<br />

de fato, como vimos na demonstração da Proposição 5.12, temos r m+1 = r m −αmAp m . Desta forma, obtemos<br />

o mesmo algoritmo do gradiente conjugado obtido na seção anterior a partir do algoritmo de Lanczos.<br />

5.8.1 Convergência do Método do Gradiente Conjugado em Aritmética Exata<br />

Vamos agora provar uma série de resultados com o objetivo principal de demonstrar o fato mencionado<br />

acima que cmi = 0 para todo i = 1, . . . , m − 1 e também que o método do gradiente conjugado converge em<br />

aritmética exata em precisas n iterações se a matriz A tem tamanho n.<br />

5.14 Teorema. Depois de j iterações do algoritmo do gradiente conjugado (com rm = 0 em cada iteração),<br />

temos 0 1 j−1<br />

p , p , . . . , p = r 0 , r 1 , . . . , r j−1 0<br />

= Kj A, r .<br />

Prova: A demonstração é por indução. O resultado é trivial para j = 0, pois p0 = r0 . Assuma o resultado<br />

válido para j − 1. Em primeiro lugar, mostraremos que<br />

0 1 j<br />

r , r , . . . , r 0<br />

⊂ Kj+1 A, r . (5.70)<br />

Em vista da hipótese de indução, basta mostrar que rj ∈ Kj+1<br />

rj−1 <br />

0 ∈ Kj A, r ⊂ Kj+1<br />

também por hipótese de indução, pj−1 <br />

0 ∈ Kj+1 A, r , logo<br />

Ap j−1 ∈ Kj<br />

A, r 0 . Como r j = r j−1 − αj−1Ap j−1 e<br />

A, r 0 por hipótese de indução, basta provar que Ap j−1 ∈ Kj+1<br />

0<br />

A, Ar = Ar 0 , A 2 r 0 , . . . , A j r 0 ⊂ r 0 , Ar 0 , A 2 r 0 , . . . , A j r 0 0<br />

= Kj+1 A, r .<br />

A, r 0 . Mas,


Rodney Josué Biezuner 95<br />

Em seguida, mostraremos que<br />

p 0 , p 1 , . . . , p j ⊂ r 0 , r 1 , . . . , r j . (5.71)<br />

Por hipótese de indução, basta provar que pj ∈ r0 , r1 , . . . , rj . Isso segue de (5.63) e da hipótese de indução.<br />

Até aqui provamos que<br />

0 1 j<br />

p , p , . . . , p ⊂ r 0 , r 1 , . . . , r j 0<br />

⊂ Kj+1 A, r . (5.72)<br />

Para provar que eles são iguais, basta mostrar que eles têm a mesma dimensão. Isso decorre de<br />

e<br />

dim r 0 , r 1 , . . . , r j j + 1,<br />

0<br />

dim Kj+1 A, r j + 1<br />

dim p 0 , p 1 , . . . , p j = j + 1,<br />

o último porque os vetores p 0 , p 1 , . . . , p j são vetores não-nulos A-ortogonais. <br />

5.15 Corolário. Depois de j iterações do algoritmo do gradiente conjugado, temos<br />

0<br />

A, r <br />

para todo j.<br />

e j ⊥A Kj<br />

Prova: Segue imediatamente do teorema anterior e do Teorema 5.13. <br />

5.16 Corolário. Depois de j iterações do algoritmo do gradiente conjugado, temos<br />

r j 0<br />

⊥ Kj A, r <br />

para todo j.<br />

Prova: Em vista do Teorema 5.14, basta provar que r j ⊥ p 0 , p 1 , . . . , p j−1 para todo j. Como Ae j+1 = r j+1 ,<br />

j+1 i<br />

r , p = Ae j+1 , p i = e j+1 , p i<br />

= 0 A<br />

para todo i = 1, . . . , j − 1, como vimos na demonstração do Teorema 5.13. <br />

5.17 Corolário. cmi = 0 para todo i = 1, . . . , m − 1.<br />

Prova: Temos que provar que r m+1 , p i <br />

A = r m+1 , Ap i = 0<br />

para todos i = 1, . . . , m − 1. Pelo Teorema 5.14, pi ∈ p0 , p1 , . . . , pi = r0 , Ar0 , . . . , Air <br />

0 = Ki+1 A, r ,<br />

logo<br />

e o resultado segue do corolário anterior. <br />

Ap i ∈ Ar 0 , A 2 r 0 , . . . , A i+1 r 0<br />

⊂ Ki+2 A, r 0<br />

⊂ Km+1 A, r <br />

5.18 Teorema. Seja A ∈ Mn (R) uma matriz simétrica positiva definida. Então o método do gradiente<br />

conjugado converge em n iterações.<br />

Prova: Se fizemos n − 1 iterações para obter x, pelo Corolário 5.16 os vetores r 0 , r 1 , . . . , r n−1 formam uma<br />

base ortogonal para R n . Depois de mais uma iteração, de acordo com este mesmo corolário o resíduo r n<br />

satisfaz r n ⊥ r 0 , r 1 , . . . , r n−1 = R n , logo r n = 0.


Rodney Josué Biezuner 96<br />

5.9 Velocidade de Convergência do Método do Gradiente Conjugado<br />

Na maioria das aplicações o método do gradiente conjugado converge ainda mais rápido do que as n iterações<br />

previstas pelo Teorema 5.18, se apenas uma boa aproximação é requerida. Para obter uma estimativa da<br />

velocidade de convergência do método do gradiente conjugado, precisamos desenvolver algumas ferramentas<br />

teóricas antes.<br />

5.9.1 Polinômios de Chebyshev<br />

Polinômios de Chebyshev são provavelmente os mais úteis polinômios na Teoria de Aproximação, a área<br />

que se ocupa em determinar como melhor aproximar funções através de funções mais simples (tais como<br />

polinômios). Os polinômios de Chebyshev do primeiro tipo surgiram inicialmente como soluções da equação<br />

de Chebyshev: 1 − x 2 y ′′ − xy ′ + n 2 y = 0<br />

5.19 Definição. O polinômio de Chebyshev do primeiro tipo de grau k é o polinômio de grau k Ck :<br />

[−1, 1] −→ R definido por<br />

Ck (t) = cos k cos −1 t .<br />

Que Ck é de fato um polinômio de grau k pode ser visto através da seguinte fórmula de recorrência:<br />

5.20 Proposição. Vale a seguinte fórmula de recorrência de três termos para os polinômios de Chebyshev<br />

C0 (t) = 1,<br />

C1 (t) = t,<br />

Ck+1 (t) = 2tCk (t) − Ck−1 (t) .<br />

(5.73)<br />

Em particular, Ck (t) é um polinômio real de grau k, Ck (t) é uma função par se k é par e uma função<br />

ímpar se k é ímpar.<br />

Prova: Usando a identidade trigonométrica<br />

segue que<br />

cos [(k + 1) θ] + cos [(k − 1) θ] = 2 cos θ cos kθ,<br />

Ck+1 (t) + Ck−1 (t) = cos [(k + 1) arccos t] + cos [(k − 1) arccos t]<br />

= 2 cos (arccos t) cos [k arccos t]<br />

= 2tCk (t) .<br />

<br />

A fórmula de recorrência da Proposição 5.20 permite estender naturalmente o domínio dos polinômios de<br />

Chebyshev à reta toda. Isso também pode ser feito estendendo a definição trigonométrica:<br />

−1<br />

cosh k cosh t se t 1,<br />

Ck (t) =<br />

(−1) k cosh k cosh −1 |t| <br />

(5.74)<br />

se t −1.<br />

De fato, usando a identidade trigonométrica hiperbólica<br />

cosh [(k + 1) θ] + cosh [(k − 1) θ] = 2 cosh θ cosh kθ,


Rodney Josué Biezuner 97<br />

vemos que vale a mesma fórmula de recorrência da Definição 5.19. O polinômio de Chebyshev Ck (t) possui<br />

k raízes simples, todas localizadas no intervalo [−1, 1] dadas por<br />

<br />

2j − 1<br />

tj = cos<br />

2k π<br />

<br />

, j = 1, . . . , k,<br />

como pode ser verificado diretamente da definição. Em particular, os polinômios de Chebyshev não se anulam<br />

fora deste intervalo. Observe também que |Ck (t)| 1 para t ∈ [−1, 1]. À título de informação, eles formam<br />

uma base ortogonal no espaço de funções apropriado no sentido que<br />

1<br />

dt<br />

Ck (t) Cl (t) √<br />

−1<br />

1 − t2 =<br />

⎧<br />

⎨ 0 se k = l,<br />

π se k = l = 0,<br />

⎩<br />

π/2 se k = l = 0.<br />

5.21 Proposição. Se |t| 1, vale<br />

Ck (t) = 1<br />

2<br />

Prova: Como resultado de (5.74), segue que<br />

Por outro lado,<br />

e<br />

logo<br />

Ck (t) = cosh k cosh −1 t = 1<br />

2<br />

= 1<br />

e<br />

2<br />

cosh−1 t k +<br />

t + t2 k <br />

− 1 + t + t2 <br />

−k<br />

− 1 .<br />

<br />

e k cosh−1 t + e −k cosh −1 t <br />

<br />

e cosh−1 t −k <br />

.<br />

e x = cosh x + sinh x<br />

cosh 2 x − sinh 2 x = 1,<br />

e cosh−1 <br />

t −1 −1<br />

= cosh cosh t + sinh cosh t<br />

<br />

cosh 2 cosh −1 t − 1<br />

= t +<br />

= t + t 2 − 1,<br />

donde segue o resultado. <br />

Em particular, para valores grandes de k pode-se usar a aproximação<br />

Ck (t) 1<br />

<br />

t +<br />

2<br />

t2 k − 1 .<br />

para |t| 1. No que se segue denotaremos o subespaço de todos os polinômios reais de grau menor ou igual<br />

a k por Pk [x]. O seguinte teorema é um importante resultado em Teoria da Aproximação:<br />

5.22 Teorema. Seja [a, b] ⊂ R um intervalo não vazio e c /∈ [a, b]. Então o mínimo<br />

é atingido pelo polinômio<br />

µk = min<br />

Ck (x) :=<br />

p∈Pk[x]<br />

p(c)=1<br />

Ck<br />

Ck<br />

max<br />

x∈[a,b]<br />

|p (x)|<br />

<br />

x − b<br />

1 + 2<br />

b − a<br />

.<br />

c − b<br />

1 + 2<br />

b − a


Rodney Josué Biezuner 98<br />

Consequentemente,<br />

Prova: Denote por<br />

o ponto médio do intervalo [a, b]. Então<br />

µk = <br />

<br />

<br />

Ck<br />

m :=<br />

1<br />

<br />

c − b <br />

. (5.75)<br />

1 + 2<br />

b − a<br />

a + b<br />

2<br />

x − b b − a + 2x − 2b<br />

1 + 2 = =<br />

b − a b − a<br />

2x − (a + b)<br />

x − m<br />

= 2<br />

b − a .<br />

Assim, se c /∈ [a, b] então 2<br />

c − m<br />

b − a<br />

<br />

<br />

<br />

> 1<br />

b − a<br />

de modo que o denominador na expressão de Ck (x) nunca se anula. Por outro lado, se x ∈ [a, b] então<br />

<br />

<br />

<br />

− m<br />

2x <br />

b − a 1.<br />

Como<br />

max<br />

t∈[−1,1] |Ck (t)| = 1,<br />

segue (5.75).<br />

Portanto, para provar que o mínimo é atingido pelo polinômio Ck, precisamos mostrar que se pk ∈ Pk [x]<br />

é tal que p (c) = 1 e<br />

max |p (x)| µk,<br />

x∈[a,b]<br />

então pk = Ck. De fato, pela definição trigonométrica dos polinômios de Chebyshev, Ck (t) atinge os valores<br />

±1 alternadamente nos pontos<br />

<br />

j<br />

tj = cos<br />

k π<br />

<br />

, j = 0, 1, . . . , k.<br />

Correspondentemente, Ck (x) atinge os valores ±µk nos pontos<br />

xj = 1<br />

<br />

<br />

j<br />

a + b + (b − a) cos<br />

2<br />

k π<br />

<br />

, j = 0, 1, . . . , k<br />

dentro do intervalo [a, b]. Como<br />

<br />

<br />

|pk (xj)| µk = <br />

<br />

Ck (xj) ,<br />

concluímos que o polinômio diferença rk = Ck − pk de grau menor ou igual a k satisfaz<br />

rk (xj) 0 se j é par,<br />

rk (xj) 0 se j é ímpar.<br />

Pelo teorema do valor intermediário, rk possui pelo menos uma raiz em cada subintervalo [xj, xj+1]. Mesmo<br />

quando as raízes de rk em [xj−1, xj] e [xj, xj+1] coincidem, ou seja, xj é uma raiz de rk, esta é uma raiz de<br />

multiplicidade 2 (pois r ′ k (xj) = 0, isto é, xj também é uma raiz da derivada de rk). Consequentemente, o<br />

polinômio rk tem pelo menos k raízes em [a, b]. Mas, como<br />

rk (c) = Ck (c) − pk (c) = 1 − 1 = 0,<br />

c /∈ [a, b] é a (k + 1)-ésima raiz de rk. Isso constitui uma contradição, a menos que rk ≡ 0, o que implica<br />

pk = Ck.


Rodney Josué Biezuner 99<br />

5.9.2 Velocidade de Convergência do CG<br />

5.23 Lema. Seja A ∈ Mn (R) uma matriz simétrica positiva definida. Então o erro algébrico do método do<br />

gradiente conjugado satisfaz <br />

e k =<br />

A<br />

min<br />

<br />

p (A) e 0 .<br />

A<br />

p∈Pk[x]<br />

p(0)=1<br />

Prova: Pelos Teoremas 5.13 e 5.14, o método do gradiente conjugado minimiza a A-norma do erro no<br />

subespaço afim e0 <br />

0 + Kk A, r <br />

0 . Mas Kk A, r é o conjunto de todos os vetores da forma q (A) r0 onde<br />

q é um polinômio de grau menor ou igual a k − 1, enquanto que r0 = Ae0 . Portanto, o subespaço afim<br />

e0 <br />

0 + Kk A, r consiste de todos os vetores da forma e0 + q (A) Ae0 , ou seja, de todos os vetores na forma<br />

p (A) e 0 onde p é um polinômio de grau menor ou igual a k tal que p (0) = 1. <br />

5.24 Teorema. Seja A ∈ Mn (R) uma matriz simétrica positiva definida. Então o erro algébrico do método<br />

do gradiente conjugado satisfaz<br />

<br />

e k k <br />

κ (A) − 1 e<br />

2 <br />

A<br />

κ (A) + 1<br />

0 . (5.76)<br />

A<br />

Prova: Denote por λ1 . . . λn os autovalores de A e por v1, . . . , vn uma base A-ortonormal de autovetores<br />

correspondentes. Escrevendo<br />

e 0 n<br />

= aivi,<br />

segue que<br />

Assim,<br />

<br />

p (A) e 0 2<br />

A =<br />

n<br />

a 2 i p (λi) 2 <br />

<br />

i=1<br />

p (A) e 0 =<br />

donde, pelo lema anterior, e k A min<br />

i=1<br />

n<br />

aip (λi) vi.<br />

i=1<br />

2<br />

max p (λi)<br />

1in<br />

p∈Pk[x]<br />

p(0)=1<br />

<br />

e 0 2<br />

A <br />

<br />

max<br />

x∈[λ1,λn] p (x) 0<br />

e . A<br />

Segue agora do Lema 5.22 que e k A µ e 0 A<br />

onde<br />

µ = <br />

<br />

<br />

=<br />

Ck<br />

Ck<br />

1<br />

<br />

1 − 2<br />

λn<br />

λn − λ1<br />

1<br />

,<br />

κ (A) + 1<br />

κ (A) − 1<br />

<br />

<br />

= <br />

<br />

<br />

Ck<br />

1<br />

<br />

− λn<br />

<br />

+ λ1 <br />

=<br />

λn − λ1<br />

max p (x)2<br />

x∈[λ1,λn]<br />

Ck<br />

1<br />

<br />

λn + λ1<br />

λn − λ1<br />

e 0 2<br />

A ,<br />

(para obter a última igualdade usamos a simetria dos polinômios de Chebyshev, como visto na Proposição<br />

5.20, e a sua positividade no intervalo [1, +∞) que decorre diretamente da fórmula da Proposição 5.21). Pela<br />

Proposição 5.21 e o comentário que se segue, temos<br />

<br />

κ (A) + 1<br />

Ck<br />

<br />

κ (A) − 1<br />

1<br />

⎛<br />

⎝<br />

κ (A) + 1<br />

2 κ (A) − 1 +<br />

⎞k<br />

κ 2 (A) + 1<br />

− 1⎠<br />

,<br />

κ (A) − 1


Rodney Josué Biezuner 100<br />

donde<br />

<br />

e k ⎛<br />

2 ⎝<br />

κ (A) + 1<br />

A κ (A) − 1 +<br />

⎛<br />

<br />

κ (A) + 1 +<br />

= 2 ⎝<br />

<br />

κ 2 (A) + 1<br />

κ (A) − 1<br />

⎞<br />

− 1⎠<br />

−k<br />

<br />

e 0 A<br />

(κ (A) + 1) 2 − (κ (A) − 1) 2<br />

κ (A) − 1<br />

<br />

κ (A) + 1 + 2<br />

= 2<br />

−k κ (A) e<br />

κ (A) − 1<br />

0 A<br />

⎛ κ ⎞<br />

2<br />

⎜<br />

(A) + 1<br />

= 2 ⎝κ<br />

κ <br />

⎟<br />

⎠<br />

(A) + 1 (A) − 1<br />

= 2<br />

κ (A) − 1<br />

κ (A) + 1<br />

k e 0 A .<br />

−k<br />

<br />

e 0 A<br />

⎞<br />

⎠<br />

−k<br />

<br />

e 0 A<br />

<br />

Esta estimativa é bem melhor que a estimativa do método da descida mais acentuada (o número de condição<br />

é subtituido aqui pela sua raiz quadrada), mostrando que o método do gradiente conjugado é bem mais<br />

rápido. Por outro lado, como naquele método, a velocidade de convergência do método CG dependerá<br />

fortemente da boa ou má condicionalidade da matriz A.<br />

Uma comparação entre a velocidade de convergência dos métodos de gradiente para a matriz de discretização<br />

da fórmula de cinco pontos aplicada ao mesmo problema do Capítulo 3 (Seção 3.1.4) é dada na<br />

tabela a seguir [Watkins]. O tamanho das matrizes usadas é indicado na linha superior da tabela e o número<br />

de iterações necessárias para obter um erro algébrico menor normalizado menor que igual a 10 −8 é dado<br />

para cada método.<br />

n = 81 n = 361 n = 1521<br />

Descida Mais Acentuada 304 1114 4010<br />

Gradiente Conjugado 29 60 118<br />

No caso desta matriz de discretização temos<br />

κ (A) =<br />

2 (n − 1) π<br />

sen<br />

2n<br />

π<br />

sen2 2n<br />

2 π π∆x<br />

= cot = cot2<br />

2n 2 ≈<br />

de modo que <br />

κ (A) − 1 1 − π∆x/2<br />

≈ ≈ 1 − π∆x,<br />

κ (A) + 1 1 + π∆x/2<br />

4<br />

π 2 ∆x 2<br />

o que dá uma velocidade de convergência para o método do gradiente conjugado duas vezes maior que a<br />

do método SOR com o fator de relaxamento ótimo. No entanto, deve-se ter em mente que enquanto que a<br />

taxa de covergência que obtivemos para o método SOR é precisa, a estimativa de erro (5.76) do Teorema<br />

5.24 para o método do gradiente conjugado é apenas um limitante superior grosseiro e pode ser melhorada<br />

(veja [Watkins] para algumas estimativas melhoradas). De fato, embora a taxa de convergência assintótica<br />

(5.76) dependa apenas do número de condição, e portanto apenas dos autovalores extremais, a convergência<br />

do método do gradiente conjugado é influenciada pelo espectro inteiro, como o próximo resultado ilustra:


Rodney Josué Biezuner 101<br />

5.25 Teorema. Seja A ∈ Mn (R) uma matriz simétrica positiva definida com apenas m autovalores distintos.<br />

Então o método do gradiente conjugado converge em m iterações.<br />

Prova: Sejam λ1, . . . , λm os m autovalores distintos de A. Seja<br />

p (x) = a (x − λ1) . . . (x − λm)<br />

um polinômio de grau m onde a é escolhido de tal forma a produzir p (0) = 1. Como p (λi) = 0 para todo i,<br />

pela demonstração do Teorema 5.24 (e usando a mesma notação de lá) segue que<br />

p (A) e 0 =<br />

n<br />

aip (λi) vi = 0.<br />

i=1<br />

Logo, pelo Lema 5.23, temos que e m = 0. <br />

Mesmo se isso não ocorre, se os autovalores de A não estão distribuídos uniformemente em [λmin, λmax] mas<br />

se acumulam em subintervalos de [λmin, λmax], pode-se obter melhores taxas de convergência do que (5.76)<br />

(veja [Hackbusch] e [Watkins]).<br />

5.10 Exercícios<br />

5.1 Considere os vetores<br />

v1 =<br />

⎡<br />

⎢<br />

⎣<br />

1<br />

ε<br />

0<br />

0<br />

⎤<br />

⎥<br />

⎦ , v2 =<br />

⎡<br />

⎢<br />

⎣<br />

1<br />

0<br />

ε<br />

0<br />

⎤<br />

⎥<br />

⎦ e v3 =<br />

onde ε ≪ 1. Estes vetores são aproximadamente linearmente independentes.<br />

a) Use o método de Gram-Schmidt clássico para ortogonalizar estes vetores, usando a aproximação<br />

1 + ε 2 = 1 (um computador faria erros de arredondamento adicionais). Verifique que 〈w2, w3〉 = 1/2 e<br />

portanto estes vetores estão muito longe de serem ortogonais.<br />

b) Use o método de Gram-Schmidt modificado para ortogonalizar estes vetores, também usando a<br />

aproximação 1 + ε 2 = 1. Verifique que 〈w2, w3〉 = 0 e que 〈w1, w2〉 = −ε/ √ 2, 〈w1, w3〉 = −ε/ √ 6;<br />

portanto estes vetores estão muito próximos de serem ortogonais.<br />

5.2 Mostre que os algoritmos de Gram-Schmidt clássico e modificado são matematicamente equivalentes<br />

em aritmética exata, isto é, produzem os mesmos vetores.<br />

5.3 Prove que os vetores v1, . . . , vm gerados pelo algoritmo de Arnoldi com MGS formam uma base ortonormal<br />

para o subespaço de Krylov Km (A, v).<br />

5.4 Prove que o inversa de uma matriz triangular superior é uma matriz triangular superior. Prove a<br />

afirmativa equivalente para matrizes triangulares inferiores.<br />

5.5 Prove que o produto de matrizes triangulares superiores é uma matriz triangular superior. Prove a<br />

afirmativa equivalente para matrizes triangulares inferiores.<br />

⎡<br />

⎢<br />

⎣<br />

1<br />

0<br />

0<br />

ε<br />

⎤<br />

⎥<br />

⎦ ,


Capítulo 6<br />

O Problema do Autovalor<br />

Por causa do teorema de Abel com respeito à inexistência de uma fórmula para calcular as raízes de um<br />

polinômio de grau maior ou igual a 5, não existem métodos diretos para calcular autovalores. Todo método<br />

para calcular autovalores é necessariamente um método iterativo.<br />

De fato, dado um polinômio mônico<br />

p (z) = z n + an−1z n−1 + . . . + a1z + a0,<br />

seu determinante é igual a (−1) n vezes o determinante da matriz<br />

⎡<br />

−z<br />

⎢<br />

1<br />

⎢<br />

⎣<br />

−z<br />

1 −z<br />

1 −z<br />

. .. . ..<br />

−a0<br />

−a1<br />

−a2<br />

.<br />

.<br />

−an−1<br />

⎤<br />

⎥ ,<br />

⎥<br />

⎦<br />

1 −z − an−1<br />

logo as raízes de p são os autovalores da matriz<br />

⎡<br />

0<br />

⎢<br />

1<br />

⎢<br />

⎣<br />

0<br />

1 0<br />

1 0<br />

. .. . ..<br />

−a0<br />

−a1<br />

−a2<br />

.<br />

−an−1<br />

⎤<br />

⎥ .<br />

⎥<br />

⎦<br />

1 −an−1<br />

Portanto, o problema de encontrar as raízes de um polinômio é equivalente ao problema de encontrar os<br />

autovalores de uma matriz.<br />

6.1 Caracterização Variacional dos Autovalores de uma Matriz<br />

Simétrica: Quociente de Rayleigh<br />

Os autovalores de uma matriz simétrica podem ser caracterizados variacionalmente.<br />

6.1 Definição. Seja A ∈ Mn (R) uma matriz simétrica. Dado x ∈ R n , o quociente<br />

r (x) =<br />

102<br />

〈Ax, x〉<br />

x 2


Rodney Josué Biezuner 103<br />

é chamado o quociente de Rayleigh de x. A função r : R n −→ R é chamada o funcional de<br />

Rayleigh (ou também o quociente de Rayleigh).<br />

6.2 Teorema. (Princípio de Rayleigh) Seja A ∈ Mn (R) uma matriz simétrica. Se x é um ponto crítico do<br />

funcional de Rayleigh, então x é um autovetor de A e r (x) é o autovalor correspondente.<br />

Prova: Escrevendo<br />

Temos<br />

de modo que<br />

Portanto,<br />

<br />

r (x) =<br />

<br />

aijxixj<br />

i,j=1<br />

<br />

x<br />

i,j=1<br />

2 i<br />

2 x<br />

∂r<br />

(x) =<br />

∂xk<br />

2 <br />

<br />

aikxi − 2xk aijxixj<br />

i=1<br />

i,j=1<br />

x 4 = 2<br />

∇r (x) = 2<br />

2 [Ax − r (x) x] .<br />

x<br />

∇r (x) = 0 se e somente se Ax = r (x) x.<br />

x 2 [(Ax) k − r (x) xk] ,<br />

6.3 Corolário. O quociente de Rayleigh é uma aproximação de segunda ordem para os autovalores de A,<br />

ou seja, se v é um autovetor de A, segue que<br />

<br />

r (x) − r (v) = O x − v 2<br />

quando x → v<br />

Prova: Segue da fórmula de Taylor, já que ∇r (v) = 0. <br />

Podemos obter uma descrição geométrica mais precisa dos pontos críticos do funcional de Rayleigh:<br />

6.4 Teorema. (Princípio de Rayleigh) Seja A ∈ Mn (R) uma matriz simétrica. Sejam λ1 . . . λn os<br />

autovalores de A, de modo que λ1 é o menor autovalor de A e λn é o maior autovalor de A. Então<br />

e<br />

λ1 = min<br />

x∈R n<br />

〈Ax, x〉<br />

x<br />

x=0<br />

2<br />

λn = max<br />

x∈R n<br />

〈Ax, x〉<br />

x<br />

x=0<br />

2<br />

Prova: Seja B = {v1, . . . , vn} uma base ortonormal de autovetores de A correspondentes aos autovalores<br />

λ1, . . . , λn. Então, para todo x = n<br />

xivi temos<br />

λ1 x 2 =<br />

<br />

n<br />

i=1<br />

n<br />

i=1<br />

i=1<br />

λ1x 2 i<br />

λix 2 i =<br />

i=1<br />

n<br />

λixixj 〈vi, vj〉 =<br />

i,j=1<br />

<br />

n<br />

n<br />

= λixivi,<br />

= 〈Ax, x〉 .<br />

j=1<br />

xjvj<br />

i=1<br />

n<br />

〈λixivi, xjvj〉<br />

i,j=1<br />

<br />

n<br />

n<br />

= xiAvi,<br />

j=1<br />

xjvj<br />

<br />

=<br />

<br />

A<br />

n<br />

i=1<br />

xivi<br />

<br />

,<br />

n<br />

j=1<br />

xjvj<br />

<br />

(6.1)<br />

(6.2)


Rodney Josué Biezuner 104<br />

Portanto, para todo x ∈ R n , x = 0, vale<br />

λ1 <br />

〈Ax, x〉<br />

2 .<br />

x<br />

O mínimo é atingido em x = v1 ou em qualquer outro autovetor de A associado a λ1. Da mesma forma,<br />

obtemos<br />

λn x 2 n<br />

= λnx 2 n<br />

i λix 2 i = 〈Ax, x〉 .<br />

i=1<br />

<br />

Os outros autovalores de A, λ2, . . . , λn−1, são pontos de sela e podem ser encontrado através de um<br />

princípio de minimax:<br />

6.5 Teorema. (Princípio de Minimax para Autovalores) Seja A ∈ Mn (R) uma matriz simétrica. Sejam<br />

λ1 . . . λn os autovalores de A. Então<br />

⎛<br />

⎞<br />

λj = min<br />

i=1<br />

W ⊂R n subespaço<br />

dim W =j<br />

⎝ max<br />

x∈W<br />

x=1<br />

Prova: Seja W ⊂ R n um subespaço de dimensão j. Primeiro mostraremos que<br />

max 〈Ax, x〉 λj.<br />

x∈W<br />

x=1<br />

〈Ax, x〉 ⎠ . (6.3)<br />

Seja B = {v1, . . . , vn} uma base ortonormal de autovetores de A correspondentes aos autovalores λ1, . . . , λn.<br />

Seja Z = 〈v1, . . . , vj−1〉. Como Z ⊥ = 〈vj, . . . , vn〉, temos<br />

de modo que<br />

n dim W + Z ⊥ = dim W + dim Z ⊥ − dim W ∩ Z ⊥ = j + n − (j − 1) − dim W ∩ Z ⊥ ,<br />

dim W ∩ Z ⊥ 1<br />

e existe um vetor x ∈ W ∩ Z⊥ tal que x = 1. Escrevendo x = n<br />

xkvk, temos x = n<br />

|xk| 2 = 1, donde<br />

<br />

n<br />

n<br />

〈Ax, x〉 = xkAvk,<br />

=<br />

k=j<br />

n<br />

k=j<br />

l=j<br />

λk |xk| 2 λj<br />

xlvl<br />

k=j<br />

k=j<br />

<br />

n<br />

n<br />

= xkλkvk,<br />

n<br />

|xk| 2 = λj.<br />

k=j<br />

l=j<br />

xlvl<br />

<br />

=<br />

k=j<br />

n<br />

λkxkxl 〈vk, vl〉<br />

Para completar a demonstração, devemos encontrar um subespaço W ⊂ R n de dimensão j tal que<br />

〈Ax, x〉 λj para todo x ∈ W com x = 1. Tomemos W = 〈v1, . . . , vj〉. Temos<br />

<br />

j<br />

〈Ax, x〉 = xkAvk,<br />

=<br />

k=1<br />

j<br />

k=1<br />

O minimax é atingido em vj. <br />

j<br />

l=1<br />

λk |xk| 2 λj<br />

xlvl<br />

<br />

j<br />

= xkλkvk,<br />

k=1<br />

j<br />

|xk| 2 = λj.<br />

k=1<br />

j<br />

l=1<br />

xlvl<br />

<br />

=<br />

k,l=j<br />

j<br />

λkxkxl 〈vk, vl〉<br />

k,l=1


Rodney Josué Biezuner 105<br />

6.2 Método das Potências<br />

O método das potências ou método das iterações é o algoritmo mais simples para o cálculo de autovalores<br />

de matrizes, mas ele pode encontrar apenas o maior autovalor (em módulo) de uma matriz A ∈ Mn (C),<br />

chamado o autovalor dominante de A, desde que haja apenas um. Para simplificar a exposição, suponha<br />

que A é uma matriz diagonalizável cujo maior autovalor (em módulo) é um autovalor simples (isto é, seu<br />

autoespaço associado tem dimensão 1). Ordene os autovalores de A na forma<br />

|λ1| > |λ2| . . . |λn|<br />

e seja {v1, . . . , vn} uma base correspondente de autovetores. Assim, λ1 é o autovalor dominante de A e<br />

v1 um autovetor dominante. Quando A tem um autovalor dominante, este e um correspondente autovetor<br />

dominante podem ser encontrados através do método das potências, que consiste essencialmente em tomar<br />

um vetor v0 arbitrário e considerar as potências<br />

v0, Av0, A 2 v0, . . . , A k v0, . . . (6.4)<br />

É essencial que o vetor v0 possua uma componente na direção do autovetor dominante v1. Este não é a<br />

priori conhecido, mas se a escolha é arbitrária há grande probabilidade que isso ocorra na prática. De fato,<br />

para quase todas as escolhas de v0 devemos ter<br />

v0 =<br />

n<br />

i=1<br />

com a1 = 0; raramente uma escolha aleatória de v0 produzirá um vetor no subespaço 〈v2, . . . , vn〉. Temos<br />

então<br />

A k n<br />

v0 = aiλvi,<br />

donde escrevemos<br />

A k v0 = λ k 1<br />

<br />

a1v1 +<br />

i=1<br />

aivi<br />

n<br />

i=2<br />

ai<br />

λi<br />

Embora Ak <br />

v0<br />

→ ∞ se λ1 > 1 e Ak <br />

v0<br />

→ 0 se λ1 < 1, como<br />

λi<br />

λ1<br />

k → 0,<br />

para todo i = 2, . . . , n, segue que a sequência reescalada<br />

A k v0<br />

λ k 1<br />

→ a1v1<br />

converge para um autovetor dominante. No entanto, como o autovalor λ1 não é conhecido a priori, é<br />

impossível trabalhar com esta sequência. Portanto, trabalhamos ao invés com a sequência normalizada<br />

wk = Ak v0<br />

A k v0<br />

onde · é uma norma qualquer (por exemplo, a norma do máximo), que converge para um autovetor<br />

dominante unitário.<br />

λ1<br />

k<br />

vi<br />

<br />

.<br />

(6.5)


Rodney Josué Biezuner 106<br />

6.6 Proposição. Seja A ∈ Mn (C) uma matriz diagonalizável e assuma que o seu autovalor dominante λ1<br />

é simples. Dado um vetor arbitrário v0 ∈ C n que possui uma componente não-nula no autoespaço<br />

associado a λ1, defina a sequência<br />

onde<br />

Então<br />

w0 = v0,<br />

wk+1 = Awk<br />

.<br />

αk<br />

αk = Awk .<br />

wk → v1,<br />

αk → λ1,<br />

onde v1 é um autovetor dominante unitário. Além disso, a taxa assintótica de convergência é<br />

<br />

λ2 <br />

O <br />

.<br />

Se A é uma matriz simétrica real e definirmos<br />

então<br />

com taxa assintótica de convergência<br />

Prova: Temos<br />

λ1<br />

µk = 〈Awk, wk〉 ,<br />

O<br />

µk → λ1<br />

<br />

λ2<br />

λ1<br />

wk = Akv0 ,<br />

αk<br />

2<br />

<br />

<br />

<br />

<br />

.<br />

onde αk = α1 . . . αk é simplesmente o escalar apropriado que normaliza o vetor A k v0, isto é, αk = A k v0<br />

Escrevendo<br />

segue que<br />

Como<br />

wk = λk 1<br />

αk<br />

a1v1 +<br />

<br />

v0 =<br />

a1v1 +<br />

n<br />

i=2<br />

ai<br />

n<br />

aivi,<br />

i=1<br />

n<br />

i=2<br />

λi<br />

λ1<br />

ai<br />

k<br />

λi<br />

λ1<br />

k<br />

vi<br />

vi → a1v1<br />

e wk sendo uma sequência unitária possui uma subsequência convergente, concluímos que wk converge para<br />

um vetor unitário na direção de v1.<br />

Como<br />

Awk = αkwk,<br />

tomando o limite em ambos os lados concluímos que<br />

Av1 = (lim αk) v1,<br />

<br />

.<br />

<br />

.


Rodney Josué Biezuner 107<br />

logo lim αk = λ1.<br />

Finalmente, a taxa assintótica de convergência segue de<br />

<br />

n<br />

<br />

k <br />

λi <br />

ai vi<br />

<br />

<br />

n<br />

<br />

k λi <br />

n<br />

<br />

|ai| <br />

vi |ai| vi<br />

i=2<br />

λ1<br />

i=2<br />

λ1<br />

i=2<br />

λ2<br />

λ1<br />

<br />

<br />

<br />

<br />

k<br />

<br />

<br />

C (v0) <br />

<br />

O caso A simétrico segue do Corolário 6.3. <br />

Vemos que a velocidade de convergência do método das potências pode ser muito lenta se a diferença entre<br />

o maior e o segundo maior autovalores não for muito grande, uma situação frequentemente encontrada na<br />

prática. O método das potências funciona mesmo quando o autovalor dominante não é simples, desde que<br />

não existam outros autovalores de A diferentes do autovalor dominante que tenham o mesmo valor em<br />

módulo, isto é quando existe apenas um autovalor dominante (Exercício 6.1). É claro que o método não vai<br />

produzir uma base para o autoespaço dominante, apenas um autovetor deste autoespaço, correspondente ao<br />

vetor unitário na direção da componente do vetor inicial. Quando existem vários autovalores dominantes, o<br />

método não pode ser aplicado. Em particular, o método não pode ser aplicado a matrizes reais que possuem<br />

um autovalor dominante complexo, já que neste caso o seu conjugado também é um autovalor dominante.<br />

Esta situação ocorre também com matrizes ortogonais, já que todos os autovalores de uma matriz ortogonal<br />

tem norma 1.<br />

Se A não é diagonalizável, o autovalor dominante de A ainda pode ser encontrado pelo método das<br />

potências (desde que não haja mais de um autovalor dominante, como observado no parágrafo anterior),<br />

como discutido no Exercício 6.2.<br />

6.2.1 Método das Potências Inverso<br />

O método das potência permite apenas encontrar o autovalor dominante. Para obter o menor autovalor<br />

de A, podemos aplicar o método das potências à matriz inversa A −1 , pois se λ é o menor autovalor de A,<br />

1/λ será o maior autovalor de A −1 . Este método é chamado método das potências inverso ou iteração<br />

inversa (quando o método das potências é chamado iteração direta).<br />

6.2.2 Método das Potências com Deslocamento<br />

Teoricamente, o método das potências poderia ser aplicado diretamente para encontrar todos os autovalores<br />

de A. Por exemplo, para encontrar λ2 e um autovetor associado, uma vez encontrado o autovetor associado<br />

ao primeiro autovalor, bastaria tomar um novo vetor inicial que não tivesse componentes na direção do<br />

autovetor dominante (ou autoespaço dominante; veja Exercício 6.1), mas apenas na direção de v2. Isso seria<br />

fácil de conseguir se os autovetores de A fosse ortogonais (por exemplo, se A é simétrica): bastaria tomar<br />

um vetor inicial aleatório v0, com componentes na direção de todos os autovetores de A, e subtrair dele a<br />

sua componente ortogonal na direção do autovetor dominante. Na notação da seção anterior, bastaria tomar<br />

v0 = v0 − a1v1 =<br />

n<br />

aivi,<br />

e proceder desta maneira até encontrar todos os autovalores de A (desde que não haja autovalores distintos<br />

mas iguais em módulo). Na prática isso não funciona, porque erros de arredondamento apareceriam<br />

imediatamente:<br />

n<br />

Av0 = ελ1v1 + aiλivi;<br />

ao invés de obter λ2 e um autovetor associado, voltaríamos a obter λ1 e um autovetor dominante.<br />

Para encontrar os demais autovalores da matriz A, observe que se A tem autovalores λ1, . . . , λn, então<br />

A − σI tem autovalores λ1 − σ, . . . , λn − σ. O escalar σ é chamado um deslocamento. Podemos então aplicar<br />

i=2<br />

i=2<br />

λ2<br />

λ1<br />

<br />

<br />

<br />

<br />

k<br />

.


Rodney Josué Biezuner 108<br />

o método das potências à matriz (A − σI) −1 , pois os autovalores de A são<br />

de modo que o autovalor dominante de (A − σI) −1 é<br />

1 1<br />

, . . . ,<br />

λ1 − σ λn − σ ,<br />

1<br />

λi − σ<br />

onde λi é o autovalor de A mais próximo de σ. Assim, podemos encontrar todos os autovalores de A<br />

variando o deslocamento σ. Este método é chamado método das potências com deslocamento ou<br />

iteração com deslocamento. Ele é particularmente eficiente quando possuímos boas estimativas para os<br />

autovalores de A (estimativas grosseiras podem ser obtidas através do teorema dos discos de Gershgorin).<br />

Como já observado anteriormente, a convergência do método das potências direto será lenta quando λ1 e<br />

λ2 forem muito próximos. No caso do método das potências com deslocamento, uma escolha cuidadosa do<br />

deslocamento σ pode aumentar substancialmente a velocidade de convergência. Com efeito, observe que<br />

neste caso temos (para simplificar a compreensão, novamente supomos A diagonalizável e, adicionalmente,<br />

que todos os autovalores são simples):<br />

donde<br />

<br />

<br />

<br />

<br />

<br />

<br />

(A − σI) −1 <br />

k 1<br />

v0 =<br />

λi − σ<br />

(A − σI) −1 k<br />

v0 −<br />

1<br />

λi − σ<br />

⎡<br />

k ⎢<br />

⎣aivi +<br />

k<br />

aivi<br />

de modo que a taxa assintótica de convergência é dada por<br />

<br />

λi<br />

<br />

− σ <br />

<br />

− σ <br />

λi<br />

<br />

<br />

<br />

<br />

<br />

n<br />

j=1<br />

j=i<br />

ai<br />

k λi − σ<br />

λj − σ<br />

n<br />

<br />

λi<br />

|ai| <br />

− σ <br />

<br />

λj<br />

− σ <br />

j=1<br />

j=i<br />

⎛<br />

⎜<br />

⎜<br />

⎝<br />

k<br />

vj<br />

|vj|<br />

⎤<br />

⎥<br />

⎦<br />

⎞<br />

n<br />

<br />

⎟ λi<br />

|ai| |vj| ⎟ <br />

− σ <br />

<br />

⎠ − σ <br />

onde λi é o autovalor mais próximo a λi. Tomando o deslocamento σ significantemente mais próximo de λi<br />

do que de λi , podemos obter<br />

<br />

λi<br />

<br />

− σ <br />

<br />

− σ ≪ 1,<br />

λi<br />

acelerando a convergência do método.<br />

É importante observar que tanto na iteração inversa, quanto na iteração com deslocamento, em nenhum<br />

momento é necessário calcular a inversa A−1 explicitamente, o que consumiria muito tempo e recursos.<br />

Embora as iteradas satisfazem<br />

wk+1 = 1<br />

(A − σI) −1 wk,<br />

basta resolver o sistema<br />

σk+1<br />

(A − σI) wk+1 = wk<br />

j=1<br />

j=i<br />

λi<br />

k<br />

(6.6)


Rodney Josué Biezuner 109<br />

e então tomar<br />

wk+1 = 1<br />

wk+1.<br />

σk+1<br />

Além disso, apesar de A − λI ser uma matriz singular quando λ é um autovalor de A, e portanto tomar um<br />

deslocamento σ muito próximo a λ produz uma matriz A − σI muito mal condicionada, isso não atrapalha<br />

a eficência da iteração com deslocamento em nada (veja [Parlett]).<br />

Finalmente, notamos que se os autovalores de uma matriz já são conhecidos, o método padrão para<br />

encontrar os autovetores de A é o método das potências com deslocamento, já que os deslocamentos podem<br />

ser escolhido arbitrariamente próximos dos autovalores, tornando a convergência muito rápida.<br />

6.2.3 Iteração do Quociente de Rayleigh<br />

Quando a matriz A é simétrica, combinando a iteração inversa e o quociente de Rayleigh é possível obter<br />

um método extremamente rápido, de tal forma que depois de 2 ou 3 passos o número de dígitos corretos no<br />

autovalor triplica a cada iteração. A idéia é não manter o valor de deslocamento constante, mas atualizá-lo<br />

a cada iteração com uma aproximação melhor do autovalor dada pelo quociente de Rayleigh. O algoritmo<br />

para a iteração do quociente de Rayleigh é o seguinte:<br />

Iteração do Quociente de Rayleigh<br />

Atribua v 0 ;<br />

v 0 ← v 0 / v 0 ;<br />

λ 0 = 〈Av0, v0〉 ;<br />

⎡<br />

Para k = 0, 1, 2, . . ., até limite de tolerância<br />

⎣<br />

Resolva A − λ k I w = v k ;<br />

v k+1 ← w/ w ;<br />

λ k+1 ← Av k+1 , v k+1 ;<br />

fim do laço<br />

Vamos verificar que a convergência da iteração de Rayleigh é cúbica:<br />

6.7 Proposição. Seja A ∈ Mn (R) uma matriz simétrica e assuma que o autovalor λi é simples. Dado um<br />

vetor arbitrário v 0 ∈ R n que possui uma componente não-nula no autoespaço associado a λi, tome<br />

λ 0 = Av 0 , v 0 e defina a sequência<br />

v k+1 =<br />

<br />

<br />

A − λ k I −1 v k<br />

(A − λ k I) −1 v k<br />

λ k+1 = Av k+1 , v k+1 .<br />

Então v k converge para um autovetor unitário vi associado a λi e λ k → λi com uma taxa de con-<br />

vergência que satisfaz<br />

<br />

v k+1 − vi<br />

e <br />

λ k+1 <br />

− λi<br />

= O<br />

Prova: Pelo Corolário 6.3,<br />

<br />

λ k − λi<br />

<br />

<br />

,<br />

<br />

v k<br />

= O − (±vi) 3<br />

<br />

= O<br />

λ k <br />

− λi<br />

3<br />

.<br />

v k <br />

− vi<br />

2<br />

.<br />

Pelas estimativas para a iteração inversa com deslocamento obtidas na subseção anterior, temos<br />

<br />

v k+1 <br />

λi<br />

− vi<br />

C <br />

− λ<br />

<br />

k<br />

<br />

<br />

v <br />

k <br />

− vi<br />

.<br />

λi − λk


Rodney Josué Biezuner 110<br />

Como λk está próximo de λi, podemos substituir λi − λk por λi<br />

<br />

v k+1 <br />

− vi<br />

= O λ k <br />

− λi<br />

v k <br />

− vi<br />

= O<br />

<br />

− λi<br />

no denominador, de modo que<br />

v k+1 <br />

− vi<br />

3<br />

.<br />

As constantes implícitas no símbolo O são uniformes para vizinhanças suficientemente pequenas de λi e vi.<br />

Para obter a taxa de convergência para os autovalores, use o resultado obtido e o Corolário 6.3 duas vezes<br />

escrevendo <br />

λ k+1 v − λi<br />

= O<br />

k+1 <br />

− vi<br />

2<br />

v = O<br />

k <br />

− vi<br />

6<br />

λ = O<br />

k <br />

− λi<br />

3<br />

.<br />

<br />

Este resultado vale mesmo quando o autovalor não é simples (Exercício 6.3).<br />

No caso em que A não é simétrica, a iteração do quociente de Rayleigh ainda pode ser usada, mas<br />

a convergência é apenas quadrática (veja [Watkins]). Para uma análise mais rigorosa da convergência do<br />

método das potências e todas as suas variações, inclusive a iteração do quociente de Rayleigh, veja [Parlett].<br />

6.3 Algoritmo QR<br />

O algoritmo QR (não confundir com a decomposição QR) é o algoritmo preferido para encontrar todos os<br />

autovalores de uma matriz não-simétrica densa. O algoritmo básico QR pode ser descrito da seguinte forma.<br />

Seja A ∈ Mn (C) uma matriz cujos autovalores queremos calcular. Começando com<br />

A0 = A, (6.7)<br />

definimos iterativamente uma sequência de matrizes A1, A2, . . ., recursivamente da seguinte maneira. Primeiro<br />

fazemos a decomposição QR da matriz obtida no passo anterior:<br />

Em seguida definimos<br />

Observe que, como<br />

Ak−1 = QkRk. (6.8)<br />

Ak = RkQk. (6.9)<br />

Ak = Q ∗ kAk−1Qk, (6.10)<br />

todas as matrizes da sequência, que denominaremos sequência QR, possuem os mesmos autovalores. Veremos<br />

mais tarde que o algortimo QR é simplesmente uma implementação de um procedimento conhecido como<br />

iteração simultânea, o qual é uma extensão natural do método das potências. Consequentemente, pode ser<br />

mostrado que a sequência QR converge, sob certas condições, para uma matriz triangular superior na forma<br />

⎡<br />

⎤<br />

λ1 ∗ · · · ∗<br />

⎢<br />

. ..<br />

. ⎥<br />

λ2 ⎢<br />

. ⎥<br />

⎢<br />

⎣<br />

. ⎥<br />

.. ∗ ⎦<br />

onde os autovalores da diagonal principal aparecem em ordem descrescente de magnitude. Em particular,<br />

como as matrizes da sequência QR são semelhantes, se A é hermitiana então a sequência converge para uma<br />

matriz diagonal.<br />

O algoritmo básico QR é ineficiente para uso prático. Cada decomposição QR custa 4<br />

3n3 flops e cada<br />

multiplicação matricial custa O n3 flops. Além disso, a convergência para a forma triangular é muito<br />

vagarosa, de forma que um número muito grande de passos é necessário antes que se atinja um limite de<br />

tolerância razoável. No que se segue, veremos procedimentos para diminuir os custos das decomposições<br />

QR e aumentar a velocidade de convergência do método. O primeiro procedimento, reduzir a matriz à sua<br />

λn


Rodney Josué Biezuner 111<br />

forma de Hessenberg, reduz cada passo no algoritmo QR a um custo de O n 2 flops para uma matriz geral<br />

e O (n) para uma matriz hermitiana. O segundo procedimento, deflação e deslocamento usando o quociente<br />

de Rayleigh, reduz o número de iterações necessárias para produzir convergência na precisão da máquina a<br />

O (n) iterações. Assim o custo total do algoritmo QR na sua implementação mais eficiente será O n 3 flops<br />

para matrizes gerais e O n 2 flops para matrizes hermitianas.<br />

6.3.1 Redução de uma matriz a sua forma de Hessenberg<br />

O custo das decomposições QR é reduzido drasticamente se reduzirmos a matriz A à sua forma de Hessenberg<br />

antes de começar as iterações QR, já que o custo de uma decomposição QR para matrizes de Hessenberg<br />

é O n 2 ; se além disso a matriz for Hermitiana, ou seja, tridiagonal, o custo é apenas O (n). Também o<br />

custo da multiplicação, de uma matriz de Hessenberg superior por uma matriz triangular, é reduzido para<br />

O n 2 . Essa redução funciona porque o algoritmo QR preserva a forma de Hessenberg, de modo que todas<br />

as matrizes da sequência QR são de Hessenberg assim como os fatores Q:<br />

6.8 Proposição. Seja H ∈ Mn (C) uma matriz de Hessenberg superior. Então toda matriz da sequência<br />

QR é também uma matriz de Hessenberg superior. Além disso, os fatores Qk da decomposição Ak−1 =<br />

QkRk também são Hessenberg superiores.<br />

Prova: Assuma A invertível, de modo que todas as matrizes da sequência QR são invertíveis; em particular,<br />

os fatores Qk, Rk também são invertíveis. Suponha por indução que Ak−1 é uma matriz de Hessenberg<br />

superior. Seja Ak−1 = QkRk uma decomposição QR de Ak−1. Afirmamos que<br />

Qk = Ak−1R −1<br />

k<br />

é uma matriz de Hessenberg superior. De fato, como a inversa de uma matriz triangular superior é uma<br />

matriz triangular superior, Qk é o produto de uma matriz de Hessenberg superior e de uma matriz triangular<br />

superior, logo também é uma matriz de Hessenberg superior. Segue que Ak = RkQk é o produto de uma<br />

matriz triangular superior e uma matriz de Hessenberg superior, logo também é uma matriz de Hessenberg<br />

superior.<br />

O caso geral, em que A é singular, é um pouco mais difícil. De fato, não é verdade que toda decomposição<br />

QR de uma matriz de Hessenberg superior vai produzir um fator Q Hessenberg superior. Mas é possível<br />

provar que é sempre possível escolher a decomposição QR de tal forma que o fator Q produzido é Hessenberg<br />

superior (veja [Watkins]). <br />

Antes de descrever o algoritmo que transforma uma matriz geral em uma matriz de Hessenberg superior<br />

(o custo da transformação será de 10<br />

3 n3 flops) vamos introduzir o conceito de refletores de Householder que<br />

são usados para introduzir zeros abaixo da subdiagonal inferior.<br />

No que se segue assumiremos sempre a norma vetorial como sendo a norma euclidiana.<br />

6.9 Definição. Seja u ∈ R n um vetor unitário. Então o operador Q : R n −→ R n definido por<br />

Q = I − 2uu T<br />

é chamado um refletor de Householder (ou simplesmente um refletor).<br />

A proposição a seguir resume as propriedades que caracterizam uma reflexão:<br />

6.10 Proposição. Sejam u ∈ R n um vetor unitário e Q = I − 2uu T um refletor. Então<br />

(i) Qu = −u.<br />

(ii) Qv = v para todo v ⊥ u.<br />

(iii) Q = Q T ( Q é simétrico).<br />

(6.11)


Rodney Josué Biezuner 112<br />

(iv) Q T = Q −1 ( Q é ortogonal).<br />

(v) Q −1 = Q ( Q é uma involução).<br />

Prova: (i) Usando o fato que u T u = 〈u, u〉 = 1, temos<br />

(ii) Usando o fato que u T v = 〈u, v〉 = 0, temos<br />

(iii)<br />

(iv),(v) Usando (iii) segue que<br />

Qu = u − 2 uu T u = u − 2u u T u = u − 2u = −u<br />

Qv = v − 2 uu T v = u − 2u u T v = u − 0 = u.<br />

Q T = I − 2uu T T = I − 2 u T T u T = I − 2uu T = Q.<br />

QQ T = QQ = I − 2uu T I − 2uu T = I − 4uu T + 4uu T uu T<br />

= I − 4uu T + 4u u T u u T = I − 4uu T + 4uu T<br />

= I.<br />

<br />

Em outras palavras Q = I − 2uu T leva cada vetor x ∈ R n em sua reflexão com relação ao hiperplano<br />

H = {v : 〈u, v〉 = 0} ortogonal a u.<br />

A possibilidade do uso de refletores para criar zeros em matrizes segue do seguinte resultado:<br />

6.11 Teorema. Sejam x, y ∈ R n tais que x = y mas x = y. Então existe um único refletor tal que<br />

Qx = y.<br />

Prova: (Existência) Para encontrar um vetor u tal que I − 2uu T x = y, primeiro notamos que o hiperplano<br />

de reflexão bisecta o ângulo entre x e y, de modo que o vetor x − y deve ser perpendicular a este plano.<br />

Portanto, nosso candidato é<br />

u =<br />

De fato, de (i) e (ii) da proposição anterior, temos<br />

pois<br />

Logo,<br />

<br />

x − y<br />

. (6.12)<br />

x − y<br />

Q (x − y) = y − x,<br />

Q (x + y) = x + y,<br />

〈x − y, x + y〉 = 〈x, x〉 + 〈x, y〉 − 〈y, x〉 − 〈y, y〉 = x 2 − y 2 = 0.<br />

Qx = 1<br />

1<br />

[Q (x − y) + Q (x + y)] = [y − x + x + y] = y.<br />

2 2<br />

6.12 Corolário. Seja x ∈ Rn um vetor não nulo. Então existe um refletor Q tal que<br />

⎡<br />

⎢<br />

Q ⎢<br />

⎣<br />

x1<br />

x2<br />

.<br />

.<br />

⎤<br />

⎥<br />

⎦ =<br />

⎡<br />

∗<br />

⎢ 0<br />

⎢ .<br />

⎣ .<br />

0<br />

⎤<br />

⎥<br />

⎦ .<br />

xn


Rodney Josué Biezuner 113<br />

Prova: Escolha y = (± x , 0, . . . , 0) no teorema anterior, com o sinal escolhido de tal forma a garantir que<br />

x = y. <br />

No caso complexo, basta tomar<br />

Q = I − 2uu ∗<br />

(6.13)<br />

e temos resultados análogos, bastando substituir simétrico ortogonal por hermitiano unitário.<br />

Vamos agora descrever o algoritmo para reduzir uma matriz geral A à forma de Hessenberg. Cada passo<br />

introduz os zeros nas posições desejadas de cada coluna, da primeira até a última, em um total de n−2 passos<br />

(já que evidentemente não há necessidade de transformar as últimas 2 colunas da matriz para colocá-la na<br />

forma de Hessenberg). Primeiro faça uma partição por blocos de A na forma<br />

<br />

a11 c<br />

A =<br />

T <br />

b A<br />

Seja Q1 : Fn−1 −→ Fn−1 um refletor (onde F = R ou C) tal que<br />

⎡ ⎤<br />

τ1<br />

⎢<br />

Q1b<br />

⎢ 0 ⎥<br />

= ⎢<br />

⎣ .<br />

⎥<br />

. ⎦<br />

0<br />

onde |τ1| = b e τ1b1 < 0. Defina o refletor Q1 : F n −→ F n<br />

e tome<br />

Então<br />

T 1 0<br />

Q1 =<br />

0 Q1<br />

<br />

⎡<br />

⎢<br />

A1/2 = Q1A = ⎢<br />

⎣<br />

A1 = Q1AQ −1<br />

1 = Q1AQ1 = A 1/2Q1 =<br />

⎡<br />

⎢<br />

⎣<br />

a11<br />

τ1<br />

0<br />

.<br />

0<br />

a11<br />

τ1<br />

0<br />

.<br />

.<br />

0<br />

c T Q1<br />

c T<br />

Q1 A<br />

Q1 A Q1<br />

⎤<br />

⎤<br />

⎥<br />

⎦<br />

⎡<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ ⎢<br />

⎥ = ⎢<br />

⎥ ⎢<br />

⎦ ⎣<br />

a11 ∗ · · · ∗<br />

Este é o fim do primeiro passo: a matriz A1, semelhante à matriz A através de uma matriz ortogonal, tem<br />

zeros na primeira coluna abaixo do primeiro elemento da subdiagonal.<br />

O segundo passo cria zeros na segunda coluna de A1, isto é, na primeira coluna de A1, nas posições<br />

desejadas. Assim, usamos um refletor Q2 : Fn−2 −→ Fn−2 exatamente como no primeiro passo, exceto que<br />

usamos A1 ao invés de A, e definimos<br />

⎡<br />

⎢<br />

Q2 = ⎢<br />

⎣<br />

1 0<br />

0 1<br />

0 0<br />

. .<br />

. .<br />

0 0<br />

0 · · · 0<br />

0 · · · 0<br />

Q2<br />

⎤<br />

⎥<br />

⎦<br />

τ1<br />

0<br />

.<br />

0<br />

A1<br />

⎤<br />

⎥ .<br />

⎥<br />


Rodney Josué Biezuner 114<br />

e<br />

Daí,<br />

⎡<br />

⎢<br />

A3/2 = Q2A1 = ⎢<br />

⎣<br />

a11 ∗ ∗ · · · ∗<br />

τ1 ∗ ∗ · · · ∗<br />

0<br />

.<br />

.<br />

0<br />

A2 = Q2A1Q −1<br />

2 = Q2A1Q2 = A 3/2Q2 =<br />

τ2<br />

.<br />

.<br />

0<br />

⎡<br />

⎢<br />

⎣<br />

Q2 A1<br />

⎤<br />

⎥ .<br />

⎥<br />

⎦<br />

a11 ∗ ∗ · · · ∗<br />

τ1<br />

0<br />

∗ ∗ · · · ∗<br />

.<br />

0<br />

τ2<br />

.<br />

0<br />

Q2 A1 Q2<br />

Procedemos desta forma em n−2 passos até encontrar uma matriz de Hessenberg An−2 semelhante à matriz<br />

original A através de uma matriz ortogonal Q = Qn−2 . . . Q2Q1.<br />

6.3.2 Aceleração do algoritmo QR<br />

Ordene os autovalores de A na forma<br />

|λ1| |λ2| . . . |λn| .<br />

Considere uma sequência (Ak) de iteradas do algoritmo QR tal que cada matriz Ak é de Hessenberg superior.<br />

Denote<br />

⎡<br />

⎤<br />

⎢<br />

Ak = ⎢<br />

⎣<br />

ak 11 ak 12 ak 13 ak 14 . . . . . . ak 1n<br />

ak 21 ak 22 ak 23 ak 24 . . . . . . ak 2n<br />

0 ak 32 ak 33 ak 34 . . . . . . ak 3n<br />

0 0 ak 43 ak . ..<br />

44<br />

. . . ak 4n<br />

0 0 0<br />

.<br />

.<br />

.<br />

.<br />

.<br />

.<br />

.<br />

.<br />

.<br />

.<br />

.<br />

.<br />

. ..<br />

. ..<br />

. ..<br />

. ..<br />

. ..<br />

. ..<br />

. ..<br />

. ..<br />

. ..<br />

.<br />

.<br />

.<br />

.<br />

. .. a k n−1,n<br />

0 0 0 0 . . . 0 a k n,n−1 a k nn<br />

No algoritmo QR as entradas subdiagonais (ou a maioria delas) convergem para 0 quando n → ∞. Mais<br />

precisamente, como veremos mais tarde, se<br />

então<br />

|λi| > |λi+1| ,<br />

a k i+1,i → 0 com taxa de convergência<br />

<br />

<br />

<br />

<br />

λi+1<br />

λi<br />

⎥ .<br />

⎥<br />

⎦<br />

<br />

<br />

<br />

, i = 1, . . . , n − 1.<br />

Portanto, uma maneira de acelerar a convergência do algoritmo é decrescer os quocientes |λi+1/λi|. Um modo<br />

de fazer isso é através do uso de um deslocamento, como no método das potências. A matriz deslocada A−σI<br />

tem autovalores<br />

|λ1 − σ| |λ2 − σ| . . . |λn − σ|<br />

e as taxas de convergência associadas são<br />

<br />

λi+1<br />

<br />

− σ <br />

<br />

λi − σ , i = 1, . . . , n − 1.<br />

⎤<br />

⎥ .<br />

⎥<br />


Rodney Josué Biezuner 115<br />

Assim, se escolhermos σ suficientemente próximo de um autovalor arbitrário que chamaremos λn após reordenar<br />

os índices (e assumindo λn−1 = λn), aplicando o algoritmo QR a A − σI observaremos que a<br />

(A − σI) k<br />

n,n−1 converge para 0 rapidamente. Uma vez que (A − σI)k n,n−1 seja suficientemente pequeno, esta<br />

entrada pode ser considerado 0 na prática e, adicionando σI à iterada (A − σI) k do algoritmo QR, obtemos<br />

⎡<br />

⎢<br />

Ak = ⎢<br />

⎣<br />

Ak<br />

0<br />

.<br />

0<br />

0 · · · 0 a k nn<br />

com a k nn uma boa aproximação para λn. Os autovalores restantes de Ak são os autovalores de Ak. Podemos<br />

então aplicar o algoritmo QR à matriz Ak, que tem ordem um a menos que a ordem de A. Continuando<br />

desta forma, usaremos o algoritmo QR em matrizes cada vez menores até obter todos os autovalores de A.<br />

Este processo, em que o tamanho da matriz é reduzido cada vez que um autovalor é encontrado, é chamado<br />

deflação.<br />

O próprio algoritmo QR pode ser usado para obter os valores para os deslocamentos σ, já que depois<br />

de algumas iterações a matriz está próxima da forma triangular e os valores na diagonal principal estão<br />

próximos aos autovalores de A. De fato, as entradas na diagonal principal são quocientes de Rayleigh, já<br />

que<br />

a k ii = e T i Akei = 〈Akei, ei〉 .<br />

Assim, o deslocamento pode ser modificado em cada iteração, como no método da iteração do quociente de<br />

Rayleigh, usando-se<br />

de modo que <br />

λi+1 − σk<br />

λi − σk<br />

σk = a k nn<br />

⎤<br />

⎥<br />

⎦ .<br />

<br />

<br />

<br />

→ 0 quando k → ∞<br />

e obtemos uma taxa de convergência melhor que linear. De fato, veremos que, como no método da iteração<br />

do quociente de Rayleigh, este algoritmo QR com deslocamento dado pelo quociente de Rayleigh<br />

possui convergência quadrática em geral e cúbica para matrizes hermitianas.<br />

Na prática, depois de apenas uma iteração QR já é seguro usar σ1 = a 1 nn. O único efeito dessa escolha é<br />

que a ordem dos autovalores obtidos no processo não é necessariamente crescente.<br />

O deslocamento dado pelo quociente de Rayleigh pode falhar às vezes, por exemplo quando o deslocamento<br />

obtido está a mesma distância de dois autovalores distintos, fazendo com que o método tenha dificuldade<br />

de “decidir” qual autovalor aproximar. Para evitar esta situação, é preferível usar o deslocamento de<br />

Wilkinson, que é definido como sendo o autovalor da submatriz 2 × 2<br />

<br />

a k n−1,n−1<br />

a k n,n−1<br />

ak n−1,n<br />

ak nn<br />

que está mais próximo de a k nn. Ele é fácil de calcular porque é a raiz de um polinômio do segundo grau. É<br />

possível provar para matrizes simétricas tridiagonais o algoritmo QR com deslocamento de Wilkinson sempre<br />

converge. Além disso, como estamos usando maior informação para obter o deslocamento, a taxa convergência<br />

no mínimo igual à do algoritmo QR usando o deslocamento dado pelo quociente de Rayleigh e muitas vezes<br />

melhor. Em geral, existem apenas casos muito especiais de matrizes para as quais o deslocamento de<br />

Wilkinson falha. A experiência tem mostrado que são necessárias apenas 5 ou 9 iterações do algoritmo<br />

QR para obter uma aproximação satisfatória para o primeiro autovalor e de 3 a 5 iterações em média para<br />

os autovalores restantes (às vezes menos); para matrizes hermitianas, 2 ou 3 iterações em média bastam.<br />

O deslocamento de Wilkinson tem a vantagem inicial de que pode ser usado para aproximar autovalores<br />

complexos de matrizes reais, já que ele pode ser um número complexo, enquanto que o quociente de Rayleigh


Rodney Josué Biezuner 116<br />

de uma matriz real sempre é um valor real. Para maiores detalhes sobre as informações contidas este parágrafo<br />

veja [Watkins].<br />

Por fim, às vezes ocorre durante as iterações do algoritmo QR que um elemento da subdiagonal inferior<br />

localizado próximo ao meio da matriz é suficientemente próximo de 0. Neste caso a matriz Ak tem a forma<br />

em blocos <br />

B11 B12<br />

0 B22<br />

e o problema pode ser quebrado em dois, aplicando o algoritmo QR aos blocos B11 e B22 separadamente.<br />

Como o custo de uma iteração QR de Hessenberg é O n 2 , dividindo o tamanho da matriz pela metade<br />

implica numa diminuição do custo por um fator de 4.<br />

6.3.3 Implementação prática do algoritmo QR<br />

Veja [Watkins].<br />

6.4 Iteração de subespaços e iteração simultânea<br />

No método das potências ou iteração direta, ao invés de iterarmos apenas um vetor, podemos considerar a<br />

iteração de um subespaço inteiro: se S ⊂ F n (onde F = R ou C), consideramos as iteradas<br />

S, AS, A 2 S, . . .<br />

Cada iterada A k S é um subespaço de F n que pode ser caracterizado por<br />

A k S = A k x : x ∈ S .<br />

Como no método da iteração direta as iteradas convergem para o autovetor dominante, esperamos que estes<br />

subespaços iterados convirjam para um autoespaço. Para verificar isso, precisamos definir uma noção de<br />

distância entre subespaços vetoriais.<br />

6.13 Definição. Dados dois subespaços S, T ⊂ F n , a distância entre eles é definida por<br />

dist (S, T ) = sen θ<br />

onde θ é o maior ângulo principal entre S e T . Dizemos que uma sequência de subespaços {Sk}<br />

converge para S se dist (Sk, S) → 0 e denotamos este fato por Sk → S.<br />

6.14 Teorema. Seja A ∈ Mn (F) diagonalizável com autovalores<br />

|λ1| |λ2| . . . |λn|<br />

e uma correspondente base de autovetores {v1, . . . , vn}. Suponha que |λm| > |λm+1| para algum m.<br />

Sejam<br />

Tm = 〈v1, . . . , vm〉 ,<br />

Um = 〈vm+1, . . . , vn〉 .<br />

Seja S um subespaço vetorial de dimensão m tal que S ∩ Um = {0}. Então existe uma constante C<br />

tal que<br />

dist A k <br />

λm+1<br />

<br />

S, Tm C <br />

<br />

Em particular, A k S → Tm linearmente com taxa de convergência |λm+1/λm|.<br />

λm


Rodney Josué Biezuner 117<br />

Prova: Uma demonstração rigorosa deste teorema está além dos propósitos deste curso. Daremos apenas<br />

algumas idéias para justificar o resultado.<br />

Em primeiro lugar, observe que dim A k S = m para todo k. De fato, temos<br />

ker A k ⊂ Um. (6.14)<br />

Isso pode ser facilmente visto escrevendo os vetores em coordenadas: dado um vetor v = n<br />

i=1 aivi, temos<br />

A k v =<br />

n<br />

i=1<br />

aiλ k i vi,<br />

de modo que A k v = 0 implica a1 = . . . = am = 0 pois v1, . . . , vn são linearmente independentes e λ1, . . . , λm<br />

são não nulos, já que |λ1| . . . |λm| > |λm+1| 0. Daí, (6.14) juntamente com dim S = m e S ∩Um = {0}<br />

implicam imediatamente que dim A k S = m para todo k.<br />

Agora, seja v ∈ S um vetor não nulo. Escrevendo<br />

v =<br />

n<br />

i=1<br />

segue de S∩Um = {0} que pelo menos um dos escalares a1, . . . , am é não nulo (assim, a condição S∩Um = {0}<br />

é equivalente a exigir no método das potências que o vetor inicial tenha uma componente na direção do<br />

autovetor dominante; aqui exigimos que cada vetor do subespaço tenha uma componente no autoespaço<br />

dominante). Temos<br />

A k v<br />

λ k m<br />

=<br />

m<br />

i=1<br />

ai<br />

λi<br />

λm<br />

k<br />

vi +<br />

aivi<br />

n<br />

i=m+1<br />

ai<br />

λi<br />

λm<br />

k<br />

vi.<br />

As componentes do vetor “normalizado” Akv/λk m no subespaço Um tendem a zero quando k aumenta com<br />

taxa de convergência |λm+1/λm| ou melhor (dependendo dos valores de am+1, . . . , an), consequentemente o<br />

vetor limite está no subespaço Tm. Como cada subsespaço AkS tem dimensão m, o limite dos subespaços<br />

não pode ser um subespaço próprio de Tm. <br />

Observe que a condição S ∩ Um = {0} ocorre quase sempre para uma escolha aleatória do subespaço mdimensional<br />

S (por exemplo, no caso de R3 a escolha aleatória de uma reta e um plano quase sempre resultará<br />

que o único ponto em que eles se interceptam é a origem).<br />

Para fazer a iteração de subespaços na prática, deve-se escolher uma base para S e iterar todos os<br />

vetores desta base simultaneamente. No processo de iterar o subespaço, devemos obviamente ortonormalizar<br />

a base do subespaço AkS em cada passo da iteração, usando um algoritmo robusto tal como o MGS com<br />

reortogonalização. Este processo todo é chamado iteração simultânea.<br />

Em notação matricial, a iteração simultânea pode ser descrita da seguinte maneira. Seja S um subespaço<br />

de dimensão m com base v1, . . . , vm. Utilizando um algoritmo robusto, encontramos uma base ortonormal<br />

q1, . . . , qm. Formamos então uma matriz inicial n × m com colunas ortonormais:<br />

<br />

.<br />

Em cada passo k da iteração, calculamos<br />

Q0 = q 0 1 · · · q 0 m<br />

Bk = AQk<br />

e fazemos a decomposição QR de Bk para obter uma base ortonormal para o subespaço A k S: se<br />

Bk = Qk+1Rk+1,<br />

então as colunas ortonormais de Qk+1 formam uma base ortonormal para A k S. No limite, teremos que as<br />

colunas das matrizes Qk convergem para os m autovetores dominantes (nas condições do teorema anterior).


Rodney Josué Biezuner 118<br />

6.4.1 Equivalência entre o Algoritmo QR e Iteração Simultânea<br />

O algoritmo QR puro é equivalente à iteração simultânea aplicada à matriz identidade, isto é, tomando<br />

Q0 = I. Ou seja, se na iteração simultânea<br />

⎡<br />

Q0 = I,<br />

⎣ Bk−1 = AQk−1, (6.15)<br />

Bk−1 = QkRk, definirmos<br />

e, reciprocamente, no algoritmo QR ⎡<br />

definirmos<br />

segue que<br />

Ak = Q ∗<br />

kAQ k, (6.16)<br />

Rk = Rk · · · R1<br />

⎣ A0 = A,<br />

Ak−1 = QkRk,<br />

Ak = RkQk,<br />

(6.17)<br />

(6.18)<br />

Qk = Q1 · · · Qk, (6.19)<br />

Rk = Rk · · · R1<br />

(6.20)<br />

Ak = Ak, (6.21)<br />

Q k = Qk, (6.22)<br />

Rk = Rk. (6.23)<br />

De fato, afirmamos que as matrizes Q k, Rk e as matrizes Qk, Rk são ambas caracterizadas como sendo a<br />

decomposição QR (portanto única) da matriz A k , a k-ésima potência de A:<br />

A k = Q kRk = Qk Rk. (6.24)<br />

A verificação de todos estes fatos segue por indução. O caso k = 0 é imediato, já que B0 = A. Como<br />

hipótese de indução, assumimos<br />

donde<br />

Daí, no caso da iteração simultânea temos<br />

enquanto que no algoritmo QR temos<br />

Ak−1 = Ak−1,<br />

A k−1 = Qk−1 Rk−1 = Q k−1Rk−1,<br />

Q k−1 = Qk−1,<br />

Rk−1 = Rk−1.<br />

A k = AA k−1 = AQ k−1Rk−1 = Q kRkRk−1 = Q kRk,<br />

A k = AA k−1 = A Qk−1 Rk−1 = Qk−1Ak−1 Rk−1 = Qk−1QkRk Rk−1 = Qk Rk.


Rodney Josué Biezuner 119<br />

Portanto,<br />

donde<br />

A k = Q kRk = Qk Rk<br />

Q k = Qk,<br />

Rk = Rk.<br />

Finalmente, pelo algoritmo QR podemos escrever (como em (6.10))<br />

donde, pela hipótese de indução,<br />

Ak = Q ∗ kAk−1Qk,<br />

Ak = Q ∗ kAk−1Qk = Q ∗ kQ ∗<br />

k−1AQ k−1Qk = Q ∗ k Q ∗ k−1A Qk−1Qk<br />

= Q ∗ kQ ∗ k−1 · · · Q ∗ 1AQ1 · · · Qk−1Qk = Q ∗ kA Qk<br />

= Ak.<br />

6.4.2 Convergência do Algoritmo QR<br />

Por simplicidade considere A simétrica. A relação<br />

A k = Qk Rk = (Q1 · · · Qk) (Rk · · · R1)<br />

explica porque o algoritmo QR encontra os autovetores de A: ele constrói bases ortonormais para o espaço<br />

coluna das potências sucessivas A k (e as colunas de A k são A k e1, . . . , A k en). A relação<br />

Ak = Q t kA Qk<br />

explica porque o algoritmo QR encontra os autovalores de A: os elementos da diagonal de Ak são os quocientes<br />

de Rayleigh correspondentes às colunas de Qk, isto é, aos autovetores de A. Como os autovetores de A são<br />

ortogonais e A-ortogonais, os elementos fora da diagonal principal também convergem para 0.<br />

6.5 Método de Arnoldi e Algoritmo de Lanczos<br />

Para matrizes esparsas, não simétricas, o método de Arnoldi é o método mais usado para encontrar os<br />

autovalores e autovetores, e para matrizes simétricas esparsas o método escolhido é o algoritmo de Lanczos.<br />

Na Proposição 5.7 vimos que no método de Arnoldi obtemos<br />

onde<br />

AQm = Qm+1 Hm<br />

Qm = q1 . . . qm<br />

,<br />

Qm+1 = q1 . . . qm qm+1<br />

,<br />

(6.25)<br />

são matrizes com colunas ortonormais e Hm é uma matriz de Hessenberg superior (m + 1) × m (na notação<br />

daquela proposição, a matriz Qm é denotada por Vm). Como naquela proposição, denote por Hm a matriz<br />

de Hessenberg superior quadrada obtida através de Hm quando suprimimos a última linha desta. Segue que<br />

<br />

AQm = QmHm + qm+1 0 . . . 0 hm+1,m


Rodney Josué Biezuner 120<br />

ou<br />

AQm = QmHm + qm+1hm+1,me t m. (6.26)<br />

Como vimos no capítulo anterior, se q, Aq, . . . , A m q são linearmente independentes, então hm+1,m = 0. Se<br />

eles são linearmente dependentes, então hm+1,m = 0 e<br />

AQm = QmHm. (6.27)<br />

6.15 Proposição. Sejam A ∈ Mn (F) e q1, . . . , qm ∈ Fn linearmente independentes. Sejam S = 〈q1, . . . , qm〉<br />

e considere a matriz n × m<br />

Q = q1 . . . qm<br />

<br />

.<br />

Então S é invariante sob A se e somente se existe algum B ∈ Mm (F) tal que<br />

AQ = QB.<br />

Além disso, todo autovalor de B é um autovalor de A com autovetor correspondente em S.<br />

Prova. Se existe tal B, então<br />

Aqj =<br />

m<br />

qibij ∈ S.<br />

i=1<br />

Reciprocamente, se S é invariante sob A, então para cada índice j = 1, . . . , m existem escalares bij tais que<br />

Aqj =<br />

m<br />

i=1<br />

Defina B = (bij). Se w é um autovetor de B com autovalor λ, então v = Qw ∈ S é um autovetor de A com<br />

autovalor λ. <br />

Portanto, os autovalores da matriz de Hessenberg Hm são também autovalores de A. Se m não é muito<br />

grande, podemos então usar o algoritmo QR para encontrar os autovalores de Hm. Na prática, dificilmente<br />

obteremos hm+1,m = 0 exatamente, mas se hm+1,m é próximo de zero podemos esperar que estamos próximos<br />

de um subespaço invariante e, portanto, que os autovalores de Hm estão próximos aos autovalores de A:<br />

6.16 Teorema. Sejam Qm, Hm e hm+1,m gerados pelo método de Arnoldi. Seja λ um autovalor de Hm<br />

com autovetor unitário x. Seja v = Qmx. Então<br />

onde xm denota a última componente de x.<br />

bijqi.<br />

Av − λv = |hm+1,m| |xm|<br />

O método de Arnoldi em geral obtém os autovalores periféricos. Os autovalores interiores podem ser encontradas<br />

através da estratégia do deslocamento.<br />

Quando A é simétrica, como vimos no capítulo anterior Hm é uma matriz tridiagonal Tm que pode ser<br />

obtida através de uma fórmula de recorrência.<br />

Veja [Watkins] para detalhes sobre implementações eficientes do método de Arnoldi e algoritmo de Lanczos<br />

para encontrar autovalores e autovetores de matrizes esparsas.<br />

6.6 O Problema de Autovalor Simétrico<br />

Para matrizes simétricas, existem algoritmos bem mais eficiente que o algoritmo QR. Veja [Parlett],<br />

[Trefethen-Bau], entre outros.


Rodney Josué Biezuner 121<br />

6.7 Exercícios<br />

6.1 Suponha que A ∈ Mn (C) é uma matriz diagonalizável tal que nenhum autovalor de A diferente do<br />

autovalor dominante λ1 tem módulo igual a A. Em outras palavras, se r é a dimensão do autoespaço<br />

associado a λ1, ou autovalores de A satisfazem<br />

com<br />

|λ1| = . . . = |λr| > |λ2| . . . |λn|<br />

λ1 = . . . = λr.<br />

Mostre que o método das potências pode ser aplicado a A para encontrar λ1 e um autovetor unitário<br />

no autoespaço associado a λ1.<br />

6.2 Usando a forma canônica de Jordan, mostre que a hipótese de A ser diagonalizável pode ser removida<br />

da hipótese do exercício anterior decompondo o vetor inicial v0 como a soma de um vetor na direção<br />

do autovetor dominante v1 e de vetores principais nos subespaços de Jordan da matriz.<br />

6.3 Prove a Proposição 6.7 sem assumir que o autovalor é simples.<br />

6.4 Prove que o produto de uma matriz triangular superior e uma matriz de Hessenberg superior é uma<br />

matriz de Hessenberg superior. O que se pode dizer sobre o produto de duas matrizes de Hessenberg<br />

superiores?<br />

6.5 Prove a unicidade do refletor na Proposição 6.11.


Referências Bibliográficas<br />

[BHM] William L. BRIGGS, Van Emden HENSON e Steve F. McCORMICK, A Multigrid<br />

Tutorial, 2nd. Ed., SIAM, 2000.<br />

[Demmel] James W. DEMMEL, Applied Numerical <strong>Linear</strong> Algebra, SIAM, 1997.<br />

[Hackbusch] W. HACKBUSCH, Iterative Solutions of Large Sparse Systems of Equations, Applied<br />

Mathematical Sciences 95, Springer-Verlag, 1994.<br />

[Hoffman-Kunze] K. HOFFMAN e R. KUNZE, <strong>Linear</strong> Algebra, 2nd. Ed., Prentice Hall, 1971.<br />

[Horn-Johnson] Roger A. HORN e Charles R. JOHNSON, Matrix Analysis, Cambridge University<br />

Press, 1985.<br />

[Komzsik] Louis KOMZSIK, The Lanczos Method: evolution and application, SIAM, 2003.<br />

[Kreyszig] KREYSZIG, E., Introductory Functional Analysis with Applications, John Wiley &<br />

Sons, 1978.<br />

[Mak] Ronald MAK, Java Number Cruncher: the Java Programmer’s Guide to Numerical<br />

Computing, Prentice Hall, 2003.<br />

[Meurant] Gérard MEURANT, The Lanczos and Conjugate Gradient Algorithms: from theory<br />

to finite precision computations, SIAM, 2006.<br />

[Parlett] Beresford N. PARLETT, The Symmetric Eigenvalue Problem, SIAM, 1998.<br />

[Saad] Yousef SAAD, Iterative Methods for Sparse <strong>Linear</strong> Systems, 2nd Ed., SIAM, 2003.<br />

[Stoer-Bulirsch] Josef STOER e Roland BULIRSCH, Introduction to Numerical Analysis, 3rd Ed.,<br />

Springer, 2002.<br />

[Strang] Gilbert STRANG, <strong>Linear</strong> Algebra and its Applications, 3rd Ed., Harcourt Brace Jovanovich,<br />

1988.<br />

[Trefethen-Bau] Lloyd N. TREFETHEN e David BAU, Numerical <strong>Linear</strong> Algebra, SIAM, 1997.<br />

[van der Vorst] Henk A. van der VORST, Iterative Krylov Methods for Large <strong>Linear</strong> Systems, Cambridge<br />

University Press, 2003.<br />

[Watkins] David S. WATKINS, Fundamentals of Matrix Computations, 2nd Ed., John Wiley &<br />

Sons, 2002.<br />

[Young] David M. YOUNG, Iterative Solutions of Large <strong>Linear</strong> Systems, Academic Press,<br />

1971.<br />

122

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!