You are on page 1of 226

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL

INSTITUTO DE MATEM

ATICA
DEPARTAMENTO DE MATEM

ATICA PURA E APLICADA


Introdu cao ao Calculo Numerico
2a. Edi cao

Alvaro Luiz de Bortoli


Carolina Cardoso
Maria Paula Gon calves Fachin
Rudnei Dias da Cunha
Porto Alegre, abril de 2003.

Alvaro Luiz de Bortoli e professor adjunto da UFRGS,


desempenhando suas atividades junto ao Departamento de
Matematica Pura e Aplicada, do Instituto de Matematica, desde
1996.

E formado em Engenharia Mec anica pela UFRGS (1987);
Mestre em Engenharia Mecanica pela UFSC (1990); e Doutor em
Aerodin amica e Aeroelasticidade pela UFSC e Deutsches Luft-
und Raumfahrt Institut, Alemanha (1995).
Carolina Cardoso e Bacharel em Matematica (enfase
Matematica Aplicada e Computacional) pela UFRGS (1998) e
Mestre em Matematica Aplicada pela UFRGS (2001).
Maria Paula Goncalves Fachin e professora adjunta da
UFRGS, desempenhando suas atividades junto ao Departamento
de Matematica Pura e Aplicada, do Instituto de Matematica,
desde 1990.

E Licenciada em Matematica pela UFRGS (1986);
Mestre em Matematica pela UFRGS (1990); e Doctor of
Philosophy in Computer Science pela University of Kent at
Canterbury, Reino Unido (1994).
Rudnei Dias da Cunha e professor adjunto da UFRGS,
desempenhando suas atividades junto ao Departamento de
Matematica Pura e Aplicada, do Instituto de Matematica, desde
1994.

E Bacharel em Ciencias de Computa cao pela UFRGS (1988)
e Doctor of Philosophy in Computer Science pela University of
Kent at Canterbury, Reino Unido (1992). Exerceu as fun coes
de programador de computadores e analista de sistemas no
Centro de Processamento de Dados da UFRGS (1983-1994). Foi
coordenador do Programa de Pos-Gradua cao em Matematica
Aplicada da UFRGS (1999-2000) e atualmente ocupa o cargo de
Vice-Diretor do Instituto de Matem atica da UFRGS.
Sumario
1 Aritmetica no Computador 6
1.1 Introdu cao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2 Representa cao em bin ario e decimal . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.1 Bits, bytes e palavras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.2.2 Convers ao entre representa coes . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.3 Representa cao de n umeros em um computador . . . . . . . . . . . . . . . . . . . . 10
1.3.1 Representacao de n umeros inteiros . . . . . . . . . . . . . . . . . . . . . . . 11
1.3.2 Representacao de n umeros reais . . . . . . . . . . . . . . . . . . . . . . . . . 12
1.3.2.1 Representa cao racional de n umeros reais . . . . . . . . . . . . . . 12
1.3.2.2 Representa cao de n umeros reais em ponto-xo . . . . . . . . . . . 13
1.3.2.3 Representa cao de n umeros reais em ponto-utuante . . . . . . . . 13
1.3.2.4 Tratamento do zero . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.3.3 Caracteriza cao de uma representa cao . . . . . . . . . . . . . . . . . . . . . . 14
1.3.4 Arredondamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.3.5 Opera coes aritmeticas de ponto-utuante . . . . . . . . . . . . . . . . . . . 20
1.3.5.1 Erros em opera coes aritmeticas de ponto-utuante . . . . . . . . . 20
1.4 Perda de dgitos signicativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.4.1 Subtra cao de valores quase identicos . . . . . . . . . . . . . . . . . . . . . . 22
1.4.2 Teorema sobre a perda de precisao . . . . . . . . . . . . . . . . . . . . . . . 24
1.5 Condicionamento de um problema . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
1.6 Computa coes estaveis e instaveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
1.7 Desastres causados por erros aritmeticos no computador . . . . . . . . . . . . . . . 27
1.7.1 Falha do sistema de msseis Patriot . . . . . . . . . . . . . . . . . . . . . 27
1.7.2 Explos ao do foguete Ariane 5 . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.8 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2 Calculo de Razes de Fun coes Nao-Lineares 29
2.1 Introdu cao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2 Metodo da Bissec cao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.3 Metodo da posi cao falsa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
2.3.1 Melhorando o metodo da posi cao falsa . . . . . . . . . . . . . . . . . . . . . 36
2.3.2 An alise do erro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.4 Metodo de Newton-Raphson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
2.4.1 An alise do erro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
2.5 Deriva cao numerica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
2.5.1 O metodo de Newton-Raphson e as razes complexas de f(x) . . . . . . . . 44
2.6 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
2
3 Calculo de Razes de Polinomios 45
3.1 Introdu cao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.2 Resultados teoricos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.3 Enumera cao e localizacao de razes de polin omios . . . . . . . . . . . . . . . . . . . 46
3.3.1 Regra de Descartes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.3.2 Regra de Du Gua . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.3.3 Regra da lacuna . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.3.4 Cota de Laguerre-Thibault . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.3.5 Cota de Fujiwara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.3.6 Cota de Kojima . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.3.7 Cota de Cauchy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.4 Metodo de Newton-Viete . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.5 Metodo de Horner . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.5.1 C alculo do quociente e do resto . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.5.2 Dea cao de um polin omio . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
3.5.3 Calcular a expans ao de Taylor de um polin omio . . . . . . . . . . . . . . . . 52
3.5.3.1 O metodo de Horner e sua rela cao com a derivada de p(z) . . . . . 53
3.5.3.2 O metodo de Newton-Raphson usado em conjunto com o algoritmo
parcial de Horner . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
3.6 Razes complexas de equacoes polinomiais . . . . . . . . . . . . . . . . . . . . . . . 56
3.6.1 Metodo de Bairstow . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3.7 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
4 Resolu cao de Sistemas de Equacoes Lineares 61
4.1 Introdu cao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.2 Resolucao de Sistemas Triangulares de Equa coes Lineares . . . . . . . . . . . . . . 62
4.3 Resolucao de Sistemas de Equa coes Lineares por Eliminacao Gaussiana . . . . . . 64
4.3.1 Diculdades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
4.3.2 Elimina cao Gaussiana e a Fatora cao LU . . . . . . . . . . . . . . . . . . . . 67
4.3.3 O Custo Computacional da Fatora cao LU . . . . . . . . . . . . . . . . . . . 69
4.3.4 Resolucao de sistemas com m ultiplos termos independentes . . . . . . . . . 70
4.3.4.1 C alculo da inversa de uma matriz . . . . . . . . . . . . . . . . . . 70
4.4 Resolucao Iterativa de Sistemas de Equa coes Lineares . . . . . . . . . . . . . . . . 73
4.4.1 Normas de vetores e de matrizes . . . . . . . . . . . . . . . . . . . . . . . . 74
4.4.2 Normas de matrizes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.4.3 N umero de condi cao de uma matriz . . . . . . . . . . . . . . . . . . . . . . 75
4.4.4 Erros computacionais e condicionamento . . . . . . . . . . . . . . . . . . . . 76
4.4.5 Metodos iterativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
4.4.6 Renamento iterativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
4.4.7 Metodo iterativo de Jacobi . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
4.4.8 Metodo iterativo de Gauss-Seidel . . . . . . . . . . . . . . . . . . . . . . . . 82
4.4.9 Extrapola cao de um metodo iterativo . . . . . . . . . . . . . . . . . . . . . 85
4.5 Metodo do Gradiente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
4.5.1 Forma Quadr atica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.5.2 Descri cao do metodo do Gradiente . . . . . . . . . . . . . . . . . . . . . . . 90
4.6 Metodo das Dire coes-Conjugadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
4.7 Metodo dos Gradientes-Conjugados . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.8 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
5 Resolu cao de Sistemas de Equacoes Nao-Lineares 102
5.1 Introdu cao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.2 Metodo de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
5.3 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
3
6 Autovalores e Autovetores 110
6.1 Introdu cao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
6.2 Teoremas de limites sobre autovalores . . . . . . . . . . . . . . . . . . . . . . . . . 113
6.3 Calculo de autovalores e autovetores via determinantes . . . . . . . . . . . . . . . . 115
6.4 Autovalores de uma matriz tridiagonal simetrica . . . . . . . . . . . . . . . . . . . 116
6.5 Metodos para aproxima cao de autovalores e autovetores . . . . . . . . . . . . . . . 120
6.5.1 Metodo da potencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
6.5.2 O metodo da potencia com transla cao da origem . . . . . . . . . . . . . . . 123
6.5.3 Metodo da itera cao inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
6.5.4 O metodo da itera cao inversa e o quociente de Rayleigh . . . . . . . . . . . 126
6.6 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
7 Interpolacao 128
7.1 Introdu cao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
7.2 Interpola cao polinomial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
7.3 Forma de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
7.4 Forma de Lagrange . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
7.5 Forma de Newton com diferen cas divididas . . . . . . . . . . . . . . . . . . . . . . 134
7.6 Forma de Newton com diferen cas simples . . . . . . . . . . . . . . . . . . . . . . . 137
7.7 Interpola cao inversa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138
7.8 Interpola cao por splines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139
7.9 Estudo do erro na interpola cao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142
7.9.1 Estimativa para o erro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143
7.10 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144
8 Ajuste de dados experimentais 146
8.1 Introdu cao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146
8.2 Mnimos quadrados - domnio discreto . . . . . . . . . . . . . . . . . . . . . . . . . 148
8.3 Ajuste linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
8.4 Ajuste polinomial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 149
8.5 Ajustamento por fun coes nao lineares nos par ametros lineariza cao . . . . . . . . 150
8.5.1 Ajustamento por uma fun cao exponencial . . . . . . . . . . . . . . . . . . . 150
8.5.2 Ajustamento por uma fun cao potencia . . . . . . . . . . . . . . . . . . . . . 151
8.5.3 Ajustamento por uma fun cao hiperb olica . . . . . . . . . . . . . . . . . . . 151
8.5.4 Ajustamento por uma fun cao do tipo y =
x
a0+a1 x
. . . . . . . . . . . . . . . 151
8.5.5 Ajustamento por uma fun cao do tipo y =
1
a0+a1 x+a2 x
2
. . . . . . . . . . . . 151
8.5.6 Ajustamento por uma fun cao do tipo y = a e
b x+c x
2
. . . . . . . . . . . . . 151
8.6 Escolha do melhor ajuste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
8.7 Mnimos quadrados - domnio contnuo . . . . . . . . . . . . . . . . . . . . . . . . . 154
8.7.1 Polin omios ortogonais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
8.8 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
9 Integra cao Numerica 161
9.1 Introdu cao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161
9.2 Integra cao numerica via interpola cao polinomial . . . . . . . . . . . . . . . . . . . 161
9.2.1 Regra do Trapezio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
9.2.2 Metodo dos Coecientes a Determinar . . . . . . . . . . . . . . . . . . . . . 165
9.2.3 Regra de Simpson . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166
9.2.4 Regra de Simpson com exatid ao crescente . . . . . . . . . . . . . . . . . . . 167
9.2.5 Mudan ca do intervalo de integra cao . . . . . . . . . . . . . . . . . . . . . . 168
9.2.6 Quadratura Gaussiana . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169
9.3 Integra cao de fun coes mal comportadas . . . . . . . . . . . . . . . . . . . . . . . . 173
9.4 Intervalos de integra cao innitos . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
9.5 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
4
10 Solu cao Numerica de Equa coes Diferenciais Ordinarias 178
10.1 Introdu cao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178
10.2 Problema de Valor Inicial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
10.2.1 Existencia da Solucao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
10.2.2 Erros na solucao numerica . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
10.2.3 Metodo da Serie de Taylor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
10.2.3.1 Vantagens e desvantagens . . . . . . . . . . . . . . . . . . . . . . . 183
10.2.4 Metodo de Euler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 183
10.2.5 Metodo de Heum . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184
10.2.5.1 Erro de truncamento para o metodo de Heum . . . . . . . . . . . 185
10.2.6 Metodos de Runge-Kutta . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
10.2.6.1 Metodo modicado de Euler . . . . . . . . . . . . . . . . . . . . . 187
10.2.6.2 Metodo de Runge-Kutta de 4
a
Ordem . . . . . . . . . . . . . . . . 187
10.2.6.3 Erros do metodo de Runge-Kutta . . . . . . . . . . . . . . . . . . 187
10.2.6.4 Avalia cao da Fun cao versus Ordem do Metodo Runge-Kutta . . . 187
10.2.6.5 Metodo Adaptativo de Runge-Kutta-Fehlberg . . . . . . . . . . . 188
10.2.7 Metodos de passo m ultiplo . . . . . . . . . . . . . . . . . . . . . . . . . . . 189
10.2.7.1 Convergencia, Estabilidade e Consistencia . . . . . . . . . . . . . . 192
10.2.7.2 Erros de truncamento . . . . . . . . . . . . . . . . . . . . . . . . . 193
10.2.7.3 Erros de truncamento globais . . . . . . . . . . . . . . . . . . . . . 193
10.2.8 Sistemas de Equa coes Diferenciais Ordin arias . . . . . . . . . . . . . . . . . 195
10.2.8.1 Metodo da Serie de Taylor . . . . . . . . . . . . . . . . . . . . . . 196
10.2.8.2 Metodo de Runge-Kutta . . . . . . . . . . . . . . . . . . . . . . . 196
10.2.9 Solu cao via decomposi cao em autovalores e autovetores . . . . . . . . . . . 197
10.2.9.1 O expoente de uma matriz . . . . . . . . . . . . . . . . . . . . . . 198
10.2.10Equa coes rgidas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 199
10.3 Problemas de Valor de Fronteira . . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
10.3.1 Metodo do disparo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 201
10.3.2 Metodo de Newton . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
10.3.3 Metodo da colocacao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
10.3.4 Deriva cao numerica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 205
10.3.5 Solu cao por diferen cas-nitas . . . . . . . . . . . . . . . . . . . . . . . . . . 208
10.3.5.1 O caso linear . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 208
10.4 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 209
11 Solu cao Numerica de Equa coes Diferenciais Parciais 212
11.1 Introdu cao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 212
11.2 Equa coes parab olicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
11.2.1 Metodo explcito . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 213
11.2.2 Metodo de Crank-Nicolson . . . . . . . . . . . . . . . . . . . . . . . . . . . 216
11.2.2.1 Aproxima cao ponderada . . . . . . . . . . . . . . . . . . . . . . . . 217
11.2.3 Condi coes de fronteira . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 218
11.3 Equa coes diferenciais parciais elpticas . . . . . . . . . . . . . . . . . . . . . . . . . 219
11.4 Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 222
5
Captulo 1
Aritmetica no Computador
1.1 Introdu cao
Hoje em dia, os computadores utilizam um sistema de numera cao em base 2, em sua grande
maioria. Esse sistema e chamado de bin ario e utiliza os algarismos 0 e 1 para representar os
n umeros (apesar de que quaisquer outros dois smbolos poderiam ser usados).
A nossa sociedade, ao contr ario, utiliza um sistema de numeracao decimal, ou base 10; muito
provavelmente, pelo fato dos seres humanos terem dez dedos nas maos, os quais eram utilizados
como uma crianca os utiliza para contar quantidades. A palavra dgito, sin onimo para algarismo,
vem do latim digitus, dedo.
Ambos os sistemas citados decimal e bin ario s ao sistemas posicionais, i.e., os n umeros s ao
formados por somas de potencias, convenientemente multiplicadas pelos algarismos. Por exemplo,
o n umero
(420, 325)
10
= 4 10
2
+ 2 10
1
+ 0 10
0
+ 3 10
1
+ 2 10
1
+ 5 10
3
(1.1)
e representado no sistema decimal como a soma das potencias de 10 mostradas acima.
A principal caracterstica de um sistema de numeracao posicional e a necessidade da repre-
sentacao do zero por um smbolo. Aparentemente, o zero j a era utilizado pelos maias e pelos
babil onios, esses por volta de 300 A.C. O nosso sistema de numeracao decimal foi inventado na

India por volta do ano 600 D.C. e, tendo sido usado por muitos seculos pelos povos arabes no
Oriente Medio, foi introduzido na Europa durante as invas oes mouras, no perodo entre 1200 e
1600 (da o nome de algarismos ar abicos).
Veja como o zero e importante num sistema posicional, comparado com um sistema nao-
posicional, como o romano, por exemplo. Nesse ultimo, o n umero 401 e representado como CCCCI
(os romanos n ao utilizavam as abrevia coes como IV para representar 4). Porem, no sistema
decimal, o 0 e necessario para distinguir 401 de 41 ele efetivamente serve como um espa cador
dos algarismos, em termos das potencias de 10.

E interessante notar que o sistema decimal era utilizado para representar apenas n umeros
inteiros, e n ao fra coes decimais, ate o seculo XVII. Em pases de lngua inglesa, ate hoje persiste
o uso de fra coes inteiras como 1/4, 1/8, 1/16, 3/4, como por exemplo em placas de sinaliza cao
rodovi aria e na especicacao dos di ametros de ferramentas.
Como dissemos ao iniciarmos esse captulo, os computadores utilizam normalmente um sistema
de numeracao bin ario, ou base 2. Esse sistema nao e, no entanto, t ao recente quanto os computado-
res; na verdade, j a era usado como base para um algoritmo de multiplica cao no Papiro Matem atico
de Rhind, escrito ha 4,000 anos atr as [12, p ag. 7].
6
Introdu c ao ao Calculo Numerico Aritmetica no Computador
1.2 Representacao em binario e decimal
Genericamente, podemos dizer que um sistema de numeracao numa base admite apenas os
dgitos 0, 1, . . ., 1. Assim, o n umero (1001, 11101)
2
representa o n umero (9, 90625)
10
, onde os
subscritos indicam a base do sistema de numera cao utilizado:
(1001, 11101)
2
= 1 2
3
+ 0 2
2
+ 0 2
1
+ 1 2
0
+
1 2
1
+ 1 2
2
+ 1 2
3
+ 0 2
4
+ 1 2
5
= 8 + 0 + 0 + 1 + 0, 5 + 0, 25 + 0, 125 + 0 + 0, 03125
= (9, 90625)
10
Assim como existem n umeros reais, em decimal, que tem parte fracion aria com n umero innito
de dgitos ditos irracionais tambem existem n umeros reais em bin ario com a mesma carac-
terstica. Mais ainda, existem n umeros reais, em decimal, cuja parte fracion aria tem um n umero
nito de dgitos, para os quais a sua representa cao em bin ario apresenta um n umero innito de
dgitos. Por exemplo, o n umero 1/10 n ao tem uma representacao bin aria nita:
1
10
= (0, 0001100110011 . . .)
2
=
1
16
+
1
32
+
0
64
+
0
128
+
1
256
+
1
512
+
0
1024
+ . . .
mas o conjunto de dgitos 0011 repete-se.
1.2.1 Bits, bytes e palavras
A memoria de um computador pode ser descrita como um conjunto de palavras. A maioria
dos computadores tem sua memoria estruturada de tal forma que cada acesso de leitura ou
escrita e feito em termos de uma ou mais palavras, as quais sao acessadas por um endere co
unico. Tipicamente, uma palavra e composta por 32 bits; processadores de ultima gera cao para
microcomputadores pessoais com palavras de 64 bits j a sao uma realidade hoje.
Um bit (contracao em ingles de binary digit) e a menor unidade de informa cao armazenada
em um computador, podendo representar os valores 0 ou 1. Um conjunto de 8 bits e chamado de
byte; nele, podemos armazenar 2
8
= 256 diferentes valores inteiros, atraves das combinacoes de 0
e 1 entre os diferentes bits.
1.2.2 Conversao entre representacoes

E conveniente saber como converter um n umero decimal para sua representacao em bin ario e
vice-versa. Em algumas aplica coes envolvendo o uso de computadores, e necessario saber como
converter para decimal um valor armazenado de forma bin aria.
Podemos efetuar a conversao de um n umero real decimal x para bin ario convertendo separa-
damente as partes inteira e fracion aria de x ip(x) e fp(x) e depois justapor a representa cao
bin aria dessas duas partes, separando-as por um ponto. Nos algoritmos apresentados a seguir, a
conversao de decimal para bin ario resulta em um string de caracteres 0 e 1, e nao num n umero
formado pelos mesmos algarismos, pois nao sao representa coes equivalentes.
Suponha ent ao o n umero x = (401, 640625)
10
. A representa cao bin aria de ip(x) = (401)
10
e
obtida, inicialmente, dividindo-se 401 por 2; essa divis ao devolve um quociente e um resto. O resto
e, necessariamente, 0 ou 1. Ap os, divide-se esse quociente por 2, obtendo-se um outro quociente
e resto. Esse processo e repetido ate que o quociente seja 1; a representa cao bin aria e formada,
ent ao, pelo ultimo quociente e pelos restos, tomados na ordem inversa a que foram obtidos. A
tabela 1.1 mostra esse processo. A representacao em bin ario de ip(x) = (401)
10
e, portanto,
(401)
10
= (110010001)
2
=
= 1 2
8
+ 1 2
7
+ 0 2
6
+ 0 2
5
+ 1 2
4
+ 0 2
3
+ 0 2
2
+ 0 2
1
+ 1 2
0
=
= 256 + 128 + 16 + 1 = 401
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 7
Introdu c ao ao Calculo Numerico Aritmetica no Computador
dividendo quociente resto
401 200 1
200 100 0
100 50 0
50 25 0
25 12 1
12 6 0
6 3 0
3 1 1
Tabela 1.1: Processo de conversao para binario da parte inteira de (401, 640625)
10
; os dgitos
sublinhados comporao a representacao binaria.
Para convertermos a parte fracion aria fp(x) = (0, 640625)
10
, fazemos um processo de multipli-
cac oes sucessivas por 2. Inicialmente, multiplicamos 0, 640625 por 2, resultando em 1, 28125. O
dgito ` a esquerda do ponto decimal ser a um dos dgitos da representa cao bin aria de fp(x); como
esse dgito e igual a 1, subtramos 1 do n umero, resultando em 0, 28125. Esse n umero e, novamente,
multiplicado por 2, resultando em 0, 5625; como o dgito ` a esquerda do ponto decimal e o 0, basta
multiplicar novamente esse n umero por 2. O processo continua ate que o n umero multiplicando
seja igual a 1, 0; os dgitos 0 e 1, ` a esquerda do ponto decimal, formam a representa cao bin aria de
fp(x), agora na mesma ordem em que foram obtidos, conforme mostrado na tabela 1.2
multiplicando resultado
0, 640625 1, 28125
0, 28125 0, 5625
0, 5625 1, 125
0, 125 0, 25
0, 25 0, 5
0, 5 1, 0
Tabela 1.2: Processo de conversao para binario da parte fracionaria de (401, 640625)
10
; os dgitos
sublinhados comporao a representacao binaria.
Logo, a representa cao em bin ario de fp(x) = 0, 640625 e
(0, 640625)
10
= (0, 101001)
2
=
= 1 2
1
+ 0 2
2
+ 1 2
3
+ 0 2
4
+ 0 2
5
+ 1 2
6
=
= 0, 5 + 0, 125 + 0, 15625 = 0, 640625
e, portanto, podemos justapor as representa coes bin arias de ip(401, 640625) = (110010001)
2
e
fp(401, 640625) = (0, 101001)
2
, obtendo a representa cao bin aria de (401, 640625)
10
, a qual e
(110010001, 101001)
2
.
Os algoritmos apresentados a seguir sumarizam os processos de convers ao de decimal para
bin ario e de bin ario para decimal.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 8
Introdu c ao ao Calculo Numerico Aritmetica no Computador
Algoritmo 1.2.1 Convers ao decimal para binario
proc conv dec para bin(input: x; output: b)
% x eh um numero real decimal em modulo e b eh a sua
% representacao binaria, armazenada como um
% string de caracteres.
x [x[
b conv dec para bin ip(ip(x))[conv dec para bin fp(fp(x))
endproc
proc conv dec para bin ip(input: x; output: b)
% x eh um numero inteiro e b eh a sua representacao
% binaria, armazenada como um string de caracteres.
d x/2|
r x 2d
x d
b num2str(r)
while x 1
d x/2|
r x 2d
x d
b num2str(r)[b
endwhile
endproc
proc conv dec para bin fp(input: x; output: b)
% x eh um numero fracionario menor do que 1 e
% b eh a sua representacao binaria, armazenada
% como um string de caracteres.
x [x[
b

while x < 1
d x 2
i d|
if d > 1 then
x d 1
else
x d
endif
b b[num2str(i)
endwhile
endproc
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 9
Introdu c ao ao Calculo Numerico Aritmetica no Computador
Algoritmo 1.2.2 Convers ao binario para decimal
proc conv bin para dec(input: b; output: x)
% b eh um numero binario, armazenado como
% um string de caracteres e x eh a sua
% representacao em decimal.
l length(b)
p ndstr(b,

) % Localiza onde estah o ponto decimal em b


if p ,= 0 then % b eh um numero binario com parte fracionaria
x conv bin para dec ip(substr(b, 1, p 1))+
conv bin para dec fp(substr(b, p, l))
else % b eh um numero inteiro
x conv bin para dec ip(b)
endproc
proc conv bin para dec ip(input: b; output: x)
% b eh um numero binario inteiro, armazenado como
% um string de caracteres e x eh a sua
% representacao em decimal.
l length(b)
x 0
k l
for i = 1, 2, . . . , l
x x + str2num(b[i]) 2
k
k k 1
endfor
endproc
proc conv bin para dec fp(input: b; output: x)
% b eh um numero binario menor do que 1, armazenado
% como um string de caracteres (com . aa frente) e
% x eh a sua representacao em decimal.
l length(b)
x 0
k 1
for i = 2, 3, . . . , l % Desconsidera o 1o. caracter (.)
x x + str2num(b[i]) 2
k
k k + 1
endfor
endproc
Note, no entanto, que se por um lado um n umero inteiro decimal pode ser facilmente repre-
sentado por um n umero inteiro bin ario, a representa cao da parte fracion aria nesse sistema de
numera cao exige, normalmente, um n umero bastante elevado de dgitos. Por exemplo, (0, 249)
10
o qual difere de (0, 25)
10
= (0, 01)
2
por apenas (0, 001)
10
n ao tem representa cao bin aria nita
(pois essa diferenca nao pode ser representada de forma nita): seus primeiros 20 dgitos sao
(0, 0011111110111110011100 . . .)
2
e veja que, como 0, 249 < 0, 25, necessariamente o primeiro dgito n ao-nulo na representacao
bin aria encontra-se `a partir da terceira casa bin aria (pois (0, 25)
10
= (0, 01)
2
).
1.3 Representacao de n umeros em um computador
A representacao de n umeros em um computador est a intimamente relacionada ` as opera coes que
ser ao efetuadas com eles. Inicialmente, consideraremos a representa cao dos n umeros inteiros e,
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 10
Introdu c ao ao Calculo Numerico Aritmetica no Computador
depois, passaremos aos n umeros reais.
1.3.1 Representacao de n umeros inteiros
Hoje em dia, os n umeros inteiros s ao armazenados, tipicamente, em uma palavra de 32 bits.
Considerando apenas n umeros positivos, temos um total de 2
32
n umeros possveis de ser representados
em uma palavra desse comprimento: 0, 1, . . ., 2
32
2, 2
32
1. No entanto, e necessario que se
manipule n umeros inteiros negativos, e, nesse caso, devemos analisar as possibilidades existentes.
O sinal (+/) e uma quantidade bin aria e, portanto, podemos armazenar essa informa cao em
um unico bit. Isso nos leva, portanto, a pensarmos numa representacao chamada sinal-e-m odulo:
dos 32 bits de que dispomos, reservamos um para o sinal, e os restantes 31 representar ao o valor
absoluto do n umero. Essa representa cao apresenta duas carateristicas:
1. A perda de um bit implica na redu cao do intervalo de representa cao dos n umeros. Agora,
so podemos representar os n umeros 0, 1, . . ., 2
31
1 (em modulo);
2. O n umero zero tem duas representacoes: +0 e 0.
Suponha, por exemplo, que quisessemos efetuar +13 () 13; o resultado seria +0 ou 0? Alem
disso, seria necessario existir um circuito, dentro do processador, especco para se efetuar uma
subtra cao; n ao seria melhor que a subtracao fosse tratada como a soma de um n umero positivo e
outro negativo?
Essa ultima caracterstica e que leva ao uso de uma outra representacao para n umeros bin arios
inteiros com sinal, chamada de complemento-de-2. Um n umero x em complemento-de-2 e obtido
invertendo-se os bits da representacao bin aria de [ x[ e somando (1)
2
ao bit menos signicativo.
Para um conjunto de n bits, o intervalo de representa cao de n umeros em complemento-de-2 e
2
n1
x 2
n1
1 (ao passo que, em sinal-e-modulo, e (2
n1
1) x 2
n1
1, pois
um bit e usado para guardar o sinal de x). A tabela 1.3 mostra os inteiros representados em
complemento-de-2, bem como em sinal-e-modulo, para n = 3.
sinal-e-modulo complemento-de-2
+3 (011)
2
(011)
2
+2 (010)
2
(010)
2
+1 (001)
2
(001)
2
+0 (000)
2
(000)
2
0 (100)
2

1 (101)
2
(111)
2
2 (110)
2
(110)
2
3 (111)
2
(101)
2
4 (100)
2
Tabela 1.3: Inteiros em sinal-e-m odulo e complemento-de-2, para n = 3 bits; o bit mais ` a esquerda
representa o sinal no formato sinal-e-magnitude.
Em complemento-de-2, e usando uma palavra de 32 bits, um n umero positivo x satisfaz 0
x 2
31
1, e sua representacao em bin ario (cf. visto na secao anterior) e utilizada para armazen a-
lo, sem modicacoes. No entanto, um n umero negativo y e armazenado como a representacao
bin aria do n umero positivo 2
32
y, e y e tal que ele satisfaz 1 y 2
31
.
Suponha, novamente, a opera cao +13()13. O n umero (+13)
10
tem a seguinte representacao
bin aria
(+13)
10
= (00000000000000000000000000001101)
2
e (13)
10
, em complemento-de-2, e escrito como:
(13)
10
= (11111111111111111111111111110011)
2
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 11
Introdu c ao ao Calculo Numerico Aritmetica no Computador
Agora, para somarmos os dois, seguimos as mesmas regras da adi cao em decimal; procedemos do
bit menos signicativo para o mais signicativo, somando dois bits, x e y, a cada vez. Por exemplo,
(1)
2
+ (1)
2
= (10)
2
= (2)
10
, como esperado
1
. No entanto, e mais costumeiro tratar o resultado
dessa soma como um bit de soma, s, e um de transporte c (do ingles carry), de acordo com a
tabela 1.4.
x y s c
0 0 0 0
0 1 1 0
1 0 1 0
1 1 0 1
Tabela 1.4: Soma de dois bits.
Note que os bits s e c sao expressos em termos das opera coes logicas (ou-exclusivo) e
(multiplica c ao l ogica): s = x y e c = x y.
Retornando ao nosso exemplo, somamos (+13)
10
e (13)
10
:
( 00000000000000000000000000001101)
2
+ ( 11111111111111111111111111110011)
2
= (100000000000000000000000000000000)
2
Veja que, a menos do bit mais signicativo do resultado (sublinhado), obtivemos o valor esperado,
ao somar um n umero e seu simetrico: zero. O bit mais signicativo e apenas o bit de transporte,
o qual e descartado, nesse caso.
Ao somarmos dois inteiros positivos, e possvel que ocorra um overow, i.e. o resultado n ao
pode ser representado na palavra (por exemplo, de 32 bits). O mesmo pode acontecer se somarmos
dois inteiros negativos. No entanto, se somarmos dois inteiros de sinais opostos, n ao pode ocorrer
overow. Se considerarmos a opera cao x + (y), e 0 x 2
31
1 e 0 y 2
31
, o resultado
poder a ser sempre representado na palavra. Suponha agora que somemos os complementos-de-2
de x e y, i.e. os n umeros n ao-negativos x e 2
32
y; isso resulta em 2
32
+xy = 2
32
(y x). Se
x y, um bit de transporte correspondente a 2
32
tera o valor 1, mas esse pode ser descartado,
conforme visto anteriormente. Se x < y, o resultado cabe em 32 bits, e ele representa (y x) em
complemento-de-2.
1.3.2 Representacao de n umeros reais
Na representacao de n umeros reais, temos basicamente tres alternativas: representa cao racional,
por ponto-xo e por ponto-utuante.
1.3.2.1 Representa cao racional de n umeros reais
A representacao racional utiliza dois inteiros numerador e denominador para representar
a fra cao. Apesar de permitir representar de forma exata as fra coes, as opera coes aritmeti-
cas envolvendo tal representacao tornam-se bastante complicadas. Em sistemas de computa cao
simbolica, como o MAPLE, Mathematica e Derive, dentre outros, essa representa cao e adotada,
porem cabe ressaltar que ela nao existe em termos de hardware; esses sistemas executam por
software as opera coes aritmeticas envolvendo fra coes (incorrendo em um consideravel aumento
no tempo tomado para se efetuar as opera coes).
1
Esse procedimento e o mesmo que ocorre no sistema decimal: o vai-um na soma de dois dgitos decimais indica
que ela excedeu a 9 e, portanto, deve ser transportado o complemento de 10 da soma (indicado pelo transporte do
1) para o dgito subseq uente.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 12
Introdu c ao ao Calculo Numerico Aritmetica no Computador
1.3.2.2 Representa cao de n umeros reais em ponto-xo
A segunda alternativa e chamada de ponto-xo. Nesse caso, o ponto bin ario ocupa uma posi cao
xa (da o nome) existe uma quantidade pre-denida de dgitos bin arios ` a esquerda e `a direita
do ponto. A palavra do computador e dividida em tres campos:
1. s, sinal do n umero ([ s [ = 1 bit );
2. e, dgitos ` a esquerda do ponto binario ([ e [ = 15 bits, por exemplo);
3. d, dgitos ` a direita do ponto bin ario ([ d [ = 16 bits, por exemplo).
Por exemplo, o n umero 11, 75 e representado em ponto-xo como
1 00000000001011 1100000000000000
Novamente, aqui, existem duas representa coes para o zero; porem, o principal problema reside no
fato de que o intervalo de representacao dos n umeros e bastante pequeno, conforme veremos a
seguir.
1.3.2.3 Representa cao de n umeros reais em ponto-utuante
A terceira maneira de representar n umeros reais em um computador e chamada de ponto-utuante.
Ela e baseada na notacao cientca, i.e. um n umero real x em base decimal e expresso na forma
x = M 10
E
(1.2)
onde M e a mantissa e E e o expoente. Note que se exigirmos que S seja um n umero que satisfa ca
1
10
M < 1
ent ao podemos imaginar que o ponto decimal e movido ` a esquerda ou direita, ajustando-se
convenientemente o valor de E da o nome ponto-utuante. Nesse caso, dizemos que o n umero
x encontra-se em notacao cientca normalizada, pois o primeiro dgito ap os o ponto decimal e
diferente de zero. A nota cao normalizada apresenta uma restricao, a qual e a impossibilidade de
se representar o x = 0; essa restricao ser a removida mais adiante.
A nota cao cientca normalizada pode ser facilmente estendida para n umeros reais em base
bin aria; nesse caso, temos
x = M 2
E
,
1
2
M < 1 (1.3)
de onde M e um n umero na forma
M = (0, b
0
b
1
b
2
b
3
. . .)
2
, b
0
= 1
Por exemplo, o n umero 11, 75 pode ser representado como
(11, 75)
10
= (0, 101111)
2
2
(+100)2
Novamente, aqui, o n umero 0 n ao pode ser representado, pois M 1/2, por deni cao; a represen-
ta cao do 0 deve ser tratada, portanto, como um caso especial.
Agora, observando a equa cao (1.3), podemos ver que para representar o n umero x naquela
forma, devemos armazenar em uma palavra quatro informa coes distintas: o sinal da mantissa, a
mantissa, o sinal do expoente e o expoente. Esses dois ultimos podem ser representados separada-
mente ou simultaneamente; nesse caso, pode-se usar complemento-de-2 (apesar dessa forma n ao
ser utilizada usualmente) ou deslocamento (biased exponent, como no padrao IEEE-754).
Tambem podemos observar que, como b
0
= 1 em M, n ao e necessario representa-lo; isso nos
permitir a economizar um bit da palavra que armazenar a x.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 13
Introdu c ao ao Calculo Numerico Aritmetica no Computador
Essa representacao, tambem chamada de sistema de ponto-utuante, e denotada por
F = (, [ M[, [ E[) (1.4)
onde e a base na qual os n umeros estao expressos, [ M[ e [ E [ sao a quantidade de dgitos
utilizados para representar a mantissa e o expoente.
Para ns ilustrativos, vamos considerar uma palavra de 32 bits, dividindo-a em tres campos:
1. s, sinal do n umero ([ s [ = 1 bit );
2. E, o expoente do n umero, expresso em complemento-de-2 ([ E [ = 8 bits, por exemplo);
3. M, a mantissa do n umero, expressa na forma (0, 1b
1
b
2
b
3
. . .)
2
([ D[ = 23 bits, por exemplo);
Nesse caso, o n umero (11, 75)
10
= (0, 101111)
2
2
(+100)2
ser a expresso como
1 00000100 10111100000000000000000
1.3.2.4 Tratamento do zero
Num sistema de ponto-utuante em nota cao cientca normalizada, a representa cao do zero e um
caso especial, pois qualquer n umero x nesse sistema e tal que sua mantissa e um n umero M > 0.
Note que o padrao de bits
0 00000000 00000000000000000000000
n ao representa 0, mas sim 1 (uma vez que b
0
n ao e armazenado).
Temos, entao, duas op coes para representar o zero:
1. Representar explicitamente b
0
: com isso, reduzimos a precisao, pois o bit b
23
da mantissa
n ao poder a ser representado;
2. Escolher um certo valor de E o qual, quando o padr ao de bits de M for 00 . . . 00, ser a
considerado como representando o 0. Essa e a estrategia utilizada no padr ao IEEE-754,
Note que, em ambas opcoes, persiste a representacao dupla para o zero, +0 e 0; usualmente o
sinal e desconsiderado, nessa situa cao.
1.3.3 Caracteriza cao de uma representacao
A m de caracterizarmos uma representa cao de n umeros reais, seja em ponto-xo ou ponto-
utuante, podemos denir algumas quantidades, as quais s ao:
1. A precis ao, p, e a quantidade de bits disponvel para representar o n umero;
2. O menor n umero representavel, em modulo, MINR;
3. O maior n umero representavel, em modulo, MAXR;
4. O menor n umero representavel, , tal que 1+ ,= 1, tambem chamado de epsilon da m aquina
ou unidade de arredondamento da m aquina;
5. A menor separa cao possvel entre dois n umeros representaveis, ULP (do ingles units-in-the-
last-place).
Para um sistema de ponto-xo, teremos ent ao
1. p = [ e [ +[ d [;
2. MINR e obtido fazendo-se s = 0, e = 0 e colocando 1 no bit menos signicativo de d;
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 14
Introdu c ao ao Calculo Numerico Aritmetica no Computador
3. MAXR e obtido fazendo-se s = 0, e e e d tendo todos os seus bits iguais a 1;
4. MINR;
5. ULPMINR.
Usando-se uma palavra de 32 bits, dividida em campos e com 15 bits e d com 16 bits, podemos
calcular essas quantidades, conforme mostra a tabela 1.5.
p 31
MINR 2
16
0, 000015
MAXR (2
15
1) +

16
i=1
2
i
= 32767, 9999847412109375 2
15
2
16
ULP 2
16
Tabela 1.5: Valores caracterizadores de uma representa cao em ponto-xo.
J a para um sistema de ponto-utuante, essas quantidades s ao obtidas de forma diferente:
1. p = [ M[ + 1 (pois b
0
= 1 n ao e armazenado);
2. MINR, e obtido fazendo-se s = 0, E = 128 e M = 1/2.
3. MAXR, e obtido fazendo-se s = 0, E = 127 e M tendo todos os seus bits iguais a 1;
4. = 2
(p1)
, para arredondamento por corte, ou =
1
2
2
(p1)
= 2
p
, para arredondamento
por adi cao (ver 1.3.4);
5. ULP= (0, 00 . . . 01)
2
2
E
= 2
(p1)
2
E
= 2
E
, para qualquer n umero x na forma
M 2
E
.
Usando uma palavra de 32 bits dividida conforme expresso acima, essas quantidades tem os
seguintes valores, conforme mostra a tabela 1.6, onde foi calculado usando-se arredondamento
por corte. Comparando com a tabela 1.5, e f acil notar que a representacao em ponto-utuante
p 24
MINR 2
1
2
128
0, 146937 10
38
MAXR (

24
i=1
2
i
) 2
127
0, 170141 10
39
2
(241)
= 0, 119209 10
6
ULP 2
E
= 2
23+E
Tabela 1.6: Valores caracterizadores de uma representa cao em ponto-utuante.
oferece um intervalo muito maior de n umeros representaveis; alem disso, a separacao entre esses
n umeros e bem menor.
Na representacao em ponto-utuante, e importante estabelecer o intervalo de valores possveis
para o expoente. Os limites desse intervalo s ao o menor e o maior expoente, MINE e MAXE,
respectivamente, e sua deni cao depende de como os expoentes sao armazenados, conforme a
tabela 1.7.
Cabe, aqui, uma observa cao referente ao . Suponha que se desconhe cam as caractersticas do
sistema de ponto-utuante de um computador ou calculadora; nesse caso, e possvel estimar o ,
usando o algoritmo 1.3.1, o qual baseia-se na deni cao 1 + ,= 1:
sinal-e-modulo complemento-de-2
MINE
|E|1
1
|E|1
MAXE +
|E|1
1 +
|E|1
1
Tabela 1.7: Denicao dos valores do menor e maior expoentes num sistema de ponto-utuante.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 15
Introdu c ao ao Calculo Numerico Aritmetica no Computador
Algoritmo 1.3.1 Estimacao de
proc macheps(output: )
s 1, 0
t 2, 0
while (t > 1, 0)
s 0, 5 s
t s + 1, 0
if (t 1, 0) then
2, 0 s
endif
endwhile
endproc
Por exemplo, executando-se esse algoritmo em uma calculadora HP-48SX, teremos como
resultado = 7, 2759576141 10
12
. O processador Saturn da HP-48SX utiliza 38 bits para
representar a mantissa e, portanto, o valor calculado para e uma boa aproxima cao.
1.3.4 Arredondamentos
Conforme salientado anteriormente, qualquer representa cao de um n umero real, num computador,
ser a inexata, salvo algumas poucas exce coes. Esse erro na representacao est a associado ` a base
utilizada para representa cao e ao fato de que, necessariamente, existe um n umero nito de bits
para armazenar o n umero.
Quanto ` a base, apesar de alguns fabricantes de computadores terem utilizado outras bases (16,
no caso do IBM 360 e 8, no Burroughs B-6700), em 1960-1970, tipicamente se utiliza a base
2, por ser mais f acil de se implementar os circuitos do processador, usando uma logica bin aria.
Dessa forma, temos de conviver com o problema de certos n umeros, com representa cao exata em
base decimal, nao poderem ser representados de forma exata em base binaria.
O outro problema a limita cao no tamanho da palavra para representar um n umero real
pode ser mitigada ao se aumentar a precis ao. Qualquer linguagem de programa cao cientca
oferece a possibilidade de se utilizar vari aveis em precis ao dupla e, algumas, em precisao qu adrupla,
i.e., utilizamos duas ou quatro palavras para representar um n umero real. Outra alternativa e
utilizar um processador cuja palavra contenha um maior n umero de bits: o recem-lancado Intel
Itanium tem uma palavra de 64 bits. Note a diferen ca sutil entre essas duas alternativas:
um programa que utilize vari aveis em precis ao simples permitir a se trabalhar com n umeros de
diferentes precis oes, se utilizarmos dois computadores com palavras de tamanhos diferentes. Por
exemplo, um programa em Fortran 90 com variaveis de precis ao simples tipo REAL tera uma
precis ao de p = 24 num computador que utilize o Intel Pentium II, mas, num Intel Pentium
4, o mesmo programa tera uma precisao de p = 53.
Assim, com as limitacoes impostas pela escolha da base e precisao da representacao, pode-se
perceber que existe um n umero nito de n umeros representaveis ou de m aquina; isso em marcante
contraste com os n umeros reais, cuja quantidade e innita. Mais ainda, entre quaisquer dois
n umeros reais, existem innitos outros n umeros; j a em qualquer das representacoes (ponto-xo ou
ponto-utuante), se tomarmos dois n umeros representaveis consecutivos, i.e., h a uma diferen ca de
1 no bit menos signicativo, nao h a qualquer outro n umero. Assim, se posicionarmos os n umeros
representaveis sobre a reta dos reais, veremos que existem espacos entre cada n umero representavel.
Para demonstrar isso, considere um computador hipotetico com uma palavra de 7 bits, e duas
representacoes de n umeros reais:
1. Ponto-xo: [ s [ = 1, [ e [ = 2, [ d [ = 4;
2. Ponto-utuante: [ s [ = 1, [ M[ = 5, [ E[ = 2.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 16
Introdu c ao ao Calculo Numerico Aritmetica no Computador
As guras 1.1 e 1.2 mostram a distribui cao dos n umeros de maquina ao longo da reta dos reais. Para
a representacao em ponto-xo, note que a separacao entre os n umeros representaveis e constante:
isso e explicado pois o valor de ULP e constante. Ja na representa cao em ponto-utuante, essa
separacao aumenta ` a medida que um n umero torna-se maior, ou seja, o expoente cresce. Isso pode
ser vericado na expressao para ULP, 2
E
, a qual depende do valor do expoente.
Outra caracterstica que pode ser observada e o menor intervalo de representacao no sistema
de ponto-xo, bem como uma regi ao de underow muito maior do que no sistema de ponto-
utuante.
Observando as guras 1.1 e 1.2, podemos vericar a existencia de espa cos entre os n umeros
representaveis. Suponha, ent ao, um n umero como, por exemplo, 2/3 = 0, 666 . . ., cuja repre-
sentacao em bin ario e (0, 101010. . .)
2
. Para ns de explana cao consideremos apenas um sistema
de ponto-utuante, apesar das observa coes a seguir serem v alidas para uma representa cao de
ponto-xo tambem.
Como 2/3 n ao tem representa cao nita em 24 bits, temos duas opcoes para armazena-lo:
1. (0, 101010 . . . 1010)
2
2. (0, 101010 . . . 1011)
2
o primeiro n umero e obtido descartando-se os bits b
24
b
25
. . .; j a o segundo obtem-se descartando-se
os bits em excesso e somando 1 a b
24
.
A situa cao que temos e, portanto, a seguinte: sempre que um n umero e nao-represent avel,
devemos escolher outro entre os dois n umeros de maquina, mais pr oximos daquele. Esses dois
n umeros s ao arredondamentos do n umero original, chamados de arredondamento por corte e por
adi c ao, correspondentes aos itens 1 e 2 acima, respectivamente.
Como estamos aproximando um n umero n ao-representavel por um outro, o mais pr oximo dele,
nossa representacao daquele n umero traz associada a si um erro, o qual pode ser medido de duas
formas. Quando um n umero real x e aproximado por um n umero x, o erro e x x. O erro absoluto
e denido como
[ x x [ (1.5)
e o erro relativo e dado por

x x
x

. (1.6)
Esse ultimo e o mais utilizado por permitir uma compara cao mais justa entre quantidades com
diferentes relacoes de magnitude
2
.
Vejamos formalmente, agora, quais os erros associados a esses arredondamentos. Chamemos
de x
c
e x
a
os n umeros de maquina correspondentes aos arredondamentos por corte e por adi cao,
respectivamente, de um n umero n ao-representavel x, os quais satisfazem a rela cao
x
c
< x < x
a
pois
x
c
= 0, 1010 . . . 1010[
x = 0, 1010 . . . 1010[1010 . . .
x
a
= 0, 1010 . . . 1011[
porem, x pode estar mais pr oximo de x
c
ou de x
a
, conforme mostrado na gura 1.3.
Escrevendo os n umeros x
c
e x
a
como
x
c
= (0, b
0
b
1
. . . b
22
b
23
)
2
2
E
(1.7)
x
a
=
_
(0, b
0
b
1
. . . b
22
b
23
)
2
+ 2
24
_
2
E
(1.8)
podemos calcular os erros absoluto e relativo associados aos dois arredondamentos como
2
Por exemplo, um erro de 1m na medicao da distancia entre a Terra e J upiter e pequeno; porem, um erro de
5cm numa incisao num corpo humano pode ser considerado bastante alto.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 17
Introdu c ao ao Calculo Numerico Aritmetica no Computador
Figura 1.1: Distribui c ao de n umeros de m aquina em um sistema de ponto-xo; observe que a
dist ancia entre dois n umeros representaveis e a mesma.
Figura 1.2: Distribui c ao de n umeros de m aquina em um sistema de ponto-utuante; aqui, a
dist ancia entre dois n umeros representaveis aumenta ` a medida que se afastam do 0.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 18
Introdu c ao ao Calculo Numerico Aritmetica no Computador
Figura 1.3: Um n umero n ao-represent avel x pode ser melhor representado por x
c
ou x
a
.
Aqui, consideramos um sistema de ponto-utuante com quatro dgitos na mantissa, com x
c
=
0, 6875 = (0, 1011)
2
e x
a
= 0, 75 = (0, 1100)
2
; no diagrama ` a esquerda, x = 0, 70625 =
(0, 10110100110011 . . .)
2
e, ` a direita, x = 0, 734375 = (0, 101111)
2
.
Erros associados ao arredondamento por corte Se o arredondamento por corte foi escolhi-
do, ent ao x encontra-se `a esquerda do ponto medio do intervalo [x
c
, x
a
]. Ent ao:
[ x x
c
[
1
2
[ x
a
x
c
[ =
1
2
[ (M + 2
24
) 2
E
M 2
E
[ = (1.9)
2
1
2
24
2
E
= 2
E25
(1.10)

x x
c
x


2
E25
M 2
E
=
2
25
M

2
25
2
1
= 2
24
.
.. M
1
2
(1.11)
Erros associados ao arredondamento por adi cao Se o arredondamento por adi cao foi esco-
lhido, ent ao x encontra-se `a direita do ponto medio do intervalo [x
c
, x
a
]. Por analogia,
escrevemos
[ x x
a
[ 2
E25
(1.12)

x x
a
x

2
24
(1.13)
Generalizando, podemos dizer que o erro relativo entre x e seu arredondamento x

x x

(1.14)
ou
x

= (x) = x(1 + ), [ [ , =
x

x
x
(1.15)
Uma medida muito utilizada para se determinar a qualidade numerica de um valor e o n umero
de dgitos signicativos, DIGSE. Aplicando logaritmos aos dois lados da expressao 1.14, temos
log
10

x (x)
x

log
10
(1.16)
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 19
Introdu c ao ao Calculo Numerico Aritmetica no Computador
e DIGSE e denido como
DIGSE(x, (x)) = log
10

x (x)
x

(1.17)
Para uma precis ao p = 24, log
10
2
24
7, ou seja, temos no mnimo sete casas decimais de
precis ao.
1.3.5 Opera coes aritmeticas de ponto-utuante
Na soma e subtra cao, os expoentes dos dois operandos devem ser iguais. Para tal, seleciona-se o
maior dos dois expoentes, e a mantissa e expoente do outro operando s ao ajustados de tal forma
a coincidir os expoentes. Por isso, as opera coes aritmeticas s ao sempre efetuadas com o dobro de
bits utilizados para armazenar os n umeros. Uma vez feito o ajuste dos expoentes, basta calcular
(a r
p
) (b r
p
) = (a b) r
p
A multiplica cao e a divis ao sao calculadas como
(a r
p
) (b r
q
) = ab r
p+q
(a r
p
) (b r
q
) = a b r
pq
Como essas operacoes sao efetuadas em v arias etapas, a cada parcela do processo, deslocam-se os
bits `a esquerda, de forma a sobrar bits menos signicativos; a cada deslocamento, o expoente deve
ser modicado adequadamente.
1.3.5.1 Erros em opera coes aritmeticas de ponto-utuante
Sempre que dois n umeros de ponto-utuante sofrerem o efeito de uma das quatro opera coes arit-
meticas, as seguintes etapas s ao efetuadas:
1. A opera cao e feita de forma correta, i.e., com o dobro do n umero de bits usados para
armazenar cada operando;
2. O resultado e normalizado;
3.

E feito o arredondamento, de forma que o resultado normalizado possa ser armazenado na
palavra.
O exemplo a seguir mostra por que deve-se efetuar a normaliza cao antes do arredondamento.
Exemplo 1.1 Considere x = 0, 45230 10
2
e y = 0, 25470 10
3
, em um sistema de ponto-
utuante com cinco casas na mantissa. O resultado de x y, sem normaliza cao, e
x y = 0, 0000011520
Se efetuarmos o arredondamento, sem normaliza-lo, o resultado ser a 0!
Como mostramos anteriormente, a representacao em ponto-utuante traz associada a si um
erro. O exemplo a seguir mostra, no entanto, que uma unica opera cao aritmetica simples tem um
erro que n ao excede a .
Exemplo 1.2 Considere x = 0, 3142610
3
e y = 0, 9257710
5
e, calculando as quatro operacoes
aritmeticas, temos:
x + y = 0, 9289100000 10
5
x y = 0, 9226274000 10
5
x y = 0, 2909324802 10
8
x y = 0, 3394579647 10
2
e, arredondando para cinco casas decimais, por adicao, temos
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 20
Introdu c ao ao Calculo Numerico Aritmetica no Computador
erro relativo
(x + y) 0, 92891 10
5
8, 5 10
6
< 10
5
(x y) 0, 92263 10
5
2, 3 10
6
< 10
5
(x y) 0, 29093 10
8
2, 8 10
6
< 10
5
(x y) 0, 33946 10
2
6, 0 10
6
< 10
5
onde 10
5
e o dessa representa c ao em cinco casas decimais.
De forma generica, podemos dizer que, se x e y sao n umeros representaveis, ent ao para uma
opera cao aritmetica qualquer ,
(x y) = (x y)(1 + ), [ [ (1.18)
e, se x e y n ao sao n umeros representaveis, ent ao
( (x) (y)) = (x(1 +
1
) y(1 +
2
)) (1 +
3
), [
1,2,3
[ (1.19)
A equa cao (1.19) nos diz que o erro associado ao encadeamento de operacoes aritmeticas pode
ser maior do que . Considere o exemplo abaixo:
(x(y + z)) = (x( (y + z))(1 +
1
), [
1
[ 2
24
= (x(y + z)(1 +
2
))(1 +
2
), [
2
[ 2
24
= x(y + z)(1 +
1
+
2
+
1

2
)
x(y + z)(1 +
1
+
2
)
.
.. [
1
+
2
[ 2
23
x(y + z)(1 +
3
), [
3
[ 2
23
,
1

2

3
Esse exemplo nos leva a supor que, caso a quantidade de opera coes aritmeticas a serem feitas
seja muito grande, entao o erro crescer a proporcionalmente. O teorema a seguir mostra que essa
hip otese e verdadeira.
Teorema 1.3.1 Sejam x
0
, x
1
, . . ., x
n
n umeros representaveis positivos, e a unidade de arre-
dondamento da maquina. Entao, o erro relativo de arredondamento ao se calcular

n
i=0
x
i
na
ordem natural, i.e. x
0
+ x
1
+ . . . + x
n
, e de no maximo (1 + )
n
1 ou, aproximadamente, n.
Prova: Seja S
k
= x
0
+ x
1
+ . . . + x
k
e (S
k
), as quais podem ser representadas pelas f ormulas
de recorrencia
_
S
0
= x
0
S
k+1
= S
k
+ x
k+1
, k 0
(1.20)
_
(S
0
) = x
0
(S
k+1
) = ( (S
k
) + x
k+1
), k 0
(1.21)
e chamemos de
k
e
k
aos erros relativos associados a (S
k
) e (S
k+1
),

k
=
(S
k
) S
k
S
k
(1.22)

k
=
(S
k+1
) ( (S
k
) + x
k+1
)
(S
k
) + x
k+1
(1.23)
de onde

k+1
=
(S
k+1
) S
k+1
S
k+1
=
( (S
k
) + x
k+1
)(1 +
k
) (S
k
+ x
k+1
)
S
k+1
.
.. (S
k
) = S
k

k
+ S
k
(por (1.22))
.
..
=
(S
k
(1 +
k
) + x
k+1
)(1 +
k
) (S
k
+ x
k+1
)
S
k+1
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 21
Introdu c ao ao Calculo Numerico Aritmetica no Computador
e, rearranjando os termos, obtemos

k+1
=
k
+
k
S
k
S
k+1
(1.24)
Como, por deni cao, S
k
< S
k+1
e [
k
[ ,
[
k+1
[ +[
k
[(1 + ) = + [
k
[, = 1 +
podemos entao escrever:
[
0
[ = 0
[
1
[
[
2
[ +
[
3
[ + ( + ) = + +
2

.
.
.
ou
[
n
[ + ( + ) = + +
2
+ . . . +
n1
=
= (1 + + . . . +
n1
) =
=

n
1
1
=
=
(1 + )
n
1

=
= (1 + )
n
1
e, pelo bin omio de Newton, tem-se
(1 + )
n
1 = 1 +
_
n
1
_
=
_
n
2
_

2
+ . . . 1 n.
1.4 Perda de dgitos signicativos
Apesar de erros de arredondamento serem inevitaveis e difceis de controlar, existem alguns tipos
de erros, em computa coes numericas, que podem ser evitados.
Por exemplo, suponha a subtra cao de dois n umeros x e y pr oximos entre si:
x = .3721478693
y = .3720230572
x y = .0001248121
Se o computador utilizado oferecer apenas cinco dgitos decimais na mantissa, teramos:
(x) = .37215
(y) = .37202
(x) (y) = .00013
Nesse caso, o erro relativo e bastante grande, da ordem de 4%.
1.4.1 Subtra cao de valores quase identicos
Como regra, devemos evitar situacoes que levem `a subtra cao de valores quase identicos - normal-
mente causados por express oes inadequadas do ponto de vista numerico.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 22
Introdu c ao ao Calculo Numerico Aritmetica no Computador
Exemplo 1.3 Considere a express ao
y
_
x
2
+ 1 1 (1.25)
Ora, para x < 1, teremos x
2
1 e, portanto,

x
2
+ 1 1. No entanto, se reescrevermos a
expressao acima como
y
_
_
x
2
+ 1 1
_
_

x
2
+ 1 + 1

x
2
+ 1 + 1
_
=
x
2

x
2
+ 1 + 1
(1.26)
eliminaremos esse problema. Por exemplo, em uma calculadora HP-48SX, se x = 10
6
, teremos:
y
_
0, 000001
2
+ 1 1 =
_
10
12
+ 1 1 = 1 1 = 0
y
0, 000001
2
_
0, 000001
2
+ 1 + 1
=
10
12

1 + 1
=
10
12
2
= 5 10
13
Por que, no exemplo acima, 10
12
+ 1 = 1? Ocorre que, se um dos operandos for menor do
que , entao ele sera desconsiderado (pois e o menor n umero represent avel tal que 1 + ,= 1).
Como (10
6
)
2
< (= 7, 275957614110
12
na HP-48SX), houve o cancelamento catastroco na
subtra cao.
Exemplo 1.4 Considere as expressoes para as duas razes de uma equacao de segundo grau,
x
1
=
b +

b
2
4ac
2a
(1.27)
x
2
=
b

b
2
4ac
2a
(1.28)
Se b
2
4ac, entao a express ao b
2
4ac envolve cancelamento e

b
2
4ac [ b [, de tal forma
que as expressoes sofrer ao cancelamento catastroco, dependendo do sinal de b.
Nesse caso, se multiplicarmos as equa coes acima por express oes do tipo
b +

b
2
4ac
b +

b
2
4ac
,
b

b
2
4ac
b

b
2
4ac
poderemos calcular as razes como segue:
1. Se b
2
4ac e b > 0 entao x
2
e calculado por (1.28) e
x
1
=
2c
b

b
2
4ac
=
c
ax
2
(1.29)
2. Se b
2
4ac e b < 0 entao x
1
e calculado por (1.27) e
x
2
=
2c
b +

b
2
4ac
=
c
ax
1
(1.30)
Por exemplo, seja a equa cao x
2
10
6
x + 1 = 0. Calculando x
1
e x
2
atraves das express oes
usuais, utilizando o software Maple com precis ao de 10 dgitos decimais, em um computador
Pentium II, temos:
x
1
=
10
6
+

10
12
4
2
=
10
6
+ 10
6
2
= 10
6
x
2
=
10
6

10
12
4
2
=
10
6
10
6
2
= 0
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 23
Introdu c ao ao Calculo Numerico Aritmetica no Computador
A raiz x
2
foi calculada de forma errada, pois sofreu cancelamento catastr oco. No entanto, se
recalculamo-la usando (1.30), temos
x
2
=
2
10
6
+

10
12
4
=
2
10
6
+ 10
6
= 10
6
Ao substituirmos esse valor na equa cao, teremos 10
12
1 +1, o qual pode ser considerado como
aproximando 0 para a precis ao utilizada. Note que, para esse exemplo particular, x
1
nao e raiz da
equacao, pois 10
12
10
6
10
6
+ 1 ,= 0.
1.4.2 Teorema sobre a perda de precisao
Uma questao que surge a partir dos exemplos anteriores e a seguinte: Quantos dgitos binarios
signicativos sao perdidos na subtra c ao xy quando x y? O teorema a seguir nos da limitantes
extremos para o n umero de dgitos bin arios perdidos nessa situa cao, baseado na rela cao [ 1y/x[,
o que nos d a uma medida de quao pr oximo x e de y.
Teorema 1.4.1 Se x e y s ao n umeros em ponto-utuante bin arios positivos, normalizados, tal
que x > y e
2
q
1
y
x
2
p
entao no maximo q e no mnimo p dgitos binarios signicativos s ao perdidos na subtra cao x y.
Prova. Considerando apenas o extremo superior da desigualdade, temos que x e y s ao da forma
x = r 2
n
,
_
1
2
r < 1
_
y = s 2
m
,
_
1
2
s < 1
_
Como x > y, por hip otese, o expoente de y dever a ser igualado ao de x antes de se realizar a
subtra cao (note que, como nao pode haver dgitos `a esquerda do ponto binario, sempre se faz com
que o menor n umero iguale seu expoente ao maior, introduzindo zeros imediatamente ` a direita do
ponto binario). Logo, y deve ser escrito como
y = (s 2
mn
) 2
n
e, da,
x y = (r s 2
mn
) 2
n
A mantissa desse n umero satisfaz a seguinte rela cao:
r s 2
mn
= r
_
1
s 2
m
r 2
n
_
= r
_
1
y
x
_
< 2
p
Para normalizar a representacao de x y, um deslocamento de ao menos p bits para a esquerda
e necessario. Entao, ao menos p zeros s ao inseridos ao nal da mantissa, efetivamente perdendo
p bits de precisao.
O exemplo a seguir ilustra a utiliza cao desse resultado.
Exemplo 1.5 Suponha uma mantissa de 5 dgitos decimais e que x = 0, 31457 10
5
e y =
0, 31453 10
4
e que os c alculos sejam efetuados com o dobro de dgitos. Ora, para calcular x y,
temos:
x = 0, 31457 00000 10
5
y = 0, 03145 30000 10
5
x y = 0, 28311 70000 10
5
(x y) = 0, 28311 10
5
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 24
Introdu c ao ao Calculo Numerico Aritmetica no Computador
como foi necess ario inserir um dgito 0 apos o ponto decimal de y, espera-se que se perder a um
dgito ao fazer a normaliza cao, como pode-se vericar pelo resultado. O erro relativo, no caso, e

0, 283117 10
5
0, 28311 10
5
0, 283117 10
5

= 2, 4724760435 10
5
, 10
5
o que demonstra que, efetivamente, houve perda de dgitos signicativos na subtracao.
Exemplo 1.6 Considere a express ao y = x senx. Como senx x para x 1, ocorrer a perda
de dgitos signicativos em y. Proponha uma forma alternativa para calcular y e estipule um
intervalo para x no qual pode-se utilizar a express ao original.
Solu cao: Usando a serie de Taylor para senx, temos:
y = x senx
= x
_
x
x
3
3!
+
x
5
5!

x
7
7!
+ . . .
_
=
_
x
3
3!

x
5
5!
+
x
7
7!
. . .
_
e, para x 0, podemos truncar a serie como segue, utilizando apenas quatro termos:
y = (x
3
/6)(1 (x
2
/20)(1 (x
2
/42)(1 x
2
/72)))
Usando o Teorema da Perda de Precis ao, podemos exigir que apenas um bit seja perdido se
escrevermos
1
senx
x

1
2
, x > 0,
Essa desigualdade e satisfeita se [ x[ 1, 9 e, nessa situacao, podemos usar a express ao original.
Para 0 < x < 1, 9, devemos usar a expressao baseada na serie truncada de Taylor, pois ela elimina
o problema.
Suponha x = 10
6
em uma calculadora HP-48SX. Ent ao, teremos:
y = 10
6
sen(10
6
) = 0, 000001 0, 000001 = 0
y = 1, 66666666667 10
19
1.5 Condicionamento de um problema
O condicionamento de um problema diz respeito a quao exato podemos resolve-lo em uma dada
precis ao de ponto-utuante, independentemente do algoritmo utilizado para resolve-lo.
Seguindo a deriva cao em [12], e supondo que desejamos avaliar uma fun cao y = f(x), j a
sabemos que qualquer opera cao de ponto-utuante acarretar a a existencia de um erro. Logo, o
que efetivamente calcula-se e uma aproximacao
(y) = (f( (x)))
mas, por simplicidade, assumimos que (f) = f. Podemos calcular, ent ao, o erro relativo em y
como
(y) y
y
=
f( (x)) f(x)
(x) x

x
f(x)

(x) x
x
.
O termo
f( (x))f(x)
(x)x
e uma aproximacao para f

(x). Assim,
(y) y
y

f
(x)
(x) x
x
(1.31)
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 25
Introdu c ao ao Calculo Numerico Aritmetica no Computador
onde

f
(x) =
[ x[ [ f

(x) [
[ f(x) [
(1.32)
a qual e chamada de n umero de condi cao de f em x. Esse fator e que mede o quanto os erros de
arredondamento em x sao amplicados ao se avaliar f(x).
Ent ao, para se avaliar o n umero de dgitos corretos em (y), aplicamos logaritmos aos dois
membros da equacao (1.31),
log
10
_
(y) y
y
_
log
10
_
(x) x
x
_
log
10

f
(x)
Note que log
10
_
(x)x
x
_
e aproximadamente igual a 7 para p = 24 e a 16 para p = 53.
1.6 Computa coes estaveis e instaveis
Um processo numerico e dito inst avel se pequenos erros ocorridos num passo sao ampliados nos
passos seguintes, degradando a exatid ao do processo.
Considere, por exemplo, a seq uencia de n umeros dada por
_
_
_
x
0
= 1
x
1
=
1
3
x
n+1
=
13
3
x
n

4
3
x
n1
, n 1
a qual gera os n umeros
x
n
=
_
1
3
_
n
pois x
0
=
1
3
0
= 1, x
1
=
1
3
1
=
1
3
. Para n = m + 1, temos:
x
m+1
=
13
3
x
m

4
3
x
m1
=
13
3
_
1
3
_
m

4
3
_
1
3
_
m1
=
_
1
3
_
m1
_
13
3

4
3
_
=
_
1
3
_
m+1
Utilizando a forma de recorrencia acima para gerar os n umeros, teremos:
n xn (1/3)
n
erro relativo
0 1,000000000000000000000 1,000000000000000000000 0,000000000000000000000
1 0,333333333333333310000 0,333333333333333310000 0,000000000000000000000
2 0,111111111111110940000 0,111111111111111100000 0,000000000000001498801
3 0,037037037037036258000 0,037037037037037028000 0,000000000000020795865
4 0,012345679012342514000 0,012345679012345677000 0,000000000000256154473
5 0,004115226337435884400 0,004115226337448558300 0,000000000003079755201
6 0,001371742112432145600 0,001371742112482852900 0,000000000036965598551
7 0,000457247370624785240 0,000457247370827617560 0,000000000443594296061
8 0,000152415789464541850 0,000152415790275872500 0,000000005323140444549
9 0,000050805260179967644 0,000050805263425290837 0,000000063877696404890
10 0,000016935074827137338 0,000016935087808430279 0,000000766532366861972
11 0,000005644977344304949 0,000005645029269476759 0,000009198388410596376
12 0,000001881468722471661 0,000001881676423158920 0,000110380660937172300
13 0,000000626394671637267 0,000000627225474386307 0,001324567931256533500
14 0,000000205751947132609 0,000000209075158128769 0,015894815175089418000
15 0,000000056398875391618 0,000000069691719376256 0,190737782101085550000
16 -0,000000029940802813135 0,000000023230573125419 2,288853385213039700000
17 -0,000000204941979379076 0,000000007743524375140 27,466240622556484000000
Os valores acima demonstram que o algoritmo e instavel, e qualquer erro presente em x
n
e
multiplicado por 13/3 em x
n+1
. Portanto, h a a possibilidade de que o erro existente em x
3
(da
ordem de 10
15
) seja propagado para x
17
por um fator (13/3)
14
10
9
; ou seja, o erro em x
17
devido unicamente a x
3
pode ser de 10
4
, que n ao e desprezvel. Alem disso, os erros devido aos
demais n umeros x
4
, x
5
, . . . , x
k
sao propagados para x
17
por fatores da forma (13/3)
k
.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 26
Introdu c ao ao Calculo Numerico Aritmetica no Computador
1.7 Desastres causados por erros aritmeticos no computador
Esse captulo apresentou os conceitos ligados ` a computa cao numerica; dentre estes, certamente o
conceito de erro associado a qualquer calculo numerico e o mais importante. Como nao h a como
evit a-los, e necessario que o programador e/ou analista numerico saiba como trata-los de forma
que a ocorrencia deles nao leve a falhas catastr ocas. Infelizmente, isso nem sempre e levado em
conta, no dia-a-dia, e desastres ocorrem, como os dois que citamos a seguir.
1.7.1 Falha do sistema de msseis Patriot
Durante a Guerra do Golfo, em 1991, o Iraque lan cou in umeros msseis terra-terra Scud (de
fabrica cao sovietica) contra Israel e Ar abia Saudita. A m de se protegerem contra esses ataques,
as tropas norte-americanas instalaram baterias de msseis terra-ar Patriot, os quais haviam
sido projetados no incio da decada de 70 para destrurem msseis cruzeiro e aeronaves sovieticas
(voando a uma velocidade media de 2Mach), numa eventual guerra entre a OTAN e o Pacto de
Varsovia.
Uma bateria de msseis Patriot consiste de uma unidade de controle computadorizada; de
um radar de deteccao; e de ate 6 lan cadores qu adruplos de msseis. A unidade de controle dispoe
de um rel ogio que marca o tempo em decimos de segundo, armazenados em uma palavra inteira de
24 bits; os calculos de determina cao das janelas de conrmacao e de engajamento (regi oes no ceu
dentro do qual o possvel alvo deve ser detectado pelo radar para que possa os msseis Patriot
sejam lan cados) sao feitos em ponto xo, tambem com 24 bits.
No dia 25 de fevereiro de 1991, uma bateria Patriot instalada em Dharan, na Ar abia Saudita,
deixou de interceptar um mssil Scud que se aproximava. Como resultado, 28 soldados norte-
americanos foram mortos devido ` a explosao do mssil Scud.
Os resultados da investiga cao, de acordo com [11], indicaram que os msseis Patriot nao
engajaram o Scud (apesar dos radares haverem detectado o mssil iraquiano) devido a um erro
numerico de arredondamento. O tempo medido pelo rel ogio da unidade de controle e multiplicado
por 1/10 para representar o tempo em segundos, e armazenado em 23 bits, no formato de ponto
xo; ocorre que 1/10 e um n umero que n ao tem representa cao nita em bin ario:
(1/10)
10
= (0, 0001 1001 1001 1001 1001 1001 1001 100 . . .)
2
Como a palavra usada para armazenar o rel ogio e de 24 bits, o erro e de aproximadamente
(0, 0000 0000 0000 0000 0000 0001 100 . . .)
2
(0, 0000 0009 5)
10
.

E obvio que, ` a medida que o tempo de opera cao da bateria de msseis aumenta, maior sera
o erro no tempo calculado. Como esse tempo e usado para se calcular as janelas de detec cao e
engajamento de um alvo, isso ira causar um deslocamento da janela para baixo (i.e., a altitude na
qual se espera que o alvo aparecer a na pr oxima varredura do radar da bateria ser a menor do que
a que ele se encontra). Com isso, o mssil continuar a trafegando em dire cao ao seu alvo, porem
n ao ser a detectado e, portanto, os msseis Patriot n ao ser ao disparados.
Ocorre que, devido ` as caractersticas do sistema Patriot, a m de se maximizar as chances
de derrubada do mssil atacante, este deve encontrar-se no meio da janela de engajamento, a
qual tem um comprimento de 274m. No dia 11 de fevereiro de 1991 (duas semanas antes da falha
do sistema), vericou-se que apos 8h de opera cao contnua, a janela sofria um deslocamento de
55m; por extrapola cao, ap os 20h de uso contnuo, esse deslocamento seria de 137m, e a partir de
ent ao, n ao seria mais possvel detectar um mssil atacante.
Quando ocorreu a falha, a bateria que deveria ter engajado o Scud estava operando conti-
nuamente por 100h! Dessa forma, o erro acumulado era de
0, 000000095 100 3600 10 = 0, 34s.
Um mssil Scud viaja a uma velocidade terminal de 1.676m/s; em 0, 34s, ele percorre a dist ancia
de 569, 84m. O deslocamento da janela de deteccao, ap os 100h de opera cao, era de 687m. Logo,
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 27
Introdu c ao ao Calculo Numerico Aritmetica no Computador
n ao havia como o Scud ser detectado, j a que a janela encontrava-se a uma altitude inferior ` a
dele.
1.7.2 Explosao do foguete Ariane 5
No dia 4 de junho de 1996, o primeiro foguete Ariane 5, construdo pela Agencia Espacial Europeia,
foi destrudo pelo sistema de controle de falha apenas 40s ap os o lan camento da sua base em
Khourou, na Guiana Francesa. O Ariane 5 havia sido desenvolvido ap os 10 anos de trabalho, a
um custo de 7 bilh oes de dolares. O custo do foguete, bem como da carga util transportada, era
de 500 milh oes de dolares.
Os resultados da investigacao, ap os duas semanas do incidente, indicaram que o problema
encontrava-se no software de guiagem inercial. Um n umero em ponto-utuante, armazenado
numa palavra de 64 bits, e que representava a velocidade horizontal em rela cao `a plataforma de
lan camento, foi convertido para um n umero inteiro, no formato sinal-e-magnitude, de 16 bits.
Como a velocidade era superior a 32.768 (o maior n umero representavel em 15 bits), ocorreu uma
falha na conversao e o programa deixou de funcionar.
1.8 Exerccios
Exerccio 1.1 Considere um sistema de ponto-utuante, F = (2, 24, 8), no qual os n umeros
apresentam uma mantissa tal que 1 M < 2. Determine os valores caracterizadores desse
sistema.
Exerccio 1.2 Suponha que alguem recebeu a tarefa de projetar o sistema de ponto-utuante
de um computador com uma palavra de 16 bits, para uma aplica cao envolvendo a medicao de
temperaturas pr oximas a zero. Qual o tamanho dos campos M e E que seria mais indicado?
Justique a sua resposta.
Exerccio 1.3 Mostre que, normalmente, [ (xy)z] ,= [x (yz)]; escreva um exemplo e um
contra-exemplo.
Exerccio 1.4 Se no maximo 2 bits de precisao podem ser perdidos ao se calcular y =

x
2
+ 11,
qual a restricao que deve ser imposta a x?
Exerccio 1.5 Calcule os valores de x para os quais f(x) = sen(x) pode ter um grande n umero
de condicao.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 28
Captulo 2
Calculo de Razes de Func oes
Nao-Lineares
2.1 Introdu cao
Consideramos aqui o problema de se determinar um valor real para o qual uma determinada fun cao
f(x) se anula. Seja ent ao
f : IR IR
x f(x)
e deseja-se determinar um valor IR tal que | f() | 0. O processo de busca de e feito
basicamente de duas formas. Na primeira, determina-se uma seq uencia de intervalos que contem
; na segunda, dada uma estimativa inicial x
0
para , rena-se sucessivamente essa estimativa
atraves de alguma formula, ate que se obtenha uma boa aproxima cao para a raiz desejada. Existem
in umeros metodos para se determinar tais razes, baseados nessas duas formas de busca.
Note que esses metodos n ao determinam todas as razes de f(x) = 0. Para ter uma ideia
mais precisa da localizacao das razes de uma equacao e preciso encontrar uma seq uencia de
subintervalos distintos, tais que cada subintervalo contivesse exatamente uma raiz real e cada raiz
real estivesse contida em um subintervalo. Este processo e chamado de separacao das razes de
uma fun c ao.
Teorema 2.1.1 Teorema de Bolzano: Seja f uma fun cao contnua em um intervalo [a, b].
Entao,
1. Se f(a)f(b) < 0, entao existe um n umero mpar (1, 3, 5, . . .), de razes reais em [a, b];
2. Se f(a)f(b) > 0, pode existir um n umero par (0, 2, 4, . . .) de razes reais em [a, b].
3. Supondo que f e sua derivada f

sejam contnuas em [a, b] e que o sinal de f

seja constante
neste intervalo tem-se:
(a) se f(a)f(b) < 0, entao existe uma unica raiz real em [a, b];
(b) se f(a)f(b) > 0, entao nao existe raiz real em [a, b].
Exemplo 2.1 Determine gracamente os intervalos que contem cada uma das razes reais das
fun c oes f(x) = x
3
sen(x) e p(z) = z
3
4z
2
+ 4z 1.
Alem disso, e possvel que existam razes de multiplicidade maior do que um; nesse caso, ainda
que um metodo consiga determinar uma delas, a determina cao da multiplicidade dela deve ser
feita posteriormente. Outro problema que afeta a determina cao numerica de uma raiz e quando
existem duas razes tao pr oximas numericamente que a n ao se pode garantir para qual delas um
determinado metodo ir a convergir.
29
Introdu c ao ao Calculo Numerico Razes de Fun coes Nao-Lineares
Nesse captulo, apresentaremos os metodos da bissec cao, da posi cao falsa, de Newton e da
secante.
2.2 Metodo da Bissec cao
O metodo da bisseccao e um dos mais metodos mais simples para se obter uma raz de uma fun cao.
Ele baseia-se na divisao sucessiva, ao meio, de um intervalo [a, b], no qual e garantido que h a uma
raiz da equacao f(x) = 0, i.e., sign(f(a)) = sign(f(b)) - da o seu nome.
Formalmente, se f e uma fun cao contnua no intervalo [a, b], e se f(a)f(b) < 0, ent ao f tem
um zero em (a, b). Como h a troca de sinal da fun cao f avaliada nos extremos do intervalo, em
algum ponto a < x < b a curva da fun cao f cruzou o eixo das abscissas e, portanto, existe ao
menos uma raiz em (a, b).
Considere, agora, a gura 2.1.
Figura 2.1: O metodo da bisseccao escolhe o intervalo esquerdo.
Veja que os intervalos [a, b], [b, c], [c, d] e [d, e] contem as quatro razes mostradas, e que
f(a)f(b) < 0; f(b)f(c) < 0; f(c)f(d) < 0; e f(d)f(e) < 0. No entanto, se tivessemos considerado o
intervalo [a, e], teramos f(a)f(e) > 0, e poderamos concluir que nao existem razes neste intervalo,
o que e obviamente errado. Com isso, mostramos que a condicao f(a)f(b) < 0 e necessaria, porem
n ao suciente. Devemos, portanto, selecionar intervalos que contenham razes, geralmente com o
auxlio de um gr aco da fun cao.
O metodo da bissecao funciona da seguinte maneira: dados os extremos do intervalo, a e b
(a < b), calcula-se um ponto c como o ponto medio daquele intervalo, c =
a+b
2
. Verica-se, entao,
se f(a)f(c) < 0; se a desigualdade for satisfeita, existe um zero no intervalo (a, c). Caso contr ario,
vericamos se f(c)f(b) < 0 e, em sendo verdade, temos um zero (no mnimo) entre (c, b).
Se, em um dado intervalo [a, b], com f(a)f(b) < 0, existir mais de uma raiz, n ao e possvel
determinar, de antem ao, qual raiz o metodo da bisseccao localizar a, conforme pode ser visto nas
guras 2.2 e 2.3.
Obviamente, se f(c) = 0, teremos obtido um dos zeros no intervalo [a, b]. No entanto, conforme
vimos anteriormente, devido a erros de arredondamento, dicilmente uma quantidade e exatamente
igual a zero; devemos, entao, testar se | f(c) | < , onde e uma tolerancia previamente especicada.
Existem, no entanto, situa coes em que, devido `a natureza da fun cao, aquela condi cao n ao e
satisfeita. Considere a gura 2.4-(a); veja que f(a)f(b) < 0 e que f(0) = 0. Porem, como os dois
ramos da curva sao assntotas ao eixo das ordenadas, os intervalos gerados poder ao ser tais que
f(c) > 0, mas | b
n
a
n
| tende a zero. Portanto, e interessante considerarmos um outro criterio
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 30
Introdu c ao ao Calculo Numerico Razes de Fun coes Nao-Lineares
Figura 2.2: O metodo da bisseccao escolhe o intervalo esquerdo.
Figura 2.3: O metodo da bisseccao escolhe o intervalo direito.
de parada: se | b
n
a
n
| < (onde e, tambem, previamente especicado), entao o processo de
aproxima cao e interrompido. J a na gura 2.4-(b), temos a situa cao contr aria.
Um algoritmo para o metodo da bisseccao pode ser escrito como segue:
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 31
Introdu c ao ao Calculo Numerico Razes de Fun coes Nao-Lineares
Figura 2.4: (a) | f(c) | > e | b
n
a
n
| < ; (b) | f(c) | < e | b
n
a
n
| > .
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 32
Introdu c ao ao Calculo Numerico Razes de Fun coes Nao-Lineares
Algoritmo 2.2.1 Metodo da bisseccao
proc bissec cao(input: a, b, k
max
, , ; output: c)
u f(a)
v f(b)
e b a
if (sign(u) = sign(v)) then
nao pode proceder
else
k 1
w 1
while ((k k
max
) AND (| e | ) AND (| w| ))
e e/2
c a + e
w f(c)
if (sign(w) = sign(u)) then
b c
v w
else
a c
u w
endif
k k + 1
endwhile
endif
endproc
2.3 Metodo da posi cao falsa
O metodo da posicao falsa e uma modicacao do metodo da bisseccao. Conforme visto anterior-
mente, e possvel que o ponto medio do intervalo de busca n ao seja o mais pr oximo da raiz contida
naquele intervalo.
O metodo da posi cao falsa faz um renamento sucessivo de um intervalo [a, b] utilizando a
interseccao da reta secante (ou corda) a f(x) a qual passa pelos pontos (a, f(a)) e (b, f(b))
com o eixo dos x. Esse ponto de interseccao ser a um dos extremos do novo intervalo de busca, ou
ser a uma boa aproxima cao para a raiz.
Figura 2.5: Um intervalo contendo razes de f(x) = 0.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 33
Introdu c ao ao Calculo Numerico Razes de Fun coes Nao-Lineares
Considere ent ao que f(x) e contnua em [a, b] e que f(a) e f(b), de acordo com a gura 2.5,
apresentam sinais diferentes entre si. Ent ao, nesse caso, podemos armar que a curva y = f(x)
cruza o eixo das abscissas ao menos uma vez em um ponto no intervalo [a, b]. Normalmente,
podem existir v arios desses pontos; porem, se f(x) e monotonica, ent ao existe apenas um ponto
para o qual f() = 0.
Figura 2.6: Deriva cao geometrica do metodo da posi cao falsa, por tri angulos semelhantes.
Considere agora a gura 2.6. Para aproximar o ponto , tome a corda MN e calcule o ponto de
interseccao T daquela com o eixo das abscissas. Isso pode ser obtido vericando que os tri angulos
MM
1
T e NN
1
T sao semelhantes; ent ao, podemos escrever
M
1
T
MM
1
=
TN
1
N
1
N
.
Observando a gura 2.6, podemos ver que M
1
T = a
1
a, TN
1
= b a
1
, MM
1
= f(a) e
N
1
N = f(b), onde a
1
denota a abscissa do ponto de interseccao T da corda MN com o eixo X.
Da, escrevemos
a
1
a
f(a)
=
b a
1
f(b)
e, isolando a
1
, temos
a
1
= b f(b)
b a
f(b) f(a)
(2.1)
ou, de forma equivalente
a
1
= a f(a)
b a
f(b) f(a)
(2.2)
O n umero a
1
representa o valor aproximado da raiz da equacao f(x) = 0, situado no intervalo
[a, b].
Como, por hip otese, os sinais de f(a) e f(b) sao opostos, podemos ter duas situa coes possveis:
1. sign(f(a)) = sign(f(a
1
)), ou
2. sign(f(b)) = sign(f(a
1
)).
No primeiro caso, deve-se aplicar a f ormula (2.2) ao intervalo [a, a
1
], a m de se obter a aproxima cao
a
2
:
a
2
= a f(a)
a
1
a
f(a
1
) f(a)
. (2.3)
Se, ao contrario, ocorrer o segundo caso, ent ao obtem-se a
2
atraves da aplicacao da f ormula (2.1)
ao intervalo [a
1
, b],
a
2
= b f(b)
b a
1
f(b) f(a
1
)
(2.4)
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 34
Introdu c ao ao Calculo Numerico Razes de Fun coes Nao-Lineares
e assim sucessivamente, sempre vericando o sinal de f(a
n
) em relacao aos extremos do intervalo
em questao. De forma geral, podemos escrever, ent ao:
a
n+1
= a f(a)
a
n
a
f(a
n
) f(a)
(2.5)
e
a
n+1
= b f(b)
b a
n
f(b) f(a
n
)
(2.6)
A gura 2.7 ilustra os casos possveis com relacao `a concavidade da curva y = f(x) e os sinais
de f(a), f(b) e f(a
1
). Se a curva for c oncava para cima, deve-se aplicar a equa cao (2.5) sobre o
intervalo [a, a
1
] ou a equa cao (2.6) sobre o intervalo [a
1
, b] (guras 2.7-(a) e 2.7-(d)); se a curva
for c oncava para baixo, ent ao aplica-se a equacao (2.5) sobre o intervalo [a, a
1
] ou a equa cao (2.6)
sobre o intervalo [a
1
, b] (guras 2.7-(b) e 2.7-(c)).
Figura 2.7: Os casos possveis no metodo da posi cao falsa.
Caso nao se aplique a equa cao correta, i.e., desconsiderarmos os sinais de f(a), f(b) e f(a
n
),
ent ao a
n+1
pode car fora do intervalo [a, b] (ver gura 2.8).
Figura 2.8: O que ocorre quando n ao se aplica a equacao correta no metodo da posicao falsa.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 35
Introdu c ao ao Calculo Numerico Razes de Fun coes Nao-Lineares
Exemplo 2.2 Suponha que se deseja obter uma raiz de f(x) = x
3
+3x1 = 0 no intervalo [0, 1],
a uma toler ancia de 10
3
. Como f(0) = 1 e f(1) = 3, entao f(x) tem ao menos um zero nesse
intervalo. O gr aco da funcao nesse intervalo (gura 2.9) mostra que ela e concava para cima e,
Figura 2.9: Gr aco de f(x) = x
3
+ 3x 1 = 0 no intervalo [0, 1].
portanto, devemos usar a equacao (2.5). Ent ao, teremos a seguinte seq uencia de aproxima coes:
x
1
= b f(b)
b a
f(b) f(a)
= 1 3
1 0
3 (1)
= 0, 25
x
2
= b f(b)
b x
1
f(b) f(x
1
)
= 1 3
1 0, 25
3 + 0, 23
= 0, 31
x
3
= 1 3
1 0, 31
3 + 0, 040
= 0, 319
x
4
= 1 3
1 0, 319
3 + 0, 010
= 0, 322
x
5
= 1 3
1 0, 322
3 + 0, 0006
= 0, 322
2.3.1 Melhorando o metodo da posi cao falsa
Se analisarmos as equacoes que governam o metodo da posicao falsa, veremos que elas usam,
sempre, um dos extremos a ou b do intervalo original.
No entanto, podemos usar as duas ultimas aproxima coes calculadas, pois elas encontram-se
mais pr oximas da raiz; com isso, aumentamos a rapidez com a qual as aproximacoes convergem
para a raiz.
Para tanto, considere a gura 2.10-(a); a f ormula utilizada para se calcular a
n+1
a partir das
duas ultimas aproxima coes e
a
n+1
= a
n
f(a
n
)
a
n
a
n1
f(a
n
) f(a
n1
)
(2.7)
Na gura 2.10-(b), temos um exemplo de uma situacao que pode surgir: suponha que a
1
tenha
sido calculado atraves da Equa cao (2.1) e que a
2
tenha sido calculado atraves das equa coes (2.3)
ou (2.4). Se, porventura, a
3
e um ponto localizado fora do intervalo original [a, b], ent ao a
3
deve
ser substitudo por a ou b, antes de se calcular a
4
. Particularmente, se a
3
< a, ent ao a
3
a; se
a
3
> b, ent ao a
3
b.
O metodo da posicao falsa, assim modicado tambem conhecido como metodo da secante
apresenta uma taxa de convergencia superior ao do metodo original. Se e a raiz da equacao
f(x) = 0, ent ao
| a
n+1
| < C| a
n
|
t
(2.8)
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 36
Introdu c ao ao Calculo Numerico Razes de Fun coes Nao-Lineares
Figura 2.10: Situa coes possveis no metodo modicado da posi cao falsa.
onde C e uma constante arbitr aria, dependente do problema, e t e
t =
1 +

5
2
1, 61803398875
Exemplo 2.3 Calcule a raiz da fun cao x
3
+ 3x 1 = 0 no intervalo [0, 1], a uma toler ancia de
10
3
.
Solucao: Calcule a
1
= 0, 2500 e a
2
= 0, 3100 com as equa coes no metodo da posicao falsa original.
Apos, calcule
a
3
= a
2
f(a
2
)
a
2
a
1
f(a
2
) f(a
1
)
=
= 0, 3100 + 0, 0400
0, 3100 0, 2500
0, 040 + 0, 234
= 0, 3223
ou seja, com apenas tres aproxima coes, obtivemos resultado equivalente ao obtido anteriormente.
2.3.2 Analise do erro
Considerando o erro na n-esima iteracao,
e
n
= x
n
r
e assumindo que f

e contnua e r e uma raiz simples de f (i.e., r n ao e raiz simult anea de f e de


f

), substitumos a expressao acima na Equa cao (2.7):


e
n+1
= x
n+1
r =
f(x
n
)x
n1
f(x
n1
)x
n
f(x
n
) f(x
n1
)
r =
=
f(x
n
)e
n1
f(x
n1
)e
n
f(x
n
) f(x
n1
)
Fatorando e
n
e
n1
e multiplicando por
xnxn1
xnxn1
, vem
e
n+1
=

x
n
x
n1
f(x
n
) f(x
n1
)

f(xn)
en

f(xn1)
en1
x
n
x
n1

e
n
e
n1
Pelo teorema de Taylor, temos
f(x
n
) = f(r + e
n
) = f(r) + e
n
f

(r) +
1
2
e
2
n
f

(r) + O(e
3
n
)
e, como f(r) = 0,
f(x
n
)
e
n
= f

(r) +
1
2
e
n
f

(r) + O(e
2
n
)
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 37
Introdu c ao ao Calculo Numerico Razes de Fun coes Nao-Lineares
Escrevendo de forma similar para a (n 1)-esima iteracao:
f(x
n1
)
e
n1
= f

(r) +
1
2
e
n1
f

(r) + O(e
2
n1
)
Subtraindo ambas as equa coes, temos
f(x
n
)
e
n

f(x
n1
)
e
n1
=
1
2
(e
n
e
n1
)f

(r) + O(e
2
n1
)
ou, como x
n
x
n1
= e
n
e
n1
(pela denicao de e
n
),
f(xn)
en

f(xn1)
en1
x
n
x
n1

1
2
f

(r)
Agora, pela deni cao da derivada em termos do limite, podemos escrever
x
n
x
n1
f(x
n
) f(x
n1
)

1
f

(r)
de onde
e
n+1

1
2
f

(r)
f

(r)
e
n
e
n1
= Ce
n
e
n1
(2.9)
A Equa cao (2.9) nos diz que o erro e
n+1
e proporcional ao produto dos dois erros anteriores;
possivelmente, para x
n
e x
n1
pr oximos de r, ent ao a taxa de convergencia sera de ordem quase
quadr atica.
2.4 Metodo de Newton-Raphson
O metodo de Newton e um procedimento generico que pode ser aplicado em in umeras situa coes.
Quando temos como problema buscar o zero de uma fun cao real, ele e chamado de metodo de
Newton-Raphson.
Dada ent ao uma aproxima cao x
0
para a raiz, o metodo de Newton-Raphson determina uma
nova aproximacao, x
1
, como a interseccao da reta tangente a f(x
0
) com o eixo dos x, conforme
mostrado na gura 2.11.
Seja entao a reta tangente dada por y = mx+b, a qual passa pelos pontos (x
0
, f(x
0
)) e (x
1
, 0).
Assim, para o ponto (x
1
, 0), pode-se escrever
b = mx
1
(2.10)
e, para o ponto (x
0
, f(x
0
)),
f(x
0
) = mx
0
mx
1
x
1
= x
0

f(x
0
)
m
(2.11)
onde m e o coeciente angular da reta. Esse coeciente pode ser determinado considerando um
outro ponto (x
0
+ h, f(x
0
+ h)), h 0, e calculando a reta (secante) que passa pelos pontos
(x
0
, f(x
0
)) e (x
0
+ h, f(x
0
+ h)); da, o coeciente angular dessa reta e dado por
m =
f(x
0
+ h) f(x
0
)
h
. (2.12)
Note que, para h sucientemente pequeno, pela denicao da derivada de f(x),
f

(x) = lim
h>0
f(x + h) f(x)
h
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 38
Introdu c ao ao Calculo Numerico Razes de Fun coes Nao-Lineares
Figura 2.11: O metodo de Newton-Raphson - interpreta cao geometrica.
vemos que o coeciente angular da reta tangente e a pr opria derivada f

(x
0
) (desde que f

(x)
exista e seja contnua). Assim, podemos escrever (2.11) como
x
1
= x
0

f(x
0
)
f

(x
0
)
(2.13)
e, generalizando para uma estimativa x
k
,
x
k+1
= x
k

f(x
k
)
f

(x
k
)
, k = 0, 1, . . . (2.14)
a qual e a equacao governante do metodo de Newton-Raphson. O metodo de Newton-Raphson
pode ser expresso de forma algortmica como segue:
Algoritmo 2.4.1 Newton-Raphson
proc newton raphson(input: x
0
, , , k
max
; output: x
k+1
, k)
for k = 0, 1, . . . , k
max
do
x
k+1
x
k

f(x
k
)
f

(x
k
)
if | x
k+1
x
k
| < OR | f(x
k+1
) | < then
break
endif
endfor
endproc
Uma outra forma de se obter a equa cao (2.14) e atraves de uma expans ao de Taylor em torno
de uma raiz r. Supondo que x e uma aproximacao para r, pelo teorema de Taylor, se f

existe e
e contnua, ent ao
f(r) = 0
f(x + h) = 0
f(x) + hf

(x) + O(h
2
) = 0
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 39
Introdu c ao ao Calculo Numerico Razes de Fun coes Nao-Lineares
onde h = r x. Se h e pequeno, i.e., x esta pr oximo de r, ent ao os termos de ordem igual ou
superior a O(h
2
) podem ser descartados, e podemos escrever h como
h =
f(x)
f

(x)
(2.15)
Logo, se quisermos corrigir x de forma a aproxim a-lo de r, ent ao x + h = x
f(x)
f

(x)
e uma
aproxima cao melhor.
O metodo de Newton-Raphson, no entanto, pode apresentar problemas, dependendo da natu-
reza da fun cao e da estimativa inicial utilizada. Suponha, por exemplo, a gura 2.12. Se x
1
n ao
for tomado sucientemente proximo de r, ent ao a seq uencia x
n
divergir a.
Figura 2.12: Um caso em que a seq uencia x
n
gerada pelo metodo de Newton-Raphson diverge.
A aplica cao do metodo de Newton exige um certo cuidado, pois existem algumas situa coes que
podem comprometer o sucesso da sua utilizacao. Uma situa cao cujo risco e bastante obvio e a
possibilidade de ocorrer divis ao por zero na f ormula iterativa quando f

(x
i
) = 0. Um bom algo-
ritmo deve checar esta possibilidade, mas e bem possvel que quando f

(x
i
) esta sucientemente
pr oxima de zero, x
i
seja uma aproximacao aceitavel da raiz da equacao f(x) = 0. Esta situa cao
motiva uma discussao sobre a velocidade de convergencia do metodo de Newton.
Se x e uma raiz simples de f(x) = 0, o metodo converge rapidamente e o n umero de casas
decimais exatas praticamente dobra a cada itera cao. Por outro lado, se x e uma raiz m ultipla, o
erro em cada aproxima cao sucessiva e uma fra cao do erro anterior. Isto e causado pela ordem de
aproxima cao do metodo, que n ao e a mesma para os dois casos.
2.4.1 Analise do erro
Considerando o erro na n-esima iteracao,
e
n
= x
n
r
e assumindo que f

e contnua e r e uma raiz simples de f (i.e., r n ao e raiz simult anea de f e de


f

), substitumos a expressao acima na Equa cao (2.14):


e
n+1
= x
n+1
r = x
n

f(x
n
)
f

(x
n
)
r
= e
n

f(x
n
)
f

(x
n
)
=
e
n
f

(x
n
) f(x
n
)
f

(x
n
)
Pelo teorema de Taylor, temos
0 = f(r) = f(x
n
e
n
) = f(x
n
) e
n
f

(x
n
) +
1
2
e
2
n
f

(
n
)
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 40
Introdu c ao ao Calculo Numerico Razes de Fun coes Nao-Lineares
onde x
n

n
r. Da, podemos escrever
e
n
f

(x
n
) f(x
n
) =
1
2
f

(
n
)e
2
n
de onde
e
n+1
=
1
2
f

(
n
)
f

(
n
)
e
2
n

1
2
f

(r)
f

(r)
e
2
n
= Ce
2
n
(2.16)
Com base na equacao acima, podemos dizer que, se x
n
e uma aproximacao sucientemente
pr oxima de r, ent ao o erro em uma iteracao do metodo de Newton-Raphson decresce de forma
proporcional ao quadrado do erro na itera cao anterior.
Conforme mencionado acima, o metodo de Newton pode apresentar problemas, como o caso da
divis ao por zero. Entretanto, existem outras diculdades que nao sao t ao facilmente identicaveis.
`
As vezes, ao inves de as itera coes convergirem, elas oscilam para frente e para tras. Isto acontece
quando n ao existem razes reais (gura 2.13), quando existe simetria em f(x) em torno do ponto x
(gura 2.14), ou quando a aproxima cao inicial x
0
esta t ao longe da raiz correta que alguma outra
parte da fun cao acaba interferindo no processo iterativo (gura 2.15).
Um fator importante para a convergencia no metodo de Newton e a escolha do ponto inicial.
Dado um intervalo I = [a, b], se f(a)f

(a) > 0, x
0
= a; se f(b)f

(b) > 0, x
0
= b. Caso contr ario,
x
0
=
a+b
2
.
Exemplo 2.4 Considere o polin omio p (x) = x
3
5x
2
+ 8x 4. Calcule duas razes utilizando o
metodo de Newton-Raphson.
Solu cao: A f ormula iterativa neste caso e
x
i+1
= x
i

x
3
i
5x
2
i
+ 8x
i
4
3x
2
i
10x
i
+ 8
.
Tomando x
0
= 0, obtemos os valores mostrados na tabela 2.1.
i x
i
0 0
1 0,5
2 0,8
3 0,95
4 0,995652174
5 0,999962679
6 0,999999998
7 1,0
Tabela 2.1: Valores aproximados da solu cao pelo metodo de Newton-Raphson.
Para calcular a raiz seguinte, parte-se de x
0
= 1, 75, com o qual obtemos os valores mostrados
na tabela 2.2.
Quest ao: Por que raz ao a convergencia para a segunda raiz e mais lenta?
O metodo de Newton pode ser aplicado de maneira um pouco diferente quando a funcao f(x)
e um polin omio, conforme veremos no captulo 3.
2.5 Deriva cao numerica
No metodo de Newton, e necessario utilizar o valor de f

(x
n
) a m de se calcular a nova estimativa
x
n+1
. No entanto, avaliar f

pode ser oneroso (a menos que f seja um polinomio) e, por isso, ` as


vezes recorre-se a uma aproxima cao numerica de f

.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 41
Introdu c ao ao Calculo Numerico Razes de Fun coes Nao-Lineares
Figura 2.13: Ausencia de razes reais
Figura 2.14: Segunda derivada f

(x

) = 0.
Figura 2.15: Dist ancia inadequada entre x
0
e x

.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 42
Introdu c ao ao Calculo Numerico Razes de Fun coes Nao-Lineares
i x
i
0 1,75
1 1,9
2 1,952941176
3 1,977066274
4 1,988669318
5 1,994367280
6 1,997191745
.
.
.
16 1,999999956
17 1,999999956
Tabela 2.2: Valores aproximados da solu cao pelo metodo de Newton-Raphson.
Considere a deni cao da derivada de f(x) em termos do limite,
f

(x)
f(x + h) f(x)
h
(2.17)
Se f e linear (f(x) = ax+b), ent ao a Equa cao (2.17) e exata, i.e., para qualquer h = 0, ela nos d a
o valor correto de f

(x). Se f(x) n ao for linear, somente em casos muito especiais ela ser a exata;
logo, h a um erro envolvido nessa aproxima cao, o qual pode ser mensurado usando o teorema de
Taylor:
f(x + h) = f(x) + hf

(x) +
h
2
2
f

() (2.18)
onde x < < x + h; f e f

sao contnuas em [x, x + h] e f

e contnua em (x, x + h). Se


rearranjarmos os termos da Equa cao (2.18), obtemos
f

(x) =
f(x + h) f(x)
h

h
2
f

() (2.19)
a qual e muito mais util, pois contem um termo
h
2
f

() que representa o erro na aproxima cao


da derivada. Dependendo de quanto vale h, o erro tender a mais ou menos rapidamente para zero.
Exemplo 2.5 Calcule a derivada de cos x em x = /4, usando a Equa cao (2.17), com h = 0, 01.
Qual o erro na aproxima cao?
Solucao: Em uma HP-48SX, temos
f

(x)
f(x + h) f(x)
h
=
0, 70000047618 0, 707106781186
0, 01
= 0, 007106305006
O erro pode ser estimado como
|
h
2
f

() | = 0, 005| cos | 0, 005


Como /4 < < /4 + h, temos | cos | < 0, 707106781186, de onde obtemos um limitante mais
correto para o erro como 0, 0005 0, 707106781186 = 0, 00353553391.
Se compararmos com o valor de f

(/4) = sen

4
= 0, 70710678119 em x = /4, teremos
que o erro absoluto e
| 0, 70710678119 (0, 7106305006) | = 0, 00352371941
o que conrma a nossa estimativa para o erro usando |
h
2
f

() |.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 43
Introdu c ao ao Calculo Numerico Razes de Fun coes Nao-Lineares

E obvio que, para utilizarmos a Equa cao (2.17), h deve ser pequeno o suciente. Ora, nessa
equa cao, h a a possibilidade de que ocorra perda de dgitos signicativos ao calcularmos f(x+h)
f(x), se f(x + h) f(x). Por isso, cuidado deve ser tomado ao se efetuar tais calculos.
Existem outras aproxima coes para a derivada de primeira ordem. Suponha, por exemplo, as
duas expans oes de Taylor, para f(x + h) e f(x h):
f(x + h) = f(x) + hf

(x) +
h
2
2
f

(x) +
h
3
6
f

(
1
) (2.20)
f(x h) = f(x) hf

(x) +
h
2
2
f

(x)
h
3
6
f

(
2
) (2.21)
Subtraindo uma equa cao da outra, obtemos
f

(x) =
f(x + h) f(x h)
2h

h
2
12
(f

(
1
) + f

(
2
)) (2.22)
a qual e chamada de aproximacao central para a derivada de primeira ordem, pois x h <
x < x + h. Se assumirmos que f

(x) existe e e contnua em [x h, x + h], podemos dizer


que f

() =
1
2
(f

(
1
) + f

(
2
)), de onde obtemos uma expressao mais simples para o termo
envolvendo o erro,
f

(x) =
f(x + h) f(x h)
2h

h
2
6
f

() (2.23)
Para se aproximar derivadas de segunda ordem, usualmente se utiliza uma aproximacao central.
Expandindo a serie de Taylor nas equacoes (2.20) e (2.21) por um termo a mais, e somando ambas,
obtemos
f

(x) =
f(x + h) 2f(x) + f(x h)
h
2

h
2
12
f
(4)
() (2.24)
para x h < < x + h.
2.5.1 O metodo de Newton-Raphson e as razes complexas de f(x)
O metodo de Newton-Raphson pode ser utilizado para se extrair as razes complexas de uma
fun cao f(x). Para tanto, basta que se utilize aritmetica complexa, tomando cuidado particular
com a codica cao das fun coes.
2.6 Exerccios
Exerccio 2.1 Calcule, atraves do metodo de Newton-Raphson, todas as razes da fun cao (inclu-
sive as razes complexas, se houver) f(x) = e
senx
2 cos 3x, contidas no intervalo [5; 5].
Exerccio 2.2 Calcule a raiz positiva de f(x) =
(x1)
2
x
2 utilizando os metodos:
1. da bisseccao
2. de Newton-Raphson com aproximacao numerica da derivada
3. da secante
Exerccio 2.3 Calcule as intersec coes da curva y = [(x1)
2
][(x+1)
2
]1/2 com o crculo unit ario
centrado na origem, utilizando o metodo da secante.
Exerccio 2.4 Calcule as intersec coes das curvas f = e
1
(x1)
3
e g = (x 3)
3
+ 2, utilizando o
metodo de Newton-Raphson, com aproximacao numerica da derivada.
Exerccio 2.5 Calcular uma raiz negativa da equa cao f(x) = x
4
2x
3
6x
2
+ 2 pelo metodo da
posi c ao falsa.
Exerccio 2.6 Utilize o metodo da secante para encontrar o zero positivo de f(x) = x 2sen(x)
com x
0
= /2 e x
1
= 2/3.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 44
Captulo 3
Calculo de Razes de Polin omios
3.1 Introdu cao
A determina cao de todas, ou de algumas, razes de um polin omio e um problema importante,
o qual tem sido estudado nos ultimos quatro seculos. Assim como a f ormula de Bhaskara para
determina cao de razes de polin omios do segundo grau, existem as formulas de Cardan e de Ferrari
para polin omios de terceiro e de quarto grau, respectivamente. Entretanto, foi provado por Abel,
em 1824, que nao existe nenhuma formula algebrica nita capaz de calcular as razes de um poli-
n omio de grau maior ou igual a 5. A partir da, ate hoje, os metodos para o c alculo das n razes
de um polin omio de grau n sao voltados aos metodos iterativos, que tambem podem ser aplicados
`as equa coes transcendentais
1
.
Os metodos de aproximacoes sucessivas vistos anteriormente bisseccao, cordas e Newton-
Raphson podem ser utilizados para se determinar uma das razes de um polin omio; se quisermos
todas, ent ao e necessario modicar a fun cao polinomial, atraves de deacao, para os metodos da
posi cao falsa e de Newton-Raphson. Se conhecermos os intervalos em que apenas uma raiz est a
contida, ent ao podemos usar o metodo da bisseccao para cada um dos intervalos.
Alem disso, podemos recair no uso de aritmetica complexa, pois mesmo um polinomio com
coecientes reais por exemplo, z
2
+ 1 pode ter apenas razes complexas.
Isso demonstra algumas das diculdades associadas ao calculo das razes de um polin omio.
Vejamos entao alguns resultados te oricos e metodos especcos para o calculo de razes de polin o-
mios.
3.2 Resultados te oricos
Nesta secao, apresentaremos alguns dos teoremas necess arios ao entendimento do problema.
Teorema 3.2.1 Teorema Fundamental da

Algebra: Todo polin omio que n ao seja uma cons-
tante tem ao menos um zero no campo dos n umeros complexos.
Teorema 3.2.2 Teorema do Resto: Se um polin omio p, de grau n 1, e dividido por um fator
z c, entao p(z) = (z c)q(z) + r, onde q(z) e o quociente (de grau n 1) e r e um n umero
complexo. Se z = c, entao p(c) = r.
Teorema 3.2.3 Teorema dos Fatores: Se um polin omio p, de grau n 1, for escrito na forma
p(z) = (z c)q(z) + r, e se c for um zero de p, entao r = 0, de forma que p(z) = (z c)q(z) e
z c e um fator de p.
1
Equacoes transcendentais sao aquelas em que a incognita aparece submetida `a operacao nao algebrica em pelo
menos um termo da funcao. Ex.: f(x) = x + cos(x), f(x) = e
x
2
sen(x)
45
Introdu c ao ao Calculo Numerico Razes de Polin omios
Teorema 3.2.4 Teorema do N umero de Zeros: Um polin omio de grau n tem exatamente n
zeros no campo dos n umeros complexos, considerando a multiplicidade de cada zero.
Teorema 3.2.5 Teorema do Disco contendo todos os Zeros: Todos os zeros de um po-
lin omio p(z) =

n
i=0
a
i
z
i
encontram-se em um disco fechado cujo centro e a origem do plano
complexo e raio
= 1 +
1
| a
n
|
max
0k<n
| a
k
|.
Teorema 3.2.6 Teorema do Disco contendo todos os Zeros Nao-nulos: Se todos os zeros
de um polin omio s(z) = z
n
p(1/z) encontram-se no disco {z : |z| }, entao todos os zeros
nao-nulos de p encontram-se fora do disco {z : |z| <
1

}.
Note que
s(z) = z
n
_
a
n
_
1
z
_
n
+ a
n1
_
1
z
_
n1
+ . . . + a
0
_
= a
n
+ a
n1
z + . . . + a
0
z
n
O polin omio s tem, tambem, grau n e os seus coecientes sao os mesmos de p, apenas em ordem
reversa. Pode-se vericar que, se p(z
0
) = 0, ent ao s(
1
z0
) = 0, para z
0
= 0.
3.3 Enumera cao e localiza cao de razes de polin omios
Dada uma fun cao f(x), diz-se que x e uma raiz ou um zero da equa cao f(x) = 0 se f( x) = 0.
Muitas vezes, n ao se sabe com certeza quais as razes de uma determinada fun cao, mas, atraves de
alguns resultados, e possvel enumera-las. Enumerar as razes de uma fun cao f(x) e dizer quantas
razes ela possui e de que tipo elas sao. Se f(x) e um polin omio de grau n, o teorema fundamental
da

Algebra assegura a existencia de n razes, contando a multiplicidade. Entretanto, responder de
que tipo sao as razes (positivas ou negativas, simples ou m ultiplas), ja n ao e muito f acil. No caso
de fun coes transcendentais, como nao e possvel garantir o n umero de razes, o problema da sua
enumera cao acaba por ser mais difcil. Existem algumas regras que permitem enumerar e localizar
as razes de polin omios, conforme mostrado a seguir.
3.3.1 Regra de Descartes
O Teorema 3.3.1 permite obter o n umero de razes reais positivas para um polin omio real diferente
de zero:
Teorema 3.3.1 Sejam p(z) = a
0
+ a
1
z + . . . + a
n
z
n
um polin omio real (diferente do polin omio
zero), T o n umero de troca de sinais na seq uencia de seus coecientes a
k
nao nulos, e r o n umero
de suas razes reais positivas (cada qual contada com a sua respectiva multiplicidade). Ent ao, T r
e par e nao-negativo.
Prova Ver [7, p ag. 442].
Em outras palavras, a diferen ca entre o n umero de trocas de sinal dos coecientes n ao-nulos do
polin omio e o n umero de razes positivas do mesmo e um n umero par, i.e., T r = 2k (k = 0,
1, . . .). Dessa forma, temos r = T 2k, de onde pode-se vericar que o n umero de razes reais
positivas nunca excede a T.
A mesma regra pode ser aplicada para a enumeracao das razes reais e negativas de p(z),
bastando para isso substituir z por z e, elevando z `as diferentes potencias, obter um novo
polin omio q(z) p(z), cujas razes positivas sao as razes negativas de p(z).
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 46
Introdu c ao ao Calculo Numerico Razes de Polin omios
Exemplo 3.1 Considere p(z) = 3z
3
+z
2
z 1. A seq uencia de sinais para p(z) e + + , de
onde T = 1; logo, como r = T 2k e T r 0, pode-se concluir que existe no m aximo uma raiz
real positiva. Para p(z) = 3z
3
+ z
2
+ z 1, temos T = 2; de maneira similar, conclumos que
o polin omio apresenta ou 2 razes negativas ou nenhuma.
Como o Teorema 3.2.1 nos garante que existem 3 razes para o polin omio em questao, conclui-se
que podem existir:
Uma raiz real positiva e duas razes reais negativas;
Uma raiz real positiva, nenhuma raiz real negativa e duas razes complexas. Lembrando que
as razes complexas de uma equacao polinomial com coecientes reais ocorrem aos pares
conjugados, ent ao, como o n umero m aximo de razes negativas e 2, pode-se concluir que, se
nao houverem razes negativas, ent ao necessariamente existe um par de razes complexas.
Nesse exemplo, as razes s ao: 0, 7356705613 e 0, 5345019474 0, 4091564862i.
Exemplo 3.2 Considere p(z) = z
5
3z
4
2z
3
+ z
2
+ z + 1. A seq uencia de sinais para p(z) e
+ + ++, de onde T = 2; logo, como r = T 2k e T r 0, pode-se concluir que existe no
m aximo duas razes reais positivas. Para p(z) = z
5
3z
4
+ 2z
3
+ z
2
z + 1, temos T = 3; de
maneira similar, conclumos que o polin omio apresenta ou 2 razes negativas ou nenhuma.
Como o Teorema 3.2.1 nos garante que existem 5 razes para o polin omio em questao, conclui-se
que podem existir:
Duas razes reais positivas e tres razes reais negativas;
Duas razes reais positivas, uma raiz real negativa e um par de razes complexas;
Nenhuma raz real positiva, tres razes reais negativas e um par de razes complexas;
Nenhuma raz real positiva, uma raiz real negativa e dois pares de razes complexas.
Nesse exemplo, as razes s ao: 3, 463105585; 0, 8828320726; 0, 8675771482 e 0, 2391802550
0, 5666074100i.
3.3.2 Regra de Du Gua
Seja a equacao polinomial p(z) = a
n
z
n
+ a
1
z
n1
+ . . . + a
0
= 0 de grau n sem razes nulas. Se,
para algum k, 1 k < n, tem-se a
2
k
a
k+1
a
k1
, ent ao p(z) tem razes complexas.
3.3.3 Regra da lacuna
A regra da lacuna pode ser expressa como segue:
1. Se os coecientes de p(z) sao todos reais e para algum k, 1 k < n, tem-se a
k
= 0 e
a
k1
a
k+1
> 0, ent ao p(z) ter a razes complexas;
2. Se os coecientes s ao todos reais e existem dois ou mais coecientes nulos sucessivos, entao
p(z) = 0 tem razes complexas.
Exemplo 3.3 Considere p(z) = 2z
5
+ 3z
4
+ z
3
+ 2z
2
5z + 3. Para p(z), o n umero de trocas
e T = 2, o que implica, pela regra de Descartes, que p(z) tem duas ou zero razes reais positivas.
Para p(z), o n umero de trocas e T = 3, o que implica que p(z) tem tres ou uma raiz real negativa.
Testando a desigualdade a
2
k
a
k+1
a
k1
para os coecientes de p(z) = 0, tem-se que para
k = 2, a
2
2
a
3
a
1
, ou seja, 1 3 2. Logo, a regra de Du Gua garante a existencia de razes
complexas para p(z).
Neste exemplo, a regra da lacuna nada arma sobre a existencia de razes complexas, pois as
condicoes necess arias n ao sao satisfeitas.
Ate aqui, as tres regras discutidas n ao permitem a determina cao da localiza cao das razes.
Para estimar o m odulo de todas as razes de um polin omio real p(z), existem as cotas de Laguerre-
Thibault, de Fujiwara, de Kojima e de Cauchy.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 47
Introdu c ao ao Calculo Numerico Razes de Polin omios
3.3.4 Cota de Laguerre-Thibault
Dado um polin omio p(z) = 0, de coecientes reais, faz-se a divisao de p(z) por z 1, z 2 e assim
sucessivamente, ate z m, onde q(z) tenha todos os coecientes positivos ou nulos, assim como
r > 0; tal m e chamado de cota superior das razes reais de p(z) = 0. Para determinar a cota
inferior, basta fazer o mesmo procedimento para p(z).
3.3.5 Cota de Fujiwara
Seja x uma raiz real ou complexa de p(z) = a
n
z
n
+ a
n1
z
n1
+ . . . + a
1
z + a
0
= 0. Ent ao,
| z | 2 max
_

a
n1
a
n

a
n2
a
n

1
2
, . . . ,

a
1
a
n

1
n1
,

a
0
a
n

1
n
_
.
Exemplo 3.4 Determinar a regi ao do plano onde se encontram as razes de p(z) = z
4
14z
2
+
24z 10.
A express ao para a cota de Fujiwara ca:
| z | 2 max
_
0, 14
1
2
, 24
1
3
, 10
1
4
_
2 3, 74 = 7, 48
3.3.6 Cota de Kojima
Dado o polin omio p(z) = a
n
z
n
+a
n1
z
n1
+. . .+a
1
z +a
0
, toda a raiz z, real ou complexa, satisfaz
| z | q
1
+ q
2
onde q
1
e q
2
sao os dois maiores valores de
_

a
i
a
n

1
i
_
, i = n 1, n 2, . . . , 0,
Exemplo 3.5 Seja p(z) = z
5
+ z
4
9z
3
z
2
+ 20z 12. Calculando os valores de
_
| a
i
/a
0
|
1
i
_
para i = 4, 3, 2, 1, 0, obtem-se o conjunto {1; 3; 1; 2, 114742527; 1, 643751829}, de onde se conclui
que q
1
= 3 e q
2
= 2, 114742527. Logo, toda raiz z deve satisfazer | z | < 5, 114742527.
3.3.7 Cota de Cauchy
Toda raiz z, real ou complexa, de um polin omio real p(z) satisfaz
| z | < ,
onde
= lim
i
z
i
, com z
0
= 0,
e
z
k
=
_

a
n1
a
n

z
n1
k1
+

a
n2
a
n

z
n2
k1
+ . . . +

a
1
a
n

z
k1
+

a
0
a
n

_1
n
, k = 0, 1, . . .
Exemplo 3.6 Estimar a localiza cao das razes para p(z) = z
3
+ 2z
2
3z 5.
Utilizando a cota de Cauchy, tem-se que
z
0
= 0, z
k+1
=
_
2z
2
i
+ 3z
i
+ 5
_1
3
,
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 48
Introdu c ao ao Calculo Numerico Razes de Polin omios
de forma que as itera coes resultam
z
0
= 0, 0
z
1
= 1, 709975
z
2
= 2, 518686
z
3
= 2, 933484
z
4
= 3, 141756
.
.
.
z
14
= 3, 344014
z
15
= 3, 344095
Logo, | z | 3, 34.
3.4 Metodo de Newton-Viete
O metodo de Newton-Viete e o metodo de Newton especco para polin omios, onde o polin omio
p(z) e a sua derivada p

(z) sao expressos na forma aninhada, ou seja, como


p(z) = a
0
+ z(a
1
+ z(a
2
+ . . . + z(a
n
))) . . .)
Nesse caso, a derivada pode ser expressa como
p

(z) = a
1
+ z(2a
2
+ z(3a
3
+ . . . + z(na
n
))) . . .)
de onde a f ormula de itera cao pode ser escrita como
z
k+1
= z
k

a
0
+ z(a
1
+ z(a
2
+ . . . + z(a
n
))) . . .)
a
1
+ z(2a
2
+ z(3a
3
+ . . . + z(na
n
))) . . .)
, k = 0, 1, . . . (3.1)
O exemplo a seguir ilustra o funcionamento do metodo.
Exemplo 3.7 Encontrar todas as razes de p(z) = z
3
+2z
2
3z 5. Antes de aplicar o algoritmo
de Newton-Viete, e conveniente fazer a enumeracao, a localizacao e a separacao das razes de
p(z).
Enumera cao: 1. A regra de Descartes fornece:
para p(z) : + + T = 1;
para p(z) : + + T = 2.
2. A regra da lacuna nao pode ser aplicada;
3. A regra de Du Gua nada arma.
Conclui-se ent ao que p(z) tem exatamente uma raiz real positiva. As outras duas s ao ambas
reais negativas ou ambas complexas.
Localizacao: A cota de Cauchy e aplicada a partir de
z
0
= 0 e z
k+1
=
_
2z
2
k
+ 3x
k
+ 5
_1
3
, para k = 0, 1, . . . ,
o que resulta
z
1
= 1, 71
z
2
= 2, 52
z
3
= 2, 93
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 49
Introdu c ao ao Calculo Numerico Razes de Polin omios
z
4
= 3, 14
z
5
= 3, 24
z
6
= 3, 29
z
7
= 3, 32
z
8
= 3, 33
z
9
= 3, 34
z
10
= 3, 34
Pode-se dizer que as razes de p(z) pertencem `a regi ao | z | 3, 34.
Separa cao: Sabendo que as razes de p(z) estao todas compreendidas na regi ao | z | 3, 34 < 4,
constroi-se a seguinte tabela:
z -4 -3 -2 -1 0 1 2 3 4
p(z) -25 -5 1 -1 -5 -5 5 31 79
De acordo com a tabela, a raiz real positiva est a entre 1 e 2; as razes reais negativas est ao
entre 3 e 2 e entre 2 e 1.
Calculo das razes: As tres tabelas a seguir mostram os valores das aproxima coes das razes de
p(z). Na primeira, z
0
= 2, na segunda, z
0
= 1, 5 e na terceira, z
0
= 1, 5. Logo, as tres
razes de p(z) s ao z
1
= 2, 377202854, z
2
= 1, 273890555 e z
3
= 1, 651093409.
i z
i
p(z
i
)
0 -2 1
1 -3 -5
2 -2,58333333333 -1,14293981478
3 -2,41242644514 -1,629606481E-01
4 -2,3785447672 -5,97333456E-03
5 -2,37720492776 -9,21691E-06
6 -2,37720285398 -3E-11
7 -2,37720285397
i z
i
p(z
i
)
0 -1,5 0,625
1 -1,22222222222 -1,7146776407E-01
2 -1,27254428341 -4,34794747E-03
3 -1,27388953494 -3,29179E-06
4 -1,27389055496 -2E-11
5 -1,27389055497
i z
i
p(z
i
)
0 1,5 -1,625
1 1,66666666667 1,8518518523E-01
2 1,6512345679 1,66337255E-03
3 1,65109342069 1,3849E-07
4 1,65109340894 4E-11
5 1,65109340894
O metodo de Newton-Viete pode ser utilizado de forma mais eciente se zermos uso do metodo
de Horner, o qual ser a descrito a seguir.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 50
Introdu c ao ao Calculo Numerico Razes de Polin omios
3.5 Metodo de Horner
O metodo de Horner, tambem conhecido como multiplica cao aninhada, pode ser utilizado n ao so
para se avaliar um polin omio de forma mais eciente e estavel (do ponto de vista numerico), mas
tambem para:
1. Calcular o quociente e o resto de um polin omio dividido por um fator z c;
2. Dea cao de um polin omio;
3. Calcular a expans ao de Taylor de um polin omio em torno de um ponto.
Vejamos entao como proceder a cada um dos calculos acima.
3.5.1 Calculo do quociente e do resto
Seja p(z) = a
0
+ a
1
z + . . . + a
n
z
n
, e z
0
um dado n umero. Ent ao, se escrevermos
p(z) = (z z
0
)q(z) + p(z
0
) (3.2)
temos, pelo Teorema do Resto, que q(z) e um polin omio de grau n 1. Esse polin omio pode ser
escrito como
q(z) = b
0
+ b
1
z + . . . + b
n1
z
n1
Isolando q(z) na Equa cao (3.2), e substituindo as express oes para p(z) e q(z), podemos igualar os
coecientes das potencias de mesma ordem, de tal forma que obtemos:
b
n1
= a
n
b
n2
= a
n1
+ z
0
b
n1
.
.
.
b
0
= a
1
+ z
0
b
1
p(z
0
) = a
0
+ z
0
b
0
ou, em forma compacta, podemos escrever
b
k1
= a
k
+ z
0
b
k
, k = n 1, n 2, . . . , 0
Um dispositivo que facilita o c alculo dos termos b
k
e o seguinte:
a
n
a
n1
a
n2
. . . a
0
z
0
z
0
b
n1
z
0
b
n2
. . . z
0
b
0
+
b
n1
b
n2
b
n3
. . . p(z
0
)
Tabela 3.1: Dispositivo para determinar os coecientes do polinomio quociente e o resto; os
elementos na ultima linha contem os coecientes do quociente, bem como o resto, usando como
fator z z
0
.
Esse dispositivo pode ser expresso, tambem, na forma de um algoritmo, chamado de algoritmo
parcial de Horner, como segue:
Algoritmo 3.5.1 Horner parcial
proc horner parcial(input: n, [a
0
, a
1
, . . . , a
n
], z
0
; output: [b
1
, b
0
, b
1
, . . . , b
n1
])
b
n1
a
n
for k = n 1, n 2, . . . , 0 do
b
k1
a
k
+ z
0
b
k
endfor
endproc
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 51
Introdu c ao ao Calculo Numerico Razes de Polin omios
Note que, ao nal do algoritmo, b
1
contem o valor de p(z
0
). O exemplo a seguir ilustra o uso
do procedimento.
Exemplo 3.8 Se p(z) = z
4
4z
3
+ 7z
2
5z 2, calcule p(3).
Solu cao: Usando o dispositivo mostrado na Tabela 3.1, temos, para z
0
= 3:
1 4 7 5 2
3 3 3 12 21 +
1 1 4 7 19
De onde podemos dizer que p(3) = 19 e, ainda, podemos escrever
p(z) = (z 3)(z
3
z
2
+ 4z + 7) + 19
onde z
3
z
2
+ 4z + 7 q(z) e r = 19.
Exemplo 3.9 O dispositivo de Horner pode ser usado para se determinar a cota de Laguerre-
Thibault (3.3.4). Considere o polin omio p(z) = z
3
3z
2
34z + 120; nesse caso, ao se dividir
p(z) por z 1, z 2, . . ., z 7, obtem-se polinomios q(z) com coecientes negativos. Porem, ao
divid-lo por z 8, temos
1 3 34 120
8 8 40 48 +
1 5 6 168
Pode-se vericar que q(z) tem coecientes todos positivos e, assim, 8 e uma cota superior para as
razes positivas de p(z). Com efeito, a p(z) tem como razes 6, 4 e 5.
3.5.2 Deacao de um polin omio
O dispositivo mostrado na subsecao anterior pode ser usado para se remover um fator linear do
polin omio, o que se chama de deac ao.
Para tanto, basta que z
0
seja tomado como um dos zeros do polinomio; nesse caso, z z
0
e
um dos fatores do polin omio (e vice-versa). Os restantes n 1 zeros de p sao os n 1 zeros do
polin omio
p
zz0
. Vejamos o exemplo a seguir:
Exemplo 3.10 Se p(z) = z
4
4z
3
+7z
2
5z 2 e 2 e um de seus zeros, deacione-o adequada-
mente.
Solu cao: Usando o dispositivo mostrado na Tabela 3.1, temos, para z
0
= 2:
1 4 7 5 2
2 2 4 6 2 +
1 2 3 1 0
De onde podemos dizer que p(2) = 0 conforme esperado e
z
4
4z
3
+ 7z
2
5z 2 = (z 2)(z
3
2z
2
+ 3z + 1)
e o resto e 0. As tres razes restantes de p devem ser extradas do polinomio q(z) = z
3
2z
2
+3z+1.
3.5.3 Calcular a expansao de Taylor de um polin omio
Seja
p(z) = a
n
z
n
+ a
n1
z
n1
+ . . . + a
2
z
2
+ a
1
z + a
0
e suponha que se desejam obter os coecientes c
k
na equacao
p(z) = a
n
z
n
+ a
n1
z
n1
+ . . . + a
0
= c
n
(z z
0
)
n
+ c
n1
(z z
0
)
n1
+ . . . + c
0
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 52
Introdu c ao ao Calculo Numerico Razes de Polin omios
i.e., os coecientes da expans ao de Taylor em torno de z
0
.

E sabido, obviamente, que esses
coecientes sao na forma c
k
= p
(k)
(z
0
)/k!, mas podemos obte-los de forma mais eciente usando
o dispositivo de Horner.
Veja que, ao aplicar o dispositivo, obtemos tanto
p(z
0
) c
0
como
q(z) =
p(z) p(z
0
)
z z
0
= c
n
(z z
0
)
n1
+ c
n1
(z z
0
)
n2
+ . . . + c
1
o que mostra que c
1
pode ser obtido aplicando o dispositivo de Horner ao polin omio q(z
0
), pois
c
1
q(z
0
). Pela aplicacao sucessiva do dispositivo de Horner aos polin omios quocientes, de graus
n 1, n 2, . . ., 1, podemos obter todos os coecientes da expans ao de Taylor, conforme vemos
no exemplo abaixo:
Exemplo 3.11 Se p(z) = z
4
4z
3
+ 7z
2
5z 2, obtenha a expansao de Taylor em torno de 3.
Solu cao: Usando o dispositivo mostrado na Tabela 3.1, temos, para z
0
= 3:
1 4 7 5 2
3 3 3 12 21 +
1 1 4 7 19
3 3 6 30 +
1 2 10 37
3 3 15 +
1 5 25
3 3 +
1 8
Podemos, ent ao, escrever a expansao de Taylor de p(z) em torno de 3 como
p(z) = (z 3)
4
+ 8(z 3)
3
+ 25(z 3)
2
+ 37(z 3) + 19,
Esse processo e chamado de algoritmo completo de Horner, o qual pode ser expresso da seguinte
forma:
Algoritmo 3.5.2 Horner completo
proc horner completo(input: n, [a
0
, a
1
, . . . , a
n
], z
0
; output: [a
0
, a
1
, . . . , a
n
])
for k = 0, 1, . . . , n 1 do
for j = n 1, n 2 . . . , 0 do
a
j
a
j
+ z
0
a
j+1
endfor
endfor
endproc
3.5.3.1 O metodo de Horner e sua rela cao com a derivada de p(z)
Note que, a cada aplica cao do algoritmo parcial de Horner, obtem-se um polinomio q(z) e um
resto r. Chamemos, agora, de q
i
(z) e r
i
aos quociente e resto obtidos na i-esima aplicacao do
algoritmo.
Se p(z) = a
n
z
n
+ a
n1
z
n1
+ . . . + a
1
z + a
0
, e z
0
e um n umero, ent ao ap os uma aplica cao do
algoritmo parcial de Horner, temos, conforme j a visto,
q
1
(z) = a
n
z
n1
+
(a
n1
+ z
0
a
n
)z
n2
+
(a
n2
+ z
0
(a
n1
+ z
0
a
n
)) z
n2
+
(a
n3
+ z
0
(a
n2
+ z
0
(a
n1
+ z
0
a
n
))) z
n3
+ . . .
r
1
= a
0
+ z
0
(a
1
+ z
0
(a
2
+ z
0
(a
3
+ z
0
a
4
)))
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 53
Introdu c ao ao Calculo Numerico Razes de Polin omios
onde q
1
(z) tem n termos envolvendo a
n
e, pela deni cao do algoritmo, r
1
p(z
0
). Mas quem e
q
1
(z)? O polin omio quociente nada mais e do que o valor da derivada de p, avaliada em z = z
0
.
Isto pode ser visto se igualarmos os coecientes de mesma potencia da derivada p

(z
0
) e q
1
(z
0
):
_
z
n1
0

: na
n
=

n
i=1
a
n
= na
n
_
z
n2
0

: (n 1)a
n1
=

n1
i=1
a
n1
= (n 1)a
n1
.
.
.
_
z
2
0

: 3a
3
=

3
i=1
a
3
= 3a
3
[z
0
] : 2a
2
=

2
i=1
a
2
= 2a
2
a
1
=

1
i=1
a
1
= a
1
pois existem n termos envolvendo a
n
, n 1 termos envolvendo a
n1
, e assim por diante. Alem
disso, no i-esimo termo, existem i produtos envolvendo z
0
, o que equivale a z
i
0
.
Agora, note que se aplicarmos mais uma vez o algoritmo parcial de Horner, sobre q
1
(z), obte-
remos q
2
(z)
2
e r
2
p

(z
0
), por analogia. Dessa forma, podemos, aplicando sucessivamente duas
vezes o algoritmo parcial de Horner, obter p(z
0
) e p

(z
0
), de forma bastante economica e simples.
Isso nos leva a obter uma vers ao modicada do metodo de Newton-Raphson para o calculo de
uma raiz de um polin omio, conforme descrito a seguir.
3.5.3.2 O metodo de Newton-Raphson usado em conjunto com o algoritmo parcial
de Horner
O metodo de Newton-Raphson, para se determinar uma raiz de um polin omio, p(z) = 0, pode ser
expresso por
z
k+1
= z
k

p(z
k
)
p

(z
k
)
, k = 1, 2, . . .
onde z
1
e uma estimativa inicial para a raiz. Ora, como a cada iteracao precisamos avaliar p e p

no
mesmo ponto z
k
, e conveniente que combinemos a correcao da estimativa z
k
com duas aplica coes
do algoritmo parcial de Horner, usando z
0
= z
k
.
Os algoritmos a seguir ilustram como combinar de forma efetiva os dois processos:
Algoritmo 3.5.3 p(x) e p

(x) via Horner parcial


proc horner parcial 2(input: n, [a
0
, a
1
, . . . , a
n
], z
0
; output: , )
a
n
0
for k = n 1, n 2, . . . , 0 do
+ z
0

a
k
+ z
0

endfor
endproc
2
Note que q
2
(z) sera equivalente a p

(z
0
) quando avaliarmos q
2
(z
0
).
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 54
Introdu c ao ao Calculo Numerico Razes de Polin omios
Figura 3.1: Gr aco de p(z) = z
4
4z
3
+ 7z
2
5z 2 no intervalo [1, 1].
Algoritmo 3.5.4 Newton-Raphson para polinomios
proc newton raphson polin omio(input: n, [a
0
, a
1
, . . . , a
n
], z, , , k
max
;
output: z, k)
z
0
z
call horner parcial 2(n, [a
0
, a
1
, . . . , a
n
], z
0
; , )
for k = 1, 2, . . . , k
max
do
z z
0

if | z z
0
| < OR | | < then
break
endif
z
0
z
call horner parcial 2(n, [a
0
, a
1
, . . . , a
n
], z
0
; , )
endfor
endproc
Note que e , ap os a execu cao do algoritmo horner parcial 2, contem os valores de p(z
0
) e
p

(z
0
). O exemplo abaixo mostra como proceder usando esses dois algoritmos em um problema
tpico:
Exemplo 3.12 Para p(z) = z
4
4z
3
+ 7z
2
5z 2, calcule uma raiz de p(z) = 0, usando como
estimativa inicial z
1
= 0.
Solu cao: A Figura 3.1 mostra o gr aco do polinomio no intervalo [1, 1]. Executando o algoritmo
newton raphson polinomio, obtemos a seguinte seq uencia de valores:
k p(z
k
) p

(z
k
) z
k
1 2, 00000 5, 00000 0, 40000
2 1, 40160 12, 77600 0, 29029
3 1, 46322 10, 17322 0, 27591
4 0, 00226 9, 86030 0, 27568
5 0, 00000 9, 85537 0, 27568
os quais convergem rapidamente para a raiz 0, 27568 naquele intervalo.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 55
Introdu c ao ao Calculo Numerico Razes de Polin omios
3.6 Razes complexas de equa coes polinomiais
A cada par de razes complexas conjugadas de um polin omio com coecientes reais p(z) = a
n
z
n
+
a
n1
z
n1
+. . . +a
1
z +a
0
esta associado um fator quadr atico de p(z) da forma z
2
z , onde
, IR. Se R = a b i e uma raiz de p(z), ent ao = 2a e = (a
2
+ b
2
). De maneira geral,
p(z) pode ser escrito como
p(z) = (z
2
z )q(z) + b
1
(z ) + b
0
, (3.3)
onde os termos b
1
(z ) +b
0
sao o resto da divisao de p(z) por z
2
z e q(z) e um polin omio
de grau n 2 que pode ser representado por
q(z) = b
n
z
n2
+ b
n1
z
n3
+ . . . + b
4
z
2
+ b
3
z + b
2
, (3.4)
Desta forma, p(z) ca
p(z) = (z
2
z )(b
n
z
n2
+ b
n1
z
n3
+ . . . + b
3
z + b
2
) + b
1
(z ) + b
0
(3.5)
e os termos podem ser expandidos de maneira que
p(z) = b
n
z
n
+ (b
n1
b
n
)z
n1
+ (b
n2
b
n1
b
n
)z
n2
+ . . . (3.6)
+ (b
k
b
k+1
b
k+2
)z
k
+ . . . + (b
1
b
2
b
3
)z + b
0
b
1
b
2
, (3.7)
Comparando a equacao acima com p(z) = a
n
z
n
+ a
n1
z
n1
+ . . . + a
1
z + a
0
, chega-se `as
f ormulas recursivas para o calculo dos coecientes b
k
de q(z):
b
n
= a
n
b
n1
= a
n1
+ b
n
(3.8)
b
k
= a
k
+ b
k+1
+ b
k+2
para k = n 2, n 3, . . . , 1, 0,
O calculo destes coecientes tambem pode ser expresso na forma de uma tabela, semelhante
ao visto anteriormente no metodo de Horner: O exemplo a seguir ilustra o procedimento.
a
n
a
n1
a
n2
a
n3
a
k
a
2
a
1
a
0
b
n
b
n1
b
k+2
b
4
b
3
b
2
b
n
b
n1
b
n2
b
k+1
b
3
b
2
b
1
b
n
b
n1
b
n2
b
n3
b
k
b
2
b
1
b
0
Exemplo 3.13 Mostre como dividir p(z) = z
5
+6z
4
20z
2
+22z +8 por z
2
+2z 3. Solu cao:
Neste caso, = 2 e = 3. Montando a tabela, tem-se
1 6 0 20 22 8
3 3 12 15 6
2 2 8 10 4 6
1 4 5 2 3 8
Sendo assim, p(z) = (z
2
+ 2z 3)(z
3
+ 4z
2
5z + 2) + 3(z + 2) + 8.
Esta ideia e usada no desenvolvimento do metodo de Bairstow para o calculo de coecientes
e de tal forma que o fator quadr atico z
2
z seja um divisor exato
3
de p(z).
3
Para que z
2
z seja um divisor exato de p(z), e preciso que b
1
= b
0
= 0.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 56
Introdu c ao ao Calculo Numerico Razes de Polin omios
3.6.1 Metodo de Bairstow
A partir de uma estimativa inicial z
2

0
z
0
, p(z) pode ser expresso como
p(z) = (z
2

0
z
0
)q(z) + b
1
(z
0
) + b
0
, (3.9)
Quando b
1
e b
0
sao pequenos, z
2

0
z
0
ca pr oximo de um fator de p(z). Procura-se
encontrar ent ao novos valores
1
e
1
tal que o fator z
2

1
z
1
que ainda mais pr oximo de
um fator de p(z). Observa-se que b
0
e b
1
sao fun coes de e de , ou seja,
b
0
= b
0
(, ) (3.10)
b
1
= b
1
(, ). (3.11)
Os novos valores
1
e
1
satisfazem as relacoes

1
=
0
+ (3.12)

1
=
0
+ (3.13)
onde e , as correcoes a serem feitas aos valores de e de , sao calculadas atraves da
solu cao do sistema de equa coes nao lineares
_
b
0
(, ) = 0
b
1
(, ) = 0
(3.14)
Usando o metodo de Newton para funcoes de duas vari aveis (vide Captulo 5), tem-se
_

b0

+
b0

= b
0

b1

+
b1

= b
1
(3.15)
onde as derivadas parciais sao calculadas em
0
e em
0
.
Como nao e possvel expressar b
0
e b
1
explicitamente, como fun coes de e de , as derivadas
tambem nao podem ser calculadas explicitamente. Por isto, existem as f ormulas recursivas de
Bairstow para calcular numericamente as derivadas parciais.
Para obter
b
1

e
b
0

, deriva-se as expressoes em (3.8) em relacao a , tendo em mente que


os coecientes a
k
sao todos constantes e que os b
k
sao todos fun coes de , exceto b
n
. Portanto,
b
n

= 0 e
b
n1

= b
n
b
n2

= b
n1
+
b
n1

b
n3

= b
n2
+
b
n2

+
b
n1

.
.
.
b
1

= b
2
+
b
2

+
b
3

b
0

= b
1
+
b
1

+
b
2

Repetindo o procedimento acima para calcular tambem as derivadas em relacao a , obtem-se


a seguinte rela cao entre as derivadas parciais:
b
k

=
b
k1

para k = n, n 1, . . . , 1, (3.16)
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 57
Introdu c ao ao Calculo Numerico Razes de Polin omios
Estabelecendo-se que
c
k+1
=
b
k

, para k = 0, 1, . . . , n 1, (3.17)
as equa coes acima podem ser expressas como
c
n
= b
n
(3.18)
c
n1
= b
n1
+ c
n
(3.19)
c
k
= b
k
+ c
k+1
+ c
k+2
para k = n 2, n 3, . . . , 2, 1, (3.20)
ou conforme a tabela 3.2.
a
n
a
n1
a
n2
a
n3
a
3
a
2
a
1
a
0
b
n
b
n1
b
5
b
4
b
3
b
2
b
n
b
n1
b
n2
b
4
b
3
b
2
b
1
b
n
b
n1
b
n2
b
n3
b
3
b
2
b
1
b
0
c
n
c
n1
c
5
c
4
c
3
c
n
c
n1
c
n2
c
4
c
3
c
2
c
n
c
n1
c
n2
c
n2
c
3
c
2
c
1
Tabela 3.2: Tabela para c alculo dos coecientes b
k
e c
k
.
Com isto, pode-se nalmente formar o sistema
_
c
1
+ c
2
= b
0
c
2
+ c
3
= b
1
(3.21)
o qual deve ser resolvido para determinar os valores
1
e
1
.
Generalizando, para se calcular um fator z
2
z do polin omio p(z) = a
n
z
n
+a
n1
z
n1
+
. . . + a
1
z + a
0
e as razes correspondentes, executa-se os seguintes passos:
1. Obtem-se uma estimativa a + bi para a raiz (possivelmente atraves de forma graca) e, a
partir dessa estimativa, calcula-se
0
= 2a e
0
= (a
2
+ b
2
);
2. Utiliza-se a tabela 3.2 para calcular os coecientes b
k
para k = 0, 1, . . . , n e c
k
para k =
1, . . . , n.
3. Calcula-se, a partir do sistema montado com os coecientes c
1
, c
2
e c
3
, as correcoes e
e as novas aproxima coes
1
e
1
.
4. Considera-se
1
como sendo
0
e
1
como sendo
0
e repete-se os passos de 1 a 4 ate que
ocorra convergencia, ou seja, ate que b
0
0 e b
1
0.
5. Calcula-se as correspondentes razes de p(z) a partir da f ormula de Bhaskara.
Esse procedimento pode ser expresso de forma algortmica conforme expresso nos algoritmos 3.6.1
(o qual calcula os valores de b
0
, b
1
, c
1
, c
2
, c
3
, conforme a tabela 3.2) e 3.6.2.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 58
Introdu c ao ao Calculo Numerico Razes de Polin omios
Algoritmo 3.6.1 Algoritmo de Horner quadr atico
proc horner quadratico(input: a, , , n; output: b
0
, b
1
, c
1
, c
2
, c
3
)
% a contem os coecientes do polinomio
b
n
a
n
b
n1
a
n1
+ b
n
fori n 2, n 3, . . . , 0 do
b
i
a
i
+ b
i+1
+ b
i+2
endfor
c
n
b
n
c
n1
b
n1
+ c
n
for i n 2, n 3, . . . , 1 do
c
i
b
i
+ c
i+1
+ c
i+2
endfor
endproc
Algoritmo 3.6.2 Metodo de Bairstow
proc bairstow(input: a, ra, rb, n, k
max
; output: z
1
, z
2
)
% a contem os coecientes do polinomio; ra e rb sao as partes
% real e imaginaria da estimativa da raiz de p(z)
2 ra
(ra
2
+ rb
2
)
b
0
1
b
1
1
fori 1, 2, . . . , k
max
do
while(| b
0
| > 0.0) AND (| b
1
| > 0.0) do
(b
0
, b
1
, c
1
, c
2
, c
3
) horner quadratico(a, , , n)
Resolve
_
c
1
c
2
c
2
c
3
_ _

_
=
_
b
0
b
1
_
para e
+
+
endwhile
endfor
Calcule as raizes z
1
e z
2
da equacao z
2
z = 0
endproc
O metodo de Bairstow e eciente, pois ele fornece uma maneira simples de calcular as derivadas
parciais requeridas e, alem disso, apresenta convergencia quadr atica. Sua principal deciencia e a
diculdade na escolha dos valores iniciais
0
e
0
a m de garantir convergencia.
Exemplo 3.14 Para p(z) = z
4
+ z
3
+ 3z
2
+ 4z + 6, considere
0
= 2, 1 e
0
= 1, 9. Use o
metodo de Bairstow para encontrar
1
,
1
,
2
,
2
, . . ., os fatores quadr aticos e as razes de p(z).
Solu cao: A tabela para calcular
1
e
1
e
O sistema linear resultante, que envolve e e
_
12, 2740 + 8, 2300 = 1, 7701
8, 2300 3, 2000 = 1, 0710
(3.22)
A solu cao deste sistema produz = 0, 11069718 e = 0, 04998819, o que implica que os
novos valores s ao

1
= 1, 98930282 e
1
= 1, 94998819,
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 59
Introdu c ao ao Calculo Numerico Razes de Polin omios
1, 0000 1, 0000 3, 0000 4, 0000 6, 0000
1, 9000 1, 9000 2, 0900 6, 4790
2, 1000 2, 1000 2, 3100 7, 1610 2, 2491
1, 0000 1, 1000 3, 4100 1, 0710 1, 7701
1, 9000 1, 9000 6, 0800
2, 1000 2, 1000 6, 7200 17, 2830
1, 0000 3, 2000 8, 2300 12, 2740
A proxima itera cao fornece
2
= 1, 99999277 e
2
= 2, 00015098, ou seja, as seq uencias
estao convergindo para = 2 e = 2. Logo, p(z) pode ser fatorado como
p(z) = (x
2
+ 2x + 2)(x
2
x + 3).
As quatro razes complexas, calculadas com a f ormula de Bhaskara, s ao
1 + i, 1 i, 0, 5 + 1, 65831239 i, 0, 5 1, 65831239 i.
3.7 Exerccios
Exerccio 3.1 Aplique a regra de Descartes ao polin omio p(z) = 2x
4
x
3
+ 4x
2
3x + 7.
Exerccio 3.2 De que maneira as regras de Du Gua e da lacuna podem ser aplicadas ao polin omio
p(z) = 2x
4
x
3
3x + 7?
Exerccio 3.3 Enumerar e localizar as razes de p(z) = 0, onde p(z) = x
5
+x
4
9x
3
x
2
+20x12.
Exerccio 3.4 Estimar a localiza c ao das razes para p(z) = x
5
+ x
4
9x
3
x
2
+ 20x 12.
Exerccio 3.5 Utilizar o metodo graco e o teorema de Bolzano para estudar as seguintes fun coes:
1. f(x) = x
2
+ e
3x
3
2. f(x) = e
x
x
3. f(x) = sen(x) 2e
x
, onde pode variar.
Exerccio 3.6 Calcular todas as razes do polin omio p(x) = x
3
x 1.
Exerccio 3.7 Calcular todas as razes de p(z) = x
4
2x
3
+ 4x
2
4x + 4 iniciando com
0
= 1
e
0
= 1.
Exerccio 3.8 Efetue a divis ao de p(z) = x
5
3x
4
+ 7x
3
10x
2
+ 10x 7 por x
2
+ 2x + 1.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 60
Captulo 4
Resolu cao de Sistemas de
Equacoes Lineares
4.1 Introdu cao
A resolucao de sistemas de equacoes lineares e um dos problemas numericos mais comuns em
aplica coes cientcas. Tais sistemas surgem, por exemplo, em conex ao com a solu cao de equacoes
diferenciais parciais, determina cao de caminhos otimos em redes (grafos) e interpola cao de pontos,
dentre outros.
Consideraremos aqui, inicialmente, a resolu cao de um sistema de equacoes lineares de n
equa coes a n vari aveis (inc ognitas),
a
11
x
1
+ a
12
x
2
+ . . . + a
1n
x
n
= b
1
a
21
x
1
+ a
22
x
2
+ . . . + a
2n
x
n
= b
2
.
.
.
a
n1
x
1
+ a
n2
x
2
+ . . . + a
nn
x
n
= b
n
ou, escrito na forma matricial,
Ax = b (4.1)
onde A e uma matriz quadrada, de ordem n, e x e b sao vetores de n elementos,
_

_
a
11
a
12
. . . a
1n
a
21
a
22
. . . a
2n
.
.
.
.
.
.
.
.
.
.
.
.
a
n1
a
n2
. . . a
nn
_

_
_

_
x
1
x
2
.
.
.
x
n
_

_
=
_

_
b
1
b
2
.
.
.
b
n
_

_
A matriz A pode apresentar, dependendo do problema de onde o sistema foi derivado, uma
certa estrutura e esparsidade. Uma matriz e dita estruturada se os seus elementos estao dispostos
de uma determinada forma como, por exemplo, ao longo de algumas diagonais e/ou colunas/linhas
(guras 4.1-a) e 4.1-b), como um tri angulo (a matriz em 4.1-c e dita triangular inferior) ou, ainda,
sem estrutura qualquer (4.1-d).
Alem disso, as matrizes mostradas na gura 4.1 apresentam alguns elementos nulos. Uma
matriz e dita esparsa se ela contem, aproximadamente, em torno de 90% de elementos nulos; caso
contr ario, ela e dita densa. Em conseq uencia, pode-se dizer que um sistema e esparso ou denso,
dependendo de como e a matriz de coecientes do sistema.
Uma das principais metas a se atingir, na resolu cao de um sistema de equacoes lineares, e
obter a sua solu cao no menor espaco de tempo e, se possvel, sem alterar a sua estrutura e/ou
esparsidade. Por isso, existem certos metodos e/ou algoritmos especcos para se resolver alguns
sistemas particulares, conforme veremos a seguir.
61
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
(a)
_

_




_

_
, (b)
_

_




_

_
,
(c)
_

_
, (d)
_

_
Figura 4.1: Estruturas tpicas de matrizes: (a) tridiagonal, (b) echa, (c) triangular inferior, (d)
nao-estruturada.
4.2 Resolu cao de Sistemas Triangulares de Equa coes Line-
ares
Se o sistema (4.1) apresenta sua matriz de coecientes A na forma triangular seja ela inferior,
como mostrado na gura 4.1-c, ou superior ent ao e possvel resolve-lo de forma imediata, atraves
de substitui cao direta, para matrizes triangulares inferiores, e de retro-substitui cao, para matrizes
triangulares superiores.
Suponha ent ao um sistema triangular inferior,
Lx = b (4.2)
onde
L =
_

_
l
11
l
21
l
22
l
31
l
32
l
33
.
.
.
.
.
.
.
.
.
.
.
.
l
n1
l
n2
l
n3
. . . l
nn
_

_
.
Nesse caso, as incognitas x
1
, x
2
, . . ., x
n
, podem ser facilmente determinadas como
x
1
=
b
1
l
11
x
2
=
b
2
l
21
x
1
l
22
x
3
=
b
3
l
31
x
1
l
32
x
2
l
33
.
.
.
x
n
=
b
n

n1
j=1
l
nj
x
j
l
nn
O processo acima, denominado de substitui cao direta, pode ser expresso de forma algortmica
como
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 62
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
Algoritmo 4.2.1 Substitui cao Direta
proc substitui cao direta(input: L, b; output: x)
for i = 1, 2, . . . , n do
s 0
for j = 1, 2, . . . , i 1 do
s s + l
ij
x
j
endfor
x
i

bis
lii
endfor
endproc
De forma similar, podemos resolver o sistema triangular superior
Ux = b (4.3)
onde
U =
_

_
u
11
u
12
u
13
. . . u
1n
u
22
u
23
. . . u
2n
u
33
. . . u
3n
.
.
.
.
.
.
u
nn
_

_
.
Nesse caso, as incognitas x
1
, x
2
, . . ., x
n
, podem ser facilmente determinadas como
x
n
=
b
n
u
nn
x
n1
=
b
n1
u
n1,n
x
n
u
n1,n1
x
n2
=
b
n2
u
n2,1
x
1
u
n2,2
x
2
u
n2,n2
.
.
.
x
1
=
b
1

n
j=2
u
1j
x
j
u
11
Note que, devido ` a estrutura de U, as incognitas sao obtidas na ordem contr aria ` aquela com
que sao obtidas as inc ognitas em um sistema triangular inferior. Esse processo e denominado de
retro-substitui cao e pode ser expresso de forma algortmica como
Algoritmo 4.2.2 Retro-substitui cao
proc retro substitui cao(input: U, b; output: x)
for i = n, n 1, . . . , 1 do
s 0
for j = i + 1, i + 2, . . . , n do
s s + u
ij
x
j
endfor
x
i

bis
uii
endfor
endproc
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 63
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
4.3 Resolu cao de Sistemas de Equa coes Lineares por Elimi-
na cao Gaussiana
Se o sistema de equacoes lineares n ao apresenta uma forma simples, tal que se possa determinar
as incognitas facilmente, ent ao podemos efetuar modicacoes no sistema de tal forma que o
transformamos em um sistema triangular, preservando a solu cao do sistema anterior. Uma vez
feitas estas modicacoes, a solu cao e obtida de forma imediata, conforme visto na secao anterior.
Um processo desse tipo e aquele chamado de eliminacao Gaussiana, o qual consiste em se
aplicar opera coes elementares somas e multiplicacoes `as linhas da matriz de coecientes e do
vetor independente b, de tal forma que a matriz passe a ser triangular superior. Suponha, por
exemplo, o sistema
_
_
4 2 3
1 7 3
4 0 8
_
_
_
_
x
1
x
2
x
3
_
_
=
_
_
9
9
12
_
_
cuja solu cao e x
1
= x
2
= x
3
= 1. Para transformarmos a matriz A em uma matriz triangular
superior, devemos eliminar os elementos abaixo da diagonal principal de A.
Para tanto, se multiplicamos a primeira linha por a
21
/a
11
= 1/4 e subtramo-la da segunda,
temos:
_
_
4 2 3
0 7, 5 3, 75
4 0 8
_
_
_
_
x
1
x
2
x
3
_
_
=
_
_
9
11, 25
12
_
_
Agora, para eliminar o termo a
31
, multiplicamos a primeira linha por a
31
/a
11
= 1/1 e subtramo-la
da terceira:
_
_
4 2 3
0 7, 5 3, 75
0 2 5
_
_
_
_
x
1
x
2
x
3
_
_
=
_
_
9
11, 25
3
_
_
Note que os elementos do vetor independente b sao modicados tambem!
A matriz agora e praticamente triangular superior; falta eliminar o termo a
32
. Para tanto,
basta multiplicar a segunda linha por a
32
/a
22
= 2/7, 5 e subtra-la da terceira, de onde
_
_
4 2 3
0 7, 5 3, 75
0 0 6
_
_
_
_
x
1
x
2
x
3
_
_
=
_
_
9
11, 25
6
_
_
Agora, podemos utilizar o algoritmo de retro-substitui cao para determinar as inc ognitas:
x
3
= 1
x
2
=
11, 25 3, 75 1
7, 5
= 1
x
1
=
9 (2 1 + 3 1)
4
= 1
Podemos sumarizar o processo entao da seguinte forma: para se eliminar os elementos abaixo
da diagonal na k-esima coluna (ou seja, os elementos das linhas k + 1, k + 2, . . ., n na coluna
k), usamos o elemento a
kk
chamado de piv o para calcularmos um multiplicador z =
a
ik
a
kk
para
cada i-esima linha abaixo da linha k. Esse multiplicador ser a utilizado para multiplicar a k-esima
linha e subtra-la da linha i (incluindo, aqui, os elementos do termo independente b). Uma vez
eliminados todos os elementos abaixo da diagonal principal de A, resta-nos uma matriz triangular
superior, e, ent ao, podemos determinar a solu cao x usando o algoritmo da retro-substitui cao.
O processo de elimina cao Gaussiana pode ser descrito de forma algoritmica como
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 64
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
Algoritmo 4.3.1 Eliminacao Gaussiana
proc eliminac ao Gaussiana(input: A, b; output: x)
for k = 1, 2, . . . , n 1 do
for i = k + 1, k + 2, . . . , n do
z
a
ik
a
kk
a
ik
0
for j = k + 1, k + 2, . . . , n do
a
ij
a
ij
za
kj
endfor
b
i
b
i
zb
k
endfor
endfor
call retro substitui cao(A, b, x)
endproc
4.3.1 Diculdades
O processo de elimina cao Gaussiana, descrito acima, n ao consegue resolver todo e qualquer sistema.
Considere, por exemplo, o sistema
_
0 1
1 1
_ _
x
1
x
2
_
=
_
1
2
_
(4.4)
o qual tem como solucao x
1
= x
2
= 1. No entanto, se formos aplicar eliminacao Gaussiana a esse
sistema, ele falhar a, pois o piv o a
11
= 0.

E obvio, portanto, que os piv os nao podem ser nulos.
O sistema (4.4) pode, no entanto, ser modicado, procedendo-se a uma troca de linhas -
imediatamente temos um sistema triangular superior. No entanto, e possvel que, ao longo do
processo de eliminacao Gaussiana, surja um zero na diagonal principal e n ao seja possvel, por
qualquer troca de linhas, remove-lo. Nesse caso, o sistema nao tem solucao
1
; o algoritmo para a
elimina cao Gaussiana deve ser modicado adequadamente para se levar em conta tal possibilidade.
O pr oximo exemplo mostra uma outra diculdade associada ao metodo:
_
1
1 1
_ _
x
1
x
2
_
=
_
1
2
_
(4.5)
onde 0 < 1, cuja solu cao correta e
x
1
=
1
1
1
x
2
=
12
1
1
No entanto, se aplicarmos elimina cao Gaussiana ao sistema (4.5), obteremos
x
2
=
2
1
1
1
1
x
1
= (1 x
2
)
1
0
o qual obviamente aproxima bem x
2
, mas o valor de x
1
e completamente errado! Isso acontece
porque, se e pequeno o suciente em um determinado computador, tanto 2
1
quanto 1
1
ser ao calculados como
1
(devido ` a perda de dgitos signicativos na subtra cao). Desse exemplo,
tiramos uma outra li cao: o piv o deve, sempre, ser escolhido como o maior possvel, em m odulo.
O processo de escolha de piv os, chamado de pivotamento, implica na troca de linhas da matriz
de coecientes (bem como do termo independente b). Computacionalmente, no entanto, n ao e
1
Esta e, inclusive, uma maneira de se determinar se o sistema e singular, isto e, a matriz de coecientes nao tem
inversa.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 65
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
aconselh avel se movimentar dados na memoria de forma excessiva, pois o tempo de execucao
do algoritmo passa a ser proibitivo. Podemos, no entanto, modicar o algoritmo de elimina cao
Gaussiana utilizando um vetor auxiliar de ndices chamado de p o qual implicitamente diz quais
linhas foram trocadas; os elementos desse vetor sao utilizados para se acessar convenientemente
os elementos da matriz e do termo independente. Note, ainda, que o algoritmo deve ser capaz de
tratar o caso no qual nao e necessario se efetuar qualquer troca de linhas.
No algoritmo a seguir, e feito tambem um escalonamento das linhas, isto e, um fator
s
i
= max
1jn
| a
ij
|, i = 1, 2, . . . , n
e calculado para cada linha. Esse fator e utilizado para se escolher um piv o que seja o maior
relativo aos elementos de uma coluna; em outras palavras, na k-esima coluna, iremos selecionar o
maior valor | a
pik
|/s
pi
nas linhas k i n.
O algoritmo para a elimina cao Gaussiana com pivotamento e escalonamento pode ser expresso
como segue:
Algoritmo 4.3.2 Eliminacao Gaussiana com pivotamento e
escalonamento
proc eliminac ao Gaussiana pivotamento e escalonamento(input: A, b; output: x)
for i = 1, 2, . . . , n do
p
i
i
s
i
max
1jn
| a
ij
|
endfor
for k = 1, 2, . . . , n 1 do
j k
for i = k + 1, k + 2, . . . , n do
if (| a
pik
|/s
pi
| a
pjk
|/s
pj
) then
j i
break
endif
endfor
q p
k
p
k
p
j
p
j
q
if (a
p
k
k
= 0) then
break
endif
for i = k + 1, k + 2, . . . , n do
z
a
p
i
k
a
p
k
k
a
pik
z
for j = k + 1, k + 2, . . . , n do
a
pij
a
pij
za
p
k
j
endfor
b
pi
b
pi
zb
p
k
endfor
endfor
for i = n, n 1, . . . , 1 do
x
i

_
b
pi

n
j=i+1
a
pij
x
j
_
/a
pij
endfor
endproc
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 66
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
Note que os fatores
a
p
i
k
a
p
k
k
utilizados para se eliminar os elementos abaixo da diagonal s ao
armazenados na matriz A, onde se colocariam zeros (conforme utilizado no algoritmo da elimina cao
Gaussiana sem pivotamento). Isso e feito de forma a se poder obter, a partir do algoritmo acima,
a fatora cao LU da matriz A, conforme veremos na secao a seguir.
O exemplo abaixo mostra o funcionamento do algoritmo descrito acima:
Exemplo 4.1 Calcule a solu cao do sistema
_
_
2 3 6
1 6 8
3 2 1
_
_
_
_
x
1
x
2
x
3
_
_
=
_
_
10
13
2
_
_
Solucao: Inicialmente, temos p = (1, 2, 3) (de acordo com o algoritmo) e s = (6, 8, 3) (verique,
por inspe cao). A cada passo, temos:
k j p i z
1 3 (3, 2, 1) 2 0, 3333
3 0, 6667
A =
_
_
0, 6667 4, 3333 6, 6667
0, 3333 5, 3333 7, 6667
3, 0000 2, 0000 1, 0000
_
_
b =
_
_
11, 3333
12, 3333
2, 0000
_
_
k j p i z
2 3 (3, 1, 2) 3 1, 2308
A =
_
_
0, 6667 4, 3333 6, 6667
0, 3333 1, 2308 0, 5385
3, 0000 2, 0000 1, 0000
_
_
b =
_
_
11, 3333
1, 6154
2, 0000
_
_
Uma vez efetuada a elimina cao, procede-se ao c alculo das inc ognitas:
i = 3 : p
3
= 2, x
3
=
1, 6154
0, 5385
= 3
i = 2 : p
2
= 1, x
2
=
11, 3333 (20)
4, 3333
= 2
i = 1 : p
1
= 3, x
1
=
2 (1)
3
= 1
4.3.2 Elimina cao Gaussiana e a Fatora cao LU
Conforme visto na se cao anterior, o algoritmo de elimina cao Gaussiana com pivotamento e es-
calonamento produz, de forma implcita, uma matriz triangular inferior, uma matriz triangular
superior e um vetor de permuta cao. Como essas matrizes foram obtidas por transforma coes sobre
a matriz A original, podemos de alguma forma relacion a-las entre si.
Primeiramente, analisemos o vetor de permutacao; seus elementos indicam qual linha foi
trocada com outra, i.e., se p
j
= k, isso signica que a linha j foi trocada com a linha k. Essa
permuta cao pode ser expressa, tambem, atraves de uma matriz de permuta cao, P, a qual tem
como elementos apenas o 0 e o 1. No exemplo mostrado na secao anterior, obtemos p = (3, 1, 2)
ao m; ou seja, a linha 3 est a no lugar da linha 1; a linha 1 est a no lugar da linha 2 e, por m, a
linha 2 esta na linha 3. A matriz de permuta cao correspondente e
P =
_
_
0 0 1
1 0 0
0 1 0
_
_
.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 67
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
A rela cao existente entre A e as matrizes triangular inferior, L; triangular superior, U; e a
matriz de permuta cao P e a seguinte:
PA = LU
onde L e triangular inferior com diagonal unit aria e os seus elementos abaixo da diagonal principal
encontram-se armazenados na matriz A, ao nal do algoritmo de elimina cao Gaussiana com
pivotamento e escalonamento, porem possivelmente permutados.
Usando mais uma vez o exemplo anterior, temos:
PA = LU
_
_
0 0 1
1 0 0
0 1 0
_
_
_
_
2 3 6
1 6 8
3 2 1
_
_
=
_
_
1 0 0
0, 6667 1 0
0, 3333 1, 2308 1
_
_
_
_
3 2 1
0 4, 3333 6, 6667
0 0 0, 5385
_
_
=
_
_
3 2 1
2 3 6
1 6 8
_
_
onde as matrizes L e U foram permutadas adequadamente, usando a matriz P. Pode-se vericar,
por inspe cao, que o lado direito da igualdade e a matriz A com as suas linhas trocadas conforme
expresso por P.
A fatora cao LU e util quando, para uma mesma matriz de coecientes A, temos de resolver
m sistemas de equacoes lineares Ax
(j)
= b
(j)
, com termos independentes b
(1)
, b
(2)
, . . ., b
(m)
.
Basta, entao, obter a fatora cao com o algoritmo de elimina cao Gaussiana com pivotamento e
escalonamento (sem calcular x
i
as ultimas tres linhas do algoritmo), obtendo L, U e P. Valendo-
se da igualdade PAx = Pb e, como PA = LU, podemos escrever L(Ux) = b, de onde a solu cao
de um sistema Ax = b e obtida resolvendo-se dois sistemas triangulares:
Ly = Pb
Ux = y
A fatora cao LU, bem como a solucao dos sistemas triangulares acima, s ao expressas pelos algoritmos
4.3.3 e 4.3.4.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 68
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
Algoritmo 4.3.3 Fatora c ao LU
proc fatoracao LU(input: A, b; output: A, b, p)
for i = 1, 2, . . . , n do
p
i
i
s
i
max
1jn
| a
ij
|
endfor
for k = 1, 2, . . . , n 1 do
j k
for i = k + 1, k + 2, . . . , n do
if (| a
pik
|/s
pi
| a
pjk
|/s
pj
) then
j i
break
endif
endfor
q p
k
p
k
p
j
p
j
q
if (a
p
k
k
= 0) then
break
endif
for i = k + 1, k + 2, . . . , n do
z
a
p
i
k
a
p
k
k
a
pik
z
for j = k + 1, k + 2, . . . , n do
a
pij
a
pij
za
p
k
j
endfor
endfor
endfor
endproc
Algoritmo 4.3.4 Resolve sistema usando LU
proc resolve sistema LU(input: A, b, p; output: x)
for i = 1, 2, . . . , n do
z
i
b
pi

i1
j=1
a
pij
z
j
endfor
for i = n, n 1, . . . , 1 do
x
i

_
z
i

n
j=i+1
a
pij
x
j
_
/a
pii
endfor
endproc
4.3.3 O Custo Computacional da Fatora cao LU
O custo computacional de um algoritmo numerico e, normalmente, medido em termos do n umero
de multiplica coes e/ou divisoes, ja que adi coes e subtracoes sao efetuadas em uma fra cao do tempo
necessario para aquelas outras duas opera coes aritmeticas. Assim, ao nos referirmos a operacoes,
estaremos nos referindo a multiplica coes e/ou divisoes.
Para se obter a fatoracao LU de uma matriz A, vemos que, quando k = 1, no algoritmo
respectivo, para cada uma das n 1 linhas abaixo da linha 1, e calculado um multiplicador e,
ent ao, um m ultiplo da primeira linha e subtrado daquelas n 1 linhas; isso nos d a n opera coes.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 69
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
Como n 1 linhas s ao processadas dessa forma, temos um total de n(n 1) n
2
opera coes para
a primeira coluna.
Para as demais colunas, note que o mesmo raciocnio acima e valido, mas e como se a matriz
diminusse de uma linha e uma coluna a cada novo valor de k. Assim, para todos os n 1 piv os
a serem calculados, teremos:
n
2
+ (n 1)
2
+ . . . + 3
2
+ 2
2
=
1
3
n
3
+
1
2
n
2
+
1
6
n 1
1
3
n
3
+
1
2
n
2
a qual e obtida usando

n
k=1
k
2
=
1
6
n(n + 1)(2n + 1).
Para se corrigir o termo independente b, gasta-se n 1 opera coes, depois n 2, e assim
sucessivamente, de onde
(n 1) + (n 2) + . . . + 1 =
1
2
n
2

1
2
n.
Finalmente, o processo de retro-substituicao custa
1 + 2 + 3 + . . . + n =
1
2
n
2
+
1
2
n
opera coes.
Combinando todas as expressoes, podemos dizer que, para se resolver m sistemas de equa coes
lineares Ax
(i)
= b
(i)
, usando a fatora cao LU, apresenta um custo computacional de aproximada-
mente
1
3
n
3
+
_
1
2
+ m
_
n
2
o que mostra que e mais eciente efetuar a fatoracao LU apenas uma vez, e depois resolver os m
sistemas lineares, do que se resolvessemos cada sistema independentemente, pois o custo, nesse
caso, seria da ordem de
1
3
mn
3
.
4.3.4 Resolu cao de sistemas com m ultiplos termos independentes
Existem situacoes que requerem a solucao de v arios sistemas lineares, todos eles com a mesma
matriz de coecientes, porem com diferentes termos independentes. Como visto na secao 4.3.3, e
mais vantajoso, nesse caso, realizar-se a fatoracao LU de A, apenas uma vez; a solucao de todos os
sistemas e obtida, simplesmente, calculando-se as solu coes dos sistemas triangulares Ly
(i)
= Pb
(i)
e Ux
(i)
= y
(i)
, onde o ndice (i) identica um sistema especco.
4.3.4.1 Calculo da inversa de uma matriz
Uma dessas situacoes e o calculo da inversa de uma matriz. Note que tal calculo nao e realizado
com o m de se resolver um sistema de equacoes (utilizando-se a relacao x = A
1
b; aplica coes
que envolvam certas decomposicoes de matrizes exigem que se escreva um vetor v como XDX
1
,
onde X e D sao matrizes.
Seja entao a matriz A, cuja inversa A
1
e desejada. Como, por deni cao, o produto entre uma
matriz e a sua inversa e a matriz identidade I,
AA
1
= I (4.6)
podemos escrever o problema de determinacao da inversa na forma de um sistema de equacoes
lineares com m ultiplos termos independentes (e, conseq uentemente, m ultiplas solu coes) como
AX = I (4.7)
onde X A
1
, i.e., as colunas (X)
i
sao as colunas de A
1
.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 70
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
Dessa forma, obtendo-se a fatora cao LU de A, a primeira coluna de A
1
e obtida resolvendo-se
os sistemas
Ly
(i)
= P
_

_
1
0
0
.
.
.
0
_

_
(4.8)
e
U(X)
1
= y
(1)
(4.9)
e a segunda coluna e obtida como
Ly
(2)
= P
_

_
0
1
0
.
.
.
0
_

_
(4.10)
e
U(X)
2
= y
(2)
(4.11)
e as demais colunas sao obtidas similarmente. Note que, computacionalmente, basta usar apenas
um vetor y, sendo o mesmo reutilizado a cada novo sistema resolvido.
Exemplo 4.2 Obtenha a inversa da matriz
A =
_
_
10 10 20
10 10 10
20 10 10
_
_
Solu cao: Aplicando-se o algoritmo 4.3.3, obtemos os fatores L, U e P:
L =
_
_
1 0 0
0, 5 1 0
0, 5 1 1
_
_
U =
_
_
20 10 10
0 5 5
0 0 10
_
_
P =
_
_
0 0 1
0 1 0
1 0 0
_
_
Agora, aplica-se o algoritmo 4.3.4 usando-se como termo independente o vetor (1, 0, . . . , 0)
T
,
i.e., resolve-se
Ly
(1)
= P
_
_
1
0
0
_
_
_
_
1 0 0
0, 5 1 0
0, 5 1 1
_
_
y
(1)
=
_
_
0
0
1
_
_
y
(1)
=
_
_
0
0
1
_
_
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 71
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
e
U(X)
1
= y
(1)
_
_
20 10 10
0 5 5
0 0 10
_
_
(X)
1
=
_
_
0
0
1
_
_
(X)
1
=
_
_
0
0, 1
0, 1
_
_
Para a segunda coluna, temos
Ly
(2)
= P
_
_
0
1
0
_
_
_
_
1 0 0
0, 5 1 0
0, 5 1 1
_
_
y
(2)
=
_
_
0
1
0
_
_
y
(2)
=
_
_
0
1
1
_
_
e
U(X)
2
= y
(2)
_
_
20 10 10
0 5 5
0 0 10
_
_
(X)
2
=
_
_
0
1
1
_
_
(X)
2
=
_
_
0, 1
0, 3
0, 1
_
_
Finalmente, para a terceira coluna, temos
Ly
(3)
= P
_
_
0
0
1
_
_
_
_
1 0 0
0, 5 1 0
0, 5 1 1
_
_
y
(3)
=
_
_
1
0
0
_
_
y
(3)
=
_
_
1
0, 5
0
_
_
e
U(X)
3
= y
(3)
_
_
20 10 10
0 5 5
0 0 10
_
_
(X)
3
=
_
_
1
0, 5
0
_
_
(X)
3
=
_
_
0, 1
0, 1
0
_
_
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 72
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
Assim, A
1
e dada por
A
1
= X =
_
_
_
_
0
0, 1
0, 1
_
_
_
_
0, 1
0, 3
0, 1
_
_
_
_
0, 1
0, 1
0
_
_
_
_
e pode-se vericar que
AA
1
= I
_
_
10 10 20
10 10 10
20 10 10
_
_
_
_
0 0, 1 0, 1
0, 1 0, 3 0, 1
0, 1 0, 1 0
_
_
=
_
_
1 0 0
0 1 0
0 0 1
_
_
.
4.4 Resolu cao Iterativa de Sistemas de Equa coes Lineares
Em certos casos, nao e conveniente se resolver o sistema Ax = b atraves de um metodo direto
como a elimina cao Gaussiana. Considere, por exemplo, a matriz A derivada da discretiza cao em
diferen cas-nitas (com estencil de 5 pontos) do operador diferencial
2
, cuja estrutura e mostrada
na gura 4.2; se aplicarmos a fatoracao LU sobre A, alguns dos elementos que eram nulos em
A passar ao a ser diferentes de zero, tanto em L como em U (gura 4.3). Note que A tem 64
elementos n ao-nulos, ao passo que L e U apresentam um total de 134 elementos nao-nulos. A
0 2 4 6 8 10 12 14 16
0
2
4
6
8
10
12
14
16
nz = 64
Estrutura da matriz A
Figura 4.2: Estrutura da matriz A derivada da discretizacao em diferen cas-nitas do operador
diferencial
2
.
elimina cao Gaussiana est a, nesse caso, destruindo a estrutura e/ou a esparsidade da matriz, o que
n ao e aconselhavel, principalmente para matrizes grandes (n > 10000).
Por outro lado, mesmo quando a matriz e densa ou seja, a inser cao de elementos n ao-nulos
n ao implicar a em aumento consideravel do uso da memoria pode n ao ser aconselhavel utilizar
um metodo direto, se a solu cao desejada necessita apenas um n umero pequeno de dgitos corretos.
0 2 4 6 8 10 12 14 16
0
2
4
6
8
10
12
14
16
nz = 67
Estrutura da matriz L
0 2 4 6 8 10 12 14 16
0
2
4
6
8
10
12
14
16
nz = 67
Estrutura da matriz U
Figura 4.3: Estruturas da matriz L (` a esquerda) e U (` a direita), resultantes da fatora cao LU de
A.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 73
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
Uma outra razao, que justica o uso de metodos iterativos (ver [13]), e o fato de seu custo
computacional ser proporcional a n
2
(e, `as vezes, ate mesmo a n), o que os torna bastante
competitivos, se comparados a um metodo direto (cujo custo e proporcional a n
3
).
4.4.1 Normas de vetores e de matrizes
Como todo processo iterativo, e necessario saber quando se alcan cou a convergencia do processo
em nosso caso, obteve-se uma estimativa x
k
que aproxima sucientemente x = A
1
b. Fazendo
uma analogia com o metodo da bisseccao (ver se cao 2.2), onde se detectava a convergencia quando
o comprimento do intervalo era menor do que uma toler ancia pre-especicada, aqui vamos tambem
calcular um comprimento de um vetor (em IR
n
).
Para se calcular esse comprimento, utiliza-se uma norma. Uma norma de um vetor x per-
tencente a um espaco vetorial V e uma fun cao || x|| : V IR
+
que obedece aos seguintes
postulados:
|| x|| > 0, se x = 0, x V
|| x|| = | | || x||, se IR, x V
|| x + y || || x|| +|| y || se x, y V (desigualdade triangular)
A norma de um vetor e o seu comprimento no espa co vetorial V ; e uma generaliza cao da
no cao de valor absoluto de um n umero real. Para o espa co vetorial IR
n
, a norma mais conhecida
e a chamada norma Euclidiana, denida por
|| x||
2
=
_
n

i=1
x
2
i
_1
2
(4.12)
onde x = (x
1
, x
2
, . . . , x
n
)
T
. Particularmente, em IR
2
, temos || x||
2
=
_
x
2
1
+ x
2
2
, que e a expressao
para a dist ancia de um ponto com coordenadas (x
1
, x
2
) em relacao `a origem do sistema de eixos
cartesianos.
Existem outras normas que sao bastante usadas em calculos numericos, como a norma-l

|| x||

=
n
max
i=1
| x
i
| (4.13)
e a norma-l
1
,
|| x||
1
=
n

i=1
| x
i
| (4.14)
as quais sao bem mais simples e menos onerosas de se calcular do que a norma Euclidiana.
4.4.2 Normas de matrizes
Uma vez especicada uma norma de um vetor, a norma matricial subordinada e denida como
|| A|| = sup|| Au || : u IR
n
, || u || = 1 (4.15)
para uma matriz A n n. Pode-se vericar que
|| Ax|| || A|| || x||, x IR
n
Por exemplo, a norma matricial subordinada da norma vetorial || ||

e dada por
|| A||

=
n
max
i=1
n

j=1
| a
ij
| (4.16)
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 74
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
4.4.3 N umero de condi cao de uma matriz
Normas de vetores e de matrizes nos permitem avaliar o quao suscetvel a erros numericos ser a
uma computa cao empregando-se uma dada matriz A. Para tanto, suponha que se deseja resolver
o sistema Ax = b, onde A e n n e A
1
existe.
Se A
1
tem seus valores perturbados (isto e, ligeiramente modicados), gerando uma nova
matriz B, a solu cao do sistema n ao e mais x = A
1
b mas x = Bb. Essa perturbacao pode ser
medida em termos do comprimento do vetor x x,
|| x x|| = || x Bb || = || x BAx|| = || (I BA)x|| || I BA|| || x||
ou
|| x x||
|| x||
|| I BA||
o que nos d a uma no cao do erro relativo entre x e x.
De forma an aloga, suponha que b foi perturbado, gerando um novo vetor

b. Se x e x sao as
solu coes de Ax = b e A x =

b, podemos medir o erro absoluto entre x e x escrevendo
|| x x|| = || A
1
b A
1

b || = || A
1
(b

b) ||
|| A
1
|| || b

b ||
e o erro relativo como
|| x x|| || A
1
|| || b

b || = || A
1
|| || Ax||
|| b

b ||
|| b ||
|| A
1
|| || A|| || x||
|| b

b ||
|| b ||
|| x x||
|| x||
|| A
1
|| || A||
|| b

b ||
|| b ||
o que nos diz que o erro relativo em x e limitado pelo n umero || A
1
|| || A||. Essa quantidade e
denominada de n umero de condi cao de A, e e denotada por
(A) = || A
1
|| || A|| (4.17)
Vejamos um exemplo do uso de (A).
Exemplo 4.3 Seja a matriz A e sua inversa A
1
,
A =
_
1 1 +
1 1
_
A
1
=
1

2
_
1 1
1 + 1
_
.
Usando a norma-l

, entao || A||

= 2 + e || A
1
||

=
1

2
(2 + ), de onde
(A) =
_
2 +

_
2
>
4

2
.
Se 0, 01, entao (A) 40000. Isso quer dizer que, se b sofrer uma pequena perturba cao, a
perturba c ao relativa na solu cao do sistema Ax = b ser a 40000 vezes maior!
Uma matriz que tenha um n umero de condi cao muito grande e dita mal-condicionada, e
pequenas varia coes nos valores de b induzir ao um grande erro relativo no vetor solu cao do sistema.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 75
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
4.4.4 Erros computacionais e condicionamento
Qualquer solu cao de um sistema linear deve ser considerada uma solucao aproximada, em virtude
de erros de arredondamento e outros. O metodo mais natural para determina cao da precisao de
uma solu cao e vericar quao bem esta solucao satisfaz o sistema original, calculando o vetor resduo.
Se a solu cao aproximada x for uma boa aproxima cao, pode-se esperar que cada componente de
r = b A x seja pequeno, pelo menos em um conceito relativo. Ha sistemas de equacoes, contudo,
em que o resto nao proporciona uma boa medida da precis ao da solu cao. S ao sistemas nos quais
pequenas alteracoes nos dados de entrada conduzem a mudan cas signicativas na solu cao. Estes
sao denominados sistemas inst aveis ou mal-condicionados.
Exemplo 4.4 A solu c ao exata do sistema
_
x
1
+ x
2
= 2
1, 01x
1
+ x
2
= 2, 01
e x
1
= x
2
= 1. Supondo que, devido a erros, a solu cao calculada fosse
x
1
= 0
x
2
= 2, 005
o vetor resduo neste caso seria R
T
= [0, 005; 0, 005]. Entretanto, o erro em cada resposta, x
1
e
x
2
, e de aproximadamente uma unidade.
Por outro lado, os coecientes tambem podem conter erros. Supondo que algum tipo de erro
tenha mudado as equac oes acima para
_
x
1
+ x
2
= 2
1, 0001x
1
+ x
2
= 2, 007
ate mesmo uma solu c ao bem diferente da anterior, como x
1
= 100 e x
2
= 98 produziria um
resduo bem pequeno, R
T
= [0; 0, 003].
Erros deste tipo, ao contr ario daqueles causados pela acumulacao de erros de arredondamento,
n ao podem ser evitados por uma programa cao cuidadosa. Como, ent ao, determinar quando um
problema e mal-condicionado?
Figura 4.4: Os sistemas que descrevem a intersec cao das retas sao, da esquerda para a direita:
bem-condicionado, mal-condicionado e singular.
Em geral, tem-se a situacao mostrada na gura 4.4, para o caso de duas retas. Quando o
sistema e ordem maior, no entanto, deve-se recorrer a medidas algebricas para se estimar o mal-
condicionamento do sistema. Uma dessas medidas e o chamado determinante normalizado da
matriz dos coecientes. Para obte-lo, normaliza-se a matriz de coecientes A dividindo-se cada
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 76
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
linha de A pela raiz quadrada da soma dos quadrados dos elementos de cada linha,
norm| A| =

a11
1
a12
1

a1n
1
a21
2
a22
2

a2n
2
.
.
.
.
.
.
.
.
.
.
.
.
an1
n
an2
n

ann
n

=
| A|

2
. . .
n
(4.18)
onde
i
=
_
a
2
i1
+ a
2
i2
+ . . . + a
2
in
. Diz-se, entao, que uma matriz A e mal-condicionada se o
n umero norm| A| for pequeno, comparado com a unidade.
Exemplo 4.5 Seja a matriz
A =
_
1 1
1 1, 01
_
;
verique se ela e mal-condicionada.
Solu cao: Calculando-se
1
=

1 e
2
=

2, 0201, podemos obter


norm| A| =

1 1
1 1, 01

2
0, 005
ou seja, A e dita ser mal-condicionada.
4.4.5 Metodos iterativos
Dado um sistema nao-singular de n equa coes lineares Ax = b, um metodo iterativo para resolver
esse sistema e denido por um conjunto de fun coes
k
(x
0
, x
1
, . . . , x
k
, A, b), onde x
0
=
0
(A, b) e
uma estimativa inicial para a solu cao x = A
1
b e x
1
, x
2
, . . . sao as aproxima coes sucessivas para
a solu cao,
x
1
=
1
(x
0
, A, b)
x
2
=
2
(x
0
, x
1
, A, b)
.
.
.
x
k
=
k
(x
0
, x
1
, . . . , x
k
, A, b)
As fun coes
k
nos denem os metodos iterativos. Diz-se que um metodo e estacionario se,
para um m > 0,
n
n ao depende de n para todo n m, ou seja, =
m
=
m+1
= . . . Nesse
caso, x
n+1
depende de, no maximo, m vetores anteriores, x
n
, x
n1
, . . ., x
nm+1
. Por exemplo,
para m = 2, temos
x
0
=
0
(A, b) (4.19)
x
1
=
1
(x
0
, A, b) (4.20)
x
k
= (x
k2
, x
k1
, A, b), k = 2, 3, . . . (4.21)
O grau de um metodo estacionario e m (para m m) se, para n m 1, x
n+1
depende de
x
n
, x
n1
, . . ., x
n m+1
mas nao para k < n m+. O grau de um metodo iterativo denido pelas
equa coes (4.19)-(4.21) e 2.
Um metodo iterativo e dito linear se todas as fun coes
i
sao fun coes lineares de x
0
, x
1
, . . .,
x
n1
. Assim, um metodo iterativo estacionario linear de grau 1 pode ser expresso por
x
k+1
= Gx
k
+ f (4.22)
onde G e uma matriz e f um vetor, escolhidos adequadamente.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 77
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
Para um metodo como em (4.22), podemos nos referir a um sistema linear relacionado,
(I G)x = f; (4.23)
onde I e a matriz identidade de ordem n. Por exemplo, se G = I A, f b, ent ao (4.23) e
equivalente a Ax = b.
A deni cao de um metodo iterativo pode tambem ser feita a partir de uma matriz separadora,
Q. Podemos escrever o sistema Ax = b na forma equivalente
Qx = (QA)x + b (4.24)
isto e, x = (x, A, b), o que nos leva a escrever um processo iterativo, de aproximacoes sucessivas,
como
Qx
k
= (QA)x
k1
+ b, k = 0, 1, . . . (4.25)
A matriz Q deve ser escolhida de tal forma que se possa calcular rapidamente os x
k
e que a
seq uencia x
0
, x
1
, . . . convirja rapidamente para a solu cao x = A
1
b.
A m de obter uma condi cao necess aria e suciente para que haja convergencia, reescrevemos
(4.25) como
x
k
= (I Q
1
A)x
k1
+ Q
1
b (4.26)
A solu cao x satisfaz a equa cao
x = (I Q
1
A)x
k1
+ Q
1
b (4.27)
i.e., x e um ponto xo do mapa
x (I Q
1
A)x
k1
+ Q
1
b (4.28)
Usando as equacoes (4.26) e (4.27), podemos obter uma express ao para o erro x
k
x como
x
k
x = (I Q
1
A)(x
k1
x) (4.29)
e, aplicando normas, temos
|| x
k
x|| || (I Q
1
A) || || (x
k1
x) ||
|| (I Q
1
A) ||
2
|| (x
k2
x) ||

.
.
.
|| (I Q
1
A) ||
k
|| (x
0
x) || (4.30)
de onde
lim
k
|| x
k
x|| = 0, se || (I Q
1
A) || < 1 (4.31)
desde que A e Q sejam invertveis.
4.4.6 Renamento iterativo
O primeiro metodo iterativo para a solu cao de um sistema de equacoes lineares Ax = b e o chamado
renamento iterativo. Para uma estimativa inicial x
0
, denimos o vetor erro e
0
como
e
0
= x x
0
(4.32)
e o vetor resduo r
0
como
r
0
= b Ax
0
. (4.33)
O vetor erro nos diz o quanto x
0
esta distante de x, e o vetor resduo nos diz o quanto Ax
0
esta
distante de b.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 78
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
Multiplicando r
0
por A
1
, temos
A
1
r
0
= A
1
b x
0
= x x
0
= e
0
(4.34)
e, usando essa igualdade, podemos obter uma express ao para x:
x = x
0
+ A
1
r
0
(4.35)
Note que a equa cao (4.35) envolve A
1
; mas, obviamente, n ao podemos utiliza-la, pois se a
calcul assemos, a solucao do sistema seria imediata! Por outro lado, a equa cao (4.34) nos permite
escrever
Ae
0
= r
0
(4.36)
e, combinando as equa coes (4.33), (4.36) e (4.35), podemos descrever o metodo do renamento
iterativo como _
_
_
r
k
= b Ax
k
resolve Ae
k
= r
k
x
k+1
= x
k
+ e
k
, k = 0, 1, . . . (4.37)
O metodo do renamento iterativo e utilizado em conjunto com um metodo direto, como a
elimina cao Gaussiana. Tendo fatorado A no produto LU e obtido uma solu cao x para Ax = b
(a qual pode n ao ser muito boa, devido a erros de arredondamento), fazemos x
0
= x e renamos
essa solucao, usando (4.37), ate que x
k
seja sucientemente bom. Note que a fatoracao LU pode,
agora, ser utilizada para resolver Ae
k
= (LU)e
k
= r
k
.
Se consideramos que a solu cao obtida com a fatora cao LU de A n ao foi exata, ent ao podemos
dizer que U
1
L
1
= B A
1
. Usando a equa cao (4.35), escrevemos
x
k+1
= x
k
+ A
1
r
k
= x
k
+ A
1
b A
1
Ax
k
.
.. B A
1
.
..
= x
k
+ B(b Ax
k
) (4.38)
De onde podemos mostrar que o metodo converge para uma solucao: subtraindo x de ambos os
lados da equacao (4.38), temos
x
k+1
x = x
k
x + B(b Ax
k
)
.
.. b = Ax
.
..
= x
k
x + B(Ax Ax
k
) = (I BA)(x
k
x)
e, tomando normas de ambos os lados da igualdade acima, vem, pela desigualdade triangular:
|| x
k+1
x|| || I BA|| ||x
k
x||
.
.. || x
k
x|| = || I BA|| || x
k1
x||
.
..
|| I BA||
2
||x
k1
x||

.
.
.
|| I BA||
k
||x
0
x||
o que nos diz que os erros convergem para 0 se || I BA|| < 1.
Assim como nos metodos de determinacao de razes de fun coes, precisamos denir alguns
criterios de parada do processo de renamento. O primeiro desses criterios e a estipula cao de
um n umero m aximo de itera coes (k
max
); o segundo pode ser baseado na norma do resduo r
k
,
devidamente escalonada por || b || (usando uma norma qualquer, previamente escolhida). Assim,
as itera coes proceder ao enquanto
|| r
k
|| < || b || (4.39)
n ao for satisfeito; e um n umero real, escolhido de acordo com a exatidao requerida.
Um algoritmo que expressa o metodo do renamento iterativo pode ser escrito como:
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 79
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
Algoritmo 4.4.1 Renamento Iterativo
proc renamento iterativo(input: A, L, U, b, x
0
, k
max
, ; output: x
k
)
t || b ||
for k = 0, 1, . . . , k
max
do
r
k
b Ax
k
if || r
k
|| < t then
break
endif
resolve (LU)e
k
= r
k
, obtendo e
k
x
k+1
x
k
+ e
k
endfor
endproc
O exemplo abaixo [10] mostra o comportamento desse metodo.
Exemplo 4.6 Seja o sistema
_

_
420 210 140 105
210 140 105 84
140 105 84 70
105 84 70 60
_

_
x =
_

_
875
539
399
319
_

_
cuja solu cao e o vetor x = (1, 1, 1, 1)
T
. Utilizando um computador com apenas 6 casas decimais
de precis ao, obtemos como solucao inicial, atraves da eliminacao Gaussiana, com pivotamento, o
vetor
x = (0, 999988, 1, 000137, 0, 999670, 1, 000215)
T
Agora, dispondo dos fatores triangulares da fatora cao LU, podemos utilizar o algoritmo 4.4.1 e
obter:
x = (0, 999994, 1, 000069, 0, 999831, 1, 000110)
T
x = (0, 999996, 1, 000046, 0, 999891, 1, 000070)
T
x = (0, 999993, 1, 000080, 0, 999812, 1, 000121)
T
x = (1, 000000, 1, 000006, 0, 999984, 1, 000011)
T
4.4.7 Metodo iterativo de Jacobi
Suponha o sistema (4.1), com n = 3, sem perda de generalidade. Se os elementos da diagonal de
A sao todos n ao-nulos, entao pode-se isolar cada vari avel x
1
, x
2
e x
3
atraves de
_
_
_
x
1
= c
12
x
2
+ c
13
x
3
+ d
1
x
2
= c
21
x
1
+ c
23
x
3
+ d
2
x
3
= c
31
x
1
+ c
32
x
2
+ d
3
onde
c
ij
=
_

aij
aii
, i = j
0, i = j
d
i
= b
i
/a
ii
Com essa transformacao, o sistema Ax = b foi transformado em um sistema da forma
(I C)x = d
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 80
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
onde C = D
1
(D A), d = D
1
b e D = diag(A) (isto e, a matriz formada pelos elementos da
diagonal de A). De forma equivalente, podemos escrever
x = Cx + d
o que sugere uma correcao de x por aproxima coes sucessivas,
x
k+1
= Cx
k
+ d = D
1
(D A)x
k
+ D
1
b =
= (I D
1
A)x
k
+ D
1
b, k = 0, 1, . . . (4.40)
a qual dene o metodo iterativo de Jacobi.
A matriz separadora, aqui, e D
1
; o metodo de Jacobi converge se a matriz A for diagonal
dominante, i.e.,
| a
ii
| >
n

j=1
j=i
| a
ij
| (4.41)
e, usando a norma-l

,
|| I D
1
A||

= max
1in
n

j=1
j=i

a
ij
a
ii

de onde pode-se vericar que a domin ancia diagonal e condi cao necess aria para a convergencia do
metodo.
Para obtermos a solu cao do sistema Ax = b via o metodo iterativo de Jacobi, podemos usar a
forma equivalente a (4.40),
x
k+1
= x
k
D
1
Ax
k
+ D
1
b (4.42)
Note que, do ponto de vista de eciencia do processo, deve-se efetuar as divis oes de cada linha de
A e do elemento respectivo de b pelo elemento na diagonal de A antes de se iniciar as itera coes.
Alem disso, se o criterio de parada envolve o c alculo do resduo r
k
= b Ax
k
, isso exigiria um
produto matriz-vetor a mais por itera cao, o que pode ser evitado se usarmos como criterio de
parada r
k+1
= D
1
r
k+1
,
|| D
1
r
k+1
|| || D
1
|| || b || (4.43)
pois
r
k+1
= D
1
r
k+1
= D
1
b D
1
Ax
k+1
e os termos no lado direito da equacao j a foram calculados, anteriormente, para se obter x
k+1
. O
algoritmo a seguir utiliza essas ideias:
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 81
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
Algoritmo 4.4.2 Metodo de Jacobi
proc jacobi(input: A, b, x
0
, k
max
, ; output: x
k+1
)
for i = 1, 2, . . . , n do
q
i
a
1
ii
endfor
t || q || || b ||
for i = 1, 2, . . . , n do
for j = 1, 2, . . . , n do
a
ij
a
ij
q
i
% sobrescreve A com D
1
A
endfor
b
i
b
i
q
i
% sobrescreve b com D
1
b
endfor
for k = 0, 1, . . . , k
max
do
w Ax
k
x
k+1
= x
k
w + b
r
k+1
b w
if || r
k+1
|| < t then
break
endif
endfor
endproc
O exemplo abaixo ilustra o comportamento tpico do metodo de Jacobi:
Exemplo 4.7 Resolva o sistema
_

_
4 1 1 0
1 4 0 1
1 0 4 1
0 1 1 4
_

_
x =
_

_
0
1
1
0
_

_
cuja solu cao e x

= (0, 1667, 0, 3333, 0, 3333, 0, 1667)


T
, usando o metodo de Jacobi com x
0
=
(0, 0, 0, 0)
T
a uma toler ancia = 10
2
.
Solu cao: Aplicando o metodo de Jacobi, obtemos
x
1
= (0, 0, 25, 0, 25, 0)
T
x
2
= (0, 125, 0, 25, 0, 25, 0, 125)
T
x
3
= (0, 125, 0, 3125, 0, 3125, 0, 125)
T
x
4
= (0, 1563, 0, 3125, 0, 3125, 0, 1563)
T
x
5
= (0, 1563, 0, 3281, 0, 3281, 0, 1563)
T
x
6
= (0, 1641, 0, 3281, 0, 3281, 0, 1641)
T
x
7
= (0, 1641, 0, 3320, 0, 3320, 0, 1641)
T
x
8
= (0, 1660, 0, 3320, 0, 3320, 0, 1660)
T
ou seja, com oito itera coes, obtemos uma aproximac ao para a solucao dentro da tolerancia espe-
cicada.
4.4.8 Metodo iterativo de Gauss-Seidel
Analisando o metodo de Jacobi, ve-se que, a cada iteracao, produzem-se todos os elementos do
vetor x
k+1
, usando apenas os elementos do vetor x
k
. No entanto, nada impede que, ` a medida
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 82
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
que os elementos de x
k+1
sao produzidos, eles possam ser utilizados para produzir os pr oximos
elementos do pr oprio x
k+1
. O metodo de Gauss-Seidel faz exatamente isso.
De forma an aloga ao metodo de Jacobi, escrevemos, para n = 3,
_
_
_
x
k+1,1
= u
12
x
k,2
+ u
13
x
k,3
+ d
1
x
k+1,2
= l
21
x
k+1,1
+ u
23
x
k,3
+ d
2
x
k+1,3
= l
31
x
k+1,1
+ l
32
x
k+1,2
+ d
3
ou, em forma matricial,
x
k+1
= Lx
k+1
+ Ux
k
+ d (4.44)
onde L = D
1
A
L
, U = D
1
A
U
, D = diag(A), d = D
1
b e A
L
e A
U
indicam as por coes
estritamente inferior e superior de A (isto e, sem a diagonal).
No caso do metodo de Gauss-Seidel, podemos escrever a correcao para x
k+1
de forma mais
compacta; note que a expressao Lx
k+1
+ Ux
k
pode ser calculada como
n

j=1
j=i
_
a
ij
a
ii
_
x
j
, i = 1, 2, . . . , n
O criterio de parada, no entanto, deve ser calculado usando o resduo r
k+1
= b Ax
k+1
, como
mostra o algoritmo 4.4.3.
Algoritmo 4.4.3 Metodo de Gauss-Seidel
proc gauss seidel(input: A, b, x
0
, k
max
, ; output: x
k+1
)
for i = 1, 2, . . . , n do
q
i
a
1
ii
endfor
t || q || || b ||
for i = 1, 2, . . . , n do
for j = 1, 2, . . . , n do
a
ij
a
ij
q
i
% sobrescreve A com D
1
A
endfor
b
i
b
i
q
i
% sobrescreve b com D
1
b
endfor
for k = 0, 1, . . . , k
max
do
u x
k
for i = 1, 2, . . . , n do
u
i
b

n
j=1
j=i
a
ij
u
j
endfor
x
k+1
u
r
k+1
b Ax
k+1
if || r
k+1
|| < t then
break
endif
endfor
endproc
O exemplo 4.8 ilustra o comportamento tpico do metodo de Gauss-Seidel:
Exemplo 4.8 Resolva o sistema
_

_
4 1 1 0
1 4 0 1
1 0 4 1
0 1 1 4
_

_
x =
_

_
0
1
1
0
_

_
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 83
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
cuja solu cao e x

= (0, 1667, 0, 3333, 0, 3333, 0, 1667)


T
, usando o metodo de Gauss-Seidel com
x
0
= (0, 0, 0, 0)
T
a uma toler ancia = 10
2
.
Solu cao: Aplicando o metodo de Gauss-Seidel, obtemos
x
1
= (0, 0, 25, 0, 25, 0, 125)
T
x
2
= (0, 125, 0, 3125, 0, 3125, 0, 1563)
T
x
3
= (0, 1563, 0, 3281, 0, 3281, 0, 1641)
T
x
4
= (0, 1641, 0, 3320, 0, 3320, 0, 1660)
T
ou seja, com quatro itera coes, obtemos uma aproximac ao para a solucao dentro da tolerancia
especicada.
Da mesma forma que o metodo de Jacobi, uma condi cao necess aria e suciente para a conver-
gencia do metodo de Gauss-Seidel e que a matriz A seja diagonal-dominante (ver equa cao 4.41).
Existe um criterio de Sassenfeld que, se atendido, garante a convergencia do metodo. Para se
vericar se uma matriz de coecientes do sistema satisfaz a tal criterio, calcula-se os valores S
1
,
S
2
, . . ., S
n
, denidos como
S
1
=
1
| a11 |
(| a
12
| +| a
13
| + . . . +| a
1n
|
S
2
=
1
| a22 |
(| a
21
|S
1
+| a
23
| + . . . +| a
2n
|
.
.
.
S
n
=
1
| ann |
(| a
n1
|S
1
+ | a
n2
|S
2
+ . . . +| a
nn1
|S
n1
(4.45)
e, se
S
i
< 1, 1 i n
ent ao o metodo de Gauss-Seidel ira convergir.
Exemplo 4.9 Para a matriz do exemplo 4.8, verique se o criterio de Sassenfeld e atendido.
Solu cao: Calculando os valores de S
i
, temos:
S
1
=
1
| 4 |
(| 1 | +| 1 |) = 0, 5 < 1
S
2
=
1
| 4 |
(| 1 |0, 5 +| 1 |) = 0, 375 < 1
S
3
=
1
| 4 |
(| 1 |0, 5 +| 1 |) = 0, 375 < 1
S
4
=
1
| 4 |
(| 1 |0, 375 +| 1 |0, 375) = 0, 1875 < 1
e, como S
i
< 1, 1 i 4, o criterio de Sassenfeld e atendido e, por conseguinte, o metodo de
Gauss-Seidel e convergente para um sistema com essa matriz de coecientes.
O criterio de Sassenfeld e, no entanto, apenas suciente; uma matriz pode n ao atende-lo e,
mesmo assim, o metodo de Gauss-Seidel pode convergir, como mostra o exemplo abaixo.
Exemplo 4.10 Resolva o sistema
_
1 1
1 3
_
x =
_
3
3
_
Solu cao: O criterio de Sassenfeld n ao e satisfeito pois, calculando os valores de S
i
, temos
S
1
=
1
| 1 |
(| 1 | = 1 < 1
S
2
=
1
| 3 |
(| 1 |1) = 0, 333 . . . < 1
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 84
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
No entanto, o metodo de Gauss-Seidel converge para a solu cao x

= (1, 5, 1, 5)
T
em 11
itera c oes, a uma toler ancia de 10
4
:
x
0
= (0, 0000, 0, 0000)
T
x
1
= (3, 0000, 2, 0000)
T
x
2
= (1, 0000, 1, 3333)
T
x
3
= (1, 6667, 1, 5556)
T
x
4
= (1, 4444, 1, 4815)
T
x
5
= (1, 5185, 1, 5062)
T
x
6
= (1, 4938, 1, 4979)
T
x
7
= (1, 5021, 1, 5007)
T
x
8
= (1, 4993, 1, 4998)
T
x
9
= (1, 5002, 1, 5001)
T
x
10
= (1, 4999, 1, 5000)
T
x
11
= (1, 5000, 1, 5000)
T
Note que a dominancia diagonal de uma matriz e relacionada com a ordem em que as equa coes
se apresentam. Uma simples troca entre duas linhas pode ser desastrosa, como mostra o exemplo
a seguir.
Exemplo 4.11 Seja o sistema apresentado no exemplo 4.10, com as linhas trocadas entre si, i.e.
_
1 3
1 1
_
x =
_
3
3
_
Nesse caso, como a matriz do sistema n ao e diagonal-dominante, o metodo de Gauss-Seidel
diverge, apresentando como primeiras estimativas os vetores
x
0
= (0, 0000, 0, 0000)
T
x
1
= (3, 0000, 6, 0000)
T
x
2
= (15, 0000, 12, 0000)
T
x
3
= (39, 0000, 42, 0000)
T
.
.
.
x
8
= (29523, 0000, 29526, 0000)
T
x
9
= (88575, 000, 88572, 0000)
T
.
.
.
x
20
= (5, 2302 10
9
, 5, 2302 10
9
)
T
apesar do sistema ter a mesma soluc ao x

= (1, 5, 1, 5)
T
.
4.4.9 Extrapola cao de um metodo iterativo
Uma das formas de garantir e/ou acelerar a convergencia de um metodo iterativo e utilizar uma
tecnica de extrapolacao, a qual consiste em se combinar a correcao da estimativa x
k
dada pela
equa cao governante do metodo iterativo com uma outra corre cao, semelhante. Em termos das
fun coes , isso pode ser expresso como
x
k+1
=
k
(x
0
, x
1
, . . . , x
k
, A, b) + (1 )

k
(x
0
, x
1
, . . . , x
k
, A, b), IR (4.46)
Note que, se = 1, temos o metodo iterativo original.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 85
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
Por exemplo, no caso do metodo de Jacobi, podemos usar

k
(x
0
, x
1
, . . . , x
k
, A, b) = I (ou seja,
a matriz identidade). Assim temos o metodo de relaxacao de Jacobi (JOR),
x
k+1
= (x
k
D
1
Ax
k
+ D
1
b) + (1 )x
k
, 0 < 1 (4.47)
e, de forma an aloga, temos o metodo das relaxa coes sucessivas (SOR), uma variante do metodo
de Gauss-Seidel,
x
k+1
= (Lx
k+1
+ Ux
k
+ d) + (1 )x
k
, 0 < < 2 (4.48)
Exemplo 4.12 Seja o sistema
_

_
2 1 0 1
1 2 1 0
0 1 2 1
1 0 1 2
_

_
x =
_

_
1
3
3
1
_

_
cuja solu cao e (0, 1, 1, 0)
T
. Utilizando-se o metodo JOR para resolve-lo, com = 0, 65, a uma
toler ancia = 10
2
, obtemos:
x
0
= (0, 0000, 0, 0000, 0, 0000, 0, 0000)
T
x
1
= (0, 3250, 0, 9750, 0, 9750, 0, 3250)
T
x
2
= (0, 0163, 0, 8937, 0, 8937, 0, 0163)
T
x
3
= (0, 0349, 0, 9921, 0, 9921, 0, 0349)
T
x
4
= (0, 0035, 0, 9884, 0, 9884, 0, 0035)
T
x
5
= (0, 0038, 0, 9986, 0, 9986, 0, 0038)
T
ou seja, com cinco itera coes, obtemos uma aproximacao para a solucao dentro da tolerancia espe-
cicada. O metodo de Jacobi, se utilizado para resolver o mesmo metodo, n ao alcanca a solu cao
apos 200 itera coes.
Exemplo 4.13 Seja o sistema
_

_
4 1 1 0
1 4 0 1
1 0 4 1
0 1 1 4
_

_
x =
_

_
0
1
1
0
_

_
cuja solu cao e x

= (0, 1667, 0, 3333, 0, 3333, 0, 1667)


T
. Utilizando-se o metodo SOR para resolve-
lo, com = 1, 1, a uma toler ancia = 10
2
, obtemos:
x
0
= (0, 0000, 0, 2750, 0, 2750, 0, 1513)
T
x
1
= (0, 1513, 0, 3307, 0, 3307, 0, 1668)
T
x
2
= (0, 1668, 0, 3336, 0, 3336, 0, 1668)
T
ou seja, com tres itera coes, obtemos uma aproximacao para a solucao dentro da tolerancia espe-
cicada (compare com o exemplo 4.8).
4.5 Metodo do Gradiente
O metodo do gradiente e indicado para resolver um SELA onde A e uma matriz simetrica, positivo-
denida (SPD), i.e.
x
T
Ax > 0, x IR
n
(4.49)
Uma outra caracterstica de matrizes SPD e que todos os seus autovalores sao estritamente
positivos.
O metodo baseia-se na relacao existente entre a solucao de um SELA e a minimiza cao da forma
quadr atica, quando A for SPD. Assim, inicialmente veremos o que e a forma quadr atica e alguns
exemplos da mesma.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 86
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
4.5.1 Forma Quadratica
A forma quadr atica e uma fun cao vetorial f :
n
dada por
f(x) =
1
2
x
T
Ax b
T
x + c (4.50)
onde A IR
nn
, x IR
n
, b IR
n
e c IR.
Por exemplo, considere o sistema
_
2 1
1 2
_
x =
_
1
1
_
(4.51)
cuja solu cao e x

= (1, 1)
T
. A matriz de coecientes e SPD e a gura 4.5 mostra o gr aco e as
curvas de nvel da forma quadr atica correspondente (com c = 0). Note que o gr aco da fun cao
e um parabol oide portanto, com apenas um ponto de mnimo e que aparentemente, o ponto
(1, 1) (ou seja, a solu cao do sistema) e o ponto de mnimo da fun cao.
J a as guras 4.6-4.8 mostram outras situacoes possveis, dependendo dos valores dos elementos
de A (todos os sistemas tiveram xada a sua solu cao em (1, 1) e os termos independentes foram
calculados adequadamente). Por exemplo, na gura 4.6, temos os gr acos para a matriz negativo-
denida
_
2 1
1 2
_
i.e., x
T
Ax < 0, x; note que a forma do gr aco e um parabol oide invertido, com apenas um ponto
de m aximo e a situacao oposta ` a de uma matriz SPD.
Na gura 4.7, temos o caso em que a forma quadratica assume tanto valores negativos quanto
positivos o gr aco da fun cao e a chamada sela. A matriz em questao e
_
1 4
4 5
_
Finalmente, o gr aco e as curvas de nvel para a forma quadr atica exibidos na gura 4.8
correspondem a uma matriz quase-singular,
_
1 2
2 3, 8
_
a qual apresenta innitas solucoes ao longo da reta na base do gr aco.
Para vericarmos se isso e verdade, vamos calcular f

(x) = 0. Como f e uma fun cao vetorial,


a sua derivada ou gradiente e dada por
f

(x) =
_

x1
f(x)

x2
f(x)
.
.
.

xn
f(x)
_

_
(4.52)
o qual representa um campo vetorial; para um dado ponto x, ele aponta na dire cao de maior
varia cao de f(x). O gr aco de f

(x) na gura 4.9 e tpico da situa cao em que A e SPD:


Aplicando a equa cao (4.52) ` a (4.50), obtemos
f

(x) =
1
2
A
T
x +
1
2
Ax b (4.53)
e, se A e simetrica, A = A
T
, de onde
f

(x) = Ax b.
Igualando f

(x) a zero, obtemos Ax = b, ou seja, o sistema que queremos resolver. Portanto,


podemos dizer que
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 87
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
Figura 4.5: Gr aco de f(x) e suas curvas de nvel para A SPD.
Figura 4.6: Gr aco de f(x) e suas curvas de nvel para A ND.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 88
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
Figura 4.7: Gr aco de f(x) e suas curvas de nvel para A indenida.
Figura 4.8: Gr aco de f(x) e suas curvas de nvel para A singular.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 89
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
Figura 4.9: Gr aco de f

(x) para A SPD.


minimizar a forma quadr atica f(x) =
1
2
x
T
Axb
T
x+c equivale a resolver o sistema
Ax = b se A for simetrica.
Se a matriz A e positivo-denida, alem de simetrica, ent ao a solu cao de Ax = b e o mnimo
( unico) de f(x); logo, para A SPD, a solu cao x = A
1
b e o ponto x que minimiza f(x). Isso pode
ser mostrado como segue.
Suponha A simetrica, x um vetor que satisfaz Ax = b, y um vetor similar a x (em termos
geometricos, y e um ponto pr oximo a x) e e = y x o vetor erro; ent ao,
f(x + e) =
1
2
(x + e)
T
A(x + e) b
T
(x + e) + c
=
1
2
x
T
Ax + e
T
Ax +
1
2
e
T
Ae b
T
x b
T
e + c
.
.. b = Ax; A = A
T
.
..
=
1
2
x
T
Ax b
T
x + c + e
T
b +
1
2
e
T
Ae b
T
e
= f(x) +
1
2
e
T
Ae (4.54)
e
f(x + e) = f(x x + y) = f(y) = f(x) +
1
2
(y x)
T
A(y x) (4.55)
Agora, como A e SPD, por hip otese, entao
(y x)
T
A(y x) > 0, y
e, portanto, f(y) > f(x). Isso mostra que x e o mnimo de f(x), nesse caso.
4.5.2 Descri cao do metodo do Gradiente
O gr aco da forma quadr atica, para A SPD, nos sugere uma estrategia para localizarmos a
solu cao do sistema: basta escorregar ao longo das paredes do paraboloide, pois isso nos levara,
necessariamente, ao ponto de mnimo. A quest ao que se coloca agora e: qual dire cao devemos
tomar, a partir de um x
k
, para obtermos um x
k+1
que seja mais pr oximo da solu cao?
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 90
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
Figura 4.10: O vetor erro e
0
e o vetor resduo r
0
.
Lembramos que o gradiente f

(x) aponta na dire cao de maior aumento de f(x), em sentido


oposto ao fundo do parabol oide.

E natural, portanto, que andemos ao longo da dire cao oposta
ao gradiente, isto e, f

(x) = b Ax. Ora, conforme visto anteriormente, r


k
= b Ax
k
, de onde
estabelecemos as seguintes rela coes entre o vetor resduo e o gradiente de f(x):
r
k
= f

(x) (4.56)
r
k
= b Ax
k
.
.. e
k
= x
k
x

.
..
= b Ax

Ae
k
.
.. x

= A
1
b
.
..
= Ae
k
(4.57)
A equa cao (4.56) nos diz que o resduo tem a mesma direcao do gradiente, porem sentido oposto;
j a a equa cao (4.57) nos diz que o resduo e o vetor erro, transformado por A (e, portanto, no
mesmo espa co de b).
Suponha, ent ao, que temos a seguinte situacao, conforme a gura 4.10. Como decidimos andar
ao longo do vetor resduo, a partir de x
0
, a nova estimativa x
1
e um ponto sobre a reta r
0
, ou seja
x
1
= x
0
+
0
r
0
,
0
IR (4.58)
O escalar
0
indica o deslocamento sobre r
0
. Para determinar o melhor
0
ou seja, aquele para
o qual || x
1
x

|| e mnimo derivamos f(x


1
) em relacao a
0
e igualamo-la a zero:
d
d
0
f(x
1
) = f

(x
1
)
T
d
d
0
x
1
= f

(x
1
)
T
r
0
(4.59)
Note que f

(x
1
)
T
r
0
e o produto escalar entre os vetores f

(x
1
) e r
0
. Como o produto escalar e
dado por
u
T
v = || u || || v || cos
onde e o angulo formado entre os vetores u e v, ao igualarmos f

(x
1
)
T
r
0
a zero, estamos exigindo
que os vetores f

(x
1
) e r
0
sejam ortogonais entre si. Como f

(x
1
) = r
1
, isso implica que dois
resduos sucessivos sao ortogonais entre si; a gura 4.11 mostra tres situa coes tpicas para a solucao
do sistema (4.51), com as seq uencias de resduos (representados pelas retas) gerados pelo metodo
do Gradiente a partir de tres diferentes estimativas iniciais.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 91
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
Figura 4.11: Caminhos tpicos no metodo do Gradiente.
A partir da equa cao (4.59), pode-se o obter o valor de
0
:
f

(x
1
)
T
r
0
= 0
.
.. f

(x
1
) = r
1
.
..
r
T
1
r
0
= 0
(b Ax
1
)
T
r
0
= 0
(b Ax
0

0
Ar
0
)
T
r
0
= 0
(r
0

0
Ar
0
)
T
r
0
= 0
de onde

0
=
r
T
0
r
0
r
T
0
Ar
0
(4.60)
O que signica minimizar f

(x
1
)? Os gracos mostrados na gura 4.12 mostram que, para
0
calculado conforme a equa cao (4.60), a nova estimativa x
1
corresponde ao mnimo da par abola
obtida como se tivessemos cortado o parabol oide f(x) por um plano vertical ao plano xy que
passa pela reta r
0
!
Utilizando as equacoes (4.58) e (4.60), alem da expressao para o resduo, devidamente ge-
neralizadas para a k-esima iteracao, podemos escrever um algoritmo que descreve o metodo do
Gradiente. Antes, porem, note que
r
1
= r
0

0
Ar
0
conforme obtido na deriva cao da equacao (4.60); essa express ao nos permite economizar um
produto matriz-vetor da forma Ax
k
, pois Ar
k
j a tera sido calculado previamente para se obter
k
.
O algoritmo pode ser, ent ao, escrito como segue.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 92
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
Figura 4.12: e escolhido de tal forma que f(x
1
) e mnima.
Algoritmo 4.5.1 Metodo do Gradiente
proc gradiente(input: A, b, x
0
, k
max
, ; output: x
k+1
)
t || b ||
r
0
b Ax
0
for k = 0, 1, . . . , k
max
do
w
k
Ar
k

k

r
T
k
r
k
r
T
k
w
k
x
k+1
x
k
+
k
r
k
r
k+1
r
k

k
w
k
if || r
k+1
|| < t then
break
endif
endfor
endproc
O exemplo seguinte ilustra o comportamento tpico do metodo do Gradiente:
Exemplo 4.14 Resolva o sistema
_

_
4 1 1 0
1 4 0 1
1 0 4 1
0 1 1 4
_

_
x =
_

_
0
1
1
0
_

_
cuja solu cao e x

= (0, 1667, 0, 3333, 0, 3333, 0, 1667)


T
, usando o metodo do Gradiente com x
0
=
(0, 0, 0, 0)
T
a uma toler ancia = 10
2
.
Solu cao: Aplicando o metodo do Gradiente, obtemos
x
1
= (0, 0, 25, 0, 25, 0)
T
x
2
= (0, 125, 0, 25, 0, 25, 0, 125)
T
x
3
= (0, 125, 0, 3125, 0, 3125, 0, 125)
T
x
4
= (0, 1563, 0, 3125, 0, 3125, 0, 1563)
T
x
5
= (0, 1563, 0, 3281, 0, 3281, 0, 1563)
T
x
6
= (0, 1641, 0, 3281, 0, 3281, 0, 1641)
T
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 93
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
Figura 4.13: Metodo das Dire coes-Conjugadas: a cada itera cao e corrigida uma componente do
vetor solucao.
ou seja, com seis itera c oes, obtemos uma aproximacao para a solucao dentro da tolerancia espe-
cicada.
Um possvel problema ao se utilizar a f ormula de recorrencia para r
k+1
no metodo do Gradi-
ente e a perda de ortogonalidade entre os vetores resduo, causada pela acumula cao de erros de
ponto-utuante. Isso pode ser detectado atraves do calculo do produto-interno entre dois resduos
sucessivos, r
T
k1
r
k
; caso essa quantidade seja maior do que, por exemplo,

(onde e o epsilon
da maquina), deve-se recalcular r
k
= b Ax
k
, e proceder normalmente com o algoritmo.
4.6 Metodo das Direcoes-Conjugadas
Conforme visto anteriormente, o metodo do Gradiente toma sucessivas direcoes os resduos
que sao ortogonais entre si. Isso signica que a solucao e procurada repetindo-se dire coes. Ora,
se para uma dada dire cao, a solu cao n ao foi encontrada ao longo dela, ent ao por que utiliz a-la
novamente?
Uma alternativa e a seguinte: suponha que tenhamos um conjunto de n dire coes de procura
d
0
, d
1
, . . ., d
n1
. Em cada i-esima direcao, caminha-se exatamente a dist ancia necessaria para
se obter a i-esima componente da solu cao, x

i
; ap os termos percorrido todas as n dire coes dessa
forma, todas as componentes de x

estar ao corretas, e a solu cao ter a sido obtida. Na gura 4.13,


a primeira itera cao corrige x
2
, e a segunda corrige x
1
(note que e
1
e ortogonal a d
0
).
De forma semelhante ao metodo do Gradiente, as itera coes sao da forma
x
i+1
= x
i
+
i
d
i
,
i
IR (4.61)
e, para determinar
i
, tomamos e
i+1
ortogonal a d
i
, de forma que n ao mais se percorra a direcao
d
i
. Ent ao:
d
T
i
e
i+1
= 0
.
.. e
i+1
= x
i+1
x

= x
i
+
i
d
i
x

= e
i
+
i
d
i
.
..
d
T
i
(e
i
+
i
d
i
) = 0
d
T
i
e
i
+
i
d
T
i
d
i
= 0
de onde

i
=
d
T
i
e
i
d
T
i
d
i
(4.62)
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 94
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
Infelizmente esta equacao e in util, pois para calcular
i
e necessario e
i
; porem, se e
i
fosse conhecido,
a solu cao seria imediata, por deni cao.
Podemos corrigir essa situa cao se considerarmos a determina cao de
i
como um problema de
minimiza cao ao longo da dire cao d
i
, de maneira an aloga ao metodo do Gradiente. Nesse caso,
temos:
d
d
f(x
i+1
) = 0
f

(x
i+1
)
T
d
d
x
i+1
= 0
.
.. por (4.56) e (4.61), vem
r
T
i+1
d
i
= 0
.
.. por (4.57), vem
d
T
i
Ae
i+1
= 0 (4.63)
A equa cao (4.63) nos diz que o vetor erro e
i+1
, transformado para o espa co gerado pelas colunas de
A, e ortogonal a d
i
. Quaisquer dois vetores u e v que satisfa cam u
T
Av = 0 sao ditos A-ortogonais
entre si.
De posse da equacao (4.63), podemos determinar uma outra express ao para
i
, a qual pode,
dessa vez, ser calculada:
d
T
i
Ae
i+1
= 0
.
.. e
i+1
= e
i
+
i
d
i
.
..
d
T
i
Ae
i
+
i
d
T
i
Ad
i
= 0

i
=
d
T
i
Ae
i
d
T
i
Ad
i
.
.. por (4.57), vem

i
=
d
T
i
r
i
d
T
i
Ad
i
(4.64)
Note que, se d
i
r
i
, ent ao temos a mesma formula utilizada para
i
no metodo do Gradiente.
Conforme proposto quando da motiva cao do metodo das Dire coes-Conjugadas, vejamos como
o metodo converge em n passos. Podemos expressar o vetor erro e
0
como combinacao linear dos
vetores direcao,
e
0
=
n1

j=0

j
d
j
(4.65)
Para determinarmos as constantes
j
, valemo-nos da propriedade de A-ortogonalidade entre os
vetores d
j
; pre-multiplicando (4.65) por d
T
k
A, obtemos
d
T
k
Ae
0
=
n1

j=0

j
d
T
k
Ad
j
e, como d
T
k
Ad
j
= 0, i = j, podemos eliminar todos os termos do somat orio, menos o termo para
j = k, de onde
d
T
k
Ae
0
=
k
d
T
k
Ad
k

k
=
d
T
k
Ae
0
d
T
k
Ad
k
(4.66)
Precisamos, ainda, encontrar uma equa cao para e
0
que n ao envolva
k
; escrevendo as expressoes
para os vetores erro, temos
e
0
= x
0
x

e
1
= x
1
x

= e
0
+
0
d
0
= x
0
x +
0
d
0
= e
0
+
0

i=0

i
d
i
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 95
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
e
2
= x
2
x

= e
1
+
1
d
1
= x
0
x +
1
d
1
+
0
d
0
= e
0
+
1

i=0

i
d
i
.
.
.
.
.
.
.
.
.
e
k
= x
k
x

= e
k1
+
k1
d
k1
= x
0
x +
k1
d
k1
+ . . . +
0
d
0
= e
0
+
k1

i=0

i
d
i
de onde
e
0
= e
k

k1

i=0

i
d
i
(4.67)
Agora, substituindo a equa cao (4.67) em (4.66), obtemos

k
=
d
T
k
Ae
k

k1
i=0

i
d
T
k
Ad
i
d
T
k
Ad
k
e, como d
T
k
Ad
i
= 0, k = i, o segundo termo no numerador e nulo (pois apenas os vetores d
0
, d
1
,
. . ., d
k1
aparecem no somatorio). Assim, obtemos

k
=
d
T
k
Ae
k
d
T
k
Ad
k
(4.68)
Comparando as equacoes (4.68) e (4.64), vemos que
i
=
i
. Podemos, ent ao, reescrever (4.67)
como
e
i
= e
0

k1

j=0

j
d
j
=
n1

j=0

j
d
j

k1

j=0

j
d
j
=
n1

j=k

j
d
j
(4.69)
A equa cao (4.69) pode ser interpretada da seguinte forma: quando k = 0, i.e. na primeira itera cao,
todas as componentes de x

estao erradas (em princpio), logo e


0
e combinacao linear de todas as
dire coes de busca d
i
. Na segunda itera cao, uma componente j a foi corrigida ao longo da dire cao
d
0
e, portanto, o erro e
1
so deve ter componentes diferentes de zero ao longo das direcoes d
1
,
d
2
, . . ., d
k1
. Procedendo com esse raciocnio ate e
n1
, vemos que o processo de se obter uma
componente correta de x

a cada itera cao equivale a se eliminar a componente correspondente do


erro a cada itera cao.
Neste estagio, resta-nos determinar as direcoes d
i
, de maneira que sejam A-ortogonais entre
si. Podemos obter tais dire coes se tomarmos um conjunto de vetores linearmente independentes
u
i
, e os A-ortogonalizarmos atraves de uma modica cao do processo de Gram-Schmidt. Para se
gerar um vetor d
i
, subtraem-se de u
i
todas as componentes que nao sejam A-ortogonais aos i 1
vetores d anteriores, ou seja,
d
0
= u
0
d
i
= u
i
+

i1
k=0

ik
d
k
, i > 0
(4.70)
Para determinarmos os valores das constantes
ik
, p os-multiplicamos a expressao para d
i
em (4.70)
por Ad
j
, de onde
d
T
i
Ad
j
= u
T
i
Ad
j
+
i1

k=0

ik
d
T
k
Ad
j
; |i > j
0 = u
T
i
Ad
j
+
ij
d
T
j
Ad
j
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 96
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
pela A-ortogonalidade entre os vetores d
i
. Assim, podemos escrever

ij
=
u
T
i
Ad
j
d
T
j
Ad
j
(4.71)
O processo acima requer o armazenamento de todos os n vetores d
i
, o que pode n ao ser desej avel
para sistemas lineares com n grande.
Cabe notar que, se os vetores u
i
sao os vetores can onicos (i.e. a i-esima componente de u
i
e igual a 1 e todas as demais sao nulas), ent ao o metodo das Dire coes-Conjugadas reduz-se ` a
Elimina cao Gaussiana.
Um algoritmo que expressa o metodo das Dire coes-Conjugadas, pode ser escrito como segue;
cabe ressaltar que, apesar do metodo ser considerado um metodo direto, por convergir em exata-
mente n itera coes, para um sistema de n equa coes lineares, ele pode tambem ser considerado um
metodo iterativo, pois e possvel que, devido a erros de arredondamento, a solu cao seja alcan cada
em menos do que n itera coes.
Algoritmo 4.6.1 A-ortogonalizacao
proc A ortogonaliza(input: U; output: D)
% U e D s ao matrizes n n cujas colunas
% s ao os vetores u
i
e d
i
, respectivamente.
d
0
u
0
for i 1, 2, . . . , n do
s 0
for k = 1, 2, . . . , i 1 do
w Ad
k

u
T
i
w
d
T
k
w
s s d
k
endfor
d
i
d
i
+ s
endfor
endproc
Algoritmo 4.6.2 Metodo das Dire coes-Conjugadas
proc dire coes conjugadas(input: A, b, U, x
0
, k
max
, ; output: x
k+1
)
call A ortogonaliza(U;D)
t || b ||
r
0
b Ax
0
for k = 0, 1, . . . , k
max
do
w
k
Ad
k

k

d
T
k
r
k
d
T
k
w
k
x
k+1
x
k
+
k
d
k
r
k+1
r
k

k
w
k
if || r
k+1
|| < t then
break
endif
endfor
endproc
O exemplo a seguir ilustra o comportamento tpico do metodo das Dire coes-Conjugadas:
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 97
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
Exemplo 4.15 Resolva o sistema
_

_
4 1 1 0
1 4 0 1
1 0 4 1
0 1 1 4
_

_
x =
_

_
0
1
1
0
_

_
cuja solu cao e x

= (0, 1667, 0, 3333, 0, 3333, 0, 1667)


T
, usando o metodo das Dire coes-Conjugadas
com x
0
= (0, 0, 0, 0)
T
a uma toler ancia = 10
2
; os vetores u
i
s ao tomados como vetores
aleatorios.
Solu cao: Aplicando o metodo das Dire coes-Conjugadas, obtemos
x
1
= (0, 2113, 0, 2071, 0, 0927, 0, 2018)
T
x
2
= (0, 1950, 0, 2941, 0, 3595, 0, 1705)
T
x
3
= (0, 1986, 0, 2961, 0, 3578, 0, 1649)
T
x
4
= (0, 1667, 0, 3333, 0, 3333, 0, 1667)
T
ou seja, com quatro itera coes, obtemos uma aproximacao para a solucao, com um resduo da ordem
de 10
15
. Normalmente, no caso desse metodo, o resduo da solu cao obtida sera um n umero
pr oximo ao epsilon da m aquina.
4.7 Metodo dos Gradientes-Conjugados
O metodo dos Gradientes-Conjugados nada mais e do que o metodo das Dire coes-Conjugadas,
onde os vetores u
i
sao tomados como os vetores resduo r
i
. Essa escolha nos permitir a simplicar
sobremaneira o processo de Gram-Schmidt descrito anteriormente.
Suponha o espa co gerado pelos vetores direcao. Pela equa cao (4.67), vemos que o i-esimo vetor
e
i
e gerado como combina cao linear dos vetores d
i
e pelo vetor erro e
0
. Podemos, ent ao, derivar
algumas importantes rela coes que ser ao utilizadas a seguir. Se pre-multiplicarmos a equacao (4.69)
por d
T
i
A, vem
d
T
i
Ae
j
=
n1

j=i

j
d
T
i
Ad
j
e, pela A-ortogonalidade entre os vetores d
i
, temos
d
T
i
r
j
= 0, i < j (4.72)
Alem disso, o i-esimo resduo e ortogonal aos i 1 vetores u,
d
T
i
r
j
= u
T
i
r
j
+
i1

k=0

ik
d
T
k
r
j
(4.73)
0 = u
T
i
r
j
, i < j (4.74)
de onde
d
T
i
r
i
= u
T
i
r
i
(4.75)
Como os vetores u
i
sao tomados como os vetores resduo r
i
, a equa cao (4.74) pode ser reescrita
como
r
T
i
r
j
= 0, i = j (4.76)
De maneira semelhante ao utilizado no metodo do Gradiente, podemos obter uma f ormula de
recorrencia para r
i+1
,
r
i+1
= Ae
i+1
= A(e
i
+
i
d
i
) =
= Ae
i

i
Ad
i
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 98
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
de onde
r
i+1
= r
i

i
Ad
i
(4.77)
Agora, de posse das equacoes (4.76) e (4.77), podemos simplicar a express ao para
ij
. Subs-
tituindo i por j em (4.77) e pre-multiplicando-a por r
i
, vem
r
T
i
r
j+1
= r
T
i
r
j

j
r
T
i
Ad
j

j
r
T
i
Ad
j
= r
T
i
r
j
r
T
i
r
j+1
de onde
r
T
i
Ad
j
=
_
_
_
1
i
r
T
i
r
i
, i = j

1
i1
r
T
i
r
i
, i = j + 1, pela equa cao (4.76)
0, c.c.
(4.78)
e, entao,
ij
pode ser escrito como

ij
=
_
1
i1
r
T
i
ri
d
T
i1
Adi1
, i = j + 1
0, i > j + 1
(4.79)
Devido ` a A-ortogonalidade entre os vetores dire cao e os resduos, a grande maioria dos termos
necessarios ` a formula cao de
ij
pode ser descartada. Utilizando as equacoes (4.64), (4.75) e (4.76),
a equa cao (4.79) pode ser simplicada ainda mais:

i
=
d
T
i1
Ad
i1
d
T
i1
r
i1
r
T
i
r
i
d
T
i1
Ad
i1
=
r
T
i
r
i
d
T
i1
r
i1
=
=
r
T
i
r
i
r
T
i1
r
i1
(4.80)
onde o subscrito em j foi descartado, por ser desnecess ario.
Tendo obtido essa expressao para
i
, podemos combin a-la com as equacoes (4.61), (4.64) e
(4.77), de forma a escrever um algoritmo que expressa o metodo dos Gradientes-Conjugados,
conforme ilustrado a seguir. Note que, a partir da equa cao (4.70), e considerando que u
i
r
i
,
expressamos um vetor dire cao como
d
i+1
= r
i+1
+
i+1
d
i
(4.81)
Algoritmo 4.7.1 Gradientes-Conjugados
proc gradientes conjugados(input: A, b, x
0
, k
max
, ; output: x
k+1
)
t || b ||
r
0
b Ax
0
d
0
r
0
for k = 0, 1, . . . , k
max
do
w
k
Ad
k

k

r
T
k
r
k
d
T
k
w
k
x
k+1
x
k
+
k
d
k
r
k+1
r
k

k
w
k
if || r
k+1
|| < t then
break
endif

k+1

r
T
k+1
r
k+1
r
T
k
r
k
d
k+1
r
k+1
+
k+1
d
k
endfor
endproc
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 99
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
O exemplo seguinte ilustra o comportamento tpico do metodo dos Gradientes-Conjugados:
Exemplo 4.16 Resolva o sistema
_

_
4 1 1 0
1 4 0 1
1 0 4 1
0 1 1 4
_

_
x =
_

_
0
1
1
0
_

_
cuja solu cao e x

= (0, 1667, 0, 3333, 0, 3333, 0, 1667)


T
, usando o metodo dos Gradientes-Conjugados
com x
0
= (0, 0, 0, 0)
T
a uma toler ancia = 10
2
.
Solu cao: Aplicando o metodo dos Gradientes-Conjugados, obtemos
x
1
= (0, 0, 25, 0, 25, 0)
T
x
2
= (0, 1667, 0, 3333, 0, 3333, 0, 1667)
T
ou seja, com apenas duas itera coes, obtemos uma aproximacao para a solucao dentro da tolerancia
especicada.
4.8 Exerccios
Exerccio 4.1 Resolva o sistema
_
4x
1
+ 4x
2
= 20, 5
7x
1
+ 6, 99x
2
= 34, 97
atraves do metodo de elimina c ao de Gauss, com precis ao de 5 dgitos signicativos, renando a
solu cao obtida.
Exerccio 4.2 Calcule norm| A| das matrizes
(a)
_
0, 992 0, 873
0, 481 0, 421
_
, (b)
_
1 5
1, 5 7, 501
_
e diga se s ao bem ou mal-condicionadas.
Exerccio 4.3 Calcule o n umero de condi cao das matrizes do exerccio 4.2, sabendo que as suas
inversas sao dadas de forma aproximada, respectivamente, por
(a)
_
184, 568 382, 727
210, 872 434, 897
_
, (b)
_
7501 5000
1500 1000
_
Exerccio 4.4 Resolva o sistema
_
_
_
10x
1
+ x
2
+ x
3
= 12
x
1
+ 10x
2
+ x
3
= 12
x
1
+ x
2
+ 10x
3
= 12
atraves do metodo de Jacobi, com uma tolerancia de 10
7
.
Exerccio 4.5 Resolva o sistema do exerccio 4.4 atraves do metodo de Gauss-Seidel, com uma
toler ancia de 10
7
.
Exerccio 4.6 Resolva o sistema do exerccio 4.4 atraves do metodo SOR, com uma toler ancia de
10
7
. Determine, experimentando diversos valores, um que reduza substancialmente o n umero
de itera c oes necess arias ` a convergencia.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 100
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Lineares
Exerccio 4.7 Verique que o sistema linear
_
_
3 0 1
1 1 0
3 1 1
_
_
x =
_
_
1
2
5
_
_
nao e diagonal-dominante, apesar do criterio de Sassenfeld ser satisfeito.
Exerccio 4.8 Explique o que acontece com a aplicacao do metodo de Gauss-Seidel ao sistema
_
_
1 1 1
2 2 2
5 5 5
_
_
x =
_
_
1
2
5
_
_
.
Exerccio 4.9 Utilize o metodo do Gradiente e resolva o sistema do exerccio 4.8; explique o que
ocorre.
Exerccio 4.10 Utilize o metodo dos Gradientes-Conjugados e resolva o sistema do exerccio 4.8;
explique o que ocorre.
Exerccio 4.11 Mostre, utilizando o sistema
_
2 1
1 2
_
x =
_
10
10
_
que o metodo das Dire coes-Conjugadas equivale ao metodo da elimina cao Gaussiana, se as dire coes
tomadas sao os vetores u
1
= (1, 0)
T
e u
2
= (0, 1)
T
.
Exerccio 4.12 Resolva o sistema
_
10
6
1
1 1
_
x =
_
1
1
_
atraves do metodo dos Gradientes-Conjugados, para uma toler ancia de 10
4
.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 101
Captulo 5
Resolu cao de Sistemas de
Equacoes Nao-Lineares
5.1 Introdu cao
Neste captulo, apresentaremos o metodo de Newton para sistemas de equa coes nao-lineares, i.e.,
procuramos um vetor x que satisfa ca
F(x) = 0 (5.1)
onde F : IR
n
IR
n
, i.e.
_

_
f
1
(x
1
, x
2
, . . . , x
n
) = 0
f
2
(x
1
, x
2
, . . . , x
n
) = 0
.
.
.
f
n
(x
1
, x
2
, . . . , x
n
) = 0
(5.2)
Pode-se armar que todas as consideracoes apresentadas no Captulo 2 para o metodo de Newton-
Raphson s ao tambem validas para esse caso. No entanto, a solu cao de (5.1) e bem mais difcil,
requerendo uma serie de cuidados adicionais (ver [5]).
5.2 Metodo de Newton
Como visto na secao 2.4, o metodo de Newton-Raphson e uma linearizacao da fun cao f(x) no
ponto x = x
k
. Essa ideia deve ser estendida para o presente caso, como veremos a seguir.
Considerando ent ao o sistema (5.1), podemos escrever as expansoes em Taylor (apenas ate os
termos de primeira ordem) de cada fun cao f
i
em (5.2) como
_

_
0 = f
1
(x
1
+ h
1
, x
2
+ h
2
, . . . , x
n
+ h
n
) f
1
(x
1
, x
2
, . . . , x
n
) + h
1
f1
x1
+ h
2
f1
x2
+ . . . + h
n
f1
xn
.
.
.
0 = f
n
(x
1
+ h
1
, x
2
+ h
2
, . . . , x
n
+ h
n
) f
n
(x
1
, x
2
, . . . , x
n
) + h
1
fn
x1
+ h
2
fn
xn
+ . . . + h
n
fn
xn
(5.3)
ou, em termos matriciais:
_

_
f
1
(x
1
, x
2
, . . . , x
n
)
.
.
.
f
n
(x
1
, x
2
, . . . , x
n
)
_

_ +
_

_
f1
x1
. . .
f1
xn
.
.
.
.
.
.
.
.
.
fn
x1
. . .
fn
xn
_

_
_

_
h
1
.
.
.
h
n
_

_ =
_

_
0
.
.
.
0
_

_ (5.4)
F(x) + J(x)h = 0
102
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Nao-Lineares
onde J(x) e a matriz Jacobiana de F(x). Ora, para obtermos o vetor h = (h
1
, h
2
, . . . , h
n
), devemos
resolver o sistema de equacoes lineares
J(x)h = F(x) (5.5)
o que exige, obviamente, que J(x) seja n ao-singular. Ent ao, se x x
(k)
(i.e., x e uma estimativa
para a solu cao de (5.1) na itera cao k), podemos obter uma nova estimativa (possivelmente melhor)
atraves de
_

_
x
(k+1)
1
.
.
.
x
(k+1)
n
_

_
=
_

_
x
(k)
1
.
.
.
x
(k)
n
_

_
+
_

_
h
(k)
1
.
.
.
h
(k)
n
_

_
(5.6)
x
(k+1)
= x
(k)
+ h
(k)
Note as similaridades com o metodo de Newton-Raphson: naquele, a corre cao e escrita como
x
k+1
= x
k
+ h
k
, onde h
k
= f(x)/f

(x), o que e equivalente ` a equa cao (5.5).


Ao se resolver o sistema (5.5), pode-se utilizar qualquer um dos metodos vistos no Captulo
4; usualmente, utiliza-se a fatora cao LU (vide secao 4.3.2), mas metodos iterativos s ao indicados
quando a matriz J e esparsa [9]. De qualquer maneira, no entanto, a matriz J pode se tornar
quase singular, o que diculta bastante a solucao de (5.1).
Outro problema relacionado ao metodo de Newton e na obten cao da matriz J(x). Cabe notar
que apenas para problemas com n muito pequeno e factvel calcular-se de forma explcita a matriz
J; logo, J deve ser calculada de forma aproximada. Ora, seus elementos sao as derivadas parciais
das f
i
em relacao a x
i
; portanto, aproxima coes dessas derivadas por diferencas nitas (vide 2.5)
podem ser utilizadas. A deni cao tpica de cada coluna da matriz J(x) e
J(x)
j
=
_
F(x+h|| x ||ej)F(x)
h|| x ||
x = 0
F(hej )F(x)
h
x = 0
(5.7)
conforme [9, pp. 80], onde e
j
e o vetor canonico de n elementos, h =

e e o epsilon da maquina
(vide Captulo 1).
O metodo de Newton para sistemas de equa coes nao-lineares pode, entao, ser descrito conforme
o algoritmo 5.2.1, onde
r
e
a
sao duas toler ancias pre-especicadas.
Algoritmo 5.2.1 Metodo de Newton para sistemas de equacoes
nao-lineares
proc newton(input: x
0
,
r
,
a
, k
max
; output: x
k+1
, k)
F
0
= || F(x
0
) ||
for k = 0, 1, . . . , k
max
do
Calcule J(x
(k)
)
Resolva o sistema J(x
(k)
)h
(k)
= F(x
(k)
)
x
(k+1)
x
(k)
+ h
(k)
if || F(x
(k)
|| <
r
F
0
+
a
then
break
endif
Calcule F(x
(k+1)
)
endfor
endproc
Os exemplo a seguir ilustram como utilizar o metodo de Newton.
Exemplo 5.1 Sejam as equa coes
f(x, y) = sen(y)e
x
x
2
g(x, y) = cos(y)e
x
x
3
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 103
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Nao-Lineares
Calcule o ponto de interseccao entre ambas as curvas usando o metodo de Newton.
Solu cao: O gr aco das funcoes f e g e mostrado na gura 5.1; nele pode-se perceber que a
solu cao e, aproximadamente, (0, 7, 1, 0).
Figura 5.1: As fun coes f e g.
Escrevendo na notacao apropriada, temos
F =
_
sen(y)e
x
x
2
cos(y)e
x
x
3
_
e a matriz Jacobiana e dada, explicitamente, por
J =
_
sen(y)e
x
2x cos(y)e
x
cos(y)e
x
3x
2
sen(y)e
x
_
Assim, utilizando como estimativa inicial o vetor x
0
= (x, y) = (0, 0)
T
, obtemos a seguinte
seq uencia de valores para o metodo de Newton, conforme o algoritmo 5.2.1:
F
0
=
_
0
1
_
J
0
=
_
0 1
1 0
_
h
0
= J
1
0
F
0
=
_
1
0
_
x
1
= x
0
+ h
0
=
_
1
0
_
F
1
=
_
1
0, 6321
_
J
1
=
_
2 0, 3679
3, 3679 0
_
h
1
= J
1
1
F
1
=
_
0, 1877
1, 6979
_
x
2
= x
1
+ h
1
=
_
0, 8123
1, 6979
_
F
2
=
_
0, 2196
0, 5923
_
J
2
=
_
2, 0649 0, 0563
1, 9233 0, 4403
_
h
2
= J
1
2
F
2
=
_
0, 0791
0, 9996
_
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 104
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Nao-Lineares
x
3
= x
2
+ h
2
=
_
0, 7332
0, 6982
_
F
3
=
_
0, 2288
0, 0262
_
J
3
=
_
1, 7752 0, 3680
1, 9807 0, 3088
_
h
3
= J
1
3
F
3
=
_
0, 0629
0, 3184
_
x
4
= x
3
+ h
3
=
_
0, 6709
1, 0166
_
F
4
=
_
0, 0144
0, 0320
_
J
4
=
_
1, 7756 0, 2692
1, 6172 0, 4350
_
h
4
= J
1
4
F
4
=
_
0, 0123
0, 0279
_
x
5
= x
4
+ h
4
=
_
0, 6588
0, 9888
_
F
5
= 10
3
_
0, 3810
0, 2395
_
J
5
=
_
1, 7487 0, 2847
1, 5837 0, 4926
_
h
5
= J
1
5
F
5
= 10
3
_
0, 1930
0, 1529
_
x
6
= x
5
+ h
5
=
_
0, 6578
0, 9889
_
F
6
= 10
7
_
0, 2585
0, 8432
_
ou seja, ap os 6 itera coes, o valor de F(x
6
) e considerado pequeno o suciente, e x = 0, 6578 e
y = 0, 9889 bastante proximos da estimativa para a solu cao conforme o gr aco na gura 5.1.
Obviamente, poderamos ter acelerado consideravelmente o processo utilizando como estimativa
inicial o vetor x
0
= (0, 7, 1).
O mesmo n umero de itera coes e alcan cado se utilizarmos a aproxima cao numerica da matriz
Jacobiana dada pela equacao (5.7).
Exemplo 5.2 Considere o problema de intersec cao de uma reta que passa pelos pontos q
0
e q
1
em R
3
,

r (t) = q
0
+ (q
1
q
0
)t, t IR
e o plano que passa pelos pontos p
0
, p
1
e p
2
,

S (u, v) = (p
0
+ (p
1
p
0
)u + (p
2
p
0
)v, u, v IR
i.e., queremos resolver o problema

S (u, v)

r (t) = 0
Se q
0
= (5, 5, 0), q
1
= (5, 5, 0), p
0
= (0, 0, 0), p
1
= (0, 0, 10) e p
2
= (10, 0, 0), mostre como se
comporta o metodo de Newton nesse caso.
Solu cao: Note que

S (u, v) e

r (t) s ao fun coes vetoriais em R


3
. Como temos tres vari aveis a
determinar u, v e t e tres equa coes da forma

S (u, v)

r (t) = 0, uma para cada componente


A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 105
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Nao-Lineares
x, y e z, o problema e bem posto. Como

S (u, v) e uma fun cao linear, o metodo de Newton devera
convergir em uma unica itera c ao
1
.
Escrevendo entao na notacao adequada, temos
F =
_
_
(au + bv ct + p
0
q
0
)
x
(au + bv ct + p
0
q
0
)
y
(au + bv ct + p
0
q
0
)
z
_
_
onde a = p
1
p
0
, b = p
2
p
0
e c = q
1
q
0
, temos que a matriz Jacobiana de F e constante,
J =
_
_
a
x
b
x
c
x
a
y
b
y
c
y
a
z
b
z
c
z
_
_
e, para os valores xados, temos
J =
_
_
0 10 0
0 0 10
10 0 0
_
_
a qual apresenta inversa e, portanto, o metodo de Newton nao ir a sofrer interrup cao. Com efeito,
se x
0
= (u, v, t) = (0, 0, 0)
T
, teremos a seguinte seq uencia de valores
F
0
=
_
_
5
5
0
_
_
J
0
=
_
_
0 10 0
0 0 10
10 0 0
_
_
h
0
= J
1
0
F
0
=
_
_
0
0, 5
0, 5
_
_
x
1
= x
0
+ h
0
=
_
_
0
0, 5
0, 5
_
_
F
1
=
_
_
0
0
0
_
_
como era esperado, dada a natureza linear do problema. Cabe ressaltar, no entanto, que uma
formula cao semelhante deve ser usada para problemas onde

S (u, v) e nao-linear.
Exemplo 5.3 Uma superfcie bic ubica de Bezier

B
3
(u, v) IR
3
e denida por

B
3
(u, v) =
_
u
3
u
2
u 1

N

P N
T
_

_
v
3
v
2
v
1
_

_
, , 0 u, v 1
onde N e uma matriz dada por
_

_
1 3 3 1
3 6 3 0
3 3 0 0
1 0 0 0
_

_
1
Na verdade, nao se utilizaria tal metodo para se resolver esse problema; ele e util apenas para ns de ilustracao.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 106
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Nao-Lineares
e

P IR
3
e uma matriz que contem 16 pontos de controle que governam o desenvolvimento da
superfcie.
Um ponto da superfcie e dado por tres polin omios bic ubicos em u e v tais que, se os pontos
de controle s ao ordenados como
_

P
0,0

P
0,1

P
0,2

P
0,3

P
1,0

P
1,1

P
1,2

P
1,3

P
2,0

P
2,1

P
2,2

P
2,3

P
3,0

P
3,1

P
3,2

P
3,3
_

_
entao, para u = 0 e v = 0,

B
3
(0, 0) = P
0,0
; para u = 0 e v = 1,

B
3
(0, 1) = P
0,3
;

B
3
(1, 0) = P
3,0
e

B
3
(1, 1) = P
3,3
.
Considere, ent ao, o problema de intersec cao de um segmento de reta com origem no ponto
(100, 5, 5) e vetor dire cao (1, 0, 0),

r (t) = (100, 5, 5) + t(1, 0, 0), t IR


com a superfcie

B
3
(u, v), onde os pontos de controle sao

P
x
=
_

_
0 0 0 0
10 10 10 10
20 20 20 20
30 30 30 30
_

P
y
=
_

_
0 5 5 0
5 10 10 5
5 10 10 5
0 5 5 0
_

P
z
=
_

_
0 0 0 0
10 10 10 10
20 20 20 20
30 30 30 30
_

_
de onde a funcao F pode ser escrita como
F =
_
_
(B
3
(u, v))
x
+ t 100
(B
3
(u, v))
y
5
(B
3
(u, v))
z
5
_
_
.
Note que, agora, a matriz Jacobiana nao e constante. A gura 5.2 mostra a superfcie e a reta
em questao.
Se utilizarmos o metodo de Newton com x
0
= (u, v, t) = (0, 0, 0)
T
e uma toler ancia de 10
10
,
teremos a seguinte seq uencia de valores
F
0
=
_
_
100
5
5
_
_
J
0
=
_
_
30 0 1
15 15 0
30 0 0
_
_
h
0
= J
1
0
F
0
=
_
_
0, 1667
0, 1667
95
_
_
x
1
= x
0
+ h
0
=
_
_
0, 1667
0, 1667
95
_
_
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 107
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Nao-Lineares
Figura 5.2: Intersec cao entre a reta (100, 5, 5) +t(1, 0, 0) com uma superfcie bic ubica de Bezier.
F
1
=
_
_
0
0, 8333
0
_
_
J
1
=
_
_
30 0 1
10 10 0
30 0 0
_
_
h
1
= J
1
1
F
1
=
_
_
0
0, 0833
0
_
_
x
2
= x
0
+ h
0
=
_
_
0, 1667
0, 2500
95
_
_
F
2
=
_
_
0
0, 1042
0
_
_
J
2
=
_
_
30 0 1
10 7, 5 0
30 0 0
_
_
h
2
= J
1
2
F
2
=
_
_
0
0, 0139
0
_
_
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 108
Introdu c ao ao Calculo Numerico Resolucao de Sistemas de Equacoes Nao-Lineares
x
3
= x
0
+ h
0
=
_
_
0, 1667
0, 2639
95
_
_
.
.
.
F
5
= 10
5
_
_
0
0, 2494
0
_
_
J
5
=
_
_
30 0 1
10 7, 0711 0
30 0 0
_
_
h
5
= J
1
5
F
5
= 10
6
_
_
0
0, 3527
0
_
_
x
6
= x
0
+ h
0
=
_
_
0, 1667
0, 2643
95
_
_
onde x
6
e a solu cao do problema de interseccao, de acordo com a tolerancia especicada.
5.3 Exerccios
Exerccio 5.1 Considere o exemplo 5.2, com q
0
= (5, 5, 0), q
1
= (15, 0, 0), p
0
= (0, 0, 0), p
1
=
(0, 0, 10) e p
2
= (10, 0, 0). Explique o que acontece.
Exerccio 5.2 Uma esfera de raio r e centro (c
x
, c
y
, c
z
) pode ser denida, de forma parametrica,
como
(r cos() cos() + c
x
, r cos()sen() + c
y
, rsen() + c
z
)
onde /2 /2 e 0 < 2. Calcule as intersec coes dessa esfera com a reta

o + t

u ,

o = (10, 10, 10) e



u = (1, 1, 1). Utilize como estimativa inicial
0
=
0
= t
0
= 0 e uma
toler ancia de 10
5
.
Exerccio 5.3 Compare o processo numerico utilizado para resolver o exerccio 5.2 com a solu cao
do mesmo problema, obtida de forma algebrica. ( Dica: utilize a equa cao da reta na forma
parametrica

o +t

u e substitua na equa cao implcita da esfera, (xc


x
)
2
+(yc
y
)
2
+(zc
z
)
2
= r
2
,
e isole t.)
Exerccio 5.4 Utilize a formula c ao apresentada no exemplo 5.3, para a reta (100, 20, 5)+t(1, 0, 0).
Explique o que acontece.
Exerccio 5.5 Resolva o sistema
_
0, 1x
2
x + 0, 1y
2
+ 0, 8 = 0
0, 1x y + 0, 1xy
2
+ 0, 8 = 0
sabendo que ele apresenta uma solucao proxima a (x, y) = (0, 5, 0, 5).
Exerccio 5.6 Calcule (x, y) de modo que
_
x
2
+ y
2
= 2
x
2
y
2
= 1
usando x
0
= y
0
= 1.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 109
Captulo 6
Autovalores e Autovetores
6.1 Introdu cao
Neste captulo, apresentaremos alguns dos metodos utilizados para a solu cao do problema do
autovalor, i.e., o sistema de n equa coes lineares
Ax = x (6.1)
para o qual procuramos um vetor solucao x tal que x
i
= 0 para pelo menos algum i, ou seja, uma
solu cao n ao-trivial. Para que tal seja possvel, e necessario que
det(A I) = 0 (6.2)
a qual e uma equacao polinomial de grau n na vari avel , chamada de equacao caracterstica de
A; o polin omio det(A I) e chamado de polin omio caracterstico de A.
As n razes de (6.2) sao chamadas de autovalores, razes latentes ou valores caractersticos de
A. A cada raiz corresponde um vetor x IC
n
= 0 que satisfaz a equa cao (6.1), o qual e chamado
de autovetor, vetor latente ou vetor caracterstico de A. Note que, se x e um autovetor de A, ent ao
kx, onde k IR, tambem e, pois
Akx = kAx = kx = kx.
Costumeiramente os autovetores sao normalizados, i.e. || x|| = 1 em alguma norma escolhida (o
que pode ser feito pela rela cao acima).
Se todas as razes de (6.2) sao distintas entre si, ent ao isso implica em que a matriz A apresenta
um conjunto completo de autovetores linearmente independentes (L.I.). No entanto, mesmo para
casos em que os autovalores n ao sao todos distintos, podemos encontrar um conjunto completo de
autovetores L.I.
Podemos tambem calcular os autovalores da matriz inversa de A, A
1
, a partir dos autovalores
de A. Se multiplicarmos a equacao (6.1) ` a esquerda por A
1
, temos
x = A
1
x
ou
A
1
x =
1

x. (6.3)
Essa ultima equacao nos diz que
1

e autovalor de A
1
, onde e um autovalor de A, com o
autovetor x correspondente.
Problemas envolvendo autovalores e autovetores surgem em in umeras aplica coes, como pode-
mos ver nos exemplos que seguem, conforme apresentados em [6].
110
Introdu c ao ao Calculo Numerico Autovalores e Autovetores
Exemplo 6.1 O estudo das vibra coes de sistemas dinamicos e de estruturas requer a solu cao de
problemas de autovalores e autovetores. Considere, apenas para ns de explanacao, o problema
de se determinar as vibra coes de pequenas partculas presas por um o uniforme, sem peso, ao
qual e aplicada uma for ca

F nas extremidades (cf. a gura 6.1) e no qual desconsidera-se a a cao
da gravidade. As partculas encontram-se a dist ancias iguais entre si e as vibra coes das mesmas
s ao consideradas pequenas e perpendiculares ` a posi cao de descanso do o. Escrevendo as equacoes
Figura 6.1: O problema das vibracoes.
diferenciais para as for cas atuantes em cada partcula, temos:
m
1
d
2
x
1
dt
2
= F
x
1
h
+ F
x
2
x
1
h
m
2
d
2
x
2
dt
2
= F
x
2
x
1
h
+ F
x
3
x
2
h
m
3
d
2
x
3
dt
2
= F
x
3
x
2
h
F
x
3
x
4
h
m
4
d
2
x
4
dt
2
= +F
x
3
x
4
h
F
x
4
h
Introduzindo a notacao
x = (x
1
, x
2
, x
3
, x
4
)
T
d
i
=
m
i
h
F
, i = 1, 2, 3, 4
podemos escrever o sistema de equacoes diferenciais acima na forma matricial
D
d
2
x
dt
2
= Tx (6.4)
onde D e a matriz diagonal
D =
_

_
d
1
d
2
d
3
d
4
_

_
e T e a matriz tridiagonal
T =
_

_
2 1 0 0
1 2 1 0
0 1 2 1
0 0 1 2
_

_
.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 111
Introdu c ao ao Calculo Numerico Autovalores e Autovetores
Quando as partculas vibram em fase ou em dire c oes opostas, i.e., em modo normal, entao a
condic ao
d
2
x
dt
2
= w
2
x, w IR (6.5)
e satisfeita. Substituindo a equac ao (6.5) em (6.4), obtemos o problema de autovalor
Dw
2
i
x
i
= Tx
i
, i = 1, 2, 3, 4 (6.6)
para as freq uencias de vibra cao w
1
, w
2
, w
3
e w
4
e os modos normais correspondentes, i.e., os
autovetores x
1
, x
2
, x
3
e x
4
.
Aparentemente, se isolarmos x no lado direito da equacao (6.6), obteramos o que se chama
de problema generalizado do autovalor, cuja forma geral e
(A B)x = 0
onde A e B s ao matrizes de ordem n. Porem, se introduzirmos o vetor
y = D
1/2
x
o que e possvel, j a que os elementos da diagonal de D s ao positivos, por deni cao, ent ao podemos
escrever (6.6) como
D
1/2
TD
1/2
y
i
= w
2
i
y
i
o qual recai na forma 6.1.
Exemplo 6.2 A teoria de Leontief sobre a compra e a venda de produtos e muito utilizada no
campo de estudo da macroeconomia; como exemplo, consideramos as vendas e compras de produtos
num setor industrial.
Seja b
ij
as vendas da ind ustria i para a ind ustria j; b
ii
representa os bens produzidos pela
ind ustria i e retidos por ela pr opria. As vendas de bens da ind ustria i para o mercado e denotada
por y
i
e o total de bens produzidos por x
i
. Entao,
x
i
= y
i
+

j
b
ij
(6.7)
A m de denirmos b
ij
, assume-se que as vendas da ind ustria i para a j estao em propor cao
constante `a produ cao da ind ustria j, i.e.
b
ij
= a
ij
x
j
onde a
ij
s ao ditos coecientes de entrada. Em uma situa cao estatica, podemos escrever, a partir
de (6.7),
x = y + Ax (6.8)
onde x = (x
1
, x
2
, . . . , x
n
)
T
e y = (y
1
, y
2
, . . . , y
n
)
T
e A e matriz de ordem n cujos elementos (i, j)
s ao os coecientes de entrada a
ij
. Ora, a equa cao (6.8) pode ser reescrita como
(I A)x = y (6.9)
onde I A e chamada de matriz de Leontief. A equacao (6.9) pode ser resolvida calculando-
se os autovalores e autovetores de A. Sua utilidade reside no fato de que, com ela, e possvel
determinar-se a quantidade de bens produzidos (x) necess arios para satisfazer a uma demanda
nal (y), pre-estabelecida.
Se a produ cao e a demanda nao se encontram em equilbrio, ent ao devemos considerar um
modelo din amico, que leve em considera cao a taxa de varia cao da producao. Nesse caso, usual-
mente considera-se que a produ cao em cada ind ustria varia a uma taxa proporcional `a diferen ca
entre os nveis de venda e de producao. Da,
dx(t)
dt
= D((A I)x(t) + y(t)) (6.10)
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 112
Introdu c ao ao Calculo Numerico Autovalores e Autovetores
onde D e uma matriz diagonal de ordem n, cujos elementos d
ii
representam os coecientes de
rea cao das ind ustrias.
A equacao (6.10) substitui nesse caso a equa cao (6.8) e representa o comportamento din amico
do sistema econ omico em estudo. Uma das quest oes a serem estudadas, nesse caso, e se o sistema
e estavel, determinando-se os autovalores e autovetores da matriz D(A I). Particularmente,
procura-se determinar se esses autovalores tem parte real positiva pois, como as solu coes do
sistema de equa c oes diferenciais (6.10) s ao da forma e
it
, isso indicaria uma instabilidade, j a
que a demanda x(t) cresceria exponencialmente com o tempo.
A seguir, apresentaremos dois importantes teoremas, os quais nos permitir ao desenvolver
tecnicas de determinacao de autovalores e autovetores para um tipo especco de matrizes.
6.2 Teoremas de limites sobre autovalores
Teorema 6.2.1 Discos de Gerschgorin: Seja A uma matriz de ordem n, e d
i
, i = 1, 2, . . . , n
os discos cujos centros s ao os elementos a
ii
e cujos raios r
i
s ao dados por
r
i
=
n

j=1
j=i
|a
ij
|, i = 1, 2, . . . , n.
Seja D a uni ao de todos os discos d
i
. Entao, todos os autovalores de A encontram-se contidos em
D.
Prova: Seja um autovalor de A e x um autovetor correspondente, tal que max
i
| x
i
| = 1. Ent ao,
x = Ax
de onde
( a
ii
)x
i
=
n

j=1
j=i
a
ij
x
j
, i = 1, 2, . . . n
Supondo que | x
k
| = 1, ent ao
| a
kk
|
n

j=1
j=i
| a
kj
|| x
j
|

j=1
j=i
| a
kj
| = r
k
i.e., o autovalor esta contido no disco d
k
e, como e arbitr ario, ent ao todos os autovalores de A
devem estar contidos na uni ao de todos os discos, D.
O exemplo a seguir apresenta uma aplicacao do teorema 6.2.1.
Exemplo 6.3 A matriz
A =
_
_
1 0 1
1 4 1
1 2 10
_
_
tem como seus autovalores
1
= 10, 3863,
2
= 3, 8037 e
3
= 0, 8100. Calculando os discos de
Gerschgorin, temos:
d
1
= |z 1| < |0| +| 1| = 1
d
2
= |z 4| < | 1| +| 1| = 2
d
3
= |z 10| < | 1| +| 2| = 3
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 113
Introdu c ao ao Calculo Numerico Autovalores e Autovetores
Como todos os autovalores de A s ao reais, e observando (veja a gura 6.2) que em cada disco
devemos ter um autovalor, podemos dizer que:
existe um autovalor,
1
, que est a dentro do disco centrado em 10 e raio 3 e, de fato, 7 <
10, 3863 < 13;
existe um autovalor,
2
, que est a dentro do disco centrado em 4 e raio 2 e, realmente,
2 < 3, 8037 < 6;
existe um autovalor,
3
, que est a dentro do disco centrado em 1 e raio 1 e, com efeito,
0 < 0, 81 < 2;
A gura 6.2 ilustra esse resultado.
Figura 6.2: Discos de Gerschgorin
Uma conseq uencia do teorema de Gerschgorin e a determinacao do maior disco que contem
todos os autovalores de A. Podemos obter, a partir dos discos, os extremos ao longo do eixo dos
n umeros reais, i.e. o intervalo [, ] tal que
= min
i
{a
ii
r
i
}, = max
i
{a
ii
+ r
i
}, i = 1, 2, . . . , n (6.11)
e o maior disco e justamente aquele com centro (+)/2 e raio (+)/2. No caso em que todos
os autovalores s ao reais, basta ent ao considerar o intervalo [, ].
Teorema 6.2.2 Maior e menor autovalor: Seja A uma matriz real simetrica de ordem n, e
x IC um vetor arbitr ario. Entao,

1
= max
x=0
x
T
Ax
x
T
x
,
n
= min
x=0
x
T
Ax
x
T
x
onde os autovalores sao ordenados tais que
1

2
. . .
n
.
A razao
x
T
Ax
x
T
x
, x = 0 (6.12)
e chamada de quociente de Rayleigh correspondente a x e, juntamente com o teorema 6.2.2, nos
permitir a estimar de forma bastante r apida um autovalor de uma matriz simetrica, conforme
veremos na secao 6.5.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 114
Introdu c ao ao Calculo Numerico Autovalores e Autovetores
6.3 Calculo de autovalores e autovetores via determinantes
J a vimos que, por deni cao, os autovalores de uma matriz A sao as razes do polin omio caracte-
rstico de A. Evidentemente, para matrizes de ordem n > 4, n ao e aconselhavel que se utilize a
equa cao (6.2) para se obter o polinomio caracterstico, por duas raz oes:
1. o calculo de determinantes de ordem superior a 4 envolve consider avel custo computacional;
2. o polin omio caracterstico de uma matriz grande pode ser instavel numericamente.
No entanto, algumas aplica coes de engenharia, fsica e outros campos do conhecimento envolvem
a determina cao de autovalores de matrizes de ordem n = 2 ou n = 3 e, nesse caso, e possvel obter-
se os autovalores extraindo as razes do polin omio caracterstico, conforme mostra o exemplo a
seguir.
Exemplo 6.4 Seja a matriz
_
2 5
3 4
_
.
O seu polin omio caracterstico e
p() = det(A I) =

2 5
3 4

= (2 )(4 ) 15
ou p() =
2
+ 2 23, cujas razes s ao
1
= 3, 8990 e
2
= 5, 8990.
Para se determinar os autovetores, utiliza-se a equa cao (6.1) para cada autovalor
i
, na forma
(A
i
I)x
i
= 0, como segue:
Exemplo 6.5 Calcule os autovetores do exemplo 6.4.
Solu cao: Para o autovalor
1
= 3, 8990, escrevemos
(A 3, 8990I)x
1
= 0
_
7, 8990 5
3 1, 8990
_ _
(x
1
)
1
(x
1
)
2
_
=
_
0
0
_
de onde obtemos
x
1
=
_
k
1, 5798k
_
, k = 0
O autovetor correspondente a
2
= 5, 8990 e obtido de forma similar:
(A + 5, 8990I)x
1
= 0
_
1, 8990 5
3 7, 8990
_ _
(x
2
)
1
(x
2
)
2
_
=
_
0
0
_
de onde obtemos
x
2
=
_
k
0, 3798k
_
, k = 0
Computacionalmente, no entanto, podemos estimar o autovetor correspondente a um autovalor
utilizando os metodos da potencia com translacao da origem (secao 6.5.2) ou da itera c ao inversa
com transla cao da origem (secao 6.5.3).
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 115
Introdu c ao ao Calculo Numerico Autovalores e Autovetores
6.4 Autovalores de uma matriz tridiagonal simetrica
Em muitas aplica coes surgem matrizes tridiagonais simetricas, das quais necessitamos extrair
autovalores e/ou autovetores. Por exemplo, ao aproximarmos a equa cao diferencial parcial
u
t
=

2
u
x
2
por diferen cas nitas, obtemos uma matriz
_

_
2 1 0 0
1 2 1 0
0 1 2 1
0 0 1 2
_

_
a qual apresenta aquela caracterstica.
De forma geral, consideramos uma matriz T de ordem n,
T =
_

_
a
1
b
1
0 . . . 0
b
1
a
2
.
.
.
.
.
.
.
.
.
0
.
.
.
.
.
.
.
.
. 0
.
.
.
.
.
.
.
.
.
.
.
. b
n1
0 . . . 0 b
n1
a
n
_

_
(6.13)
e chamamos de T
r
a matriz principal de ordem r de T, i.e.
T
1
=
_
a
1

, T
2
=
_
a
1
b
1
b
1
a
2
_
, T
3
=
_
_
a
1
b
1
0
b
1
a
2
b
2
0 b
2
a
3
_
_
, . . .
Escrevendo as equacoes caractersticas p
1
(), p
2
() e p
3
() das matrizes T
1
, T
2
e T
3
, obtemos:
p
1
() = det(T
1
I) = a
1
(6.14)
p
2
() = det(T
2
I) = (a
2
)(a
1
) b
2
1
= (a
2
)p
1
() b
2
1
(6.15)
p
3
() = det(T
3
I) = (a
3
)
_
(a
2
)(a
1
) b
2
1
(a
3
)
_
b
2
2
(a
1
) =
= (a
3
)p
2
() b
2
2
p
1
() (6.16)
de onde podemos escrever, generalizando para r,
p
r
() = (a
r
)p
r1
() b
2
r1
p
r2
(), r = 2, 3, . . . , n, p
0
() = 1, (6.17)
A equa cao (6.17) nos permite avaliar o polin omio caracterstico da matriz T de forma bastante
eciente; no entanto, estamos preocupados em obter os autovalores de T, ou as razes de p
n
. O
teorema a seguir nos permitir a escrever um algoritmo bastante eciente para se extrair alguns ou
todos os autovalores de T.
Teorema 6.4.1 Seq uencia de Sturm: Se a matriz tridiagonal (6.13) e nao-reduzvel
1
, entao
os r 1 autovalores da matriz T
r1
separam estritamente os r autovalores da matriz T
r
:

r
<
r1
<
r1
<
r2
< <
2
<
1
<
1
.
Mais ainda, se s() representa o n umero de trocas de sinal na seq uencia
{p
0
(), p
1
(), . . . , p
n
()}
entao s() e igual ao n umero de autovalores de T menores do que , onde p
r
() e dado por (6.17)
e assume-se que p
r
() tem o sinal oposto de p
r1
() se p
r
() = 0.
1
Uma matriz A e dita nao-reduzvel se os elementos da diagonal da matriz triangular superior R, resultante de
sua fatoracao no produto QR, sao todos nao-nulos, onde Q e uma matriz ortogonal (i.e. Q
T
Q = I).
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 116
Introdu c ao ao Calculo Numerico Autovalores e Autovetores
O teorema 6.4.1 e extremamente importante: ele nos diz que, se tivermos os n autovalores
de uma matriz triadiagonal T
n
(de ordem n), ent ao entre cada par de autovalores consecutivos
(com exce cao do menor e do maior), existe um e apenas um autovalor da matriz tridiagonal
T
n+1
(de ordem n + 1), obtida acrescentando-se uma linha e uma coluna `a matriz T
n
. Devido ` a
essa caracterstica, podemos utilizar o algoritmo da bissec cao (ver algoritmo 2.2.1), juntamente
com a equacao (6.17), para obtermos rapidamente, e com seguran ca, um autovalor de T
n+1
, ` a
partir de um intervalo que e um par de autovalores consecutivos de T
n
.
Para obter-se o menor e o maior autovalores de T
n+1
, utilizamos o teorema de Gerschgorin -
mais especicamente, calculamos o maior intervalo que engloba todos os autovalores, com a equa-
cao (6.11). Assim, o menor autovalor e calculado usando-se como estimativa inicial para o metodo
da bisseccao o intervalo [,
r1
]; para o maior autovalor, utiliza-se o intervalo [
1
, ].
Os algoritmos 6.4.1, 6.4.2 e 6.4.3 combinam as ideias apresentadas acima. Da maneira como o
algoritmo 6.4.3 e apresentado, todos os autovalores s ao obtidos; no entanto, simples modica coes
do mesmo nos permitem obter apenas alguns autovalores (por exemplo, o maior e o menor, ou os
dois maiores, etc.).
O exemplo 6.6 demonstra uma situa cao tpica, resolvido utilizando-se esses algoritmos.
Algoritmo 6.4.1 Avalia polin omio caracterstico de uma matriz
tridiagonal simetrica
function pol carac trid(input: x, a, b; output: p)
% a e b s ao os vetores contendo os elementos da
% diagonal e subdiagonal, respectivamente,
% da matriz tridiagonal
p
0
1
p
1
a
1
x
p p
1
for r 2, 3, . . . , n do
p (a
r
x)p
1
b
2
r1
p
0
p
0
p
1
p
1
p
endfor
endfunction
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 117
Introdu c ao ao Calculo Numerico Autovalores e Autovetores
Algoritmo 6.4.2 Metodo da bissec cao com polinomio caracte-
rstico
proc bissec cao trid(input: a, b, , , k
max
, , ; output: )
% a e b s ao os vetores contendo os elementos da
% diagonal e subdiagonal, respectivamente,
% da matriz tridiagonal
u pol carac trid(, a, b)
v pol carac trid(, a, b)
e
if (sign(u) = sign(v)) then
nao pode proceder
else
k 1
w 1
while ((k k
max
) AND (| e | ) AND (| w| ))
e e/2
+ e
w pol carac trid(, a, b)
if (sign(w) = sign(u)) then

v w
else

u w
endif
k k + 1
endwhile
endif
endproc
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 118
Introdu c ao ao Calculo Numerico Autovalores e Autovetores
Algoritmo 6.4.3 Autovalores de uma matriz tridiagonal
simetrica
proc autovalores tridiagonal(input: a, b, n; output: )
% Calcula os raios dos discos de Gerschgorin, cada qual com centro a(i)
r
1
| b
1
|
for i 2, 3, . . . , n 1 do
r
i
| b
i1
| +| b
i
|
endfor
r
n
| b
n1
|
% Calcula o intervalo [, ] na reta dos reais
% contendo os autovalores
min
n
i=1
(a
i
r
i
)
max
n
i=1
(a
i
+ r
i
)
% Calcula os autovalores, iniciando com o autovalor
% de T
1
= [a
1
], = a
1

1
= a
1
for i 2, 3, . . . , n do
% Calcula os autovalores de T
i
% a. entre e
1
call bissec cao trid(a, b, ,
1
, k
max
, , ,
1
)
% b. autovalores entre
1
e
i1
for j 1, 2, . . . , i 2 do
call bissec cao trid(a, b,
j
,
j+1
, k
max
, , ,
j+1
)
endfor
% c. entre
i1
e
call bissec cao trid(a, b,
i1
, , k
max
, , ,
1
)

endfor

endproc
Exemplo 6.6 Seja a matriz tridiagonal
T =
_

_
2 1
1 2 1
1 2 1
1 2
_

_
a qual pode ser representada de forma compacta atraves dos vetores
a = (2, 2, 2, 2)
T
e b = (1, 1, 1)
T
Para se obter os autovalores de T, iniciamos com a matriz
T
1
=
_
a
1

=
_
2

a qual tem como seu unico autovalor
1
= a
1
= 2. Alem disso, calculamos os extremos do intervalo
de Gerschgorin, = 0 e = 6, atraves da equacao (6.11).
Agora, precisamos calcular os dois autovalores da matriz
T
2
=
_
a
1
b
1
b
1
a
2
_
=
_
2 1
1 2
_
os quais, pelos teoremas de Gerschgorin e 6.4.1, satisfazem
<
2
<
1
<
1
<
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 119
Introdu c ao ao Calculo Numerico Autovalores e Autovetores
Estipulando-se como tolerancias de convergencia para o metodo da bissecao = =

e um
m aximo de 200 itera c oes,
2
e obtido em 2 itera coes utilizando-se como intervalo de busca [,
1
] =
[0, 2], resultando no valor
2
= 1. O autovalor
1
tambem e obtido em 2 itera coes, usando-se como
intervalo de busca [
1
, ] = [2, 6], com o qual obtem-se
1
= 3.
Antes de procedermos ao calculo dos autovalores de T
3
, fazemos uma c opia dos , armazenando-
os em ; assim, temos
1
= 3 e
2
= 1.
Procedemos, ent ao, com o c alculo dos autovalores de T
3
; para tanto, utilizamos os intervalos
de busca
[,
2
] = [0, 1] para calcular o autovalor
3
;
[
2
,
1
] = [1, 3] para calcular o autovalor
2
;
[
1
, ] = [3, 6] para calcular o autovalor
1
.
Os autovalores
3
,
2
e
1
s ao entao obtidos com o metodo da bissec cao, utilizando-se as mesmas
toler ancias especicadas anteriormente, resultando em
3
= 0, 5858,
2
= 2 e
1
= 3, 4142, obtidos
em 27, 2 e 27 itera c oes respectivamente.
Finalmente, basta calcularmos os autovalores de T
4
. Procedendo de forma similar, fazemos

3
= 0, 5858,
2
= 2 e
1
= 3, 4142 e estipulamos os intervalos de busca
[,
3
] = [0, 0, 5858] para calcular o autovalor
4
;
[
3
,
2
] = [0, 5858, 2] para calcular o autovalor
3
;
[
2
,
1
] = [2, 3, 4142] para calcular o autovalor
2
;
[
1
, ] = [3, 4142, 6] para calcular o autovalor
1
.
de onde, apos aplicarmos o algoritmo da bissec cao a cada um desses intervalos, obtemos os
autovalores de T
4
T,
4
= 0, 3820,
3
= 1, 3820,
2
= 2, 6180 e
1
= 3, 6180, ap os 27 itera coes
(para todos os intervalos de busca).
Note que n ao se obtem, com essa tecnica, os autovetores correspondentes aos autovalores. Os
metodos apresentados na se cao a seguir podem ser utilizados para se obter esses autovetores.
6.5 Metodos para aproxima cao de autovalores e autovetores
Em muitas aplica coes, nao e necessario obter-se todos os autovalores; e comum desejar-se, por
exemplo, obter apenas o maior autovalor e seu correspondente autovetor. Os metodos apresentados
nessa secao sao indicados para o caso em que apenas um dos autovalores (e seu autovetor) necessita
ser calculado. Particularmente, tais metodos s ao iterativos e apresentam boa eciencia quando a
matriz em estudo e grande, esparsa e apresenta uma grande separacao relativa entre o autovalor
desejado e os demais autovalores.
6.5.1 Metodo da potencia
Seja A uma matriz de ordem n com autovalores
i
tais que
|
1
| = |
2
| = . . . = |
r
| > |
r+1
| . . . |
n
| (6.18)
Nesse caso, diz-se que A apresenta r autovalores dominantes. Por hip otese, assumimos que existem
n autovetores linearmente independentes x
i
, de onde qualquer vetor arbitr ario z
0
pode ser expresso
como combinacao linear desses autovetores, i.e.
z
0
=
n

i=1

i
x
i
(6.19)
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 120
Introdu c ao ao Calculo Numerico Autovalores e Autovetores
Considere agora o metodo de aproxima cao sucessiva
z
k
= Az
k1
, k = 1, 2, . . . (6.20)
onde z
0
e um valor inicial, dado. Usando as equa coes (6.1), (6.19) e escrevendo (6.20) em termos
de z
0
, temos
z
k
= Az
k1
= A
2
z
k2
= . . . = A
k
z
0
=
n

i=1

k
i
x
i
(6.21)
Se pelo menos um dos
1
,
2
, . . .,
r
n ao e nulo, ent ao os termos correspondentes a eles, i.e.

r
i=1

i

k
i
x
i
ir ao dominar o somat orio da equacao (6.21).
Suponha, por exemplo, que temos um autovalor dominante,
1
, de A. Considerando que

1
= 0, podemos reescrever (6.21) como
z
k
=
k
1
_

1
x
1
+
n

i=1

i
_

1
_
k
x
i
_
Note agora que, como
1
>
2
. . .
n
, por hip otese, entao os termos
_

1
_
k
tendem a zero `a medida que k cresce. Da, podemos escrever
z
k
=
k
1
(
1
x
1
+
k
) (6.22)
onde
k
e um vetor com elementos pr oximos a zero. O vetor z
k
tende, ent ao, a aproximar o
autovetor n ao-normalizado x
1
. Essa equa cao nos permite escrever o assim chamado metodo da
potencia.
Da equa cao (6.22), podemos escrever
z
k+1
=
k+1
1
(
1
x
1
+
k+1
)
e, dividindo a i-esima componente da equa cao acima pela componente correspondente de (6.22),
obtemos
(z
k+1
)
i
(z
k
)
i
=
1
_

1
x
1
+
k+1

1
x
1
+
k
_

1
, quando k , i = 1, 2, . . . , n (6.23)
onde (z
k
)
i
indica o elemento i do vetor z
k
. A equa cao (6.23) nos diz que a taxa de convergencia
do metodo depende n ao so das constantes
i
, mas principalmente das fra coes

, . . . ,

.
Quanto menores forem esses fracoes, mais rapida e a convergencia; por isso diz-se que o metodo
da potencia e eciente converge rapidamente para um autovalor desde que este autovalor seja
dominante, i.e., relativamente distante dos demais.
De posse das equa coes (6.20) e (6.23), podemos escrever um algoritmo para o metodo da
potencia. Uma quest ao que se coloca e: quais valores iniciais,
0
e z
0
, devemos utilizar para o
autovalor dominante e seu autovetor? Para z
0
, consideraremos um vetor arbitrario, o qual ser a
normalizado antes de se iniciar as itera coes. Com essa escolha, valemo-nos da equa cao (6.1) e
escrevemos
Az
0
=
0
z
0
.
.. || z
0
|| = 1
.
..
z
T
0
Az
0
= z
T
0

0
z
0
=
0
(z
T
0
z
0
) =
0
Aplica-se, entao, repetidamente a equacao (6.20), normalizando o vetor z
k
a cada itera cao, conforme
mostrado no algoritmo 6.5.1. O exemplo 6.7 mostra o funcionamento do metodo.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 121
Introdu c ao ao Calculo Numerico Autovalores e Autovetores
Algoritmo 6.5.1 Metodo da potencia
proc potencia(input: A, z
0
, , k
max
; output:
k
, z
k
)
z
0
z
0
/|| z
0
||

0
z
T
0
Az
0
for k = 1, 2, . . . , k
max
do
q Az
k1
z
k
q/|| q ||

k
z
T
k
Az
k
if |
k

k1
| < then
break
endif
endfor
endproc
Exemplo 6.7 Seja a matriz
A =
_
_
8 1 2
1 5 1
0 1 90
_
_
,
a qual tem como autovalores e respectivos autovetores,

1
= 90, 0115,
2
= 7, 6308,
3
= 5, 3577
x
1
=
_
_
0, 0245
0, 0115
0, 9996
_
_
, x
2
=
_
_
0, 9353
0, 3539
0, 0043
_
_
, x
3
=
_
_
0, 0043
0, 0111
0, 9996
_
_
.
Utilizando-se o metodo da potencia com um vetor com tres elementos escolhidos arbitrariamente
e normalizado, z
0
= (0, 4394, 0, 6415, 0, 6287)
T
, obtem-se a seguinte seq uencia de valores, com uma
toler ancia para convergencia de 10
5
:
k z
k

k
0 (0, 4394, 0, 6415, 0, 6287)
T
40, 5408
1 (0, 0940, 0, 0590, 0, 9938)
T
89, 2834
2 (0, 0313, 0, 0133, 0, 9994)
T
89, 9939
3 (0, 0251, 0, 0115, 0, 9996)
T
90, 0102
4 (0, 0246, 0, 0115, 0, 9996)
T
90, 0114
5 (0, 0245, 0, 0115, 0, 9996)
T
90, 0115
6 (0, 0245, 0, 0115, 0, 9996)
T
90, 0115
onde pode-se vericar que z
6
e uma boa aproxima cao para x
1
, sujeita ` aquela toler ancia.
Caso a matriz tenha autovalores dominantes repetidos, i.e.

1
=
2
= . . . =
r
o metodo da potencia ir a obter apenas um autovetor, o qual ser a combina cao linear dos autovetores
correspondentes a
1
.
O metodo da potencia diverge se A tiver autovalores diferentes, porem de mesmo valor absoluto
como, por exemplo, um par conjugado de autovalores dominantes complexos,
2
=
1
; o exemplo
a seguir ilustra tal situa cao:
Exemplo 6.8 Seja a matriz
A =
_
_
1 10 2
1 1 10
10 1 13
_
_
,
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 122
Introdu c ao ao Calculo Numerico Autovalores e Autovetores
a qual tem como autovalores e respectivos autovetores,

1
= 9, 4515 + 3, 8807i,
2
= 9, 4515 3, 8807i,
3
= 7, 9030
x
1
=
_
_
0, 0307 0, 4143i
0, 2160 + 0, 5518i
0, 4368 0, 5343i
_
_
, x
2
=
_
_
0, 0307 + 0, 4143i
0, 2160 0, 5518i
0, 4368 + 0, 5343i
_
_
, x
3
=
_
_
0, 7897
0, 4651
0, 4000
_
_
.
Utilizando-se o metodo da potencia com um vetor com tres elementos escolhidos arbitrariamente
e normalizado, z
0
= (0, 4857, 0, 0197, 0, 8739)
T
, obtem-se a seguinte seq uencia de valores, com uma
toler ancia para convergencia de 10
5
:
k z
k

k
0 (0, 4857, 0, 0197, 0, 8739)
T
4, 3241
1 (0, 2253, 0, 7668, 0, 6010)
T
9, 1975
2 (0, 4829, 0, 3946, 0, 7817)
T
8, 1345
3 (0, 2066, 0, 7546, 0, 6229)
T
9, 4601
4 (0, 5786, 0, 5001, 0, 6443)
T
6, 4876
5 (0, 4517, 0, 7731, 0, 4454)
T
6, 2931
6 (0, 8581, 0, 4338, 0, 2749)
T
1, 8886
a qual apresenta um comportamento n ao convergente.
6.5.2 O metodo da potencia com transla cao da origem
Como vimos na secao anterior, a convergencia do metodo da potencia depende de |
2
/
1
|, para
o caso de existir apenas um autovalor dominante. Se essa razao for muito pr oxima de 1, ent ao a
convergencia e muito lenta.
No entanto, podemos obter a solu cao de forma mais r apida se procedermos a uma modica cao
do metodo da potencia. Essa modica cao baseia-se no fato de que, se e um autovalor de uma
matriz A, ent ao e o autovalor correspondente da matriz AI. Dessa forma, se aplicarmos
o metodo da potencia a uma matriz AI, tal que
1
ainda seja dominante, a convergencia
do metodo depender a de

o que, para um valor adequado de , poder a ser menor do que |


2
/
1
|. A esse processo, da-se
o nome de transla c ao da origem e como se os autovalores estivessem distribudos em um novo
sistema de referencia cuja origem e , e n ao mais zero e pode ser bastante ecaz, desde que a
escolha de seja criteriosa.
Obviamente, poderamos calcular explicitamente a matriz A I e utilizar o algoritmo 6.5.1;
no entanto, pequenas modicacoes naquele algoritmo nos permitem utilizar o processo de trans-
la cao da origem de forma mais eciente. Novamente, z
0
e considerado um vetor unitario, de onde
podemos obter a seguinte estimativa para
0
:
(A I)z
0
=
0
z
0
; pre-multiplicando por z
T
0
,
z
T
0
Az
0
z
T
0
z
0
=
0
(z
T
0
z
0
)
.
.. || z
0
|| = 1
.
..

0
= z
T
0
Az
0

e, por analogia, escrevemos

k
= z
T
k
Az
k

Alem disso, ao inves de calcularmos q = Az


k
, devemos calcular q = Az
k
z
k
. Ao nal do
processo, devemos corrigir
k
, adicionando a ele . Essas ideias s ao apresentadas no algoritmo
6.5.2.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 123
Introdu c ao ao Calculo Numerico Autovalores e Autovetores
Algoritmo 6.5.2 Metodo da potencia (com transla cao)
proc potencia transla cao(input: A, z
0
, , , k
max
; output:
k
, z
k
)
z
0
z
0
/|| z
0
||

0
z
T
0
Az
0

for k = 1, 2, . . . , k
max
do
q Az
k1
z
k1
z
k
q/|| q ||

k
z
T
k
Az
k

if |
k

k1
| < then
break
endif
endfor

k

k
+
endproc
O exemplo a seguir ilustra o uso do metodo da potencia com translacao de origem.
Exemplo 6.9 Seja a matriz
A =
_
_
2 1 0
1 2 1
0 1 2
_
_
,
a qual tem como autovalores e respectivos autovetores,

1
= 3, 4142,
2
= 2,
3
= 0, 5858
x
1
=
_
_
0, 5000
0, 7071
0, 5000
_
_
, x
2
=
_
_
0, 7071
0, 0000
0, 7071
_
_
, x
3
=
_
_
0, 5000
0, 7071
0, 5000
_
_
.
Note que |
2
/
1
| = 0, 5858. Se utilizarmos o metodo da potencia, a uma toler ancia de 10
5
e
vetor inicial z
0
= (1, 0, 0)
T
, necessitaremos de 13 itera coes para obter a aproxima cao 3, 4142 para
o autovalor
1
.
No entanto, se usarmos o transla cao da origem, com = 1, necessitamos apenas de 9 itera coes
para obter a mesma aproximacao; veja que

2
1

1
1

1
2, 4142

= 0, 4142 < 0, 5858 =

o que sugere o menor n umero de itera coes.


6.5.3 Metodo da itera cao inversa
Como vimos, o metodo da potencia nos permite aproximar o autovalor dominante de A; suponha,
agora, que desejamos aproximar o menor autovalor (e seu correspondente autovetor) de A. Re-
lembrando que os autovalores de A
1
sao o inverso dos autovalores de A (equa cao (6.3)), ent ao,
se utilizarmos o metodo da potencia sobre a matriz A
1
, aproximaremos o menor autovalor de
A pois ele e o maior autovalor de A
1
. A essa modicacao do metodo da potencia chamamos de
metodo da iterac ao inversa.
O metodo da itera cao inversa procede, basicamente, com o c alculo sucessivo de vetores z
k
dados por
z
k
= A
1
z
k1
, k = 1, 2, . . .
mas ja vimos (captulo 4) que, computacionalmente, devemos evitar, se possvel, calcular a inversa
de uma matriz. Nesse caso, e aconselhado que se resolva o sistema
Az
k
= z
k1
, k = 1, 2, . . .
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 124
Introdu c ao ao Calculo Numerico Autovalores e Autovetores
atraves da fatoracao LU de A (secao 4.3.2), uma vez que v arias itera coes serao necess arias para
se aproximar o menor autovalor e respectivo autovetor.
Alem disso, o metodo da itera cao inversa e, normalmente, combinado com a transla cao de
origem, o que resulta na fatoracao LU da matriz A I. O algoritmo 6.5.3 apresenta o metodo
da itera cao inversa, incorporando transla cao de origem.
Algoritmo 6.5.3 Metodo da iteracao inversa (com translacao)
proc itera cao inversa transla cao(input: A, z
0
, , , k
max
;
output:
k
, z
k
)
Fatore A I no produto LU
z
0
z
0
/|| z
0
||

0
z
T
0
Az
0

for k = 0, 1, . . . , k
max
do
Resolva o sistema Ly = z
k
Resolva o sistema Uq = y
z
k
q/|| q ||

k
z
T
k
Az
k

if |
k

k1
| < then
break
endif
endfor

k

k
+
endproc
Exemplo 6.10 Seja a matriz do exemplo 6.9,
A =
_
_
2 1 0
1 2 1
0 1 2
_
_
,
cujo menor autovalor e
3
= 0, 5858 e o seu correspondente autvetor e x
3
= (0, 5000, 0, 7071, 0, 5000)
T
.
Se utilizarmos o algoritmo 6.5.3 com = 0, i.e. sem transla cao da origem, a uma toler ancia
de 10
5
e vetor inicial z
0
= (1, 0, 0)
T
, necessitaremos de 7 itera coes para obter a aproxima cao
0, 5858 para o autovalor
3
e (0, 5002, 0, 7071, 0, 4998)
T
para o correspondente autovetor.
No entanto, se usarmos o transla cao da origem, com = 0, 5, necessitamos apenas de 4
itera coes para obter a mesma aproxima cao; veja que

1
2
0, 5

1
3
0, 5

0
0, 0858

= 0 < 0, 2929 =

1
2

1
3

o que sugere o menor n umero de itera coes; na verdade, = 0, 5 e a melhor escolha possvel, nesse
caso.
Outro exemplo mostra como usar o metodo da itera cao inversa em conjunto com o teorema de
Gerschgorin, a m de se determinar um autovalor especco.
Exemplo 6.11 Seja a matriz
A =
_
_
5 2 1
2 3 1
1 1 1
_
_
Os discos de Gerschgorin s ao:
d
1
: c
1
= 5, r
1
= 3
d
2
: c
2
= 3, r
2
= 3
d
3
: c
3
= 1, r
3
= 2
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 125
Introdu c ao ao Calculo Numerico Autovalores e Autovetores
Suponha que desejamos aproximar o menor autovalor; como o disco d
3
e aquele que se encontra
mais ` a esquerda em compara cao aos demais, podemos utilizar o seu centro como fator de transla-
c ao. Entao, utilizamos o metodo da iteracao inversa com = 1, vetor inicial z
0
=

3
1
(1, 1, 1)
T
e toler ancia 10
5
e obtemos = 0, 5764 e z = (0, 0597, 0, 3380, 0, 9393)
T
apos 10 itera coes.
Por outro lado, se tivessemos utilizado = c
3
+ r
3
, a convergencia para o mesmo autovalor seria
obtida em apenas 4 itera c oes.
6.5.4 O metodo da itera cao inversa e o quociente de Rayleigh
Como visto no teorema 6.2.2, o valor do autovalor dominante
1
de uma matriz real simetrica
e o maximo do quociente de Rayleigh, dentre todos os vetores x = 0. Isso nos permite utilizar
a expressao (6.12) juntamente com o metodo da itera cao inversa, conforme mostra o algoritmo
6.5.4.
Algoritmo 6.5.4 Metodo da iteracao inversa com translacao via
quociente de Rayleigh)
proc itera cao inversa transla cao(input: A, z
0
, , k
max
;
output:
k
, z
k
)
z
0
z
0
/|| z
0
||
for k = 0, 1, . . . , k
max
do

k
=
z
T
k
Az
k
z
T
k
z
k
Resolva o sistema (A
k
I)q = z
k
z
k
q/|| q ||
if || z
k
z
k1
|| < then
break
endif
endfor
endproc
Note que, no algoritmo 6.5.4, um sistema de equacoes diferente e resolvido a cada itera cao, j a
que uma nova estimativa
k
e utilizada a cada itera cao.

E possvel, no entanto, que o sistema
A
k
I seja singular e, nesse caso, o processo deve ser terminado.
6.6 Exerccios
Exerccio 6.1 Determine os autovalores e autovetores correspondentes da matriz
_
_
1 1 1
0 2 5
0 0 1
_
_
.
Exerccio 6.2 Calcule o autovalor dominante de
_
_
10 9 8
3 5 6
7 2 1
_
_
.
Exerccio 6.3 Calcule o autovalor dominante e o autovetor correspondente da matriz
_
_
6 2 1
2 3 1
1 1 1
_
_
,
usando o metodo da potencia, com z
0
= (1, 1, 1)
T
e toler ancia 10
5
.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 126
Introdu c ao ao Calculo Numerico Autovalores e Autovetores
Exerccio 6.4 Calcule o autovalor dominante e o autovetor correspondente da matriz
_
_
0 1 1
1 0 1
1 1 0
_
_
,
usando o metodo da potencia, com z
0
= (1, 1, 1)
T
e toler ancia 10
5
.
Exerccio 6.5 Explique o que acontece com o metodo da potencia para a matriz
_
_
2 1 1
1 2 1
1 1 2
_
_
,
com z
0
= (1, 1, 1)
T
e toler ancia 10
5
, sabendo que os seus autovalores s ao 1, 2 e 3. Repita para
z
0
= (1, 0, 10
6
)
T
.
Exerccio 6.6 Utilize o metodo da iteracao inversa para calcular o menor autovalor da matriz
_
_
2 1 1
1 2 1
1 1 2
_
_
,
com z
0
= (1, 1, 1)
T
e toler ancia 10
5
.
Exerccio 6.7 Seja a matriz
A =
_
_
5 2 1
2 3 1
1 1 1
_
_
Explique o que ocorre com o metodo da iteracao inversa utilizado com = 3, z
0
= (1, 0, 0)
T
e
toler ancia 10
5
. Generalize a sua resposta.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 127
Captulo 7
Interpola cao
7.1 Introdu cao
Freq uentemente, deparamo-nos com um conjunto discreto de valores de uma funcao que podem ser
dados na forma de tabela ou de um conjunto de medidas. Estes valores, na verdade, representam
um conjunto de pontos pertencentes a uma fun cao contnua.
Exemplo 7.1 A seguinte tabela relaciona o calor especco (c) da agua e a temperatura (T) em
0
C:
T 20 25 30 35 40 45 50
c 0,99907 0,99852 0,99826 0,99818 0,99828 0,99849 0,99878
Suponha que se queira calcular o calor especco da agua a 32
0
C ou a temperatura para a
qual o calor especco e 0, 99837. A interpolacao ajuda a resolver este tipo de problema, j a que a
informa c ao desejada nao se encontra disponvel na tabela.
Seja, entao, uma tabela da forma correspondente aos valores de uma fun cao f em n+1 pontos
x x
0
x
1
x
2
. . . x
n
f(x) f(x
0
) f(x
1
) f(x
2
) . . . f(x
n
)
Tabela 7.1: Valores de f em pontos distintos
reais distintos x
0
, x
1
, . . . , x
n
. Seja x

um ponto distinto dos pontos x


i
da tabela, pertencente ao
intervalo que contem os pontos x
i
, isto e, x

= x
i
, para i = 0, 1, . . . , n; considera ainda que existem
k e j, 0 k = j n tais que x
k
< x

< x
j
. Ent ao, podemos dizer que interpolar o ponto x

`a
tabela 7.1 signica calcular o valor de f(x

), ou seja, incluir o ponto (x

, f(x

)) ` a tabela 7.1.
A necessidade de se efetuar esta substituicao surge em varias situa coes, como por exemplo:
quando s ao conhecidos os valores numericos da fun cao para um conjunto de pontos e e
necessario calcular o valor da fun cao em um ponto n ao tabelado (como no exemplo 7.1);
quando a fun cao em estudo tem uma expressao tal que opera coes como diferenciacao e
integra cao sao difceis de serem realizadas.
Exemplo 7.2 Considere o problema de determinar o seno de 6, 5 graus. Assuma a disponibilidade
de uma tabela de senos na qual os valores s ao dados em intervalos de 1 grau. Para determinar o
valor desejado, tem-se tres escolhas:
128
Introdu c ao ao Calculo Numerico Interpolacao
1. Usar serie de Taylor para calcular o seno com uma certa exatid ao pre-denida;
2. Tentar encontrar uma tabela que liste o valor do seno em intervalos menores e procurar o
valor exato;
3. Usar os senos de 6 e 7 dados na tabela disponvel para tentar determinar o seno de 6, 5, ou
seja, realizar uma interpola cao.
A fun cao interpoladora pode ser de diversos tipos: polinomial, exponencial, entre outras.
Veremos, a seguir, como estabelecer o polin omio interpolador de um conjunto de pontos.
7.2 Interpola cao polinomial
Dados os pontos (x
0
, f(x
0
)), (x
1
, f(x
1
)), . . ., (x
n
, f(x
n
)), portanto n+1 pontos, deseja-se interpolar
f(x) por um polin omio p
n
(x), de grau menor ou igual a n, tal que
f(x
k
) = p
n
(x
k
) para k = 0, 1, . . . , n
Representa-se p
n
(x) por p
n
(x) = a
0
+a
1
x+. . . +a
n
x
n
. Portanto, obter p
n
(x) signica obter os
coecientes a
0
, a
1
, . . . , a
n
. Da condi cao f(x
k
) = p
n
(x
k
) para k = 0, 1, . . . , n, monta-se o seguinte
sistema linear:
_

_
a
0
+ a
1
x
0
+ a
2
x
2
0
+ . . . + a
n
x
n
0
= f(x
0
)
a
0
+ a
1
x
1
+ a
2
x
2
1
+ . . . + a
n
x
n
1
= f(x
1
)
.
.
.
a
0
+ a
1
x
n
+ a
2
x
2
n
+ . . . + a
n
x
n
n
= f(x
n
)
(7.1)
com n + 1 equa coes e n + 1 vari aveis: a
0
, a
1
, . . . , a
n
.
A matriz dos coecientes e uma matriz de Vandermonde,
_

_
1 x
0
x
2
0
. . . x
n
0
1 x
1
x
2
1
. . . x
n
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1 x
n
x
2
n
. . . x
n
n
_

_
(7.2)
a qual admite inversa desde que os pontos x
0
, x
1
, . . . , x
n
sejam distintos.
Exemplo 7.3 Encontre o polinomio de grau menor ou igual a 2 que interpola os pontos da tabela:
x 1 0 2
f(x) 4 1 1
Solu cao: Tem-se que p
2
(x) = a
0
+ a
1
x + a
2
x
2
e portanto,
p
2
(x
0
) = f(x
0
) a
0
a
1
+ a
2
= 4
p
2
(x
1
) = f(x
1
) a
0
= 1
p
2
(x
2
) = f(x
2
) a
0
+ 2 a
1
+ 4 a
2
= 1
Resolvendo o sistema linear, obtem-se a
0
= 1, a
1
=
7
3
, a
2
=
2
3
. Assim,
p
2
(x) = 1
7
3
x +
2
3
x
2
e o polin omio que interpola f(x) em x
0
= 1, x
1
= 0 e x
2
= 2.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 129
Introdu c ao ao Calculo Numerico Interpolacao
Uma caracterstica importante da interpola cao polinomial e que o polin omio interpolador e
unico:
Teorema 7.2.1 Unicidade do polin omio interpolador: Se x
0
, x
1
, . . . , x
n
s ao n umeros reais,
distintos, ent ao para n umeros arbitr arios y
0
, y
1
, . . . , y
n
, existe um polin omio unico p
n
, de grau
m aximo n, tal que p
n
(x
i
) = y
i
, 0 i n.
Prova:
Unicidade: suponha dois polinomios p
n
e q
n
; entao o polinomio p
n
q
n
tem a propriedade
(p
n
q
n
)(x
i
) = 0 para 0 i n. Como o grau de p
n
q
n
e no maximo n, esse polin omio
pode ter no maximo n razes se ele n ao e o polin omio nulo. Como, por hip otese, os x
i
s ao
distintos, p
n
q
n
tem n + 1 zeros logo ele deve ser nulo, de onde p
n
q
n
.
Existencia: (por indu cao) Para n = 0, obviamente existe uma fun cao constante p
0
(de grau 0)
que pode ser escolhida tal que p
0
(x
0
) = y
0
.
Suponha, agora, que tenhamos obtido um polinomio p
k1
de grau menor ou igual a k 1,
tal que p
k1
(x
i
) = y
i
, 0 i k 1. A partir desse, queremos construir um p
k
na forma
p
k
(x) = p
k1
(x) + c(x x
0
)(x x
1
) . . . (x x
k1
)
o qual e um polin omio de grau k. Alem disso, p
k
interpola os pontos que p
k1
interpola,
pois p
k
(x
i
) = p
k1
(x
i
) = y
i
, para 0 i k 1.
Para determinarmos o coeciente c, fazemos p
k
(x
k
) = y
k
, de onde
y
k
= p
k1
(x) + c(x x
0
)(x x
1
) . . . (x x
k1
)
a qual apresenta soluc ao unica pois os termos multiplicadores de c nao sao nulos.
Cabe salientar que, por quest oes de estabilidade numerica, n ao e adequado resolver-se o sistema
(7.1), uma vez que a inversa da matriz de Vandermonde podera ser altamente mal-condicionada,
dependendo dos valores de x
i
e f(x
i
). O exemplo a seguir mostra alguns dos problemas envolvidos
na determinacao do polin omio interpolador utilizando o sistema (7.1).
Exemplo 7.4 Obtenha p
3
(x) que interpola f(x) nos pontos x
0
, x
1
, x
2
e x
3
de acordo com a tabela
abaixo:
x 0, 1 0, 2 0, 3 0, 4
f(x) 5 13 4 8
O sistema linear resultante para esta tabela e
a
0
+ 0, 1 a
1
+ 0, 01 a
2
+ 0, 001 a
3
= 5
a
0
+ 0, 2 a
1
+ 0, 04 a
2
+ 0, 008 a
3
= 13
a
0
+ 0, 3 a
1
+ 0, 09 a
2
+ 0, 027 a
3
= 4
a
0
+ 0, 4 a
1
+ 0, 16 a
2
+ 0, 064 a
3
= 8
Usando aritmetica de ponto utuante com tres dgitos e o metodo de elimina cao de Gauss, o
resultado e
p
3
(x) = 0, 66 10
2
+ (0, 115 10
4
) x (0, 505 10
4
) x
2
+ (0, 633 10
4
) x
3
e, para x = 0, 4, obtem-se
p
3
(x) = 9 = 8 = f(0, 4)
o que obviamente esta errado.
Esse exemplo mostra que nem sempre se pode utilizar o sistema (7.1) para determinar o po-
lin omio interpolador e, usualmente, utilizam-se outras tecnicas, como as formas de Newton e de
Lagrange, dentre outras.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 130
Introdu c ao ao Calculo Numerico Interpolacao
7.3 Forma de Newton
Note que o processo de determinacao de p
k
, na prova do teorema 7.2.1, e recursivo. Alem disso,
p
k
e obtido a partir de p
k1
pela adi cao de um unico termo; logo, ao m do processo, p
k
ser a uma
soma de termos, de tal forma que cada p
0
, p
1
, . . . , p
k1
ser a identic avel em p
k
.
O polin omio p
k
tem a forma
p
k
(x) = c0 + c1(x x0) + c2(x x0)(x x1) + . . . + c
k
(x x0) . . . (x x
k1
) =
=
k

i=0
ci
i1

j=0
(x xj) (7.3)
onde
_

m
j=0
(x x
j
)
_
= 1 quando m < 0.
Procedendo ao uso da f ormula (7.3), os primeiros polin omios interpoladores na forma de Newton
sao os seguintes:
p
0
(x) = c
0
p
1
(x) = c
0
+ c
1
(x x
0
)
p
2
(x) = c
0
+ c
1
(x x
0
) + c
2
(x x
0
)(x x
1
)
Por quest oes de eciencia e de estabilidade numerica, os polin omios acima sao avaliados
utilizando multiplica c ao aninhada, tambem conhecida como f ormula de Horner. Suponha o poli-
n omio interpolador na forma de Newton escrito como
u =
k

i=0
c
i
i1

j=0
d
j
= c
0
+ c
1
d
0
+ c
2
d
0
d
1
+ . . . + c
k
d
0
d
1
. . . d
k1
;
podemos, entao, reescreve-lo na forma aninhada
u = (. . . (((c
k
)d
k1
+ c
k1
) d
k2
+ c
k2
) d
k3
+ . . . + c
1
) d
0
+ c
0
a qual pode ser calculada partindo do parenteses mais interno:
u
k
c
k
u
k1
u
k
d
k1
+ c
k1
u
k2
u
k1
d
k2
+ c
k2
.
.
.
u
0
u
1
d
0
+ c
0
e, como u
0
contem o valor de u, basta usar o seguinte algoritmo, j a substituindo d
k
por (x x
k
),
conforme aparece na Equacao (7.3):
u c
k
for i = k 1, k 2, . . . , 0 do
u (x x
i
)u + c
i
endfor
de forma a se calcular u p
k
(x).
Resta-nos, agora, calcular os coecientes c
k
do polin omio p
n
; c
k
e dado por
c
k
=
y
k
p
k1
(x
k
)
(x
k
x
0
)(x
k
x
1
) . . . (x
k
x
k1
)
(7.4)
com a qual podemos escrever o algoritmo 7.3.1:
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 131
Introdu c ao ao Calculo Numerico Interpolacao
Algoritmo 7.3.1 Polin omio interpolador de Newton
proc polin omio interpolador de Newton(input: n, [x
0
, x
1
, . . . , x
n1
], [y
0
, y
1
, . . . , y
n1
];
output: [c
0
, c
1
, . . . , c
n
])
c
0
y
0
for k = 1, 2, . . . , n do
d x
k
x
k1
u c
k1
for i = k 2, k 3, . . . , 0 do
u (x
k
x
i
)u + c
i
d d(x
k
x
i
)
endfor
c
k

y
k
u
d
endfor
endproc
Vejamos como utilizar as equacoes e algoritmos visto nessa secao:
Exemplo 7.5 Dados os pontos tabulados abaixo, obtenha o polin omio interpolador na forma de
Newton:
i 0 1 2 3
x 5 7 6 0
y 1 23 54 954
Solu cao:
c
0
y
0
= 1
c
1

y
1
u
d
=
23 1
12
= 2
c
2

y
2
u
d
=
54 + 21
11
= 3
c
3

y
3
u
d
=
954 + 114
210
= 4
de onde o polinomio interpolador pode ser escrito como
p
3
(x) = 1 + 2(x 5) + 3(x 5)(x + 7) + 4(x 5)(x + 7)(x + 6).

E f acil vericar, por inspe cao, que o polin omio p


3
(x) satisfaz p
3
(5) = 1; para os demais pontos
tabulados, basta avaliar p
3
(x) em cada um deles.
O polin omio interpolador, bem como os pontos interpolados, e mostrado na gura 7.1.
7.4 Forma de Lagrange
Podemos obter o polin omio unico que interpola um dado conjunto de pontos utilizando a forma
de Lagrange, a qual expressa p(x) como
p(x) = y
0
l
0
(x) + y
1
l
1
(x) + . . . + y
n
l
n
(x) =
n

k=0
y
k
l
k
(x) (7.5)
onde l
i
(x) sao polin omios dependentes apenas de x
0
, x
1
, . . . , x
n
(e n ao de y
i
).
O polin omio l
0
e da forma
l
0
(x) = c(x x
1
)(x x
2
) . . . (x x
n
) = c
n

j=1
(x x
j
)
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 132
Introdu c ao ao Calculo Numerico Interpolacao
Figura 7.1: A curva do polin omio interpolador de Newton, p
3
(x) = 1 + 2(x 5) + 3(x 5)(x +
7) + 4(x 5)(x + 7)(x + 6), e os pontos interpolados.
onde o coeciente c e obtido substituindo x por x
0
na equacao acima, de onde, assumindo que
y
0
= 1,
1 = c
n

j=1
(x
0
x
j
) c =
n

j=1
(x
0
x
j
)
1
logo,
l
0
(x) =
n

j=1
_
(x x
j
)
(x
0
x
j
)
_
;
os demais l
i
(x) sao obtidos de forma similar, podendo ser expressos por
l
i
(x) =
n

j=1
_
(x x
j
)
(x
i
x
j
)
_
. (7.6)
Os polin omios l
i
(x) sao tambem conhecidos como fun coes cardinais. O exemplo que segue mostra
como obter o polin omio interpolador na forma de Lagrange.
Exemplo 7.6 A f ormula de Lagrange para a interpola cao de dois pontos distintos (x
0
, f(x
0
)) e
(x
1
, f(x
1
)) e:
p
1
(x) = y
0
l
0
(x) + y
1
l
1
(x)
onde
l
0
(x) =
(x x
1
)
(x
0
x
1
)
, l
1
(x) =
(x x
0
)
(x
1
x
0
)
Assim,
p
1
(x) = y
0
(x x
1
)
(x
0
x
1
)
+ y
1
(x x
0
)
(x
1
x
0
)
ou seja,
p
1
(x) =
(x
1
x)y
0
+ (x x
0
)y
1
x
1
x
0
que e exatamente a equacao da reta que passa por (x
0
, f(x
0
)) e (x
1
, f(x
1
)).
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 133
Introdu c ao ao Calculo Numerico Interpolacao
Exemplo 7.7 Dados os pontos tabulados, obtenha o polinomio interpolador na forma de Lagrange:
i 0 1 2 3
x 5 7 6 0
y 1 23 54 954
Solu cao:
l
0
(x) =
(x + 7)(x + 6)(x)
(5 + 7)(5 + 6)(5)
l
1
(x) =
(x 5)(x + 6)(x)
(7 5)(7 + 6)(7)
l
2
(x) =
(x 5)(x + 7)(x)
(6 5)(6 + 7)(6)
l
3
(x) =
(x 5)(x + 7)(x + 6)
(0 5)(0 + 7)(0 + 6)
de onde o polinomio interpolador pode ser escrito como
p
3
(x) = 1
_
(x+7)(x+6)(x)
660
_
23
_
(x5)(x+6)(x)
84
_
54
_
(x5)(x+7)(x)
66
_
954
_
(x5)(x+7)(x+6)
210
_
Note como esse polin omio tem uma forma bastante diferente da do polinomio interpolador de
Newton; no entanto, ele igualmente satisfaz `a condicao de interpolacao, o que pode ser vericado
avaliando-se p
3
(x) em cada ponto. Particularmente, p
3
(5) = 1
12115
660
= 1.
7.5 Forma de Newton com diferen cas divididas
Seja f uma fun cao calcul avel em pontos (ou nos) x
0
, x
1
, . . . , x
n
, distintos mas n ao necessariamente
ordenados. Como sabemos, existe um unico polin omio p, de grau n no maximo, que interpola f
nos n + 1 n os:
p(x
i
) = f(x
i
), 0 i n
Evidentemente, p pode ser construdo a partir das bases 1, x, x
2
, . . ., x
n
, mas isso nao e
recomendado devido a problemas de instabilidade numerica. Portanto, utilizam-se bases mais
amenas, como aquelas do polinomio interpolador na forma de Newton:
q
0
(x) =
q
1
(x) = (x x
0
)
q
2
(x) = (x x
0
)(x x
1
)
.
.
.
q
n
(x) = (x x
0
)(x x
1
) . . . (x x
n1
)
o que leva ` a j a conhecida forma de Newton,
p(x) =
n

j=0
c
j
q
j
(x).
Utilizando a condi cao de interpola cao (p(x
i
) = f(x
i
)), obtemos um sistema de equacoes para
a determina cao dos coecientes c
j
:
n

j=0
c
j
q
j
(x
i
) = f(x
i
), 0 i n
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 134
Introdu c ao ao Calculo Numerico Interpolacao
Note que, se escrevermos o sistema acima na forma Ax = b, a matriz A, de ordem n+1, tem como
elementos a
ij
= q
j
(x
i
), 0 i n, 0 j n. No entanto, como
q
j
(x
i
) =
j1

k=0
(x
i
x
k
) = 0, se i j 1
ent ao A e uma matriz triangular inferior. Por exemplo, com tres nos x
0
, x
1
, x
2
, temos
p
2
(x) = c
0
q
0
+ c
1
q
1
+ c
2
q
2
= c
0
+ c
1
(x x
0
) + c
2
(x x
0
)(x x
1
)
e, para determinarmos os c
i
, fazemos p
2
(x
0
) = f(x
0
), p
2
(x
1
) = f(x
1
) e p
2
(x
2
) = f(x
2
), de onde
obtemos o sistema
_
_
1 0 0
1 (x
1
x
0
) 0
1 (x
2
x
0
) (x
2
x
0
)(x
2
x
1
)
_
_
_
_
c
0
c
1
c
2
_
_
=
_
_
f(x
0
)
f(x
1
)
f(x
2
)
_
_
(7.7)
Analisando a estrutura do sistema (7.7), vemos que e possvel obter os coecientes c
i
em ordem
crescente, i.e. c
0
, c
1
, . . .; alem disso, o coeciente c
i
depende apenas dos valores de f(x
0
), f(x
i
),
. . ., f(x
i
), e essa dependencia e denotada por
c
n
= f[x
0
, x
1
, . . . , x
n
]. (7.8)
onde c
n
e o coeciente de q
n
quando

n
k=0
c
k
q
k
interpola f em x
0
, x
1
, . . . , x
n
. Como
q
n
= (x x
0
)(x x
1
) . . . (x x
n1
) = x
n
+ O(n 1)
podemos igualmente dizer que f[x
0
, x
1
, . . . , x
n
] e o coeciente de x
n
.
`
A expressao f[x
0
, x
1
, . . . , x
n
]
chamamos de diferen cas divididas, pois ela tem a forma de uma divis ao de duas subtra coes,
conforme veremos a seguir.
Algumas das f ormulas de diferen cas divididas s ao as seguintes:
1. f[x
0
] e o coeciente de x
0
no polin omio de grau 0 que interpola f em x
0
; logo, f[x
0
] = f(x
0
).
2. f[x
0
, x
1
] e o coeciente de x
1
no polin omio de grau 1, no m aximo, interpolando f em x
0
e
x
1
. Como esse polin omio e
p
x
= f(x
0
) +
f(x
1
) f(x
0
)
x
1
x
0
(x x
0
)
vemos que
f[x
0
, x
1
] =
f(x
1
) f(x
0
)
x
1
x
0
.
3. Para diferen cas divididas de maior ordem, podemos nos valer de um teorema que nos diz
que elas satisfazem a rela cao
f[x
0
, x
1
, . . . , x
n
] =
f[x
1
, x
2
, . . . , x
n
] f[x
0
, x
1
, . . . , x
n1
]
x
n
x
0
(7.9)
de onde podemos obter, por exemplo:
f[x
0
, x
1
] =
f[x
1
] f[x
0
]
x
1
x
0
f[x
0
, x
1
, x
2
] =
f[x
1
, x
2
] f[x
0
, x
1
]
x
2
x
0
f[x
0
, x
1
, x
2
, x
3
] =
f[x
1
, x
2
, x
3
] f[x
0
, x
1
, x
2
]
x
3
x
0
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 135
Introdu c ao ao Calculo Numerico Interpolacao
O polin omio interpolador na forma de Newton pode, agora, ser escrito como
p(x) =
n

k=0
c
k
q
k
(x) =
n

k=0
f[x
0
, x
1
, . . . , x
k
]
k1

j=0
(x x
j
) (7.10)
o qual e equivalente ` a Equa cao (7.3), mas os coecientes c
k
sao mais facilmente obtidos em termos
de diferen cas divididas, usando o esquema mostrado na Tabela 7.2. Note que os coecientes do
polin omio, conforme a Equa cao (7.10), aparecem na primeira linha da tabela.
x y Coecientes
x
0
f[x
0
] f[x
0
, x
1
] f[x
0
, x
1
, x
2
] f[x
0
, x
1
, x
2
, x
3
]
x
1
f[x
1
] f[x
1
, x
2
] f[x
1
, x
2
, x
3
]
x
2
f[x
2
] f[x
2
, x
3
]
x
3
f[x
3
]
Tabela 7.2: Esquema de constru cao dos coecientes do polinomio interpolador por diferen cas
divididas: as echas indicam as dependencias.
O exemplo que segue ilustra a construcao do polin omio interpolador usando diferen cas divididas.
Exemplo 7.8 Dados os pontos tabulados abaixo, obtenha o polin omio interpolador na forma de
Newton:
i 0 1 2 3
x 5 7 6 0
y 1 23 54 954
Solu cao:
x y Coecientes
5 1 f[x
0
, x
1
] = 2 f[x
0
, x
1
, x
2
] = 3 f[x
0
, x
1
, x
2
, x
3
] = 4
7 23 f[x
1
, x
2
] = 31 f[x
1
, x
2
, x
3
] = 17
6 54 f[x
2
, x
3
] = 150
0 954
onde os coecientes foram obtidos como segue:
f[x
0
, x
1
] =
f[x
1
] f[x
0
]
x
1
x
0
=
23 1
7 5
= 2
f[x
1
, x
2
] =
f[x
2
] f[x
1
]
x
2
x
1
=
54 (23)
6 (7)
= 31
f[x
2
, x
3
] =
f[x
3
] f[x
2
]
x
3
x
2
=
954 (54)
0 (6)
= 150
f[x
0
, x
1
, x
2
] =
f[x
1
, x
2
] f[x
0
, x
1
]
x
2
x
0
=
31 2
6 5
= 3
f[x
1
, x
2
, x
3
] =
f[x
2
, x
3
] f[x
1
, x
2
]
x
3
x
1
=
150 (31)
0 (7)
= 17
f[x
0
, x
1
, x
2
, x
3
] =
f[x
1
, x
2
, x
3
] f[x
0
, x
1
, x
2
]
x
3
x
0
=
17 3
0 5
= 4
O polin omio interpolador pode ser escrito, ent ao, como
p
3
(x) = f[x
0
] + f[x
0
, x
1
](x x
0
) +
f[x
0
, x
1
, x
2
](x x
0
)(x x
1
) +
f[x
0
, x
1
, x
2
, x
3
](x x
0
)(x x
1
)(x x
2
) =
= 1 + 2(x 5) + 3(x 5)(x + 7) + 4(x 5)(x + 7)(x + 6)
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 136
Introdu c ao ao Calculo Numerico Interpolacao
o qual e identico ao polinomio interpolador de Newton mostrado no exemplo na se cao 7.3; porem,
com o esquema de diferen cas divididas, ele e facilmente obtido.
Os coecientes do polin omio interpolador, calculados por diferen cas divididas, podem ser
obtidos, tambem, atraves do seguinte algoritmo:
Algoritmo 7.5.1 Diferen cas-divididas
proc diferen cas divididas(input: n, [x
0
, x
1
, . . . , x
n1
], [y
0
, y
1
, . . . , y
n1
];
output: [c
0
, c
1
, . . . , c
n
])
for j = 0, 1, . . . , n do
c
j,0
= y
j
endfor
for j = 1, 2, . . . , n do
for i = 0, 1, . . . , j 1 do
c
i,j

ci+1,j1ci,j1
xi+jxi
endfor
endfor
endproc
onde os c
i,j
sao os coecientes desejados; particularmente, c
0,0
= f[x
0
], c
0,1
= f[x
0
, x
1
], c
1,1
=
f[x
1
, x
2
], e assim por diante.
7.6 Forma de Newton com diferen cas simples
Sejam os valores y = f(x) dados atraves da tabela (x
i
, y
i
), para i = 0, 1, . . . , n, onde os valores de
x sao eq uidistantes, isto e, x
i+1
x
i
= h. Assim dene-se o polinomio
p
n
(x) = y
0
+
x x
0
h
y
0
+
(x x
0
)(x x
1
)
2! h
2

2
y
0
+ . . .
+
(x x
0
)(x x
1
) . . . (x x
n1
)
n! h
n

n
y
0
(7.11)
onde
k
y
i
e uma diferen ca simples de ordem k, calculada conforme
y
i
= y
i+1
y
i
Ordem 1

2
y
i
= y
i+1
y
i
= y
i+2
2 y
i+1
+ y
i
Ordem 2
.
.
.
.
.
.
.
.
.

k
y
i
=
k1
y
i+1

k1
y
i
Ordem k
e, a m de facilitar a determina cao dos valores
k
y
i
, pode-se construir uma tabela como a que
segue:
i x
i
y
i
y
i

2
y
i

3
y
i

4
y
i
0 x
0
y
0
y
0

2
y
0

3
y
0

4
y
0
1 x
1
y
1
y
1

2
y
1

3
y
1
2 x
2
y
2
y
2

2
y
2
3 x
3
y
3
y
3
4 x
4
y
4
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 137
Introdu c ao ao Calculo Numerico Interpolacao
a qual e bastante similar `aquela utilizada para a determina cao do polin omio interpolador de
Newton atraves de diferen ca-divididas.

E possvel estabelecer-se a seguinte relacao entre diferen cas
divididas e simples:
f[x
i+k
, . . . , x
i
] =

k
y
i
k! h
k
(7.12)
para h constante.
Efetuando-se a mudan ca de variavel
z =
x x
0
h
, (7.13)
o polin omio interpolador de Newton com diferen cas simples (7.11) pode ser escrito como
p
n
(z) = y
0
+ z y
0
+
z (z 1)
2! h
2

2
y
0
+ . . .
+
z (z 1) . . . (z n + 1)
n! h
n

n
y
0
(7.14)
Exemplo 7.9 Dada a tabela
x
i
1 2 3 4
y
i
1 9 25 55
correspondente aos valores de uma fun cao f, interpole o ponto x = 2, 5.
Solu cao: Como os pontos sao eq uidistantes, pode-se construir a tabela
i x
i
y
i
y
i

2
y
i

3
y
i
0 1 1 8 8 6
1 2 9 16 14
2 3 25 30
3 4 55
Com isto, a f ormula para o polin omio interpolador de Newton com diferencas simples (7.11) e
p
3
(x) = y
0
+
x x
0
h
y
0
+
(x x
0
)(x x
1
)
2! h
2

2
y
0
+
(x x
0
)(x x
1
)(x x
2
)
3! h
3

3
y
0
ou,
p
3
(x) = 1 +
x 1
1
8 +
(x 1)(x 2)
2! 1
8 +
(x 1)(x 2)(x 3)
3! 1
6
de onde p
3
(2, 5) = 15, 625.
7.7 Interpola cao inversa
O problema da interpola cao inversa consiste em, dado y (f(x
0
), f(x
n
)), obter x tal que f( x) = y.
Este problema pode ser resolvido de duas formas:
1. Obter p
n
(x) que interpola f(x) em x
0
, x
1
, . . . , x
n
e em seguida encontrar x tal que p
n
( x) = y;
2. Se f(x) for inversvel num intervalo contendo y, fazer a interpolacao de x = f
1
( y) = g( y).
Uma condi cao para que uma fun cao contnua num intervalo [a, b] seja inversvel e que ela seja
monotona crescente ou decrescente neste intervalo. Basta entao considerar x como fun cao
de y e aplicar um metodo de interpola cao conhecido: x = f
1
(y) = g(y) p
n
(y).
Exemplo 7.10 Dada a tabela
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 138
Introdu c ao ao Calculo Numerico Interpolacao
x 0, 2 0, 3 0, 4
y = e
x
1, 2214 1, 3499 1, 4918
obter x tal que e
x
= 1, 3165 usando um processo de interpolacao quadr atica.
Solu cao:Pode-se usar a formula de Newton para obter p
2
(y) que interpola g(y) = f
1
(y). Para
isto, constr oi-se a tabela de diferen cas divididas:
i y
i
g[y
i
] g[y
i+1
, y
i
] g[y
i+2
, y
i+1
, y
i
]
0 1, 2214 0, 2 0, 7782 0, 2718
1 1, 3499 0, 3 0, 7047
2 1, 4918 0, 4
O polin omio p
2
(y) e determinado por
p
2
(y) = g[y
0
] + (y y
0
) g[y
1
, y
0
] + (y y
0
)(y y
1
) g[y
2
, y
1
, y
0
]
= 0, 2 + (y 1, 2214) 0, 7782 + (y 1, 2214)(y 1, 3499) (0, 2718)
de forma que p
2
(1, 3165) = 0, 27487. Assim, e
0,27487
= 1, 3165.
7.8 Interpola cao por splines
Suponha que se deseja interpolar um conjunto de pontos por uma fun cao polinomial; ent ao, uma
fun cao spline consiste de um conjunto de polin omios de grau pequeno que atuam sobre
alguns dos pontos daquele conjunto.
Formalmente, suponha que n+1 pontos t
0
, t
1
, . . . , t
n
, chamados de nos, tenham sido especicados,
satisfazendo t
0
< t
1
< . . . < t
n
, alem de um n umero inteiro k 0. Uma fun cao spline de grau
k, com nos t
0
, t
1
, . . . , t
n
, e uma fun cao S tal que
1. Em cada subintervalo [t
i1
, t
i
), S e um polin omio de grau menor ou igual a k;
2. S tem as suas primeiras k 1 derivadas contnuas em [t
0
, t
n
].
Diz-se, portanto, que S e um polin omio contnuo de grau k, por partes, apresentando derivadas
de ordem igual ou inferior a k 1 contnuas. Vejamos alguns exemplos:
Spline de grau 0: sao polin omios constantes, os quais podem ser dados por
S(x) =
_

_
S
0
(x) = c
0
t
0
x < t
1
S
1
(x) = c
1
t
1
x < t
2
.
.
.
.
.
.
S
n1
(x) = c
n1
t
n1
x < t
n
Spline de grau 1: sao retas que unem os nos, as quais podem ser dadas por
S(x) =
_

_
S
0
(x) = a
0
x + b
0
t
0
x < t
1
S
1
(x) = a
1
x + b
1
t
1
x < t
2
.
.
.
.
.
.
S
n1
(x) = a
n1
x + b
n1
t
n1
x < t
n
As splines sao normalmente usadas na forma c ubica. Assuma que uma tabela de dados seja
dada, i.e.,
x t
0
t
1
. . . t
n1
t
n
y y
0
y
1
. . . y
n1
y
n
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 139
Introdu c ao ao Calculo Numerico Interpolacao
Em cada intervalo [t
i
, t
i+1
], S e dada por um polin omio c ubico diferente.
Seja S
i
o polin omio c ubico que representa S no intervalo [t
i
, t
i+1
]; ent ao, como S = S
0
(x)|t
0

x t
1
e S = S
1
(x)|t
1
x t
2
, temos necessariamente, em x = t
1
, que S
0
(t
1
) = y
1
= S
1
(t
1
).
Generalizando, exigimos que S
i1
(t
i
) = y
i
= S
i
(t
i
), 1 i n 1. Alem disso, exigimos que S

e
S

sejam contnuas, a m de podermos impor as condi coes necessarias para que S seja contnua
ao longo do intervalo [t
0
, t
n
].
Vejamos se a continuidade de S, S

e S

e suciente para se denir a spline c ubica. Um


polin omio c ubico tem a forma
a
0
+ a
1
x + a
2
x
2
+ a
3
x
3
e, como desejamos obter um polinomio c ubico em cada um dos n intervalos, vemos que sera
necessario determinar 4n coecientes. Em cada intervalo [t
i
, t
i+1
], temos duas condicoes de
interpola cao
S(t
i
) = y
i
(7.15)
S(t
i+1
) = y
i+1
(7.16)
ou seja, poderemos determinar 2n coecientes. A continuidade de S apenas nos d a a condi cao
S
i1
(t
i
) = S
i
(t
i
), equivalente `as duas condi coes de interpola cao em cada intervalo.
Impondo continuidade de S

e de S

, podemos escrever
S

i1
(t
i
) = S

i
(t
i
) (7.17)
S

i1
(t
i
) = S

i
(t
i
) (7.18)
obtendo 2(n1) outras condi coes. Ao todo, temos, portanto, 4n2 condi coes; as duas que faltam
podem ser obtidas de v arias formas mas, usualmente, escreve-se
S

0
(t
0
) = 0 (7.19)
S

n1
(t
n
) = 0 (7.20)
e, com isso, temos todas as 4n condi coes necessarias para se determinar os coecientes da spline
c ubica.
Vejamos como denir S
i
em [t
i
, t
i+1
]. Escrevendo z
i
= S

i
(t
i
), temos que, por denicao, z
i
existe para 0 i n 1 e satisfaz
lim
xt

i
S

i
(x) = z
i
= lim
xt
+
i
S

i
(x), 1 i n 1
pois S

e contnua em cada n o interno (diferentes de t


0
e t
n
). Como S
i
e um polin omio c ubico
em [t
i
, t
i+1
], S

i
e uma fun cao linear satisfazendo S

i
(t
i
) = z
i
e S

i
(t
i+1
) = z
i+1
e, portanto, e uma
reta que passa por z
i
e z
i+1
:
S

i
(x) =
z
i
h
i
(t
i+1
x) +
z
i+1
h
i
(x t
i
) (7.21)
onde h
i
= t
i+1
t
i
. Integrando a equa cao acima duas vezes, obtemos
S
i
(x) =
z
i
6h
i
(t
i+1
x)
3
+
z
i+1
6h
i
(x t
i
)
3
+ C(x t
i
) + D(t
i+1
x) (7.22)
onde C e D sao constantes de integracao. Agora, usando S
i
(t
i
) = y
i
e S
i
(t
i+1
) = y
i+1
, podemos
determinar C e D:
S
i
(t
i
) = y
i
.
..
z
i
6h
i
(t
i+1
t
i
)
3
+
z
i+1
6h
i
(t
i
t
i
)
3
+ C(t
i
t
i
) + D(t
i+1
t
i
) = y
i
z
i
6
(t
i+1
t
i
)
2
+ Dh
i
= y
i
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 140
Introdu c ao ao Calculo Numerico Interpolacao
com h
i
= t
i+1
t
i
, de onde
D =
y
i
h
i

z
i
h
i
6
(7.23)
Para determinar C, escrevemos
S
i
(t
i+1
) = y
i+1
.
..
z
i
6h
i
(t
i+1
t
i+1
)
3
+
z
i+1
6h
i
(t
i+1
t
i
)
3
+ C(t
i+1
t
i
) + D(t
i+1
t
i+1
) = y
i+1
z
i+1
6
h
2
i
+ Ch
i
= y
i+1
de onde
C =
y
i+1
h
i

z
i+1
h
i
6
(7.24)
Logo, podemos escrever S
i
o polin omio c ubico em cada intervalo [t
i
, t
i+1
] como
S
i
(x) =
z
i
6h
i
(t
i+1
x)
3
+
z
i+1
6h
i
(x t
i
)
3
+
_
y
i+1
h
i

z
i+1
h
i
6
_
(x t
i
) +
_
y
i
h
i

z
i
h
i
6
_
(t
i+1
x)
Agora, resta determinar os z
i
, 1 i n 1, usando a continuidade em S

. Para tanto, temos


S

i1
(t
i
) = S

i
(t
i
), nos n os interiores. Diferenciando a expressao (7.25) e substituindo x = t
i
, temos
S

i1
(t
i
) =
z
i
h
i1
3
+
z
i1
h
i1
6

y
i1
h
i1
+
y
i
h
i
e
S

i
(t
i
) =
z
i
h
i
3

z
i+1
h
i
6

y
i
h
i
+
y
i+1
h
i
de onde, igualando ambas as expressoes acima, vem
h
i1
z
i1
+ 2(h
i
+ h
i1
)z
i
+ h
i
z
i+1
=
6
h
i
(y
i+1
y
i
)
6
h
i1
(y
i
y
i1
)
a qual, com z
0
= z
n
= 0, para 1 i n1, nos leva a um sistema de equacoes de n1 equa coes
a n 1 vari aveis,
_

_
u
1
h
1
h
1
u
2
h
2
.
.
.
.
.
.
.
.
.
h
n3
u
n2
h
n2
h
n2
u
n1
_

_
z = v (7.25)
onde:
h
i
= t
i+1
t
i
u
i
= 2(h
i
+ h
i1
)
b
i
=
6
h
i
(y
i+1
y
i
)
v
i
= b
i
b
i1
O sistema (7.25) pode ser resolvido por eliminacao de Gauss, sem pivotamento, j a que ele e
diagonal dominante. Um algoritmo para resolver o referido sistema pode ser escrito como
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 141
Introdu c ao ao Calculo Numerico Interpolacao
Algoritmo 7.8.1 Coecientes da spline
proc coecientes spline(input: n, [t
0
, t
1
, . . . , t
n
], [y
0
, y
1
, . . . , y
n
];
output: [z
0
, z
1
, . . . , z
n
])
for i = 0, 1, . . . , n 1 do
h
i
= t
i+1
t
i
b
i
=
6
hi
(y
i+1
y
i
)
endfor
u
1
= 2(h
0
+ h
1
)
v
1
= b
1
b
0
for i = 2, 3, . . . , n 1 do
u
i
=
2(hi+hi1)h
2
i1
ui1
v
i
=
bibi1hi1vi1
ui1
endfor
z
n
= 0
for i = n 1, n 2, . . . , 1 do
z
i
=
vihizi+1
ui
endfor
z
0
= 0
endproc
Uma vez obtidos os z
i
, pode-se avaliar S
i
(x) usando a express ao abaixo, na forma aninhada:
S
i
(x) = y
i
+ (x t
i
) (C
i
+ (x t
i
) (B
i
(x t
i
)A
i
)) (7.26)
onde
A
i
=
1
6h
i
(z
i+1
z
i
)
B
i
=
z
i
2
C
i
=
h
i
6
z
i+1

h
i
3
z
i
+
y
i+1
y
i
h
i
Cabe relembrar que, para cada intervalo [t
i
, t
i+1
], deve ser utilizada a Equa cao (7.26) com os
valores adequados: z
i
e z
i+1
; y
i
e y
i+1
; e h
i
= t
i+1
t
i
.
7.9 Estudo do erro na interpola cao
Seja f uma fun cao contnua com (n + 1) derivadas contnuas em um intervalo I, x
0
< x
1
< . . . <
x
n
, (n + 1) pontos distintos pertencentes ao intervalo I e p
n
(x) o polin omio interpolador de f
relativamente aos pontos x
0
, x
1
, . . . , x
n
.
Ao se aproximar esta fun cao f(x) por um polin omio interpolador p
n
(x), de grau menor ou
igual a n, comete-se um erro de truncamento na interpolacao de x. Este e denido por
E
n
(x) = f(x) p
n
(x) = (x x
0
) (x x
1
) (x x
2
) . . . (x x
n
)
f
(n+1)
()
(n + 1)!
(7.27)
para (x
0
, x
n
).
Para utilizar esta formula, e preciso conhecer f
(n+1)
e o ponto . Mas, em geral, a forma
analtica da fun cao f n ao e conhecida, nao sendo possvel portanto determinar nem f
(n+1)
e,
conseq uentemente, nem E
n
(x). Ainda assim, mesmo quando se conhece a forma analtica de f,
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 142
Introdu c ao ao Calculo Numerico Interpolacao
n ao se sabe o valor de e, portanto, n ao se pode calcular E
n
(x) exatamente. Entretanto, pode-se
delimitar o erro pela desigualdade:
| E
n
(x) | | (x x
0
) (x x
1
) (x x
2
) . . . (x x
n
) | max
xI
| f
(n+1)
(x) |
(n + 1)!
. (7.28)
Exemplo 7.11 Seja o problema de se obter ln(3, 7) por interpola cao linear, onde ln(x) esta
tabelada abaixo:
x 1 2 3 4
ln(x) 0 0, 6931 1, 0986 1, 3863
Solu cao:Como x = 3, 7 (3; 4) escolhe-se x
0
= 3 e x
1
= 4. Pela forma de Newton, o polinomio
interpolador e
p
1
(x) = y
0
+
x x
0
h
y
0
= 1, 0986 + (x 3)
(1, 3863 1, 0986)
4 3
= 1, 0986 + (x 3) (0, 2877).
Conseq uentemente, p
1
(3, 7) = 1, 3000. Neste caso, dado que, com quatro casas decimais, f(3, 7) =
ln(3, 7) = 1, 3083, tem-se condi coes de calcular o erro exato:
E
1
(3, 7) = | f(3, 7) p
n
(3, 7) | = | 1, 3083 1, 3 | = 0, 0083
Por outro lado, tem-se tambem a seguinte majora cao para o erro:
| E
1
(3, 7) | | (3, 7 3) (3, 7 4) | max
x[3;4]
| f

(x) |
2!
| (3, 7 3) (3, 7 4) |
1
2
0, 105
7.9.1 Estimativa para o erro
Se a fun cao f(x) e dada em forma de tabela, o valor absoluto do erro E
n
(x) so pode ser estimado,
j a que n ao e possvel calcular f
(n+1)
. Entretanto, construindo a tabela de diferen cas divididas ate
ordem (n + 1), tem-se que
| E
n
(x) | | (x x
0
) (x x
1
) . . . (x x
n
) | | f[x
n+1
, x
n
, . . . , x
0
] | (7.29)
ou, para pontos igualmente espa cados,
| E
n
(x) | | (x x
0
) (x x
1
) . . . (x x
n
) |

n+1
y
0
(n + 1)! h
n+1

, (7.30)
j a que
f[x
n+1
, x
n
, . . . , x
0
] =

n+1
y
0
(n + 1)! h
n+1
(7.31)
para h constante.
Exemplo 7.12 Seja f(x) dada na forma
x 0, 4 0, 52 0, 6 0, 72
f(x) 0, 27 0, 29 0, 32 0, 37
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 143
Introdu c ao ao Calculo Numerico Interpolacao
obter f(0, 47) utilizando um polin omio de grau 2 e dar uma estimativa para o erro.
Solu cao: A tabela de diferencas e dada por
i x
i
f[x
i
] f[x
i+1
, x
i
] f[x
i+2
, x
i+1
, x
i
] f[x
i+3
, x
i+2
, x
i+1
, x
i
]
0 0, 4 0, 27 0, 1667 1, 0415 2, 6031
1 0, 52 0, 29 0, 375 0,2085
2 0, 6 0, 32 0,4167
3 0, 72 0, 37
Assim, usando a formula de Newton,
p
2
(x) = f[x
0
] + (x x
0
) f[x
1
, x
0
] + (x x
0
)(x x
1
) f[x
2
, x
1
, x
0
]
= 0, 27 + (x 0, 4) 0, 1667 + (x 0, 4)(x 0, 52) 1, 0415
de onde f(0, 47) = p
2
(0, 47) = 0, 2780.
A estimativa para o erro de truncamento e
| E
2
(x) | | (x x
0
) (x x
1
) (x x
2
) | f[x
3
, x
2
, x
1
, x
0
] |
| (x 0, 4) (x 0, 52) (x 0, 6) | 2, 6031 |
ou seja,
| E
2
(0, 47) | 1, 184 10
3
.
7.10 Exerccios
Exerccio 7.1 Determine f(1, 32) a partir da tabela
x 1, 3 1, 4 1, 5
f(x) 3, 669 4, 055 4, 482
Exerccio 7.2 Considere o exemplo 7.4. O que ocorreu naquela situa cao? Explique por que o
valor calculado n ao coincide com o valor tabelado.
Exerccio 7.3 A integral elptica completa e denida por
K(k) =
_
2
0
dx
(1 k
2
sen
2
k)
1
2
.
Consultando uma tabela de valores destas integrais, tem-se que
K(1) = 1, 5708
K(3) = 1, 5719
K(5) = 1, 5738
Calcule K(3, 5) usando um polin omio interpolador do segundo grau.
Exerccio 7.4 Interpole o ponto x = 0
.
5 `a tabela
x 0 1 3 4
f(x) 5 1 25 55
utilizando o polinomio interpolador na forma de Newton.
Exerccio 7.5 Calcule uma aproxima cao para f(2, 3) pela forma interpoladora de Lagrange.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 144
Introdu c ao ao Calculo Numerico Interpolacao
x 2, 0 2, 4 2, 6 2, 8
f(x) 0, 31495 0, 020561 0, 09682 0, 18505
Exerccio 7.6 A tabela abaixo fornece a demanda diaria m axima de energia eletrica em uma
cidade. Encontre a data do pico maximo e o valor deste pico.
x (data) 5 outubro 15 outubro 25 outubro 4 novembro
y (demanda) 10 15 20 13
Exerccio 7.7 A fun cao denida pela tabela
x 1, 9 2, 0 2, 1 2, 2 2, 3
f(x) 1, 941 1, 000 0, 061 1, 248 2, 567
tem uma raiz no intervalo (2; 2, 1). Calcule esta raiz, aproximando a fun cao por um polinomio de
terceiro grau.
Exerccio 7.8 Dada a tabela abaixo, calcular f(0, 32) e estimar o erro de truncamento do valor
calculado.
x 0, 2 0, 3 0, 4 0, 5
f(x) 0, 5544 0, 5639 0, 5735 0, 5831
Exerccio 7.9 Dada a seguinte tabela para a funcao f(x) = e
x
,
x 1 1, 1 1, 2
e
x
2, 718 3, 004 3, 320
calcule f(1, 05) e delimite o erro para o valor interpolado, utilizando aritmetica de ponto utuante
com quatro algarismos signicativos.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 145
Captulo 8
Ajuste de dados experimentais
8.1 Introdu cao
Uma forma de trabalhar com uma fun cao denida por uma tabela de valores e a interpola cao
polinomial. Entretanto esta nao e aconselhavel quando:
1. e preciso obter um valor aproximado da fun cao em algum ponto fora do intervalo de tabela-
mento, ou seja, quando se quer extrapolar;
2. os valores tabelados s ao resultado de algum experimento fsico ou de alguma pesquisa,
porque, nestes casos, estes valores podem conter erros inerentes que, em geral, nao sao
previsveis.
Surge, ent ao, a necessidade de se ajustar a estas funcoes tabeladas uma fun cao que seja uma
boa aproxima cao para os valores tabelados e que permita extrapolar com certa margem de
seguranca.
Exemplo 8.1 Considere um teste de desempenho de um autom ovel. Este e acelerado a partir do
repouso e depois viaja com aceleracao maxima ate que sua velocidade atinja 100km/h. Enquanto
isto, as leituras no velocmetro s ao realizadas a cada 1s. Quando a velocidade e gracada como
fun cao do tempo, obtem-se um conjunto de pontos. Seria esperado que estes pontos denissem
uma curva suave. No entanto, erros de medida e outros fatores fazem com que os pontos n ao
quem t ao bem arranjados: alguns dos valores registrados para a velocidade cam muito altos e
outros, muito baixos.
Supondo que se desejasse determinar a velocidade aos 6, 5s, seria possvel interpolar entre as
leituras feitas aos 6s e 7s, mas como provavelmente existe algum erro nestas medidas, o valor
assim obtido poderia nao ser uma boa aproxima cao para o valor desejado. O que fazer?
A solu cao para o problema e tentar ajustar uma prov avel curva ao conjunto de dados. Como
e possvel que v arios destes dados n ao sejam precisos, esta curva n ao precisa, necessariamente,
passar por nenhum dos pontos. Por outro lado, como os erros de medida provavelmente n ao sao
t ao grandes, a curva deveria pelo menos passar perto de cada ponto: provavelmente acima de uns
e abaixo de outros. Na verdade, ao inves de procurar a fun cao f que passa por cada um dos dados
experimentais, calcula-se a fun cao que melhor se ajusta a eles.
Exemplo 8.2 Suponha que os dados abaixo temperatura T a cada perodo de tempo t foram
obtidos em um experimento num laborat orio:
t 1 2 3 4 5
T 15, 0 28, 4 45, 3 58, 6 77, 4
e o gr aco exibido na gura 8.2 sugere que esses dados podem ser aproximados razoavelmente bem
por uma reta. Assim, se for necess ario saber o valor de T no tempo t = 1, 5, podemos obter a
146
Introdu c ao ao Calculo Numerico Ajuste de dados experimentais
Figura 8.1: Gr aco v t, com erros nas medidas de v.
Figura 8.2: Dados experimentais.
equacao da reta que melhor aproxima os pontos obtidos experimentalmente e, ent ao, calcular o
valor de T de acordo com aquela reta.
A pergunta que surge e: dado um conjunto de dados, como fazer o ajuste? Ao aproximar uma
fun cao f por uma fun cao g de uma famlia G, e introduzido um certo erro r, denominado resduo,
isto e,
r(x) = f(x) g(x) (8.1)
Aparentemente, uma boa aproximacao seria obtida fazendo

x
r(x) = 0. No entanto, isto
n ao e verdade. Suponha que, em um certo experimento, foram obtidos os pontos p
1
, p
2
, p
3
e
p
4
. Sabendo que o fen omeno e descrito por uma reta, esta e determinada de modo a satisfazer

x
r(x) = 0. Pode-se observar na gura abaixo que as retas que foram tra cadas obedecem tal
criterio, o que mostra que

x
r(x) = 0 n ao e uma boa escolha.
O problema enfrentado com este criterio e o cancelamento dos erros positivos com os negativos.
Uma maneira de evitar este cancelamento e trabalhar com o quadrado do resduo e exigir que

x
r
2
(x) seja mnimo. O metodo para aproximar uma fun cao f por uma g G utilizando este
ultimo criterio e denominado metodo dos mnimos quadrados.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 147
Introdu c ao ao Calculo Numerico Ajuste de dados experimentais
Figura 8.3: Qual a melhor aproxima cao, nesse caso?
8.2 Mnimos quadrados - domnio discreto
Para aproximar uma fun cao y = f(x) tabelada em n pontos distintos x
i
, i = 0, 1, 2, . . . , n, por
uma fun cao g da forma
m

k=0
a
k
g
k
(x) (8.2)
Precisa-se determinar a
0
, a
1
, . . . , a
m
que minimizam a soma dos quadrados dos resduos
M(a
0
, a
1
, . . . , a
m
)
nos pontos x
i
, i = 0, 1, 2, . . . , n. Para minimizar
M(a
0
, a
1
, . . . , a
m
) =
n

i=0
r
2
i
(x) =
n

i=0
(f(x
i
) g(x
i
))
2
(8.3)
e preciso que
M
a
0
= 0
M
a
1
= 0 . . .
M
a
m
= 0, (8.4)
Por outro lado, certamente existem processos naturais que tem um comportamento exponencial,
potencial e quadr atico, dentro outros.

E possvel, para um conjunto de dados experimentais,
calcular o qu ao boa e uma determinada aproximacao, escolhida previamente. A seguir, veremos
como determinar os coecientes de uma determinada fun cao de ajuste.
8.3 Ajuste linear
Neste caso, determina-se os parametros a
0
e a
1
da reta a
0
+a
1
x de modo que a soma dos quadrados
em cada ponto seja mnima. Em outras palavras, deseja-se determinar a
0
e a
1
que minimizem
M(a
0
, a
1
) =
n

i=0
r
2
i
(x) =
n

i=0
(y
i
a
0
a
1
x
i
)
2
(8.5)
Para isto, e necessario que
M
a
0
= 0 e (8.6)
M
a
1
= 0 (8.7)
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 148
Introdu c ao ao Calculo Numerico Ajuste de dados experimentais
ou seja, que
M
a
0
= 2
n

i=0
(y
i
a
0
a
1
x
i
) (1) = 0 (8.8)
M
a
1
= 2
n

i=0
(y
i
a
0
a
1
x
i
) (x
i
) = 0 (8.9)
Organizando estas condicoes, tem-se
_
n
i=0
y
i
=

n
i=0
a
0
+

n
i=0
a
1
x
i

n
i=0
x
i
y
i
=

n
i=0
a
0
x
i
+

n
i=0
a
1
x
2
i
(8.10)
e chega-se ao seguinte sistema linear:
_
n
i=0
1

n
i=0
x
i

n
i=0
x
i

n
i=0
x
2
i
_ _
a
0
a
1
_
=
_
n
i=0
y
i

n
i=0
x
i
y
i
_
(8.11)
denominado sistema normal. Resolvendo este sistema, sao obtidos os valores de a
0
e de a
1
, ou
seja, determina-se a equa cao (reta, no caso) de ajustamento.
Exemplo 8.3 Como resultado de algum experimento, suponha que s ao obtidos os seguintes valores
para a fun cao f:
x 0 1 2 3 4
f(x) 0 1 1 4 4
Determine a reta que melhor se ajusta a esta fun cao segundo o metodo dos mnimos quadrados.
O sistema normal correspondente e
_
5 10
10 30
_ _
a
0
a
1
_
=
_
10
31
_
que tem solu cao a
0
= 1/5 e a
1
= 11/10. Portanto, a reta que aproxima f(x) e
g(x) =
11
10
x
1
5
8.4 Ajuste polinomial
Pode-se estender o conceito de ajustamento de uma reta por mnimos quadrados para o caso geral
de um polin omio de grau p. Neste caso, determina-se os par ametros a
0
, a
1
, . . . , a
p
do polin omio
a
0
+ a
1
x + . . . + a
p
x
p
que minimizem
M(a
0
, a
1
, . . . , a
p
) =
n

i=0
r
2
i
(x) =
n

i=0
(y
i
a
0
a
1
x
i
. . . a
p
x
p
)
2
(8.12)
Para isto, e necessario que
M
a
0
=
M
a
1
= . . . =
M
a
p
= 0 (8.13)
de onde se obtem o sistema
_

_
n + 1

n
i=0
x
i
. . .

n
i=0
x
p
i

n
i=0
x
i

n
i=0
x
2
i
. . .

n
i=0
x
p+1
i
.
.
.
.
.
.
.
.
.
.
.
.

n
i=0
x
p
i

n
i=0
x
p+1
i
. . .

n
i=0
x
2 p
i
_

_
_

_
a
0
a
1
.
.
.
a
p
_

_
=
_

n
i=0
y
i

n
i=0
x
i
y
i
.
.
.

n
i=0
x
p
i
y
i
_

_
(8.14)
Resolvendo este sistema, sao obtidos os valores de a
0
, a
1
, . . . , a
p
, ou seja, os coecientes do
polin omio de grau p.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 149
Introdu c ao ao Calculo Numerico Ajuste de dados experimentais
Exemplo 8.4 Obtenha a express ao da parabola que se ajusta aos dados da tabela:
x 2 1 0 1 2 3
y 0, 01 0, 51 0, 82 0, 88 0, 81 0, 49
O sistema normal para o caso de uma par abola (p = 2) e
_
_
6 3 19
3 19 27
19 27 115
_
_
_
_
a
0
a
1
a
2
_
_
=
_
_
3, 50
3, 48
9, 00
_
_
A solu cao deste sistema indica que a par abola que melhor se ajusta a este conjunto de dados e
g(x) = 0, 102 x
2
+ 0, 201 x + 0, 806.
8.5 Ajustamento por fun coes nao lineares nos parametros
lineariza cao
O metodo dos mnimos quadrados pode ser empregado tambem aproximar uma fun cao f por uma
fun cao g de uma famlia n ao linear nos par ametros. Exemplos destas fun coes sao as exponenciais,
hiperb olicas e racionais, entre outras, como veremos a seguir.
8.5.1 Ajustamento por uma fun cao exponencial
A fun cao y = c e
a x
pode ser linearizada tomando-se o logaritmo de ambos os lados. No nal,
obtem-se uma relacao linear entre as vari aveis transformadas. O primeiro passo e
lny = lnc + a x. (8.15)
Agora, usando a mudan ca de variaveis (e de constantes)
Y = lny, X = x, a
0
= lnc, a
1
= a (8.16)
chega-se `a rela cao linear entre as vari aveis X e Y :
Y = a
1
X + a
0
, (8.17)
Sendo assim, pode-se aplicar o mesmo metodo utilizado para o ajustamento de uma reta aos
dados transformados {(X
i
, Y
i
)} = {(x
i
, lny
i
)}. Os coecientes a
0
e a
1
sao encontrados pela solucao
do sistema
_
(n + 1)

n
i=0
x
i

n
i=0
x
i

n
i=0
x
2
i
_ _
a
0
a
1
_
=
_
n
i=0
lny
i

n
i=0
x
i
lny
i
_
(8.18)
de forma que c = e
a0
e a = a
1
determinam a fun cao de ajustamento.
Exemplo 8.5 Ajuste os dados da tabela a uma fun cao exponencial.
x 0 0, 5 1 1, 5 2 2, 5 3 3, 5 4
y 3 4 6 9 12 17 24 33 48
O sistema linear para este caso e
_
9 18
18 51
_ _
a
0
a
1
_
=
_
22, 3378
55, 0903
_
e a sua solu cao e a
0
= 1, 093337 e a
1
= 0, 694319. Portanto, c = e
a0
= 2, 984216 e a fun cao
exponencial procurada e y = 2, 984216 e
0,694319
.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 150
Introdu c ao ao Calculo Numerico Ajuste de dados experimentais
8.5.2 Ajustamento por uma fun cao potencia
A fun cao y = a x
b
pode ser linearizada tomando-se o logaritmo: lny = lna + b lnx. Com isto,
mediante a mudanca de variaveis Y = lny, X = lnx, a
0
= lna e a
1
= b, o sistema normal ca
_
(n + 1)

n
i=0
lnx
i

n
i=0
lnx
i

n
i=0
(lnx
i
)
2
_ _
a
0
a
1
_
=
_
n
i=0
lny
i

n
i=0
lnx
i
lny
i
_
(8.19)
Desta forma, os parametros sao a = e
a0
e b = a
1
.
8.5.3 Ajustamento por uma fun cao hiperbolica
Neste caso, y =
1
a0+a1 x
. A lineariza cao desta fun cao resulta em
1
y
= a
0
+ a
1
x e o sistema
_
(n + 1)

n
i=0
x
i

n
i=0
x
i

n
i=0
x
2
i
_ _
a
0
a
1
_
=
_
n
i=0
1
yi

n
i=0
xi
yi
_
8.5.4 Ajustamento por uma fun cao do tipo y =
x
a
0
+a
1
x
Neste caso, a lineariza cao e
x
y
= a
0
+ a
1
x e o sistema obtido e dado por
_
(n + 1)

n
i=0
x
i

n
i=0
x
i

n
i=0
x
2
i
_ _
a
0
a
1
_
=
_
n
i=0
xi
yi

n
i=0
x
2
i
yi
_
(8.20)
8.5.5 Ajustamento por uma fun cao do tipo y =
1
a
0
+a
1
x+a
2
x
2
Neste caso, a lineariza cao resulta
1
y
= a
0
+ a
1
x + a
2
x
2
e o sistema e dado por
_
_
(n + 1)

n
i=0
x
i

n
i=0
x
2
i

n
i=0
x
i

n
i=0
x
2
i

n
i=0
x
3
i

n
i=0
x
2
i

n
i=0
x
3
i

n
i=0
x
4
i
_
_
_
_
a
0
a
1
a
2
_
_
=
_

n
i=0
1
yi

n
i=0
xi
yi

n
i=0
x
2
i
yi
_

_ (8.21)
8.5.6 Ajustamento por uma fun cao do tipo y = a e
b x+c x
2
A lineariza cao e empregada da seguinte forma: Y = lny, X = x, a
0
= lna, a
1
= b e a
2
= c. Sendo
assim, o sistema normal ca
_
_
(n + 1)

n
i=0
x
i

n
i=0
x
2
i

n
i=0
x
i

n
i=0
x
2
i

n
i=0
x
3
i

n
i=0
x
2
i

n
i=0
x
3
i

n
i=0
x
4
i
_
_
_
_
a
0
a
1
a
2
_
_
=
_
_

n
i=0
lny
i

n
i=0
x
i
lny
i

n
i=0
x
2
i
lny
i
_
_
(8.22)
8.6 Escolha do melhor ajuste
Uma vez conhecidas as diferentes formas de regressao, podemos nos indagar: para um determinado
conjunto de dados experimentais, qual e a melhor forma?
Essa pergunta pode ser respondida se considerarmos algumas medidas dos erros envolvidos nas
regressoes, essencialmente comparando o quao distante um valor experimental f
i
esta do valor y
i
calculado atraves da equacao para as diferentes regress oes. Basicamente, podemos considerar tres
medidas diferentes:
Erro relativo: Seleciona-se a regressao que tiver o menor erro relativo m aximo,
e =
m
max
i=1
| f
i
y
i
|
| f
i
|
(8.23)
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 151
Introdu c ao ao Calculo Numerico Ajuste de dados experimentais
Desvio relativo em relacao `a media: Seleciona-se a regressao que tiver o menor desvio rela-
tivo em rela cao `a media,
t =
m
max
i=1
| y
i
y |
| y |
(8.24)
onde y = m
1

m
i=1
y
i
.
Coeciente de variacao da amostra: Seleciona-se a regressao que apresentar o menor coeci-
ente de variacao da amostra,
D =
_
m
i=1
(yi y)
2
m1
y
(8.25)

E importante notar que poder a haver casos em que a escolha de uma ou outra medida favorecera
uma ou outra forma de regress ao, conforme pode ser vericado nos exemplos que seguem.
Exemplo 8.6 Dada a tabela
x 1 2 3 4 5
f 15, 0 28, 4 45, 3 58, 6 77, 4
obtenha as quatro regress oes linear, quadr atica (polinomial), potencial e exponencial calculando
as medidas para escolha da melhor regress ao.
Solucao: Calculadas as regress oes, obtemos os seguintes valores para y
i
(arredondados para a
primeira casa decimal):
x 1 2 3 4 5
linear 13, 9 29, 4 44, 9 60, 4 75, 9
quadr atica 15, 0 28, 9 43, 9 59, 9 77, 0
potencial 14, 7 29, 6 44, 7 59, 9 75, 2
exponencial 17, 4 26, 0 38, 8 57, 9 86, 4
e os correspondentes valores das medidas
e t D
linear 0, 0707 0, 6898 0, 2727
quadr atica 0, 0307 0, 7127 0, 2729
potencial 0, 0434 0, 6771 0, 2669
exponencial 0, 1597 0, 9079 0, 3045
Analisando a tabela acima, vemos que, se o criterio escolhido fosse o erro relativo e, deveramos
escolher a regress ao quadr atica, com coecientes
a
0
= 2, 04, a
1
= 12, 4143, a
2
= 0, 5143;
para as outras duas medidas, a regress ao escolhida seria a potencial, com
a
0
= 14, 6535, a
1
= 1, 0160
A gura (8.4) mostra que ambas as regress oes, nesse caso, aproximam razoavelmente bem os
dados experimentais.
Exemplo 8.7 Suponha os dados experimentais dados por
x 1 2 3 4 5
f 2, 7183 7, 3891 20, 0855 54, 5982 148, 4132
Obtenha as quatro regress oes linear, quadr atica (polinomial), potencial e exponencial calculando
as medidas para escolha da melhor regress ao.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 152
Introdu c ao ao Calculo Numerico Ajuste de dados experimentais
Figura 8.4: Regress ao quadr atica versus potencial.
Solucao: Calculadas as regress oes, obtemos os seguintes valores para y
i
(arredondados para a
primeira casa decimal):
x 1 2 3 4 5
linear 21, 1 12, 8 46, 6 80, 5 114, 4
quadr atica 7, 5 1, 5 18, 1 66, 2 142, 9
potencial 2, 0 10, 6 28, 3 56, 7 97, 4
exponencial 2, 7 7, 4 20, 1 54, 6 148, 4
e os correspondentes valores das medidas
e t D
linear 1, 5745 1, 4519 0, 5739
quadr atica 1, 7618 2, 0648 0, 6415
potencial 0, 4331 1, 4977 0, 4973
exponencial 0, 0000 2, 1820 0, 6476
Analisando a tabela, vemos que, se o criterio escolhido fosse o erro relativo e, deveramos
escolher a regress ao exponencial, com coecientes
a
0
= 1, 0, a
1
= 2, 7183
o que e obvio, pois os valores tabulados representam justamente f
i
= e
xi
. Se, no entanto,
utiliz assemos como medida o desvio relativo em rela cao `a media, t, escolheramos a regress ao
linear, com
a
0
= 54, 9388, a
1
= 33, 8599
que certamente nao seria uma boa escolha; nalmente, escolhendo o coeciente de varia cao da
amostra, a regress ao potencial seria escolhida, com
a
0
= 1, 9785, a
1
= 2, 4216
Exemplo 8.8 Dada a tabela abaixo
x 2 1 0 1 2
f 8, 0064 2, 6319 0, 2337 2, 1888 8, 3132
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 153
Introdu c ao ao Calculo Numerico Ajuste de dados experimentais
Figura 8.5: Regress ao quadr atica.
obtenha as quatro regress oes linear, quadr atica (polinomial), potencial e exponencial calculando
as medidas para escolha da melhor regress ao.
Solucao: Calculadas as regress oes, com exce cao da potencial (a qual nao pode ser calculada sem
transla c ao devido `a presenca de um valor nulo nos dados experimentais), obtemos os seguintes
valores para y
i
(arredondados para a primeira casa decimal):
x 1 2 3 4 5
linear 4, 2 4, 3 4, 3 4, 3 4, 3
quadr atica 8, 2 2, 3 0, 4 2, 3 8, 2
exponencial 2, 5 2, 5 2, 5 2, 4 2, 4
e os correspondentes valores das medidas
e t D
linear 17, 2885 0, 0080 0, 0032
quadr atica 0, 5724 0, 9220 0, 4275
exponencial 9, 5135 0, 0219 0, 0086
Analisando a tabela, vemos que, se o criterio escolhido fosse o erro relativo e, deveramos
escolher a regress ao quadr atica, com coecientes
a
0
= 0, 3675, a
1
= 0, 0171, a
2
= 1, 9536;
j a para as outras duas medidas, a regress ao escolhida seria a linear, com
a
0
= 4, 2748, a
1
= 0, 0171
Analisando-se o graco na gura (8.5), observa-se que a regress ao quadr atica e melhor, evi-
dentemente.
Os exemplos aqui apresentados mostram que o ajuste de dados experimentais e um processo
numerico que deve ser usado tomando-se cuidado ao se selecionar uma dada regressao, se possvel
fazendo-se o graco dos dados experimentais e da curva de regress ao.
8.7 Mnimos quadrados - domnio contnuo
Mesmo no caso em que a forma analtica da fun cao f e conhecida, `as vezes e de interesse aproxima-
la no intervalo I = [x
I
, x
F
] por uma fun cao g da famlia
m

k=0
a
k
g
k
(x) (8.26)
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 154
Introdu c ao ao Calculo Numerico Ajuste de dados experimentais
Famlia de funcoes Condicoes
Reta - y = a
0
+ a
1
x f[x
i+1
, x
i
] const.
Par abola - y = a
0
+ a
1
x + a
2
x
2
f[x
i+2
, x
i+1
, x
i
] const.
Fun cao exponencial - y = c e
a x
ln y
i
x
i
const.
Fun cao potencia - y = a x
b
ln y
i
ln x
i
const.
Fun cao hiperb olica - y =
1
a
0
+ a
1
x

1
y
i
x
i
const.
Fun cao do tipo y =
x
a
0
+ a
1
x

x
i
y
i
x
i
const.
Fun cao do tipo y =
1
a
0
+ a
1
x + a
2
x
2

1
y
i+1

1
y
i
x
i+2
x
i
const.
Fun cao do tipo y = a e
b x+c x
2 ln y
i+1
ln y
i
x
i+2
x
i
const.
Tabela 8.1: Condi coes necessarias para se ajustar pontos.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 155
Introdu c ao ao Calculo Numerico Ajuste de dados experimentais
mais conveniente.
`
As vezes, por exemplo, tem-se uma funcao com descontinuidades, mas quer-
se trabalhar com uma fun cao contnua. A primeira vista, seria possvel recair no caso discreto
tabelando a fun cao dada em alguns pontos; entretanto, isto pode causar perda de informa cao sobre
o comportamento do erro.
Ao se considerar a soma dos quadrados dos resduos em todos os pontos do intervalo [x
I
, x
F
],
tem-se, no limite, a integral do quadrado do resduo em cada ponto do intervalo em que se quer
aproximar a fun cao dada. Geometricamente, isto representa a area entre as curvas f(x) e g(x).
Assim, e necessario determinar a
0
, a
1
, . . . , a
m
que minimizam
M(a
0
, a
1
, . . . , a
m
) =
_
xF
xI
r
2
(x) dx
=
_
xF
xI
(f(x) g(x))
2
dx
=
_
xF
xI
(f(x) a
0
g
0
(x) a
1
g
1
(x) . . . a
m
g
m
(x))
2
dx (8.27)
Como no caso discreto, o ponto de mnimo e atingido quando
M
a
0
=
M
a
1
= . . . =
M
a
m
= 0
ou seja,
M
a
l
= 2
_
xF
xI
_
f(x)
m

k=0
a
k
g
k
(x)
_
2
g
l
(x) dx = 0 0 l m. (8.28)
Usando a deni cao de produto escalar de duas fun coes w(x) e q(x) no intervalo [x
I
, x
F
] como
< w, q >=
_
xF
xI
w(x) q(x) dx
tem-se que, no caso em que se quer aproximar f(x), o sistema normal ca
_

_
< g
0
, g
0
> < g
0
, g
1
> . . . < g
0
, g
m
>
< g
1
, g
0
> < g
1
, g
1
> . . . < g
1
, g
m
>
.
.
.
.
.
.
.
.
.
.
.
.
< g
m
, g
0
> < g
m
, g
1
> . . . < g
m
, g
m
>
_

_
_

_
a
0
a
1
.
.
.
a
m
_

_
=
_

_
< g
0
, f >
< g
1
, f >
.
.
.
< g
m
, f >
_

_
(8.29)
Exemplo 8.9 Aproxime a funcao exponencial e
x
no intervalo [0, 1] por uma reta utilizando o
metodo dos mnimos quadrados.
Neste caso, g(x) = a
0
+ a
1
x. Com a nota cao utilizada,
g
0
(x) = 1 g
1
(x) = x f(x) = e
x
e o produto escalar,
_
1
0
f(x) g(x) dx.
Portanto, determinar a
0
e a
1
pelo metodo dos mnimos quadrados e calcular a solu cao do
seguinte sistema normal:
_
< 1, 1 > < 1, x >
< x, 1 > < x, x >
_ _
a
0
a
1
_
=
_
< 1, e
x
>
< x, e
x
>
_
.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 156
Introdu c ao ao Calculo Numerico Ajuste de dados experimentais
Como
< 1, 1 > =
_
1
0
1 dx = 1
< 1, x > =
_
1
0
xdx =
1
2
< x, x > =
_
1
0
x
2
dx =
1
3
< 1, e
x
> =
_
1
0
e
x
dx = e 1
< x, e
x
> =
_
1
0
xe
x
dx = 1
tem-se
_

_
1
1
2
1
2
1
3
_

_
_
a
0
a
1
_
=
_
e 1
1
_
A solu cao a
0
= 4 e 10 e a
1
= 18 6 e determina a fun cao aproximadora g(x) = 4 e 10 +
(18 6 e) x.
8.7.1 Polin omios ortogonais
Quando se aproxima uma fun cao f por uma fun cao g da famlia
m

k=0
a
k
g
k
(x) (8.30)
pelo metodo dos mnimos quadrados, e necessario resolver um sistema linear de equa coes denomi-
nado sistema normal. Se um conjunto de fun coes {g
k
}, k = 0, 1, . . . , m tais que
< g
k
, g
l
>= 0 k = l, 0 k, l m (8.31)
o sistema normal se torna diagonal e os coecientes a
k
da fun cao aproximadora s ao determinados
por
a
k
=
< g
k
, f >
< g
k
, g
k
>
, 0 k m (8.32)
As fun coes que satisfazem a relacao (8.31) sao denominadas fun coes ortogonais. Um polin omio
de grau k pode ser escrito na forma p
k
(x) = c
k
x
k
+ c
k1
x
k1
+ . . . + c
1
x + c
0
. Os polin omios
ortogonais p
k
(x), k = 0, 1, . . . obedecem ` as seguintes rela coes:
< p
k
, p
l
> = 0 para k = l (8.33)
< p
k
, p
k
> > 0 para k = 0, 1, . . . (8.34)
(8.35)
Exemplo 8.10 Construa os tres primeiros polin omios ortogonais com rela c ao ao produto escalar
< f, g >=
_
1
0
f(x) g(x) dx
e aproxime f(x) = e
x
no intervalo [0, 1] por um polin omio de grau 2. Para este caso, imponha a
condicao de que o coeciente do termo de mais alto grau de cada polin omio seja igual a 1.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 157
Introdu c ao ao Calculo Numerico Ajuste de dados experimentais
Sendo assim,
p
0
(x) = 1 x
0
= 1
p
1
(x) = 1 x
1
+ c
0
x
0
= x + c
0
p
2
(x) = 1 x
2
+ d
1
x
1
+ d
0
x
0
= x
2
+ d
1
x + d
0
A constante c
0
e determinada impondo-se < p
1
, p
0
>= 0, ou seja,
< p
1
, p
0
>=
_
1
0
(x + c
0
) 1 dx =
1
2
+ c
0
= 0,
Portanto, como c
0
=
1
2
, p
1
(x) = x
1
2
.
As outras duas constantes, d
1
e d
0
s ao determinadas fazendo-se < p
2
, p
0
>= 0 e <
p
2
, p
1
>= 0, de onde se obtem p
2
(x) = x
2
x +
1
6
.
Agora, utiliza-se os polin omios ortogonais calculados para determinar o polinomio desejado, de
grau 2:
g(x) = a
0
p
0
(x) + a
1
p
1
(x) + a
2
p
2
(x)
que aproxima f(x) = e
x
no intervalo [0, 1].
De (8.32) tem-se
a
k
=
< p
k
, f >
< p
k
, p
k
>
Logo,
a
0
=
< 1, e
x
>
< 1, 1 >
=
_
1
0
e
x
dx
_
1
0
dx
= e 1
a
1
=
< x
1
2
, e
x
>
< x
1
2
, x
1
2
>
=
_
1
0
e
x
_
x
1
2
_
dx
_
1
0
_
x
1
2
_
2
dx
= 6 (3 e)
a
2
=
< x
2
x +
1
6
, e
x
>
< x
2
x +
1
6
, x
2
x +
1
6
>
=
_
1
0
e
x
_
x
2
x +
1
6
_
dx
_
1
0
_
x
2
x +
1
6
_
2
dx
= 30 (7 e 19)
Portanto,
g(x) = (e 1) + 6 (3 e)
_
x
1
2
_
+ 30 (7 e 19)
_
x
2
x +
1
6
_
Um exemplo importante de uma famlia de polin omios ortogonais e a dos polin omios de Le-
gendre, que obedecem `a seguinte deni cao:
< p
n
, p
m
> =
_
1
1
p
n
(x) p
m
(x) dx (8.36)
=
_

_
0 se m = n
2
2 n + 1
se m = n
(8.37)
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 158
Introdu c ao ao Calculo Numerico Ajuste de dados experimentais
Usando esta denicao, pode-se construir os tres primeiros polin omios de Legendre:
p
0
(x) = 1, p
1
(x) = x, p
2
(x) =
1
2
(3 x
2
1) (8.38)
Alem desta, ainda existem outras famlias de polin omios ortogonais, como os polin omios de
Hermite, Chebyshev, etc. Estes polin omios, tabelados ou previamente calculados, podem ser
empregados para ajustar uma fun cao f por um polin omio g de grau menor ou igual a m em um
intervalo [a, b].
Supondo que se tenha a disposicao uma tabela de polin omios ortogonais em um intervalo [c, d],
e preciso fazer uma mudanca de variavel t(x) = x+ para transformar linearmente f(t), denida
no intervalo [a, b], em f(t(x)) = F(x) denida no intervalo [c, d]. Faz-se, entao, o ajuste da fun cao
F(x) por um polin omio G(x) de grau menor ou igual a m usando os polin omios tabelados. Por
transformacao inversa de vari avel, x(t) = t +, obtem-se a funcao aproximadora g(t) = G(x(t)).
Exemplo 8.11 Aproxime a funcao f(t) = sen t no intervalo 0 t por uma par abola,
utilizando os polin omios de Legendre.
Fazendo a mudan ca de variavel que transforma linearmente o intervalo [0, ] em [1, 1], tem-se
t(x) =

2
(x + 1)
Nestas condi coes,
f(t(x)) = sent(x) = sen
_

2
(x + 1)
_
= F(x).
A parabola que se quer obter pelo metodo dos mnimos quadrados e
G(x) + a
0
1 + a
1
x + a
2
1
2
(3 x
2
1)
Como os polin omios de Legendre s ao ortogonais, emprega-se (8.32) para determinar os coecientes
a
0
, a
1
e a
2
da parabola:
a
0
=
< F, p
0
>
< p
0
, p
0
>
=
2

a
1
=
< F, p
1
>
< p
1
, p
1
>
= 0
a
2
=
< F, p
2
>
< p
2
, p
2
>
=
10

_
1
12

2
_
Desta forma,
G(x) =
2

+
10

_
1
12

2
_
1
2
(3 x
2
1) para x [1, 1]
Voltando para o intervalo inicial [0, ] atraves da transforma cao inversa, x(t) =
2

t1, obtem-
se
g(t) =
2

+
10

_
1
12

2
_
1
2
_
3
_
2

t 1
_
2
1
_
que e a fun cao aproximadora desejada.
8.8 Exerccios
Exerccio 8.1 Utilize o metodo dos mnimos quadrados para encontrar a reta que melhor se ajusta
aos pontos da tabela.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 159
Introdu c ao ao Calculo Numerico Ajuste de dados experimentais
x 1 0 1 2 3 4 5 6
y 10 9 7 5 4 3 0 1
Exerccio 8.2 Encontre a funcao exponencial que melhor se ajusta aos pontos (0; 1, 5), (1; 2, 5),
(2; 3, 5), (3; 5) e (4; 7, 5).
Exerccio 8.3 Encontre a parabola que melhor se ajusta aos pontos (3; 3), (0; 1), (2; 1) e (4; 3).
Exerccio 8.4 Encontre a hiperbole que melhor se ajusta aos pontos (0; 0, 2), (1; 0, 11), (2; 0, 08),
(3; 0, 06) e (4; 0, 05).
Exerccio 8.5 Considere a varia cao da viscosidade em funcao da temperatura:
T 7, 5 10, 9 14, 0 15, 0 16, 0 18, 0 21, 0
1409 1276 1175 1148 1121 1069 990
Encontre a melhor funcao de ajustamento e determine a viscosidade para T = 4

C e T =
25

C.
Exerccio 8.6 Admita que a venda de peixes de um determinado mercado seja conforme a tabela
dia 1 5 10 15
n umero de peixes 70 30 55 25
Determine a fun cao que melhor se ajusta aos dados.
Exerccio 8.7 Ajuste os dados da tabela utilizando
1. uma fun cao exponencial;
2. uma fun cao potencia.
x 1 2 3 4 5
y 0, 6 1, 9 4, 3 7, 6 12, 6
Depois, utilize o criterio dos mnimos quadrados para determinar qual das curvas, (1) ou (2),
e melhor.
Exerccio 8.8 Considere a incidencia de c ancer, problemas cardacos e complica coes respirat orias
em pacientes, conforme a idade, mostrados na tabela (por mil habitantes).
idade incidencia problemas complica coes
de cancer cardacos respirat orias
5 0 0 1
15 0 1 3
25 1 5 5
35 3 12 7
45 6 30 10
55 12 79 12
65 30 140 14
Identique as fun coes que melhor se ajustam aos problemas indicados conforme a idade.
Exerccio 8.9 Encontre a constante de aceleracao da gravidade g para o seguinte conjunto de
dados:
t 0, 200 0, 400 0, 600 0, 800 1, 000
x 0, 1960 0, 7835 1, 7630 3, 1345 4, 8975
Exerccio 8.10 Aproxime a funcao 4 x
3
por um polin omio de primeiro grau, uma reta, no intervalo
[x
I
, x
F
] = [0, 1].
Exerccio 8.11 Repita o exemplo 8.9 utilizando os polin omios ortogonais obtidos acima e verique
que o resultado obtido e o mesmo.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 160
Captulo 9
Integra cao Numerica
9.1 Introdu cao
A integracao numerica e o processo computacional capaz de produzir um valor numerico para a
integral de uma fun cao sobre um determinado conjunto. Ela difere do processo de antidiferencia cao,
aprendido em C alculo, na medida em que nao se procura uma fun cao F tal que F

= f; aqui,
vamos procurar substituir f por uma outra fun cao, g tal que f g mais amena `a integra cao
(por exemplo, g e um polin omio). Nesse caso, a solucao numerica de
_
b
a
f(x) dx (9.1)
ser a obtida calculando-se
_
b
a
g(x) dx, g f
Veremos, a seguir, o processo de integra cao numerica via interpolacao polinomial e os diferentes
metodos da derivados.
9.2 Integra cao numerica via interpola cao polinomial
Suponha a integral (9.1); podemos selecionar um conjunto de n os x
0
, x
1
, . . ., x
n
no intervalo [a, b]
e interpolar a fun cao f(x) atraves dos polin omios de Lagrange, os quais sao expressos como
p(x) =
n

i=0
f(x
i
)l
i
(x) (9.2)
onde
l
i
(x) =
n

j=0
j=i
x x
j
x
i
x
j
, i = 0, 1, . . . , n (9.3)
Agora, substitumos f(x) por p(x), de tal forma que
_
b
a
f(x) dx
_
b
a
p(x) dx =
n

i=0
f(x
i
)
_
b
a
l
i
(x) dx (9.4)
a qual pode ser usada para calcular a integral de qualquer fun cao. A equacao acima pode ser
reescrita na forma
_
b
a
f(x) dx
n

i=0
A
i
f(x
i
) (9.5)
161
Introdu c ao ao Calculo Numerico Integracao Numerica
Figura 9.1: A regra do trapezio.
onde
A
i
=
_
b
a
l
i
(x) dx
a qual e conhecida como a forma de Newton-Cotes, se os pontos x
i
forem igualmente espa cados.
A partir da equa cao (9.5), pode-se derivar v arias regras de integra cao, dependendo do grau do
polin omio de Lagrange.
9.2.1 Regra do Trapezio
Se tomarmos n = 1, e usarmos como nos os pontos extremos do intervalo, i.e. x
0
= a, x
1
= b,
obtemos a chamada regra do trapezio. Nesse caso, os polinomios interpoladores s ao
l
0
(x) =
b x
b a
, l
1
(x) =
x a
b a
de onde
A
0
=
_
b
a
l
0
(x) dx =
1
2
(b a) =
_
b
a
l
1
(x) dx = A
1
Assim, escrevendo a equacao (9.5) para esse caso particular, temos
_
b
a
f(x) dx
b a
2
(f(a) + f(b)) (9.6)
a qual dene a regra do trapezio. Essa f ormula e exata para qualquer polin omio de grau igual a
1, no m aximo; o erro associado a essa aproxima cao e dado por

1
12
(b a)
3
f

(), a < < b (9.7)


Ao usarmos a regra do trapezio, estamos substituindo a funcao f por uma reta, no intervalo
[a, b], conforme a gura 9.1.

E claro que essa aproxima cao pode ser bastante crua, se | b a | e
grande (o contr ario tambem e verdade).
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 162
Introdu c ao ao Calculo Numerico Integracao Numerica
Exemplo 9.1 Calcule a integral
A =
_
2
1
x
2
+ 3xdx
usando a regra do trapezio.
Solucao: Usando a formula (9.6), temos
A =
2 1
2
(4 + 10) =
14
2
= 7
Como a antiderivada F(x) =
x
3
3
+
3x
2
2
e conhecida, podemos avaliar o erro. Calculando a integral
denida, temos
_
2
1
x
2
+ 3xdx =
x
3
3
+
3x
2
2

2
1
= 6, 8333
de onde podemos calcular o erro como sendo igual a 6, 8333 7 = 0, 1667. Usando a formula
(9.7), com f

= 2, obtemos o valor

1
12
(2 1)
3
2 =
1
6
= 0, 1667
o qual e igual ao calculado anteriormente.
Podemos, evidentemente, obter uma melhor aproxima cao se subdividirmos o intervalo [a, b],
calculando n os x
0
, x
1
, . . ., x
n
satisfazendo
a = x
0
< x
1
< . . . < x
n
= b
e aplicando a regra do trapezio a cada subintervalo (nao necessariamente de mesmo tamanho).
Essa estrategia nos leva `a regra composta do trapezio,
_
b
a
f(x) dx =
n

i=1
_
xi
xi1
f(x) dx

1
2
n

i=1
(x
i
x
i1
) (f(x
i1
) + f(x
i
)) (9.8)
A regra composta do trapezio nos leva ` a aproxima cao da fun cao f(x) por um conjunto de retas
unindo cada um dos n os x
i
, dois a dois, conforme a gura 9.2-a.
Se o espacamento entre os nos e igual, i.e. x
i
= a+ih, h =
ba
n
, ent ao obtemos a regra composta
uniforme do trapezio,
T(f, h) =
_
b
a
f(x) dx
h
2
_
f(a) +
_
2
n1

i=1
f(a + ih)
_
+ f(b)
_
(9.9)
conforme a gura 9.2-b. O erro de truncamento E(f, h) associado a essa aproxima cao e estimado
por
E(f, h)
h
2
12
(b a) max
x[a,b]
| f

(x) |. (9.10)
Exemplo 9.2 Calcule a integral
A =
_
2
1
x
2
+ 3xdx
usando as regras composta e composta uniforme do trapezio.
Solucao:
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 163
Introdu c ao ao Calculo Numerico Integracao Numerica
1. Usando a formula (9.8), para n = 2 e usando x
0
= 1, x
1
= 1, 1 e x
2
= 2, temos
A =
1
2
[(1, 1 1)(4 + 4, 51) + (2 1, 1)(4, 51 + 10)] = 6, 9550
e o erro, comparado com o valor da integral denida (= 6, 8333), e de 0, 1217.
2. Usando a formula (9.9), para n = 2 e usando x
0
= 1, x
1
= 1, 5 e x
2
= 2, temos
A =
1
2
[(1, 5 1)(4 + 6, 75) + (2 1, 5)(6, 75 + 10)] = 6, 8750
e o erro, comparado com o valor da integral denida (= 6, 8333), e de 0, 0417.
Note que, em ambos os casos, a aproxima cao com a regra composta e melhor do que usando a
regra simples do trapezio.
Exemplo 9.3 Considere a tabela abaixo, que fornece a velocidade (km/h) de um certo objeto em
fun cao do tempo e determine qual e a dist ancia percorrida pelo objeto ao nal de 2 h.
t 0, 00 0, 25 0, 50 0, 75 1, 00 1, 25 1, 50 1, 75 2, 00
v(t) 6, 0 7, 5 8, 0 9, 0 8, 5 10, 5 9, 5 7, 0 6, 0
Como a dist ancia percorrida (d) e calculada como
d =
_
2
0
v(t) dt,
pode-se empregar a regra dos trapezios com n = 8, h = 0, 25, de forma que
A =
0, 25
2
[6 + 2 (7, 5 + 8, 0 + 9, 0 + 8, 5 + 10, 5 + 9, 5 + 7, 0)) + 6] .
Portanto, uma aproxima cao para a distancia total percorrida no intervalo de tempo [0, 2] e
d A = 16, 5km.
Exemplo 9.4 Considere as integrais denidas
_
3
1
x
1 + x
2
dx e
_
3
1
dx
7 2 x
As tabelas 9.1 e 9.2 mostram as aproxima coes obtidas usando a regra dos trapezios com n =
1, 2, 4, 8, 16, 32 subintervalos e o erro na aproxima cao. Note que, ` a medida que n cresce, h e
sucessivamente dividido por 2 e cada erro e aproximadamente
1
4
do erro anterior.
n h A E(f, h)
1 2, 0 0, 800000 0, 004719
2 1, 0 0, 800000 0, 004719
4 0, 5 0, 803183 0, 001536
8 0, 25 0, 804311 0, 000408
16 0, 125 0, 804615 0, 000104
32 0, 0625 0, 804693 0, 000026
Tabela 9.1: Aproxima cao para
_
3
1
x
1+x
2
dx.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 164
Introdu c ao ao Calculo Numerico Integracao Numerica
n h A E(f, h)
1 2, 0 1, 200000 0, 395281
2 1, 0 0, 933333 0, 128614
4 0, 5 0, 841667 0, 036948
8 0, 25 0, 814484 0, 009765
16 0, 125 0, 807203 0, 002484
32 0, 0625 0, 805343 0, 000624
Tabela 9.2: Aproxima cao para
_
3
1
d x
72 x
.
9.2.2 Metodo dos Coecientes a Determinar
A equa cao (9.5) (f ormula de Newton-Cotes) e um caso particular do metodo dos coecientes a
determinar.
Suponha, por exemplo, que n = 2 e [a, b] = [0, 1]. Nesse caso, os polinomios de Lagrange,
escritos para os n os 0,
1
2
e 1, sao
l
0
(x) = 2(x
1
2
)(x 1), l
1
(x) = 4x(x 1), l
2
(x) = 2x(x
1
2
)
de onde podemos escrever
A
0
=
_
1
0
l
0
dx =
1
6
A
1
=
_
1
0
l
1
dx =
2
3
A
2
=
_
1
0
l
2
dx =
1
6
Os mesmos coecientes A
i
podem ser obtidos usando o metodo aqui descrito. Suponha que
_
1
0
f(x) dx A
0
f(0) + A
1
f
_
1
2
_
+ A
2
f(1)
a qual deve ser exata para qualquer polin omio de grau igual ou inferior a 2. Para determinar os
coecientes, usamos as fun coes base 1, x e x
2
i.e., p(x) = c
0
+ c
1
x + c
2
x
2
e escrevemos
_
1
0
dx = 1 = A
0
+ A
1
+ A
2
_
1
0
xdx =
1
2
=
1
2
A
1
+ A
2
_
1
0
x
2
dx =
1
3
=
1
4
A
1
+ A
2
o que nos leva ao sistema de equacoes lineares
_
_
_
A
0
+ A
1
+ A
2
= 1
1
2
A
1
+ A
2
=
1
2
1
4
A
1
+ A
2
=
1
3
o qual tem a seguinte solu cao: A
0
=
1
6
, A
1
=
2
3
, A
2
=
1
6
.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 165
Introdu c ao ao Calculo Numerico Integracao Numerica
9.2.3 Regra de Simpson
A regra de Simpson e obtida a partir do metodo dos coecientes a determinar, generalizada para
um intervalo de integra cao [a, b] qualquer. Ela e obtida a partir da integral de um polin omio
interpolador de segundo grau p
2
(x) que passa por tres pontos igualmente espacados, (a, f(a)),
(m, f(m)), e (b, f(b)), onde m = (a + b)/2. Assim, tomando h =
ba
2
, tem-se
_
b
a
p
2
(x) dx =
_
b
a
_
f(a) + (x a)
f(a)
h
+ (x a)(x m)

2
f(a)
2 h
2
_
dx (9.11)
Para facilitar o calculo, faz-se a mudanca de variavel x() = a + h. Assim, enquanto x
percorre o intervalo [a, b], percorre o intervalo [0, 2] e dx = hd. Desta maneira,
_
b
a
p
2
(x) dx =
_
2
0
_
f(a) + f(a) + ( 1)

2
f(a)
2
_
hd
=
h
3
[f(a) + 4 f(m) + f(b)] (9.12)
de onde a f ormula de Simpson pode ser escrita como
_
b
a
f(x) dx
h
3
[f(a) + 4 f(m) + f(b)] =
b a
6
_
f(a) + 4f
_
a + b
2
_
+ f(b)
_
(9.13)
a qual e exata para polin omios de grau n 2 (conforme visto na secao anterior) e, inesperadamente,
tambem para n 3. O erro associado `a regra de Simpson e

1
90
(b a)
5
f
(4)
(), a < < b (9.14)
Usando a mesma estrategia da regra composta uniforme do trapezio, podemos obter a regra
composta uniforme de Simpson, para um n umero n par
1
de subintervalos. Nesse caso, temos
_
b
a
f(x) dx =
_
x2
x0
f(x) dx +
_
x4
x2
f(x) dx + . . . +
_
xn
xn2
f(x) dx
=
n
2

i=1
_
x2i
x2i2
f(x) dx
de onde, aplicando a regra de Simpson a cada um dos subintervalos, obtemos
S(f, h) =
_
b
a
f(x) dx
h
3
_
_
f(x
0
) + 2
n
2

i=2
f(x
2i2
) + 4
n
2

i=1
f(x
2i1
) + f(x
n
)
_
_
(9.15)
O erro associado e

1
180
(b a)h
4
f
(4)
(), a < < b (9.16)
Exemplo 9.5 Calcule a integral
A =
_
2
1
x
2
+ 3xdx
usando a regra de Simpson.
Solucao: Usando a formula (9.13), temos
A =
2 1
6
[4 + 4 6, 75 + 10] = 6, 8333
e o erro e nulo, comparado com o valor da integral denida (= 6, 8333). Note que, para a fun cao
em questao, f
(4)
= 0 e, portanto, a aproxima cao da integral pela regra de Simpson deve ser exata.
1
E necessaria essa restricao devido `a forma como a regra de Simpson foi denida.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 166
Introdu c ao ao Calculo Numerico Integracao Numerica
Exemplo 9.6 Use a f ormula de Simpson para encontrar a area sob a curva y = f(x) que passa
sob os tres pontos (0, 2), (1, 3) e (2, 2).
Como n = 1 e h = 1, calcula-se
area S(f, h) =
h
3
[f(0) + 4 f(1) + f(2) ] =
1
3
[2 + 12 + 2] =
16
3
.
Exemplo 9.7 O volume de um s olido de revolu cao e dado por
volume =
_
b
a
[R(x)]
2
dx,
onde o solido e obtido pela rotacao da regiao sob a curva y = R(x), a x b, em torno do eixo
x. Use a f ormula de Simpson para aproximar o volume do s olido de revolu cao, onde o raio R(x)
da posi c ao ao longo do eixo x e dado na tabela
x 0 1 2 3 4 5 6
R(x) 6, 2 5, 8 4, 0 4, 6 5, 0 7, 6 8, 2
Usando a regra de Simpson com n = 3 e h = 1, o valor aproximado da integral e calculado por
volume

3
[f(x
0
)
2
+ 4 (f(x
1
)
2
+ f(x
3
)
2
+ f(x
5
)
2
) + 2 (f(x
2
)
2
+ f(x
4
)
2
) + f(x
6
)
2
]


3
[(6, 2)
2
+ 4 ((5, 8)
2
+ (4, 6)
2
+ (7, 6)
2
) + 2 ((4, 0)
2
+ (5, 0)
2
) + (8, 2)
2
]


3
[38, 44 + 4 (33, 64 + 21, 16 + 57, 76) + 2 (16, 00 + 25, 00) + 67, 24]
668, 03
9.2.4 Regra de Simpson com exatidao crescente
Esta regra calcula uma aproxima cao por Simpson com uma combina cao linear de f ormulas dos
trapezios, {T(J)}. Para J 1, divide-se o intervalo [a, b] em 2 n = 2
J
subintervalos de igual
espacamento h =
ba
2
J
e usa-se os pontos a = x
0
< x
1
< . . . < x
2 n
= b, x
k
= a + hk para k =
0, 1, . . . , 2 n. A regra dos trapezios T(f, h) e T(f, 2 h) para espacamentos h e 2 h, respectivamente,
obedece a rela cao
T(f, h) =
T(f, 2 h)
2
+ h
n

k=1
f(x
2 k1
). (9.17)
Denindo T(0) =
h
2
(f(a) + f(b)), ent ao para qualquer inteiro positivo J dene-se T(J) = T(f, h)
e T(J 1) = T(f, 2 h), o que permite escrever a f ormula acima como
T(J) =
T(J 1)
2
+ h
n

k=1
f(x
2 k1
) para J = 1, 2, . . . (9.18)
Assim, a regra de Simpson S(J) = S(f, h) para 2
J
subintervalos e obtida de T(J) e de T(J 1)
pela f ormula
S(J) =
4 T(J) T(J 1)
3
para J 1 (9.19)
Exemplo 9.8 Use a regra de Simpson com exatid ao crescente para calcular aproxima coes S(1),
S(2) e S(3) para
_
5
1
d x
x
Solu cao: Neste caso, a = 1, b = 5 e f(x) =
1
x
.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 167
Introdu c ao ao Calculo Numerico Integracao Numerica
1. C alculo de S(1): Para calcular a primeira aproxima cao, S(1), e preciso conhecer T(0) e
T(1):
(a) C alculo de T(0): se J = 0, conseq uentemente h = b a = 4. Logo,
T(0) = 4
1
1
+
1
5
2
= 2, 4
(b) C alculo de T(1): se J = 1, conseq uentemente n = 1 e h =
ba
2
1
= 2. Logo, com
x
1
= a + h = 3,
T(1) =
T(0)
2
+ hf(x
1
) =
2, 4
2
+ 2
1
3
= 1, 866666
Assim,
S(1) =
4 T(1) T(0)
3
= 1, 688888
2. C alculo de S(2): como T(1) j a e conhecido, calcula-se apenas T(2) com n = 2, h =
ba
2
2
= 1,
x
1
= a + h = 2 e x
3
= a + 3 h = 4:
T(2) =
T(1)
2
+
2

k=1
[f(x
1
) + f(x
3
)]
=
1, 866666
2
+
_
1
2
+
1
4
_
= 1, 683333
de forma que
S(2) =
4 T(2) T(1)
3
= 1, 622222
3. C alculo de S(3): como T(2) j a e conhecido, calcula-se T(3) com n = 4, h =
ba
2
3
= 0, 5,
x
1
= a + h = 1, 5, x
3
= a + 3 h = 2, 5, x
5
= a + 5 h = 3, 5 e x
7
= a + 7 h = 4, 5:
T(3) =
T(2)
2
+
4

k=1
[f(x
1
) + f(x
3
) + f(x
5
) + f(x
7
)]
=
1, 683333
2
+ 0, 5
_
1
1, 5
+
1
2, 5
+
1
3, 5
+
1
4, 5
_
= 1, 628968
ou seja,
S(3) =
4 T(3) T(2)
3
= 1, 610846
9.2.5 Mudan ca do intervalo de integra cao
Algumas regras de integra cao sao denidas em termos de um intervalo de integra cao xo por
exemplo, [1, 1]. Caso se deseje utilizar uma dessas regras para se resolver a integral (9.1), pode-se
proceder a uma mudan ca linear de vari aveis.
Suponha uma regra de integra cao numerica dada por
_
d
c
f(t) dt
n

i=0
A
i
f(t
i
) (9.20)
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 168
Introdu c ao ao Calculo Numerico Integracao Numerica
a qual e exata para polin omios de grau igual ou inferior a m. Considere, agora, que o intervalo de
integra cao desejado e [a, b]; para usarmos a formula (9.20), devemos denir uma fun cao (t) que
associe c a a e d a b. Essa fun cao pode ser dada por
(t) =
b a
d c
t +
ad bc
d c
, c t d (9.21)
Escrevendo, agora, x = (t), temos dx =

(t) dt = (b a)(d c)
1
dt, de onde escrevemos a
integral (9.1) como
_
b
a
f(x) dx =
b a
d c
_

1
(b)=d

1
(a)=c
f((t)) dt

b a
d c
n

i=0
A
i
f((t
i
))
de onde
_
b
a
f(x) dx
b a
d c
n

i=0
A
i
f
_
b a
d c
t
i
+
ad bc
d c
_
(9.22)
A fun cao de transforma cao (t) deve ser linear de forma que f((t)) seja polinomial e de mesmo
grau que f.
9.2.6 Quadratura Gaussiana
As regras de integra cao vistas nas secoes anteriores sao todas baseadas na determinacao de
coecientes A
i
tal que a aproxima cao da fun cao integranda f e exata para polin omios de grau
igual ou inferior a n.
No entanto, e possvel escolher outros nos que levem a uma reducao no volume de c alculo
necessario. Por exemplo, se A
i
= c, 0 i n, ent ao a forma de Newton-Cotes (9.5) pode ser
escrita como
_
b
a
f(x) dx c
n

i=0
f(xi) (9.23)
o que elimina n multiplica coes no processo de integra cao numerica.
As formas de quadratura de Chebyshev sao um exemplo da equa cao (9.23); elas existem apenas
para n = 0, 1, 2, 3, 4, 5, 6 e 8. Outras formas de quadratura existem, como, por exemplo, as de
Hermite e as de Gauss.
A regra de integra cao de Gauss e expressa para o caso geral como
_
b
a
f(x)w(x) dx
n

i=0
A
i
f(x
i
) (9.24)
onde w e uma fun cao positiva de pondera cao. Assumindo que (9.24) e exata para qualquer fun cao
polinomial de grau menor ou igual a n, isso nos leva a determinar os coecientes A
i
como
A
i
=
_
b
a
w(x)
n

j=0
j=i
x x
j
x
i
x
j
dx
Carl Friedrich Gauss (1777-1855) mostrou que e possvel determinar-se esses coecientes de tal
forma que a aproxima cao para f seja exata para polin omios de grau igual ou inferior a 2n + 1,
mas com apenas n avalia coes.
As formulas de Gauss para a integra cao de f sao exatas para polin omios de grau menor
ou igual a 2 n + 1, de forma que a determina cao dos pontos x
0
, x
1
, . . . , x
n
em que e necessario
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 169
Introdu c ao ao Calculo Numerico Integracao Numerica
conhecer o valor de f(x) sera fun cao do grau do polin omio interpolador e da f ormula especca a
ser considerada. Estas formulas s ao do tipo
_
b
a
f(x) dx = w
0
f(x
0
) + w
1
f(x
1
) + . . . + w
n
f(x
n
) (9.25)
Para construir a formula da quadratura gaussiana para n = 1 e necessario determinar w
0
, w
1
,
x
0
e x
1
tais que
_
b
a
f(x) dx = w
0
f(x
0
) + w
1
f(x
1
) (9.26)
seja exata para polin omios de grau menor ou igual a 3.
Para simplicar os c alculos, determina-se esta formula considerando [a, b] = [1, 1]. No caso
de um intervalo [a, b] generico efetua-se a mudan ca de variaveis: para t [1, 1] corresponde
x [a, b] onde
x =
1
2
[a + b + t (b a)] e dx =
b a
2
dt
de forma que
_
b
a
f(x) dx =
b a
2
_
1
1
F(t) dt (9.27)
onde F(t) = f(x(t)).
Dizer que a f ormula e exata para polin omios de grau menor ou igual a 3 equivale a dizer que
a f ormula e exata para
g(t) 1, g(t) t, g(t) t
2
e g(t) t
3
ou seja
_
1
1
1 dt = w
0
g(t
0
) + w
1
g(t
1
) = w
0
+ w
1
= 2
_
1
1
t dt = w
0
g(t
0
) + w
1
g(t
1
) = w
0
t
0
+ w
1
t
1
= 0
_
1
1
t
2
dt = w
0
g(t
0
) + w
1
g(t
1
) = w
0
t
2
0
+ w
1
t
2
1
= 2/3
_
1
1
t
3
dt = w
0
g(t
0
) + w
1
g(t
1
) = w
0
t
3
0
+ w
1
t
3
1
= 0
Desta forma, obtem-se o seguinte sistema nao linear:
_

_
w
0
+ w
1
= 2
w
0
t
0
+ w
1
t
1
= 0
w
0
t
2
0
+ w
1
t
2
1
= 2/3
w
0
t
3
0
+ w
1
t
3
1
= 0
(9.28)
cuja solu cao fornece
t
0
=

3
3
t
1
=

3
3
w
0
= w
1
= 1,
Assim, a formula gaussiana para n = 1 e
_
1
1
F(t) dt = F
_

3
3
_
+ F
_

3
3
_
(9.29)
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 170
Introdu c ao ao Calculo Numerico Integracao Numerica
O mesmo procedimento pode ser usado para determinar a formula geral (9.25). Supondo que
F(t) represente os polinomios especiais t
k
para k = 0, 1, . . . , 2n + 1, observa-se que
_
1
1
t
k
dt =
_
0 se k e mpar
2
k + 1
se k e par
(9.30)
e a solucao do sistema n ao linear que se origina destas equacoes e bastante complicada. Usando
ent ao a teoria dos polin omios ortogonais, pode ser visto que os t
k
sao as razes de polin omios de
Legendre
2
e os coecientes w
k
devem ser obtidos pela solu cao do sistema de equa coes. Alguns
dos valores de t
k
e w
k
sao mostrados na tabela 9.3; para quadraturas de maior ordem, pode-se
recorrer aos valores tabelados em varios livros de referencia.
n t
k
w
k
k
1 0, 57735027 1, 00000000 0
0, 57735027 1, 00000000 1
2 0, 77459667 0, 55555555 0
0, 00000000 0, 88888888 1
0, 77459667 0, 55555555 2
3 0, 86113631 0, 34785485 0
0, 33998104 0, 65214515 1
0, 86113631 0, 34785485 2
0, 33998104 0, 65214515 3
4 0, 90617985 0, 23692689 0
0, 53846931 0, 47862867 1
0, 00000000 0, 56888889 2
0, 90617985 0, 23692689 3
0, 53846931 0, 47862867 4
Tabela 9.3: Pesos e nos da quadratura Gaussiana, para n = 1, 2, 3, 4.
O erro associado `a quadratura Gaussiana e dado pela f ormula
f
(2n)
()
(2n)!
_
b
a
q
2
(x)w(x) dx, q(x) =
n1

i=0
(x x
i
), a < < b (9.31)
O algoritmo 9.2.1 faz uso da tecnica de troca de intervalos e da simetria entre os n os e
coecientes, a m de se calcular a integral (9.1) atraves da quadratura Gaussiana para n = 4.
Na pr atica, a execu cao do algoritmo que calcule a integral (9.1) por quadratura Gaussiana sempre
incorrer a em erros de ponto-utuante, principalmente se os valores dos n os e coecientes nao forem
utilizados com uma precis ao adequada, como pode ser visto no exemplo a seguir.
2
Os polinomios de Legendre sao denidos pela seguinte formula de recorrencia:
p
0
(x) = 1
p
1
(x) = x
p
m+1
(x) =
1
m + 1
{(2 m + 1) xpm(x) mp
m1
(x)} , m = 1, 2, . . .
Suas razes sao todas reais e distintas e situam-se no intervalo [1, 1]. Estas razes estao simetricamente situadas
com respeito `a origem e se m e mpar, uma raiz de pm(x) e sempre x = 0.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 171
Introdu c ao ao Calculo Numerico Integracao Numerica
Algoritmo 9.2.1 Quadratura Gaussiana de 4 pontos
proc quadratura gaussiana 4(input: a, b, f; output: S)
x
0
0
x
1
0, 5384 6931 0105 683
x
2
0, 9061 7984 5938 664
w
0
0, 5688 8888 8888 889
w
1
0, 4786 2867 0499 366
w
2
0, 2369 2688 5056 189
u ((b a)x
0
+ a + b)/2
S w
0
f(u)
for i = 1, 2 do
u ((b a)x
i
+ a + b)/2
v ((b a)x
i
+ a + b)/2
S S + w
i
(f(u) + f(v))
endfor
S (b a)S/2
endproc
Exemplo 9.9 Calcule a integral
A =
_
2
1
x
2
+ 3xdx
usando a quadratura de Gauss, com n = 4.
Solucao: Usando o algoritmo 9.2.1, temos
A = 6, 833333335
e o erro e igual a 2 10
9
, comparado com o valor da integral denida (= 6, 8333).
Exemplo 9.10 Integre f(t) = t
4
+1 no intervalo (1, 1) usando quadratura gaussiana para n = 2.
I =
_
1
1
(t
4
+ 1) dt = w
0
f(t
0
) + w
1
f(t
1
) + w
2
f(t
2
)
Da tabela 9.3, sabe-se que
t
0
= 0, 77459667 w
0
= 0, 55555555
t
1
= 0, 00000000 w
1
= 0, 88888888
t
2
= 0, 77459667 w
2
= 0, 55555555
Logo,
I = 0, 55555556
_
(0, 77459667)
4
+ 1
_
+0, 88888889
_
(0, 00000000)
4
+ 1
_
+0, 55555556
_
(0, 77459667)
4
+ 1
_
= 2, 4
Sugestao: Calcule esta integral com o metodo de Simpson e compare os resultados.
Exemplo 9.11 Use quadratura gaussiana com tres pontos para aproximar a integral
_
5
1
d x
x
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 172
Introdu c ao ao Calculo Numerico Integracao Numerica
Como o intervalo e I = [1, 5], e preciso fazer mudanca de variavel. Por isto, calcula-se a
integral desejada como
_
5
1
d x
x
=
b a
2
_
1
1
F(t) dt
com a mudan ca de variavel
x = t
_
b a
2
_
+
a + b
2
= t
_
5 1
2
_
+
5 + 1
2
= 2 t + 3
_
5
1
d x
x

5 1
2
[w
0
F(t
0
) + w
1
F(t
1
) + w
2
F(t
2
)]

5 1
2
_
0, 55555556
1
2 t
0
+ 3
+ 0, 88888889
1
2 t
1
+ 3
+ 0, 55555556
1
2 t
2
+ 3
_
1, 602694
onde t
0
= 0, 77459667, t
1
= 0, 00000000 e t
2
= 0, 77459667.
9.3 Integra cao de fun coes mal comportadas
Fun coes mal comportadas (ou mal condicionadas) s ao aquelas que possuem algum tipo de carac-
terstica especial e que, portanto, requerem cuidados especiais quando se quer integr a-las.
Exemplo 9.12 Calcule a integral de
_
1
0
e
x

x
d x.
Solu cao:Como esta fun cao tem uma singularidade, e preciso fazer uma mudanca de variavel que
a elimine. Neste caso, pode-se fazer
x = u
2
e d x = 2 u d u
de forma que
_
1
0
e
x

x
d x = 2
_
1
0
e
u
2
u
u d u
= 2
_
1
0
e
u
2
d u
Como o integrando agora e uma fun cao bem comportada, pode-se escolher um dos metodos
estudados para calcular esta ultima integral.
Exemplo 9.13 Calcule
_
1
0

sen xdx
Solu cao:Como o integrando possui uma tangente vertical, a velocidade de integra cao ca muito
lenta. Se o metodo escolhido fosse trapezios, por exemplo, seriam necess arias mais de 500 subdivis oes
do intervalo de integracao [0, 1] para que se obtivesse quatro casas decimais repetidas.
Neste caso, tambem e possvel fazer a mudan ca de variavel,
senx = u
2
e d x =
2u du

1 u
4
,
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 173
Introdu c ao ao Calculo Numerico Integracao Numerica
de maneira que
_
1
0

sen xdx = 2
_

sen1
0
u
2

1 u
4
du.
Outra alternativa seria utilizar a fun cao inversa para resolver o problema:
_
1
0

sen xdx =
_
1
0,3

sen xdx + 0, 3
_
sen 0, 3
_

sen0,3
0
arcsin y
2
dy
9.4 Intervalos de integra cao innitos
Quando um ou os dois limites de integra cao de uma fun cao sao , e necessario combinar o
processo de integracao numerica com uma manipula cao algebrica adequada da fun cao integranda,
ou, alternativamente, determinar um valor que aproxime a regi ao abaixo da curva da fun cao a
partir de um valor de x (ver [2]).
Considere a integral
_

b
1
x + e
x
+ x
2
dx (9.32)
onde pode-se observar que e

0. Uma alternativa para se calcular (9.32) e notar que a curva


da fun cao
1
x + x
2
aproxima relativamente bem a fun cao integranda em (9.32), como pode-se ver na gura 9.3. Nesse
caso, pode-se escrever
_

b
1
x + e
x
+ x
2
dx <
_

b
1
x + x
2
dx = lnb + ln(1 + b). (9.33)
Uma alternativa seria substiturmos e
x
em (9.32) por e
b
, j a que esse valor poderia ser
considerado n ao t ao desprezvel. Nesse caso, teramos
_

b
1
x + e
b
+ x
2
dx =
_
csgn(
_
4 e
b
1) 2 arctan(
2 b + 1

4 e
b
1
)
_
1
_
(4 + e
b
) e
b
(9.34)
Note que, nesse caso, calcular a antiderivada de
1
x+e
b
+x
2
e bastante complicado, e, algumas vezes,
a aproxima cao obtida com (9.33) e suciente, como mostra o exemplo abaixo.
Exemplo 9.14 Seja b = 10 em (9.32). Calculando a aproxima cao dessa integral atraves de
(9.33), obtemos o valor 0, 095310180; utilizando (9.34), o valor obtido e .09531016670. Note que
o erro relativo entre ambas aproximacoes e da ordem de 10
5
, o que pode n ao justicar o uso da
segunda aproxima c ao.
9.5 Exerccios
Exerccio 9.1 Calcule a integral de f(x) =

6 x + 5 no intervalo [1, 9] com a f ormula dos
trapezios considerando h = 1 e depois delimite o erro de truncamento para este caso.
Exerccio 9.2 Determine h de tal forma que a regra dos trapezios forne ca o valor de
_
1
0
e
x
2
dx
com um erro de truncamento menor do que 10
4
.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 174
Introdu c ao ao Calculo Numerico Integracao Numerica
Exerccio 9.3 Calcule
_
10
6
log xdx
utilizando a f ormula de Simpson para 8 subintervalos e delimite o erro de truncamento.
Exerccio 9.4 Encontre n e h tal que o erro para a f ormula de Simpson seja menor do que
5 10
9
quando se quer aproximar
_
7
2
d x
x
Depois, fa ca o mesmo para a f ormula dos trapezios e compare os resultados.
Exerccio 9.5 Calcular uma aproxima cao de
_
1
0
1
1 + x
2
dx
pela regra de Simpson com exatid ao crescente com no mnimo 5 DIGSE.
Exerccio 9.6 Usando quadratura de Gauss, calcule:
_
1
1
x
2
dx com 4 pontos
Exerccio 9.7 Usando quadratura de Gauss, calcule:
_
10
0
e
x
dx com 2 pontos
Depois, calcule o erro exato (diferen ca entre o valor da integral calculada com as regras do
C alculo e o valor obtido por quadratura) e use este valor para estimar o n umero mnimo de pontos
necessarios para calcular esta integral com a regra dos trapezios.
Exerccio 9.8 Sugira uma mudan ca de variavel adequada para o c alculo da integral:
_
1
0
sen x

1 x
2
dx.
Depois, encontre uma aproxima cao para o seu valor.
Exerccio 9.9 Utilize a regra de Simpson com exatid ao crescente para calcular
_
1
0

x
4 x
2
dx
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 175
Introdu c ao ao Calculo Numerico Integracao Numerica
Figura 9.2: A regra do trapezio composta: (a) subintervalos de qualquer tamanho, (b) subintervalos
de tamanhos iguais.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 176
Introdu c ao ao Calculo Numerico Integracao Numerica
Figura 9.3: Gr aco de
1
x+e
x
+x
2
() e
_

b
1
x+x
2
().
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 177
Captulo 10
Solu cao Numerica de Equa coes
Diferenciais Ordinarias
10.1 Introdu cao
Equa coes diferenciais aparecem com grande freq uencia em modelos que descrevem quantitati-
vamente fenomenos em diversas areas, como por exemplo mecanica dos uidos, uxo de calor,
vibra coes, rea coes qumicas e nucleares, economia, biologia, etc. A motiva cao para a constru cao
dos primeiros computadores foi ocasionada, em grande parte, pela necessidade de serem calculadas
trajetorias balsticas de uma forma precisa e rapida. Hoje em dia, os computadores est ao sendo
muito empregados na solu cao de equacoes relacionadas com os foguetes balsticos, com a teoria
de satelites articiais, com o estudo de redes eletricas, curvaturas de vigas, estabilidade de avi oes,
teoria de vibra coes e outras aplica coes.
Exemplo 10.1 Considere a equa cao
d y
d t
= 1 e
t
. (10.1)
Esta e uma equa c ao diferencial porque envolve a derivada
d y
d t
de y = y(t). Apenas a vari avel
independente t aparece do lado direito da equacao (10.1). Portanto, uma solucao e a antiderivada
de 1 e
t
e as regras de integra c ao podem ser empregadas para determinar y(t):
y(t) = t +e
t
+c, (10.2)
onde c e a constante de integra c ao. Todas as fun coes em (10.2) s ao solu coes de (10.1) porque
satisfazem a condi cao y

(t) = 1 e
t
. Na verdade, elas formam uma famlia de curvas.
1
Exemplo 10.2 Considere a temperatura y(t) de um objeto sob processo de resfriamento. A taxa
de variacao de temperatura do corpo esta relacionada com a diferen ca de temperatura entre a sua
temperatura e a do meio que o cerca. Este fen omeno pode ser expresso pela equacao diferencial
d y
d t
= k (y A)
onde A e a temperatura do meio, y e a temperatura do objeto no tempo t e k e uma constante
positiva. O sinal negativo e necess ario para garantir que
d y
d t
ser a negativo quando a temperatura
do corpo superar a temperatura do meio.
1
A variacao do valor de c representa um movimento da curva solucao para cima ou para baixo e e possvel
encontrar uma determinada curva que passe pelos pontos desejados.
178
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
Se a temperatura do objeto e conhecida no tempo t = 0, diz-se que esta e uma condi cao inicial
e inclui-se esta informa c ao na formula cao do problema, que ca:
d y
d t
= k (y A) com y(0) = y
0
,
Pode-se usar a tecnica de separacao de variaveis para encontrar a solucao
y = A + (y
0
A) e
k t
.
Para cada escolha de y
0
a curva solu cao ser a diferente, como mostra a gura. Pode-se observar
que, ` a medida que o tempo passa, a temperatura do objeto se aproxima da temperatura do meio.
Se y
0
< A entao o objeto est a sendo aquecido, e nao resfriado.
Uma equacao envolvendo uma rela cao entre uma fun cao desconhecida e uma ou mais de suas
derivadas e denominada equa cao diferencial. Assim, uma equa cao diferencial ordin aria (que tem
apenas uma variavel independente) de ordem n tem a forma
y
(n)
= f(x, y, y

, y

. . . , y
(n1)
). (10.3)
Sua solu cao e uma fun cao (x) n vezes diferenciavel em um intervalo determinado e que satisfaz
(10.3), isto e,

(n)
= f(x, ,

. . . ,
(n1)
). (10.4)
Exemplo 10.3
d y
d x
= x +y equacao diferencial ordin aria

2
u
x
2
+

2
u
y
2
= 0 equacao diferencial parcial
Diz-se que a ordem de uma equa cao diferencial e a ordem da mais alta derivada que aparece
na equacao. Uma equac ao diferencial e linear se a fun cao e suas derivadas aparecem linearmente
na equac ao.
Exemplo 10.4
xy

= x y equacao diferencial linear


y

+ (1 y
2
) y

+y = 0 equacao diferencial n ao linear


Se, dada uma equa cao de ordem m, a fun cao, assim como as suas derivadas ate ordem m1
s ao especicadas em um mesmo ponto, ent ao tem-se um problema de valor inicial PVI. Se, em
problemas envolvendo equacoes diferenciais ordin arias de ordem m 2, as m condic oes fornecidas
para busca da solu cao unica n ao sao todas dadas em um mesmo ponto, ent ao tem-se um problema
de valor de contorno PVC.
Exemplo 10.5
_
y

(x) = y
y(0) = 1
e um PVI
_
_
_
y
(4)
(x) +k y(x) = q
y(0) = y

(0) = 0
y(L) = y

(L) = 0
e um PVC
Embora existam v arias tecnicas para solucionar, de forma aproximada, algumas classes selecionadas
de equacoes diferenciais, a grande maioria das equacoes encontradas na pr atica n ao podem ser
solucionadas analiticamente. N ao existe, por exemplo, nenhuma expressao fechada para a
solu cao de y

= x
3
+ y
2
com y(0) = 0. Neste caso, os recursos disponveis sao os metodos
numericos, que aproximam a solu cao desejada.
Um procedimento numerico para calcular a solu cao de um dado PVI e um algoritmo para
calcular os valores aproximados y
0
, y
1
, y
2
, . . . , y
n
, . . . da solu cao y = (t) em um conjunto de
pontos t
0
< t
1
< t
2
< . . . < t
n
. . ., conforme a gura 10.1.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 179
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
Figura 10.1: Aproxima cao da solu cao em um PVI.
10.2 Problema de Valor Inicial
Suponha o seguinte problema de valor inicial (PVI)
_
x

= f(t, x)
x(t
0
) = x
0
(10.5)
onde x e uma fun cao de t, com x

=
d
dt
x(t). A fun cao f d a a inclina cao de x no ponto t. Por
exemplo,
_
x

= tan(t + 3)
x(1) = 1
(10.6)
A partir da equacao (10.5), pretende-se determinar x em um intervalo contendo o ponto inicial
t
0
. Como a solucao analtica do PVI (10.6) e x(t) = sec(t+3), podemos ver que /2 < t+3 < /2,
j a que sec t e indenida para t = /2.
Esse exemplo e muito particular, pois a sua solu cao analtica nos permite calcular valores para
x. Tipicamente, no entanto, problemas da forma (10.5) nao tem solucao analtica, e metodos
numericos devem ser utilizados para obter-se uma solu cao aproximada, como nos exemplos a
seguir:
1. A equa cao y

= x
2
+y
2
n ao tem solucao elementar;
2. A equa cao y

a(y

)
2
+by = 0, a qual descreve vibra coes com amortecimento proporcional
ao quadrado da velocidade, n ao pode ser solucionada de forma analtica;
3. Um problema de grande interesse historico a solu cao das equa coes diferenciais que governam
o movimento de tres corpos sujeitos ` as suas proprias atra coes gravitacionais tambem nao
tem solucao analtica.
Em outras situa coes, e mais simples recorrer-se a uma solucao numerica de um problema desse
tipo, utilizando-a para obter valores de uma solu cao particular, como em
1. A equa cao y

= xy, sujeita a uma transformacao de vari aveis, pode ser resolvida em termos
de fun coes de Bessel;
2. Uma tabela de integrais elpticas pode ser usada para resolver equa coes do tipo

= sen.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 180
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
10.2.1 Existencia da Solu cao
Cabe, agora, uma pergunta: ser a que todo e qualquer problema na forma (10.5) apresenta solucao?
A resposta e nao e, mesmo assim, dependendo de certas consideracoes feitas a respeito de f, a
solu cao, se existir, s o sera considerada na vizinhanca de t
0
. Por exemplo, considere
_
x

= 1 +x
2
x(0) = 0
(10.7)
A inclina cao em t = 0 e 1 (i.e. x

(0) = 1). Como a inclina cao e positiva, podemos dizer que x(t)
esta crescendo perto de t = 0; logo, tambem 1 +x
2
cresce. Ora, como x e x

crescem, para algum


valor de t n ao haver a solu cao, qual seja, x(t) = +; no entanto, o problema (10.7) apresenta
como solucao analtica x(t) = tant.
Vejamos entao alguns teoremas que garantem a existencia e a unicidade da solu cao (as provas
dos mesmos podem ser vericadas em [10]).
Teorema 10.2.1 Se f e contnua em um ret angulo R centrado em (t
0
, x
0
), R = (t, x) : [ tt
0
[
, [ x x
0
[ , entao o problema (10.5) tem uma solu cao x(t) para [ t t
0
[ min(, /M),
onde M e o m aximo de [ f(x, t) [ no retangulo R.
Teorema 10.2.2 Se f e
f
x
s ao contnuas no ret angulo R, entao o problema (10.5) tem uma
solu c ao unica no intervalo [ t t
0
[ < min(, /M).
Teorema 10.2.3 Se f e contnua na tira a t b, < x < e satisfaz a condi cao de
Lipschitz em x,
[ f(t, x
1
) f(t, x
2
[ L[ x
1
x
2
[
entao o problema (10.5) tem uma solu cao unica em [a, b].
10.2.2 Erros na solu cao numerica
Ao se aproximar numericamente a solucao de uma equacao diferencial atraves de um processo
de integra cao numerica uma serie de erros surgem, os quais podem ser classicados como:
Erro de truncamento local (ETL): e o erro existente em uma itera cao da integra cao numerica
ao substituirmos um processo innito por um nito;
Erro de arredondamento local (EAL): e causado pela precisao nita do computador em uso;
Erro de truncamento global (ETG): e a acumulacao dos ETL ao longo do processo de inte-
gra cao; porem, ele existiria mesmo que se utilizasse uma aritmetica de precis ao innita, pois
e inerente ao metodo e independente do computador utilizado;
Erro de arredondamento global (EAG): e a acumulacao de todos os EAL;
Erro total (ETT): e a soma dos ETG e EAG.
A seguir, apresentaremos alguns dos diferentes metodos numericos para se obter uma aproxima
ccao para a solu cao de (10.5).
10.2.3 Metodo da Serie de Taylor
Usualmente, um metodo numerico para a solu cao de uma equacao diferencial produz um conjunto
de valores; em nosso caso, para o problema (10.5), teramos os pares (t
0
, x
0
), (t
1
, x
1
), . . ., (t
m
, x
m
).
Isso nos mostra que a solucao numerica e sempre discreta; obviamente, uma expressao analtica,
contnua, pode ser obtida atraves da interpola cao de uma spline ou outra fun cao aos pontos
calculados (ver Captulo 7).
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 181
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
Mais uma vez, consideremos o problema (10.5); f e uma fun cao de duas vari aveis, e (t
0
, x
0
)
um ponto unico atraves do qual passa a curva solucao. Essa solu cao e uma fun cao x(t) tal que
dx(t)
dt
= f(t, x(t))t, [ t t
0
[ 1
com x(t
0
) = x
0
.
O metodo da serie de Taylor consiste em obtermos uma expansao emx de f(x, t), de acordo com
a serie de Taylor, ate um determinado n umero de termos; uma vez obtida a expansao, integramo-la
num intervalo [t
0
, t
1
] e [x
0
, x
1
]. Considere, entao, o problema
_
x

= cos t senx +t
2
x(1) = 3
(10.8)
Escrevendo a serie de Taylor para x, temos
x(t +h) = x(t) +hx

(t) +
h
2
2!
x

(t) +
h
3
3!
x

(t) +
h
4
4!
x
(4)
(t) +. . .
de onde, para o problema (10.8), vem
2
x

= sent x

cos x + 2t (10.9)
x

= cos t x

cos x + (x

)
2
senx + 2 (10.10)
x
(4)
= sent x

cos x + 3x

senx + (x

)
3
cos x (10.11)
Obviamente, cada termo de ordem superior a 4 ser a cada vez mais extenso; no entanto, pode-se
observar que (10.11) e escrita em termos de (10.10) a qual, por sua vez, e escrita em termos de
(10.9) a qual e escrita, tambem, em termos de x

, dada no problema.
Utilizando apenas os termos acima, dizemos que o metodo de Taylor correspondente e de
quarta ordem (de forma generica, o metodo de Taylor de n-esima ordem inclui todos os termos ate
h
n
n!
x
(n)
(t)). Os termos descartados (ordem superior a n) constituem o ETL. Na serie de Taylor, o
ETL e dado por
ETL
n
=
1
(n + 1)!
h
n+1
x
(n+1)
(t +h), 0 < < 1 (10.12)
O processo de integra cao consiste em se avaliar a serie truncada de Taylor em diferentes pontos
(t, x). Deve-se xar o intervalo de integracao em t, i.e. t
0
t t
1
, bem como o passo de integra-
cao, h, tal que o n umero de itera coes sera
t1t0
h
. Da, pode-se dizer que o ETG e, no mnimo, de
ordem O(h
n
).
Pode-se armar que o metodo de Taylor e extremamente dependente do problema a ser
resolvido, pois e necessario escrever explicitamente as derivadas (parciais) de x(t). Dessa forma,
o algoritmo mostrado a seguir e apenas um modelo para o metodo de Taylor de quarta ordem, o
qual deve ser adaptado para cada problema especco.
2
Note que ao diferenciar termos como senx em relacao a t, devemos ter
dsenx(t)
dt
, aplicando a regra da cadeia.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 182
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
Algoritmo 10.2.1 Metodo de Taylor de 4
a
Ordem
proc taylor 4(input: h, t
0
, t
1
, x
0
; output: x)
n
| t1t0 |
| h |
t t
0
x x
0
for k 0, 1, . . . , n do
% Inclua as derivadas de f(x, t) nas linhas abaixo
x
1
. . .
x
2
. . .
x
3
. . .
x
4
. . .
x x +h
_
x
1
+
h
2
_
x
2
+
h
3
_
x
3
+
h
4
x
4
___
t t +h
endfor
endproc
Note que o algoritmo 10.2.1 avalia a expans ao de Taylor utilizando um esquema de multiplicacao
aninhada, como no metodo de Horner (vide Se cao 3.5). Alem disso, o erro de truncamento local
(i.e. a cada t) e da ordem de h
5
. Se usarmos, por exemplo, um passo de integra cao h = 10
2
,
esse erro ser a de 10
10
a cada itera cao em t; e possvel, para k muito grande, que esses erros,
acumulados, contaminem o processo de integra cao numerica.
10.2.3.1 Vantagens e desvantagens
O metodo de Taylor exige a existencia de derivadas parciais de f na regi ao onde a curva solu cao
passa no plano t x. Veja que esta exigencia n ao e necessaria para a existencia de solucao. Alem
disso, cada derivada parcial deve ser individualmente codicada.
Como vantagens, o metodo e extremamente simples e, se for possvel utilizar derivadas de
maior ordem, a precis ao do metodo e potencialmente alta.
10.2.4 Metodo de Euler
O metodo de Euler e uma simplica cao do metodo de Taylor, e nada mais e do que um metodo
de Taylor de 1
a
ordem, i.e.
x
t+h
= x(t) +hf(t, x) (10.13)
O metodo de Euler, o qual pode ser expresso atraves do algoritmo 10.2.2, e bastante utilizado, por
n ao exigir mais do que e expresso na deni cao de um problema do tipo (10.5), apesar de apresentar
um ETL de ordem O(h).
Cabe ressaltar que a primeira tentativa de resolu cao numerica de uma equacao diferencial foi
feita por Euler, por volta de 1768 D.C.
Algoritmo 10.2.2 Metodo de Euler
proc euler(input: h, t
0
, t
1
, x
0
; output: x)
n
| t1t0 |
| h |
t t
0
x x
0
for k 0, 1, . . . , n do
x x +hf(t, x)
t t +h
endfor
endproc
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 183
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
Exemplo 10.6 Considere o problema
y

= 1 t + 4 y (10.14)
y(0) = 1 (10.15)
A equacao (10.14) e do tipo diferencial linear de primeira ordem, sendo f acil vericar que a
solu c ao que cumpre a condi cao inicial (10.15) e
y = (t) =
1
4
t
3
16
+
19
16
e
4 t
.
Assim, com a f ormula de Euler e um incremento h = 0, 1 e possvel determinar um valor
aproximado para a solu cao em t = 0, 2 do PVI acima.
Neste caso, f(t, y) = 1 t + 4 y. Para usar a aproxima cao de Euler, calcula-se inicialmente
f
0
= f(0, 1) = 5. Entao:
y
1
= y
0
+hf(0, 1)
= 1 + (0, 1) (5)
= 1, 5,
Na etapa seguinte,
y
2
= y
1
+hf(t
1
, y
1
)
= 1, 5 + (0, 1) f(0, 1 , 1, 5)
= 1, 5 + (0, 1) (6, 9)
= 2, 19,
Este resultado pode ser comparado com o valor exato de (0, 2) que e (0, 2) = 2, 5053299.
Logo, o erro e aproximadamente 2, 51 2, 19 = 0, 32. Um erro desta grandeza (erro percentual de
12%) nao e normalmente aceit avel.
Sugest ao: Experimente refazer seus c alculos considerando espa camentos progressivamente menores
e observe o que acontece.
10.2.5 Metodo de Heum
Este metodo introduz uma ideia nova para a constru cao de um algoritmo para solu cao do problema
de valor inicial
y

(t) = f(t, y(t))


y(t
0
) = y
0
no intervalo [a, b].
Para obter o ponto (t
1
, y
1
), usa-se o teorema fundamental do c alculo e integra-se y

(t) sobre
[t
0
, t
1
]:
_
t1
t0
y

(t) dt = y(t
1
) y(t
0
), (10.16)
onde a antiderivada de y

(t) e a fun cao desejada, y(t). Quando a equa cao (10.16) e resolvida para
y(t
1
) o resultado e
y(t
1
) = y(t
0
) +
_
t1
t0
f(t, y(t)) dt. (10.17)
Agora, usando integra cao numerica, pode-se aproximar a integral denida em (10.17). A regra
dos trapezios com passo h = t
1
t
0
fornece
y(t
1
) y(t
0
) +
h
2
[f(t
0
, y(t
0
)) +f(t
1
, y(t
1
))] . (10.18)
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 184
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
Note que esta formula ainda envolve o valor de y(t
1
), que n ao e conhecido. Por isto, usa-se a
f ormula de Euler para estimar este valor. Substituindo o valor de y(t
1
) calculado pela formula de
Euler na equa cao (10.18), a f ormula resultante e chamada de metodo de Heum:
y
1
= y
0
+
h
2
[f(t
0
, y
0
) +f(t
1
, y
0
+hf(t
0
, y
0
))] . (10.19)
Este processo e repetido, gerando uma seq uencia de pontos que aproximam a solu cao y = (t).
A cada passo, o metodo de Euler e usado como um preditor e a regra dos trapezios, como uma
correcao para que o valor nal seja obtido.
A f ormula geral para o metodo de Heum e entao dada por
p
n+1
= y
n
+hf(t
n
, y
n
) (10.20)
y
n+1
= y
n
+
h
2
[f(t
n
, y
n
) +f(t
n+1
, p
n+1
)] (10.21)
10.2.5.1 Erro de truncamento para o metodo de Heum
O erro de truncamento local para este metodo e da forma
[ e
n
[
h
3
12
max
tI

(t) (10.22)
onde y = (t) e a solucao exata e o erro de truncamento global, ou seja, o erro acumulado depois
de m passos, e da forma
[ E
n
[ C h
2
onde C e uma constante. Portanto, quando o passo h e reduzido por um fator de
1
2
, pode-se
esperar que o erro de truncamento global seja reduzido por um fator de
1
4
.
Observa c ao: A f ormula de Heum e um exemplo de um metodo em dois estagios: calcula-se primeiro
y
n
+hf
n
pela f ormula de Euler e depois utiliza-se este resultado para calcular y
n+1
com a equacao
(10.21). O aprimoramento da equa cao (10.21) em relacao `a f ormula de Euler esta no fato de que
o erro de truncamento local da equa cao (10.21) e O(h
3
), ao passo que, para o metodo de Euler,
este e O(h
2
). Note que esta melhoria de precisao e conseguida com maior esfor co computacional,
pois e preciso estimar f(t, y) duas vezes a m de passar de t
n
para t
n+1
.
Se f(t, y) depender exclusivamente de t e nao de y, a resolu cao da equacao diferencial y

=
f(t, y) se reduz `a integra cao de f(t). Neste caso, o metodo de Heum reduz-se a
y
n+1
= y
n
+
h
2
[f(t
n
) +f(t
n+1
)] ,
que e a regra dos trapezios para integra cao numerica.
Exemplo 10.7 Use o metodo de Heum com h = 1 para aproximar y(2) para o problema
y

=
t y
2
y(0) = 1
O primeiro passo e calcular p
1
com o metodo de Euler:
p
1
= y
0
+hf(t
0
, y
0
)
= 1 + 1
0 1
2
= 0, 5
Agora, utiliza-se efetivamente a f ormula de Heum para calcular y
1
, que e uma aproxima cao para
a solu c ao em t = 1:
y
1
= y
0
+
h
2
[f(t
0
, y
0
) +f(t
1
, p
1
)]
= 1 +
1
2
(0, 5 + 0, 25) = 0, 875
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 185
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
Para aproximar y(2), calcula-se p
2
e y
2
:
p
2
= y
1
+hf(t
1
, y
1
)
= 0, 875 + 1
1 0, 875
2
= 0, 9375
e
y
2
= y
1
+
h
2
[f(t
1
, y
1
) +f(t
2
, p
2
)]
= 0, 875 +
1
2
(0, 0625 + 0, 53125) = 1, 171875
10.2.6 Metodos de Runge-Kutta
Os metodos de Runge-Kutta sao similares ao metodo da serie de Taylor, com a vantagem de n ao
necessitarem das derivadas de ordem superior a 1, Vejamos isso atraves do metodo de Runge-Kutta
de segunda ordem.
Escrevendo a serie de Taylor para x(t +h), vem
x(t +h) = x(t) +hx

(t) +
h
2
2!
x

(t) +
h
3
3!
x

(t) +. . . (10.23)
e, valendo-nos do PVI (10.5), temos, usando a regra de cadeia,
x

(t) = f
x

(t) = f
t
+f
x
x

= f
t
+f
x
f
x

(t) = f
tt
+f
tx
f + (f
t
+f
x
f)f
x
+f(f
xt
+f
xx
f)
onde o subscrito indica deriva cao parcial em rela cao `aquela vari avel. Da, os primeiros tres termos
de (10.23) podem ser reescritos como
x(t +h) = x +hf +
1
2
h
2
(f
t
+ff
x
) +O(h
3
)
= x +
1
2
hf +
1
2
h(f +hf
t
+hff
x
) +O(h
3
) (10.24)
onde x x(t) e f f(t, x). Podemos eliminar de (10.24) os termos envolvendo as derivadas
parciais f
t
, f
x
, usando os primeiros termos da serie de Taylor em duas variaveis,
f(t +h, x +hf) = f +hf
t
+hff
x
+O(h
2
)
de onde (10.24) pode ser reescrita como
x(t +h) = x +
1
2
hf +
1
2
hf(t +h, x +hf) +O(h
3
)
e, descartando O(h
3
), escrevemos
x(t +h) = x(t) +
1
2
(F
1
+F
2
), F
1
= hf(t, x), F
2
= hf(t +h, x +F
1
) (10.25)
a qual e a f ormula para o metodo de Runge-Kutta de segunda ordem, tambem chamado de metodo
de Heum.
De forma geral, temos
x(t +h) = x +w
1
hf +w
2
hf(t +h, x +hf) +O(h
3
) (10.26)
onde w
1
, w
2
, e sao par ametros a escolher.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 186
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
Reescrevendo (10.26) usando a serie de Taylor em duas vari aveis, temos
x(t +h) = x +w
1
hf +w
2
h(f +hf
t
+hff
x
) +O(h
3
) (10.27)
e, comparando (10.24) com (10.27), vemos que as seguintes condicoes devem ser impostas:
_
_
_
w
1
+w
2
= 1
w
2
=
1
2
w
2
=
1
2
(10.28)
e, em (10.25), temos w
1
= w
2
= 1/2, = = 1.
10.2.6.1 Metodo modicado de Euler
O metodo modicado de Euler e obtido com w
1
= 0, w
2
= 1 e = = 1/2,
x(t +h) = x(t) +F
2
, F
1
= hf(t, x), F
2
= hf
_
t +
1
2
h, x +
1
2
F
1
_
(10.29)
10.2.6.2 Metodo de Runge-Kutta de 4
a
Ordem
O metodo de Runge-Kutta de 4
a
ordem pode ser escrito como
x(t +h) = x(t) +
1
6
(F
1
+ 2F
2
+ 2F
3
+F
4
) (10.30)
F
1
= hf(t, x)
F
2
= hf
_
t +
1
2
h, x +
1
2
F
1
_
F
3
= hf
_
t +
1
2
h, x +
1
2
F
2
_
F
4
= hf(t +h, x +F
3
)
10.2.6.3 Erros do metodo de Runge-Kutta
Mais uma vez, nos deparamos com um ETL, o qual e da ordem de O(h
5
) para o metodo de
Runge-Kutta de 4
a
ordem. Vejam que no primeiro passo, um valor x(t
0
+ h) e calculado; existe
tambem um valor x(t
0
+ h), o qual e o valor exato (e desconhecido), tal que o erro e = x x e
Ch
5
, para h 1. O valor de C independe de h mas depende de t
0
e de x.
Para estimar Ch
5
, assumamos que C nao muda quando h e somado a t
0
; chamemos de u o
valor da solu cao em t
0
+h e de v o valor da solu cao em t
0
+
h
2
+
h
2
. Temos, entao,
x(t
0
+h) = v +Ch
5
x(t
0
+h) = u + 2C
_
h
2
_
5
e, subtraindo v de u, obtemos
Ch
5
=
u v
1 2
4
(10.31)
Com isso, e possvel estimar o ETL, calculando-se [ u v [, e vericando se ele encontra-se abaixo
de uma toler ancia pre-especicada (por exemplo, 10
5
). Se n ao estiver, ent ao o passo h pode
ser reduzido (normalmente pela metade); caso contr ario, se o ETL e muito menor do que aquela
tolerancia, h pode ser aumentado (multiplicando-o por dois, normalmente).
10.2.6.4 Avaliacao da Funcao versus Ordem do Metodo Runge-Kutta
A tabela 10.1 mostra que, ao se aumentar a ordem do metodo, o n umero de vezes que a funcao
deve ser avaliada cresce rapidamente. Essa e a principal razao pela qual n ao se utilizam metodos
de Runge-Kutta de ordem muito grande.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 187
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
Ordem 1 2 3 4 4 5 6 6
Avaliacao 1 2 3 4 5 6 7 8
Tabela 10.1: N umero de vezes que f(t, x) deve ser avaliada nos metodos de Runge-Kutta.
i a
i
a
i
b
i
c
i
d
i1
d
i2
d
i3
d
i4
d
i5
1
16
135
1
360
0 0
2 0 0
1
4
1
4
3
6656
12825

128
4275
3
8
3
32
9
32
4
28561
56430

2197
75240
12
13
1932
2197

7200
2197
7296
2197
5
9
50
1
50
1
439
216
8
3680
513

845
4104
6
2
55
2
55
1
2

8
27
2
3544
2565
1859
4104

11
40
Tabela 10.2: Coecientes do metodo Runge-Kutta-Fehlberg.
10.2.6.5 Metodo Adaptativo de Runge-Kutta-Fehlberg
Em 1969, Fehlberg prop os um metodo que permite ajustar o passo de integracao num metodo de
Runge-Kutta, de forma adaptativa. Esse metodo baseia-se na combina cao do metodo de Runge-
Kutta de quarta ordem com cinco avaliacoes, com o metodo de Runge-Kutta de quinta ordem com
seis avaliacoes.
`
A primeira vista, tal metodo abreviado por RKF e desvantajoso com rela cao ao
metodo cl assico; porem, ele combina as constantes envolvidas nos dois metodos de Runge-Kutta
utilizados, de forma a obter duas f ormulas, de diferentes ordens, as quais envolvem valores de
f(t, x) avaliadas nos mesmos pontos.
O metodo RKF e de quinta ordem e obtem duas aproxima coes diferentes para a solucao, x(t+h)
e x(t +h), dadas por
x(t +h) = x(t) +
6

i=1
a
i
F
i
(10.32)
x(t +h) = x(t) +
6

i=1
b
i
F
i
(10.33)
F
i
= hf
_
_
t +c
i
h, x +
i1

j=1
d
ij
F
j
_
_
, i = 1, 2, . . . , 6 (10.34)
onde os valores dos coecientes presentes nas equa coes (10.32)-(10.33) sao dados na tabela 10.2.
A equa cao (10.32) e de quinta ordem e a equa cao (10.33) e de quarta ordem. O ETL do metodo
RKF e dado pela diferenca entre ambas,
e = x(t +h) x(t +h) =
6

i=1
(a
i
b
i
)F
i
(10.35)
e, portanto, e pode ser usado para se monitorar o comportamento do algoritmo.
O algoritmo adaptativo procura ajustar o valor do passo, h, sempre que o erro, e, tornar-se
maior do que uma toler ancia , pre-especicada. Procura-se, ent ao, uma solu cao x no intervalo
t
0
t t
1
, com x(t
0
) = x
0
. O passo do metodo pode ser alterado sempre que o erro exceder ao
ETL (Ch
5
); nesse caso, devemos reduzir o passo (pela metade, por exemplo). Note que, sempre
que o passo for reduzido, deve-se descartar os ultimos valores de t e x.
Por outro lado, a escolha de h pode ter sido muito conservadora, i.e. o valor de h e pequeno
demais para aquele problema; nesse caso, podemos aumentar h, dobrando-o, sempre que C(2h)
5
<

4
, ou seja, Ch
5
<

128
.
O algoritmo 10.2.3 ilustra o metodo de Runge-Kutta-Fehlberg, incorporando o controle do
passo apresentado.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 188
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
Algoritmo 10.2.3 Metodo de Runge-Kutta-Fehlberg
proc runge kutta fehlberg(input: h, t
0
, t
1
, x
0
, ; output: x)
% Inicializa a
i
, a
i
b
i
, c
i
, d
i
% de acordo com a tabela 10.2
n
| t1t0 |
| h |
t t
0
x x
0
k 0
while k n do
F
i
hf
_
t +c
i
h, x +

i1
j=1
d
ij
F
j
_
, i = 1, 2, . . . , 6
x x
x x +

6
i=1
a
i
F
i
e

6
i=1
(a
i
b
i
)F
i
t
1
t
if [ [ [ h[ then
h
endif

t t
if [ e [ then
h
h
2
x x
t

t
n n + 1
endif
if [ e [ <

128
then
h 2h
endif
endwhile
endproc
10.2.7 Metodos de passo m ultiplo
Os metodos da serie de Taylor e de Runge-Kutta s ao chamados de metodos de passo simples, pois
apenas x(t) e utilizado para se obter x(t +h).
Suponhamos agora que, para um conjunto de n os t
0
, t
1
, . . ., t
n
, tenhamos calculado os valores
f(t
0
, x), f(t
1
, x), . . ., f(t
n
, x). Note que o espacamento entre os nos nao e necessariamente o
mesmo. Chamando de x(t) a solu cao ao PVI (10.5), ent ao
_
tn+1
tn
x

(t)dt = x(t
n+1
) x(t
n
)
de onde podemos escrever
x(t
n+1
) = x(t
n
) +
_
tn+1
tn
f(t, x(t))dt (10.36)
Para aproximar a integral em (10.36), usaremos
_
tn+1
tn
f(t, x(t))dt h(Af
n
+Bf
n1
+Cf
n2
+Df
n3
(10.37)
onde f
i
f(t
i
, x(t
i
)), e A, B, C e D sao coecientes obtidos exigindo-se que (10.37) seja exata
sempre que o integrando seja um polinomio de grau menor ou igual a 3. Usando a base de Newton
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 189
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
para representar o espa co polinomial
3
,
_

_
p
0
(t) = 1
p
1
(t) = t
p
2
(t) = t(t + 1)
p
3
(t) = t(t + 1)(t + 2)
e tomando t
0
= 0, h = 1, podemos aproximar o membro esquerdo de (10.37) por
_
1
0
p
i
(t)dt = Ap
i
(0) + Bp
i
(1) +Cp
i
(2) +Dp
i
(3), i = 0, 1, . . . n
o que nos leva a um sistema de cinco equacoes a cinco variaveis:
_

_
Ap
0
(0) +Bp
0
(1) + Cp
0
(2) +Dp
0
(3) =
_
1
0
p
0
(t)dt
Ap
1
(0) +Bp
1
(1) + Cp
1
(2) +Dp
1
(3) =
_
1
0
p
1
(t)dt
.
.
.
.
.
.
.
.
.
Ap
3
(0) +Bp
3
(1) + Cp
3
(2) +Dp
3
(3) =
_
1
0
p
3
(t)dt
(10.38)
Como os p
i
sao conhecidos, o termo independente do sistema tem seus elementos perfeitamente
determinados:
_
1
0
1 dt = 1
_
1
0
t dt =
1
2
_
1
0
t(t + 1) dt =
5
6
_
1
0
t(t + 1)(t + 2) dt =
9
4
Podemos, portanto, escrever o sistema (10.38) na forma matricial
_

_
1 1 1 1
1 2 3
2 6
6
_

_
_

_
A
B
C
D
_

_
=
_

_
1
1
2
5
6
9
4
_

_
cuja solu cao e
A =
55
24
, B =
59
24
, C =
37
24
, D =
9
24
.
Assim, podemos escrever (10.37) como
_
tn+1
tn
f(t, x(t))dt
h
24
(55f
n
59f
n1
+ 37f
n2
9f
n3
)
e, substituindo em (10.36), temos
x
n+1
= x
n
+
h
24
(55f
n
59f
n1
+ 37f
n2
9f
n3
) (10.39)
com t
i
= t
0
+ih, 0 i n, a qual e conhecida como f ormula de Adams-Bashforth de 4
a
ordem.
De forma a aumentar a exatid ao da solu cao, a f ormula de Adams-Bashforth e usada em conjunto
com outras formulas, de maior ordem. Por exemplo, se incluirmos o termo f
n+1
na aproximacao
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 190
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
para a integral em (10.36), e descartarmos o termo f
n4
, podemos obter, de forma semelhante, a
f ormula de Adams-Moulton de 4
a
ordem,
x
n+1
= x
n
+
h
24
(9f
n+1
+ 19f
n
5f
n1
+f
n2
) (10.40)
Veja que a equa cao (10.40) n ao pode ser usada para se obter x
n+1
a partir de x
n
, pois f
n+1
e calculada em x
n+1
. Mas, se usarmos a f ormula de Adams-Bashforth (10.39) para predizer um
valor x
n+1
para x
n+1
, e usarmos (10.40) para corrigir x
n+1
(com f
n+1
f(t
n+1
, x
n+1
), obtemos
um algoritmo altamente ecaz, chamado de previsor-corretor. Inicialmente, e necessario obter
valores para x
1
, x
2
, x
3
e x
4
usualmente atraves do metodo de Runge-Kutta e, entao, estimar
x
n+1
atraves de (10.39), corrigindo essa estimativa com (10.40).
Exemplo 10.8 Considere o problema de valor inicial
y

= 1 t + 4 y
y(0) = 1
Determine um valor aproximado da solu cao y(t) com um incremento h = 0, 1 em t = 0, 4. Use as
f ormulas de quarta ordem de Adams-Bashforth, de Adams-Moulton e de predi cao-corre cao.
Solu cao: Como dados iniciais, usa-se os valores iniciais y
1
, y
2
e y
3
determinados com o auxlio
do metodo de Runge-Kutta de quarta-ordem. Em seguida, calculando os valores correspondentes
de f(t, y), obtem-se
y
0
= 1 f
0
= 5
y
1
= 1, 6089333 f
1
= 7, 3357332
y
2
= 2, 5050062 f
2
= 10, 820025
y
3
= 3, 8294145 f
3
= 16, 017658
1. Usando a formula de Adams-Bashforth, determina-se que y
4
= 5, 7836305.
2. A f ormula de Adams-Moulton leva ` a equacao
y
4
= 4, 9251275 + 0, 15 y
4
,
de onde y
4
= 5, 7942676.
3. Finalmente, usando o resultado da f ormula de Adams-Bashforth como preditor, pode-se usar
a f ormula (10.40) como corretor. O valor do preditor, y
4
= 5, 7836305, leva a f
4
= 23, 734522
e, de acordo com a equacao (10.39), o valor corrigido de y
4
e 5, 7926721.
Considerando que o valor da solu cao exata no ponto t = 0, 4 seja (0, 4) = 5, 7942260, o
metodo de Adams-Bashforth, embora seja o mais simples e r apido (j a que envolve o uso de uma
unica f ormula explcita), e o menos preciso. O uso da f ormula de Adams-Moulton como corre cao
aumenta o n umero de c alculos necess arios, mas o metodo continua a ser explcito. Neste problema,
o erro no valor corrigido de y
4
(y
4
= 5, 7926721) e reduzido aproximadamente sete vezes em
rela cao ao erro no valor do preditor (y
4
= 5, 7836305). O metodo de Adams-Moulton sozinho
(y
4
= 5, 7942676) e o que fornece o resultado mais preciso, com erro 40 vezes menor que o
erro associado ao metodo preditor-corretor.

E necessario n ao esquecer, porem, que o metodo de
Adams-Moulton e implcito, o que signica que e preciso resolver uma equa cao em cada passo.
Neste problema em quest ao, a equacao e linear, de modo que a solu c ao nao e difcil de encontrar.
Entretanto, em outros problemas esta parte do processo pode ser muito mais demorada.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 191
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
10.2.7.1 Convergencia, Estabilidade e Consistencia
Todo metodo de passo m ultiplo pode ser descrito por uma equacao do tipo
a
k
x
n
+a
k1
x
n1
+. . . +a
0
x
nk
= h(b
k
f
n
+b
k1
f
n1
+. . . +b
0
f
nk
) (10.41)
onde x
0
, x
1
, . . ., x
k1
sao obtidos por algum outro metodo, e (10.41) e usada com n = k, k + 1,
. . .. A equa cao (10.41) e dita ser implcita se b
k
,= 0, pois x
n
aparecera em ambos os lados da
igualdade; caso contr ario, o metodo e dito explcito.
Um metodo de passo m ultiplo denido por (10.41) e dito ser convergente se
lim
h0
x(h, t) = x(t) (10.42)
com t xo, e h livre, para todo t num intervalo t
0
t t
m
, desde que os valores iniciais satisfa cam
a mesma equacao e f satisfa ca o teorema basico de existencia de solucao (10.2.1), i.e.
lim
h0
x(h, t
0
+nh) = x
0
, 0 n < k (10.43)
Para se analisar a estabilidade e a consistencia de um metodo de passo m ultiplo, utilizamos
dois polin omios, associados `a equa cao (10.41):
_
p(z) = a
k
z
k
+a
k1
z
k1
+. . . +a
0
q(z) = b
k
z
k
+b
k1
z
k1
+. . . +b
0
(10.44)
Ent ao, as condi coes necessarias para a estabilidade e consistencia podem ser escritas como:
Estabilidade: O metodo e dito estavel se todas as razes de p estao contidas em um disco de raio
[ z [ 1 e se cada raiz de modulo 1 e simples.
Consistencia: O metodo e dito consistente se p(1) = 0 e p

(1) = q

(1).
O teorema a seguir estabelece que a convergencia de um metodo de passo m ultiplo depende
da estabilidade e da consistencia.
Teorema 10.2.4 Um metodo de passo m ultiplo conforme a equa cao (10.41) e convergente se e
somente se ele e estavel e consistente.
A prova pode ser consultada em [10].
De posse desses resultados, podemos vericar se um metodo e convergente, como mostra o
exemplo a seguir.
Exemplo 10.9 O metodo de Milne,
x
n
x
n2
= h
_
1
3
f
n
+
4
3
f
n1
+
1
3
f
n2
_
(10.45)
e um metodo implcito, caracterizado por
_
p(z) = z
2
1
q(z) =
1
3
z
2
+
4
3
z +
1
3
cujas razes de p(z) s ao +1 e 1 (ambas simples). Como p

(z) = 2z, p

(1) = 2 e q(1) = 2, o
metodo e estavel e consistente, logo e convergente.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 192
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
10.2.7.2 Erros de truncamento
Suponha que a equacao (10.41) foi utilizada para se calcular x
n
, e que x
n1
, x
n2
, . . . sao exatos,
i.e. x
i
= x(t
i
) para i < n, onde x(t) e a solucao da equacao diferencial. Ent ao, o ETL e denido
como e = x(t
n
) x
n
. Este erro nao e devido a erros de arredondamento mas sim devido ` a
formulacao (10.41).
Podemos denir um operador funcional linear L, correspondente a (10.41), dado por
Lx =
k

i=0
(a
i
x(ih) hb
i
x

(ih)) (10.46)
assumindo, por simplicidade, k = n e t = 0. A opera cao Lx pode ser aplicada a qualquer fun cao
x diferenci avel. Representando x por uma expansao de Taylor em t = 0, L pode ser expresso por
Lx = d
0
x
0
+d
1
hx

(0) +d
2
hx

(0) +. . . (10.47)
onde os coecientes d
i
sao obtidos rearranjando os termos h, ao substituirmos na equa cao (10.46)
as express oes para x e x

, na forma de Taylor:
x(ih) =

j=0
(ih)
j
j!
x
(j)
(0)
x

(ih) =

j=0
(ih)
j
j!
x
(j+1)
(0)
resultando, ent ao, em
_

_
d
0
=

k
i=0
a
i
d
1
=

k
i=0
(ia
i
b
i
)
d
2
=

k
i=0
_
i
2
2
a
i
ib
i
_
.
.
.
d
j
=

k
i=0
_
i
j
j!
a
i

i
j1
(j1)!
b
i
_
, j = 1, 2, . . .
(10.48)
De posse desses coecientes, podemos estabelecer a ordem do erro de truncamento local.
Teorema 10.2.5 Se (10.41) e de ordem m, x IC
m+2
,
f
x
e contnua, e x
n1
, x
n2
, . . . s ao
exatos, entao
x(t
n
) x
n
=
d
m+1
a
k
h
m+1
x
(m+1)
t
nk
+O
_
h
m+2
_
e o ETL e, portanto, de ordem O
_
h
m+1
_
.
10.2.7.3 Erros de truncamento globais
Suponha que todos os c alculos foram efetuados com precis ao innita (sem erros de arredonda-
mento), e que em t
n
temos calculado o valor de x
n
, o qual difere da solu cao exata x(t
n
). Note que
x
n
e diferente de x(t
n
) pois ele e obtido por uma aproxima cao a uma serie de Taylor.
O ETG e denido como x(t
n
) x
n
, e ele nao e simplesmente a soma de todos os erros locais.
Como na itera cao usamos o valor x
n1
para aproximar x
n
, e x
n1
tem um erro, entao o processor
numerico esta, na verdade, seguindo uma curva solu cao errada. O que acontece, entao, quando
duas diferentes condi coes iniciais sao utilizadas?
Consideremos o PVI
_
x

= f(t, x)
x(0) = s
(10.49)
com f
x
=
f
x
contnua e f
x
(t, x) em 0 t T, < x < .
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 193
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
A solu cao de (10.49) e uma fun cao em t, dependente do valor inicial s, e a denotamos entao
como x(t, s); denimos, ainda, u(t) =

s
x(t, s). Podemos obter uma equa cao diferencial para u
diferenciando (10.49) em rela cao a s,
_
u

= f
x
(t, x)u
u(0) = 1
(10.50)
a qual e chamada de equacao variacional. O exemplo a seguir ilustra como obter u.
Exemplo 10.10 Determine u explicitamente no PVI
_
x

= x
2
x(0) = s
Solu cao: A derivada de f em rela cao a x e f
x
= 2x, logo a equacao variacional e
_
u

= 2xu
u(0) = 1
A solu cao do PVI e x(t) = s(1 st)
1
, logo
_
u(t)

= 2s(1 st)
1
u(t)
u(0) = 1
de onde u(t) = 1(1 st)
2
.
Os teoremas que seguem permitem estabelecer a ordem do ETG.
Teorema 10.2.6 Se f
x
, entao a solucao da equacao variacional satisfaz [ u(t) [ e
t
, para
t 0.
Prova: Por (10.50), vem
u

u
= f
x
= (t)
onde (t) 0. Integrando, vem
log [ u [ = t
_
t
0
() d
e, como t 0, a integral na equacao acima e maior ou igual a zero; conseq uentemente, log [ u [
t. Como a fun cao exponencial e crescente para t 0, [ u [ e
t
.
Teorema 10.2.7 Se a equacao (10.49) e resolvida com valores iniciais s e s+, as curvas solu cao
em t diferem de, no m aximo, [ [e
t
.
Prova: Usando o teorema do valor medio e o teorema 10.2.6,
[ x(t, s) x(t, s +) [ =

s
x(t, s +)

[ [ = [ u(t) [[ [ [ [e
t

Teorema 10.2.8 Se os erros de truncamento locais em t


1
, t
2
, . . ., t
n
nao excedem em magnitude,
entao o ETG em t
n
nao excedera (e
nh
1)(e
h
1)
1
.
Prova: Sejam
1
,
2
, . . . os ETLs associados aos pontos t
1
, t
2
, . . . Ao calcular x
2
, havia
um erro
1
na condic ao inicial e, pelo teorema 10.2.7, o efeito deste erro em t
2
e de, no m aximo,
[
1
[e
h
, ao qual e adicionado o ETL em t
2
. Logo, o ETG nesse n o e de, no m aximo, [
1
[e
h
+
2
;
por analogia, em t
3
teremos ([
1
[e
h
+
2
)e
h
+[
3
[ e, entao
n

k=1
[,
k
[e
(nk)h

n1

k=0
e
kh
=
e
nh
1
e
h
1

Teorema 10.2.9 Se o ETL e de ordem O
_
h
m+1
_
, entao o ETG e de ordem O(h
m
).
Prova: No teorema 10.2.8, seja de ordem O
_
h
m+1
_
. Como e
z
1 e de ordem O(z) e nh = t,
temos uma redu c ao de uma unidade na ordem, usando a f ormula no teorema 10.2.8.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 194
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
10.2.8 Sistemas de Equa coes Diferenciais Ordinarias
Um sistema de equa coes diferenciais ordinarias e expresso como
_

_
x

1
= f
1
(t, x
1
, x
2
, . . . , x
n
)
x

2
= f
2
(t, x
1
, x
2
, . . . , x
n
)
.
.
.
x

n
= f
n
(t, x
1
, x
2
, . . . , x
n
)
(10.51)
onde n fun coes x
1
, x
2
, . . ., x
n
devem ser determinadas. Elas s ao fun coes da vari avel independente
t e x

i
=
d
dt
x
i
. Como exemplo, considere
_
x

= x + 4y e
t
x

= x +y + 2e
t
(10.52)
cuja solu cao geral e
_
x = 2ae
3t
2be
t
2e
t
y = ae
3t
+be
t
+
1
4
e
t
onde a e b sao constantes arbitr arias. Note que (10.52) e um sistema linear em x e y.
Uma das raz oes para se utilizar um sistema (10.51) e quando temos de resolver uma EDO
n ao-linear. Suponha
y
(n)
= f(t, y, y

, . . . , y
(n1)
)
com y
(i)
=
d
i
dt
i
y. Escrevendo
x
1
= y, x
2
= y

, x
3
= y

, . . . , x
n
= y
n1
temos
_

_
x

1
= x
2
x

2
= x
3
x

3
= x
4
.
.
.
x

n
= f(t, x
1
, x
2
, . . . , x
n
)
Tal substitui cao de vari aveis e necessaria em muitos casos, de forma a poder utilizar algum
software que nao resolve uma EDO n ao-linear, porem oferece a solucao de sistemas de EDOs.
Vejamos alguns exemplos:
Exemplo 10.11 Obtenha o sistema de EDOs correspondente `a equacao
sen(t)y

+ cos(ty) + sen(t
2
+y

) + (y

)
3
= log t
Solu cao: Introduzindo as variaveis x
1
= y, x
2
= y

e x
3
= y

, temos
_
_
_
x

1
= x
2
x

2
= x
3
x

3
= (log t x
3
2
sen(t
2
+x
3
cos(tx
1
))(sent)
1
Exemplo 10.12 Converta o sistema de EDOs n ao-linear abaixo para um sistema de EDOs line-
ares:
_
(x

)
2
+te
y
+y

= x

x
y

cos(xy) + sen(tx

y) = x
Solu cao: Introduzindo as variaveis x
1
= x, x
2
= x

, x
3
= y e x
4
= y

, temos
_

_
x

1
= x
2
x

2
=

x
2
x
1
x
4
te
x3
x

3
= x
4
x

4
= (x
1
sen(tx
2
x
3
) + cos(x
1
x
3
))x
1
4
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 195
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
Podemos representar de maneira compacta o sistema (10.51) utilizando uma notacao matricial.
Seja entao X um vetor cujas componentes s ao x
1
, x
2
, . . ., x
n
, os quais sao fun coes de t, e F o
vetor com componentes f
1
, f
2
, . . ., f
n
. Ent ao, um PVI para sistema de EDOs pode ser escrito
como
_
X

= F(t, X)
X(t
0
) = X
0
(10.53)
10.2.8.1 Metodo da Serie de Taylor
O metodo da serie de Taylor, visto na secao 10.2.3, pode ser utilizado nesse caso, devidamente
adaptado. Escreve-se a expansao em serie para cada variavel,
x
i
(t +h) = x
i
(t) +hx

i
(t) +
h
2
2!
x

i
(t) +O(h
3
)
e, escrevendo o sistema resultante em forma matricial, vem
X(t +h) = X(t) +hX

(t) +
h
2
2!
X

(t) +O(h
2
) (10.54)
Note que as derivadas em (10.54) podem necessitar ser calculadas em uma determinada ordem,
devido a dependencias existentes entre as mesmas, no sistema considerado.
Teoricamente, as equacoes no sistema (10.54) n ao necessitam conter t explicitamente. Podemos
escreve-las na forma
x

i
= f
i
(x
0
, x
1
, . . . , x
n
)
com x
0
t cuja equa cao diferencial correspondente e x

0
= 1. O sistema (10.54) pode entao ser
escrito na forma aut onoma
X

= F(X) (10.55)
onde X = (x
0
, x
1
, . . . , x
n
)
T
. O exemplo a seguir ilustra essa tecnica.
Exemplo 10.13 Escreva o sistema
_

_
(sent)y

+ cos(ty) + sen(t
2
+y

) + (y

)
3
= log t
y(2) = 7
y

(2) = 3
y

(2) = 4
na forma aut onoma.
Solu cao: Escrevendo x
0
= t, x
1
= y, x
2
= y

e x
3
= y

, vem
_

_
x

0
= 1
x

1
= x
2
x

2
= x
3
x

3
= (log x
0
x
3
2
sen(x
2
0
+x
3
) cos(x
0
x
1
))(senx
0
)
1
com condi c ao inicial X
0
= (2, 7, 3, 4)
T
.
10.2.8.2 Metodo de Runge-Kutta
Se um sistema de EDOs em um PVI encontra-se na forma autonoma (10.55), o metodo de Runge-
Kutta de quarta ordem pode ser escrito como
X(t +h) = X(t) +
h
6
(F
1
+ 2F
2
+ 2F
3
+F
4
) (10.56)
F
1
= hF(X)
F
2
= hF
_
X +
1
2
F
1
_
F
3
= hF
_
X +
1
2
F
2
_
F
4
= hF(X +F
3
)
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 196
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
De forma similar, podemos obter varia coes dos metodos de Runge-Kutta-Fehlberg e de passo
m ultiplo para um sistema de EDOs na forma aut onoma.
10.2.9 Solu cao via decomposi cao em autovalores e autovetores
Seja um sistema de equacoes diferenciais ordinarias lineares com coecientes constantes, expresso
na forma aut onoma:
_

_
x

1
= a
11
x
1
+a
12
x
2
+. . . +a
1n
x
n
.
.
.
x

n
= a
n1
x
1
+a
n2
x
2
+. . . +a
nn
x
n
(10.57)
ou,
X

= AX (10.58)
Se procuramos obter um vetor solu cao X e tomamos como tal um vetor na forma X(t) = e
t
v,
com IR e v um vetor constante, e substitumos em (10.58), obtemos
e
t
v = e
t
Av (10.59)
e, se
Av = v
for satisfeita, entao a fun cao vetorial e
t
v e solucao de (10.58). Agora, para qual essa igualdade
e satisfeita? Os teoremas a seguir qualicam esse escalar e o vetor v.
Teorema 10.2.10 Se e um autovalor de A e v o autovetor correspondente, entao X(t) = e
t
v
e solu cao de X

= AX.
Teorema 10.2.11 Se A
nn
tem um conjunto de autovetores v
1
, v
2
, . . ., v
n
linearmente independentes,
com Av
i
=
i
v
i
, entao o espaco solu cao da equacao X

= AX tem uma base x


i
= e
it
v
i
, para
1 i n.
Se A tem a propriedade expressa no teorema 10.2.11, entao existe uma matriz n ao-singular V
cujas colunas sao os vetores v
1
, v
2
, . . ., v
n
,
V
nn
=
_

_
v
11
v
12
. . . v
1n
v
21
v
22
. . . v
2n
.
.
.
.
.
.
.
.
.
.
.
.
v
n1
v
n2
. . . v
nn
_

_
. (10.60)
Em forma matricial, podemos escrever Av
i
=
i
v
i
como
AV = V (10.61)
onde

nn
=
_

2
.
.
.

n
_

_
. (10.62)
Agora, a resolu cao da equacao (10.58) pode ser bastante simplicada se zermos a troca de
vari aveis X = V Y . Como V e nao-singular, podemos escrever
Y

= V
1
X

= V
1
AX = V
1
AV Y = Y
a qual e uma equacao muito mais simples de se resolver, dada a forma de . As equa coes em
Y

= Y sao ditas desacopladas e podem ser resolvidas separadamente, como mostra o exemplo
a seguir.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 197
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
Exemplo 10.14 Resolva o PVI X

= AX com
A =
_
_
1 0 1
0 0 0
0 0 1
_
_
, X(0) =
_
_
5
7
6
_
_
Solu cao: Os autovalores de A s ao
1
= 1,
2
= 0 e
3
= 1; seus autovetores correspondentes
s ao v
1
= (1, 0, 0)
T
, v
2
= (0, 1, 0)
T
e v
3
= (1, 0, 2)
T
. Logo,
V =
_
_
1 0 1
0 1 0
0 0 2
_
_
, V
1
=
_
_
1 0
1
2
0 1 0
0 0
1
2
_
_
Se Y = (y
1
, y
2
, y
3
)
T
, entao Y

= Y , com
=
_
_
1 0 0
0 0 0
0 0 1
_
_
= V
1
AV
de onde podemos escrever:
_
_
_
y

1
= y
1
y

2
= 0
y

3
= y
3
, Y (0) = V
1
X(0) =
_
_
8
7
3
_
_
cuja solu cao e
y
1
= 8e
t
, y
2
= 7, y
3
= 3e
t
.
Como X = V Y , a solu c ao e, por m,
x
1
= 8e
t
3e
t
, x
2
= 7, x
3
= 6e
t
.
10.2.9.1 O expoente de uma matriz
A solu cao da equacao (10.58) pode ser expressa atraves da forma e
A
, a qual e denida como
e
A
= I +A +
1
2!
A
2
+
1
!
A
3
+. . . (10.63)
e, para t IR, ent ao tA = At, de onde
e
At
=

k=0
t
k
k!
A
k
(10.64)
e, diferenciando em rela cao a t, temos
d
dt
e
At
= Ae
At
(10.65)
Assim, a solucao do problema (10.5) e
X(t) = e
At
X(0) (10.66)
Se a matriz A for diagonaliz avel, i.e., AV = V , com V e denidos conforme (10.60) e
(10.62), ent ao a solu cao de (10.5) pode ser escrita como
X = V Y = V
_
e
t
V
1
X(0)
_
= V
_

_
e
1t
e
2t
.
.
.
e
nt
_

_
V
1
X(0) (10.67)
Em caso contr ario, uma an alise atraves da forma de Jordan da matriz A deve ser realizada.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 198
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
10.2.10 Equa coes rgidas
A rigidez em um sistema de equacoes diferenciais refere-se a uma grande disparidade nas escalas
de tempo dos componentes do vetor solu cao. Como conseq uencia, metodos numericos que s ao
satisfat orios para outros sistemas, normalmente falham em sistemas rgidos; isto acontece quando
a estabilidade no processo numerico ocorre apenas quando passos de integra cao muito pequenos
podem ser empregados. Tais sistemas surgem em diferentes areas de aplica cao:
Controle de naves espaciais: a trajet oria de voo para re-entrada na atmosfera deve ser suave,
mas rapidas corre coes devem ser feitas caso ocorrer qualquer desvio;
Monitora cao de processos qumicos: quaisquer mudancas de natureza fsica e qumica podem
ter uma grande varia cao nas escalas de tempo envolvidas;
Circuitos eletr onicos: transientes da ordem de microssegundos sao impostos ao circuito como
um todo.
Como exemplo, vejamos o comportamento do metodo de Euler (10.13) para o problema
_
x

= x
x(0) = 1
(10.68)
o qual pode ser escrito, nesse caso, como
x
n+1
= x
n
+hx
n
= (1 +h)x
n
, x
0
= 1 (10.69)
Ent ao, na n-esima iteracao,
x
n
= (1 +h)
n
(10.70)
mas a solucao de (10.68) e
x(t) = e
t
a qual tende a zero, se < 0, quando t tende a innito. Ora, a equa cao (10.70) so tende a zero
se e somente se [ 1 + h[ < 1. Somos, ent ao, obrigados a escolher h tal que 1 + h > 1; como
< 0, temos que h < 2/.
Por exemplo, se = 20, h < 0, 1, apesar da solu cao que queremos obter ser praticamente
plana (e quase zero) imediatamente ap os t = 0, quando x = 1 (note que x(t) = e
20t
2, 1
10
9
[ t 1). O metodo de Euler, ent ao, proceder a com passos pequenos, quando o problema
indica que passos grandes devem ser tomados isso e um aspecto que caracteriza a rigidez do
problema. A fun cao e
20t
e dita transiente porque seu efeito fsico e de pouca dura cao (pois decai
rapidamente para zero). Desejamos entao um procedimento numerico que permita acompanhar
fun coes transientes com passos pequenos ate que o efeito transiente seja desprezvel, quando ent ao
passos grandes podem ser tomados.
J a o metodo implcito de Euler, denido por
x
n+1
= x
n
+hf(t
n+1
, x
n+1
), n 0 (10.71)
apresentar a, para esse problema, uma restri cao que e satisfeita para quaisquer valores de h > 0.
Para o problema em questao, o metodo implcito e escrito como
x
n+1
= x
h
+hx
n+1
, x
0
= 1
ou
x
n+1
= (1 h)
1
x
n
de onde, na n-esima iteracao,
x
n
= (1 h)
n
e, para < 0, e necessario satisfazer [ 1 h[
1
< 1, o que e verdadeiro para qualquer valor
positivo de h.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 199
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
10.3 Problemas de Valor de Fronteira
Um problema de valor de fronteira (PVF) caracteriza-se pela especica cao de valores para a fun cao
x(t) nos extremos do intervalo de integra cao em t,
_
x

= f(t, x, x

)
x(a) = , x(b) =
(10.72)
Esse tipo de problema e mais difcil de ser resolvido do que um PVI, conforme veremos a seguir.
Para um PVI, havamos assumido que, se a funcao x(t) fosse suave, entao provavelmente
(sujeito tambem a outras condi coes), o problema teria solu cao. Em um PVF, no entanto, isto n ao
se aplica, como pode-se ver no exemplo a seguir.
Exemplo 10.15 Considere o PVF
_
x

= x

x(0) = 3, x() = 7
(10.73)
cuja solu cao e x(t) = Asent +Bcos t. Usando essa express ao e igualando aos valores especicados
para x, vem
_
3 = x(0) = Asen0 +Bcos 0 = B
7 = x() = Asen +Bcos = B
o que e uma contradi c ao e, logo, o PVF (10.73) n ao tem solucao, apesar de f ser uma fun cao
suave.
O teorema a seguir, por Keller (1968), fala da existencia de solucao de um PVF escrito numa
forma bastante particular.
Teorema 10.3.1 O problema de valor de fronteira
_
x

= f(t, x)
x(0) = 0, x(1) = 0
tem solu cao unica se
f
x
e contnua, n ao-negativa, e limitada na tira 0 t 1, < x < .
Considere ent ao o exemplo a seguir:
Exemplo 10.16 O PVF
_
x

= (5x + sen(3x))e
t
x(0) = x(1) = 0
tem solu cao unica, pois
f
x
= (5 + 3 cos(3x))e
t
, a qual e contnua em 0 t 1, < x < .
Alem disso, e limitada por 8e e nao assume valores negativos, pois 3 cos(3x) 3.
O teorema 10.3.1 apresenta o PVF em uma forma bastante particular. A m de podermos
utiliz a-lo para problemas mais gerais, e necessario fazer uma troca de variaveis. Considere, ent ao,
o PVF
_
x

= f(t, x)
x(a) = , x(b) =
(10.74)
com x = x(t). Escrevendo t = a + (b a)s, reduzimos (10.74) ` a forma requerida pelo teorema
10.3.1 (note que s = 0 corresponde a t = a e s = 1 a t = b). Escrevendo, agora,
y(s) = x(a +s)
com = b a, obtemos
y

= x

(a +s)
y

=
2
x

(a +s)
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 200
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
e y(0) = x(a) = , y(1) = x(b) = . Ent ao, se x e solucao de (10.74), y e solucao de
_
y

(s) =
2
f(a +s, y(s))
y(0) = , y(1) =
(10.75)
e, se y e solucao de (10.75),
x(t) = y
_
t a
b a
_
e solucao de (10.74), conforme o teorema a seguir.
Teorema 10.3.2 Considere os seguintes PVF:
_
x

= f(t, x)
x(a) = , x(b) =
(10.76)
_
y

= g(t, y)
y(0) = , y(1) =
(10.77)
onde g(p, q) = (b a)
2
f(a + (b a)p, q). Entao, se y e solu cao de (10.77),
x(t) = y
_
t a
b a
_
e solu cao de (10.76); e, se x e solu c ao de (10.76), ent ao
y(a + (b a)t)
e solu cao de (10.77).
Prova:
x(a) = y
_
a a
b a
_
= y(0) =
x(b) = y
_
b a
b a
_
= y(a) =
x

(t) = y

_
t a
b a
_
1
b a
x

(t) = y

_
t a
b a
_
1
(b a)
2
= g
_
t a
b a
, y
_
t a
b a
__
1
(b a)
2
= (b a)
2
f
_
a + (b a)
t a
b a
, y
_
t a
b a
__
1
(b a)
2
= f(t, x(t))
A seguir, veremos alguns dos metodos disponveis para resolver um PVF.
10.3.1 Metodo do disparo
Considere o problema (10.72). Uma maneira de resolve-lo e atraves da resolucao do problema
(relacionado) de valor inicial
_
x

= f(t, x, x

)
x(a) = , x

(a) = z
(10.78)
e integrar a equa cao no intervalo a t b, a m de obter uma solu cao aproximada, na esperan ca
de que x(b) = . Se tal n ao ocorrer, a estimativa para x

(a) pode ser modicada, e o processo de


integra cao repetido novamente.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 201
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
A solu cao de (10.78) e x
z
, onde o subscrito em z indica a derivada. A ideia, aqui, e relacionar
z tal que x
z
(b) = . Escrevendo
(z) = x
z
(b) (10.79)
podemos reduzir o problema de resolver (10.72) a encontrar a raiz da fun cao n ao-liner (z), para
o qual metodos como o da bisseccao, secante e de Newton (vide Captulo 2) podem ser utilizados.
Note, no entanto, que a fun cao e custosa de se avaliar, pois envolve a solu cao de um PVI! Por
isso, deve-se procurar minimizar seu impacto no metodo como um todo, por exemplo, utilizando
passos de integra cao pequenos apenas quando (z) e pr oximo de zero.
Para problemas lineares, o metodo da secante obtem a solucao exata em uma unica itera cao.
Se o PVF tiver a forma
_
x

= u(t) +v(t)x +w(t)x

x(a) = , x(b) =
(10.80)
com u, v e w func oes contnuas em a x b. Suponha que (10.80) foi resolvida para duas
condi coes iniciais diferentes, obtendo solucoes x
1
e x
2
,
_
x
1
(a) = , x

1
(a) = z
1
x
2
(a) = , x

2
(a) = z
2
(10.81)
Combinando linearmente x
1
e x
2
, temos
y(t) = x
1
(t) + (1 )x
2
(t) (10.82)
com um par ametro. Note que y(a) = , satisfazendo uma das condicoes de (10.81) (independente
do valor de ). Para a outra condi cao, selecionamos tal que y(b) = , i.e.
= y(b) = x
1
(b) + (1 )x
2
(b)
=
x
2
(b)
x
1
(b) x
2
(b)
(10.83)
Assim, podemos obter ambas as solucoes ao mesmo tempo, resolvendo dois PVI simultaneamente:
_
x

= f(t, x, x

)
x(a) = , x

(a) = 0
_
x

= f(t, x, x

)
x(a) = , x

(a) = 1
onde f(t, x, x

) = u(t) +v(t)x + w(t)x

, cujas solu coes sao x


1
e x
2
, respectivamente. Procedemos
ent ao ` a formula cao de um sistema de EDOs na forma autonoma,
_

_
x
0
= 1
x

1
= x
3
x

2
= x
4
x

3
= f(x
0
, x
1
, x
3
)
x

4
= f(x
0
, x
2
, x
4
)
(10.84)
e, para resolvermos (10.80), executamos os seguintes passos:
1. Resolver (10.84), com os valores discretos de x
1
(t
i
) e x
2
(t
i
) para a t
0
t
i
t
m
= b, os
quais devem ser armazenados em vetores;
2. Calcular o valor de por (10.83);
3. Calcular y(t
i
) por (10.82), para cada t
i
.
O teorema a seguir enuncia a solu cao do PVF linear.
Teorema 10.3.3 Se o PVF linear tem solu cao, ent ao x
1
e uma solu cao, ou x
1
(b) x
2
(b) ,= 0 e
y e uma solu cao.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 202
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
10.3.2 Metodo de Newton
O metodo de Newton (vide secao 2.4) pode ser usado para resolver o PVF nao-linear. Seja x
z
a
solu cao do problema
_
x

z
= f(t, x
z
, x

z
)
x
z
(a) = , x

z
(a) = z
(10.85)
e z e tal que (z) = x
z
(b) = 0. Relembrando, a equacao governante do metodo de Newton
para a fun cao e
z
n+1
= z
n

(z
n
)

(z
n
)
(10.86)
A derivada

e determinada diferenciando parcialmente com respeito a z as fun coes componentes


em (10.85):
_
xz
z
=
f
t
t
z
+
f
xz
xz
z
+
f
x

z
x

z
z

z
x
z
(a) = 0,

z
x

z
(a) = 1
(10.87)
Introduzindo a vari avel v =
xz
z
e simplicando, vem
_
v

= f
xz
(t, x
z
, x

z
)v +fx

z
(t, x
z
, x

z
)v

v(a) = 0, v

(a) = 1
(10.88)
a qual e denominada de primeira equa cao variacional. A equa cao (10.88) pode ser resolvida, a
cada itera cao, juntamente com a equacao (10.85). Ao nal, v(b) sera obtida, i.e.
v(b) =
x
z
(b)
z
=

(z)
10.3.3 Metodo da coloca cao
O metodo da colocacao e aplic avel a muitos problemas. Suponha que e dado um operador linear
L (integral ou diferencial) e desejamos resolver a equacao
Lu = w (10.89)
com w conhecido. Procuramos, ent ao, resolve-la selecionando um conjunto de vetores V = v
1
,
v
2
, . . ., v
n
e, combinando-os linearmente, obter a solucao u, na forma
u = c
1
v
1
+c
2
v
2
+. . . +c
n
v
n
(10.90)
Como L e um operador linear, podemos escrever
Lu =
n

j=1
c
j
Lv
j
logo,
n

j=1
c
j
Lv
j
= w (10.91)
De forma geral, usualmente n ao podemos resolver (10.91) e obter os coecientes c
i
; porem,
podemos exigir que os dois termos em (10.91) sejam identicos em determinados pontos. No metodo
da colocacao, os vetores u, w e v
j
sao fun coes no mesmo domnio, e temos
n

j=1
c
j
(Lv
j
)(t
i
) = w(t
i
), 1 i n (10.92)
o qual reduz-se a um sistema de n equa coes lineares. As fun coes v
j
e os pontos t
i
devem ser
escolhidos tal que a matriz cujas entradas s ao (Lv
j
)(t
i
) seja nao-singular.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 203
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
Podemos usar diferentes fun coes para calcular os vetores v
j
, porem as chamadas B-splines
sao bastante adequadas. Suponha um problema na forma
_
u

+pu

+qu = w
u(a) = , u(b) =
(10.93)
onde Lu = u

+ pu

+ qu. Como necessitamos de funcoes com as primeira e segunda derivadas


contnuas, vamos considerar aqui as B-splines B
k
i
c ubicas, apesar de nada impedir que se usem
aquelas de grau k maior. Assumimos, tambem, que os nos t
i
da B-spline s ao igualmente
espacados: t
i+1
t
i
= h, e os nos ser ao os pontos de coloca cao.
Seja n o n umero de fun coes a serem usadas e, portanto, o n umero de coecientes a serem
determinados; logo, necessitamos de n condi coes para determina-los. O problema (10.93) apresenta
duas condi coes de fronteira, as quais devem satisfazer
n

j=1
c
j
(Lv
j
)(a) = ,
n

j=1
c
j
(Lv
j
)(b) = (10.94)
Para as demais n 2 condi coes, temos
n

j=1
c
j
(Lv
j
)(t
i
) = w(t
i
), 1 i n 2 (10.95)
e podemos, entao, denir
h =
b a
n 3
(10.96)
t
i
= a + (i 1)h, i = 0, 1, 2, . . . (10.97)
Os n os t
i
pertencentes ao intervalo [a, b] sao
a = t
1
< t
2
< . . . < t
n3
< t
n2
= b
os quais sao os pontos de colocac ao. Para denirmos as B-splines B
3
j
, necessitamos de alguns
pontos fora do intervalo [a, b] os quais, por (10.97), encontram-se dispostos assim:
t3 < t2 < t1 < t0 <
a
t1
< t2 < t3 < . . . < tn4 < tn3 <
b
tn2
< tn2 < tn2 < tn1 < tn < tn+1
Ora, as B-splines c ubicas tem a forma segundo a gura 10.2, e estamos interessados naquelas
Figura 10.2: Forma das B-splines c ubicas.
que n ao sao identicamente nulas no intervalo [a, b], as quais s ao as B-splines B
3
2
, B
3
1
, B
3
0
, B
3
1
,
. . ., B
3
n3
. Assim, podemos escrever
v
j
= B
3
j3
, 1 j n.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 204
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
Como utilizamos espacamento igual entre os n os, podemos deni-las atraves de uma unica
formulacao, B
3
(t), dada por
B
3
(t) =
_

_
(t+2)
3
6
, 2 t 1
1+3(t+1)+3(t+1)
2
3(t+1)
3
6
, 1 t 0
1+3(1t)+3(1t)
2
3(1t)
3
6
, 0 t 1
(2t)
3
6
, 1 t 2
0, c.c.
(10.98)
a qual tem a forma
Figura 10.3: B-spline c ubica: (a) (t + 2)
3
)/6, (b) (1 + 3(t + 1) + 3(t + 1)
2
3(t + 1)
3
)/6, (c)
(1 + 3(1 t) + 3(1 t)
2
3(1 t)
3
)/6, (d) ((2 t)
3
)/6.
O exemplo a seguir mostra como obter os n os.
Exemplo 10.17 Suponha que desejamos obter m pontos de colocacao, com m = 4. Como dois
pontos extras sao dados pelas condicoes de fronteira, teremos quatro pontos internos e, como cada
B-spline c ubica necessita de cinco pontos, teremos de obter dois pontos a mais em cada extremo
do intervalo [a, b]. Como m = 6, teremos n = 8 pontos, de onde h = 1/5 e os nos ser ao:
i 1 0 1 2 3 4 5 6 7 8
t
i
2/5 1/5 0 1/5 2/5 3/5 4/5 1 6/5 7/5
10.3.4 Derivacao numerica
Um problema num domnio contnuo pode ser discretizado de forma que as variaveis dependentes
sejam consideradas existentes apenas para pontos discretos. Desta maneira, as derivadas sao
aproximadas por diferen cas. O metodo de diferen cas nitas e baseado em algumas propriedades
da serie de Taylor e em aplicacoes diretas da deni cao de derivadas. Ele e o mais antigo dos
metodos aplicados na obten cao de solu coes numericas de equacoes diferenciais. A ideia deste
metodo de aproxima cao e bastante simples.
Como exemplo, toma-se a derivada de uma funcao f(x) no ponto x, que e denida por
f

(x) = lim
h0
f(x +h) f(x)
h
. (10.99)
Se h e sucientemente pequeno, a express ao do lado direito e uma aproximacao para o valor
exato de f

(x). Esta aproxima cao pode ser melhorada com a reducao de h. Entretanto, para
qualquer valor nito de h, um erro, que tende a zero para h tendendo a zero, e introduzido. Este
e o chamado erro de truncamento. A potencia de h com a qual ele tende a zero e chamada de
ordem da aproximacao a diferen cas e pode ser obtida atraves de um desenvolvimento em serie de
Taylor de f(x +h) em torno do ponto x. Desenvolvendo f(x +h), obtem-se
f(x +h) = f(x) +hf

(x) +
h
2
2
f

(x) +. . . (10.100)
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 205
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
e portanto,
f(x +h) f(x)
h
= f

(x) +
h
2
f

(x) +. . . . (10.101)
Diz-se que essa aproxima cao para f

(x) e de primeira ordem em h e escreve-se


f

(x) =
f(x +h) f(x)
h
+O(h), (10.102)
indicando que o erro de truncamento e de O(h), isto e, tende a zero quando h tende a zero.
Para entender como estas formulas sao aplicadas na aproxima cao das derivadas considera-se
uma discretiza cao do eixo x. O domnio contnuo e substitudo por um conjunto discreto de n+1
pontos x
i
, i = 0, 1, . . . , n, com espacamento constante e igual a h entre os pontos, conforme repre-
sentacao na gura 10.4. Denota-se por f
i
os valores da fun cao f(x) nos pontos x
i
= ih (ou seja,
f
i
e igual a f(x
i
)).

x h x x +h
i 1 i i + 1
Figura 10.4: Representacao esquematica dos pontos no eixo das abscissas.
As seguintes aproximacoes em diferencas nitas podem ser denidas para a primeira derivada
no ponto x = x
i
, f

(x)
i
:
f

i
=
f
i+1
f
i
h
+O(h), (10.103)
f

i
=
f
i
f
i1
h
+O(h). (10.104)
A primeira formula e denominada diferen ca ascendente e a segunda, diferen ca descendente.
Ambas sao aproxima coes de primeira ordem para f

(x)
i
. Outras f ormulas, com diferentes ordens
de aproximacao, podem ser obtidas. A mais comum e a de segunda ordem, obtida conforme
descricao abaixo.
Fazendo duas expans oes diferentes em serie de Taylor para a primeira derivada,
f(x +h) = f(x) +hf
x
(x) +
h
2
2
f

(x)(x) +. . . (10.105)
e
f(x h) = f(x) hf
x
(x) +
h
2
2
f

(x) +. . . , (10.106)
e subtraindo (10.106) de (10.105), obtem-se
f

(x) =
f(x +h) f(x h)
2h
+O(h
2
), (10.107)
que e uma aproximacao de segunda ordem para f

(x). Na nota cao de diferen cas nitas, esta


expressao ca
f

i
=
f
i+1
f
i1
2h
+O(h
2
), (10.108)
cuja ordem de precis ao e maior do que em (10.103) e (10.104).
Uma ilustra cao gr aca para os tres tipos de aproxima coes para a derivada de primeira ordem,
dados por (10.103), (10.104) e (10.108), e fornecida pela gura (10.5).
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 206
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
Figura 10.5: Ilustra cao gr aca para as derivadas de primeira ordem [8].
Ainda, para exemplicar outras f ormulas de diferen cas nitas, s ao apresentadas as aproxima-
coes centrais de segunda ordem para as derivadas abaixo:
f
(2)
i
=
f
i+1
2 f
i
+f
i1
h
2
+O(h
2
), (10.109)
f
(3)
i
=
f
i+2
2 f
i+1
+ 2 f
i1
fi 2
2 h
3
+O(h
2
), (10.110)
f
(4)
i
=
f
i+2
4 f
i+1
+ 6 f
i
4 f
i1
+f
i2
h
4
+O(h
2
), (10.111)
Na verdade, f ormulas em diferen cas para a aproxima cao de derivadas podem ser construdas
com um n umero arbitr ario de pontos adjacentes. Na pr atica, em qualquer esquema numerico, e
preciso fazer o balan co entre a ordem de precisao e o n umero de pontos simultaneamente envolvidos
nos calculos.
Exemplo 10.18 A partir dos valores abaixo, calcular f

(1, 4) usando diferen cas ascendentes,


descendentes e centrais.
x 1, 2 1, 3 1, 4 1, 5 1, 6
f(x) 1, 5095 1, 6984 1, 9043 2, 1293 2, 3756
1. Diferen cas ascendentes:
f

(1, 4) =
f(1, 5) f(1, 4)
0, 1
= 2, 2500
2. Diferen cas descendentes:
f

(1, 4) =
f(1, 4) f(1, 3)
0, 1
= 2, 059
3. Diferen cas centrais:
f

(1, 4) =
f(1, 5) f(1, 3)
2 0, 1
= 2, 1545
Exemplo 10.19 Seja f(x) = cos x. Calcule aproxima coes para f

(0, 8) com h = 0, 1, h = 0, 01,


h = 0, 001. Utilize 9 casas decimais em seus c alculos. Depois, compare com o valor real f

(0, 8) =
cos 0, 8.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 207
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
10.3.5 Solu cao por diferencas-nitas
Considere novamente o problema (10.72). Podemos resolve-lo se substituirmos as derivadas por
aproximacoes em diferencas-nitas, conforme visto anteriormente.
Para tanto, particionamos o intervalo [a, b] nos pontos t
i
,
a = t
0
< t
1
< . . . < t
n
< t
n+1
= b
espacados igualmente entre si, i.e.
t
i
= a +ih, h =
b a
n + 1
, 0 i n + 1
Denotando o valor aproximado x(t
i
) por y
i
, podemos reescrever o problema (10.72) na forma
discreta
_

_
y
0
=
yi12yi+yi+1
h
2
= f
_
t
i
, y
i
,
yi+1yi1
2h
_
, 1 i n
y
n+1
=
(10.112)
onde as derivadas y

e y

sao aproximadas por aproxima coes centrais, conforme as equa coes


(10.108) e (10.109).
De forma geral, o problema (10.112) reduz-se a um sistema nao-linear de equa coes, como pode
ser visto no exemplo a seguir.
Exemplo 10.20 Suponha f(t, x, x

) = x
t
+ 2x

. Usando (10.112), para n = 2, temos:


_

_
y
0
=
y
0
2y
1
+y
2
= h
2
_
y
t1
1
+ 2
_
y2y0
2h
__
y
1
2y
2
+y
3
= h
2
_
y
t2
2
+ 2
_
y3y1
2h
__
y
3
=
e, procedendo `as substitui coes possveis, chegamos ao seguinte sistema nao-linear de equa coes:
_

_
1
(2 +h
2
) (1 h)
(1 +h) (2 +h
2
)
1
_

_
_

_
y
0
y
t1
1
y
t2
2
y
3
_

_
=
_

((1 +h)
(h 1)

_
o qual deve ser resolvido atraves de um metodo especco como, por exemplo, o metodo de Newton.
10.3.5.1 O caso linear
Se o PVF e da forma (10.80), ent ao o sistema (10.112) reduzir-se- a a um conjunto de equa coes
lineares, as quais podem ser escritas como
_
_
_
y
0
=
a
i
y
i1
+d
i
y
i
+c
i
y
i+1
= b
i
1 i n
y
n+1
=
(10.113)
com
u
i
= u(t
i
)
v
i
= v(t
i
)
w
i
= w(t
i
)
a
i
= 1
h
2
w
i+1
d
i
= 2 +h
2
v
i
c
i
= 1 +
h
2
w
i
b
i
= h
2
u
i
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 208
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
o que nos permite escrever o sistema de equacoes lineares como
_

_
d
1
c
1
a
1
d
2
c
2
a
2
d
3
c
3
.
.
.
.
.
.
.
.
.
a
n2
d
n1
c
n1
a
n1
d
n
_

_
_

_
y
1
y
2
y
3
.
.
.
y
n1
y
n
_

_
=
_

_
b
1
a
0

b
2
b
3
.
.
.
b
n1
b
n
c
n

_
(10.114)
o qual apresenta as seguintes caractersticas:
1.

E tridiagonal;
2. Se h e pequeno e v
i
> 0, ent ao (10.114) e diagonal dominante, pois
[ 2 +h
2
v
i
[ >

1 +
h
2
w
i

1
h
2
w
i

= 2,
assumindo que [ hw
i
/2 [ 1.
3.
[ d
i
[ [ c
i
[ [ a
i1
[ = 2 +h
2
v
i

_
1
h
2
w
i
_

_
1 +
h
2
w
i
_
= h
2
v
i
10.4 Exerccios
Exerccio 10.1 O n ucleo radioativo do plut onio decai de acordo com a equacao diferencial
d Q
d t
= 0, 0525 Q
Se 50 mg de plutonio 241 estiverem presentes numa amostra no dia de hoje, determine quanto
plut onio existir a daqui a 2 anos. Considere h = 1 e h = 0, 5. Discuta seus resultados.
Exerccio 10.2 Um capital de R$1000, 00 e depositado em uma conta. Sabendo que sobre ele
incide uma taxa de 10% de juros compostos ao ano, determine qual ser a o saldo na conta ao nal
de 5 anos.
Exerccio 10.3 Em psicologia, a lei de Weber-Fechner para a resposta-estmulo diz que a taxa
de variac ao
d R
d S
da reacao R e inversamente proporcional ao estmulo. O valor inicial e o nvel
mnimo de estmulo que pode ser consistentemente detectado. O problema de valor inicial para
este modelo e
R

=
k
S
R(s
0
) = 0
Suponha que s
0
= 0, 1 e use o metodo de Heun com h = 0, 1 para resolver
R

=
1
S
R(0, 1) = 0
no intervalo [0, 1; 0, 5].
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 209
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
Exerccio 10.4 Usar o metodo de Taylor de 4
a
ordem para resolver
_
x

= cos t senx +t
2
x(1) = 3
com h = 10
2
, t
0
= 1, t
1
= 1 e x
0
= 3. Apos, usar a solu cao obtida como um novo valor de x
0
,
e repetir o processo, desta vez com x
0
= 10
2
. Explique o que ocorre.
Exerccio 10.5 Um paraquedista salta de um avi ao e ate o momento que ele abre o p ara-quedas,
a resistencia do ar e proporcional a v
3
2
. Assuma que o intervalo de tempo e [0, 2] e que a equacao
diferencial para a dire cao vertical e
v

= 32 0, 032 v
3
2
v(0) = 0
Use o metodo de Taylor de segunda ordem com h = 0, 5 e encontre a solu cao para este problema.
Exerccio 10.6 Assuma que a curva P(t) para uma determinada popula cao obede ca a equacao
diferencial para uma curva logstica P

= a P b P
2
. Seja t o tempo em anos e h = 10 o passo.
Os valores a = 0, 02 e b = 0, 00004 produzem um modelo para a popula cao. Considerando que no
ano de 1990 a populacao era 76, 1 milh oes, obtenha, usando o metodo de Heun, uma estimativa
para esta popula cao no ano de 2010.
Exerccio 10.7 Resolva o exerccio 10.4 usando o metodo de Runge-Kutta de 2
a
ordem.
Exerccio 10.8 Resolva o exerccio 10.4 usando o metodo de Runge-Kutta de 4
a
ordem.
Exerccio 10.9 Use o metodo de Runge-Kutta 4
a
ordem para resolver
_
x

= e
xt
+ cos(x t)
x(1) = 3
com h = 0, 01. Apresente o ultimo valor para x antes de ocorrer overow.
Exerccio 10.10 Supondo o metodo de Runge-Kutta de 3
a
ordem,
x(t +h) = x(t) +
1
9
(2F
1
+ 3F
2
+ 4F
3
)
F
1
= hf(t, x)
F
2
= hf
_
t +
1
2
h, x +
1
2
F
1
_
F
3
= hf
_
t +
3
4
h, x +
3
4
F
2
_
mostre que, para x

= x +t, ele e equivalente ao metodo de Taylor de 3


a
ordem.
Exerccio 10.11 Em uma rea cao qumica, uma molecula de A se combina com uma molecula de
B para formar uma molecula do produto qumico C. Sabe-se que a concentracao, y(t), no tempo
t, e a solu cao do problema de valor inicial:
y

= k (a y) (b y)
y(0) = 0
onde k e uma constante positiva e a e b s ao as concentracoes iniciais de A e de B, respectivamente.
Suponha que k = 0, 01, a = 70 milimoles/litro e b = 50 milimoles/litro. Use os metodos de Runge-
Kutta de ordem N = 2 e N = 4 com h = 0, 5 para encontrar a solu cao em [0, 2].
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 210
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Ordin arias
Exerccio 10.12 Resolva o PVI
_
x

= x
2
x(0) = 1
no intervalo 0 t 2 usando o metodo de Runge-Kutta-Fehlberg. Compare com a solu cao
analtica dada por x(t) = (1 t)
1
. Explique o que ocorre perto da discontinuidade em t = 1,
quando se usa o algoritmo 10.2.3.
Exerccio 10.13 Determine as caractersticas numericas do metodo de passo m ultiplo cuja equa-
cao e
x
n
+ 4x
n1
5x
n2
= h(4f
n1
+ 2f
n2
)
Exerccio 10.14 Resolva o sistema
_
x

1
= senx
1
+ cos(tx
2
)
x

2
= sen(tx
1
)t
1
, x
1
(1) = 2, 37, x
2
(1) = 3, 48
usando o metodo de Euler, para 1 t 1 e h = 0, 01.
Exerccio 10.15 Seja o sistema
_
x

1
= (1 9c
2
+ 12sc)x
1
+ (12c
2
+ 9sc)x
2
x

2
= (12s
2
+ 9s)x
1
+ (1 9s
2
12sc)x
2
, x
1
(0) = 2, x
2
(0) = 1
onde c = cos(6t), s = sen(6t). Para 0 t 10, h = 0, 01, responda:
1. Compare a solu c ao numerica com a solu cao analtica,
_
x
1
= e
13t
(s 2c)
x
2
= e
13t
(2s +c)
2. Recalcule a solu c ao numerica, para 0, 01 t 10 e 0, 02 t 10. Houve diferen ca da
solu cao obtida no item 1? Explique.
Exerccio 10.16 Uma das equacoes basicas dos circuitos eletricos e
L
d i
d t
+Ri = E
onde L e a indutancia, R e a resistencia, i e a corrente e E, a for ca eletromotriz. Considere
L = 3 H, R = 15 , E = 110 V e i = 0 quando t = 0. Determine o valor da corrente quando
t = 0, 5 s, tomando h = 0, 1 s e usando o metodo de predi cao-corre cao de quarta ordem.
Exerccio 10.17 Um exemplo de um sistema de equa coes diferenciais n ao lineares e o modelo
presa-predador. Seja x(t) a populacao de coelhos no tempo t e y(t) a de raposas. O modelo
presa-predador exige que x(t) e y(t) satisfa cam
x

= Ax Bxy
y

= C xy Dy
Para ns de simulac ao numerica, pode-se considerar os coecientes:
A = 2 B = 0, 02 C = 0, 0002 D = 0, 8,
Use o metodo de Runge-Kutta para resolver a equa cao diferencial no intervalo [0, 5] se
1. x(0) = 3000 coelhos e y(0) = 120 raposas;
2. x(0) = 5000 coelhos e y(0) = 100 raposas.
Exerccio 10.18 Resolva o PVF linear
_
x

= e
t3
+ (t
2
+ 2)x + (sent)x

x(2, 6) = 7, x(5, 1) = 3
usando as equa coes (10.80)-(10.84). O PVI associado dever a ser resolvido pelo metodo de Runge-
Kutta-Fehlberg.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 211
Captulo 11
Solu cao Numerica de Equa coes
Diferenciais Parciais
11.1 Introdu cao
Uma equacoes diferencial parcial (EDP) pode ser escrita na forma geral
a

x
2
+ b

2

xy
+ c

y
2
+ d

x
+ e

y
+ f + g = 0 (11.1)
onde a, b, c, d, e, f e g podem ser fun coes das vari aveis independentes x e y e da vari avel dependente
, em uma regiao no plano R
2
, em coordenadas cartesianas.
As EDPs podem ser classicadas em elpticas, parab olicas ou hiperb olicas, dependendo do valor
de b
2
4ac ser negativo, zero ou positivo, respectivamente.
Como exemplos de EDPs elpticas podemos citar a equac ao de Poisson

x
2
+

2

y
2
= g (11.2)
e de Laplace

x
2
+

2

y
2
= 0 (11.3)
as quais sao associadas geralmente a problemas em equilbrio. Uma maneira de se expressar o
potencial de velocidade de um uido incompressvel, n ao-viscoso, em regime estavel e atraves da
equa cao de Laplace: a taxa com a qual tal uido entra em uma determinada regi ao e igual ` aquela
com a qual ele sai.
J a na teoria eletromagnetica, o teorema de Gauss nos diz que o uxo eletrico que passa atraves
de uma superfcie fechada e igual ` a carga total dentro da superfcie; isto pode ser expresso por
uma equa cao de Poisson,

2
V
x
2
+

2
V
y
2
+

= 0 (11.4)
onde V e o potencial eletrico associado a uma distribui cao bi-dimensional de carga de densidade
e e a constante dieletrica.
Ate hoje, apenas um n umero limitado de equa coes elpticas foram resolvidas analiticamente,
com sua utilidade restrita a casos onde a regi ao de estudo considerada tem uma forma geometrica
simples. O mesmo pode ser dito de equacoes parab olicas e hiperb olicas. Por essa razao, a solu cao
dessas equa coes e feita, essencialmente, de forma numerica, com metodos especcos para cada
tipo de EDP.
212
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Parciais
11.2 Equa coes parabolicas
Comecaremos investigando a solucao numerica de EDPs parab olicas com um dos mais simples
exemplos: a equacao adimensional
U
t
=

2
U
x
2
(11.5)
a qual expressa a distribui cao de temperatura U em uma barra isolada termicamente ao longo
de seu comprimento, x, t segundos apos ter sido aquecida (ou resfriada). Em tal problema, as
temperaturas nos dois extremos da barra s ao conhecidas ao longo do tempo ou seja, as condicoes
de fronteira sao conhecidas.

E tambem usual conhecer a distribui cao de temperatura na barra
em um certo instante, o qual e chamado de tempo zero; essa distribui cao e chamada de condicao
inicial.
Vejamos, entao, um diagrama que explica o processo de integra cao a ser efetuado (ver [14]).
Suponha uma barra de comprimento l, C uma curva de fronteira e S a regi ao englobada por essa
curva, conforme a gura 11.1. Veja que C e uma curva aberta no plano x t; e a area S limitada

x
t

j
S
C C
C C


s
s
s
s
s
s
s
s
s

f
r
o
n
t
e
i
r
a
s
s
s
s
s
s
s
s
s

f
r
o
n
t
e
i
r
a
s s s s s s

valores iniciais
(i,j)
linha i, valores conhecidos
linha i+1, valores a determinar
Figura 11.1: Malha de pontos para uma EDP parabolica.
por 0 t < , 0 x l. O processo de integracao em S atraves de diferen cas-nitas consiste
em colocar-se uma malha com espacamento k e h nas dire coes t e x respectivamente, e aproximar
as derivadas em cada um dos pontos de intersec cao nessa malha.
11.2.1 Metodo explcito
Para a equa cao (11.5), aproximaremos as derivadas de primeira e de segunda ordem atraves de
diferen cas-nitas (vide se cao 2.5), i.e.
u
t

u
i+1,j
u
i,j
k

2
u
t
2

u
i+1,j
2u
i,j
+ u
i,j+1
h
2
onde k e h sao os espa camentos nas dire coes t e x, respectivamente. Substituindo essas aproxima-
coes em (11.5), vem
u
i+1,j
u
i,j
k
=
u
i+1,j
2u
i,j
+ u
i,j+1
h
2
e, isolando o termo u
i+1,j
, obtemos
u
i+1,j
= ru
i,j1
+ (1 2r)u
i,j
+ ru
i,j+1
, r =
k
h
2
(11.6)
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 213
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Parciais
a qual nos d a a temperatura U em cada ponto j no (i + 1)-esimo tempo. Note que os pontos
discretos sao x
j
= jh e t
i
= ik. Os exemplos a seguir mostram como resolver problemas com base
na equacao (11.6).
Exemplo 11.1 Suponha uma barra de metal isolada termicamente, com as suas duas extremidades
em contato com blocos de gelo a 0
o
C, e aquecida instantaneamente em seu ponto medio por um
ma carico. Qual a temperatura da barra ap os um certo tempo?
Solu cao: Note que, como a barra permanece em contato com gelo durante toda a simulacao,
devemos esperar que, apos ter sido instantaneamente aquecida, sua temperatura devera cair ate
0
o
C, depois de um certo tempo.
Suponha que a distribui cao inicial de temperatura na barra seja dada por
u = 2x, 0 x
1
2
; u = 2(1 x),
1
2
x 1
Pela formula cao do problema, vemos que os extremos da barra estao a 0
o
C. Entao, podemos
especicar as condi coes iniciais (CI) e de fronteira (CF) como:
CI :
_
u = 2x, 0 x
1
2
u = 2(1 x),
1
2
x 1
, t = 0
CF :
_
u = 0, x = 0
u = 0, x = 1
, t > 0
Dividamos ent ao a barra em dez peda cos e integremos a equacao (11.5) em mil passos, i.e.,
tomemos h = 1/10 e k = 1/1000, tal que r = k/h
2
= 1/10. A equacao (11.6) pode ser simplicada
e escrita como
u
i+1,j
=
1
10
(u
i,j1
+ 8u
i,j
+ u
i,j+1
) (11.7)
e, identicando as vari aveis envolvidas na malha, vemos que o calculo dos u
i+1,j
corresponde `a
seguinte molecula, onde os n umeros dentro de cada atomo sao os fatores multiplicadores de
u nos pontos da malha, indicados ao lado de cada atomo:

u
i+1,j
1

u
i,j
8
10

u
i,j1
1
10

u
i,j+1
1
10
Figura 11.2: Molecula computacional para o metodo explcito, r = 1/10.
Agora, aplicando a equac ao (11.7), obtemos alguns valores, mostrados na tabela 11.1.
x 0, 1 0, 2 0, 3 0, 4 0, 4 0, 5 0, 6
t = 0 0 0, 2 0, 4 0, 6 0, 8 1, 0 0, 8
t = 0, 001 0 0, 2 0, 4 0, 6 0, 8 0, 96 0, 8
t = 0, 002 0 0, 2 0, 4 0, 6 0, 7960 0, 9280 0, 7960
t = 0, 003 0 0, 2 0, 4 0, 5996 0, 7896 0, 9016 0, 7896
Tabela 11.1: Alguns valores para a equa cao (11.7), com r = 1/10.
Considerando que a solu cao analtica para o problema, sujeita `aquelas CI e CF, e dada por
u(x, t) =
8

i=1
1
n
2
_
sen
n
2
_
(sennx)e
n
2

2
t
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 214
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Parciais
podemos calcular os erros correspondentes ` a solu cao numerica para alguns pontos, conforme mostra
a tabela 11.2. Nota-se que, para x = 0, 3, o erro e pequeno; j a para x = 0, 5, o erro e maior,
x = 0, 3 t numerica analtica erro (%)
0, 005 0, 5971 0, 5966 0, 08
0, 01 0, 5822 0, 5799 0, 4
0, 02 0, 5373 0, 5334 0, 7
0, 1 0, 2472 0, 2444 1, 1
x = 0, 5
0, 005 0, 8597 0, 8404 2, 3
0, 01 0, 7867 7743 1, 6
0, 02 0, 6891 0, 6809 1, 2
0, 1 0, 3056 0, 3021 1, 2
Tabela 11.2: Erros na aproxima cao numerica da equacao (11.7), com r = 1/10.
particularmente devido `as CI, pois
u
x

x=
1
2

= 2 = 2 =
u
x

x=
1
2
+
.
No entanto, `a medida que o processo de integra cao prossegue, o erro diminui.
Richtmeyer e Morton (1967) mostraram que, para o esquema em diferencas-nitas utilizado
no exemplo 11.1, se a fun cao inicial e suas p 1 primeiras derivadas s ao contnuas, e a p-esima
derivada e discontnua de forma ordin aria (i.e., varia em saltos nitos), ent ao, para k pequeno, o
erro e menor ou igual a
k
p+2
p+4
No exemplo 11.1, p = 1, ent ao o erro e k
3
5
= 0, 016; comparando com os valores presentes na
tabela 11.2, vemos que essa condicao e satisfeita.
Exemplo 11.2 Para o mesmo problema no exemplo 11.1, utilize h = 1/10 e k = 5/1000.
Solu cao: Nesse caso, r = 1/2. A equacao (11.6) reduz-se a
u
i+1,j
=
1
2
(u
i,j1
+ u
i,j+1
) (11.8)
Alguns dos valores calculados s ao mostrados na tabela 11.3; os erros em x = 0, 3 s ao mostrados
na tabela 11.4. Comparando com os dados na tabela 11.2, vemos que os erros aumentaram; isso
x 0, 1 0, 2 0, 3 0, 4 0, 4 0, 5 0, 6
t = 0 0 0, 2 0, 4 0, 6 0, 8 1, 0 0, 8
t = 0, 005 0 0, 2 0, 4 0, 6 0, 8 0, 8 0, 8
t = 0, 010 0 0, 2 0, 4 0, 6 0, 7 0, 8 0, 7
t = 0, 015 0 0, 2 0, 4 0, 55 0, 7 0, 7 0, 7
Tabela 11.3: Alguns valores para a equa cao (11.8), com r = 1/2.
nos leva a supor que o valor de k esta intimamente ligado ao erro existente na solu cao.
Exemplo 11.3 Para o mesmo problema no exemplo 11.1, utilize h = 1/10 e k = 1/100.
Solu cao: Nesse caso, r = 1. A equacao (11.6) reduz-se a
u
i+1,j
= u
i,j1
u
i,j
+ u
i,j+1
(11.9)
A tabela 11.5 mostra alguns dos valores calculados os quais, obviamente, n ao representam o
comportamento fsico esperado.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 215
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Parciais
x = 0, 3 t numerica analtica erro (%)
0, 005 0, 6 0, 5966 0, 57
0, 01 0, 6 0, 5799 3, 5
0, 02 0, 55 0, 5334 3, 1
0, 1 0, 2484 0, 2444 1, 6
Tabela 11.4: Erros na aproxima cao numerica da equac ao (11.8), com r = 1/2.
x 0, 1 0, 2 0, 3 0, 4 0, 4 0, 5 0, 6
t = 0 0 0, 2 0, 4 0, 6 0, 8 1, 0 0, 8
t = 0, 01 0 0, 2 0, 4 0, 6 0, 8 0, 6 0, 8
t = 0, 02 0 0, 2 0, 4 0, 6 0, 4 1, 0 0, 4
t = 0, 03 0 0, 2 0, 4 0, 2 1, 2 0, 2 1, 2
t = 0, 04 0 0, 2 0, 0 1, 4 1, 2 2, 6 1, 2
Tabela 11.5: Alguns valores para a equa cao (11.9), com r = 1.
O metodo explcito expresso pela equacao (11.6) e computacionalmente simples, porem ele
apresenta uma restri cao. O passo de integracao temporal, k, deve ser necessariamente pequeno,
uma vez que o processo de integracao so v alido quando
k
h
2
2
(11.10)
Alem disso, o particionamento em x deve ser sucientemente grande levando a um h pequeno
para que as aproxima coes das derivadas espaciais, usando diferencas-nitas, sejam aceitaveis. No
exemplo 11.3, a condi cao (11.10) foi violada, levando a resultados incorretos (do ponto de vista
fsico).
A m de remover essa restricao no passo de integra cao temporal, devemos recorrer a um outro
metodo, conforme descrito a seguir.
11.2.2 Metodo de Crank-Nicolson
Em 1947, Crank e Nicolson propuseram um metodo v alido para quaisquer valores nitos de r.
Eles consideraram que a EDP (11.5 e satisfeita no ponto medio
_
i +
1
2
k, jh
_
, ou seja,
_
u
t
_
i+
1
2
,j
=
_

2
u
x
2
_
i+
1
2
,j
e, substituindo estas derivadas pelas expressoes em diferencas nitas j a vistas, temos
u
i+1,j
u
i,j
k
=
1
2
_
u
i+1,j1
2u
i+1,j
+ u
i+1,j+1
h
2
+
u
i,j1
2u
i,j
+ u
i,j+1
h
2
_
ou
ru
i+1,j1
+ (2 + 2r)u
i+1,j
ru
i+1,j
= ru
i,j1
+ (2 2r)u
i,j
+ ru
i,j+1
(11.11)
onde r = k/h
2
. Na equa cao (11.11), temos tres termos conhecidos e tres a determinar, os quais
referem-se ao tempo i + 1; da, o metodo de Crank-Nicolson e dito ser implcito.
Se cada linha da malha tiver n pontos, ent ao (11.11) e um sistema de equacoes lineares de n
equa coes a n vari aveis, onde o termo independente de cada sistema, onde calculamos u no tempo
i + 1, e composto pelos valores de u no tempo i. Note que a resolu cao do sistema de equa coes
deve ser efetuada a cada passo de integracao no tempo. O exemplo a seguir mostra como utilizar
o metodo.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 216
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Parciais
Exemplo 11.4 Resolva o problema no exemplo 11.1 com o metodo de Crank-Nicolson, usando
h = 1/10.
Solu cao: Ao selecionarmos k, devemos vericar que uma escolha cuidadosa de r permite
simplicar a equa cao (11.11); p.ex., com r = 1, o termo u
i,j
e removido. Para esse valor de r,
temos k = 1/100. Entao, a equa cao governante, nesse caso, e
u
i+1,j1
+ 4u
i+1,j
u
i+1,j+1
= u
i,j1
+ u
i,j+1
cuja molecula computacional e mostrada na gura 11.3. Devido `a simetria do problema, em

u
i+1,j
4

u
i+1,j1
1

u
i+1,j+1
1

u
i,j1
1

u
i,j+1
1
Figura 11.3: Molecula computacional para o metodo de Crank-Nicolson, r = 1.
rela cao ao quinto ponto, x = 1/2, conforme mostrado na gura 11.4, podemos reduzir o esfor co
computacional necess ario; basta obter os valores de u
i+1,1
, u
i+1,2
, u
i+1,3
, u
i+1,4
e u
i+1,5
. O
u
1
u
2
u
3
u
4
u
5
u
4
u
3
u
2
u
1
0
1
10
2
10
3
10
4
10
5
10
6
10
7
10
8
10
9
10
1
u = 0 u = 0
Figura 11.4: Disposi cao dos pontos na malha.
sistema de equa coes correspondente pode ser escrito na forma matricial como:
_

_
4 1
1 4 1
1 4 1
1 4 1
2 4
_

_
_

_
u
i+1,1
u
i+1,2
u
i+1,3
u
i+1,4
u
i+1,5
_

_
=
_

_
u
i,1
u
i,2
u
i,3
u
i,4
u
i,5
_

_
cuja matriz de coecientes e levemente nao-simetrica, apresentando dominancia diagonal.
11.2.2.1 Aproximacao ponderada
Se considerarmos que a EDP (11.5) e satisfeita, agora, num ponto (i + k, jh), 0 1, obtemos
uma generaliza cao do metodo de Crank-Nicolson:
u
i+1,j
u
i,j
k
=
1
h
2
((u
i+1,j1
2u
i+1,j
+ u
i+1,j+1
) + (1 )(u
i,j1
2u
i,j
+ u
i,j+1
)) (11.12)
A equa cao (11.12) corresponde ao metodo explcito, para = 0; ao de Crank-Nicolson, para
= 1/2; e a um metodo completamente implcito, para = 1. Para 1/2 1, (11.12) e estavel
para qualquer valor de r; para 0 1/2, devemos ter r (2(1 2))
1
.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 217
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Parciais
11.2.3 Condi coes de fronteira
O principal problema, ao se resolver uma equa cao diferencial parcial, e o tratamento adequado
das condi coes de fronteira.
Condi coes simples, como as de Dirichlet (u = 0), sao facilmente tratadas. Por exemplo,
considere a aproxima cao central por diferen cas nitas da derivada u/x,
u
j+1
u
j1
2h
.
Se a condi cao e u = 0 em x = 0, ent ao para o ponto na malha em j = 0, u
0
= 0. Da, a
aproxima cao para a derivada no primeiro ponto, x = h, i.e. j = 1, passa a ser
u
1
0
2h
O mesmo procedimento e valido para outras aproxima coes em diferencas nitas, como visto nos
exemplos 11.1-11.3.
Condi coes de fronteira envolvendo derivadas ocorrem com freq uencia, normalmente para indicar
a inexistencia de uxo naquela parte da regi ao em estudo, ou a taxa com a qual uma dada
quantidade varia. Por exemplo, quando a superfcie de um objeto condutor de calor e termicamente
isolado, podemos dizer que
U
n
= 0
i.e., a derivada de U na dire cao normal `a superfcie (indicada por n) e nula.
Um outro exemplo refere-se ` a transmissao de calor. A taxa com que o calor e transferido por
irradia cao de uma superfcie quente para o meio ao seu redor, e uma temperatura v, e normalmente
assumida como proporcional a Uv. Como na teoria de condu cao de calor a premissa fundamental
e de que o calor que ui atraves de uma superfcie e igual a
U
n
unidades de calor por unidade
de tempo na dire cao normal ` a superfcie, podemos escrever a condi cao de fronteira como

U
n
= H(U v)
onde e a constante de condutividade termica do material e H e a constante de transferencia de
calor da superfcie. O sinal e tomado de forma a indicar que o uxo de calor e na dire cao oposta
`aquela em que U cresce algebricamente. Podemos, entao, simplicar a condi cao de fronteira acima
para
U
n
= s(U v), s > 0,
Considere, entao, uma barra na, termicamente isolada, e que irradia calor no seu extremo
x = 0. A temperatura nesse extremo, em t = 0, e, portanto, desconhecida, e necessitamos de uma
outra equa cao; essa pode ser a propria condi cao de fronteira, se usarmos uma aproxima cao frontal
para a derivada em U, pois

U
x
= s(U v)
ser a aproximado por
u
i,1
u
i,0
h
= s(u
i,0
v)
Um sinal negativo deve ser associado `a derivada pois a normal, apontando para fora da barra, em
x = 0, tem a direcao x.
Se desejarmos aproximar a derivada U/x por uma aproximacao central, ent ao e necessario
introduzir uma celula ctcia u
i,1
, imaginando-se que a barra estende-se ate h, conforme a
gura 11.5. Podemos, ent ao, escrever
u
i,1
u
i,1
2h
= s(u
i,0
v)
porem, agora, devemos eliminar u
i,1
, j a que ele e ctcio, conforme mostra o exemplo a seguir.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 218
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Parciais
u
1
h
u
0
0
u
1
h
u
2
2h

u
n1
(n 1)h
u
n
nh
u
n+1
(n + 1)h
u
n+2
(n + 2)h
Figura 11.5: Malha com pontos ctcios.
Exemplo 11.5 Seja uma barra na, termicamente isolada, a uma temperatura diferente da temperatura
ambiente, a qual irradia calor atraves das suas duas extremidades. A EDP e
U
t
=

2
U
t
2
sujeita `as
CI : U = 1, 0 x 1, t = 0
CF :
_
U
x
= U, x = 0, t > 0
U
x
= U, x = 1, t > 0
Obtenha as equac oes governantes de acordo com o metodo explcito.
Solu cao:Usando a equacao (11.6), podemos escrever, em x = 0,
u
i+1,0
= u
i,0
+ r(u
i,1
2u
i,0
+ u
i,1
)
A CF em x = 0, usando uma aproxima cao central, e
u
i,1
u
i,1
2h
= u
i,0
de onde u
i,1
= u
i,1
2hu
i,0
; substituindo na equa cao para u
i,0
, temos
u
i+1,0
= u
i,0
+ r(u
i,1
2hu
i,0
2u
i,0
+ u
i,1
) =
= u
i,0
= 2r(u
i,1
(1 + h)u
i,0
)
De forma similar, em x = 1, temos como CF
u
i,n+2
u
i,n
2h
= u
i,n+1
e, como a equa cao (11.5) e expressa no ponto x = 1 como
u
i+1,n+1
= u
i,n+1
+ r(u
i,n
2u
i,n+1
+ u
i,n+2
)
podemos eliminar u
i,n+2
, tal que
u
i+1,n+1
= u
i,n+1
+ 2r(u
i,n
(1 + h)u
i,n+1
)
Para resolver esse problema, ent ao, vamos utilizar tres equa coes: uma para o ponto u
i+1,0
, outra
para o ponto u
i+1,n+1
e a equacao (11.6) para os pontos u
i+1,j
, 1 j n.
11.3 Equa coes diferenciais parciais elpticas
As EDPs elpticas sao normalmente relacionadas a problemas em equilbrio e as suas solu coes
representam um maximo ou mnimo da integral que representa a energia do sistema. As mais
conhecidas, e importantes sao as equa coes de Poisson (11.2) e de Laplace (11.3). Suas aplica coes
sao as mais variadas: p.ex., a equa cao de Poisson representa o movimento de um uido viscoso
incompressvel, a baixa velocidade; a equa cao de Laplace e empregada para descrever o potencial
eletromagnetico, dentre outras.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 219
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Parciais
O intervalo de integra cao de uma EDP elptica e sempre uma area S cercada por uma curva
fechada C. As condi coes de fronteira especicam ou o valor da fun cao ou de sua derivada em cada
ponto de C; e comum, tambem, que em certas regioes de C seja especicado o valor da funcao e,
noutras, o da sua derivada.
A solu cao de uma EDP elptica atraves de sua discretiza cao em diferen cas nitas leva `a solu cao
de um sistema de equacoes lineares, tipicamente grande e esparso, para os quais os metodos
iterativos, apresentados no Captulo 4, s ao particularmente indicados.
Considere a equacao

2
u = f(x, y) (11.13)
na regi ao R = [0, 1] [0, 1] (i.e., o quadrado unit ario), sujeita `as condi coes de fronteira u = 0 em
R.
Discretizamos, entao, a regi ao com uma malha cartesiana com espa camento h = 1/m, identico
nas dire coes x e y, conforme o diagrama da gura 11.6. Note que temos n = m 1 pontos ao

i
y

j
x



s s s s s
s s s s s
s
s
s
s
s
s
s
s
s
s
s
pontos na fronteira

pontos u
i,j
Figura 11.6: Malha de pontos para uma EDP elptica.
longo de cada dire cao, totalizando n
2
pontos u
i,j
onde obteremos a aproxima cao para a EDP.
Aproximando as derivadas parciais de segunda ordem por diferen cas nitas, temos
u
i,j1
2u
i,j
+ u
i,j+1
h
2
+
u
i1,j
2u
i,j
+ u
i+1,j
h
2
= f(jh, ih), 0 < i, j < m (11.14)
onde jh = x
j
e ih = y
i
. Usando um ordenamento natural dos pontos u
i,j
na malha, ao longo
das linhas verticais, obtemos um n umero k = (i 1)n + j, tal que u
i,j
u
k
, conforme mostrado
na gura 11.7. O ordenamento natural ao longo das linhas horizontais e equivalente: nesse caso,
teramos k = (j 1)n + i. Avaliando a equa cao (11.14) em cada um dos pontos i, j, obteremos

i
y
j
x

1

4

7

2

5

8

3

6

9
Figura 11.7: Ordena cao natural dos pontos na malha.
um sistema de equa coes lineares, conforme mostra o exemplo abaixo.
Exemplo 11.6 Calcule u que satisfa ca a EDP

2
u = 2(x
2
+ y
2
)
na regi ao R = [0, 1] [0, 1], sujeita a u = 0 nas linhas x = 0 e y = 0; u = y
2
na linha x = 1 e
u = x
2
na linha y = 1.
Solu cao: Apenas para ns de explanacao, vamos utilizar uma malha quadrada com m = 4,
mas cabe ressaltar que, tipicamente, devemos utilizar m 100. Dessa forma, estaremos avaliando
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 220
Introdu c ao ao Calculo Numerico Solucao Numerica de Equacoes Diferenciais Parciais
a EDP acima em n
2
= (m 1)
2
= 9 pontos, o que nos levar a a um sistema de equacoes lineares
de 9 equa coes a 9 vari aveis. O espa camento e h = 1/4.
Escrevendo, entao, a equacao (11.14) para cada um dos pontos, utilizando o ordenamento
natural conforme mostrado na gura 11.7, temos:
1 : (0 + 2u
1
u
4
) + (0 + 2u
1
u
2
) = 2h
2
(h
2
+ h
2
)
2 : (0 + 2u
2
u
5
) + (u
1
+ 2u
2
u
3
) = 2h
2
(h
2
+ 4h
2
)
3 : (0 + 2u
3
u
6
) + (u
2
+ 2u
3
h
2
) = 2h
2
(h
2
+ 9h
2
)
4 : (u
1
+ 2u
4
u
7
) + (0 + 2u
4
u
5
) = 2h
2
(4h
2
+ h
2
)
5 : (u
2
+ 2u
5
u
8
) + (u
4
+ 2u
5
u
6
) = 2h
2
(4h
2
+ 4h
2
)
6 : (u
3
+ 2u
6
u
9
) + (u
5
+ 2u
6
4h
2
) = 2h
2
(4h
2
+ 9h
2
)
7 : (u
4
+ 2u
7
h
2
) + (0 + 2u
7
u
8
) = 2h
2
(9h
2
+ h
2
)
8 : (u
5
+ 2u
8
4h
2
) + (u
7
+ 2u
8
u
9
) = 2h
2
(9h
2
+ 4h
2
)
9 : (u
6
+ 2u
9
9h
2
) + (u
8
+ 2u
9
9h
2
) = 2h
2
(9h
2
+ 9h
2
)
onde os valores 0 correspondem `aqueles pontos na fronteira, pois u = 0 e a condicao de fronteira.
Multiplicando por 1 todas as equacoes e combinando os termos, obtemos o seguinte sistema de
equa coes, na forma matricial:
_

_
4 1 1
1 4 1 1
1 4 1
1 4 1 1
1 1 4 1 1
1 1 4 1
1 4 1
1 1 4 1
1 4 4
_

_
_

_
u
1
u
2
u
3
u
4
u
5
u
6
u
7
u
8
u
9
_

_
=
_

_
0, 0156
0, 0391
0, 0156
0, 0391
0, 0625
0, 1484
0, 0156
0, 1484
0, 9144
_

_
(11.15)
cuja solu cao e
u = (0, 0039, 0, 0156, 0, 0352, 0, 0156, 0, 0625, 0, 1406, 0, 0352, 0, 1406, 0, 3164)
Note que, pela deni cao do problema, temos u = x
2
y
2
; podemos conrmar que os valores
obtidos como soluc ao do sistema (11.15) satisfaz a EDP, como mostra a tabela 11.6.
k x y u = x
2
y
2
u
k
erro relativo
1 0, 25 0, 25 0, 0039 0, 0039 0, 6661 10
15
2 0, 25 0, 50 0, 0156 0, 0156 0, 4441 10
15
3 0, 25 0, 75 0, 0352 0, 0352 0
4 0, 50 0, 25 0, 0156 0, 0156 0, 2220 10
15
5 0, 50 0, 50 0, 0625 0, 0625 0, 1110 10
15
6 0, 50 0, 75 0, 1406 0, 1406 0
7 0, 75 0, 25 0, 0352 0, 0352 0
8 0, 75 0, 50 0, 1406 0, 1406 0, 1974 10
15
9 0, 75 0, 75 0, 3164 0, 3164 0
Tabela 11.6: Compara c ao entre os valores calculados para u pela solu cao direta do sistema e a
solu cao exata.
Como as matrizes que surgem da discretiza cao em diferen cas nitas de uma EDP s ao esparsas,
e comum se utilizar metodos iterativos na resolu cao do sistema de equa coes lineares, como mostra
o exemplo a seguir.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 221
Introdu c ao ao Calculo Numerico
Exemplo 11.7 Resolvendo o sistema 11.15 atraves do metodo dos Gradientes-Conjugados (vide
se cao 4.7 e algoritmo 4.7.1), a uma toler ancia de 10
10
, obtem-se como solu cao
u = (0, 0039, 0, 0156, 0, 0352, 0, 0156, 0, 0625, 0, 1406, 0, 0352, 0, 1406, 0, 3164)
A tabela 11.7 mostra que os erros relativos dessa solu cao tambem s ao aceitaveis.
k x y u = x
2
y
2
u
k
erro relativo
1 0, 25 0, 25 0, 0039 0, 0039 0, 1332 10
14
2 0, 25 0, 50 0, 0156 0, 0156 0, 0555 10
14
3 0, 25 0, 75 0, 0352 0, 0352 0, 0197 10
14
4 0, 50 0, 25 0, 0156 0, 0156 0, 0555 10
14
5 0, 50 0, 50 0, 0625 0, 0625 0, 0222 10
14
6 0, 50 0, 75 0, 1406 0, 1406 0, 0197 10
14
7 0, 75 0, 25 0, 0352 0, 0352 0, 0395 10
14
8 0, 75 0, 50 0, 1406 0, 1406 0, 0197 10
14
9 0, 75 0, 75 0, 3164 0, 3164 0, 0175 10
14
Tabela 11.7: Compara cao entre os valores calculados para u pela solu cao iterativa do sistema,
atraves do metodo dos Gradientes-Conjugados, e a solu cao exata.
Assim como nas equa coes parab olicas, pode-se especicar condi coes de Neumann (envolvendo
derivadas) na fronteira.
11.4 Exerccios
Exerccio 11.1 Considere a equa c ao
U
t
=

2
U
x
2
, < 1
Estabeleca a condicao necessaria para convergencia de um metodo explcito e mostre o que acontece
quando = 0, 5 e = 10
6
.
Exerccio 11.2 Calcule a solu cao aproximada de

2
U
x
2
+

2
U
y
2
+ cos(y)
U
x
sen(x)
U
y
= 0
no retangulo unit ario, com condi c oes de Dirichlet na fronteira. Resolva o problema atraves de
uma aproxima cao em diferen cas-nitas, utilizando diferen cas ascendentes para as derivadas de
primeira ordem.
Exerccio 11.3 Resolva o exerccio 11.2 utilizando diferen cas centrais para as derivadas de primeira
ordem. Explique o que ocorre.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 222

Indice
Ajuste de dados
mnimos quadrados (contnuo), 154
polin omios ortogonais, 157
mnimos quadrados (discreto), 148
ajuste exponencial, 150
ajuste exponencial polinomial, 151
ajuste hiperbolico, 151
ajuste linear, 148
ajuste linear inverso, 151
ajuste polinomial, 149
ajuste potencial, 151
ajuste quadr atico inverso, 151
escolha do melhor ajuste, 151
Algoritmo completo de Horner, 53
Algoritmo de Horner para fatores quadr aticos,
58
Algoritmo de retro-substitui cao, 63
Algoritmo de substitui cao direta, 62
Algoritmo parcial de Horner, 51
Aritmetica no computador, 6
bits, bytes e palavras, 7
arredondamentos, 16
condicionamento, 25
conversao entre representa coes, 7
desastres causados por erros, 27
instabilidade numerica, 26
opera coes aritmeticas de ponto-utuante,
20
perda de dgitos signicativos, 22
representa cao de n umeros
caracteriza cao, 14
representa cao de n umeros inteiros, 11
representa cao de n umeros reais
em ponto-xo, 13
em ponto-utuante, 13
representa cao em bin ario e decimal, 7
subtra cao de valores quase identicos, 22
Autovalores e autovetores, 110
de uma matriz tridiagonal simetrica, 116
determina cao via determinantes, 115
discos de Gerschgorin, 113
metodo da bisseccao, 117
metodo da itera cao inversa
com translacao da origem, 124
e o quociente de Rayleigh, 126
metodo da potencia, 120
com translacao da origem, 123
quociente de Rayleigh, 114
seq uencia de Sturm, 117
solu cao de sistemas de equacoes diferenciais
ordin arias, 197
Condicionamento, 76
Cota de Cauchy, 48
Cota de Fujiwara, 48
Cota de Kojima, 48
Cota de Laguerre-Thibault, 48
Criterio de Sassenfeld, 84
Deriva cao numerica, 41
equa coes diferenciais, 205
matriz Jacobiana, 103
Elimina cao Gaussiana, 64
Equa coes diferenciais ordinarias
problema de valor de fronteira, 200
deriva cao numerica, 205
metodo da colocacao, 203
metodo de Newton, 203
metodo do disparo, 201
solu cao por diferen cas-nitas, 208
problema de valor inicial, 180
convergencia, estabilidade e consistencia,
192
equa coes rgidas, 199
erros de truncamento, 193
metodo da serie de Taylor , 181
metodo de Adams-Bashforth, 190
metodo de Adams-Moulton, 191
metodo de Euler, 183
metodo de Heum, 184
metodo de Runge-Kutta-Fehlberg, 188
metodo previsor-corretor, 191
metodos de Runge-Kutta, 186
sistemas de equacoes, 195
solu cao via decomposi cao em autovalores
e autovetores, 197
Equa coes diferenciais parciais
condi coes de fronteira, 218
224
Introdu c ao ao Calculo Numerico
elpticas, 219
metodo de Crank-Nicolson, 216
metodo explcito, 213
parab olicas, 213
Extrapola cao de um metodo iterativo, 85
Fatora cao LU, 67
custo computacional, 69
m ultiplos termos independentes, 70
Integra cao numerica
fun coes mal-comportadas, 173
interpola cao polinomial, 161
metodo dos coecientes a determinar,
165
regra composta do trapezio, 163
regra composta uniforme de Simpson,
166
regra composta uniforme do trapezio,
163
regra de Simpson, 166
regra de Simpson com exatid ao crescente,
167
regra do trapezio, 162
intervalos de integra cao innitos, 174
mudan ca do intervalo de integra cao, 168
quadratura Gaussiana, 169
Interpola cao polinomial, 129
erros, 142
forma de Lagrange, 132
forma de Newton, 131
diferen cas divididas, 134
diferen cas simples, 137
interpola cao inversa, 138
por splines, 139
Metodo da bisseccao, 30
para c alculo de autovalores, 117
Metodo da coloca cao, 203
Metodo da itera cao inversa, 124
e o quociente de Rayleigh, 126
Metodo da posicao falsa, 33
Metodo da potencia, 120
com transla cao da origem, 123
Metodo da serie de Taylor, 181
Metodo da secante, 36
Metodo das Dire coes-Conjugadas, 94
Metodo de Adams-Bashforth, 190
Metodo de Adams-Moulton, 191
Metodo de Bairstow, 57
Metodo de Crank-Nicolson, 216
Metodo de Euler, 183
Metodo de Gauss-Seidel, 82
Metodo de Heum, 184
Metodo de Horner, 51
deacao de polin omios, 52
expansao de Taylor de um polin omio, 52
quociente e resto da divisao de dois po-
lin omios, 51
Metodo de Jacobi, 80
Metodo de Newton, 102
para equacoes diferenciais ordinarias, 203
Metodo de Newton-Raphson, 38
razes complexas, 44
Metodo de Newton-Raphson e Horner para
polin omios, 54
Metodo de Newton-Viete, 49
Metodo de Runge-Kutta-Fehlberg, 188
Metodo do disparo, 201
Metodo do Gradiente, 86
Metodo dos Gradientes-Conjugados, 98
Metodo previsor-corretor, 191
Metodos de Runge-Kutta, 186
N umero de condi cao, 75
Normas de vetores e matrizes, 74
Polin omio interpolador
forma de Lagrange, 132
forma de Newton, 131
diferen cas divididas, 134
diferen cas simples, 137
Problema de valor inicial, 180
Quadratura Gaussiana, 169
Razes de fun coes
bisseccao, 30
deriva cao numerica, 41
Newton-Raphson, 38
posi cao falsa, 33
secante, 36
Razes de polin omios
enumera cao e localizacao, 46
cota de Cauchy, 48
cota de Fujiwara, 48
cota de Kojima, 48
cota de Laguerre-Thibault, 48
regra da lacuna, 47
regra de Descartes, 46
regra de Du Gua, 47
metodo de Horner, 51
metodo de Newton-Viete, 49
razes complexas, 56
metodo de Bairstow, 57
Renamento iterativo, 78
Regra composta do trapezio, 163
Regra composta uniforme de Simpson, 166
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 225
Introdu c ao ao Calculo Numerico
Regra composta uniforme do trapezio, 163
Regra da lacuna, 47
Regra de Descartes, 46
Regra de Du Gua, 47
Regra de Simpson, 166
com exatidao crescente, 167
Regra do trapezio, 162
Sistemas de equacoes nao-lineares
metodo de Newton, 102
Sistemas de equacoes lineares, 61
algoritmo de elimina cao Gaussiana, 64
algoritmo de elimina cao Guassiana
com pivotamento e escalonamento, 66
elimina cao Gaussiana, 64
erros e condicionamento, 76
estrutura e esparsidade, 61
fatora cao LU, 67
custo computacional, 69
m ultiplos termos independentes, 70
metodos iterativos, 73
criterio de Sassenfeld , 84
Dire coes-Conjugadas, 94
extrapola cao, 85
Gauss-Seidel, 82
Gradiente, 86
Gradientes-Conjugados, 98
Jacobi, 80
n umero de condi cao, 75
normas, 74
renamento iterativo, 78
triangulares, 62
algoritmo de retro-substitui cao, 63
algoritmo de substitui cao direta, 62
Splines, 139
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha 226

You might also like