Vous êtes sur la page 1sur 269

C

alculo Num
erico A

2012

Sum
ario
1 S
umula da Disciplina
2

Erro de Arredondamento, Aritm


etica Computacional, Algoritmos
g
encia
2.1 Revisao do Calculo . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Erro de Arredondamento e Aritmetica Computacional . . . . . . . .
2.2.1 Tipos de Erros . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3 Ordens de convergencia e conceitos basicos . . . . . . . . . . . . . . .
2.3.1 Convergencia de Sequencias . . . . . . . . . . . . . . . . . . .
2.3.2 Ordem de convergencia . . . . . . . . . . . . . . . . . . . . . .
2.3.3 Algoritmos . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.4 Observacoes Finais - Operacoes com Ponto Flutuante . . . . . . . . .

3 Sistemas Lineares
3.1 Algebra Matricial . . . . . . . . . . . . . . . . . . . . .
3.1.1 Operacoes Elementares . . . . . . . . . . . . . .
3.1.2 Matrizes . . . . . . . . . . . . . . . . . . . . . .
3.1.3 Autovalores e Autovetores . . . . . . . . . . . .

3.1.4 Um pouco mais de Algebra


Matricial . . . . . .
3.2 Eliminacao de Gauss . . . . . . . . . . . . . . . . . . .
3.2.1 Decomposicao de Gauss Basica . . . . . . . . .
3.2.2 Pivotamento . . . . . . . . . . . . . . . . . . . .
3.2.3 Pivotamento Parcial . . . . . . . . . . . . . . .
3.2.4 Pivotamento Escalonado . . . . . . . . . . . . .
3.2.5 Observacoes sobre a decomposicao A = LU . .
3.2.6 Observacoes sobre a decomposicao PA = LU .
3.2.7 Calculo do determinante . . . . . . . . . . . . .
3.2.8 Calculo da Matriz Inversa . . . . . . . . . . . .
3.2.9 Condicionamento de uma matriz . . . . . . . .
3.3 Metodos Iterativos . . . . . . . . . . . . . . . . . . . .
3.3.1 Os metodos de Jacobi e Gauss Seidel . . . . . .
3.3.2 Condicao de Convergencia . . . . . . . . . . . .
3.4 Decomposicao LU para o caso de matrizes tridiagonais

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

e Conver.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

6
6
12
19
20
20
22
23
28

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

34
34
36
37
40
42
44
45
49
50
52
55
57
59
60
60
63
63
65
68

3.5

Exerccios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

4 Interpolac
ao e Extrapolac
ao
4.1 Dados nao igualmente espacados . . . . . . . . . . .
4.1.1 Polinomios Interpoladores de Lagrange . . .
4.1.2 Forma de Newton do Polinomio Interpolador
4.2 Interpolacao por Spline C
ubico . . . . . . . . . . .
4.2.1 Spline C
ubico Natural . . . . . . . . . . . .
4.2.2 Spline C
ubico Restrito . . . . . . . . . . . .
5 Ajuste de Mnimos Quadrados
5.1 Ajuste de Mnimos Quadrados para um
5.1.1 Ajustes nao polinomiais . . . .
5.1.2 Alguns exerccios . . . . . . . .
5.2 A aproximacao de funcoes contnuas . .

. . .
. . .
. .
. . .
. . .
. . .

conjunto discreto
. . . . . . . . . .
. . . . . . . . . .
. . . . . . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

de pontos
. . . . . .
. . . . . .
. . . . . .

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

.
.
.
.
.
.

.
.
.
.

70

.
.
.
.
.
.

74
74
74
79
81
82
85

.
.
.
.

90
90
95
96
98

6 Diferencas Finitas
6.1 Diferencas para Frente e para Tras
(Forward / Backward) . . . . . . . . . . . . . . . .
6.1.1 Calculo de derivadas de ordem superior . . .
6.1.2 Expressoes em diferencas com ordem de erro
6.2 Diferencas Centrais . . . . . . . . . . . . . . . . . .
6.3 Diferencas e Polinomios . . . . . . . . . . . . . . .
6.4 Analise do Erro . . . . . . . . . . . . . . . . . . . .

. . . . . .
. . . . . .
mais alta
. . . . . .
. . . . . .
. . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

103
105
107
108
109
111

7 Elementos de Integrac
ao Num
erica
7.1 Regra Trapeizodal . . . . . . . . . . . . . . . . . .
7.2 Regra de Simpson . . . . . . . . . . . . . . . . . . .
7.3 Integracao de Romberg . . . . . . . . . . . . . . . .
7.4 Integracao Adaptativa . . . . . . . . . . . . . . . .
7.5 Quadratura de Gauss . . . . . . . . . . . . . . . . .
7.5.1 Tipos Particulares de Formulas Gaussianas:
7.6 Tabelas . . . . . . . . . . . . . . . . . . . . . . . .
7.6.1 Exemplos . . . . . . . . . . . . . . . . . . .
7.6.2 Construindo Quadraturas . . . . . . . . . .
7.6.3 Integrais Multiplas . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

115
116
119
121
127
127
128
131
135
136
139

8 Zeros de Equac
oes n
ao Lineares
8.1 Metodos Gerais . . . . . . . . . . . . . . . . . . .
8.1.1 O Metodo da Bisseccao . . . . . . . . . . .
8.1.2 O metodo da Falsa-Posicao . . . . . . . .
8.1.3 O metodo da Iteracao Linear (Ponto Fixo)
8.1.4 O Metodo de Newton-Raphson . . . . . .
8.1.5 O Metodo de Newton Modificado . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

140
140
140
144
147
152
159

.
.
.
.
.
.

103

8.2

8.3

8.1.6 O Metodo da Secante . . . . . . . . . . . . . . . .


8.1.7 Metodo de M
uller . . . . . . . . . . . . . . . . . .
Metodos para calcular razes de Polinomios . . . . . . . .
8.2.1 O metodo de Newton para polinomios . . . . . .
8.2.2 O Metodo de Bairstow . . . . . . . . . . . . . . .
8.2.3 O Metodo de Laguerre . . . . . . . . . . . . . . .
Solucao Numerica de Sistemas de Equacoes Nao Lineares
8.3.1 O metodo de Newton . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

9 Soluco
es Num
ericas de Equac
oes Diferencias Ordin
arias
9.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9.2 Problemas de Valor Inicial . . . . . . . . . . . . . . . . . . . .
9.3 Teoria Elementar de Problemas de Valor Inicial . . . . . . . .
9.4 Solucoes Numericas: Metodos de Passo Smples . . . . . . . .
9.4.1 O Metodo de Euler . . . . . . . . . . . . . . . . . . . .
9.5 Metodos de Taylor de Ordem Superior . . . . . . . . . . . . .
9.6 Metodos de Runge Kutta . . . . . . . . . . . . . . . . . . . . .
9.6.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . .
9.7 Controle de Erro e o Metodo de Runge-Kutta-Fehlberg . . . .
9.8 Metodos de Multipasso . . . . . . . . . . . . . . . . . . . . . .
9.9 Estabilidade dos Metodos Numericos . . . . . . . . . . . . . .
9.10 Equacoes Rgidas (Stiff) . . . . . . . . . . . . . . . . . . . . .
9.10.1 O metodo de Euler . . . . . . . . . . . . . . . . . . . .
9.11 Problema de Valor Inicial: Sistemas de EDO e EDO de Ordem
9.11.1 Resolucao de Sistemas de EDO para PVI . . . . . . . .

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

EDP:
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
Superior .
. . . . . .

10 Problema de Valor de Contorno


10.1 Existencia de Solucao . . . . . . . . . . . . . . . . . . . . . . . . .
10.2 Metodo de Diferencas Finitas Para Problemas Lineares . . . . . .
10.2.1 O caso Linear . . . . . . . . . . . . . . . . . . . . . . . . .
10.2.2 Metodos de diferencas finitas para problemas nao lineares .
11 M
etodo de Diferencas Finitas aplicado a
11.1 EDP Elpticas . . . . . . . . . . . . . . .
11.2 EDP Parabolicas . . . . . . . . . . . . .
11.2.1 Diferenca para frente . . . . . . .
11.2.2 Diferenca para tras . . . . . . . .
11.2.3 O metodo de Crank-Nicolson . .
11.3 EDP Hiperbolicas . . . . . . . . . . . . .

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

161
162
165
170
174
177
181
182

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

188
188
189
190
193
193
197
199
199
207
212
221
227
227
234
236

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

238
238
241
241
246

Uma introduc
ao
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .
. . . . . . . . . . .

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

.
.
.
.
.
.

249
250
255
255
259
262
265

Captulo 1
S
umula da Disciplina
1. Nome da Disciplina Calculo Numerico A - MAT01032
2. S
umula S
umula Erros; ajustamento de equacoes; interpolacao, derivacao e integracao;
solucao de equacoes lineares e nao lineares; solucao de sistemas de equacoes lineares e nao
lineares; nocoes de otimizacao; solucao de equacoes diferenciais e equacoes diferenciais
parciais; nocoes do metodo Monte Carlo em suas diferentes aplicacoes.
3. Regras
(a) Alunos que nao tem setenta e cinco por cento de frequencia (75%) serao reprovados
com conceito FF, seguindo o que e determinado no Artigo 134 do Regimento Geral
da UFRGS.
(b) O programa da disciplina sera dividido em duas areas para fins de avaliacao, as quais
corresponderao duas provas escritas, cada uma com pontuacao entre 0 e 10.
i. O aluno sera considerado aprovado se a media aritmetica das notas das 2 provas
escritas for igual ou superior a 6.0 pontos e, em cada uma delas, a nota for igual
ou superior a 4.0 pontos.
ii. Para serem aprovados, alunos que nao se enquadram no criterio acima, mas que
tem nota iguais ou superior a 5.0 em uma das duas provas, poderao fazer uma
u
nica prova de recuperacao da prova de menor nota, ao final do semestre, e
serem aprovados se passarem a enquadrar-se no criterio (3(b)i).
iii. Para serem aprovados, alunos que nao se enquadram nos criterios (3(b)i) e
(3(b)ii), mas que possuem media aritmetica das provas igual ou superior a 3.0,
deverao fazer exame geral dos conte
udos da disciplina ao final do semestre.
iv. Alunos que nao se enquadrem nos criterios (3(b)i), (3(b)ii) ou (3(b)iii) estarao
reprovados na disciplina.
(c) Sendo S a media aritmetica das notas das 2 provas escritas, a atribuicao do conceito
que sera enviado ao DECORDI seguira a regra:
se 6.0 S < 7.5 , o conceito e C;

se 7.5 S < 9.0 , o conceito e B;


se 9.0 S 10.0 , o conceito e A.
(d) Alunos aprovados no exame final cumulativo receberao conceito C se obtiveram
escore entre 6.0 e 8.5 (incluindo 6.0 e excluindo 8.5) e conceito B se o escore for igual
ou superior a 8.5. O exame final e as provas de recuperacao de area serao oferecidos
em um mesmo dia e hora, para cada turma, e terao a mesma duracao.

Bibliografia
1. Richard L. Burden; J. Douglas Faires - Analise Numerica - Editora CENGAGE (ISBN:
85-221-0601-0)
2. Frederico Ferreira Campos - Algortmos Numericos - LTC Livros Tecnicos e Cientficos
S.A. (reimpressao 2009)
3. A.L. Bortoli; C. Cardoso; M.P.G. Fachin; R.D. Cunha - Introducao ao calculo Numerico
(Cadernos de Matematica e Estatstica) - Editora UFRGS
4. Claudio, Dalcidio Moraes; Marins, Jussara Maria - Calculo numerico computacional :teoria e pratica - Editora Atlas (ISBN: 8522424853)
5. David Kincaid; Ward Cheney - Numerical Analysis: Mathematics of Scientific Computing
- Editora American Mathematical Society (ISBN: 978-0-8218-4788-6)
6. Elementos de Analise Numerica - SD Conte

Captulo 2
Erro de Arredondamento, Aritm
etica
Computacional, Algoritmos e
Converg
encia
Iniciamos o estudo de calculo numerico fazendo, uma breve revisao de teoremas importantes do
calculo. Estes teoremas serao usados para derivar os metodos numericos usados para aproximar
funcoes, encontrar razes, resolver equacoes diferenciais, etc... A seguir fazemos uma discussao
rapida sobre a aritmetica de maquina, isto e, como o arredondamento de um n
umero real para
k dgitos significativos influencia nos calculos de forma catastrofica, provocando o chamado erro
de arredondamento.

2.1

Revis
ao do C
alculo

Definic
ao 1 Seja f uma funcao o definida em um conjunto X de n
umeros reais. Dizemos que
f possui limite L em x = x0 e escrevemos que
lim f (x) = L

xx0

se
 > 0, > 0, 0 < |x x0 | < |f (x) L| < .

Figura 2.1: limxx0 f (x) = L


Definic
ao 2 Seja f uma funcao definida em um conjunto X de n
umeros reais e x0 X.
Dizemos que f e uma funcao contnua em x0 X se:
lim f (x) = f (x0 ).

xx0

A funcao f(x) e contnua em X se ela e contnua em todo elemento x X.


Definic
ao 3 Seja {xn }
encia infinita de n
umeros reais (ou complexos). Dizemos
n=1 uma sequ
que a sequencia converge para um n
umero x se (fig. 2)
 > 0, N (), inteiro positivo, n > N () |xn x| < ,
isto e
lim xn = x.

Os conceitos de convergencia e de continuidade estao relacionados pelos teoremas:


Teorema 1 Seja f uma funcao definida em um conjunto X de n
umeros reais, x0 X ent
ao:

e
uma
sequ
e
ncia
em
x
convergindo
para
x
ent
a
o
lim
f e contnua em x0 se {xn }
0
xx0 f (xn ) =
n=1
f (x0 ).
Definic
ao 4 Seja f e uma funcao definida num intervalo aberto contendo x0 , dizemos que f
e diferenciavel se:
lim

xx0

f (x) f (x0 )
= f 0 (x0 )
x x0

existe.
Teorema 2 : Se a funcao f e diferenciavel em x0 entao f e contnua em x0 .
Observac
ao:
C(X): Conjunto de todas as funcoes contnuas em X.

Cn (X): Conjunto de todas as funcoes com n derivadas contnuas em X.


C (X): Conjunto de todas as funcoes com todas as derivadas contnuas em X.
Teorema 3 (Teorema de Rolle) f C[a, b] e diferenciavel em (a, b). Se f (a) = f (b) = 0
entao existe um n
umero c, com a < c < b de forma que f 0 (c) = 0.
Teorema 4 (Teorema do Valor M
edio) Seja f C[a, b] e diferenciavel em (a, b) ent
ao
existe um n
umero c, com a < c < b de forma que
f 0 (c) =

f (b) f (a)
.
ba

Figura 2.2: limxx0 f (x) = L


Teorema 5 (Teorema do Valor Extremo) Se f C[a, b] entao existem c1 e c2 [a, b],
com f (c1 ) f (x) f (c2 ) para cada x (a, b). Se ainda f e diferenciavel em (a, b) ent
ao os
0
n
umeros c1 e c2 ocorrem nos extremos do intervalo [a, b] ou onde f (x) = 0.
Definic
ao 5 A integral de Riemann da funcao f no intervalo [a, b] e dada pelo seguinte
limite, quando existir:
Z

f (x)dx =
a

lim

maxxi 0

n
X

f (zi )xi ,

i=1

onde os n
umeros x0 , x1 , ..., xn sao tais que a = x0 x1 ... xn = b e onde xi = xi xi1
para cada i = 1, 2, ..., n e zi e um n
umero de forma que zi [xi1 , xi ]
Devemos notar que toda funcao contnua em um intervalo fechado [a, b] admite integral de
Riemann neste intervalo. Geralmente escolhamos os pontos xi igualmente espacados em [a, b]
e podemos tambem escolher zi = xi , assim
Z
a

baX
f (xi ),
f (x)dx = lim
n
n i=1

onde xi = a + i(b a)/n.

Teorema 6 ((Teorema do valor m


edio com peso para integrais) Se f C[a, b], g e
integravel sobre [a, b] e g(x) nao troca de sinal em [a, b], entao existe um n
umero c, a < c < b,
tal que
Z b
Z b
g(x)dx.
f (x)g(x)dx = f (c)
a

Observac
ao:
Se g(x) 1 temos o valor medio de f em [a, b] dado por
1
f (c) =
ba

f (x) dx
a

Teorema 7 (Teorema de Rolle Generalizado) Seja f C[a, b], n vezes diferenci


avel em
(a, b). Se f tende a zero nos n + 1 n
umeros distintos x0 , x1 , ...., xn em [a, b], entao existe um
n
umero em (a, b) com f (n) (c) = 0.
Teorema 8 (Teorema do Valor Intermedi
ario) Se f C[a, b] e k e um n
umero entre
f (a) e f (b) entao existe c em (a, b) para o qual f (c) = k.
Exemplo 1: Mostre que x5 2x3 + 3x2 1 = 0 tem zeros em [0, 1].
Seja f (x) = x5 2x3 + 3x2 1 da f (0) = 1 e f (1) = 1
Assim pelo TV Intermediario podemos afirmar que para k = 0, c [0, 1] / f (c) = 0.
Teorema 9 (Teorema de Taylor) Seja f Cn [a, b] e onde f (n+1) existe em [a, b]. Seja
x0 [a, b]. Para cada x [a, b], existe (x) (x0 , x), com
f (x) = Pn (x) + Rn (x),
onde
Pn (x) = f (x0 ) + f 0 (x0 )(x x0 ) +
=

n
X
f k (x0 )
k=0

k!

f n (x0 )
f 00 (x0 )
(x x0 )2 + ... +
(x x0 )n
2!
n!

(x x0 )k ,

e
Rn (x) =

f (n+1) ((x))
(x x0 )(n+1) .
(n + 1)!

Aqui Pn (x) e chamado de poliomio de Taylor de enesimo grau para f em torno de x0 e Rn (x) e
chamado de resto ou erro de truncamento associado com Pn (x).
As series infinitas obtidas quando tomamos o limite de Pn (x) quando n e chamada de
serie de Taylor para f em torno de x0 .

No caso particular de x0 = 0 chamamos de polinomio de Maclaurin e serie de Maclaurin, respectivamente.

Exemplo 2: Determine os polinomios de Taylor de segundo e terceiro graus para f (x) = cos x
em torno de x0 = 0, e use este polinomio para calcular cos(0.01) e compare com o valor obtido
por sua calculadora.
Pela calculadora, cos(0.01) = 0.99995000042
Agora
f (x) = cos x f (0) = 1
f 0 (x) = sin x f 0 (0) = 0
f 00 (x) = cos x f 00 (0) = 1
f 000 (x) = sin x f 000 (0) = 0
f (IV ) (x) = cos x
Assim para n=2
1
1
cos x = 1 x2 + x3 sin (x),
2
6
com 0 < (x) < 0.01, logo
1
cos(0.01) = 0.99995 + (0.01)3 sin (x)
6
onde o erro e menor que:


1

(0.01)3 sin (x) < 1 106 1.7 107
6
6
e para n=3
1
1
cos x = 1 x2 + x4 cos (x),
2
24
com 0 < (x) < 0.01, logo
cos(0.01) = 0.99995 +

1
(0.01)4 cos (x)
24

onde o erro e menor que:




1

4
(0.01) cos (x) < 1 108 4.2 1010
24
24
note que esta estimativa de erro esta mais proxima do erro real.

10

Figura 2.3: limxx0 f (x) = L


As series de Taylor sao o fundamento dos metodos numericos. Muitas das tecnicas numericas
sao derivadas diretamente das series de Taylor, bem como as estimativas de erro na aplicacao
destas tecnicas.
Se o valor de uma funcao f (x) pode ser expressa em uma regiao de x proxima de x = a pela
serie infinita
f (x) = f (a) + (x a)f 0 (a) +

(x a)n (n)
(x a)2 00
f (a) + +
f (a) + . . .
2!
n!

(2.1)

entao f (x) e dita analtica nesta regiao perto de x = a. A serie descrita por (2.1) e u
nica e e
chamada de expansao em serie de Taylor de f (x) na vizinhanca de x = a. Note que para que
a serie (2.1) exista e necessario que todas as derivadas de f (x) existam em x = a, e neste caso
podemos encontrar o valor de f (b) para b proximo de a substituindo x por b na serie (neste
caso, dizemos que b esta dentro do raio de convergencia da serie). Neste caso,
f (b) = f (a) + (b a)f 0 (a) +

(b a)2 00
(b a)n (n)
f (a) + +
f (a) + . . .
2!
n!

(2.2)

f (b) e calculada de forma exata pela serie infinita (2.2). Metodos numericos aproximam o valor
de f (b) truncando a serie (2.2) em um n
umero finito de termos. O erro cometido na serie de
Taylor para f (x) quando a serie e truncada depois o termo contendo (x a)(n) nao pode ser
maior que
n+1

d f ((x)
|x a|n+1


, para (x) entre x e a
(2.3)
dxn+1
max (n + 1)!
onde o subscrito max denota o maior valor que a derivada da f (x) pode assumir no intervalo
de a ate x. Na verdade este valor nao e simples de ser encontrado, isto e nos nao temos controle
sobre o valor da derivada da funcao ou sobre o fatorial, mas temos controle sobre o quao proximo
x esta de a, isto e podemos controlar a quantidade (x a)n+1 . Para indicar este fato dizemos
que o erro e da ordem de (x a)n+1 , e indicamos isto por O((x a)n+1 ). Por exemplo se a serie
(2.1) for truncada depois dos primeiros tres termos, dizemos que a precisao no calculo de f (x)
e O((x a)3 ), isto e:
f (x) = f (a) + (x a)f 0 (a) +

(x a)2 00
f (a) + O((x a)3 ).
2!

11

(2.4)

2.2

Erro de Arredondamento e Aritm


etica Computacional

Quando uma calculadora ou computador e usada para calculos com n


umeros reais ocorre um
erro inevitavel, o erro de arredondamento. Este erro surge por causa da aritmetica da maquina
que possui apenas um n
umero finito de dgitos, podendo representar assim apenas um n
umero
finitos de n
umeros reais, todos racionais. Desta forma muitos dos calculos sao feitos com
representacoes aproximadas dos n
umeros reais. Vamos enfatizar que todos os n
umeros de
maquina sao todos racionais, positivos ou negativos e possuem apenas um n
umero finito de
algarsmos ou dgitos.
O sistema de numeracao geralmente usado em nossas maquinas e o sistema binario, o qual
usa os algarismos 0 e 1 para representacao dos n
umeros. Estes n
umeros sao armazenados como
uma parte fracionaria, chamada de mantissa, juntamente com uma parte exponencial, chamada
de caracterstica.
Nota 1 Um bit e a menor unidade armazenada em um computador e e representada pelos
valores 0 ou 1. Um conjunto de 8 bits e dito um byte e nele podemos armazenar uma combinac
ao
8
de 0 ou 1 em cada um dos seus 8 bits e desta forma 1 byte pode armazenar 2 valores inteiros
distintos.
Em geral o computador armazena palavras e o acesso de leitura (escrita) e feito usando uma
ou mais palavras que sao acessadas atraves de um endereco u
nico. Normalmente cada palavra
e composta por 32 bits ou 64 bits, dependendo do processador usado.
Por exemplo um n
umero de ponto flutuante de precisao simples usado em alguns computadores consiste de:
Um dgito binario (bit) que indica o sinal;
7-bit para o expoente com base 16;
24-bit para a mantissa.
24-bit correspondem entre 6 ou 7 dgitos decimais, assim vamos assumir que temos pelo menos
seis dgitos de precisao para um n
umero de ponto flutuante. O expoente de 7 dgitos binarios
nos da uma variacao de 0 ate 127. Entretanto como desejamos representar tambem expoentes
negativos isto e queremos representar n
umeros pequenos, subtrairmos 64 da caracterstica e
assim o campo da exponencial varia de -64 ate 63.
Por exemplo seja o seguinte n
umero de maquina:

0 1000010 101100110000010000000000
O bit mais da esquerda, 0 no caso, indica que o n
umero e positivo.

12

(2.5)

Os proximos sete sao equivalentes ao n


umero decimal:
1.26 + 0.25 + 0.24 + 0.23 + 0.22 + 1.21 + 0.20 = 66
e sao usados para descrever a caracterstica, isto e o expoente de 16 (nosso computador
usa base hexadecimal) sera
66 64 = 2
.
Os u
ltimos 24 bits indicam que a mantissa e correspondem:
 3
 4
 7
 8
 14
 1
1
1
1
1
1
1
+ 1.
+ 1.
+ 1.
+ 1.
+ 1.
= 0.69927978515625
1.
2
2
2
2
2
2
Desta forma, o n
umero de maquina representado por (2.5) e dado por:
+0.69927978515625 162 = 179.015625
Note que, na nossa maquina, o n
umero imediatamente menor e o imediatamente maior que
(2.5) sao:

0 1000010 101100110000001111111111 = 179.0156097412109375

(2.6)

0 1000010 101100110000010000000000 = 179.015625

(2.7)

0 1000010 101100110000010000000001 = 179.0156402587890625

(2.8)

Assim sendo o n
umero (2.5) e usado para representar um intervalo de n
umeros reais,
[179.0156173706054875, 179.01563262939453125]
Para assegurar unicidade de representacao e obter toda a precisao disponvel no sistema e
imposta uma normalizacao, isto e ao menos um dos quatro dgitos mais a esquerda da mantissa
do n
umero de maquina e um. Assim o menor e o maior n
umeros de maquina positivos sao
respectivamente:

0 0000000 000100000000000000000000 = 1665 1078


0 1111111 111111111111111111111111 1663 1076 .

13

(2.9)
(2.10)

Nos calculos n
umeros abaixo do menor valor resultam um underflow e muitas vezes sao
vistos como zero, n
umeros acima do maior valor produzem um overflow, o que faz parar a
computacao.
Assim um n
umero de maquina e representado como,

0.d1 d2 ...dk 10n ,

1 d1 9,

0 di 9,

i = 2, ..., k

(2.11)

onde no nosso exemplo k = 6 e 78 n 76. Estes n


umeros sao chamados de n
umeros
decimais de maquina. Para representar n
umeros reais como n
umero decimal de maquina e feito
um corte, que despreza qualquer dgito apos dk ou o arredondamento que adiciona 5 10n(k1)
ao n
umero real antes de proceder o corte.

Observac
ao:
Em uma maquinaa representacao de ponto flutuante f l(y) de um n
umero y possui
um erro relativo. Vamos supor que estamos usando corte com k dgitos significativos
da se o n
umero real
y = 0.d1 d2 d3 ...dk dk+1 ... 10n ,
e temos seu erro relativo como:




0.d d d ...d dk+1 ...10n 0.d1 d2 d3 ...dk 10n
yf l(y)

y = 1 2 3 k 0.d
n
1 d2 d3 ...dk 10



dk+2 dk+3 ...10nk
= 0.dk+1

0.d1 d2 d3 ...dk 10n


k+1 dk+2 dk+3 ...
= 0.d0.d
10k
1 d2 d3 ...dk

1
0.1

10k = 10k+1 .

De forma similar um limite para o erro relativo quando usamos aritmetica de k


dgitos com arredondamento e 0.5 10k+1 .
Definic
ao 6 Se p e uma aproximacao de p, o erro absoluto e dado por |p p |, e o erro
relativo e dado por |p p | / |p|, providenciando que p 6= 0.
O erro relativo e o erro absoluto sao em geral distintos. O erro absoluto depende do problema
trabalhado (este depende de unidade), se estamos por exemplo usando metros e medindo a
distancia entre Porto Alegre e Caxias do Sul, um erro absoluto e de 2.0 101 m e desprezvel.
Agora se estamos medindo o comprimento de um quarto erro de dois metros e muito grande!
Agora dizer que o erro relativo e 2 101 significa um erro de 20% e isto nao depende de
unidades.

14

Definic
ao 7 O n
umero p e dito aproximar p com t algarismos significativos se t e o maior
inteiro nao negativo para o qual
|p p |
< 5 10t .
|p|
Em adicao a imprecisao de representacao dos n
umeros, a aritmetica feita em um computador
nao e exata. Nao entraremos a fundo neste assunto, mas vamos exemplificar o que pode ocorrer.
Sejam:
x e y n
umeros reais
f l(x) e f l(y) representacoes em ponto-flutuante
, , e representando as operacoes de maquina, definidas como:
x y = f l(f l(x) + f l(y)) x y = f l(f l(x) f l(y))
x y = f l(f l(x) f l(y)) x y = f l(f l(x)/f l(y))

(2.12)

Por exemplo seja:


Vamos considerar uma aritmetica de 5 dgitos com corte.
Exemplo 1:
x = 1/3 e y = 5/7 assim f l(x) = 0.33333 100 e f l(y) = 0.71428 100
Operacao
xy
y x
xy
y x

Resultado
Valor Real Erro Absoluto Erro Relativo
1
0.10476 10
22/21
0.190 104 0.182 104
0
0.38095 10
8/21
0.238 105 0.625 105
0.23809 100
5/21
0.524 105 0.220 104
1
0.21428 10
15/7
0.571 104 0.267 104

Exemplo 2:
u = 0.714251, v = 98765.9 e w = 0.111111 104 assim f l(u) = 0.71425 100 , f l(v) =
0.98765 105 e f l(w) = 0.11111 104
Operacao
Resultado
Valor Real
Erro Absoluto Erro Relativo
4
4
y u
0.30000 10
0.34714 10
0.471 105
0.136
(y u) w 0.27000 101 0.31243 101
0.424
0.136
(y u) v 0.29629 101 0.34285 101
0.465
0.136
uv
0.98765 105 0.98766 105
0.161 101
0.163 104
Na u
ltima tabela podemos ver problemas que ocorrem quando operamos com aritmetica
finita.
Problemas mais comuns
Cancelamento de dgitos significativos devido a subtracao de n
umeros quase iguais
Sejam:
f l(x) = 0.d1 d2 ...dp p+1 p+2 ...k 10n
f l(y) = 0.d1 d2 ...dp p+1 p+2 ...k 10n

15

Note que:
f l(x) f l(y) = 0.00...01 2 ...kp 10n
onde i = p+i p+i . Assim
f l(f l(x) f l(y)) = 0.1 ...kp kp+1 ...k 10np
Os n
umeros kp ...k sao criadosem alguns computadores de forma aleatoria e em outros
sao considerados nulos. Esta falta de precisao sera carregada em operacoes posteriores.
Divisao por n
umero muito pequeno ou multiplicacao por n
umero muito grande
Seja z um n
umero real e z + sua representacao em ponto flutuante, onde e o erro
cometido no corte ou arredondamento. Vamos supor que  = 10n , assim
f l(z + )
z

= (z + ) 10n

f l()
Isto e o erro absoluto e de || 10n o que pode ser muito grande!
Observac
ao:
Algumas vezes a perda de dgitos significativos e precisao podem ser evitadas re-ordenando as
operacoes.
Exemplo 3:
Vamos considerar a equacao quadratica:
x2 +

6210
x + 1 = 0,
100

que possui solucao exata dada por:

621 385241
x1 =
62.083892762591031419
20
e

621 + 385241
x2 =
0.016107237408968581
20
Vamos, agora, refazer os calculos usando uma maquinaque usa arredondamento
com 4 algarismos significativos. Assim
b2
= 3856.41 = 3856.
4ac
= 4
= 4.000

2
b 4ac =
3852. 62.06
Assim,
f l(x1 ) =

b +

b2 4ac
62.10 + 62.06
0.04000
=
=
= 0.02000
2a
2.0000
2.000

16

e uma aproximacao para x1 = 0.01611 e o erro relativo cometido no calculo e


grande,
| 0.01611 + 0.02000|
2.4 101
| 0.01611|
O problema desta equacao e que b2 e muito maior que 4ac e assim o numerador, no
calculo de x1 , envolve uma subtracao de n
umeros proximos.
No calculo de x2 este problema nao ocorre, pois envolve soma de dois n
umeros
proximos, assim,

62.10 62.06
124.2
b b2 4ac
=
=
= 62.10
f l(x2 ) =
2a
2.0000
2.000
e a aproximacao de x2 = 62.08, e o erro relativo e
| 62.08 + 62.10|
3.2 104 .
| 62.08|

Para melhorarmos o calculo de x1 podemos proceder a seguinte racionalizacao:



b + b2 4ac b b2 4ac
b2 (b2 4ac)

x1 =
=
2a
b b2 4ac
2a(b b2 4ac)
Logo,
x1 =

2c

.
b + b2 4ac

e no nosso caso teramos


f l(x1 ) =

2.000
2.000
=
= 0.01610
62.10 + 62.06
124.2

O erro relativo agora e de 6.2 104 .


Note: Se usarmos esta formula no calculo de x2 obteramos 50.00, isto e um erro
relativo de 1.9 101 .
Perda de Precis
ao
Uma boa questao e saber quantos bits significativos binarios sao perdidos com a subtracao de
dois n
umeros proximos x e y? A resposta dependem dos valores de x e y, entretanto temos um
teorema que nos fornece os limites em funcao da quantidade k1 = y/xk, que e uma medida de
quanto x e y estao proximos.

17

Teorema 10 Perda de Precis


ao Se x e y sao n
umeros binarios de maquina de ponto flutuante normalizados tais que x > y e
2=q 1

y
2p
x

entao no maximo q e pelo menos p bits binarios significantes sao perdidos na subtracao x y.
Prova: ver Kincaid e Cheney, Numerical Analysis pg 60.
Exemplo 4:
Vamos considerar a funcao
y(x) = x sin(x)
quando x e pequeno, temos que sin(x) x, este calculo ira ocasinar perda de dgitos
significantes. Podemos evitar neste caso esta perda, usando serie de Taylor, assim:


5
7
3
y(x) = x sin(x) = x x x3! + x5! x7! + ....
=

x3
3!

x5
5!

x7
7!

+ ....

Desta forma para x pequeno temos que


x3 x 5 x7

+
+ ....
y(x) =
3!
5!
7!

(2.13)

Para fazrmos um programa para calcular esta serie, podemos gerar uma sequencia
de termos ti como

t1
= x3 /6
tn+1 = tn x2 /[(2n + 2)(2n + 3)],
n1
e a soma parcial desta sequencia pode ser obtida por:

s1
= t1
sn+1 = sn tn+1 ,
n1
Vamos agora mostrar que devemos sempre calcular polinomios de forma encaixadapara
evitar erros de arredondamento. Primeiramente vamos a um exemplo:
Exemplo 5:
Vamos calcular f (4.71) usando aritmetica de tres dgitos com arredondamento, onde
f(x) e o polinomio:
f (x) = x3 6x2 + 3x 0.149
x
x2
x3
6x2
3x
Exato
4.71 22.1841 104.487111 133.1046 14.13

T r
es digitos(arred.) 4.71 22.2
105.
133.
14.1

18

Exato
f (4.71) = 104.487111 133.1046 + 14.13 0.149 = 14.636489

T r
es digitos(arred.) f (4.71) = 105. 133. + 14.1 0.149 = 14.1
O erro relativo cometido e:


14.636489 (14.0)
0.04.



14.636489
Uma alternativa para este calculo e usar a forma encaixada,
f (x) = x3 6x2 + 3x 0.149 = ((x 6)x + 3)x 0.149.
Usando esta forma de calculos temos:
f (4.71) = ((4.71 6)4.71 + 3)4.71 0.149 = 14.6
e o erro relativo cometido baixa para 0.0025.
Obervaco
es:
Sempre que formos calcular o valor de um polinomio em um ponto devemos faze-lo na
forma encaixadapara evitar erros de arredondamento.
Este texto foi adaptado da referencia Analise Numerica - Burden and Faires e Numerical
Analysis - Kincaid e Cheney.

2.2.1

Tipos de Erros

Durante as varias etapas de solucao de um problema podem surgir muitas fontes de erros
numericos. Para o uso de metodos numericos e importante conhecer estes tipos de erros para
podermos contorna-los. O primeiro tipo de erro e devido ao metodo numerico usadoe este erro
e chamado de erro de truncamento. Por exemplo, para avaliar uma funcao sabemos que um
computador apenas usa operacoes aritmeticas e logicas, assim para encontrar o valor de sin x
fazemos
sin x =

X
n=0

(1)n

x2n+1
x3
x5
x7

=x
+

+ ... para 0 x
(2n + 1)!
6
120 5040
4

Quanto mais termos agregarmos a soma mais a serie se aproxima do valor real, como mostra a
tabela abaixo

19

N
X
x2n+1
sin x
(1)n
(2n + 1)!
n=0
x
N =2
N =3
N =4
0
0
0
0
6
9
/16 2.4 10
2.2 10
1.2 1012
/8 7.8 105 2.9 107 6.1 1010
/6 3.3 104 2.1 106 8.1 109
/4 2.5 103 3.6 105 3.1 107

Tabela 2.1: Erro relativo


O erro cometido quando encontramos um resultado numerico pode ser medido de duas
formas. O primeiro e o erro absoluto que e definido por:
Erro Absoluto = | valor real - valor aproximado|
Este tipo de erro depende das unidades usadas. A segunda forma do erro e o erro relativo
definido por:
| valor real - valor aproximado|
Erro Relativo =
|valor real|
quando valor real 6= 0. Sua vantagem e a independencia da magnitude dos valores trabalhados.
Ainda temos o erro de arredondamento, que ocorre pois um n
umero decimal qualquer,
por exemplo 0.4, nao pode ser representado de forma exata em um computador pois ele precisa
ser convertido para base 2 e armazenado atraves de um n
umero finito de bits. As consequencias
deste tipo de erro, conforme ja foram exemplificadas podem ser catastroficas.

2.3

Ordens de converg
encia e conceitos b
asicos

Em calculos numericos muitas vezes a resposta e obtida como uma sequencia de valores que usualmente exibe progressivamente uma maior precisao. Desta forma a convergencia de sequencias
e um assunto muito importante em analise numerica.

2.3.1

Converg
encia de Sequ
encias

Escrevemos limn xn = L se existe uma correspondencia para cada  positivo de um n


umero
real r de forma que |xn L| <  sempre que n > r.
Por exemplo:


n + 1

n+1
lim
= 1 porque
1 <  sempre que n > 1 .
n
n
n
Como outro exemplo, lembramos do calculo que
n

1
e = lim 1 +
n
n

20

Se calculamos a sequencia xn = (1 + 1/n)n , temos:


n
1
100
200
300
400
500
600
700
800
900
1000
1100
1200
1300
1400
1500
1600
1700
1800
1900
2000
2100
2200
2300
2400
2500
2600
2700
2800
2900
3000

x
2.00000000
2.70481383
2.71151712
2.71376516
2.71489174
2.71556852
2.71602005
2.71634274
2.71658485
2.71677321
2.71692393
2.71704727
2.71715008
2.71723707
2.71731165
2.71737629
2.71743285
2.71748276
2.71752713
2.71756684
2.71760257
2.71763490
2.71766429
2.71769113
2.71771574
2.71773837
2.71775927
2.71777861
2.71779658
2.71781331
2.71782892

erro relativo
0.26424112
0.00495460
0.00248860
0.00166159
0.00124714
0.00099817
0.00083206
0.00071335
0.00062428
0.00055499
0.00049954
0.00045417
0.00041635
0.00038434
0.00035691
0.00033313
0.00031232
0.00029396
0.00027764
0.00026303
0.00024989
0.00023799
0.00022718
0.00021730
0.00020825
0.00019993
0.00019224
0.00018512
0.00017851
0.00017236
0.00016662

limn xn+1 /xn


0.01875030
0.50227992
0.66768176
0.75057148
0.80036593
0.83358754
0.85732967
0.87514305
0.88900193
0.90009158
0.90916660
0.91673027
0.92313112
0.92861816
0.93337405
0.93753578
0.94120817
0.94447272
0.94739380
0.95002291
0.95240173
0.95456438
0.95653906
0.95834924
0.96001466
0.96155201
0.96297553
0.96429740
0.96552814
0.96667685

Note que usando dupla precisao no FORTRAN, temos evidencia que limn xn+1 /xn 1.
Esta convergencia e muito lenta, na verdade e menos que linear.
Como um exemplo de uma sequencia com converg
encia rapida vamos definir por recorrencia
a seguinte sequencia convergente para o valor de 2,

x1 =
2
xn+1 = 12 xn + x1n , n 1
Os elementos produzidos por esta sequencia sao:

x1 = 2.000000

x2 = 1.500000
x3 = 1.416667

x4 = 1.414216

21


O limite desta sequencia e 2 = 1.414213562... e devemos notar que esta sequencia esta convergindo para o limite muito rapidamente. Usando computacao com dupla-precisao encontramos
a evidencia que

|xn+1 2|

0.36
|xn 2|2
Esta condicao corresponde a uma convergencia de ordem 2, isto e quadratica.

2.3.2

Ordem de converg
encia

Existe uma terminologia especial para definir o quanto rapido uma sequencia converge para seu
limite. Seja {xn }
encia de n
umeros reais tendendo a um limite x . Dizemos que a
n=1 uma sequ
razao de convergencia desta sequencia e linear se existe uma constante 0 < c < 1 e um inteiro
N de forma que
|xn+1 x | c|xn x |

(n N )

A convergencia e dita quadr


atica se existe uma constante C, nao necessariamente menor que
1, e N inteiro tal que
|xn+1 x | C|xn x |2

(n N )

Em geral, se existem constantes positivas C e e um inteiro N de forma que


|xn+1 x | C|xn x |

(n N )

ou
|xn+1 x |
C
|xn x |

(n N )

dizemos que a taxa de convergencia e de pelo menos .


Definic
ao 8 Vamos supor que {n }
e uma sequencia que converge para zero, e que {n }
n=1
n=1
e uma sequencias que converge para um n
umero . Se existe uma constante positiva K de forma
que
|n | K|n |,

para um valor grande de n,

entao dizemos que {n }


encia O(n ). Indicamos
n=1 converge para com uma taxa de converg
a taxa de convergencia da seguinte maneira:
n = + O(n ).

22

Embora a definicao (8) permita comparar duas sequencias arbitrarias, em quase todos os casos
usamos
n =

1
,
np

para um n
umero qualquer p > 0. Geralmente estamos interessados no maior valor de p para o
qual n = + O(1/np ).
Exemplo 1 Para n 1, vamos definir duas sequencias como:
n =

n+1
n2

e
n =

n+3
.
n3

Podemos notar que limn n = limn


n = 0, mas a sequencia {
n } converge muito mais
rapidamente para zero que {n }, quando utilizamos uma aproximacao por arredondamento de
cinco dgitos, temos:
n
n

1
2.00000
4.00000

2
0.75000
0.65500

3
0.44444
0.22222

4
0.31250
0.10938

5
0.24000
0.064000

6
0.19444
0.041667

7
0.16327
0.029155

Se fizermos n = 1/n e n = 1/n2 , veremos que:


|n 0| =

n+n
1
n+1

=
2.
= 2n
n2
n2
n

|
n 0| =

n + 3n
1
n+3

= 4. 2 = 4n ,
3
3
n
n
n

e portanto
 
1
|n | = 0 + O
n

2.3.3

e
n = 0 + O

1
n2


.

Algoritmos

Um algoritmo e um procedimento que descreve de uma forma nao ambgua uma sequencia finita
de passos a serem executados em uma certa ordem. O objetivo de um algoritmo e implementar
um procedimento numerico para encontrar uma solucao aproximada de um problema.
Usaremos um pseudocodigo para descrever os algoritmos. Este pseudocodigo especifica a
forma dos dados de entrada a serem fornecidos e a forma desejada dos resultados produzidos.
Nem todos os procedimentos numericos produzem resultados satisfatorios para dados de entrada escolhidos arbitrariamente. Desta forma uma tecnica independente para interrupcoes dos
procedimentos e incorporada para prevenir calculos com loops infinitos.
Normalmente dois sinais de pontuacao sao usados dentro de um algoritmo: um ponto indica
fim de um passo e um ponto e vrgula separa tarefas dentro de um passo. Os passos de um

23

algoritmo geralmente seguem as regras de uma construcao de programa estruturado. Ele deve
ser feito de forma que nao haja a mnima dificuldade para traduzi-lo em uma linguagem de
programacao aceitavel para aplicacoes cientficas.

Exemplo 2 Vamos fazer um algoritmo para somar N n


umeros
ALGORITMO 1 Este algoritmo soma N n
umeros dados.
INPUT
SADA

N, x1 , x2 , ..., xn .
P
SOM A = N
i=1 xi .

Passo1
Passo2

Faca SOM A = 0.
Para i = 1, 2, ..., N Faca
SOM A = SOM A + xi .
SADA SOM A.
PARE.

Passo3

Estamos interessados em escolher metodos que produzam resultados confiaveis e precisos para
um grande n
umero de problemas.
Dizemos que um algoritmo e estavel se pequenas alteracoes nos dados iniciais
produzam pequenas alteracoes nos resultados.
Em caso contrario o algoritmo e dito inst
avel. Devemos notar que alguns algoritmos sao
estaveis para alguns valores dos dados iniciais e para outros nao. Estes algoritmos sao ditos
condicionalmente est
aveis.
Vamos agora relacionar o crescimento do erro de arredondamento e a estabilidade de um
algoritmo. Vamos supor que um erro E0 > 0 seja introduzido em algum estagio do procedimento
de um calculo e que depois de n operacoes subsequentes seja indicado por En . Aqui vamos definir
os dois casos mais comuns na pratica.
O crescimento do erro e dito linear se En CnE0 , onde C e uma constante independente de
n. Agora se En C n E0 para qualquer C > 1 entao o crescimento do erro e dito exponencial.
Devemos notar que o crescimento linear normalmente e inevitavel, agora o erro exponencial
deve ser evitado. Muitas vezes um metodo atrativo (simples e facil de usar) pode ser instavel,
isto e existem metodos que seriam otimos em um computador perfeito, mas em computadores
que usam aritimetica de ponto flutuante seriam metodos imprecisos. No caso de computadores
precisamos que os metodos sejam estaveis.
Exemplo 3 O primeiro exemplo e um pouco artificial, porem e um bom exemplo. Existe um
algoritmo que calcula todas as potencias inteiras do n
umero chamado na literatura de Golden

24

Mean, atraves de uma formula de recorrencia envolvendo apenas operacoes simples (subtrac
ao)
definida em (2.14). Este n
umero e definido por:

51
= 0.61803398...

2
e podemos mostrar que para gerar a sequencias das potencias deste n
umero, basta calcular a
seguinte relacao de recorrencia que usa apenas a operacao de subtracao,
n+1 = n1 n .

(2.14)

Note que esta sequencia converge para zero e todos os seus termos sao positivos! (Como exerccio
verifique que esta relacao esta correta).
Assim temos: 0 = 1 e 1 = 0.6180340, usando um programa numerico calculamos que:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30

1.0000000
0.6180340
0.3819660
0.2360680
0.1458980
0.0901699
0.0557282
0.0344417
0.0212864
0.0131553
0.0081311
0.00502422
0.00310688
0.00191734
0.00118954
0.00072780
0.00046174
0.00026606
0.00019568
0.00007038
0.00012530
-0.00005492
0.00018022
-0.00023514
0.00041536
-0.00065050
0.00106586
-0.00171636
0.00278222
-0.00449858
0.00728080

Os n
umeros negativos que aparecem na tabela anterior ocorrem porque esta formula envolve
subtracao catastrofica, isto e subtracao de n
umeros muito proximos!!!!!

25

Exemplo 4 Neste segundo exemplo, vamos considerar a solucao de duas equacoes em diferencas lineares com coeficientes constantes e ordem 2. A teoria deste tipo de equacao e parecida
com a de equacoes diferenciais ordinarias lineares com coeficientes constantes.
1. A primeira equacao que vamos considerar e:
pn =

10
pn1 pn2 para n = 2, 3, ...,
3

cuja solucao e dada por


 n
1
p n = c1
+ c2 3n
3

(2.15)

(2.16)

pois, se fazemos n = i 1 e n = i 2 em (2.16) temos:


pi1 = c1
pi2 = c1


1 i1
3
1 i2
3

+ c2 3i1
+ c2 3i2

(2.17)

Agora, substituindo as equacoes (2.17) em (2.15) temos:


!
 i1
 i2
10
10
1
1
i1
pi1 pi2 =
c1
+ c2 3
+ c2 3i2
+ c1
3
3
3
3



 i2 
10 1
10
1
i2
1 + c2 3
31 =
= c1
3
3 3
3
 i
 i2  2
1
1
1
2
i2
+ c2 3 (3) = c1
+ c2 3i = pi
= c1
3
3
3
Desta forma acabamos de mostrar que (2.16) e solucao da (2.15). Para determinarmos
as constantes c1 e c2 precisamos de 2 condicoes iniciais, aqui vamos considerar como
condicao inicial
p0 = 1 e p1 = 1/3.
Neste caso, as constantes c1 e c2 sao calculadas fazendo i = 0 e i = 1 em (2.16) e
resolvendo o sistema linear resultante:

 0

p 0 = c1 3 + c2 3
1 = c1 + c2

c1 = 1 e c2 = 0,
1
c1

=
+
3c
2
p1 = 1 + 3c2
3
3
3
e a solucao particular do nosso problema e
pn = (1/3)n

26

para todo n. Esta solucao tende para zero quando n cresce.


Por outro lado, se realizamos estes calculos em uma maquina com aritmetica de cinco
dgitos, a condicao inicial seria
p0 = 1.0000 e p1 = 0.33333.
Se calculamos as constantes c1 e c2 nesta maquina com 5 dgitos encontramos,
c1 = 1.0000 e c2 = 0.12500 105 6= 0.
Note que o erro gerado por esta aproximacao e
pn pn = 0.12500 105 3n ,
isto e, conforme o n cresce o erro de arredondamento cresce exponencialmente, fazendo
que a solucao nao va para zero quando n cresce, como pode ser observado na tabela
n
0
1
2
3
4
5
6
7
8

pn calculado
0.10000 101
0.33333 100
0.11110 100
0.37000 101
0.12230 102
0.37660 101
0.32300 103
0.26893 102
0.92872 102

pn exato
0.10000 101
0.33333 100
0.11111 100
0.37037 101
0.12346 101
0.41152 102
0.13717 102
0.45725 103
0.15242 103

Erro Relativo

9 105
1 103
9 103
8 101
8 101
7 100
6 101

onde podemos observar que quando n=8 o erro cometido e da ordem de 101 ! Isto e o erro
cresce exponencialmente.
2. Agora vamos considerar outra equacao em diferencas
pn = 2pn1 pn2 para n = 2, 3, ...,
Sua solucao e dada por
p n = c1 + c2 n
Neste caso, tambem vamos considerar as condicoes iniciais,
1
p0 = 1 e p1 = ,
3
as constantes c1 e c2 sao dadas por: c1 = 1 e c2 = 2/3. Desta forma a solucao geral do
nosso problema e dado por:
2
pn = 1 n.
3

27

Agora, se consideramos uma maquina com aritmetica de 5 dgitos temos:


p0 = 1.0000 e p1 = 0.33333.
Calculando as constantes nesta maquina com 5 dgitos encontramos,
c1 = 1.0000 e c2 = 0.66667.
Note que o erro gerado por esta aproximacao e pn pn = (0.666672/3)n, isto e o erro de
arredondamento cresce linearmente com n, como pode ser observado na seguinte tabela:
n
0
1
2
3
4
5
6
7
8

pn calculado
0.10000 101
0.33333 100
0.33330 100
0.10000 101
0.16667 101
0.23334 101
0.30000 101
0.36667 101
0.43334 101

pn exato
0.10000 101
0.33333 100
0.33333 100
0.10000 101
0.16667 101
0.23333 101
0.30000 101
0.36667 101
0.43333 101

Erro Relativo

9 105
0
0
4 105
0
0
2 105

Este tipo de erro de arredondamento pode ser reduzidos se fazemos os calculos com um
n
umero maior de dgitos significativos. Mas mesmo assim, devemos notar que este tipo
de erro pode ser minorado mas nao eliminado. Ele sera apenas postergado quando trabalhamos com aritmetica finita.

2.4

Observac
oes Finais - Opera
co
es com Ponto Flutuante

Em 1985 o IEEE - Institute for Eletrical And Eletronic Engineers publicou normas para ponto
flutuante binario com o artigo Binary Floating Point Arithmetic Standard 754-1985. Estas normas especificam formatos para precisao simples, dupla e estendida que sao, em geral, seguidas
pelos fabricantes.

28

Tabela 2.2: Formato IEEE para n


umeros de ponto flutuante
Precisao
Propriedade
Simples
Dupla
Estendida
comprimento total
32
64
80
bits na mantissa
23
52
64
bits no expoente
8
11
15
base
2
2
2
expoente maximo
127
1023
16383
expoente mnimo
-126
-1022
16382
maior n
umero
3.8 1038
1.8 10308
1.9 104932
menor n
umero
1.18 1038 2.23 10308 3.36 104932
dgitos decimais
7
16
19
Assim, por exemplo um co-processador numerico de PCs que usa representacao de 64 bits
para n
umero real com precisao dupla utiliza,
1. 1 bit para sinal (s),
2. 11 bits para a parte exponencial (c) caracterstica,
3. 52 bits para a parte fracionaria (f) mantissa e
4. base = 2.
52 bits binarios significa 16 ou 17 dgitos decimais.
11 bits exponencial significa valores entre 0 e 211 1 = 2047. Usa-se somente inteiros
positivos no expoente, logo para que n
umeros de pequena magnitude sejam representados
o valor 1023 e subtrado da caracterstica e assim o expoente varia entre 1023 ate 1024.
Por economia de espaco de armazenamento e com a finalidade de fornecer uma representacao u
nica para cada n
umero de ponto flutuante, e feita uma normalizacao. O uso deste
sistema possui a forma:
(1)s 2c1023 (1 + f ).
Mas note que apesar da norma descrita acima, a forma de representacao de um n
umero de
ponto flutuante depende do fabricante do computador, logo um programa rodado em dois
computadores distintos podem fornecer resultados distintos.
Nota 2 Existem casos onde o erro de arredondamento e muito grave. Nestes casos pode ser
usada a aritmetica intervalar, onde um intervalo, e nao apenas um n
umero e considerado.
Aritmetica intervalar e uma aritmetica definida por desigualdades, isto e um n
umeroe definido
por um intervalo no qual ele esta contido. As operacoes sao definidas de forma intervalar, por
exemplo se a x b, e c y d, entao a + c x + y b + d. As operacoes entre intervalos
sao definidas por:

29

[a, b] + [c, d] = [a + c, b + d]
[a, b] [c, d] = [a c, b d]
[a, b] [c, d] = [min{ac, ad, bc, bd}, max{ac, ad, bc, bd}]
[a, b] [c, d] = [a, b] [d1 , c1 ], se 0 6 [c, d]
Este tipo de aritmetica mantem o erro de arredondamento sob controle. Para mais informac
oes
sobre o assunto ver o site http://www.cs.utep.edu/interval-comp/index.html.

30

Primeira Lista de Exerccios


1. Calcule o erro absoluto e erro relativo nas aproximacoes de p para p .
(a) p = , p = 22/7
(b) p = , p = 3.1416
(c) p = e, p = 2.718
2. Encontre o maior intervalo em que p deve se encontrar para aproximar p com um erro
relativo no maximo de 104 .
(a)

(b) 2
(c) 150
(d) 1500
3. Execute os seguintes calculos: (i) De forma exata; (ii) Usando aritmetica de tres dgitos
e corte; (iii) Usando aritmetica de tres dgitos e arredondamento. (iv) Calcule os erros
relativos dos tens (ii) e (iii)
(a)
(b)
(c)

4
5

+
1
3
1
3

1
3

3
11

3
11

3
20
3
20

X
4. O n
umero e pode ser definido por e =
(1/n!). Calcule o erro absoluto e relativo nas
n=0

seguintes aproximacoes de e:
5
X
1
(a)
n!
n=0
10
X
1
(b)
n!
n=0

5. Seja
f (x) =

x cos x sin x
.
x sin x

(a) Encontre o limx0 f (x).


(b) Utilize arredondamento com 4 dgitos para calcular f (0.1).
(c) Substitua cada funcao trigonometrica por seu polinomio de McLaurin de terceiro
grau e repita o item (b).

31

(d) O valor real e f (0.1) = 1.99899998. Encontre o erro relativo para os valores obtidos
nos tens (b) e (c).
6. Suponha que os pontos (x0 , y0 ) e (x1 , y1 ) estejam em uma linha reta com y0 6= y1 . Duas
formulas estao disponveis para encontrar o ponto onde esta linha corta o eixo dos x:
x=

x0 y1 x1 y0
y1 y0

x = x0

(x1 x0 )y0
y1 y0

(a) Mostre que ambas as formulas estao algebricamente corretas


(b) Use os dados (x0 , y0 ) = (1.31, 3.24) e (x1 , y1 ) = (1.93, 4, 76) e aritmetica de arredondamento de 3 dgitos significativos para calcular o valor do ponto de interseccao com
o eixo dos x por ambas as formulas. Qual o melhor metodo? explique o porque.
7. P
Utilize aritmetica de 3 dgitos significativos, com arredondamento para computar a soma
10
3
i=1 (1/i )
(a) Faca

1
1

+ 18 + ... +

(b) Faca

1
1000

+ ... +

1
1000
1
+ 11
8

Existe diferenca entre os dois resultados? Explique o que ocorre.

Problemas computacionais - Retirados de Numerical Analysis, Kincaid & Cheney


Use precisao simples na resolucao dos exerccios.
1. Escreva um programa para encontrar o valor de f (x) e g(x) para uma sucessao de valores
de x tais como 81 , 82 , 83 ,... .

f (x) =

g(x) =

x2 + 1 1

x2
x2 + 1 + 1

Apesar de f (x) = g(x) o computador ira produzir diferentes resultados. Quais sao os
resultados confiaveis e porque?
2. Usando seu computador escreva o valor das funcoes

32

f (x) = x8 8x7 + 28x6 56x5 + 70x4 56x3 + 28x2 8x + 1


g(x) = (((((((x 8)x + 28x) 56)x + 70)x 56)x + 28)x 8)x + 1
h(x) = (x 1)8
em 101 pontos igualmente espacados do intervalo [0.99, 1, 01], Calcule cada funcao de
forma direta sem simplificacao de formulas. Observe que as tres funcoes sao identicas, e
os resultados nao, sendo alguns deles aparecem negativos apesar de pela definicao de h(x)
sabermos que devem ser sempre positivos.
3. Um experimento numerico interessante e calcular o produto interno dos seguintes vetores:
x = [2.718281828; 3.141592654; 1.414213562; 0.5772156649; 0.3010299957]
y = [1486.249700; 878366.98790; 22.3749200; 4773714.6470; 0.0001850490]
Calcule a soma de 4 formas diferentes:
(a) Ordem direta

n
X

xi y i ,

i=1

(b) Ordem inversa

1
X

xi y i ,

i=n

(c) Do maior para o menor (some primeiro os positivos do maior para o menor, depois
some os negativos do menor para o maior, e entao proceda a soma parcial)
(d) Menor para o maior (ordem inversa da soma no item anterior)
(e) Use precisao simples e dupla para proceder os calculos dos tens anteriores. Compares
suas respostas com o resultado correto em sete casas decimais 1.006571 1011.
Explique os resultados
4. Repita o problema anterior mas corte o final 9 em x4 e o final 7 de x5 . Que efeito esta
pequena troca provoca?

33

Captulo 3
Sistemas Lineares
Um dos processos numericos mais utilizados para resolver problemas reais e a solucao de sistemas lineares, pois e uma etapa fundamental na resolucao numerica de modelagens que envolvam
equacoes diferencias, ajuste de curvas, otimizacao, sistemas nao lineares e outros. Desta forma
e muito im portante termos um metodo eficiente para resolve-lo.
Neste captulo, vamos estudar alguns metodos numericos para a solucao de um sistema
linear do tipo Ax = b. Comecamos relembrando alguns conceitos.

3.1

Algebra Matricial

Uma matriz e um arranjo retangular


1 j n colunas.

a11
a21

A = a31
..
.
an1

de n
umeros A = [aij ], com 1 i m linhas e

a12 a13 ... a1n


a22 a23 ... a2n

a32 a33 ... a3n


,
..
.. . .
..
. .
.
.
an2 an3 ... ann

Coluna: Uma matriz n 1 e dita uma matriz coluna ou vetor coluna de dimensoa n
Linha: Uma matriz 1 n e dita uma matriz linha ou vetor linha de dimensoa n
Nula: Uma matriz A e dita nula quando todos os seus elementos aij = 0
uma matriz quadrada cujos elementos fora da diagonal principal sao nulos ie
Diagonal: E

= 0 se i 6= j
aij =
6= 0 se i = j
uma matriz diagonal cujos elementos da diagonal principal sao unitarios,
Identidade: E
ie aii = 1

34

Triangular Superior: quando todos os elementos abaixo da diagonal principal sao nulos
aij = 0 se i < j
Triangular Inferior: quando todos os elementos acima da diagonal principal sao nulos
aij = 0 se i > j
Transposta: AT = [aji ]

a11 a12
a21 a22

A = a31 a32
..
..
.
.
an1 an2

a13 ...
a23 ...
a33 ...
.. . .
.
.
an3 ...

a1n
a2n

a3n
,
..
.
ann

a11
a12

AT = a13
..
.
a1n

a21 a31 ... an1


a22 a32 ... an2

a23 a33 ... an3

..
.. . .
..
. .
.
.
a2n a3n ... ann

Simetrica: A = AT
Densa: Quando a maior parte dos elementos da matriz e distinto de zero
Esparsa: Quando a maior parte dos elementos da matriz e igual a zero
A = [aij ]
Considere A e B de mesma ordem assim: A + B = [aij + bij ]
P
Considere: Am 1 p e Bp 1 n A B = [ pk=1 aik bkj ]
2

Pre-multiplicacao de uma matriz diagonal D por A equivale a multiplicar cada linha de


A pelo correspondente elemento de D, isto e:

a11 a21 a31 ... an1


d1 a11 d1 a21 d1 a31 ... d1 an1
d1 0 0 ... 0

0 d2


... 0

a12 a22 a32 ... an2 d2 a12 d2 a22 d2 a32 ... d2 an2
0 0 d3 ... 0 a13 a23 a33 ... an3 d3 a13 d3 a23 d3 a33 ... d3 an3

.. .. .. . .
.. ..
..
.. . .
.. ..
..
..
..
.
.
. . .
. . .
. . .
.
.
.
.
.
.
0 0 0 ... dn
a1n a2n a3n ... ann
dn a1n dn a2n dn a3n ... dn ann
Pos-multiplicacao de uma matriz diagonal D por A equivale a multiplicar cada coluna de
A pelo correspondente elemento de D, isto e:

a11 a21 a31 ... an1


d1 0 0 ... 0
d1 a11 d2 a21 d3 a31 ... dn an1

a12 a22 a32 ... an2 0 d2

... 0

d1 a12 d2 a22 d3 a32 ... dn an2


a13 a23 a33 ... an3 0 0 d3 ... 0 d1 a13 d2 a23 d3 a33 ... dn an3

..
..
.. . .
.. .. .. .. . .
.. ..
..
..
..
.
.
.
. . . . .
. . .
.
.
.
.
.
.
a1n a2n a3n ... ann
0 0 0 ... dn
d1 a1n d2 a2n d3 a3n ... dn ann

35

o produto entre um vetor x (n 1) e um vetor y (n 1) e resulta um


Produto Interno: E
escalar k obtido por
n
X
T
k=x y=
xi y i
i=1

o produto entre um vetor x (n 1) e um vetor y (m 1) e resulta


Produto Externo: E
uma matriz M (n n) onde cada elemento mij = xi yj

x1 y 1 . . . x 1 y m

..
M = xy T = ...
...
.
xn y1 . . . xn ym
Dois sistemas Ax = b e Bx = d sao ditos equivalentes se possuem a mesma solucao.

3.1.1

Opera
co
es Elementares

Em metodos numericos transformamos um sistema, atraves de operacoes elementares em outro


mais simples de ser resolvido.
1. Troca de duas equacoes do sistema Ei Ej

1 0 0
0 0 1 Troca as segunda e terceira linhas
0 1 0
2. Multiplicacao de uma equacao por um n
umero nao nulo Ei Ei .

1 0 0
0 0 multiplica a segunda linha por
0 0 1
3. Somar de

1
0
0

uma equacao um m
ultiplo de outra equacao Ei Ej Ei

0 0
1 0 multiplica a segunda linha por e soma na terceira
1

Teorema 11 Se um sistema linear de equacoes que e obtido de outro atraves de um n


umero
finito de operacoes elementares entao estes sistemas sao equivalentes.

36

3.1.2

Matrizes

Inn e a matriz identidade de ordem n, logo para qualquer Ann , AI = A = IA.


Se AB = I entao B e dita inversa pela direita de A e A e dita inversa pela esquerda de
B. Note que estas inversas nao sao necessariamente u
nicas, por exemplo:


 1 0


1 0 0
1
0
0 1 =
0 1 0
0 1
e f
Teorema 12 Uma matriz quadrada pode possuir no maximo uma inversa pela direita.
Prova:
Vamos supor que AB = I e que a(j) representa sua j-esima coluna.
Assim:
n
X

bjk a(j) = I(k) , para 1 k n

(3.1)

j=1

onde bjk sao os elementos da matriz B. Assim cada coluna de I e combinacao linear
das colunas de A e desta forma temos que as colunas de A formam uma base para
Rn logo os coeficientes de (5.1) sao unicamente determinados.
Teorema 13 Se A e B sao matrizes quadradas e AB = I entao BA = I.
Prova:
Vamos supor que AB = I.
Vamos considerar uma matriz C definida como: C = BA I + AB. Multiplicando
C pela esquerda por A temos:
AC = (AB)A A + (AB) = A A + I = I
Assim C e uma inversa pela direita de A, entao ao pelo teorema de unicidade,
C = B e assim
B = BA I + B, assim BA = I

Se Ann e se existe B de forma que AB = I entao AB = BA = I e neste caso B e dita


inversa de A e A e dita nao singular ou inversvel.
Se A e inversvel entao a solucao do sistema Ax = b u
nica.

37

Se uma matriz e inversvel entao existe uma sequencia de operacoes elementares tal que
Em Em1 ...E2 E1 A = I
Exemplo 5 Decompor a matriz em matrizes elementares e assim encontre sua inversa,

1 2 3
A = 1 3 3
2 4 7
Podemos ver que:

0 3
1 2

1
0
0
1
0
1
0
0

1
0
0

0
1

0
0
1
2

0
1
0

0
1

0
1
1
0

0
1
0

0
1

0
1
1
2

2
3
4


3
1

3 =
0
7
0

0
1
0

desta forma temos que a inversa da matriz A e dada por:

A1

1
= 0
0

0 3
1 2
1 0 0 1
0 1
0 0

0
1
0 0
1
2

0
1
0

0
1
0 1
1
0

0
1
0

0
9 2 3
0 = 1 1
0
1
2 0
1

Uma matriz A simetrica e dita:


1. definida positiva se para qualquer vetor x, com x 6= 0, xT Ax > 0.
2. semi-definida positiva se para qualquer vetor x, com x 6= 0, xT Ax 0.
3. definida negativa se para qualquer vetor x, com x 6= 0, xT Ax < 0.
4. semi-definida negativa se para qualquer vetor x, com x 6= 0, xT Ax 0.
5. indeterminada nos outros casos.


2 1
Exemplo 6 Por exemplo, a matriz
e definida positiva, pois:
1 2

 
 
2 1
x1
x
(x1 x2 )
= (2x1 +x2 x1 +2x2 ) 1 = 2x21 +2x1 x2 +2x22 = (x1 +x2 )2 +x21 +x22 > 0
1 2
x2
x2
xT Ax e chamado de forma quadratica
Se uma matriz A e positiva definida e simetrica, entao todos os seus autovalores sao reais
e positivos.

38

0
0
1

Teorema 14 As seguintes propriedades sao equivalentes:


1. A inversa de A existe (e nao singular).
2. O determinante de A e distinto de zero.
3. As linhas de A formam uma base de Rn .
4. As colunas de A formam uma base de Rn .
5. Como uma funcao de Rn em Rn , A e injetiva.
6. Como uma funcao de Rn em Rn , A e sobrejetiva.
7. Ax = 0 implica que x = 0.
8. Para qualquer b Rn existe um u
nico x Rn de forma que Ax = b.
9. A e um produto de matrizes elementares.
10. 0 nao e um autovalor de A.
Determinantes
Definimos determinante de uma matriz quadrada Ann como sendo um n
umero obtido por:
det(A) = |A| = a11 det(M11 ) a12 det(M12 ) + ... + (1)n+1 a1n det(M1n )
onde Mij e a matriz de onde n 1 obtida atraves da retirada da i-esima linha e da j-esima
coluna de A
Posto
Dizemos que um conjunto de vetores {v1 , v2 , ..., vp } e linearmente dependente se existem escalares, ai , i = 1 : p, nem todos nulos de forma que
a1 v1 + a2 v2 + ... + ap vp = 0
Caso contrarios os vetores sao linearmente independentes.
Vamos agora considerar uma matriz Amn . Chamamos de posto de A como sendo o n
umero
maximo de vetores colunas ou vetores linhas de A que sao LI. Podemos ver que
posto (A) min(m, n)
Traco
O traco de uma matriz quadrada A e a soma dos elementos de sua diagonal principal
Traco (A) =

n
X
i=1

39

aii

Propriedades de Transposta e Inversa


(AT )T = A
(A1 )1 = A
(A1 )T = (AT )1 = AT
(AB)T = BT AT
(AB)1 = B1 A1
(A + B)T = AT + BT
(A + B)1 6= A1 + B1 CUIDADO!

3.1.3

Autovalores e Autovetores

Uma matriz quadrada associa um conjunto de vetores n-dimensionais em si mesmo. Neste caso
existem certos vetores nao nulos x que sao paralelos a` Ax, isto e existe uma constante de
forma que Ax = x. Veremos que existe uma relacao muito proxima entre estes n
umeros e
a convergencia de metodos iterativos.
Polin
omio Caracterstico
Se A e uma matriz quadrada chamamos o determinante p() = det(A I) de polin
omio
caracterstico de A.
Autovalores
Os zeros do polinomio caracterstico de A sao chamados de autovalores de A.
Autovetores
O vetor x 6= 0, de forma que Ax = x e chamado de autovetor de A correspondente ao
autovalor .
Raio Espectral
Chamamos (A) de raio espectral de A e definimos por, (A) = max ||.

40

Observaco
es
Se o polinomio caracterstico de uma matriz A de ordem n e escrito como:
det(A I) = p() = dn n + dn1 n1 + .... + d1 + d0
se as razes deste polinomio (autovalores) sao representados por i , i = 1, 2, ..., n, entao podemos
mostrar que
n

dn1 X
1.
=
aii = Traco (A)
dn
i=1
2. (1)n

d0
= det(A)
dn

3. Pelas relacoes de Girard (relacao entre razes e determinantes de equacoes algebricas)


temos:
(a) 1 + 2 + ... + n =

n
X

i =

i=1

(b) 1 2 ...n =

n
Y
i=1

i = (1)n

dn1
dn

d0
dn

4. E desta forma obtemos duas propriedades importantes:


n
X

n
X

dn1
dn
i=1
i=1
Ou a soma dos elementos da diagonal principal de A e a soma de seus autovalores
n
Y
d0
(b) det(A) =
i pois det(A) = (1)n
dn
i=1
Ou o determinante de uma matriz e igual ao produto de seus autovalores.
(a)

aii =

ii pois Traco (A) =

Exemplo 7 Como exemplo, vamos considerar a matriz

1 0 2
A = 0 1 1 ,
1 1 1

1
0
2
1 1 = (1)3 +2(1)+(1) = (1)(2 2+4).
p() = det(AI) = det 0
1
1
1

Desta forma,
resolvendo p() = 0, os autovalores da matriz A sao 1 = 1, 2 = 1 + i 3 e
2 = 1 i 3.

41

1. Calculando autovetor correspondente ao autovalor 1 temos:



0 0 2
x1
0
1
A 1 I = 0 0 0 1 x2 = 0 x3 = 0 e x1 = x2 V1 = 1
1 1 0
x3
0
0
2. Calculando autovetor correspondente ao autovalor 2 temos:


0
2
i 3
x1
0

x2 = 0
A 2 I = 0
0
i 3 1

x3
0
1
1
i 3

2i/
3
i
2i
x1 = x3 e x2 = x3 V2 = i/ 3
3
3
1

3. Calculando autovetor correspondente ao autovalor 3 temos:


0
2
i 3
0
x1

x2 = 0
A 2 I = 0
0 i 3 1

0
x3
1
1 i 3

2i/ 3
2i
i
x1 = x3 e x2 = x3 V3 = i/ 3
3
3
1

3.1.4

Um pouco mais de Algebra


Matricial

Para discutirmos os erros numericos envolvidos em uma sequencia de vetores que aproxima
a solucao de um sistema de equacoes, precisamos uma medida de distancia entre vetores ndimensionais.
Definic
ao 9 Em um espaco vetorial V , uma norma e uma funcao ||.|| definida de V em um
conjunto de n
umeros reais nao negativos que obedecem as seguintes propriedades:
1. ||x|| > 0, se x 6= 0, x V
2. ||x|| = ||||x||, se R, x V
3. ||x + y|| ||x|| + ||y||, se x, y V (Desigualdade do triangulo)
As normas mais familiares sobre Rn sao:
P
1/2
1. A norma Euclideana `2 definida por: ||x||2 = ( ni=1 x2i ) , onde x = (x1 , x2 , ..., xn )T
P
2. A norma `1 definida por:||x||1 = ni=1 |xi |, onde x = (x1 , x2 , ..., xn )T

42

3. A norma do maximo ` , definida por: ||x|| = max1in |xi|, onde x = (x1 , x2 , ..., xn )T
Norma Matricial
Podemos definir normas matriciais apenas sujeitas a satisfazerem as propriedades (1) (3),
mas preferimos escolher aquelas que tambem estejam relacionadas com as normas matriciais
descritas anteriormente. Assim se uma norma vetorial ||.|| esta determinada, a norma matricial
associada a ela e definida por:
||A|| = sup {||Au|| tal que u Rn , ||u|| = 1}

(3.2)

Podemos demonstrar que:


Teorema 15 Se ||.|| e uma norma sobre Rn , entao a equacao (3.2) define uma norma sobre o
espaco linear de todas as matrizes quadradas de ordem n n.
Teorema 16 Se a norma ||.|| e a norma vetorial do maximo, entao ela esta associada a norma
matricial
||A|| = max

1in

n
X

|aij |

(3.3)

j=1

isto e kAk e o maior valor obtido pela soma dos modulos dos elementos de cada linha.
Deste teorema resulta que ||I|| = 1 e ||AB|| ||A||||B||.
Teorema 17 Se a norma ||.|| e a norma vetorial `1 , entao ela esta associada a norma matricial
||A|| = max

1jn

n
X

|aij |

(3.4)

i=1

isto e kAk1 e o maior valor obtido pela soma dos modulos dos elementos de cada coluna.
Uma outra norma importante e a norma Euclideana isto e a norma `2 tambem chamada de
norma espectral, definida por:
||A||2 = sup ||Ax||2
||x||2 =1

possvel demonstrar que


E
||A||2 = max |i | =

1in

(AT A)

onde i ao os valores singulares de A e (AT A) e o raio espectral de AT A e e definido como


sendo o maior autovalor da matriz AT A.
Teorema 18 Se A e uma matriz de ordem N entao:

 1/2
1. kAk2 = AT A
,

43

2. (A) kAk, para qualquer norma natural k.k.


Aqui nao vamos demonstrar este teorema. Vamos apenas usa-lo para calcular a norma
euclideana de uma matriz.
Exemplo 8 Considere a matriz

1 1 0
A = 1 2 1
1 1 2
assim temos que:

1 1 1
1 1 0
3 2 1
AT A = 1 2 1 1 2 1 = 2 6 4
0 1 2
1 1 2
1 4 5
Para encontrarmos os autovalores desta matriz devemos encontrar as razes de:

3
2
1
6
4 = (2 14 + 42)
0 = det(AT A I) = 2
1
4
5
Desta forma temos que os autovalores de A sao 1 = 0, 2 = 7 +
forma podemos encontrar que:
q
p

T
kAk2 = (A A) = 7 + 7 3.106.

3.2

7 e 3 = 7

Eliminac
ao de Gauss

Vamos considerar um sistema de equacoes algebricas lineares:


a11 x1 + a12 x2 + a13 x3 + . . . + a1n xn = b1
a21 x1 + a22 x2 + a23 x3 + . . . + a2n xn = b2
a31 x1 + a32 x2 + a33 x3 + . . . + a3n xn = b3
..
.
an1 x1 + an2 x2 + an3 x3 + . . . + ann xn = bn
ou matricialmente:

a11 a12 a13 . . . a1n


a21 a22 a23 . . . a2n
a31 a32 a33 . . . a3n
..
.
an1 an2 an3 . . . ann

44

x1
x2
x3
..
.
xn

b1
b2
b3
..
.
bn

7. Desta

Se a matriz A e uma matriz quadrada nao singular entao podemos garantir a existencia de
solucao u
nica pois:
Ax = b x = A1 b
Aqui iremos considerar apenas o caso de sistemas onde A e uma matriz quadrada.
Um sistema possui apenas uma solucao quando det(A) 6= 0 e isto independe do vetor b
considerado. Agora, quando det(A) = 0 dependendo do vetor b considerado podemos ter
muitas ou nenhuma solucao.

3.2.1

Decomposi
c
ao de Gauss B
asica

Vamos considerar o

6 2
12 8

3 13
6
4

seguinte sistema:

2
4
x1
12

6
10 x2 34
9
3 x3 27
1 18
x4
38

(3.5)

Subtramos 2 vezes a equacao 1 da equacao 2.


Subtramos

1
2

da equacao 1 da terceira.

Subtramos 1 vezes a equacao 1 da quarta.


os n
umeros m21 = 2, m31 = 12 e m41 = 1 sao chamados de multiplicadores para o
primeiro passo do processo de eliminacao.
O elemento 6 usado como divisor na formacao de cada um destes multiplicadores e chamado de Piv
o.
E assim obtemos:

6 2
0 4

0 12
0
2


2
4
x1
12
x2 10
2
2

8
1 x3 21
x4
26
3 14

(3.6)

Neste primeiro estagio, chamamos a linha 1 de linha do piv


o. No proximo estagio do processo
a linha 2 e usada como linha do pivo.
O elemento pivo e 4.
Subtramos 3 vezes a a segunda linha da terceira.
Subtramos

1
2

vezes a segunda linha da quarta.

Os multiplicadores sao m32 = 3 e m42 =

1
.
2

45

6 2
0 4

0
0
0
0


2
4
x1
12
x2 10
2
2

2 5 x3 9
4 13
x4
21

(3.7)

Ou
ltimo estagio consiste em:
Subtramos 2 vezes a terceira linha da quarta.
O pivo e 2
O multiplicador e m43 = 2.
O sistema resultante e:

6 2 2
4
0 4 2
2

0
0 2 5
0
0 0 3


x1
x2

x3
x4

12
10

9
3

(3.8)

Este sistema e triangular superior e equivalente ao sistema original, isto e suas solucoes sao
identicas. O sistema final e resolvido por retro-substituicao e a solucao e:

1
3

x=
2
1
Os multiplicadores usados para transformar o sistema podem ser mostrados como uma
matriz triangular inferior:

1
0 0 0
2
1 0 0

(3.9)
L=

1
3
1
0
2
1 12 2 1
Note que cada multiplicador esta no lugar de um elemento 0 da matriz o qual ele foi o responsavel
por criar. A matriz coeficiente do sistema final e triangular superior U,

6 2 2
4
0 4 2
2

U=
(3.10)
0
0 2 5
0
0 0 3
Estas duas matrizes fornecem a decomposicao LU de A, a matrix coeficiente do sistema original.
Assim,

6 2 2
4
1
0 0 0
6 2 2
4
12 8 6

10
1 0 0
2

= 21
0 4 2

(3.11)
3 13 9

3
3 1 0
0
0 2 5
2
6
4 1 18
1 12 2 1
0
0 0 3

46

Para podermos descrever formalmente o processo do algoritmo de eliminacao Gaussiana,


interpretamos como sendo uma sucessao de n 1 passos maiores que resulta em uma sucessao
de matrizes que vamos chamar de
A = A(1) A(2) ... A(n)
Na conclusao
(k)
a1,1

..
.

..
.
0

do k-esimo passo construmos a matriz A(k) ,


(k)
(k)
(k)
(k)
a1,k ... a1,j ... a1,n
... a1,k1

..
..
..
...

.
.
.

(k)
(k)
(k)
(k)
ak1,k1 ak1,k ... ak1,j ... ak1,n

(k)
(k)
(k)
...
0
ak,k ... ak,j ... ak,n

(k)
(k)
(k)
...
0
ak+1,k ... ak+1,j ... ak+1,n

..
..
..
..

.
.
.
.

(k)
(k)
(k)
... ai,n
ai,k ... ai,j
...
0

..
..
..
..

.
.
.
.
...

(k)

an,k

...

(k)

...

an,j

(k)

an,n
(k)

Para obtemos A(k+1) de A(k) : Para produzir zeros abaixo do k-esimo pivo akk subtramos
m
ultiplos da linha k das linhas abaixo dela, assim as linhas 1, 2, ..., k nao sao alteradas e:
(k)

se i k
ai,j 

(k+1)
(k)
(k)
(k)
(k)
(3.12)
ai,j =
ai,j ai,k /ak,k ak,j se i k + 1 e j k + 1

0
se i k + 1 e j k + 1
Depois de todos os passos feitos temos uma matriz triangular superior U = A(n) .
Com os multiplicadores definimos uma matriz triangular inferior L, definida por:


(k)
(k)

se i k + 1
ai,k /ak,k
`i,k =
(3.13)
1
se i = k

0
se i k 1
Assim A = LU e a eliminacao Gaussiana comum. Note que isto vale se nao tivermos nenhum
piv
o nulo.
(k)

Teorema 19 Se todos os elementos pivo, ak,k sao nao nulos no processo descrito, ent
ao A =
LU.
ALGORITMO 2 (Eliminac
ao de Gauss com substituic
ao retroativa:) Resolve o sistema linear Ax = b de ordem n.
.ENTRADA:

47

n
umero de equacoes n;
Matriz expandida A = (aij ), 1 i n e 1 j n + 1
(ai,n+1 = bi ).

.SAIDA:
Vetor solucao x = (xi ) ou mensagem de erro
.Passo 1: Para i = 1, ...n 1 siga os passos 2-4. (Processo de eliminacao.)
.
Passo 2: Seja p o menor inteiro com i p n e api 6= 0.
.
Se nenhum p pode ser encontrado, entao:

.
SAIDA:
(A solucao d problema nao e u
nica)
.
PARE
.
Passo 3: Se p 6= i entao execute (Ep ) (Ei ).
.
Passo 4: Para j = 1, ..., n siga os passos 5 e 6.
.
Passo 5: Faca mji = aji /aii .
.
Passo 6: Execute (Ej mji Ei ) (Ej );
.Passo 7: Se ann = 0 entao:

.
SAIDA:
(Nao existe solucao u
nica);
.
PARE
.Passo 8: Faca xn = an,n+1 /ann . (Incio da substitui
cao retroativa.)

P
.Passo 9: Para i = n 1, n 2, ..., 1 faca xi = ai,n+1 nj=i+1 aij xj aii .

.Passo 10: SAIDA


(x1 , x2 , ..., xn ); (O procedimento foi completado com sucesso.) .
.
PARE
No algoritmo anterior podemos armazenar os multiplicadores mij nos enderecos de aij que ja
tenham o valor zero para cada i = 1, 2, ..., n 1 e j = i + 1, i + 2, ..., n. Assim, A e substituda
pelos multiplicadores, abaixo da diagonal principal, e por A(n) acima e sobre a diagonal principal. As quantidades de tempo computacional e erros de arredondamento dependem do n
umero
de operacoes aritmeticas de ponto flutuante na rotina. Em geral o tempo necessario aritmeticas
necessario para proceder a multiplicacao ou uma subtracao e aproximadamente o mesmo e e
consideravelmente maior que o tempo necessario para executar uma adicao ou uma subtracao.
Desta forma o custo computacional e normalmente medido em n
umero de multiplicacoes e/ou
divisoes.
Nenhuma operacao ate o passo 3.
No passo 5, sao necessarias (n i) divisoes e no passo 6, mj i e multiplicado a cada termo
de Ei , resultando (n i)(n i + 1) multiplicacoes.
Mult/Div (n i) + (n i)(n i + 1) = (n i)(n i + 2). Como estas multiplicacoes
sao efetuadas para cada,
n1
X
i=1

(n i)(n i + 2) = (n + 2n)

n1
X
i=1

48

1 2(n + 1)

n1
X
i=1

i2 =

2n3 + 3n2 5n
6

Nos passos 8 e 9 da substituicao retroativa temos uma divisao, no passo 8 temos n i


multiplicacoes e uma divisao para cada i = n 1, ..., 1, isto e
1+

n1
X

((n i) + 1) =

i=1

n2 + n
2

Total de multiplicacoes e/ou divisoes


2n3 + 3n2 5n n2 + n
n3
n
n3
+
=
+ n2
6
2
3
3
3
para n grande.

3.2.2

Pivotamento

O algoritmo de eliminacao de Gauss descrito acima nao e satisfatorio pois pode falhar em
sistemas muito simples de serem resolvidos.
Por exemplo:
No sistema

   
0 1
x1
1
=
1 1
x2
2
o algoritmo descrito acima falha, pois o primeiro pivo e nulo. A dificuldade persiste no
seguinte sistema quando << 1,

   
1
x1
1
=
1 1
x2
2
Pois quando aplicado o algoritmo de Gauss teremos o seguinte sistema triangular superior:


  

1
x1
1
=
x2
2 1
0 1 1
cuja solucao e dada por:
x2 =

2 1
1
1 1

x1 = (1 x2 )1 0

Devemos notar que a solucao exata deste sistema e dada por:


x2 =

2 1
1
1 1

x1 =

1
1 x2
2 1
=1
=
1
1

(1 )
1

Este efeito e devido a aritmetica de ponto flutuante e o fato de 0.

49

Outro exemplo mostra que nao e exatamente o fato de a11 ser pequeno que acarreta o
erro. Mas sim o fato de a11 ser muito menor relativamente aos elemento de sua linha.
Vamos considerar o sistema equivalente ao anterior dado por:
    1 

x1

1 1
=
2
1 1
x2
Neste caso 1 e um n
umero muito grande. A aplicacao do algoritmo simples de Gauss
resulta:
    1 

x1

1
1
=
2 1
x2
0 1 1
e sua solucao e dada por:
x2 =

2 1
1
1 1

x1 = (1 1 x2 ) 0

Vemos assim que as dificuldades causadas neste sistema irao desaparecer se a ordem das
equacoes for simplesmente trocada.
Resumindo, sabemos que quando o candidato a` pivo e nulo devemos trocar as linhas do
sistema para podermos proceder o algortmo de Gauss. Porem, tambem vimos que algumas
vezes a troca de linhas tambem e necessaria mesmo que o pivo nao seja nulo.
Aqui vamos considerar dois tipos de pivotamento, o chamado de pivotamento parcial que escolhe para pivo o maior elemento em modulo da coluna considerada e o pivotamento escalonado
que antes de escolher o pivo, compara sua grandesa com um fator de escala.

3.2.3

Pivotamento Parcial
(k)

Se akk e o pivo e ele e pequeno em comparacao com os outros elementos abaixo


(k)
dele em sua coluna ajk , o multiplicador
(k)

mjk =

ajk

(k)

>> 1

akk

e assim um erro de arredondamento e introduzido no calculo e. desta forma, quando


procedemos a retrosubstituicao para determonarmos xk , temos:
(k)

xk =

aj,n+1

Pn

j=k+1
(k)
akk

(k)

ajk

E o erro de arredondamento do numerador sera drasticamente incrementado com a


(k)
divisao por um n
umero muito pequeno, no caso akk

50

Exemplo 9 Vamos considerar neste exemplo o uso de aritmetica de 4 algarsmos e arredondamento



0.003000x1 + 59.14x2 = 59.17
5.291x1 6.130x2 = 46.78
A solucao exata deste sistema e x1 = 10.00 e x2 = 1.000.
O primeiro pivo e um n
umero muito pequeno (perigo). O multiplicador e
m21 =

5.291
= 1763.666... 1764.
0.003000

Assim procedendo a operacao elementar


L2 m21 L1 L2


0.003000x1 +
59.14x2 =
59.17
104300.x2 = 104400.

e desta forma temos que


x2 = 1.001
O que e uma boa aproximacao da solucao para uma maquina que opera com aritmetica de 4
dgitos significativos. Agora para encontrarmos x1 temos:
x1 =

59.17 59.20
59.17 (59.14)(1.001)
=
= 10.00 6= 10.00!!!!!
0.003000
0.003000

Podemos evitar este problema procedendo ao pivotamento parcial (troca de linhas)


Exemplo 10 Vamos considerar neste exemplo o uso de aritmetica de 4 algarsmos e arredondamento e pivotamento parcial

0.003000x1 + 59.14x2 = 59.17
5.291x1 6.130x2 = 46.78
Novamente a solucao exata deste sistema e x1 = 10.00 e x2 = 1.000.
Escolhemos para primeiro pivo max{0.003000, 5.291} = 5.291 assim
L1 L2


5.291x1 6.130x2 = 46.78


0.003000x1 + 59.14x2 = 59.17

Assim
m21 =

0.003000
= 0.0005670
5.291

e procedendo a operacao elementar


L2 m21 L1 L2

51

5.291x1 + 6.130x2 = 46.78


59.14x2 = 59.14

e desta forma temos que


x2 =
e
x1 =

59.14
= 1.000
59.14

52.91
46.78 + 6.130x2
=
= 10.00
5.291
5.291

Na maior parte dos casos este procedimento basta, porem existem situacoes onde este procedimento e inadequado. Algumas vezes iremos precisar do pivotamento escalonado. O efeito
do escalonamento e garantir que o maior elemento do linha possua magnitude relativa de uma
unidade antes de compararmos os elementos da coluna para escolha do pivo e possvel troca de
linhas. A troca apropriada de linhas e dada pela escolha (sp e o pesimo elemento do vetor de
escala s)
|api |
|aki |
= max
k=i,i+1,...,n sk
sp
Neste caso procedemos a troca
Li Lp
Observamos que o vetor de escala e calculado uma u
nica vez.

3.2.4

Pivotamento Escalonado

O pivotamento escalonado incorpora a troca de equacoes no sistema sempre que necessario, porem este leva em conta a grandeza relativa de cada candidatode pivo com os outros elementos
de sua propria linha. Assim na fase de fatoracao do algoritmo de Gauss, iniciamos o processo
escolhendo o fator de escala de cada linha, isto e


si = max |aij | = max |ai1 |, |ai2 |, ..., |ain |
1jn

Estes valores ficam acumulados em um vetor que vamos chamar de s. Computacionalmente os


pivos sao escolhidos, mas as linhas nao sao trocadas fisicamente na memoria do computador.
Ao inves disto as trocas sao armazenadas em um vetor chamado de p. Iniciamos o processo
de fatoracao selecionando a linha do pivo como aquela onde o valor |ai1 /si e maior. O ndice i
sera chamado de de p1 e definira a primeira linha da matriz de permutacao. Assim |api 1 |/spi
|ai1 |/si para 1 i n. Uma vez que p1 foi determinado, subtramos apropriadamente m
ultiplos

da linha p1 das outras linhas em ordem de proceder zeros na primeira coluna de A. E claro que
a linha p1 continua intocada ate o fim da fatoracao. Aqui comecamos a armazenar os elementos
pi no vetor p. Agora selecionamos um ndice j para o qual |apj 1 /spj | e o maximo e trocamos p1
com pj no vetor p. O passo de eliminacao real envolve subtrair (api 1 /ap1 1 vezes a linha p1 da
linha pi para 2 i n. O processo continua desta forma. Vamos exemplificar este processo:
Exemplo 11 Pivotamento escalonado

52

Vamos considerar a matriz

2 3 6
A = 1 6 8
3 2 1
Inicialmente o vetor p = (1, 2, 3) e s = 6, 8, 3. Para selecionar o primeiro pivo, olhamos para
{2/6, 1/8, 3/3}. O maior destes n
umeros corresponde a terceira linha, logo o primeiro piv
o ser
a
3. Isto sera ditopelo vetor p, que agora sera p = (3, 2, 1). Agora m
ultiplos da linha 3 ser
ao
subtrados das linhas 2 e 1 produzindo zeros na primeira coluna. O resultado e:

2
20
[ 3 ] 13
3
3
[ 1 ] 16 23
3
3
3
3 2
1
Os elementos localizados em a11 e a21 sao os multiplicadores. No proximo passo, selecionamos
novamente a linha do pivo. Para isto comparamos os n
umeros |ap2 2 |/sp2 e |ap3 2 |/sp3 . A primeira
desta razoes e (16/3)/8 e a segunda (13/3)/6. Logo j = 3, e trocamos as linhas p2 com p3 .
Assim um m
ultiplo da linha p2 e subtrada da linha p3 . O resultado e p = (3, 1, 2) e
2

13
20

[3]
3
3
[ 1 ] [ 16 ] 7
3
3
13
3
2
1
Ou
ltimo multiplicador e entao guardado em a22 .
Se as linhas da matriz original A foram trocadas de acordo ao vetor de permutacao p, ent
ao
teramos a decomposicao LU de A. Assim temos:

3 2 1
1 0 0
3 2 1
= 2 3 6
1 0 0 13
20
PA = 23
3
3
1
16
7
1 6 8
3 1
0 0 13
3
onde:

0 0 1
P = 1 0 0
0 1 0

2 3 6
A = 1 6 8
3 2 1

A matriz permutacao P e obtida do vetor permutacao p, isto e P e obtido permutando as linhas


da matriz identidade I de acordo com os elemento do vetor p.
A seguir, apresentamos um algoritmo que faz a fase de fatoracao da eliminacao de Gauss
usando a tecnica de pivotamento escalonado:
ALGORITMO 3 .
Entrada: n, (aij )
Para: i = 1 at
e n faca

53

pi i
si maxijn |aij |
Fim do para
Para k = 1 at
e n 1 faca:
Se j k ent
ao selecione
|apj ,k |/spj |api ,k |/spi para i = k, k 1, ..., n
pk pj
Para i = k + 1 at
e n faca
z api k /apk k ; api k z
Para j = k + 1 at
e n faca
z api j /apk k ; apj k z
Para j = k + 1 ate n faca
api j api j zapk j
Fim do faca
Fim do faca
Fim do faca
Sada (aij ), (pi )
Note que neste algortmo os multiplicadores sao armazenados na matriz A no lugar dos zerosque deveriam aparecer no processo de eliminacao. Vamos usar este procedimento no proximo
exemplo.
Exemplo 12 Vamos considerar, com 3 dgitos significativos, o sistema

2.11 4.21 0.921


x1
2.01
4.01 10.2 1.1 x2 = 3.09
1.09 0.987 0.832
x3
4.21
O vetor
S = {4.21, 10.2, 1.09}
. Para escolhermos o pivo, analisamos que
|a11 |/s1 = 0.501,

|a21 |/s2 = 0.393,

|a31 |/s3 = 1.00

assim fazemos a troca

1.09 0.987
0.832
4.21
4.01
10.2
1.1 3.09
2.11 4.21
0.921
2.01
1.09 0.987
0.832
4.21
0
6.57 4.18 18.6
0 6.12 0.689 6.16

L1 L3
Vetor S
1.09
L2 3.68L1 L2
10.2
L3 1.94L1 L3
4.21
m21 = 3.68 m31 = 1.94
1.02
10.2
4.21

54

Agora para escolher o novo pivo comparando:


|a22 |
6.57
=
= 0.644
s2
10.2

|a32 |
6.12
=
= 1.45
s3
4.21

Temos que trocar as linhas 2 e 3:


L2 L3
assimm31 = 3.68 e m21 = 1.94 e
Vetor S
1.09 0.987
0.832
4.21 1.09
0 6.12 0.689 6.16 4.21
0
0.02 4.92 25.2 10.2

L3 (1.07)L2 L3
m32 = 6.57/(6.12) = 1.07

Note que o valor 0.02 0 aparece por estarmos usando apenas 3 dgitos significativos. Resolvendo o sistema por retro-substituicao temos:
x3 =

25.2
= 5.12,
4.92

3.2.5

x2 =

6.16 + 6.689x3
= 0.430,
6.12

x1 =

4.21 0.987x2 0.832x3


= 0.431
1.09

Observa
c
oes sobre a decomposic
ao A = LU

Uma matriz A pode ser decomposta na forma LU se a eliminacao Gaussiana pode ser feita
sem troca de linhas. Podemos mostrar que isto e possvel quando todos os menores principais
da matriz A sao nao singulares, isto e seus determinantes nao sao nulos. Neste caso:
A = LU
Ax = b e o mesmo que resolver
L |{z}
Ux = b
e equivalente a resolver dois sistemas triangulares,
Lz = b,

Ux = z

Algortmo para proceder a decomposicao LU (quando nao e feita troca de linhas):

u11 u12 u13 ...


`11
0
...
0
0
a11 a12 a13 ... a1n

a21 a22 a23 ... a2n `21


`22
0
...
0 0 u22 u23 ...


a31 a32 a33 ... a3n ..
.
.. 0 . . . u
..
...

= .

33
...
.
..
.
..
.. . .
..
.
.
.
.
.

. .
.
.
`(n1)1 `(n1)2 . . . `(n1)n 0
. ..
.
an1 an2 an3 ... ann
`n1
`n2
`n3
...
`nn
0
0 ... 0

u1n
u2n

u3n
..
.
unn

Observe que a decomposicao A = LU nao e u


nica. As decomposicoes mais conhecida sao
as de Doolitle, Crout e Cholesky (esta u
ltima so aplicavel para matrizes simetricas). A
seguir vamos exemplificar as 3 decomposicoes.

55

Na decomposicao de Doolitle fazemos a diagonal principal de A unitaria, isto e, `ii = 1,


por exemplo:

60 30 20
u11
u12
u13

`21 u13 + u23


A = 30 20 15 = LU = `21 u11 `21 u12 + u22
20 15 12
`31 u11 `31 u12 + `32 u22 `31 u13 + `32 u23 + u33
1. Usando os as igualdades da primeira linha: u11 = 60, u12 = 30 e u13 = 20
2. Usando as igualdades da primeira coluna: u11 `21 = 30 `21 = 1/2 e e u11 `31 = 20
`31 = 1/3.
3. Usando a igualdade da segunda linha: u12 `21 + u22 = 20 30(1/2) = 5 e u13 `21 + u23 =
15 u23 = 5
4. Usando a igualdade da segunda coluna: u12 `31 + u22 `32 = 15 (15

30
)
3

= 1.

5. Finalmente, usando a igualdade da terceira linha: u13 `31 + u23 `32 + u33 = 12 u33 =
12 20 31 5(1) = 31
6. Assim:

1 0 0
60 30 20
5 , Decomposicao de Doolittle
A = 1/2 1 0 0 5
1/3 1 1
0 0 1/3
7. Na decomposicao de Crout a diagonal principal de U e unitaria, ou

1 0 0
60 0 0
1 1/2 1/3
60 0 0
1 1/2 1/3
1 = 30 5 0 0 1
1 , Crout
A = 1/2 1 0 0 5 0 0 1
1/3 1 1
0 0 1/3
0 0
1
20 5 1/3
0 0
1
8. Quando a matriz A e definida positiva, tambem temos a decomposicao de Cholesky, onde
A = LLT :


60 0
0
60 0
0
1 0 0
1 1/2 1/3
1
A = 1/2 1 0 0
5 p0 0
5 p0 0 1
1/3 1 1
0 0
1
0
0
0
0
1/3
1/3

0
60
60/2
60/3
60 0

, Cholesky
= 60/3 5 p0 0
5
5
0
0
3/3
60/3
5
1/3
Teorema 20 Se

a11
a21

Ak = ..
.
ak1

todos os n menores principais

a12 ... a1k


a22 ... a2k

.. . .
..
. .
.
ak2 ... akk

de A sao nao singulares, entao A possui decomposicao LU.

56

Teorema 21 (Cholesky) Se A e uma matriz real simetrica e definida positiva entao existe
uma u
nica fatoracao A = LLT , onde L e uma matriz triangular inferior cujos elementos da
diagonal principal sao positivos.
Teorema 22 Se todos os elementos pivos a cada passo da eliminacao Gaussiana sao nao nulos
entao existe a fatoracao do tipo A = LU.

3.2.6

Observa
c
oes sobre a decomposic
ao PA = LU

Se a eliminacao Gaussiana e feita com troca de linhas, ie usando pivotamento parcialou ou


pivotamento escalonado, podemos encontrar a decomposicao PA = LU. Neste caso:
PA = LU
Logo para resolvermos o sistema Ax = b usando esta decomposicao fazemos:
Multiplicando o sistema por P, temos PAx = Pb
Logo
L |{z}
Ux = Pb
Assim para encontrarmos a solucao x temos que resolver por substituicao direta o sistema
triangular
Lz = Pb,
e depois por retrosubstituicao o sistema triangular
Ux = z
Exemplo 13 Vamos proceder a decomposicao

0
1 1
1
1
1
A=
1 1
1
1
2
0

PA = LU para a matriz:

1
2

p = (1, 2, 3, 4)
0
2

O promeiro pivo e nulo, logo

1
1
0
1

1 1
1
2

L1 L2

1 2
1 1

1 0
0 2

p = (2, 1, 3, 4)

Agora fazemos
L3 (1)L1 L3

57

m31 = 1

L4 (+1)L1 L4

1 1 1
0 1 1

0 0
0
0 1
1

m41 = +1

2
1

2
0

O pivo da segunda linha e 1, logo


L4 (+1)L2

1
0

0
0

L4

m42 = +1

1 1
2
1 1
1

0
0
2
0
2 1

O pivo da terceira linha e nulo, logo


L3 L4

p = (2, 1, 4, 3)

Note que os multiplicadores ja calculados tambem trocam de lugar, assim


m41 = 1

m31 = 1 e

m32 = +1

1 1 1
2
0 1 1
1

U=
0 0
2 1
0 0
0
2
usando os multiplicadores temos e

1
0
L=
1
1
e assim temos

0 1
1 0

0 0
0 0

as trocas de linhas feitas,

0 0 0
0 1 0 0

1 0 0
1 0 0 0
P=
0 0 0 1
1 1 0
0 0 1
0 0 1 0

a decomposicao PA = LU ou


1
0 0
0
1 1 1

0 0 1
1 1 2 0
=
1 0 1
0 1 1 1
1
1 0
1
2
0 2

0
1
1
0

0
0
1
0

0
1 1 1
2

1
0 0 1 1
0 0 0
2 1
1
0 0
0
2

Agora usando esta decomposicao vamos encontra a solucao de Ax = b, onde o vetor b e


dado por:

2
3

b=
1
5

58

multiplicando o sistema por P pela direita, temos:


LUx = Pb

PAx = Pb

Assim primeiramente resolvemos por substituicao

1 0 0 0
0 1 0 0

1 1 1 0
1 0 0 1

direta Lz = Pb, isto e



z1
3
2
z2
=
z3 5
z4
1

temos que
z1 = 3
z2 = 2
z1 + z2 + z3 = 5 logo z3 = 0
z1 + z4 = 1 logo z4 = 4
Agora resolvemos por retro-substituicao o sistema Ux = z
x4 = 4/2 = 2
2x3 x4 = 0 logo x3 = 1
x2 x3 + x4 = 2 logo x2 = 1
x1 + x2 x3 + 2x4 = 1 logo x1 = 1
Assim a solucao procurada de Ax = b e
x = (1, 1, 1, 2)T

3.2.7

C
alculo do determinante

Considerando a decomposicao de Doolittle, isto e a diagonal principal de L e unitaria, e conhecemos esta decomposicao
PA = LU
entao
det(A) =

det(L) det(U)
det(P)

Agora:
det(L) =

n
Y
i=1

59

`ii = 1

det(U) =

n
Y

uii

i=1

e como P e uma matriz permutacao


det(P) = (1)t , onde t
e o n
umero de troca de linhas feitas em A para obter a decomposicao. Logo,
det(A) = (1)t

n
Y

uii

i=1

3.2.8

C
alculo da Matriz Inversa

Se consideramos uma matriz quadrada de ordem N , A, uma matriz mathbf V e dita inversa de
A e e notada por A1 se
AV = I.
Se notamos por vi as colunas da matriz V e por ei as colunas da matriz identidade I, para
encontrarmos a matriz inversa, basta resolvermos os N sistemas lineares da forma
Avi = ei , i = 1, 2, ..., N.
Aqui observamos que como a matriz A e sempre a mesma, a melhor forma de resolver estes
sistemas e fazendo a decomposicao LU se a matriz considerada nao e simetica, LLT se a matriz
e simetrica definida positiva ou LDLT se a matriz e simetrica.

3.2.9

Condicionamento de uma matriz

Vamos considerar um sistema de equacoes Ax = b. Sejam x1 e x2 duas aproximacoes da


solucao exata do sistema dada por x.
Qual a sensibilidade dos sistemas lineares em relacao aos dados de entrada?
Exemplo 14
(

z }| {
0.992x 0.873y = 0.119
0481x 0.421y = 0.060

Possui solucao exata x = 1 e y = 1. Se perturbamos o sistema para:


(
z }| {
0.992x 0.873y = 0.120
0481x 0.421y = 0.060
A solucao deste segundo sistema e x = 0.851 e y = 0.786, ou seja para uma perturbac
ao de
0.8%,
|0.119 0.120|
Er =
= 0.008
0.119

60

e este erro e amplificado, produzindo solucao com 18.6% de erro, ou


Er =

|0.815 1.000|
= 0.185
1.000

Existem sistemas que em a resposta a uma pequena perturbacao pode produzir uma mudanca
na solucao ainda mais drastica, como mostramos no proximo exemplo:
Exemplo 15

x +
3y
=
11
1.5x + 4.501y = 16.503
| {z }

que tem solucao x = 2 e y = 3 Perturbando este sistema temos:

x +
3y
=
11
1.5x + 4.501y = 16.500
| {z }

que tem solucao x = 11.00 e y = 0


Nos casos acima temos sistemas de ordem 2 e assim e simples saber quando o sistema e bem ou
mal condicionado. Agora, no caso de sistemas maiores precisamos encontrar uma medida para
o condicionamento. Vamos entao considerar:
Ax = b

e o sistema perturbado

A0 x = b0

Assim:
b b0 = Ax Ax0 = A(x x0 )
ou podemos reescrever como:
(x x0 ) = A1 (b b0 )
aplicando norma dos dois lados da igualdade e lembrando que kRSk kRk kSk, temos:


kx x0 k A1 k(b b0 )k
Dividindo esta inequacao por kxk temos:

kb b0 k
kx x0 k
kAk A1
kxk
kbk
onde:
kx x0 k
kxk
kAk kA1 k
kb b0 k
kbk

o erro relativo da provocado pela perturbacao de b b0


E
o fator de amplicao e
E
o erro relativo da perturbacao produzida no sistema
E

61

Definic
ao 10 Dado um sistema Ax = b chamamos (A) = cond(A) = kAk kA1 k de n
umero
de condicionamento da matriz A.
claro que quanto maior o valor do n
E
umero de condicionamento, maior sera a sensibilidade do
sistema a` perturbacoes. No segundo exemplo temos:




1
3
4501 3000
1
A=
eA =
1.5 4.501
1500 1000
||A|| = max{3 + 1 , 1.5 + 4.501} = max{4 , 6.001} = 6.001
e
||A1 || = max{7501 , 2500} = 7501
Assim o n
umero de condicionamento desta matriz A pela norma do maximo e
(A) = ||A|| ||A1 || = 45013.5
, assim temos que a pequena perturbacao feita no sistema e ampliada umas 45000 vezes! E
esta e a razao da discrepancia dos resultado entre o sistema linear dado no exemplo 15 e o
respectivo sistema perturbado.
1. (I)=1
2. (A) 1 pois 1 = ||I|| = ||AA1 || ||A|| ||A1 || = (A).
3. (A) = (A), onde e um escalar.
4. (A) =

max(autovalor de A)
min(autovalor de A)

5. Se D e uma matriz diagonal, entao (D) =


i = 1 : N onde N e a ordem da matriz D.

max dii
,
min dii

Dizemos que:
A matriz A e bem condicionada, se (A) 1
A matriz A e mau-condicionada se (A) >> 1
Obsevemos ainda que em geral uma matriz mau condicionada tem determinante quase zero,
porem o inverso nao e verdadeiro pois a matriz de ordem N definida por:

0.1 0 ... ... 0

.
0 0.1 . . . . . 0

.
D=
0 0.1 . . 0

.
.
.. .. 0
0
0
0
0 . . . . . . 0.1
tem det(D) = (0.1)N o que e um n
umero muito pequeno se N e grande, porem
(D) = (I) = 1
sendo assim uma matriz muito bem condicionada.

62

3.3

M
etodos Iterativos

Para resolver sistemas lineares Ax = b, temos duas grandes classes de metodos:


Os Metodos Diretos: (Eliminacao de Gauss e variantes) Processam um n
umero finito de
passos ate chegar na solucao x que deveria ser exata se nao houvesse erros de truncamento.
Os Metodos Indiretos: Produzem uma sequencia de vetores que idealmente convergem
para a solucao do sistema. Os calculos sao encerrados quando a solucao aproximada
atingir uma precisao especificada. Os metodos indiretos sao quase sempre iterativos.
Assim, um metodo iterativo resolve um sistema de equacoes diferenciais atraves de um
(0)
processo que gerando uma sequencia de vetores {x(n) }
n=0 , a partir de um velor inicial x
dado, que converge para a solucao do sistema. Aqui iremos discutir alguns metodos iterativos
estacionarios mais simples. Sao eles os metodos iterativos de Jacobi e Gauss Seidel. Uma
tecnica iterativa inicia atraves de uma aproximacao inicial x(0) e gera uma sequencia de vetores
que converge para a solucao do sistema. As tecnicas iterativas transformam o sistema em uma
forma equivalente do tipo
x = Tx + c

(3.14)

para alguma matriz T e algum vetor c fixos. O metodo iterativo e dito estacionario quando a
matriz T nao varia no decorrer do processo iterativo.
Os metodos iterativos, em geral, sao usados para resolver sistemas grandes, pois no caso de
sistemas pequenos o n
umero de operacoes necessarias para atingir uma determinada precisao
podem exceder as requeridas pelos metodos diretos. Desta forma, os metodos iterativos sao
particularmente eficientes na resolucao de sistemas esparsos e grandes, o que e o caso de muitos
sistemas resultantes da solucao numerica de equacoes diferenciais parciais (EDP). Alem disto os
metodos iterativos sao usualmente menos sensveis a erros de arredondamento que os metodos
diretos.

3.3.1

Os m
etodos de Jacobi e Gauss Seidel

Os metodos iterativos de Jacobi e Gauss-Seidel sao classicos e datam do final do seculo XVIII.
Uma tecnica iterativa e iniciada com uma aproximacao inicial x0 , entrando em um processo
que gera uma
Exemplo 16 Considere o sistema dado por:
10x1
x2
x1 + 11x2
2x1
x2
3x2

+ 2x3

x3 + 3x4
+ 10x3 x4

x3 + 8x4

=
6
=
25
= 11
=
15

Usando um metodo direto vemos que o sistema acima possui solucao u


nica x = (1, 2, 1, 1)T .
Para converter o sistema na forma x = Tx + c, na primeira equacao isolamos x1 , na segunda
x2 etc..., isto e os elementos da diagonal principal de A com,

63

0
0
1
0
A = L + D U =
2
1
0 3

0
0
0
1


0
0 0 0 0

0 0 11 0 0
+
0 0 0 10 0
0
0 0 0 8

0 1 2
0
0
0 1 3

0
0 0
1
0
0 0
0

ou na forma matricial,
Dx = (L + U)x + b
x = D1 (L + U)x + D1 b
Neste caso a matriz de separacao para o metodo de Jacobi e dada por:

1
15
0
0 10
1
3
1
11
11
11

Tj = D1 (L + U) =
1
1
1
0
5
10
10
1
38
8
ou

(k+1)

x1
(k+1)
x2
(k+1)
x2
(k+1)
x2

=
1 (k)
x1
= 11
1 (k)
= 5 x1 +
=

1 (k)
x
10 2
1 (k)
x
10 2
3 (k)
x
8 2

1 (k)
x
5 3
1 (k)
x
11 3

1 (k)
x
8 3

3 (k)
x
11 4
1 (
x k)
10 4

+
+

1
3
25
11
11
10
15
8

Este metodo e chamado de JACOBI. Assim vamos usar o metodo de Jacobi para resolvermos
o exemplo acima. Vamos considerar uma aproximacao inicial x(0) = (0, 0, 0, 0, )T e criterio de
parada
kx(i+1) x(i) k
< 103
(i+1)
kx
k
k
(k)
x1
(k)
x2
(k)
x3
(k)
x4

0
0.0000
0.0000
0.0000
0.0000

1
0.6000
2.2727
-1.1000
1.8750

2
1.0473
1.7159
-0.8052
0.8852

3
0.9326
2.0530
-1.0493
1.1309

4
1.0152
1.9537
-0.9681
0.9739

5
0.9890
2.0114
-1.0103
1.0214

6
1.0032
1.9922
-0.9945
0.9944

7
0.9981
2.0023
-1.0020
1.0036

8
1.0006
1.9987
-0.9990
0.9989

9
0.9997
2.0004
-1.0004
1.0006

10
1.0001
1.9998
-0.9998
0.9998

(k+1)

Resumindo, cada elemento xi


do vetor x(k+1) e calculado atraves do metodo de Jacobi como:
P
PN
(k)
(k)
i1
j=1 aij xj
j=i+1 aij xj + bi
(k+1)
xi
=
,
para i = 1, 2, ..., N.
aii
(k+1)

(k)

No metodo de Gauss Seidel os valores dos elementos xi


substituem os valores antigos xi
imediatamente apos terem sido calculados, isto e cada elemento e calculado como:
P
P
(k+1)
(k)
i1
N
j=1 aij xj
j=i+1 aij xj + bi
(k+1)
,
para i = 1, 2, ..., N.
xi
=
aii

64

Exemplo 17 Vamos usar o metodo de Gauss Seidel para resolver o seguinte sistema

=
24
4x1 + 3x2
3x1 + 4x2 x3 =
30

x2 + 4x3 = 24
aqui vamos usar um valor inicial x(0) = (1, 1, 1)T . Aplicando o metodo de Gauss Seidel temos:
(k+1)

(k)

x1
=

0.75x2
+
6
(k+1)
(k+1)
(k)
x2
= 0.75x1
+ 0.25x3 + 7.5
(k+1)
(k+1)
x3
=
0.25x2

6
O resultado obtido e:
k
(k+1)
x1
(k+1)
x2
(k+1)
x3

0
1
1
1

1
5.250000
3.812500
-5.046875

2
3.1406250
3.8828125
-5.0292969

3
3.0878906
3.9267578
-5.0183105

4
3.0549316
3.9542236
-5.0114441

5
3.0343323
3.9713898
-5.0071526

6
3.0214577
3.9821186
-5.0044703

7
3.0134110
3.9888241
-5.0027940

o erro relativo da sexta iteracao e dada por:


Er =

0.0080467
kx(6) x(7) k
=
= 0.00160844
kx(7) k
5.00279

Usando a mesma notacao usada para o metodo de Jacobi, o metodo de Gauss-Seidel, na forma
matricial pode ser escrito como:
(D L)x = Ux + b
x = (D L)1 Ux + (D L)1 b
Neste caso a matriz de separacao e dada por
Ts = (D L)1 U

3.3.2

Condi
c
ao de Converg
encia

Quando resolvemos um sistema do tipo Ax = b atraves de um metodo iterativo,


x(k+1) = Txk + c
usando um vetor de inicializacao x(0) e se obtemos uma sequencia convergente de vetores
x(0) , x(1) , x(2) , ... , x(n) , ...
podemos garantir que esta sequencia esta convergindo para a solucao do sistema. Isto e garantido pelo seguinte teorema:

65

Teorema 23 Um metodo iterativo x(k+1) = Txk + c converge para qualquer valor inicial x(0)
se e somente se o raio espectral da matriz de iteracao, (T) < 1.
Aqui lembramos que a solucao de sistemas lineares atraves de metodos iterativos estao
fundamentados em uma aproximacao sucessiva de vetores x na direcao da solucao do sistema
e, como ja exemplificamos, uma simples troca de ordem nas linhas do sistema pode fazer a
diferenca entre convergencia ou divergencia do metodo aplicado. Alem disto, o uso do teorema
acima pode ser bastante difcil, pois a determinacao do raio espectral da matriz de iteracao T
muitas vezes e muito mais trabalhoso que encontrar a solucao do sistema linear, desta lembrando
que (A) kAk, em geral usamos os seguintes criterios de convergencia.
Criterio das Linhas: Este e um criterio de convergencia para os metodos de Gauss-Jacobi
e de Gauss-Seidel que estabelece uma condicao suficiente (mas nao necessaria) para a
convergencia. Isto se o criterio for verdadeiro, podemos garantir que os metodos citados
convergem para qualquer valor inicial x(0) considerado. Porem, devemos notar que nada
podemos afirmar sobre a convergencia dos metodos se este criterio nao for satisfeito.
O criterio das linhas garante a convergencia dos metodos de Gauss-Jacobi e Gauss-Seidel
para qualquer valor inicial, se a matriz A e diagonal dominante, isto e se
N
X

|aij | < |aii |

j=1
j 6= i
Criterio de Sanssenfeld: Este e um criterio que garante a convergencia do metodo de Gauss
Seidel. Se o criterio das linhas e satisfeito o criterio de Sanssenfeld e automaticamente
satisfeito, porem o contrario nao e verdade.
Um sistema linear converge para o metodo de Gauss-Seidel, independentemente do valor
inicial escolhido, se
max{k } < 1,
onde
N

1 X
|aij |,
1 =
|a11 | j=2

1
i =
|aii |

i1
X

|aij |j +

j=1

N
X

!
|aij | ,

i = 2, 3, ..., N

j=i+1

Exemplo 18 Como exemplo, vamos considerar o seguinte sistema linear:


2.0
0.6
0.1
0.4

x1
x1
x1
x1

+
x2
+ 3.0 x2
0.2 x2
+ 1.2 x2

0.2 x3
0.6 x3
+
x3
+ 0.8 x3

+
+

0.2
0.3
0.2
2.0

x4
x4
x4
x4

=
0.4
= 7.8
=
1.0
= 20.0

No sistema acima podemos ver que o criterio das linhas nao e valido. Porem pelo criterio
de Sansenfeld temos:

66

1
1. 1 = (1 + 0.2 + 0.2) = 0.7
2
1
2. 2 = ((0.6)(0.7) + 0.6 + 0.3) = 0.44
3
1
3. 3 = ((0.1)(0.7) + (0.2)(0.44) + 0.2) = 0.358
1
1
4. 4 = ((0.4)(0.7) + (1.2)(0.44) + (0.8)(0, 358)) = 0.5472
2
5. max 1 , 2 , 3 , 4 = 0.7 < 1
E desta forma, pelo criterio de Sansenfeld podemos garantir que a solucao deste sistema
pelo metodo de Gauss-Seidel ira convergir. (para qualquer valor inicial x(0) .)
Observaco
es
1. Aqui vamos observar que sempre que o criterio das linhas for verdadeiro, o criterio de
Sanssenfeld tambem sere, porem a reciproca nao e verdadeira, por exemplo, considere o
sistema:
10 x1 + x2 = 23
6 x1 + 2 x2 = 18
Este sistema nao satisfaz o criterio das linhas, pois |a22 | = 2 < |a21 | = 6, porem satisfaz
o criterio de Sanssenfeld pois:


6
1


2 = 1 = 0.3
1 = = 0.1,
10
2
assim max i = 0.3 < 1.
2. A ordem comno as equacoes aparecem no sistema possui grande influencia na convergencia
de um metodo iterativo. Por exemplo considere o sistema:
4 x1 + 10x2 = 19
5 x1 + 3 x2 = 15
Nesta forma este sistema nao satisfaz aos nossos criterios de convergencia, porem se
trocarmos as linhas, o sistema ira satisfazer este criterio e sua convergencia e garantida.
(Verifique)
3. A quantidade de operacoes requerida em uma iteracao e simples conhecer, porem o n
umero de iteracoes requeridas nao. Os metodos iterativos de Gauss-Seidel e Gauss-Jacobi
realizam por iteracao 2N 2 N operacoes de aritmeticas. Sao elas N 1 multiplicacoes
de variaveis pelos coeficientes, N 1 somas e 1 divisao para cada variavel do sistema,
totalizando para cada variavel 2N 1 operacoes para cada uma das N variaveis. Quando
o valor de N e grande temos a ordem de 2N 2 operacoes.

67

Podemos ver que o custo computacional dos metodos iterativos e menor que dos metodos
diretos quando consideramos N grande. Os metodos iterativos apresentam a vantagem de
preservacao dos zeros da matriz original e tambem dos erros de arredondamento aparecem de
forma bem mais suave que nos metodos diretos. O problema dos metodos iterativos e serem
menos eficientes para a solucao de sistemas lineares densos ou de pequeno porte. Os metodos
diretos, teoricamente obtem a solucao de qualquer sistema nao singular e os metodos iterativos
convergem apenas sobre determinadas condicoes. Os erros de arredondamento aparecem de
forma bem mais suave nos metodos iterativos que nos metodos diretos.

3.4

Decomposic
ao LU para o caso de matrizes tridiagonais

A decomposicao LU e muito usada para encontrar a solucao de sistemas envolvendo matrizes


banda, isto e uma matriz que possui todos os elementos nulos, exceto os que estao na diagonal
principal e sub-diagonais adjacentes. Aqui vamos exemplificar o procedimento usado para
resolver um sistema tridiagonal, sem troca de linhas (o que sempre e possvel se a matriz for
diagonal dominante). Vamos considerar a matriz:

b1 c1 0 ...
...
...
0

.
a2 b2 c2 . . ...
...
0

..

0 a
.
...
0
b
c
3
3
3

A=

. . . . . . . . . . . . . . .
...
0

0 ... ... 0 an1 bn1 cn1


0 ... ... 0
0
an
bn
Vamos fazer a

`1

0
L=

. . .

0
0

decomposicao LU na forma:
0

`2

...
...

...

...

...
...
0

..
.
3 `3 0
...
0

.. .. ..
..
.
.
.
.
...
0

... ... 0 n1 `n1 0


... ... 0
0
n `n

...
..
.

... ...

0 1 2
... ...
0

0 0 1 . . . ...
0
3

U=

.
.
.
.

. . . . . . . . . . . ...
0

0 ... ... 0 0 1 n1
0 ... ... 0 0 0
1

aqui consideramos valores unitarios na diagonal principal de U. Procedendo a multiplicacao


temos:

68

`1

1 1

...
..
.

...

...

2 1 2 + `2

2 `2
...
...
0

..
0

+
`
0
...
0
3
2
3
3

L=

.
.
.
.
..
..
..
..
. . .

...
0

0
...
...
0 n1 n2 n1 + `n1
n1 `n1
0
...
...
0
0
n
n1 n + `n
igualando os elementos de A = LU, temos:
`1 = b1 ,

1 =

c1
`1

i = ai ,

`i = bi i1 i ,

i =

ci
,
`i

n = an ,

`n = bn n1 n .

i = 2, 3, ..., n 1

Estes calculos requerem ao todo n 1 multiplicacoes, n 1 divisoes e n 1 divisoes. Note, que


para obtermos a solucao de um sistema matricial
Ax = f
e equivalente a encontrar a solucao dos sistemas
Ux = y

Ly = f

que pode ser feito de forma recursiva como:


y1 =

f1
`1

...
yi =

fi ai yi1
, i = 2, ..., n
`i

E desta forma,
xn = yn
xn1 = yn1 n1 xn
xnk = ynk nk xnk+1 , k = 1, 2, ..., n 1

69

Exemplo 19 Vamos considerar o sistema Ax = f

2 1
0
0
x1
1
x2
2
1
0

0 1
2 1 x3
0
0 1
2
x4

0
0
=
0
1

Resolvendo a primeira iteracao temos:


`1 = b = 2,

1 = c1 /`1 = 1/2

2 = 1,

`2 = b = 1 2 = 3/2,

2 = c/`2 = 2/3

3 = 1,

`3 = b 2 3 = 4/3,

3 = c/`3 = 3/4

4 = 1,

`4 = b 3 4 = 5/4

assim a solucao do primeiro sistema e dada por:


y1 = f1 /`1 = 0, y2 = (f2 a y1 )/`2 = 0, y3 = (f3 a y2 )/`3 = 0, y4 =
(f4 a y3 )/`4 = 4/5
e a solucao final tambem e calculada recursivamente por:
x4 = y4 = 4/5
x3 = y3 3 x4 = 3/5
x2 = y2 2 x3 = 2/5
x1 = y1 1 x2 = 1/5

3.5

Exerccios

1. Dado o vetor x = [1, 2, 3, 4, 5]T , calcular as normas


(a) ||x||1
(b) ||x||2
(c) ||x||

5 4 1
3
2. Calcular a norma da matriz A = 2 9
8 6 7
(a) ||A||1
(b) ||A||2
(c) ||A||

70

3. Resolver os sistemas abaixo pelo metodo de eliminacao de Gauss, com estrategia indicada
e usando 3 casas decimais; verificar tambem a unicidade e exatidao da solucao obtida.
(a) Sem pivotamento parcial

1
2
3 1
2 14

4
x1
13
4 x2 = 8
5
x3
50

(b) Com pivotamento parcial

2 3
1
x1
5
2 1 4 x2 = 9
4 10 6
x3
2
(c) Com pivotamento parcial

0
1 3
2
8 2 9 1

5
1 1
7

2
4 5
1
7 3 2 4

4
2
2
0
1

x1
x2
x3
x4
x5

3
5
6
1
8

(d) Com pivotamento escalonado

2 3
1
x1
5
2 1 4 x2 = 9
4 10 6
x3
2
(e) Com pivotamento escalonado

0
1
8 2

5
1

2
4
7 3

3
2 4
x1

9 1 2 x2

1
7 2
x3

5
1 0 x4
2 4 1
x5

3
5
6
1
8

4. Resolver pelo metodo da decomposicao LU. Verificar unicidade e exatidao da solucao.


(a) Efetue os calculos utilizando apenas aritmetica de 4 dgitos.

2
6 3
x1
5
1 3.001
2 x2 = 9
4
1
9
x3
29
i. sem pivotamento

71

ii. com pivotamento


(b) Com pivotamento parcial

1
2 3
x1
17
5 1 4 x2 = 2
2
4 1
x3
24

(c) Resolva o sistema de equacoes:

x1 + 4x2 + 2x3 = 3.70


5x1 + 2x2 + x3 = 6.89

3x1 + x2 + 6x3 = 5.49


pelo metodo da decomposicao LU
(d) Considere o exerccio 4c e a aproximacao inicial x(0) = [1.10 0.50 0.28]T .
i. Verifique o que pode ser feito para garantir convergencia do metodo de Jacobi e
calcule 3 iteracoes por este metodo.
ii. Verifique o que pode ser feito para garantir convergencia do metodo de GaussSeidel e calcule 3 iteracoes por este metodo.
5. Considere o seguinte sistema de equacoes lineares:

x1 + 2x2 x3

2x1 x2
x2 + 2x3 x4

x3 + 2x4

=
=
=
=

1
1
1
1

(a) Mostre que este sistema nao satisfaz o criterio de linhas,


(b) Mostre que este sistema nao satisfaz o criterio de Sassenfeld,
(c) O que se pode afirmar sobre a convergencia dos metodos de Gauss-Jacobi e GaussSeidel, quando aplicados a este sistema?
(d) Mostre que o sistema obtido permutando-se as duas primeiras equacoes satisfaz o
criterio de Sassenfeld,
(e) Usando o metodo de Gauss-Seidel, determine a solucao aproximada do sistema, com
a permutacao sugerida no item anterior e erro
(k+1)

||x(k+1) x(k) || = max |xi


i=1,2,3,4

6. Considere o sistema linear abaixo:

x1 3x2 + x3 x4

x2 2x3
10x1 + x2
+ x4

x1
x3 + 3x4

72

(k)

xi | 103

= 1
=
3
= 8
=
8

(a) Resolva o sistema pelo metodo de Eliminacao de Gauss com pivoteamento.


(b) Utilizando o resultado do item anterior, escreva o sistema linear LUx = Pb, equivalente ao sistema linear dado, onde P e uma matriz permutacao. Encontre a solucao
do sistema usando esta decomposicao.
(c) Podemos determinar a solucao aproximada do sistema , usando o Metodo de GaussSeidel para qualquer aproximacao inicial ? Porque? Se possvel encontre a solucao
usando o metodo de Gauss Seidel. (Proceda pelo menos 4 iteracoes)

73

Captulo 4
Interpola
c
ao e Extrapola
c
ao
Muitas vezes experimentos cientficos ou computacao numerica nos fornecem valores discretos
de uma funcao. Estes valores podem ser dados de forma igualmente espacada ou nao ao longo
do eixo dos x. Aqui vamos estimar o valor da funcao entre os valores tabulados (interpolacao)
ou fora do domnio destes pontos (extrapolacao). Uma das funcoes mais conhecidas sao as
funcoes polinomiais. Podemos mostrar que esta classe de funcoes mapeia uniformemente funcoes
contnuas, isto e, considerando qualquer funcao contnua em um intervalo limitado e fechado,
sempre existira um polinomio tao proximo quanto se queira desta funcao.
Teorema 24 (Aproximac
ao de Weierstrass) Se f e uma funcao definida e contnua em
um intervalo fechado [a, b], entao para cada > 0 existe um polinomio de forma que |f (x)
p(x)| < para todo x [a, b].
Teorema 25 Teorema: Se x0 , x1 , ..., xn sao n
umeros reais distintos, entao para valores arbitrarios y1 , y2 , ..., yn , existe um u
nico polinomio a de grau igual ou menor que n de forma que
Pn (xi ) = yi (0 i n).

4.1

Dados n
ao igualmente espa
cados

Aqui veremos tres tecnicas de interpolacao, todas elas considerando que dados nao precisam ser
igualmente espacados. Primeiramente veremos os metodos nao segmentados como Lagrange e
Newton. E depois veremos interpolacao segmentada com o spline c
ubico.

4.1.1

Polin
omios Interpoladores de Lagrange

Nesta secao, vamos estudar polinomios interpoladores que possam ser determinados simplesmente pela especificacao de certos pontos do plano por onde eles devem passar. Por varias
razoes numericas ou experimentais muitas vezes e inconveniente ou impossvel obter dados em
intervalos igualmente espacados. Desta forma vamos adotar uma outra forma de aproximacao
polinomial.
Note que, uma interpolacao linear para a funcao f que passa pelos pontos f (x0 ) = y0 e f (x1 ) =
y1 e um polinomio de grau 1 que passa pelos dois pontos. Sabe-se que este interpolador e u
nico,

74

pois por n + 1 pontos passa um e somente um polinomio de grau n, e este polinomio, no caso
linear pode ser escrito como:

P (x) =

(x x0 )
(x x1 )
y0 +
y1 = L0 (x)y0 + L1 (x)y1
(x0 x1 )
(x1 x0 )

(4.1)

quando x = x0 , temos que, L0 (x0 ) = 1 e L1 (x0 ) = 0 e quando x = x1 , L0 (x1 ) = 0 e L1 (x1 ) = 1,


assim:

P (x0 ) = 1.y0 + 0.y1 = y0 = f (x0 ),


e

P (x1 ) = 0.y0 + 1.y1 = y1 = f (x1 ),


Desta forma, (4.1) possui as propriedades requeridas para ser o polinomio interpolador de grau
1 da funcao f .
Esta tecnica pode ser imediatamente generalizada. Assim vamos considerar a construcao de
um polinomio de grau maximo n que passa atraves de n + 1 pontos (x0 , f (x0 )), (x1 , f (x1 )), ... ,
(xn , f (xn )). Assim, a gora precisamos construir para cada k = 1, 2, ..., n, um quociente Lk com
a propriedade que Lk (xk ) = 1 e Lk (xi ) = 0 se i 6= k. Para Lk (xi ) = 0 se i 6= k devemos ter no
numerador de Lk o termo:
(x x0 )(x x1 )...(x xk1 )(x xk+1 )...(x xn ).

(4.2)

Para satisfazer Lk (xk ) = 1, o denominador de Lk deve ser igual `a (4.2) quando x = xk . Assim:
n

Y (x xi )
(x x0 )(x x1 )...(x xk1 )(x xk+1 )...(x xn )
=
.
Lk (x) =
(xk x0 )(xk x1 )...(xk xk1 )(xk xk+1 )...(xk xn )
(xk xi )
i=0
i6=k

O polinomio interpolador e facilmente descrito quando a forma de Lk e conhecida. Este


polinomio e chamado de polin
omio interpolador de Lagrange e e definido pelo teorema:

Teorema 26 Se x0 , x1 , ..., xn sao (n + 1) n


umeros distintos e f e uma funcao cujos valores s
ao
dados nestes n
umeros, entao existe um u
nico polinomio P de grau n tal que
f (xk ) = P (xk ) para cada k = 0, 1, ..., n.

75

Este polinomio e dado por


P (x) = f (x0 )L0 (x) + ... + f (xn )Ln (x) =

n
X

f (xk )Lk (x),

(4.3)

k=0

onde
n

Lk (x) =

Y (x xi )
(x x0 )(x x1 )...(x xk1 )(x xk+1 )...(x xn )
=
(xk x0 )(xk x1 )...(xk xk1 )(xk xk+1 )...(xk xn )
(xk xi )
i=0

(4.4)

i6=k

para cada k = 0, 1, ..., n.


Exemplo 20 Encontre o polinomio interpolador de Lagrange de grau 2 para f (x) = x1 , usando
os nos x0 = 2, x1 = 2.5 e x2 = 4.
1. Calculando L0 , L1 e L2 :
(x 2.5)(x 4)
= (x 6.5)x + 10,
(2 2.5)(2 4)
(4x + 24)x 32
(x 2)(x 4)
=
,
=
(2.5 2)(2.5 4)
3
(x 2)(x 2.5)
(x 4.5)x + 5
=
=
.
(4 2)(4 2.5)
3

L0 =
L1
L2

2. Como f (x0 ) = f (2) = 0.5, f (x1 ) = f (2.5) = 0.4 e f (x2 ) = f (4) = 0.25,
P (x) = 0.5 ((x 6.5)x + 10) + 10) + 0.4
=

(4x + 24)x 32
(x 2)(x 2.5)
+ 0.25
3
(4 2)(4 2.5)

(x 4.5)x + 5
= (0.05x 0.425)x + 1.15
3

3. Assim uma aproximacao para f(3) e:


f (3) P (3) = 0.325
Qual o limite de erro envolvido? Conhecer uma formula para o limite de erro e muito
importante para este metodo, pois os polinomios de Lagrange sao muito usados em metodos de
derivacao e integracao numerica.

76

Teorema 27 Se x0 , x1 , ..., xn sao n


umeros distintos em um intervalo[a, b] e f Cn+1 [a, b],
entao para cada x [a, b] existe um n
umero (x) (a, b) com
f (x) = P (x) +

f (n+1) ((x))
(x x0 )(x x1 )...(x xn ),
(n + 1)!

(4.5)

onde P e o polinomio interpolador dado em (4.3).


Note que a forma do erro para o polinomio de Lagrange e muito similar a forma de erro do
polinomio de Taylor. O polinomio de Taylor de grau n em torno de x0 concentra a informacao
conhecida em x0 , isto e
f (n+1) ((x))
(x x0 )n+1 ,
(n + 1)!
enquanto que o polinomio de Lagrange de grau n usa informacao em pontos distintos x0 , x1 , ..., xn ,
isto e
f (n+1) ((x))
(x x0 )(x x1 )...(x xn ).
(n + 1)!
O uso especfico destas formulas fica restrito aquelas funcoes com limite conhecido.

Nota: Devemos notar que este polinomios interpoladores deste tipo podem ser muito perigosos no centro de regioes onde a variavel independente possui um afastamento muito grande.
Apesar do polinomio concordarcom os dados nos pontos fixados, pode mover-se sem um curso
determinado entre pontos muito afastados.
Exemplo 21 Vamos considerar a seguinte tabela:
x
f (x)

3.0 1.0
1.0
1.5

1.0
2.0

2.0
2.0

2.5
1.5

3.0
1.0

Aproxime f (0.3) usando polinomio interpolador de Lagrange, com n = 3 e n = 2


n = 3x1 = 1.0, x2 = 1.0, x3 = 2.0, x4 = 2.5
(0.3 + 1)(0.3 1)(0.3 2)
(0.3 + 1)(0.3 1)(0.3 2.5)
P3 (0.3) =
(1.5) +
(2)
(2.5 + 1)(2.5 1)(2.5 2)
(2 + 1)(2 1)(2 2.5)
(0.3 + 1)(0.3 2)(0.3 2.5)
(0.3 1)(0.3 2)(0.3 2.5)
+
(2) +
(1.5)
(1 + 1)(1 2)(1 2.5)
(1 1)(1 2)(1 2.5)
P3 (0.3) = (0.589333)(1.5) (1.33467)(2) + (1.62067)(2) + (0.124667)(1.5) = 1.64300
n = 2x1 = 1.0, x2 = 1.0, x3 = 2.0
P2 (0.3) = 1.9008333

77

Note que sem mais informacoes sobre a funcao, nao podemos saber qual dos dois resultados e
o melhor. Agora, suponha que a funcao f descreve um certo fenomeno fsico e que neste caso
sabe-se que para este fenomeno as derivadas devem satisfazer |f (k) (x)| 1/k para k = 1, 2, ....
Neste caso, usando (4.5),


1 (0.3 + 1)(0.3 1)(0.3 2)(0.3 2.5)
= 0.0355

|ET3 |

4
4!

(4.6)



1 (0.3 + 1)(0.3 1)(0.3 2)
= 0.0860
|ET2 |

3
3!

(4.7)

Assim neste caso a melhor aproximacao para o valor de f (0.3) P3 (0.3) = 1.64300.
Agora para ilustrar a importancia de conhecer algo sobre as derivadas da funcao, vamos considerar
1
f (x) =
1 + 25x2
podemos neste caso calcular f (0.5) = 0.1379310. Agora vamos supor que nao conhecemos a
funcao, mas sim uma tabela com os valores,
1
x
f 0.3846

.8
0.05882

.6
0.1000

.4
0.2000

.2
0.5000

0
1.000

usando interpolacao de Lagrange sobre os dados da tabela encontramos:


P (0.5) Erro Absoluto
n
1
0.15
0.01203
2
0.1250
0.01293
3 0.133824
0.00411
0.062896
4 0.2008273
Note que o crescimento do erro de truncamento com o aumento de n e devido ao fato que as
derivadas desta funcao sao da forma:
50x
(1 + 25x2 )2
50 + 3750x2
f 00 (x) =
(1 + 25x2 )3
f 0 (x) =

etc... que crescem rapidamente quando x = 0.5.

Finalmente, devemos observar que podemos mostrar que o erro de arredondamento para o
metodo de Lagrange cresce com n2 com o crescimento de n. Este crescimento nao e serio para
valores de n que realmente ocorrem na pratica.

78

4.1.2

Forma de Newton do Polin


omio Interpolador

Pelo teorema anterior temos que existe um u


nico polinomio de grau n que passa por n + 1
pontos distintos (x0 , y0 ), (x1 , y1 ), ... , (xn , yn ). Se n = 0 temos apenas um ponto e o polinomio
de grau zero
p0 (x) = y0
passa por (x0 , y0 ). Se temos dois pontos (x0 , y0 ) e (x1 , y1 ), podemos construir um polinomio de
primeiro grau
p1 (x) = c0 + c1 (x x0 )
como queremos que p1 (x0 ) = y0 e p2 (x1 ) = y1 , fazemos
c0 = y0 = p0 (x1 )
c1 =

y1 p0 (x1 )
y 1 c0
=
x1 x0
x1 x0

Se queremos que passe por 3 pontos (x0 , y0 ), (x1 , y1 ), (x2 , y2 ), escrevemos o polinomio como:
p2 (x) = c0 + c1 (x x0 ) + c2 (x x0 )(x x1 )
no polinomio acima temos que
p2 (x0 ) = c0 = y0
,
p2 (x1 ) = c0 + c1 (x x0 ) = y0 +

y1 p0 (x1 )
(x1 x0 )
x1 x0

mas p0 (x1 ) = y0 , logo


p2 (x1 ) = y1
Ainda queremos que p2 (x2 ) = y2 , assim temos
y2 = c0 + c1 (x2 x0 ) + c2 (x2 x0 )(x2 x1 )
logo
c2 =

y2 p1 (x2 )
y2 (c0 + c1 (x2 x1 ))
=
(x2 x0 )(x2 x1 )
(x2 x0 )(x2 x1 )

Seguindo este raciocnio, obtemos que o polinomio que passa por n + 1 pontos (x0 , y0 ), (x1 , y1 ),
..., (xn , yn ) pode ser escrito como:
pn (x) = c0 + c1 (x x0 ) + c2 (x x0 )(x x1 ) + ... + cn (x x0 )...(x xn1 )
onde
ck =

yk pk1 (xk )
(xk x0 )(xk x1 )...(xk xk1 )

79

Computacionalmente, para calcular os pk (x), se os coeficientes ck ja sao conhecidos, um


metodo eficiente de calculo e o algoritmo de Horner. Chamando di = (x xi ) escrevemos o
polinomio como:
u(x) = c0 + c1 d0 + c1 d0 d1 + ... + cn d0 ...dn1
ou
u(x) = (...(((ck )dk1 + ck1 )dk2 + ck2 )dk3 + ... + c1 )d0 + c0
Para testarmos o metodo acima vamos escolher o polinomio p3 (x) = 4x3 + 35x2 84x 954,
e vamos gerar a tabela:
5 -7 -6
0
1 -23 -54 -954

x
y
temos que:

c0 = 1
p0 (x) = 1
assim

y1 p0 (7)
=2
7 5
p1 (x) = 1 + 2(x 5)

c1 =

novamente
c2 =

y2 p1 (6)
=3
(6 5)(6 + 7)

p2 (x) = 1 + 2(x 5) + 3(x 5)(x + 7) = 3x3 + 8x 114


finalmente
c3 =

y3 p1 (0)
=4
(0 + 6)(0 + 7)(0 5)

p3 (x) = 1 + 2(x 5) + 3(x 5)(x + 7) + 4(x 5)(x + 7)(x + 6) = 4x3 + 35x2 84x 954

80

4.2

Interpolac
ao por Spline C
ubico

Uma das dificuldades com a interpolacao polinomial, particularmente se o polinomio e de alta


ordem, e seu carater altamente oscilatorio. Uma interpolacao de uma funcao mais suave pode
ser produzida mecanicamente por uma curva Francesa ou forcando uma barra elastica flexvel
a passar pelos pontos desejados. O analogo matematico desta barra flexvel e a funcao spline.
Um spline e uma funcao polinomial por partes, isto e, e um polinomio de grau n entre cada dois
nos da malha considerada. O spline e particularmente usado para interpolar tabela de funcoes
com propriedades fsicas livres de rudos.
A aproximacao mais comum por polinomios por partes e usando polinomios c
ubicos, os splines
c
ubicos, esta aproximacao interpola pontos entre cada dois pontos consecutivos da malha, que
nao precisa ser igualmente espacada, usando polinomios c
ubicos. Um polinomio c
ubico envolve
quatro constantes, nos dando assim flexibilidade para assegurar que o interpolante alem de ser
contnuo em cada ponto da malha seja diferenciavel, e ainda podendo garantir a existencia de
derivadas segundas contnuas. Assim o Spline c
ubico que vamos chamar de S(x) e uma funcao
formada por polinomios c
ubicos Sj (x) definidos entre os nos xj e xj+1 da malha de forma que:

Sj (xj+1 ) = f (xj+1 ) = Sj+1 (xj+1 )


0
S 0 (xj+1 ) = Sj+1
(xj+1 )
00j
00
Sj (xj+1 ) = Sj+1 (xj+1 )

os polinomios coincidem em xj+1


as declividades coincidem em xj+1
as curvaturas coincidem em xj+1

Figura 4.1: Spline Cubico


Assim podemos definir Spline c
ubico como:
Definic
ao 11 Dadas uma funcao f em [a, b], um conjunto de n
umeros chamados de n
os
a = x0 < x1 < < xn = b

81

um interpolante Spline C
ubico, S, para f e uma funcao que satisfaz as seguintes condic
oes:
1. S e um polinomio C
ubico, chamado de Sj em cada subintervalo [xj , xj+1 ], para j =
0, 1, . . . , n 1.
2. S(xj ) = f (xj ), para j = 0, 1, . . . , n.
3. Sj+1 (xj+1 ) = Sj (xj+1 ), para j = 0, 1, . . . , n 2.
0
4. Sj+1
(xj+1 ) = Sj0 (xj+1 ), para j = 0, 1, . . . , n 2.
00
5. Sj+1
(xj+1 ) = Sj00 (xj+1 ), para j = 0, 1, . . . , n 2.

6. Uma das seguintes condicoes de contorno e satisfeita:


(a) S 00 (x0 ) = S 00 (xn ) = 0 (coordenadas livres ou naturais).
(b) S 0 (x0 ) = f 0 (x0 ) e S 0 (xn ) = f 0 (x0 ) (extremos campled).
Devemos notar que os splines c
ubicos podem ser definidos com outras condicoes de contorno,
mas estas duas sao as mais usadas.

4.2.1

Spline C
ubico Natural

Chamamos de spline c
ubico natural quando ocorrem condicoes de contorno livres, seu grafico
aproxima a forma de de um longo cabo flexvel que passa atraves dos pontos dados (x0 , f (x0 )),
(x1 , f (x1 )) e (xn , f (xn )).
Vamos agora construir o interpolante spline c
ubico para uma dada funcao f . Assim seja o
conjunto de polinomios,
Sj (x) = aj + bj (x xj ) + cj (x xj )2 + dj (x xj )3

(4.8)

para cada j = 0, 1, . . . , n 1. Para cada xj temos que Sj (x) = aj = f (xj ), e se aplicamos a


condicao (3) temos,
aj+1 = Sj+1 (j+1 ) = Sj (xj+1 ) = aj + bj (xj+1 xj ) + cj (xj+1 xj )2 + dj (xj+1 xj )3
para j = 0, 1, . . . , n 2. Daqui em diante vamos usar a notacao, hj = xj+1 xj .
Se nos tambem definimos an = f (xn ) podemos ver que a equacao
aj+1 = aj + bj hj + cj h2j + dj h3j

(4.9)

vale para j = 0, 1, . . . , n 1.
De maneira similar definimos bn = S0 (xn ) e como
Sj0 (x) = bj + 2cj (x xj ) + 3dj (x xj )2

82

temos que Sj0 (xj ) = bj para j = 0, 1, . . . , n 1 e assim aplicando a condicao (4),


bj+1 = bj + 2cj hj + 3dj h2j ,

j = 0, 1, . . . , n 1

Podemos obter uma outra condicao entre os coeficientes de Sj se definimos cn =


cando a condicao (5). Neste caso,
cj+1 = cj + 3dj hj

(4.10)
S00 (xn )
2

e apli-

(4.11)

para j = 0, 1, . . . , n 1.
Resolvendo para dj na equacao (4.11)
dj =

cj+1 cj
3hj

(4.12)

e substituindo este valor na equacao (4.9) e (4.10) temos as novas equacoes

aj+1 = aj + bj hj +

h2j
(2cj + cj+1 )
3

(4.13)

e
bj+1 = bj + hj (cj + cj+1 )

(4.14)

para cada j = 0, 1, 2, ..., n 1.


A relacao final envolvendo os coeficientes e obtido resolvendo a equacao apropriada na forma
da equacao (4.13), primeiramente para bj ,

bj =

1
hj
(aj+1 aj ) (2cj + cj+1 ),
hj
3

(4.15)

e procedendo uma reducao de ndice da equacao acima para bj1 ,

bj1 =

1
hj1

(aj aj1 )

hj1
(2cj1 + cj ).
3

Substituindo estes valores na equacao derivada de (4.14), quando o ndice e reduzido de um,
obtemos o sistema linear

hj1 cj1 + 2(hj1 + hj )cj + hj cj+1 =

3
3
(aj+1 aj )
(aj aj1 )
hj
hj1

83

(4.16)

para cada j = 1, 2, ..., n 1. Este sistema envolve, como variaveis, somente {cj }nj=0 , uma vez
n
que os valores de {hj }n1
ao dados pelo espacamento entre os nos {xj }nj=0 e pelos
j=0 e {aj }j=0 s
valores {f (xj )}nj=0 nos nos.
Note que uma vez que os valores de {cj }nj=0 ficam conhecidos, podemos de forma simples
n1
encontrar as constantes restantes {bj }j=0
da equacao (4.15) e {dj }n1
cao (4.11), e,
j=0 da equa
n1
assim, construir os polinomios c
ubicos {Sj }j=0 . A maior questao que aparece em conexao com
esta construcao e quando os valores de {cj }nj=0 podem ser determinados usando o sistema de
equacoes dado por (4.16), e quando estes valores sao u
nicos. A resposta e que com as condicoes
de contorno naturais sempre teremos solucao u
nica para este sistema. Isto e
Teorema 28 Se f esta definida em a = x0 < x1 < ... < xn = b, entao f possui um u
nico
interpolante spline c
ubico natural nos nos x0 , x1 , ..., xn , isto e, um interpolador de spline c
ubico
que satisfaz as condicoes de contorno S(a) = S(b) = 0.
A demonstracao deste teorema e encontrada em Burden and Faires Numerical Analysis.
Os coeficientes de
Sj (x) = aj + bj (x xj ) + cj (x xj )2 + dj (x xj )3
podem ser calculados como:
hj = xj+1 xj
aj = f (xj ) para j = 0, 1, ..., n

(4.17)

os coeficientes cj sao calculados resolvendo o sistema linear,


Ac = v

(4.18)

onde

A=

1
0
0
h0 2(h0 + h1 )
h1
0
h1
2(h1 + h2 )
:
...
...
:
...
...
0
...
...

... ...
...
0
... ...
...
:
h2 ...
...
:
... ...
...
:
... hn2 2(hn2 + hn1 ) hn1
...
0
0
1

c = [c0 , c1 , ..., cn ]T

(4.19)

(4.20)

e finalmente

84

v=

0
3
(a2 a1 ) h30 (a1 a0 )
h1
:
:
3
3
(an an1 ) hn2
(an1 an2 )
hn1
0

(4.21)

e finalmente,
bj = (aj+1 aj )/hj hj (cj+1 + 2cj )/3
dj = (cj+1 cj )/(3hj )

(4.22)

Obs: A matriz A e estritamente diagonal dominante, o que garante a unicidade de solucao do


sistema (4.18).

4.2.2

Spline C
ubico Restrito

Teorema 29 Se f esta definida em a = x0 < x1 < ... < xn = b e e diferenciavel em a e b,


entao f possui um u
nico interpolante spline c
ubico Restrito nos nos x0 , x1 , ..., xn , isto e, um
interpolador de spline c
ubico que satisfaz as condicoes de contorno S 0 (a) = f 0 (a) e S 0 (b) = f 0 (b).
A demonstracao deste teorema e encontrada em Burden and Faires Numerical Analysis.
Os coeficientes de
Sj (x) = aj + bj (x xj ) + cj (x xj )2 + dj (x xj )3
podem ser calculados como:
hj = xj+1 xj
aj = f (xj ) para j = 0, 1, ..., n

(4.23)

os coeficientes cj sao calculados resolvendo o sistema linear,


Ac = v

(4.24)

onde

85

A=

v=

2h0
h0
0
h0 2(h0 + h1 )
h1
0
h1
2(h1 + h2 )
:
...
...
:
...
...
0
...
...

... ...
...
0
... ...
...
:
h2 ...
...
:
... ...
...
:
... hn2 2(hn2 + hn1 ) hn1
...
0
hn1
2hn1

a0 ) 3f 0 (a)
3
(a2 a1 ) h30 (a1 a0 )
h1
:
:
3
3
(a

a
)

(an1 an2 )
n
n1
hn1
hn2
3
0
3f (b) hn1 (an an1 )
3
(a1
h0

(4.25)

(4.26)

e finalmente,
c = [c0 , c1 , ..., cn ]T

(4.27)

e finalmente
bj = (aj+1 aj )/hj hj (cj+1 + 2cj )/3
dj = (cj+1 cj )/(3hj )

(4.28)

Obs: A matriz A e estritamente diagonal dominante, o que garante a unicidade de solucao do


sistema (4.24) e que a pode ser resolvido por eliminacao Gaussiana sem troca de linhas.

Exemplo 22 Por exemplo, vamos interpolar o seguinte conjunto de 21 pontos:


{(0.9, 1.3), (1.3, 1.5), (1.9, 1.85), (2.1, 2.1), (2.6, 2.6), (3.0, 2.7), (3.9, 2.4),
(4.4, 2.15), (4.7, 2.05), (5.0, 2.1), (6.0, 2.25), (7.0, 2.3), (8.0, 2.25), (9.2, 1.95),
(10.5, 1.4), (11.3, 0.9), (11.6, 0.7), (12.0, 0.6), (12.6, 0.5), (13.0, 0.4), (13.3, 0.25)}

86

Figura 4.2: Conjunto de pontos a ser interpolado


Primeiramente vamos usar interpolador de Lagrange e desta forma obtemos um polin
o2
mio de grau 20 dado por p(x) = 9652.785079125108 + 52462.58032870206x 128683.40x +
189994.99x3 189850.97x4 + 136777.90x5 73866.57x6 + 30677.63x7 9968.98x8 + 2564.20x9
525.81x10 +86.25x11 11.32x12 +1.18x13 0.09769x14 +0.006286x15 0.0003082x16 +0.00001111x17
2.77 107 x18 + 4.28 109 x19 3.07 1011 x20

Figura 4.3: Interpolando por polinomio de grau 20


Um polinomio de grau muito alto, tende a oscilar muito, e desta forma em geral nao produz
o resultado desejado. Podemos neste caso fazer uma interpolacao por spline-c
ubico, obtendo o

87

seguinte spline natural,

p0 (x) = 1.3 + 0.54(x 0.9) + 0(x 0.9)2 0.25(x 0.9)3

2
3

p1 (x) = 1.5 + 0.42(x 1.3) 0.3(x 1.3) +2 0.95(x 1.3) 3

p3 (x) = 1.85 + 1.09(x 1.9) + 1.41(x 1.9) 2.96(x 1.9)

p4 (x) = 2.1 + 1.29(x 2.1) 0.37(x 2.1)2 0.45(x 2.1)3

p5 (x) = 2.6 + 0.59(x 2.6) 1.04(x 2.6)2 + 0.45(x 2.6)3

p6 (x) = 2.7 0.02(x 3.0) 0.5(x 3.0)2 + 0.17(x 3.0)3

p7 (x) = 2.4 0.50(x 3.9) 0.03(x 3.9)2 + 0.08(x 3.9)3

p8 (x) = 2.15 0.48(x 4.4) + 0.08(x 4.4)2 + 1.31(x 4.4)3

p9 (x) = 2.05 0.07(x 4.7) + 1.27(x 4.7)2 1.58(x 4.7)3

p10 (x) = 2.1 + 0.26(x 5.0) 0.16(x 5.0)2 + 0.04(x 5.0)3


p11 (x) = 2.25 + 0.08(x 6.0) 0.03(x 6.0)2 + 0.0(x 6.0)3

p12 (x) = 2.3 + 0.01(x 7.0) 0.04(x 7.0)2 0.02(x 7.0)3

p13 (x) = 2.25 0.14(x 8.0) 0.11(x 8.0)2 + 0.02(x 8.0)3

p14 (x) = 1.95 0.34(x 9.2) 0.05(x 9.2)2 0.01(x 9.2)3

p15 (x) = 1.4 0.53(x 10.5) 0.1(x 10.5)2 0.02(x 10.5)3

p16 (x) = 0.9 0.73(x 11.3) 0.15(x 11.3)2 + 1.21(x 11.3)3

p17 (x) = 0.7 0.49(x 11.6) + 0.94(x 11.6)2 0.84(x 11.6)3

p18 (x) = 0.6 0.14(x 12.0) 0.06(x 12.0)2 + 0.04(x 12.0)3

2
3

p19 (x) = 0.5 0.18(x 12.6) + 0.0(x 12.6) 0.45(x 12.6)

2
p20 (x) = 0.4 0.39(x 13.0) 0.54(x 13.0) + 0.6(x 13.0)3

Figura 4.4: Interpolacao por Spline-Cubico Natural

88

0.9 x < 1.3


1.3 x < 1.9
1.9 x < 2.1
2.1 x < 2.6
2.6 x < 3.0
3.0 x < 3.9
3.9 x < 4.4
4.4 x < 4.9
4.9 x < 5.0
5.0 x < 6.0
6.0 x < 7.0
7.0 x < 8.0
8.0 x < 9.2
9.2 x < 10.5
10.5 x < 11.3
11.3 x < 11.6
11.6 x < 12.0
12.0 x < 12.6
12.6 x < 13.0
13.0 x < 13.3

Note que no exemplo acima o spline c


ubico natural aproxima melhor a curva que o Restrito.
A razao disto e o fato das derivadas terem sido estimadas de forma nao precisa. Geralmente
as condicoes de contorno do tipo Restrito sao as preferidas quando aproximamos funcoes por
splines c
ubicos. Assim as derivadas das funcoes devem ser estimadas nos pontes final e inicial
do intervalo. Quando os nos sao igualmente espacados, por exemplo podemos usar diferencas
finitas para frente e para tras ou qualquer outro tipo de aproximacao da derivada. No caso de
dados nao igualmente espacados o problema fica consideravelmente mais difcil.
Devemos ainda observar que pode ser feito um estudo de limite de erro em livros de analise
numerica como Schultz MH, Spline Analysis Prendice Hall 1973. Assim para o Spline c
ubico
4
Restrito se f C [a, b] e com derivada quarta limitada neste intervalo por M e se chamarmos
de S o u
nico interpolante spline c
ubico de f com respeito aos nos a = x0 < x1 < ... < xn = b,
entao
max |f (x) S(x)|

axb

5M
max (xj+1 xj )4 .
384 0jn1

89

Captulo 5
Ajuste de Mnimos Quadrados
Neste captulo iremos fazer uma breve introducao ao metodo de ajuste por mnimos quadrados.

5.1

Ajuste de Mnimos Quadrados para um conjunto discreto de pontos

Ajuste por mnimos quadrados e o procedimento matematico para encontrar a curva de melhor
ajuste para um dado conjunto de pontos atraves da minimizacao da soma dos quadrados das
distancias entre os pontos e a curva considerada. A soma dos quadrados das distancias e usada
ao inves do valor absoluto, pois desta forma os resduos poderao ser tratados como quantidades
continuamente diferenciaveis. Entretanto, como quadrados de distancias sao usados, pontos
muito afastados podem produzir um efeito nao proporcional no ajuste. Esta propriedade pode
ou nao ser desejavel depende muito do problema que esta sendo resolvido.

Figura 5.1: Aproximacao por mnimos quadrados

90

Figura 5.2: Distancias

Na pratica, as distancias verticais da linha interpoladora sao geralmente usadas para serem
minimizadas ao inves das distancias perpendiculares. Este procedimento fornece uma funcao
de ajuste para a variavel independente x para estimar o valor de y. Este procedimento permite
incerteza nos pontos dos dados ao longo dos eixos x e y que serao simplesmente incorporados,
e tambem fornece uma forma analtica muito mais simples para os parametros ajustados que
seriam obtidos usando um ajuste baseado nas distancias perpendiculares. Em adicao, quando
as distancias verticais sao consideradas, a tecnica de ajuste pode ser facilmente generalizada de
uma linha de melhor ajuste para um polinomio. De qualquer forma, para um n
umero razoavel
de pontos de rudos nos dados, a diferenca entre a aproximacao vertical e perpendicular e muito
pequena.
Desta forma a abordagem de mnimos quadrados para este problema determina a determinacao da melhor aproximacao quando o erro envolvido e a soma dos quadrados das diferencas
entre os valores de y na curva de aproximacao e os valores de y dados pela tabela. Assim
para caso de ajuste por uma linha reta, conhecidos os pontos {xi , yi )}m
i=1 , devemos minimizar
a funcao:
E2 (a0 , a1 ) =

m
X

[yi (a1 xi + a0 )]2 ,

i=1

em relacao aos parametros a0 e a1 . Para que um valor de mnimo ocorra, devemos ter que as
derivadas de E2 (a0 , a1 ) em relacao a a0 e a a1 sejam nulas, isto e:
0=

m
m
X
X
[yi (a1 xi + a0 )]2 = 2
[yi (a1 xi + a0 )](1)
a0 i=1
i=1

e
m
m
X
X
2
0=
[yi (a1 xi + a0 )] = 2
[yi (a1 xi + a0 )](xi )
a1 i=1
i=1

91

Estas equacoes podem ser simplificadas como:


Pm
Pm
a0 .m
+
a
x
=
yi
1
i
i=1 P
i=1 P
P
m
m
2
=
a0 m
x
+
a
x
1
i=1 xi yi
i=1 i
i=1 i
ou na forma matricial:


  Pm

Pm
m
x
a
y
i
0
i
i=1
i=1
Pm
Pm 2
= Pm
a1
i=1 xi
i=1 xi
i=1 xi yi

(5.1)

Exemplo 23 Vamos considerar os dados apresentados na tabela (23), que alem disto calcula
os valores necessarios para aplicacao da formula (5.1).
xi
1
2
3
4
5
6
7
8
9
10
55

yi
x2i
xi y i
P (xi ) = 1.538xi 0.360
1.3
1
1.3
1.18
3.5
4
7.0
2.72
4.2
9 12.6
4.25
5.0 16 20.0
5.79
7.0 25 35.0
7.33
8.8 36 52.8
8.87
10.1 49 70.7
10.41
12.5 64 100.0
11.94
13.0 81 117.0
13.48
15.6 100 156.0
15.02
P10
81.0 385 572.4 E2 = i=1 (yi P (xi ))2 2.34

Resolvendo o sistema eq1 temos:


a0 =

385(81) 55(572.4)
= 0.360
10(385) 552

a1 =

10(572.4) 55(81)
= 1.538
10(385) 552

de forma que P (x) = 1.538x 0.360. O grafico deta curva e os pontos da tabela sao mostrados
na figura (5.3). A interpolacao polinomial dos dados e mostrada na figura (5.4).

92

Figura 5.3: Aproximacao de Mnimos Quadrados

Figura 5.4: Interpolacao polinomial

O problema generico de se aproximar um conjunto de dados {xi , yi }i=1,m como um polinomio


do tipo
Pn (x) = an xn + an1 xn1 + ... + a1 x + a0 ,

(5.2)

de grau n < m 1, utilizando o metodo dos mnimos quadrados e tratado de modo semelhante
ao caso linear. Definimos:
P
2
E2 = Pm
n (xi ))
i=1 (yi PP
Pm
m
m
2
2
=
i=1 yi 2
i=1 Pn (xi )yi +
i=1 (Pn (xi ))

2

Pm 2
Pm Pn
Pm Pn
j
j
=
y

2
a
x
y
+
a
x
i
i=1 i
j=0
i=1 j 1
i=1
j=0 j i
P

 Pn Pn
Pm 2
Pn
Pm
m
j
j+k
=
.
i=1 yi 2
j=0 aj
i=1 yi xi +
j=0
k=0 aj ak
i=1 xi

93

Como no caso linear para minimizar E2 e preciso resolver um sistema de n equacoes e n


incognitas definido por E2 /aj = 0 para j = 0, 1, ..., n, isto e para cada j temos a equacao:
m
n
m
X
X
X
E2
j
= 2
0=
y i xi + 2
ak
xj+k
.
i
aj
i=1
i=1
k=0

Manipulando as equacoes acima algebricamente e temos:


n
X
k=0

ak

m
X

xj+k
i

i=1

m
X

yi xji ,

j = 0, 1, ..., n.

(5.3)

i=1

Que na forma matricial podem ser

Pm
m
...
i=1 xi
Pm xi Pm x2
...

i=1 i
i=1

..
.
.
..
..

Pm. n Pm n+1
...
i=1 xi
i=1 xi

escritas como:
Pm n
i
Pmi=1 xn+1

i=1 i

..

Pm . 2n
i=1 xi

Pm
i=1 yi
Pm x i y i
i=1
= ..
.
Pm n
an
i=1 xi yi
a0
a1
..
.

Exemplo 24 Ajuste os dados da tabela (24) atraves de um polinomio quadratico.


i
1
2
3
4
5

xi
0
0.25
0.50
0.75
1.00
2.00

yi
1.0000
1.2840
1.6487
2.1170
2.7183
8.7680

x2i
x3i
x4i
xi y i
x2i yi
0
0
0
0
0
0.0625 0.01563 0.003906 0.3210 0.08025
0.2500 0.1250 0.062500 0.8244 0.41227
0.5625 0.4219 0.316406 1.5878 1.19081
1.0000 1.0000 1.000000 2.7183 2.71830
1.8750 1.5625 1.382812 5.4514 4.40154

Resolvendo o sistema dado por (5.4) temos o seguinte polinomio quadratico:


p(x) = 1.00514 + 0.864183x + 0.843657x2
E o grafico do resultado obtido e mostrado na figura (5.5) mostrada a seguir.

94

(5.4)

Figura 5.5: Aproximacao por mnimos quadrados

O sistema definido por (5.4) pode ser resolvido por tecnicas simples como eliminacao Gaussiana por exemplo, mas infelizmente o conjunto de equacoes e muito mal condicionado. O
n
umero de equacoes que pode ser resolvido esta severamente limitado na maior parte dos casos
por causa dos erros de arredondamento. Usualmente se usarmos precisao simples o sistema tera
solucao sem sentido para m=7 ou m=8. Um dos problemas e a grande variacao de grandezas
entre os coeficientes de cada linha. Usar dupla precisao nas maquinas e altamente indicado
quando trabalhamos com ajuste por mnimos quadrados.
Por sorte, na pratica polinomios de baixa ordem sao usados no ajuste de dados. Os polinomios de alto grau, quando usados em ajuste de curvas, tendem a reproduzir rudos existentes
nos dados. Na maior parte das vezes o ajuste de dados e feito atraves de linhas retas, e muitas vezes os dados sao plotados em escalas diferentes (tal como a escala log-log) ate os dados
assumirem uma forma na qual o ajuste por uma linha reta e uma aproximacao razoavel.
A escolha do grau do polinomio a ser usado e muitas vezes difcil de escolher. A melhor
situacao e quando sabemos que os dados devem se encaixar em um polinomio de determinado
grau. Julgamentos qualitativos tambem podem ser usados, por exemplo, se os dados parecem
conter uma inflexao entao um
ubico pode ser uma escolha obvia. Outros metodos
P polinomio c
2
baseados na observacao de m
(y

p(x
alises estatsticas tambem podem ser
i )) ou em an
i=0 i
usados.

5.1.1

Ajustes n
ao polinomiais

Algumas vezes e necessario ajustar os dados atraves de uma funcao exponencial


y(x) = BeAx

ou

95

y(x) = BxA

Para fazermos ajuste de mnimos quadrados com estas funcoes precisaramos minimizar a funcao
erro definida por
M
X
E(A, B) =
(BeAx yi )2

ou

i=1

E(A, B) =

M
X

(BxA yi )2

i=1

em ambos os casos o sistema de equacoes resultante desta minimizacao e nao linear que em
geral nao possui solucao exata. Geralmente para evitar esta dificuldade, usamos linearizar este
problema e depois aplicar o metodo de mnimos quadrados sobre o problema linearizado.
ln y = ln B + Ax

ou

ln y = ln B + A ln x

Assim em qualquer um dos casos reduzimos o problema nao linear para um problema linear,
onde podemos adaptar a formula de um polinomio linear.
Nota 3 A aproximacao obtida desta maneira, nao e a aproximacao de mnimos quadrados para
o problema original, e em alguns casos pode ser bem distinta desta, porem em geral esta e a
forma usada na pratica.

5.1.2

Alguns exerccios

1. Vamos usar mnimos quadrados (na forma linearizada) para encontrar o ajuste para o
seguinte conjunto de pontos:
xj
yj

0.2
0.3
0.6
0.9
1.1
1.3
1.4
1.6
0.050446 0.098426 0.33277 1.09782 0.72660 1.5697 1.8487 2.5015

(a) Construa o ajuste de MQ para os dados como um polinomio linear


(b) construa o ajuste de MQ como um polinomio quadratico
(c) construa o ajuste de MQ na forma beax (faca linearizando)
(d) construa o ajuste de MQ na forma bxa (faca linearizando)
A resposta esta dada na figura abaixo.

96

2. A lei de Hooke afirma que quando uma forca e aplicada a uma mola constituda de um
material uniforme o comprimento da mola e uma funcao linear desta forca e e descrita
por:
F (`) = (` E)
onde F (`) representa a forca requerida para dsitender a mola ` unidades de comprimento,
E e uma constante e representa o comprimento da mola quando nenhuma forca e aplicada
e finalmente e a constante da mola.
(a) Encontre uma aproximacao para , pelo metodo dos mnimos quadrados, quando
E = 5 e temos os dados da tabela:
F (`)
2
4
6

`
7.0
9.4
12.3

(b) Se as seguintes medidas adicionais sao feitas, qual a nova estimativa para usando
o metodo dos mnimos quadrados?

97

F (`)
3
5
8
10

5.2

`
8.3
11.3
14.4
15.9

A aproximac
ao de fun
c
oes contnuas

Outro problema de aproximacao diz respeito a funcoes contnuas. A melhor aproximacao para
funcoes contnuas sao usualmente consideradas como sendo aproximacoes que minimizam o erro
no sentido do minimax. Infelizmente isto muitas vezes e difcil de encontrar para certas classes de
funcoes e nos temos que trocar para a melhor aproximacao da melhor aproximacao. Por exemplo
ao inves de encontramos a melhor a melhor quadratica que aproxima certa funcao, teremos
que nos satisfazer com a quadratica que e suficientemente proxima da melhor quadratica. Boas
aproximacoes paar funcoes contnuas usualmente tem um erro d(x) = |f (x) g(x)| o qual oscila
em torno de zero na regiao de interesse na forma que os picos positivos sao aproximadamente
iguais aos picos negativos. Tal comportamento e muitas vezes chamado de comportamento
minimax mesmo a aproximacao nao sendo a melhor em sua classe. Os metodos de aproximacao
considerados possuem este comportamento desejavel.
A forma mais simples e mais comum de aproximacao para uma funcao contnua e o tipo
polinomial. De fato, sempre que uma representacao em serie de potencias e usada para calcular
uma funcao, entao uma aproximacao polinomial esta sendo usada uma vez que a serie deve ser
truncada em algum ponto e uma serie de potencias truncada e um polinomio.
Vamos supor que f C[a, b] e que um polinomio de grau Pn (x) de grau no mnimo n seja
necessario para minimizar o erro;
Z b
[f (x) Pn (x)]2 dx.
a

Vamos definir a funcao erro como:


Z

f (x)

E = E(a0 , a1 , ..., an ) =
a

n
X

!2
ak x

dx.

k=0

O problema e encontrar os coeficientes reais a0 , a1 , ..., an de forma que minimizem E. Uma


condicao necessaria para que os n
umeros a0 , a1 , ..., an minimizem E e que:
E
= 0, para cada j = 0, 1, ...n.
aj
Como
Z
E=
a

(f (x))2 dx 2

n
X
k=0

Z
ak

xk f (x)dx +

Z
a

98

n
X
k=0

!2
ak x k

dx,

assim temos:
E
= 2
aj

b
j

x f (x)dx + 2
a

n Z
X

xj+k dx.

k=0

Desta forma temos o sistema de equacoes:


n
X

ak

j+k

xj f (x)dx, para cada j = 0, 1, ...n,

(5.5)

k=0

dx =

que devem ser resolvidas para as n + 1 incognitas aj . Devemos observar que o sistema (5.5)
sempre possuira solucao u
nica se f C[a, b].
Exemplo 25 Encontre o polinomio de aproximacao dos mnimos quadrados de grau 2 para a
funcao f (x) = sin x no intervalo [0, 1].
Solucao: P2 (x) = a2 x2 + a1 x + a0 e o sistema e dados por:
Z 1
Z 1
Z 1
R1
a0
1dx + a1
xdx + a2
x2 dx = 0 sin xdx,
Z 10
Z 01
Z0 1
R1
a0
xdx + a1
x2 dx + a2
x3 dx = 0 x sin xdx,
Z 01
Z0 1
Z0 1
R1
a0
x2 dx + a1
x3 dx + a2
x4 dx = 0 x2 sin xdx.
0

Calculando as integrais temos:


1
a0 + a1 +
2
1
1
a0 + a1 +
2
3
1
1
a0 + a1 +
3
4

1
2
a2
=
3

1
1
a2
=
4

1
2 4
a2 =
5
3

Resolvendo o sistema temos:


a0 =

12 2 120
720 60 2

=
0.050465
e
a
=
a
=
= 4.12251.
1
2
3
3

Assim no intervalo [0, 1] a funcao f (x) = sin x possui aproximacao de mnimos quadrados de
grau 2 dada por P2 (x) = 4.12251x2 + 4.12251x 0.050465.

99

Figura 5.6: Aproximacao por mnimos quadrados - exemplo

O exemplo acima mostra as dificuldades para obtermos esta aproximacao de mnimos quadrados. Para a montagem do sistema de ordem n+1 os coeficientes para cada incognita a0 , ..., an
e da forma
Z b
bj+k+1 aj+k+1
xj+k dx =
j+k+1
a
Alem disto a matriz associada a este sistema e muito mal condicionada, chegando a ser um
exemplo classico de mal condicionamento e esta matriz e chamada de matriz de Hilbert.
Outra desvantagem e que para obtermos um polinomio de grau mais alto para o ajuste, isto
e Pn+1 (x), de nada ajudaria ja conhecermos Pn (x). O procedimento deve ser feito todo novamente.
Existe uma tecnica muito mais eficiente para fazer a aproximacao de mnimos quadrados.
Sua principal vantagem e que conhecido Pn (x) e facil determinar Pn+1 (x). Esta nova forma
envolve o conceito de polin
omios ortogonais.
Um conjunto de funcoes e dito Linearmente independente (LI) em um intervalo [a, b] se
sempre que
c0 0 (x) + c1 1 (x) + ... + cn n (x) = 0,
para todo x [a, b], so existe a solucao trivial, isto e c0 = c1 = ... = cn = 0.
Podemos mostrar que se j (x) e um polinomio de grau j, para j = 0, 1, ..., n, entao o
conjunto {0 , 1 , ..., n } e um conjunto LI de funcoes em qualquer intervalo [a, b].

100

Q
Vamos chamar de n o conjunto de todos os polinomios de grau menor ou igual `aQn.
Podemos mostrar que se V = {0 , 1 , ..., n } e um conjunto de polinomios LI de n
entao qualquer polinomio de grau menor ou igual a n pode ser escrito de forma u
nica
como combinacao linear dos elementos de V.
Dizemos que uma funcao integravel w e uma funcao peso no intervalo I se w(x) 0,
para todo x em I, sendo que w(x) 6= 0 em qualquer subintervalo de I. O objetivo
desta funcao peso e atribuir graus de importancia distintos `as aproximaco
es em certas
porcoes do intervalo. Por exemplo, no intervalo (0, 1) a funcao w(x) = 1/ 1 x2 , que
aparece associada aos polinomios de Chebychev, enfatiza aos pontos perto dos extremos
do intervalo e menor aos pontos no interior do intervalo.
Um conjunto de funcoes {0 , 1 , ..., n } e dito ortogonal no intervalo [a, b] em relacao a`
uma funcao peso w se

Z b
0,
se j 6= k
w(x)j (x)k (x)dx =
.
k > 0 se j = k
a
Se de forma adicional, k = 1 para cada k = 0, 1, ..., n entao o conjunto e dito ortonormal.
Vamos agora supor que temos um conjunto de funcoes ortogonais em relacao a uma funcao
peso w(x) em um intervalo [a, b] e seja uma funcao f C[a, b] se queremos aproximar
f (x) =

n
X

ak k (x)

k=0

de forma que o erro quadratico


Z

w(x) f (x)

E(a0 , a1 , ..., an ) =
a

n
X

!2
ak k (x)

k=0

seja mnimo. Derivando as equacoes acima temos


E
0=
=2
aj

w(x) f (x)
a

n
X

!
ak k (x) j (x)dx

k=0

Assim das equacoes acima temos:


Z b
Z b
n
X
w(x)f (x)j (x)dx =
ak
w(x)k (x)j (x)dx
a

k=0

usando a ortogonalidade com relacao a funcao peso das funcoes temos que:
Rb
w(x)f (x)j (x)dx
aj = R ba
w(x)k (x)j (x)dx
a

101

E desta forma o problema de aproximacao de uma funcao por mnimos quadrados fica
muito simplificado.
Devemos ainda observar que aqui apenas conjuntos de polinomios ortogonais foram considerados, e que podemos construir um conjunto de polinomios ortogonais com relacao a
uma funcao peso w(x) em [a, b] atraves do uso do processo de Gram-Schmidt.

102

Captulo 6
Diferen
cas Finitas
No calculo convencional a operacao de diferenciacao de uma funcao e um procedimento formal
bem definido com operacoes altamente dependentes da forma da funcao envolvida. Muitos
tipos de regras distintas sao necessarias para funcoes distintas. Nos metodos numericos em um
microcomputador apenas podemos empregar as operacoes + / e certas operacoes logicas.
Desta forma precisamos desenvolver uma tecnica para diferenciar funcoes usando apenas estas
operacoes. Para isto vamos estudar um pouco de calculo de Diferencas Finitas.

6.1

Diferencas para Frente e para Tr


as
(Forward / Backward)

Vamos considerar f (x) uma funcao analtica num intervalo aberto contendo um ponto x, usando
a serie de Taylor para f (x) (2.1) fazendo x = x + h e a = x, temos que:

f (x + h) = f (x) + hf 0 (x) +

h3
h2 00
f (x) + f 000 (x) . . .
2!
3!

(6.1)

isolando f 0 (x) na equacao acima temos:

f 0 (x) =

h2
f (x + h) f (x) h 00
f (x) f 000 (x) . . .
h
2
6

103

(6.2)

Figura 6.1: Vizinhanca de x

e desta forma temos que,

f 0 (x) =

f (x + h) f (x)
+ O(h)
h

(6.3)

Notac
ao: f (x + ih) = fj+i e f (x) = fj .
Usando a notacao acima:

f 0 (x) =

fj+1 fj
4fj
+ O(h) =
+ O(h)
h
h

(6.4)

onde 4fj = fj+1 fj .


A expressao para f 0 (x) pode agora ser escrita como:

f 0 (x) =

4fj
+ O(h)
h

(6.5)

O termo 4fj /h e chamado de aproximacao em diferenca para frente de primeira ordem. Graficamente (fj+1 fj )/h aproxima a declividade da funcao f em um ponto x pela declividade da
linha reta que passa atraves de f (x + h) e f (x).
Para calcularmos a formula de diferencas para tras, fazemos um raciocnio similar expandindo
f (x h). isto e:

f (x h) = f (x) hf 0 (x) +

h2 00
h3
f (x) f 000 (x) . . .
2!
3!

(6.6)

resolvendo para f 0 (x) e truncando a serie temos:

f 0 (x) =

f (x) f (x h)
+ O(h)
h

(6.7)

104

ou,
f 0 (x) =

fj
fj fj1
+ O(h) =
+ O(h)
h
h

(6.8)

onde fj = fj fj1 .
O termo fj /h e chamada de aproximacao de primeira ordem em diferencas para tras com erro
de ordem h para f 0 (x). A interpretacao geometrica da aproximacao e a declividade da linha
reta que une f (x) e f (x h).
Note dos termos de erro em (6.2) e (6.7) que ambas as aproximacoes em diferencas para frente
e para tras sao exatas para linhas retas (uma vez que o termo de erro nao envolve f 0 (x) mas
sao somente aproximacoes para outras funcoes onde f 00 (x) e derivadas maiores sao nao nulas.
Agora, vamos obter aproximacoes de ordens maiores.

6.1.1

C
alculo de derivadas de ordem superior

Vamos expandir f (x + 2h) em serie de Taylor, assim


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

(2h)3 000
(2h)2 00
f (x) +
f (x) + . . .
2!
3!

(6.9)

Agora, fazendo (6.9) menos duas vezes (6.1) temos,


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

h3 000
f (x) + . . .
3

(6.10)

isolando f 00 (x)
f 00 (x) =

f (x + 2h) 2f (x + h) + f (x)
hf 000 (x) + . . .
h2

(6.11)

f 00 (x) =

f (x + 2h) 2f (x + h) + f (x)
fj+2 2fj+1 + fj
+ O(h) =
+ O(h)
2
h
h2

(6.12)

Assim encontramos uma expressao para derivadas de f com respeito a x de segunda ordem e
com erro da ordem de h. A diferenca de segunda ordem para frente de f em j e definida como:
42 fj fj+2 2fj+1 + fj

(6.13)

e nos podemos reescrever (6.12) para f 00 (x) como,


f 00 (x) =

fj+2 2fj+1 + fj
42 f j
+
O(h)
=
+ O(h)
h2
h2

105

(6.14)

Fazendo raciocnio similar para diferencas para tras, isto e expandindo f (x 2h) obtemos:

f 00 (x) =

2 fj
+ O(h)
h2

(6.15)

onde a diferenca de segunda ordem para tras de f em j e definida como:


2 fj = fj 2fj1 + fj2

(6.16)

Para generalizarmos o resultado para derivadas de maior ordem, definimos a formula de


a ncia,
recorrA
4n fj = 4(4n1 fj )
n fj = (n1 fj )
Podemos encontrar qualquer diferenca finita, tomando as diferencas da diferenca finita de ordem imediatamente inferior. Por exemplo, a diferenca segunda para tras de f em j pode ser
encontrada como:
2 fj = (fj ) = fj fj1 = (fj fj1 ) (fj1 fj2 ) = fj 2fj1 + fj2 (6.17)
E desta forma,

4n f j
dn f
=
+ O(h)
dxn xj
hn

dn f
n fj
=
+ O(h)
dxn xj
hn

dif. para f rente


dif. para tr
as

Nota: Todas estas expressoes que foram derivadas ate agora sao O(h).
Abaixo as expressoes de diferencas finitas para frente e para tras para O(h) estao tabuladas ate
quarta ordem.
Tabelas para as f
ormulas O(h) de diferencas
FORWARD formulas
0

hf (x)
h f (x)
h3 f 000 (x)
h4 f (4) (x)
2 00

fj fj+1 fj+2 fj+3 fj+4


-1
1
1
-2
1
+O(h)
-1
3
-3
1
1
-4
6
-4
1

106

BACKWARD formulas
fj4
hf 0 (x)
h2 f 00 (x)
h3 f 000 (x)
h4 f (4) (x)

6.1.2

fj3

fj2

-1
-4

fj1 fj
-1 1
1
-2 1 +O(h)
3
-3 1
6
-4 1

Express
oes em diferencas com ordem de erro mais alta

As formulas (6.2) e (6.11) nos dao expressoes em diferencas para frente de f 0 (x) e f 00 (x) respectivamente. Substituindo (6.11) em (6.2) temos:
f (x + h) f (x) h

f (x) =
h
2
0


f (x + 2h) 2f (x + h) + f (x)
h2 000
000
hf (x) + . . . f (x)+. . .
h2
6
(6.18)

logo,
f 0 (x) =

f (x + 2h) + 4f (x + h) 3f (x) h2 000


+ f (x) . . .
2h
3

(6.19)

fj+2 + 4fj+1 3fj


+ O(h2 )
2h

(6.20)

assim,
f 0 (x) =

Esta e a representacao da derivada primeira com uma precisao de O(h2 ). Note que como o
erro para esta formula envolve a derivada terceira, ela e exata para um polinomio de segundo
grau.
Formulas para frente e para tras, apesar de raramente usadas na pratica podem ser obtidas
atraves de substituicoes sucessivas de mais termos na expressao da serie de Taylor por expressoes
de diferencas finitas de O(h). Este procedimento tambem acarreta erros, pois cada termo
substituido possui um termo de erro que automaticamente contribui para o proximo termo de
erro de ordem maior.
Tabelas para as f
ormulas O(h2 ) de diferencas

2hf 0 (x)
h2 f 00 (x)
2h3 f 000 (x)
h4 f (4) (x)

FORWARD formulas
fj fj+1 fj+2 fj+3 fj+4 fj+5
-3
4
-1
2
-5
4
-1
+O(h2 )
-5
18 -24
14
-3
3 -14
26 -24
11
-2

107

BACKWARD formulas
fj5

fj4

fj3

fj2 fj1 fj
1
-4 3
-1
4
-5 2 +O(h2 )
-14
24 -18 5
-24
26 -14 3

2hf (x)
h2 f 00 (x)
2h3 f 000 (x)
h4 f (4) (x)

6.2

-2

3
11

Diferencas Centrais

Seja f (x) uma funcao analtica. Vamos expandir f (x + h) e f (x h) em serie de Taylor, assim
f (x + h) = f (x) + hf 0 (x) +

h3
h2 00
f (x) + f 000 (x) . . .
2!
3!

(6.21)

f (x h) = f (x) hf 0 (x) +

h2 00
h3
f (x) f 000 (x) . . .
2!
3!

(6.22)

Diminuindo (6.22) de (6.21) temos:


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

h3 000
f (x) + . . .
3

(6.23)

Agora isolando f 0 (x) temos,


f 0 (x) =

f (x + h) f (x h)
fj+1 fj1
+ O(h2 ) =
+ O(h2 )
2h
2h

(6.24)

Note que o erro e O(h2 ), logo e exata para parabolas. Da mesma forma que na secao anterior
podemos obter expressoes para derivadas de ordem superior, e a formulas sao:
fj+1 2fj + fj1
+ O(h2 )
h2
Generalizando temos as formulas:
f 00 (x) =

dn f
dxn
dn f
dxn

=
=

n fj+n/2 +4n fjn/2


2hn
n fj+(n1)/2 +4n fj(n1)/2
2hn

(6.25)

+ O(h2 )
+ O(h2 )

se n par
se n impar

Tabelas para as f
ormulas O(h2 ) e O(h4 ) de diferencas centrais

108

(6.26)

fj2
0

2hf (x)
h2 f 00 (x)
2h3 f 000 (x)
-1
4 (4)
h f (x)
1
fj3 fj2
0
hf (x)
1
h2 f 00 (x)
-1
h3 f 000 (x)
1
-8
4 (4)
h f (x)
-1
12

fj1
-1
1
2
-4
fj1
-8
16
13
-39

fj fj+1 fj+2
0
1
-2
1
+O(h2 )
0
-2
1
6
-4
1
fj fj+1 fj+2 fj+3
0
8
-1
-30
16
-1
+O(h4 )
0 -13
8
-1
56 -39
12
-1

Expressoes em diferencas de O(h) podem ser obtidas empregando operacoes com series de
Taylor, mas nao faremos aqui por ser muito extenso. Estas expressoes estao tabuladas acima.

6.3

Diferencas e Polin
omios

Expressoes em diferencas para derivadas e polinomios possuem algumas relacoes diferentes que
podem ser muito u
teis. pois por exemplo, para diferenca para frente temos:
f (x + h) 2f (x) h 00
h2
f (x) f 000 (x) ...
h
2
6
f (x + 2h) 2f (x + h) + f (x)
hf 000 (x) ...
f 00 (x) =
h2
...

f 0 (x) =

Assim, como podemos ver acima, o termo de erro para uma enesima diferenca apenas envolvera
derivadas de ordem n+1 ou maiores. Desta forma se consideramos um polinomio de grau n, sua
enesima representacao em diferenca tomada em qualquer ponto deste polinomio sera constante
e exatamente igual a sua derivada de enesima ordem (n!an ), uma vez que os termos envolvidos
no erro serao zeros.
Este conhecimento podera ser usado para nos dar alguma ideia de o quao bem um dado polinomio pode ajustar dados obtidos em uma serie de pontos igualmente espacados em uma variavel
independente. Por exemplo, se a terceira diferenca tomada em varios valores de uma variavel
independente sao muito proximos e suas quarta diferencas sao quase nulas, entao um polinomio c
ubico ira ajustar bem estes dados. Este procedimento sera discutido melhor no proximo
captulo.
Exemplo 26 Vamos considerar seguintes dados igualmente espacados,

x
0 1
f (x) 30 33

2
3
4
28 12 -22

109

Encontre f 0 (0), f 0 (2), f 0 (4) e f 00 (0) usando representacoes O(h2 ).

Solucao: Em x = 0 temos que usar representacao em diferenca para frente uma vez que n
ao
temos disponibilidade de dados para x < 0. Usando a tabela temos que,
f 0 (x) =

3fj + 4fj+1 fj+2


+ O(h2 )
2h

(6.27)

f 0 (0) =

f (2) + 4f (1) 3f (0)


28 + 4(33) 3(30)
=
= 7
2(1)
2

(6.28)

logo,

Em x = 2, podemos escolher entre muitas representacoes. Nos vamos escolher diferenca central
que possui O(h2 ). Assim:
f 0 (x) =

fj+1 fj1
+ O(h2 )
2h

(6.29)

f 0 (2) =

f (3) f (1)
12 33
=
= 10.5
2
2

(6.30)

logo,

Em x = 4, devemos empregar representacao em diferenca para tras de O(h2 ). Assim:


f 0 (x) =

fj2 4fj1 + 3fj


+ O(h2 )
2h

(6.31)

f 0 (4) =

f (2) 4f (3) + 3f (4)


28 4(12) + 3(22)
=
= 43
2(1)
2

(6.32)

logo,

Exemplo 27 Os seguintes dados representam um polinomio. Qual seu grau? Qual o coeficiente
de seu termo de mais alto grau?

x
0
f (x) 1

1
0.5

2
8.0

3
4
5
35.5 95.0 198.5

Vamos usar diferenca para frente em cada ponto (poderia ser usado para tras).

110

Primeira diferenca
4f0 = f1 f0 = 0.5 1 = 0.5
4f1 = f2 f1 = 8.0 0.5 = 7.5
4f2 = f3 f2 = 35.5 8.0 = 27.5
4f3 = f4 f3 = 95.0 35.5
4f4 = f5 f4 = 198.5 95 = 103.5

(6.33)

Segunda diferenca
4 f0 = 4f1 4f0 = 7.5 (0.5) = 8.0
42 f1 = 4f2 4f1 = 27.5 7.5 = 20.0
42 f2 = 4f3 4f2 = 59.5 27.5 = 32.0
42 f3 = 4f4 4f3 = 103.5 59.5 = 44.0

(6.34)

Terceira diferenca
43 f0 = 42 f1 42 f0 = 20.0 8.0 = 12.0
43 f1 = 42 f2 42 f1 = 32.0 20.0 = 12.0
43 f2 = 42 f3 42 f2 = 44.0 32.0 = 12.0

(6.35)

Uma vez que as terceiras diferencas sao constantes o polinomio e de terceiro grau. Para diferencas para frente temos que:
d3 f
43 f
=
+ O(h)
dx3
h3

(6.36)

Para um polinomio de grau 3 esta expressao e exata, logo


d3 f
43 f
12
=
=
= 12 = 3!(2)
dx3
h3
1

(6.37)
2

Finalmente, por integracao vemos que f = 2x3 + C1 x2 + C2 x + C3 .

6.4

An
alise do Erro

Um assunto importante no estudo de diferenciacao numerica e o efeito do erro de arredondamento. Para mostrar o que ocorre, vamos examinar a formula de diferenca central dada
por:

111

f 0 (x0 ) =

f (x0 + h) f (x0 h) h2 000


f (1 ).
2h
6

(6.38)

Vamos supor que no calculo de f (x0 + h) e de f (x0 h), encontramos erros de arredondamento
e(x0 + h) e e(x0 h); isto e por causa do arredondamento feito pela maquina valores f(x0 + h)
e f(x0 h) foram usados ao inves dos reais valores de f (x0 + h) e de f (x0 h), ou
f (x0 + h) = f(x0 + h) + e(x0 + h)
f (x0 h) = f(x0 h) + e(x0 h).

(6.39)

Neste caso o erro total na aproximacao, sera a soma dos erros causados, pelo arredondamento,
2
e(x0 +h)e(x0 h)
e pelo truncamento h6 f 000 (1 ), isto e:
2h
f 0 (x0 )

f(x0 + h) f(x0 h)
e(x0 + h) e(x0 h) h2 000
=
f (1 ).
2h
2h
6

(6.40)

Se nos assumirmos que os erros de arredondamento e(x0 h) sao limitados por um n


umero
 > 0, e que a terceira derivada de f e limitada por um n
umero M > 0, entao


2
(x0 + h) f(x0 h)
0
f
 + h M.
f (x0 )
h

2h
6

(6.41)
2

Assim pela formula (6.41) que para reduzir o erro de truncamento, h6 M devemos diminuir
o valor de h, mas, ao mesmo tempo, quando h e diminudo o erro de arredondamento, h ,
aumenta. Na pratica raramente e vantagem fazer h muito pequeno, pois neste caso o erro de
arredondamento iria dominar os calculos.
Exemplo 28 Considere a aproximacao de f 0 (0.900) para f (x) = sin x, usando os valores dados na tabela abaixo. O valor real desta derivada e cos(0.900) = 0.62161.

x
0.800
0.850
0.880
0.890
0.895
0.898
0.899

sin x
0.71736
0.75128
0.77074
0.77707
0.78021
0.78208
0.78270

x
0.901
0.902
0.905
0.910
0.920
0.950
1.000

112

sin x
0.78395
0.78457
0.78643
0.78950
0.79560
0.81342
0.84147

Para fazer os calculos amos usar a formula


f 0 (0.900)

f (0.900 + h) f (0.900 h)
2h

para diversos valores de h. Os resultados obtidos sao dados na tabela abaixo.

h
Aprox. para f 0 (0.900)
0.001
0.62500
0.002
0.62250
0.005
0.62200
0.010
0.62150
0.020
0.62150
0.050
0.62140
0.100
0.62055

Erro
0.00339
0.00089
0.00039
-0.00011
-0.00011
-0.00021
-0.00106

Pelo exemplo anterior, parece que uma otima escolha para h esta entre 0.005 e 0.05. Se fizermos
alguma analise sobre o termo de erro dado pela equacao (6.41), isto e

e(h) =

 h2
+ M,
h
6

(6.42)

podemos usar o calculo para verificar que o mnimo da funcao e(h) ocorre quando sua derivada
e zero, isto e:
e0 (h) =


h
+
M
h2 3

(6.43)


hM
=
2
h r3
3 3
h =
M

(6.44)

assim
e0 (h) = 0

No nosso caso f e conhecida, assim podemos calcular o maximo valor que ela assume em
um intervalo contendo o ponto de interesse, x = 0.009. No caso vamos considerar o interval
[0.008, 1.000] e neste caso,
M=

max
x[0.008,1.000]

|f 000 (x)| =

max

| cos x| 0.69671.

x[0.008,1.000]

113

(6.45)

Uma vez que os valores de f sao dados com cinco casas decimais, e razoavel assumir que
 = 0.000005. Desta forma a escolha otima para h e aproximadamente
r
h=

3(0.000005)
0.028,
0.69671

(6.46)

o que e consistente com os nossos resultados.


Entretanto, na pratica, nao podemos calcular o valor otimo de h para ser usado na aproximacao da derivada, uma vez que nao conhecemos sua derivada terceira.
Apesar de termos apenas considerado o erro de arredondamento no caso de diferenca central,
dificuldades similares ocorrem com todas as formulas de diferenciacao. A razao para estes pro a ncias de h, e como ja sabemos divisao por n
blemas e a necessidade de divisao por potA
umeros
muito pequenos tendem a exagerar o erro de arredondamento.
Tenha sempre em mente que como um metodo de aproximacao a diferenciacao numerica e instavel, uma vez que os pequenos valores de h necessarios para reduzir o erro de truncamento
causam crescimento do erro de arredondamento. Este e o primeiro tipo de metodos instaveis que
encontramos. Estas tecnicas devem ser evitadas sempre que possvel. Entretanto as formulas
aqui derivadas serao necessarias na aproximacao de solucoes de equacoes diferenciais ordinarias
(EDO) e parciais (EDP).

114

Captulo 7
Elementos de Integra
c
ao Num
erica
Muitas vezes temos a necessidade de calcular a integral definida de uma funcao que nao possui
uma antiderivada explcita ou cuja antiderivada e muito difcil de ser obtida. O metodo basico
envolvido na aproximacao de uma integral e chamado de quadratura numerica e usa uma soma
do tipo
Z

f (x)dx =
a

n
X

ai f (xi ) + E

i=0

onde E e o erro. Devemos observar que uma expressao analtica com forma fechada para
integrais possui muitas vantagens sobre a integracao numerica como, por exemplo, a precisao.
Assim, antes de empregarmos metodos numericos, primeiramente devemos fazer um serio esforco
para proceder o calculo analtico, incluindo para isto uma boa pesquisa em tabelas de integracao.
Agora, muitas vezes integracao numerica e indispensavel. Por exemplo, quando possuimos o
valor da funcao apenas em pontos discretos. Tais funcoes muitas vezes resultam de solucoes
numericas de equacoes diferenciais ou de dados experimentais tomados em pontos discretos. A
integracao numerica, em contraste com a derivacao numerica e um processo estavel e existem
muitas formulas adequadas para esta finalidade.
Os metodos de quadratura sao baseados em interpolacao polinomial. Para tanto, consideramos uma funcao integravel sobre um intervalo a x b, f (x). Dividimos este intervalo em
n subintervalos iguais de largura h, onde

h=

ba
n

como mostrado na figura (7.1).

115

Figura 7.1: Subintervalos h

cada um destes subintervalos e chamado de painel (panel).

7.1

Regra Trapeizodal

Vamos agora considerar dois destes paineis consecutivos.

Figura 7.2: Dois paineis consecutivos

Nesta figura os pontos f (xj1 ), f (xj ) e f (xj+1 ) foram ligados por linhas retas. Estas linhas
retas aproximam a funcao f (x) e assim servem como polinomios interpoladores para f (x) entre
xj1 e xj , xj e xj+1 , etc... Aproximando a area de cada painel sob as linha retas obtemos que
Z

xj

f (x)dx
xj1

fj1 + fj
(h)
2

(7.1)

116

e
Z

xj+1

f (x)dx
xj

fj + fj+1
(h)
2

(7.2)

Desta forma a integral sobre dois paineis e dada por:


Z

xj+1

xj

f (x)dx =
xj1

xj+1

f (x)dx +
xj1

f (x)dx
xj

e usando (7.1) e (7.2) e assim,


Z

xj+1

f (x)dx
xj1

h
(fj1 + 2fj + fj+1 )
2

(7.3)

Como a area de cada painel foi aproximada por um trapesio, esta regra e chamada de regra do
trapesio. Estendendo (7.3), a aproximacao regra do trapesio sobre todo o intervalo de integracao
pode ser facilmente escrita como:
Z
a

h
f (x)dx
2

f0 + fn + 2

n1
X

!
fj

(7.4)

j=1

onde f0 = f (a) e fn = f (b).


Acima desenvolvemos a regra do trapesio de forma geometrica. Apesar de simples, a formula
isto nao nos fornece informacoes a respeito do erro cometido com esta aproximacao nem sobre
como incrementar sua precisao. Para obtermos informacoes quantitativas sobre o erro cometido
vamos rederivar a formula (7.4) com uma base matematica mais solida. Assim, para obtermos
informacoes quantitativas para o erro, que mais tarde, servira para comparacao com outros
metodos, vamos desenvolver a formula acima com auxlio de series de Taylor.
Comecamos definindo a integral indefinida
Z
I(x) =

f (x)dx

(7.5)

Se xj esta locado como mostra a figura (7.2), entao assumindo que I(x) e uma funcao
analtica na regiao de interesse, podemos expandi-la em torno de xj como:
(h)3 000
(h)2 00
I(xj+1 ) = I(xj + h) = I(xj ) + (h)I (xj ) +
I (xj ) +
I (xj ) + O(h)4
2
3!
0

(7.6)

mas, por (7.5) temos que I 0 (xj ) = f (xj ), I 00 (xj ) = f 0 (xj ), etc... Assim podemos reescrever (7.6)
em termo de f (x) e suas derivadas como,

117

I(xj+1 ) = I(xj + h) = I(xj ) + (h)f (xj ) +

(h)3 00
(h)2 0
f (xj ) +
f (xj ) + O(h)4
2
3!

(7.7)

Usando a formula de diferencas para frente na aproximacao de f 0 (x) temos,


I(xj+1 ) = I(xj )+ (h)f (xj ) +

(h)2
2

f (xj+1 )f (xj )
h

i
h2 f 00 (xj ) + O(h)2 +
(7.8)

3
+ (h)
f 00 (xj )
3!

+ O(h)4

ou reagrupando os termos,

I(xj+1 ) = I(xj ) +

(h)3 00
h
[f (xi+1 ) + f (xj )]
f (xj )+)(h)4
2
12

(7.9)

Podemos ver que I(xj+1 ) I(xj ) constitui a area de painel entre xj e xj+1 . De (7.9) a area
deste painel pode ser encontrada como:

Sj+1 = I(xj+1 ) I(xj ) =

h
(h)3 00
[f (xi+1 ) + f (xj )]
f (xj )+)(h)4
2
12

(7.10)

O termo h2 [f (xi+1 ) + f (xj )] e a aproximacao trapeisodal para um painel simples. Os termos restantes entao representam o erro. Para avaliar a integral sobre todo o intervalo, as contribuicoes
de cada painel devem ser adicionadas. Assim

I=

n
X

Sj

j=1

ou
"
#
n1
n1
X
h
(h)3 X 00
I=
f (a) + f (b) + 2
f (xj )
f (xj ) + termos de ordem mais alta (7.11)
2
12
j=1
j=0
O termo dominante de erro pode ser reescrito de forma facil de entender. Primeiramente
aplicamos o teorema do valor medio para a soma,
n1
X

f 00 (xj ) = nf 00 (
x), onde a x b

(7.12)

j=0

Agora,

118

nf 00 (
x) =

b a 00
f (
x)
h

(7.13)

assim o termo dominante de erro e escrito como

(h)3 (b a) 00
(h)2
f (
x) =
(b a)f 00 (
x)
12
h
12

(7.14)

Usando (7.14), a regra do trapesio (7.11) fica


"

n1
X

h
(h)2
I=
f (a) + f (b) + 2
f (xj )
(b a)f 00 (
x) + termos de ordem mais alta (7.15)
2
12
j=1
ou
#
"
n1
X
h
I=
f0 + fn + 2
fj + O(h)2
2
j=1

(7.16)

A regra do trapezio possui um erro de segunda ordem na integracao numerica.

7.2

Regra de Simpson

A regra de Simpson e uma tecnica de integracao numerica baseada no uso de arcos parabolicos
para aproximar f (x) ao inves de linhas retas. Aqui vamos desenvolver esta formula empregando
diretamente a formula de Taylor, pois Rassim teremos tambem uma estimativa do erro.
x
Vamos considerar a funcao I(x) = a f (x)dx e vamos assumir que a funcao I(x) e analtica
na regiao de interesse. Assim podemos expandir I(x) em serie de Taylor em torno de xj como:
(h)2 00
(h)3 000
I (xj ) +
I (xj )+
2
3!
(h)4 iv
(h)5 (v)
(h)6 (vi)
I (xj ) +
I (xj ) +
I (xj ) + O(h)7
+
4!
5!
6!

I(xj+1 ) = I(xj + h) =I(xj ) + (h)I 0 (xj ) +

(7.17)

agora, notando que pela definicao de I(x) podemos escrever que I 0 (x) = f (x), I 00 (x) = f 0 (x), e
assim por diante e substituindo estas relacoes em (7.17), temos que,
(h)2 0
(h)3 00
f (xj ) +
f (xj )+
2
3!
(h)4 000
(h)5 (iv)
(h)6 (v)
+
f (xj ) +
f (xj ) +
f (xj ) + O(h)7
4!
5!
6!

I(xj + h) =I(xj+1 ) = I(xj ) + (h)f (xj ) +

119

(7.18)

e
(h)3 00
(h)2 0
f (xj )
f (xj )+
I(xj h) =I(xj1 ) = I(xj ) (h)f (xj ) +
2
3!
(h)5 (iv)
(h)6 (v)
(h)4 000
f (xj )
f (xj ) +
f (xj ) + O(h)7
+
4!
5!
6!

(7.19)

Subtraindo (7.19) de (7.18) temos

I(xj+1 ) I(xj1 ) = 2(h)f (xj ) +

(h)3 00
(h)5 (iv)
f (xj ) +
f (xj ) + O(h)7
3
60

(7.20)

Agora, vamos substituir f 00 (xj ) por sua representacao em diferenca central, incluindo o termo
de erro, isto e

f 00 (x) =

fj1 2fj + fj+1 (h)2 iv

f (xj ) + O(h)7
h2
12

(7.21)

e procedendo certos algebrismos obtemos,

I(xj+1 ) I(xj1 ) =

(h)5 (iv)
(h)
(f (xj1 ) + 4f (xj ) + f (xj+1 ))
f (xj ) + O(h)7
3
90

(7.22)

Agora, observamos que I(xj+1 ) I(xj1 ) constitui a area de dois paineis consecutivos entre
xj1 e xj+1 . A equacao (7.22) e chamada de regra de Simpson para dois paineis.
para obtermos a integral sobre todo o domnio a x b, e preciso adicionar o resultado (7.22)
para todos os pares de paineis. Assim, se Dj = I(xj+1 ) I(xj1 ) entao
n1
X

I=

Dj = D1 + D3 + ... + Dn3 + Dn1

(7.23)

j=1
j impar
Note que este procedimento requer que o n
umero de paineis seja par. Somando (7.22) para
todos os pares de paineis teremos

I = f 0 + f n + 4
3

n1
(h)5
X
n

fj + 2
fj
f (iv) (xj ) + O(h)7 (7.24)
90
2
j=1
j=2
j=1
j impar
j par
j impar
n1
X

n2
X

120

O termo dominante de erro em (7.24) pode ser tratado da mesma forma que na regra do trapesio.
Assim, pelo Teorema do valor medio temos,
n1
X

f (iv) (xj ) =nf iv (


x), com a x b

j=1
j impar
=

b a iv
f (
x)
h

assim temos que


(h)5

90

n1
X

(iv)

j=1
j impar

(h)4
(xj ) =
(b a)f (iv) (
x).
180

Tambem devemos notar que


ba
n
O(h)7 =
O(h)7 = O(h)6
2
2(h)
Agora, fazendo estas substituicoes em (7.24) temos,

I = f 0 + f n + 4
3

(h)4

fj + 2
fj
(b a)f (iv) (
x) + O(h)6
180
j=1
j=2
j impar
j par
n1
X

n2
X

(7.25)

A equacao (7.25) e chamada de regra de Simpson para o intervalo completo. Ela e uma
aproximacao de quarta ordem. Lembramos que a interpretacao geometrica deste metodo envolve
o uso de arcos parabolicos para aproximar f (x), e que e de interesse lembrar que como todos
os termos envolvendo f 000 (x) sao cancelados em (7.25), esta tecnica e exata para polinomios
c
ubicos.

7.3

Integrac
ao de Romberg

O metodo de Romberg e baseado no fato do erro de truncamento da regra do trapezio ser


proporcional a h2 . Assim, se dividimos h pela metade e reaplicamos a regra do trapezio temos

121

uma reducao do erro por um fator de 14 . Se comparamos os dois resultados chegamos a uma
estimativa do erro restante. Esta estimativa pode entao ser usada como uma correcao. O
metodo de Romberg e um refinamento sistematico desta ideia simples.
O metodo de integracao de Romberg desta forma e um metodo potente baseado no uso da regra
do trapezio combinado com extrapolacao de Richardson. Para podermos aplicar a extrapolacao
precisamos conhecer a forma geral dos termos de erro para a regra do trapezio. Os detalhes
desta derivacao podem ser encontradas em livros de analise numerica. A regra do trapezio pode
ser escrita como:

h
I=
2

f (a) + f (b) + 2

n1
X

!
f (a + jh)

+ C(h)2 + D(h)4 + E(h)6 + ...

(7.26)

j=1

onde C, D, E, etc. sao funcoes de f (x) e suas derivadas, mas nao sao funcoes de h. Os termos
envolvendo as potencias mpares de h desaparecem do erro.
Seja,

h
I =
2

f (a) + f (b) +

n1
X

!
f (a + jh)

(7.27)

j=1

A equacao (7.26) pode ser reescrita na forma,


I = I C(h)2 D(h)4 E(h)6 + ...

(7.28)

Vamos agora considerar que temos duas malhas de tamanhos diferentes h1 e h2 , com h1 = 2h2 .
Vamos chamar de I1 e I2 os valores de I correspondentes a estas malhas. Assim, de (7.28)
temos:
I1 = I C(h1 )2 D(h1 )4 E(h1 )6 + ...
I2 = I C(h2 )2 D(h2 )4 E(h2 )6 + ...

(29a)
(29b)

Vamos agora fazer a substituicao de h1 = 2h2 na equacao (29a) assim temos


I1 = I 4C(h2 )2 16D(h2 )4 64E(h2 )6 + ...

(30)

Agora, multiplicando a equacao (29b) por 4, subtraindo (30) e dividindo por 3:


4I2 I1
= I + 4D(h2 )4 + 20E(h2 )6 + ...
3

122

(31)

O termo de erro envolvendo (h2 )2 desapareceu e (31) nos fornece, assim, uma aproximacao
para a integral com O(h2 )2 . Extrapolacao deste tipo e chamada de extrapolacao de Richardson.
Agora, se calculassemos I3 , onde h2 = 2h3 e se extrapolassemos I2 e I3 , teramos,
4I3 I2
= I + 4D(h3 )4 + 20E(h3 )6 + ...
3

(32)

Agora entre (31) e (32), o termo de erro em (h)4 pode ser eliminado e desta forma fornecer
um termo de erro
uma estimativa para I de ordem O(h)6 . Assim a cada novo calculo de um I,
pode ser eliminado por extrapolacao. Este procedimento sistematico e chamado de integrac
ao
de Romberg.
Para descrevermos o algoritmo em detalhes vamos adotar outra notacao. As estimativas
iniciais feitas pela regra do trapezio da integral serao chamadas de T1,k com k = 1, 2, 3... que
representa a formula de Gauss para n = 2k1 . Em geral podemos definir

T1,k

h
=
2

f (a) + f (b) + 2

l
X

!
f (a + jh)

(33)

j=1

onde h = (b a)/2k1 e l = 2k1 1. O n


umero de paineis envolvidos em T1,k e 2k1 . Assim,
por exemplo
ba
(f (a) + f (b)) trapesio com n = 20 = 1
2 


ba
ba
T1,2 =
f (a) + f (b) + 2f a +
trapesio com n = 21 = 2
4
2
 

T1,1 b a
ba
=
+
f a+
trapesio com n = 21 = 2
2
2
2







ba
ba
2(b a)
3(b a)
T1,3 =
f (a) + f (b) + 2f a +
+ 2f a +
+ 2f a +
8
4
4
4
 



T1,2 b a
ba
3(b a)
=
+
f a+
+f a+
trapesio com n = 22 = 4
2
4
4
4
etc...
T1,1 =

Assim vemos que cada aproximacao da regra do trapezio sucessiva pode ser obtida da aproximacao anterior sem ter que recalcular f (x) em nenhum ponto onde ela ja tinha sido calculada.
A extrapolacao e feita de acordo com a formula:

Tl,k =

1
(4l1 Tl1,k+1 Tl1,k )
1

(34)

4l1

Estes resultados podem ser covenientemente arranjados em uma tabela como:

123

Figura 7.3: Tabela da Integracao de Romberg

Os valores extrapolados ao longo da diagonal ira convergir para a resposta correta muito mais
rapidamente que a regra do trapezio cujos valores estao na primeira coluna.
Exemplo 29 Como exemplo vamos considerar a integral
Z

I=
0


5x4
3
4x + 2x + 1 dx
8

Esta integral pode ser calculada analiticamente e seu valor e I = 72. Vamos agora montar a
tabela de integracao de Romberg, para encontrarmos a primeira coluna usamos a formula (33),
assim:

f (x) =

5x4
4x3 + 2x + 1
8

logo
f (0) =1
f (8) =2560 2048 + 16 + 1 = 529
b a =8 0 = 8
As aproximacoes da regra do trapezio com um e dois paineis sao dadas por:

124

ba
8
(f (a) + f (b)) = (1 + 529) = 2120
2
2
 

T1,1 b a
ba
2120 8
=
+
f a+
=
+ f (4) = 1060 + 4(160 256 + 8 + 1) = 712
2
2
2
2
2
Extrapolando estes dois valores para eliminar O(h)2
1
1
2
= 1
(4T1,2 T 1, 1) = (4(712) 2120) = 242
4 1
3
3
A aproximacao da regra do trapezio com 4 paineis
 



T1,2 b a
ba
3(b a)
712 8
=
+
f a+
+f a+
=
+ (f (2) + f (6)) = 240
2
4
4
4
2
4
Extrapolando T1,2 e T1,3 temos
2
1
= (4(240) 712) = 82
3
3
Extrapolando T2,1 e T2,2 para eliminar O(h)4
1
1
2
2
= 2
(42 T2,2 T2,1 ) = (16(82 ) 242 ) = 72
4 1
15
3
3

T1,1 =
T1,2

T2,1

T1,3

T2,2

T3,1

E este e o valor exato. A tabela de Romberg obtida e:


2120
712 242 32
240 82 23

72

A melhor aproximacao da regra do trapezio disponvel e 240 usando 4 paineis que e ainda
muito distante da resposta correta, e a grande aceleracao da convergencia ao longo da diagonal
claro que na pratica nao conhecemos a resposta exata nao e conhecida, assim
e aparente. E
uma outra linha seria calculada na tabela. Depois deste calculo, a tabela ficaria,
2120
712 242 23
240 82 23
128 12
72 23

72
72

72

O criterio de parada no procedimento de integracao de Romberg pode claramente ser baseada


na comparacao entre valores sucessivos ao longo da diagonal da tabela. Uma vez que dois
valores sucessivos concordaram exatamente na tabela acima, nao existe d
uvida que o metodo
convergiu para I = 72. Em geral o criterio de convergencia pode ser da forma
|Tl,1 Tl1,1 | < 

(35)

125

Se (35) e satisfeito para algum , entao o procedimento e parado e Tl,1 considerado como a
resposta certa. Para uso geral, um criterio de parada mais seguro e o criterio de convergencia
absoluta,
|Tl,1 Tl1,1 |
< .
Tl,1

(36)

R
Exemplo 30 Vamos agora aproximar a integral 0 sin(x)dx, com precisao de 107 . A montagem dos dois primeiros elementos da primeira coluna e dada pela formula (33)

T1,1 = (sin(0) + sin()) = 0


2
1

T1,2 = (T1,1 + sin ) = 1.57079633


2
2
Assim nossa tabela e dada por: Comparando os valores obtidos na diagonal temos que |2.09439511
k
1
2

T1,k
T2,k = 13 (4T1,k+1 T1,k )
0
1.5707963 2.09439511

0| > 107 , assim devemos continuar a tabela calculando pela formula (33) o valor da primeira
coluna T1,3 e a seguir usando a formula (34) para l = 3 e k = 1, 2, assim comparando os
k
1
2
3

1
T1,k
T2,k = 31 (4T1,k+1 T1,k ) T3,k = 15
(16T1,k+1 T1,k )
0
1.5707963 2.09439511
1.89611890 2.00455976
1.99857073

elementos da diagonal principal, |1.99857070 2.09439511| > 107 e assim devemos continuar
o processo. Agora podemos parar o processo, pois |2.00000000 1.99999999| < 107 . Logo a
k
1
2
3
4
5
6

T1,k
0
1.57079630
1.89611890
1.97423160
1.99357035
1.99839330

T2,k

T3,k

T4,k

T5,k

2.09439511
2.00455976
2.00269170
2.00001659
2.00000103

1.99857073
1.99998313 2.00000555
1.99999975 2.00000001 1.99999999
2.00000000 2.00000000 2.00000000 2.00000000

aproximacao dada por Romberg para esta integral e 2.00000000.

126

T6,k

7.4

Integrac
ao Adaptativa

A integracao adaptativa cobre os muitos metodos que tem sido imaginados para lidar com o
fato de que a maior parte das funcoes sao mais difceis de integrar precisamente sobre certos
intervalos do que em outros. Uma secao particularmente difcil pode, por exemplo, forcar o
uso de um h com valor muito pequeno para a regra de Simpson e lidar com um grande n
umero
de computacao desnecessaria. Metodos adaptativos usam malhas finas somente onde elas sao
realmente necessarias

7.5

Quadratura de Gauss

Todas as formulas de quadraturas que vimos nas secoes anteriores assumiram que os nos xi da
malha eram igualmente espacados. Estes tipos de integracao numerica, em geral, sao empregadas quando os valores de f (xi ) sao obtidos de forma experimental ou discreta. Agora muitos
problemas envolvem integrais de funcoes analticas familiares as quais podemos calcular em
qualquer argumento xi , apesar de possuir integral difcil de obtermos analiticamente. Gauss
observou que encontrando valores para os nos (abscissas xi ) um polinomio de grau menor ou
igual a` 2n1, onde n e o n
umero de termos no somatorio, poderia ser integrado de forma exata,
este tipo de integracao numerica e chamada de quadratura Gaussiana. Devemos observar que
funcoes contnuas nao polinomiais ou polinomios de grau maior que 2n 1 sao aproximados de
forma bastante precisa por este metodo
Assim, a principal ideia atras da quadratura Gaussiana e a escolha dos nos da malha,
xi e pesos wi , de forma a minimizar o erro cometido na aproximacao da integral atraves do
somatorio caracterstico das quadraturas. Para esta abordagem e mais conveniente discutirmos
uma formula de quadratura mais geral como,
Z b
n
X
W(x)f (x)dx
wi f (xi )
(37)
a

i=1

na qual W(x) e uma funcao peso que sera especificada mais tarde. Notemos que quando W = 1
temos a formula de quadratura usual.
Com a finalidade de minimizar o erro cometido, procuramos os nos xi e pesos wi da equacao
(37) de forma que esta integral seja exata quando integrarmos funcoes potencias. Como na
formula (37) temos 2n incognitas, precisamos de 2n equacoes assim exigimos que a integral
acima seja exata sempre que f (x) for 1, x, x2 , ..., x2n1 . Isto nos fornece 2n condicoes para
determinarmos os 2n n
umeros xi e wi necessarios para a formula (37). Vamos exemplificar o
procedimento usando n = 2, W(x) = 1 e (a, b) = (1, 1), assim procuramos valores de
x 1 , x 2 , w 1 e w2
de forma que as integrais
Z 1
Z
1 dx = 2,
1

Z
x dx = 0,

2
x dx = , e
3
1

127

x3 dx = 0

sejam calculadas atraves da formula de quadratura de forma exata, isto e temos que resolver o
seguinte sistema nao linear:
COLOCAR O SISTEMA

Em textos mais completos podemos usar a teoria de funcoes ortogonais para mostrar que a
escolha otima dos xi sao os zeros de um polinomio de grau n, pn (x), pertencentes a uma famlia
de polinomios ortogonais em relacao a funcao peso W(x) no intervalo (a, b) (teorema fundamental da quadratura Gaussiana), isto e uma famlia dfe funcoes que possuem a propriedade
de ortogonalidade
Z b
W(x)pn (x)pm (x)dx = 0,
se m 6= n.
a

Alem disto, atraves da construcao de um polinomio interpolador que passe atraves dos pontos
(xi , f (xi )) podemos tambem mostrar os pesos wi podem ser calculados como:
Z

W(x)Li (x)dx

wi =
a

onde Li (x) sao os multiplicadores de Lagrange discutidos anteriormente. Ainda devemos notar
que estes polinomios dependem da funcao peso W(x) que influencia no calculo de ambos os valores wi e xi , apesar de nao aparecem explicitamente na formula Gaussiana. Tambem podemos
mostrar que o erro de truncamento da formula Gaussiana e dado por,
Z

W(x)f (x)dx
a

n
X
i=1

f (2n) ()
wi f (xi ) =
(2n)!

W(x)[(x)]2 dx

onde (x) = (x x1 )...(x xn ). Como a formula de erro nos mostra, o erro cometido na
aproximacao e proporcional a f (2n) (), assim esta formula sera exata para polinomios de grau
2n 1 (pois sua derivada de ordem 2n e nula).

7.5.1

Tipos Particulares de F
ormulas Gaussianas:

Aqui vamos mostrar quatro tipos de quadraturas Gaussianas muito usadas. Todas elas sao
exatas para o calculo de integrais de umR polinomio de grau 2N 1. Sao elas a Quadratura de
1
Gauss Legendre usadas para aproximar 1 f (x)dx, este intervalo pode ser transladado para um
R
intervalo [a, b] qualquer. Gauss Laguerre usadas para aproximar 0 ex f (x)dx, Gauss Hermite
R 2
R1
(x)
usada para aproximar ex f (x)dx e Gauss Tchebychev usada para aproximar 1 f1x
2 dx.
1. F
ormulas de Gauss Legendre:

128

Ocorrem quando w(x) = 1. Normalmente normalizam o intervalo (a, b) em (1, 1). Os


polinomios de Legendre sao os escolhidos.
Pn (x) =

1 dn 2
(x 1)n
2n n! dxn

com P0 (x) = 1. Os xi sao os zeros destes polinomios e os coeficientes sao


wi =

2(1 x2i )
n2 (Pn1 (xi ))2

Tabelas de xi e wi estao disponveis para serem substituidos diretamente na formula de


Gauss-Legendre
Z

f (x)dx
a

n
X

wi f (xi )

i=1

Obs: pode-se fazer uma mudanca de variaveis


Z


f

f (x)dx =
1

(b a)t + (b + a)
2

(b a)
baX
dt
wi f
2
2 i=1

(b a)ti + b + a
2

Exemplo 31 Neste exemplo vamos usar quadratura de Gauss-Legendre com N = 4 para


aproximar o valor da seguinte integral:
Z

/2

x2 cos xdx =

2 8
0.467401
4

Usando a tabela de Gauss-Legendre temos que para os limites de integracao 1 e 1 as


razes e pesos de Gauss Legendre sao: 1 = 0.8611363116, w1 = 0.3478548451, 2 =
0.3399810436, w2 = 0.6521451549, 3 = 2 , w3 = w2 , 4 = 1 e w4 = w1
Fazendo mudanca de variaveis [1, 1] x [0, 2 ] na equacao acima temos
/2 + 0 /2 0
1.570796 1.5770796
+
4 =
+
(0.861136) = 0.109064
2
2
2
2
/2 + 0 /2 0
1.570796 1.5770796
x3 =
+
3 =
+
(0.347855) = 0.518378
2
2
2
2
/2 + 0 /2 0
1.570796 1.5770796
x2 =
+
2 =
+
(0.347855) = 1.03242
2
2
2
2
/2 + 0 /2 0
1.570796 1.5770796
x1 =
+
1 =
+
(0.861136) = 1.46173
2
2
2
2
f (x4 ) = (0.109064)2 cos(0.109064) = 0.011824

x4 =

f (x3 ) = 0.233413

129

f (x2 ) = 0.548777
f (x1 ) = 0.232572
I =

/20
2

(w1 f (x1 ) + w2 f (x2 ) + w3 f (x3 ) + w4 f (x4 ))

= (0.347855)(0.232572) + (0.652145)(0.548777) + (0.652145)(0.233413)


+ (0.347855)(0.0118240) = 0.467402

Exato

Gauss-Legendre N = 4 Trapezio N = 4 Simpson N = 4

0.467401

0.467402

0.435811

0.466890

2. F
ormulas de Gauss Laguerre:
Tomam a forma
Z
n
X
x
e f (x)dx
wi f (xi )
0

i=1

Os argumentos xi sao os zeros do polinomio de Laguerre de grau n


Ln (x) = ex

dn x n
(e x )
dxn

e os coeficientes wi sao
wi =

(n!)2
xi [L0n (xi )]2

Os n
umeros xi e wi estao disponveis em tabelas.
3. F
ormulas de Gauss Hermite:
Tomam a forma
Z
n
X
2
ex f (x)dx
wi f (xi )

i=1

Os argumentos xi sao os zeros do polinomio de Hermite de grau n


Hn (x) = (1)n ex

dn x2
(e )
dxn

130

e os coeficientes wi sao

2n+1 n!
wi =
[Hn0 (xi )]2
Os n
umeros xi e wi estao disponveis em tabelas.
4. F
ormulas de Chebychev:
Tomam a forma
Z 1
n
f (x)
X

f (xi )
dx
n i=1
1 x2
1
Os argumentos xi sao os zeros do polinomio de Chebychev Tn (x) = cos(n arccos x)

7.6

Tabelas
n
2

xk
.57735027

wk
1.0000000

.86113631
.33998104

.34785485
.65214515

.93246951
.66120939
.23861919

.17132449
.36076157
.46791393

.96028986
.79666648
.52553241
.18343464

.10122854
.22238103
.31370665
.36268378

10

.97390653
.86506337
.67940957
.43339539
.14887434

.06667134
.14945135
.21908636
.26926672
.29552422

0.77459667
0.00000000

0.55555556
0.88888889

xk

wk

12

.98156063
.90411725
.76990267
.58731795
.36783150
.12533341

.04717534
.10693933
.16007833
.30216743
.23349254
.24914705

14

.98628381
.92843488
.82720132
.68729290
.51524864
.31911237
.10805495

.03511946
.08015809
.12151857
.15720317
.18553840
.20519846
.21526385

0.90617985
0.53846931
0.00000000

0.23692689
0.47862867
0.56888889

Tabela 7.1: Tabela pesos e razes Gauss-Legendre

131

n
2

xk
0.70710678

wk
0.88622693

0.52464762
1.65068012

0.80491409
0.08131284

0.43607741
1.33584907
2.35060497

0.72462960
0.15706732
0.00453001

0.38118699
1.15719371
1.98165676
2.93063742

0.66114701
0.20780233
0.01707798
0.00019960

10

0.34290133
1.03661083
1.75668365
2.53273167
3.43615912

0.61086263
0.24013861
0.03387439
0.00134365
0.00000764

n
12

xk
0.31424038
0.94778839
1.59768264
2.27950708
3.02063703
3.88972490

wk
0.57013524
0.26049231
0.05160799
0.00390539
0.00008574
0.00000027

14

0.29174551
0.87871379
1.47668273
2.09518326
2.74847072
3.46265693
4.30444857

0.53640591
0.27310561
0.06850553
0.00785005
0.00035509
0.00000472
0.00000001

Tabela 7.2: Tabela pesos e razes Gauss-Hermite

132

n
2

xk
0.58578644
3.41421356

wk
0.85355339
0.14644661

0.32254769
1.74576110
4.53662030
9.39507091

0.60315410
0.35741869
0.03888791
0.00053929

0.22284660
1.18893210
2.99273633
5.77514357
9.83746742
15.98287398

0.45896467
0.41700083
0.11337338
0.01039920
0.00026102
0.00000090

0.17027963
0.90370178
2.25108663
4.26670017
7.04590540
10.75851601
15.74067864
22.86313174

0.36918859
0.41878678
0.17579499
0.03334349
0.00279454
0.00009077
0.00000085
0.00000000

10

0.13779347
0.72945455
1.80834290
3.40143370
5.55249614
8.33015275
11.84378584
16.27925783
21.99658581
29.92069701

0.30844112
0.40111993
0.21806829
0.06208746
0.00950152
0.00075301
0.00002826
0.00000042
0.00000000
0.00000000

n
12

xk
0.11572212
0.611775748
1.51261027
2.83375134
4.59922764
6.84452545
9.62131684
13.00605499
17.11685519
22.15109038
28.48796725
37.09912104

wk
0.26473137
0.37775928
0.24408201
0.09044922
0.02012238
0.00266397
0.00020323
0.00000837
0.00000017
0.00000000
0.00000000
0.00000000

14

0.09974751
0.52685765
1.30062912
2.43080108
3.93210282
5.82553622
8.14024014
10.91649951
14.21080501
18.10489222
22.72338163
28.27298172
35.14944366
44.36608171

0.23181558
0.35378469
0.25873461
0.11548289
0.03319209
0.00619287
0.00073989
0.00073989
0.00000241
0.00000006
0.00000000
0.00000000
0.00000000
0.00000000

Tabela 7.3: Tabela pesos e razes Gauss-Laguerre


As razes dos polinomios de Gauss Chebychev, nao necessitam de tabelas, pois sao faceis de
serem encontradas. Os polinomios de Chebychev sao definidos como:

Tn (x) = cos n cos1 x
(38)
onde Tn (x) e o polinomio de Chebychev de grau n. Abaixo veremos que esta definicao tambem
pode ser escrita em forma polinomial, pois:
n = 0 T0 (x) = cos(0 cos1 x) = cos 0 = 1

133

T1 (x) = cos(1 cos1 x) = x


T2 (x) = cos(2 cos1 (x)) = cos y assim y = 2 cos1 x
Desta forma:
y 
y
1
cos x = ou x = cos
2
2
Da trigonometria temos:
y 
y 
y 
y 
sin2
= cos y e cos2
+ sin2
=1
cos2
2
2
2
y  2
= cos y + 1
logo, 2 cos2
2
y 
Alem disto, como x = cos
, entao
2
y 
y 
x2 = cos2
e portanto 2 cos2
= 2x2
2
2
logo, 2x2 = cos y + 1 cos y = 2x2 1, isto e T2 (x) = 2x2 1.
Usando o mesmo raciocnio acima temos,
T0 (x) = 1,

T1 (x) = x,

T2 (x) = 2x2 1

T3 (x) = 4x3 3x
T4 (x) = 8x4 8x2 + 1
T5 (x) = 16x5 20x3 + 5x
T6 (x) = 32x6 48x4 + 18x2 1
etc...
Devemos notar que Tn (x) 1 x [1, 1] pois e um cosseno (38).
As razes dos polinomios de Chebychev Tn (x) (38), podem ser calculadas como:

134



Tn (x) = 0 cos n cos1 x = 0
n cos1 x = cos1 0
n cos1 (x) =

(2m 1)
,
2

m = 1, 2, 3...

(2m 1)
2n


(2m 1)
x = cos
2n
cos1 (x) =

Assim as razes dos polinomios de Chebychev Tn (x) sao:




(2m 1)
m = 1, 2, . . . , n
xm = cos
2n
Observamos que estes xm tendem a ser mais proximos nos extremos do intervalo que do
centro do intervalo.
Exemplo 32 Para T6 (x) as razes sao:
x1 = cos

(2(1)1)
2(6)

= 0.96592583

x2 = cos

(2(2)1)
2(6)

= 0.70710678

x3 = 0.25881905

(39)

x4 = 0.25881905
x5 = 0.70710678
x6 = 0.96592583

7.6.1

Exemplos

Exemplo 33 Encontre o valor da integral:


Z
2
x2 ex dx
0

135

Pela formula de Gauss Hermite, vemos que f (x) = x2 , um polinomio de grau 2, assim o valor
esta integral sera dado usando quadratura de Gauss Hermite escolhendo N o menor inteiro de
forma que 2N 1 2, isto e N 3/2. Ou seja para N maior ou igual a 2 teremos a integral
calculada de forma exata por Gauss Hermite. Usando a tabele com N = 2 temos
x1 = 0.70710678, w1 = 0.88622693, x2 = 0.70710678, w2 = 0.88622693
Assim
Z

2 x2

xe
0

1
dx =
2

x2 ex dx =

X
1X
f (xi )wi =
(xi )2 wi = 0.443113
2 i=1
i=1

Exemplo 34 Encontre o valor da integral:


Z 6
x5 7x + 2dx
0

Esta e a integral da funcao f (x) = x5 7x + 2, polinomio de Grau 5. Pela formula de Gauss


Legendre vemos que esta integral pode ser calculada de forma exata usando 2N 1 = 5 ou
N = 6/2 = 3 Neste caso temos x1 = 0.77459667, x2 = x1, x3 = 0, w1 = 0.55555556, w2 = w1
e w[3] = 0.88888889. Precisamos fazer uma mudanca do intervalo [1, 1] para [0, 6]. Assim:
Xi =

60
a+b
xi +
2
2

X1 = 5.32379,

X2 = 0.67621,

logo
X3 = 3

e o valor da integral e calculada por:


Z 6
P3
x5 7x + 2dx = 60
i=1 f (Xi )wi
2
0

= 3((4241.39)w1 + (2.59208)w2 + (224)w3 )


3(2356.33 1.44005 + 199.111) = 7662.

7.6.2

Construindo Quadraturas

Tambem podemos gerar quadraturas de forma que englobemcertos tipos de singularidades.


Para exemplificar este procedimento, aqui, vamos construir uma quadratura que resolve a integral
Z 1
ln xf (x)dx
0

Para encontrar os pesos e razes da quadratura de ordem N = 2, vamos supor que esta integral
pode ser escrita como
Z
1

ln xf (x)dx = w1 f (x1 ) + w2 f (x2 )


0

136

Para ser uma quadratura Gaussiana, sabemos que esta integral deve ser exata se f (x) e um
polinomio de grau 2N 1 = 2(2) 1 = 3, logo devemos ter que:
R1
ln xdx
=
w1 + w2
R01
x ln xdx = w1 x1 + w2 x2
R01 2
x ln xdx = w1 x21 + w2 x22
R01 3
x ln xdx = w1 x31 + w2 x32
0
ou, resolvendo as integrais do lado esquerdo das equacoes acima por partes,
1
14
91
1
16

=
w1 + w2
= w 1 x1 + w 2 x2
= w1 x21 + w2 x22
= w1 x31 + w2 x32

Resolvendo o sistema de equacoes nao lineares acima, obtemos:

x1 = 0.60227691

x2 = 0.11200881
w

1 = 0.28146068

w2 = 0.71853932
Para gerar uma quadratura com N = 4, teramos um sistema nao linear com oito equacoes. As
oito variaveis deste sistema podem ser encontradas como:
w1 = 0.383464,

w2 = 0.386875,

w3 = 0.190435,

w4 = 0.039225

e
x1 = 0.041448,

x2 = 0.245275,

x3 = 0.556165,

x4 = 0.848982

Exemplo 35 Para testar esta quadratura, primeiramente vamos calcular a integral de um


polinomio de grau 3, cujo valor exato e dado por:
Z 1
973
(x3 5x2 + x + 7) ln xdx =
6.75694
144
0
Usando a nova quadratura temos: f (x) = x3 5x2 + x + 7, assim
Z 1
(x3 5x2 + x + 7) ln xdx (x31 5x21 + x+ 7)w1 + (x32 5x22 + x2 + 7)w2 = 6.75694
0

. Assim o erro absoluto de nossa aproximacao e nulo.


Agora vamos escolher uma funcao nao polinomial:

137

Exemplo 36 Seja a integral:


Z
0

ln x
2
dx =
0.8224670334
x+1
12

Usando quadratura N = 2 temos:


f (x) =
e
Z
0

1
x+1

ln x
dx f (x1 )w1 + f (x2 )w2 = 0.821826
x+1

Neste caso temos o erro ja na terceira casa decimal. Se usassemos N = 4,


f (x) =
e
Z
0

1
x+1

ln x
dx f (x1 )w1 + f (x2 )w2 + f (x3 )w3 + f (x4 )w4 = 0.822466
x+1

O que nos fornece 5 casas decimais de precisao.


Se a mesma integral fosse calculada por quadratura de Gauss Legendre, teramos:
f (x) =

ln x
x+1

e
Tabela 7.4: Integral
N
2
12
22
32
42
492

R1

ln x
dx
0 x+1

por QG Legendre
Integral
-0.707957
-0.818411
-0.821218
-0.821869
-0.822117
-0.822464

Isto e, usando quadratura N = 492 para GLegendre temos apenas 2 casas decimais de
precisao.
Este fato deve-se a singularidade da funcao f (x) = ln(x)/(x + 1) considerada na quadratura
de Gauss Legendre em x = 0. Ja na quadratura construda, a funcao f (x) = 1/(x + 1) e
contnua em [0, 1].

138

7.6.3

Integrais Multiplas

Podemos avaliar integrais multiplas por uma das formulas de quadraturas mostradas acima.
Para isto podemos fazer:
!
Z
Z
b

d(x)

f (x, y)dy dx
a

c(x)

Primeiramente definimos a funcao


Z

d(x)

f (x, y)dy

g(x) =
c(x)

e aplicamos uma formula de quadratura, isto e:


!
Z b
Z b Z d(x)
N
X
f (x, y)dy dx =
g(x)dx
ai g(xi )
c(x)

i=1

poir sua vez, para cada i sas funcoes g(xi ) sao integrais, logo sao calculadas como:
Z

d(xi )

f (xi , y)dy

g(xi ) =
c(xi )

M
X

bj f (xi , yj )

j=1

ou seja
Z

d(x)

!
f (x, y)dy dx

c(x)

N
X
i=1

139

ai

M
X
j=1

bj f (xi , yj )

Captulo 8
Zeros de Equa
c
oes n
ao Lineares
Neste captulo vamos estudar alguns metodos para localizar razes de equacoes. Este problema
ocorre frequentemente em computacao cientfica. Para estimarmos intervalos onde existe uma
raz, muitas vezes usamos como auxlio os seguinte teorema:
Teorema 30 Teorema do Valor Intermedi
ario para Func
oes Contnuas: Se f e uma
funcao contnua sobre um intervalo [a, b], e se f (a) < y < f (b), entao f (x) = y para algum
x (a, b).
Deste teorema, podemos afirmar que se f e contnua sobre um intervalo [a, b] e se f (a)f (b) < 0
entao f deve assumir o valor 0 em algum x (a, b), isto e que existe pelo menos um zero real
neste intervalo. O primeiro e mais simples dos metodos que veremos e baseado neste princpio
e e chamado de metodo da biseccao.
Vamos separar este captulo em duas grandes subsecoes. Na primeira vamos estudar alguns
metodos gerais para encontrar razes de equacoes nao lineares e uma segunda secao dedicada
para as funcoes polinomiais.

8.1

M
etodos Gerais

Nesta secao estudaremos metiodos para encontrar zeros de equacoes nao lineares.

8.1.1

O M
etodo da Bissecc
ao

A tecnica mais elementar de encontrar a raz de f (x) = 0, onde f e uma funcao contnua, e o
metodo da bisseccao. Para darmos incio primeiramente escolhemos um intervalo que contenha
uma raz do problema. Para isto escolhemos um intervalo [a, b] de forma que f (a) e f (b) possuam
sinais trocados, e assim pelo teorema do valor intermediario podemos garantir a existencia de
pelo menos uma raz neste intervalo. Por simplicidade assumiremos que a raz e u
nica neste
intervalo.
Para iniciarmos este metodo fazemos a1 = a e b1 = b e encontramos seu ponto medio,
p 1 = a1 +

b 1 a1
.
2

140

Se f (p1 ) = 0, entao a raz p procurada e dada por p = p1 . Se f (p1 ) 6= 0, entao o sinal de f (p1 )
e o mesmo de f (a1 ) ou de f (b1 ). Se f (p1 ) tem o sinal contrario de f (a1 ) entao temos uma raz
do nosso problema no intervalo [a1 , p1 ] e neste caso fazemos
a2 = a1 e b2 = p1 .
Caso contrario teremos que
a2 = p 1 e b 2 = b 1 .
O mesmo processo e agora aplicado no intervalo [a2 , b2 ], e encontramos assim o intervalo
[a3 , b3 ], [a4 , b4 ]. Devemos notar que cada intervalo [ai , bi ], i = 1, 2, 3, ... contem a raz p e que
|ai bi |
.
2
ALGORITMO 4 Este algoritmo encontra solucao para f (x) = 0, f contnua, definida em
[a, b] e f (a) e f (b) com sinais opostos
ENTRADA a,b; Tolerancia TOL; N
umero maximo de iteracoes N0
SAIDA Solucao aproximada p ou mensagem de falha
|ai+1 bi+1 | =

Passo 1 Faca i = 1.
Passo 2 Enquanto i N0 .
Passo 3 Faca p = (a + b)/2.
Passo 4 Se f (p) = 0 ou (b a)/2 < T OL entao

SAIDA
(p)
PARE
Passo 5 i = i + 1
Passo 6 Se f (a)f (b) > 0
entao faca a = p
caso contrario b = p.

Passo 7 SAIDA
(Metodo falhou depois de N0 iteracoes)
STOP
OBS: Outros criterios de parada que podem ser usados no algoritmo da bisseccao tais como,
|pN pN 1 | < 
|pN pN 1 |
|pN |

<

|f (pN )| < 

141

Exemplo 37 Vamos considerar o seguinte polinomio no intervalo I:


f (x) = x3 + 4x2 10
Consideremos o intervalo I = [1, 2]
f (1) = 5 e f (2) = 14 ao menos uma raz no intervalo [1, 2].
f 0 (x) = 3x2 + 8x > 0 f(x) e crescente neste intervalo e a raz e u
nica.
Na primeira iteracao consideramos a1 = 1.0, b1 = 2 logo a raz e aproximada por
1
= 2 + 12 = 1.5. O comprimento do intervalo e dado por ba
= 0.5.
p1 = a1 +b
2
2
Na segunda iteracao faremos a2 = 1.0 e b2 = 1.5 a e raz aproximada p2 = 1.25 e o
comprimento do intervalo e 0.25.
seguindo o mesmo raciocnio, temos os valores das 13 primeiras iteracoes dados na
seguinte tabela:
n
1
2
3
4
5
6
7
8
9
10
11
12
13

an
1.0
1.0
1.25
1.25
1.3125
1.34375
1.359375
1.359375
1.36328125
1.36328125
1.364257813
1.364746094
1.364990235

bn
2.0
1.5
1.5
1.375
1.375
1.375
1.375
1.3671875
1.3671875
1.365234375
1.362534375
1.362534375
1.365234375

pn
1.5
1.25
1.375
1.3125
1.34375
1.359375
1.3671875
1.36328125
1.365324375
1.364257813
1.364746094
1.364990235
1.365112305

f (pn )
2.375
-1.79687
0.16211
-0.84839
-0.35098
-0.09641
0.03236
-0.03215
0.000072
-0.1605
-0.00799
-0.00396
-0.00194

Depois de 13 iteracoes, p13 = 1.365112305 aproxima a raz p com um erro




b13 a13
= |b14 a14 | = |1.365234375 1.365112305| = 0.000122070,
|p p13 | <

2
como |a14 | < |p|,
|p p13 |
|b14 a14 |
<
9.0 105 ,
|p|
|a14 |
assim nossa aproximacao possui pelo menos quatro dgitos significativos corretos.
OBS: O valor de p com 9 casas decimais e p = 1.365230013. Note que neste caso p9
esta mais perto de p que a aproximacao final p9 , mas nao tem forma de saber isto
sem conhecer a resposta correta!

142

O metodo da biseccao, apesar de conceitualmente simples, possui inconvenientes significantes. Possui convergencia lenta (isto e, N deve ser grande para que |p pN | seja suficientemente
pequeno), alem de poder descartar uma boa aproximacao intermediaria. Entretanto este metodo possui uma propriedade importante, ele sempre converge para uma raz e por isto e usado
na pratica como chute inicialpara metodos mais eficientes.
Teorema 31 Seja f C[a, b] e suponha que f (a).f (b) < 0. O metodo da bisseccao gera uma
seq
uencia {pn } aproximando p com a propriedade
|pn p|

ba
, n 1.
2n

(1)

Prova: Para cada n 1, temos


b n an =

1
2n1

(b a) e p (an , bn ).

Como pn = 21 (an + bn ), para todo n 1, segue que


1
ba
|pn p| (bn an ) = n , n 1.
2
2
De acordo com definicao anterior, a inequacao (1) implica que {pn }
e
n=1 converge para p e
n
limitada por uma seq
uencia que converge para zero com taxa de convergencia O(2 ).
OBS: Teoremas deste tipo apenas nos dao limites de erro na aproximacao. Por exemplo no
exemplo 1 o teorema assegura que:
|p p9 |

21
2 103
9
2

O erro real e muito menor,


|p p9 | = |1.365230013 1.365234375| 4.4 106
Exemplo 38 Para determinar o n
umero de itercoes necessarias para resolver f (x) = x3 +
2
4x 10 = 0 com precisao de  = 105 usando a1 = 1 e b1 = 2 requer encontrar um inteiro N
que satisfaca
|pn p| 2N (b a) = 2N < 105 .
Para determinarmos N vamos usar logaritmo na base 10. Da,
N log10 2 < 5 ou N >

5
16.6.
log10 2

Desta forma precisaramos teoricamente de 17 iteracoes para termos uma aproximacao para p
com precisao de 105 . Devemos lembrar que estas tecnicas apenas nos dao um limite do erro,
em muitos casos este limite e muito maior que o erro real.

143

Ordem de converg
encia do M
etodo da Bissecc
ao
Seja p uma raz de f (x) = 0. Neste caso, ei = |xi p|. Agora, como no metodo da bisseccao a
aproximacao de ordem i + 1 e dada por, xi+1 = xi +x2 i1 onde f (xi )f (xi1 ) < 0 entao sabemos
que o erro da iteracao i + 1 e a metade do erro da iesima iteracao, assim

ei+1

ei
ei+1
1

2
ei
2

(2)

logo a ordem de convergencia do metodo da bisseccao e linear.


Observaco
es: Uma vantagem do Metodo da bisseccao e que sempre converge, porem sua
convergencia e lenta, conforme mostramos ela e linear. Podemos ainda observar que a sequencia
gerada por este metodo nao decresce de forma monotona, devido a escolha da aproximacao da
raz sempre como o ponto medio do intervalo considerado, nao levando em conta a funcao
considerada, mas apenas seu sinal nos extremos dos intervalos. Normalmente usamos o metodo
da bisseccao para reduzir o intervalo considerado antes de usar um outro metodo com maior
ordem de convergencia.

8.1.2

O m
etodo da Falsa-Posic
ao

Vamos novamente considerar uma funcao f contnua em um intervalo [a; b] de forma que
f (a)f (b) < 0. A ideia central deste metodo e usar como aproximacao da raz procurada, uma
media ponderada pelos valores da funcao f nos extremos do intervalo a cada iteracao.

Figura 8.1: falsa posicao

Para isto, vamos considerar a sequencia formada pelas abscissas dos pontos de interseccao
da reta formada pelos pontos (an , f (an )) e (bn , f (bn )) e o eixo dos x. Com esta finalidade

144

primeiramente vamos encontrar a reta y(x) que passa pelos pontos (a, f (a)) e (b, f (b)):
y(x) =

xb
xa
f (b) +
f (a)
ba
ab

y(x) =

xf (b) af (b) xf (a) + bf (a)


ba

y(x) =

x(f (b) f (a)) (af (b) bf (a))


ba

(3)

Assim a abscissa x do ponto de interseccao desta reta com o eixo dos x, isto e quando y(x) = 0
pode ser escrita como:
0=

x(f (b) f (a)) (af (b) bf (a))


ba

(4)

como a 6= b
x=

af (b) bf (a)
f (b) f (a)

(5)

Desta forma o metodo da falsa posicao e dado por:


Funcao f definida e contnua em um intervalo [a, b].
Se f (a)f (b) < 0 entao existe um n
umero neste intervalo de forma que f () = 0, logo
Fazemos a0 = a e b0 = b e calculamos
p0 =

(a0 f (b0 ) b0 f (a0 ))


(f (b0 ) f (a0 ))

Para n = 0, 1, ...:
Se f (pn ) = 0 a raz procurada foi encontrada, caso contrario
Se f (an )f (pn ) < 0 fazemos: an+1 = an e bn+1 = pn ou se f (an )f (pn ) > 0 an+1 = pn e
bn+1 = bn
pn+1 =

(an+1 f (bn+1 ) bn+1 f (an+1 ))


(f (bn+1 ) f (an+1 ))

A sequencia p0 , p1 , ... produzida pelo metodo da falsa posicao converge para a raiz da
funcao neste intervalo.

145

Exemplo 39 Vamos considerar o polinomio p(x) = x3 + 4x2 10. Para esbocar o grafico desta
funcao notamos que: f 0 (x) = 3x2 + 8x = (3x + 8)x, assim os possveis pontos de maximo e
mnimo desta funcao sao aqueles onde f 0 (x) = 0 x = 0 ou x = 8/3. Temos ainda que
f (0) = 10 e f [8/3] 0.5185. Ainda temos que f (x) < 0 se x (8/3, 0) e fora deste
intervalo a funcao e negativa, logo seu grafico e:

Figura 8.2: falsa posicao

Podemos ver que este polinomio possui uma u


nica raz e ela esta no intervalo [1, 2]. assim
vamos comecar fazendo a1 = 1 e b1 = 2 e desta forma obtemos pelo metodo da falsa posic
ao:
Se escolhemos a0 = 1 e b0 = 2 entao
p0 =

1f (2) 2f (1)
14 + 10
=
= 1.2631578947368
f (2) f (1)
19

e desta forma:

146

k
ak
bk
0 1.0000000000 2
1 1.26315789474 2
2 1.3388278388 2
3 1.3585463418 2
4 1.3635474400 2
5 1.3648070318 2
6 1.3651237179 2
7 1.3652033036 2
8 1.3652233020 2
9 1.3652283270 2
10 1.3652295897 2

pk
f (pk )
1.2631578947
-1.6022743840
1.338827839
-0.4303647480
1.3585463418
-0.1100087885
1.3648070318
-0.0277620910
1.3648070318
-0.0069834154
1.3651237179
-0.0017552090
1.3652033037
-0.0004410630
1.3652233020
-0.0001108281
1.3652283270
-0.0000278479
1.3652295897 -6.997390 106
1.3652299069 -1.758239 106

Neste exemplo f (pk ) e sempre positivo e por este motivo os elementos bk , k = 0, 1, .., 10
ficaram inalterados. Olhando a tabela acima, notamos que depois de 10 iteracoes o intervalo
foi reduzido para
[1.365229589673847, 2.000000000000].
Desta forma como garantimos que a raz procurada esta neste intervalo, que tem comprimento
b10 a10 = 0.634770410 e e aproximada por
p10 = 1.365229907
. Mais ainda, podemos estimar sua precisao como a sua distancia ate a extremidade mais
proxima do intervalo [a10 , b10 ], isto e
p10 a10 = 3.172667253359407 107 .

8.1.3

O m
etodo da Itera
c
ao Linear (Ponto Fixo)

Vamos considerar uma funcao f (x), contnua em [a, b] onde existe pelo menos uma raz de f (x).
O metodo do ponto fixo transforma um problema do tipo f (x) = 0 em um problema do tipo
g(x) = x. Neste caso chamamos a funcao g(x) de funcao iteracao e a solucao de um problema
deste tipo nos chamamos de um ponto fixo para a funcao g.

147

Quando podemos garantir a existencia de ponto fixo?


Exemplo 40
Se g(x) = x entao cada x [0, 1] e um ponto fixo para g. Neste caso temos infinitos
pontos fixos.
Se g(x) = x sin x no intervalo [0, 1] temos exatamente dois pontos fixos, x = 0 e
x = 1.

Condicoes suficientes de existencia e unicidade de ponto fixo para g em um intervalo [a, b]


sao dadas por:
Teorema 32 Se g(x) C[a, b] e g(x) [a, b] para todo x [a, b], entao g possui um
ponto fixo em [a, b].
Mais, se g 0 (x) existe em (a, b) e se existe uma constante positiva k < 1 de forma que
|g 0 (x)| K < 1 para todo x (a, b)
entao g possui exatamente um ponto fixo em [a, b]
A prova deste teorema e bastante simples e pode ser encontrada em Burden and Faires
Numerical Analysis.
Como aproximar este ponto fixo?
Primeiramente escolhemos um chute inicial p0 em [a, b]
Geramos uma sequencia {pn }
n=0 fazendo
p1 = g(p0 )
p2 = g(p1 )
...

148

pn+1 = g(pn ) ...

Se esta sequencia gerada for convergente e a funcao g contnua entao,




p = lim pn = lim g(pn1 ) = g lim pn1 = g(p)
n

Assim p e a solucao de x = g(x). Aqui devemos observar que a convergencia da


sequencia gerada bem como sua ordem de convergencia dependem fortemente da
escolha de g(x).
ALGORITMO 5 Ponto Fixo
Encontra a solucao para p = g(p) com chute inicial p0 .
Entrada: p0 , T OL, N0 n
umero maximo de iteracoes
Sada: Solucao aproximada ou mensagem de erro
1. Faca i = 1
2. Enquanto i N0
(a) Faca p = g(p0 ) (calcula pi )
(b) Se |p p0 | < T OL entao
i. Sada p
ii. PARE
(c) Faca i = i + 1
(d) Faca p0 = p (recobre p0 )
3. Sada: Metodo falhou depois de N0 iteracoes
4. PARE
Vamos agora mostrar um exemplo, onde a escolha de g(x) influencia na convergencia e na
ordem de convergencia do metodo do ponto fixo.

149

n
(a)
0
1.5
1
-0.875
2
6.732
3
-469.7
4 1.03 108
5
6
7
8
9
10
15
20
25
30
Exemplo 41

(b)
(c)
(d)
(e)
1.5
1.5
1.5
1.5
0.8165 1.286953768 1.348399725 1.373333333
2.9969 1.402540804 1.367376372 1.365262015

8.65 1.345458374 1.364957015 1.365230014


1.375170253 1.365264748 1.365230013
1.360094193 1.365225594
1.367846968 1.365230576
1.363887004 1.365229942
1.365916734 1.365230022
1.364878217 1.365230012
1.365410062 1.365230014
1.365223680 1.365230013
1.365230236
1.365230006
1.365230013

1. Encontre o u
nico zero de f (x) = x3 + 4x2 10 no intervalo [1, 2].

Para usarmos o metodo do ponto fixo, devemos modificar o problema f (x) = 0 em um


problema do tipo g(x) = x. Existem muitas formas para escolher g(x), aqui faremos
cinco escolhas distintas, duas delas teremos falta de convergencia e em tres delas teremos
oredens de convergencia distintas. Nos exemplos usaremos como chute inicial p0 = 1.5.
(a) x = x x3 4x2 + 10 = g1 (x)
1/2

104x2
= g2 (x)
(b) x =
x
(c) x = 21 (10 x3 )1/2 = g3 (x)

10 1/2
(d) x = 4+x
= g4 (x)
(e) x = x

x3 +4x2 10
3x2 +8x

= g5 (x)

Os resultados obtidos usando como funcao iteracao as gi (x) definidas acima sao dados
pela tabela 1.
Como podemos garantir que a funcao escolhida g(x) produza convergencia para a solucao
de g(x) = x?
Esta pergunta pode ser respondida atraves dos seguintes teorema e corolarios. Aqui apenas
enunciaremos os teoremas, cujas demonstracoes podem ser encontradas em livros de analise
numerica, particularmente Burden and Faires, Numerical Analysis.
Teorema 33 (Ponto Fixo) Seja g C[a, b] e que g(x) [a, b] para todo x [a, b]. Suponha
que g 0 existe em (a, b) com |g 0 (x)| k < 1 para todo x (a, b).

150

Se p0 e um n
umero no intervalo [a, b] entao a sequencia gerado por pn = g(pn1 para n 1
converge para o u
nico ponto fixo p [a, b]
Prova:
Pelo teorema 32 sabemos que existe um u
nico ponto fixo p [a, b]. Uma vez que g : [a, b]

[a, b] a sequencia {pn }n=0 esta definida para todo n 0 e pn [a, b] assim,
|pn p| = |g(pn1 p| k 2 |Pn2 p| ... k n |P0 p|
como k < 1 temos que
lim |pn p| limn k n |p0 p| = 0

Assim, limn pn = p.
Corol
ario 1 Se g satisfaz as hipoteses do teorema 33 (Ponto Fixo) um limite para o erro
envolvido usando-se a sequencia pn para aproximar p e dada por:
|pn p| k n |p0 p| k n max{p0 a, b p0 }
uma vez que p [a, b].
Corol
ario 2 Se g satisfaz a hipotese do teorema 33 (Ponto Fixo) entao
|pn p|

kn
|p0 p1 |
1k

n 1

No nosso exemplo
g1 (x) = x x3 4x2 + 10
g10 (x) = 1 3x2 8x
Podemos ver que g 0 (1.5) = 17.75, assim |g10 (x)| > 1 no interval e desta forma nao podemos
garantir a convergencia (nem a nao convergencia) e assim esta seria uma ma escolha para funcao
iteracao.

g2 (x) =

10
4x
x

1/2

g2 (1) = (10 4)1/2 = 2.44 6 [1, 2]


Isto e g2 [1, 2] 6 [1, 2] e assim tambem nao podemos garantir convergencia para esta escolha de
funcao iteracao.
1
g3 (x) = (10 x3 )1/2
2
3
0
g3 (x) = x2 (10 x3 )1/2
4

151

Neste caso vemos que |g30 (2)| 2.12 > 1. E assim esta tambem nao e uma boa escolha para
funcao iteracao. (note que existe convergencia mas e muito lenta).
Os casos g4 e g5 satisfazem o teorema.
Au
ltima escolha para g(x) como pode ser mostrado e a melhor escolha possvel para funcao
iteracao e esta escolha e na verdade chamada de metodo de Newton-Raphson que sera visto na
proxima secao.

8.1.4

O M
etodo de Newton-Raphson

O metodo de Newton-Raphson e um dos mais poderosos para encontrar um zero de f (x) = 0.


Sua deducao pode ser feita de forma grafica ou como a escolha da funcao iteracao de forma
que o metodo do ponto fixo seja o mais rapido possvel ou ainda usando-se expansao de Taylor.
Aqui usaremos a expansao em Taylor.
Assim vamos supor que f C2 [a, b] e que queremos encontrar p de forma que f (p) = 0. Seja
x uma aproximacao de p de forma que f (
x) 6= 0 e que |p x| seja pequeno. Assim expandindo
f (x) em torno de x temos que existe (x) entre x e x de forma que:

f (x) = f (
x) + (x x)f 0 (
x) +

(x x)2 00
f ((x))
2!

(6)

agora fazendo x = p em (6) e lembrando que f (p) = 0,

0 = f (
x) + (p x)f 0 (
x) +

(p x)2 00
f ((p))
2!

(7)

como |p x| e pequeno podemos desprezar (p x)2 , assim


0 f (
x) + (p x)f 0 (
x)

(8)

f (
x)
0
f (
x)

(9)

ou

p = x

Da equacao(9) parte o metodo de Newton-Raphson que comeca com uma aproximacao inicial
p0 e gera uma sequencia {pn }, definida por:

pn = pn1

f (pn1 )
f 0 (pn1 )

(10)

Este procedimento iterativo ira convergir para o zero de muitas funcoes, e quando converge,
sera usualmente muito rapido.

152

Esta mesma formula poderia ter sido obtida de forma geometrica, vamos considerar o grafico
da figura abaixo e um chute inicial p0 . Se tracarmos a tangente a curva em p0 sua interseccao
com o eixo dos x sera o segundo termo da sequencia e assim por diante. Isto e:

f (p0 )
f (p0 )
p1 = x 0 0
p0 p1 )
f (p0 )
f (p1 )
f (p1 )
p2 = x 1 0
tan 1 =f 0 (p1 ) =
p1 p2 )
f (p1 )
(11)
..
.
f (p0 )
f (p0 )
p 1 = x0 0
tan n+1 =f 0 (p0 ) =
(p0 p1 )
f (p0 )

Exemplo 42 Encontre 7 usando o metodo de Newton-Raphson,


com 9 casas decimais.

2
Vamos escolher f (x) = x 7 note que sua raz e 7. Assim vamos endontrar a raz de f (x)
pelo metodo pedido. Neste caso, f 0 (x) = 2x e a formula de recorrencia e dada por:
tan 0 =f 0 (p0 ) =

pn+1

f (pn )
p2n 7
= pn
= pn 0
f (pn )
2xn

Para chute inicial vamos escolher p0 = 2.5 pois

4=2e

0.75
= 2.65
5
0.0225
x2 = 2.65
= 2.645754717
5.3
0.00001802242791
x3 = 2.645754717
= 2.645751311
5.291509434
3 1010
x4 = 2.645751311
= 2.645751311
5.291502622
x1 = 2.5

153

9 = 3,

ALGORITMO 6 : Newton Raphson


Este algoritmo encontra a solucao de f (x) = 0 dado um chute inicialp0
ENTRADA: p0 , Tolerancia TOL, N
umero maximo de iteracoes N0
SADA: Solucao aproximada ou mensagem de erro
1. Faca i = 1
2. Enquanto i N0
(a) p = p0 f (p0 )/f 0 (p0 )
(b) Se |p p0 | < TOL entao
Sada p
PARE
(c) Faca i = i + 1
(d) Faca p0 = p
3. Sada: O metodo falhou depois de N0 iteracoes
4. Pare
Observac
ao: Podemos adotar outras tecnicas de parada alem da adotada pelo algoritmo, tais
como
|pn pn1 |
<  se pn 6= 0
|pn |
ou
f (pn ) < 
Apesar de sua rapida convergencia, o metodo de Newton-Raphson possui dificuldades com
certos tipos de funcoes. Considere por exemplo uma funcao polinomial como a mostrada na
figura abaixo, quando partimos de x0 = 0, ficamos com uma nao convergencia oscilatoria!

154

Ela ilustra por um caso nao convergente. Outro exemplo seria um caso onde o chute e dado
proximo de uma raz mas outra raz e aproximada e nao a raz esperada. Nao existe um metodo
simples que evite este tipo de problema em certas funcoes, mas um rascunho de seu grafico ou
sua tabulacao em alguns pontos serao muitas vezes precisos para uma escolha certa do chute
inicial. Tambem e problema o caso de razes m
ultiplas. Neste caso o grafico tangencia o eixo
dos x e neste caso a derivada de primeira ordem na raz e nula. Mesmo neste caso, o metodo de
Newton pode ser convergente (dependendo do chute inicial), mas, neste caso, a convergencia e
muito lenta e na pratica pode fazer o calculo difcil (ela que era de ordem quadratica cai para
ordem linear).
Exemplo 43 Vamos considerar f (x) = arctan x. Assim f 0 (x) =

155

1
1+x2

1. Primeiramente vamos usar x0 = 1.4 Neste caso temos:


x1
x2
x3
x4
x5
x6
x7

= x0 arctan(x0 )(x20 + 1) = 1.4 arctan(1.4)((1.4)2 + 1) = 1.41366


= x1 arctan(x1 )(x21 + 1) = 1.45013
= x2 arctan(x2 )(x22 + 1) = 1.55063
= 1.84705
= 2.89356
= 8.71033
= 103.25

Isto e o metodo de Newton diverge para este valor inicial.


2. Agora, vamos usar x0 = 1.35 Neste caso temos:
x1
x2
x3
x4
x5
x6
x6

= x0 arctan(x0 )(x20 + 1) = 1.35 arctan(1.35)((1.35)2 + 1) = 1.28409


= x1 arctan(x1 )(x21 + 1) = 1.12412
= x2 arctan(x2 )(x22 + 1) = 0.785872
= 0.291554
= 0.016251
= 2.86105 106
= 1.5 1017

Isto e o metodo de Newton converge para x = 0 quando o valor inicial considerado e 1.35.
Exemplo
44 Vamos considerar f (x) = x3 x + 3. Assim f 0 (x) = 3x2 1, assim f 0 (x) = 0

x = 33 0.57735

156

Vamos fazer x0 = 0.
x3 x 3

0
x1 = x0 03x1
x2 = 0.375000
x3 = 1.188420
x4 = 0.172081
x5 = 1.91663
x6 = 0.206263
x7 = 7.55789
x8 = 12.1509
x9 = 59.647
x10 = 1238.63

= 3.000000

Isto e o metodo diverge com este chuteinicial! Confira o que ocorre se x0 = 2


Ordem de Converg
encia do M
etodo de Newton
Teorema 34 Se f (p) = 0 com f 0 (p) e se f 00 (x) contnuas, entao existe um intervalo aberto I
contendo p de forma que se p0 I entao para o metodo de Newton-Raphson temos que
lim pi = p

Isto e o teorema garante que o metodo de Newton converge, dependendo do chute inicial, para
a raz simples p.
Podemos mostrar que neste caso a ordem de convergencia do metodo e quadratica, pois:
Se p e uma raz simples para a funcao f (x) entao fazendo x = p na serie de Taylor
truncada no segundo termo temos
1
0 = f (xi ) + (p xi )f 0 (xi ) + (p xi )2 f 00 () entre xi e p,
2

157

agora, dividindo a equacao acima por f 0 (xi )


00
1
f (xi )
2 f ()
+
(p

x
)
=

(p

x
)
i
i
f 0 (xi )
2
f 0 (xi )

Reordenando a equacao acima temos




f 00 ()
f (xi )
1
p xi 0
= (p xi )2 0
,
f (xi )
2
f (xi )
{z
}
|
xi+1

aplicando modulo dos dois lados da igualdade acima e lembrando que ei = |xi p|
podemos escrever

ei+1 =

e2i

00

f ()


2f 0 (xi )

ou


1 f 00 ()
ei+1
= 0
e2i
2 f (xi )
quando i temos que xi p logo p. Desta forma aplicando o limite na
equacao anterior temos


ei+1
1 f 00 (p)
lim
= 0
i e2
2 f (p)
i
Note que o segundo membro da equacao anterior e uma constante e assim temos
pela definicao de ordem de convergencia que a ordem de convergencia do metodo
de Newton-Raphson e quadratica (2).

OBS: O metodo pode ser aplicado para encontrar razes complexas, bastando para isto termos
um chute inicial complexo.
Exemplo 45 Vamos considerar a equacao polinomial
f (x) = x4 9x3 + 30x2 42x + 20

(12)

cujas razes sao 1, 2, 3 + i, 3 i


usando o metodo de Newton Raphson com diversos chutes iniciais obtemos:

158

0
1
2
3
4
5
6
7

0
0.476190476
0.783857793
0.945183080
0.995239348
0.999959683
0.999999997
1.000000000

8.1.5

3
2.333333333
1.979591837
2.000008766
2.000000000

1+i
1.270270270+0.621621621 i
1.448937409+0.253119829 i
1.659616171+0.244371599 i
1.911995657+0.066770499 i
1.999283337+0.001360480 i
1.999999996+4.297033794 1010 i
2.000000000+3.205324874 1024

4+2i
3.587068332+1.540044085
3.294613943+1.231633775
3.107145507+1.059849539
3.018207673+1.003079473
3.000419751+0.999731774
2.999999824+0.999999672
3.000000000+1.000000000

O M
etodo de Newton Modificado

Se a raz de f (x) e simples apresenta o metodo de Newton apresenta uma convergencia quadratica. Esta convergencia pode cair para ordem linear no caso de razes m
ultiplas.
Exemplo 46 Por exemplo, vamos considerar a equacao:
g(x) = x4 8.6x3 35.51x2 + 464.4x 998.46

(13)

cujas razes sao x1 = 4.3, x2 = 4.3, x3 = 7.34847, x4 = 7.34847. Usando o metodo de Newton
Raphson temos:
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

2
3.053113553
3.627606412
3.944855635
4.116183264
4.206252614
4.252622694
4.276179199
4.288055726
4.29401929
4.29700749
4.29850320
4.29925147
4.29962570
4.29981284
4.29990642
4.29995321
4.29997660
4.29998830
4.29999415
4.29999708
4.29999854
4.29999927

5
4.601960784
4.444305608
4.370775870
4.335071426
4.317459659
4.308711179
4.304350971
4.302174336
4.301086882
4.300543369
4.300271667
4.300135829
4.300067913

7
7.485611511
7.360406997
7.348571171
7.348469236
7.348469228

159

10
8.727184466
7.920259886
7.497754133
7.362461713
7.348608992
7.348469242

-8
-7.432656827
-7.350123736
-7.348469884
-7.348469228

i
i
i
i
i
i
i

Note que para encontrarmos a raz 4.3 precisamos de muitas iteracoes, pois ela e dupla. A
convergencia do metodo neste caso passa a ser linear.
Para aumentarmos a ordem de convergencia, no caso de razes m
ultiplas procedemos da seguinte
forma. Se a funcao f (x) possui raz m
ultipla em p entao
f (x)
f 0 (x)
possui raz simples em p. A ideia e usar o Metodo de Newton Raphson para encontrar a raz
de (x).
(x) =

f (x)/f 0 (x)
(x)
=
0 (x)
[(f 0 (x))2 f (x)f 00 (x)]/[f 0 (x)]2
Assim,

(14)

f (x)f 0 (x)
(15)
[(f 0 (x))2 f (x)f 00 (x)]
Este metodo teoricamente possui convergencia quadratica como o metodo de NRaphson
para razes simples mas pode apresentar muitos problemas de erro de arredondamento, alem
de exigir o conhecimento de f 00 (x).
A dificuldade deste metodo e que alem de precisarmos conhecer a derivada primeira da funcao
f (x), nos tambem precisamos conhecer f 0 (x) e f 00 (x). Vamos usar este metodo para calcular a
raz 4.3 do exemplo anterior.
xn+1 = xn

Exemplo 47 Vamos considerar a funcao


g(x) = x4 8.6x3 35.51x2 + 464.4x 998.46
cuja derivada primeira e dada por,
g 0 (x) = 464.4 71.02x 25.8x2 + 4x3
e a derivada segunda por,
g 00 (x) = 12x2 51.6x 71.02
Vamos definir
g(x)g 0 (x)
(g 0 (x))2 g(x)g 00 (x)
os resultados obtidos sao dados por:
h(x) = x

0
2
1 4.237051182
2 4.30451852
3 4.300000025
4

5
4.411567448
4.301674139
4.300000340
4.299999982

Vemos que neste caso a convergencia e rapida isto e volta a ser de ordem quadratica na raz
dupla.

160

8.1.6

O M
etodo da Secante

O metodo de Newton e muito poderoso, mas algumas vezes nos nao conhecemos ou e muito
difcil encontrar f 0 (x). Por exemplo se f (x) = x2 3x cos(2x) entao sua derivada sera f 0 (x) =
2x3x cos(2x) + x2 3x(cos 2x) ln 3 2x2 3x sin 2x, que nao e simples para avaliar em cada ponto.
Para evitarmos avaliar o valor da derivada da funcao f (x) no metodo de Newton podemos
aproximar a derivada. Para isto vamos lembrar que
f 0 (xn1 ) = lim

xxn1

f (x) f (xn1 )
x xn1

(16)

agora fazendo x = xn2 podemos escrever que


f 0 (xn1 )

f (xn2 ) f (xn1 )
f (xn1 ) f (xn2 )
=
xn2 xn1
xn1 xn2

(17)

Usando esta aproximacao para f 0 (pn1 ) na formula de Newton,


xn = xn1

f (xn1 )(xn1 xn2 )


f (xn1 ) f (xn2 )

(18)

Observe que este metodo necessita de dois chutes iniciais x0 e x1 .


Exemplo 48 Encontre um zero de f (x) = cos x x, usando o metodo da secante. Nos agora
precisamos de duas condicoes iniciais. Esbocando os graficos de cos x e de x vemos que estas
curvas se cruzam perto de 4 . Assim vamos usar como partida x0 = 0.5 e x1 = 0.7853981635.
A formula usada e:
xn = xn1

(xn1 xn2 )(cos xn1 xn1 )


(cos xn1 xn1 ) (cos xn2 xn2 )
n
0
1
2
3
4
5

pn
0.5
0.7853981635
0.7363841390
0.7390581394
0.7390851492
0.7390851334

A ordem de convergencia do metodo da secante e um pouco menor que do metodo de Newton.


Neste exemplo se tivessemos aplicado o metodo de Newton teramos a mesma ordem
de precisao
com n = 3. Na verdade podemos mostrar que sua ordem d convergencia e r = (1+ 5)/2 1.62.
O metodo da secante e o de Newton sao muitas vezes usados para refinar uma resposta obtida
por outra tecnica tal como o metodo da bisseccao. Isto e feito pois estes metodos requerem
uma boa primeira aproximacao, e neste caso possuem convergencia rapida.

161

8.1.7

M
etodo de Mu
ller

Este metodo foi desenvolvido por M


uller (1956), ele e uma generalizacao do metodo da secante
e pode ser usado para calcular uma raz da funcao qualquer f (x). Apesar disto, este metodo
e particularmente usado para aproximar razes de um polinomio. O metodo da secante, comeca com duas aproximacoes iniciais x0 e x1 e determina a proxima aproximacao x2 como a
interseccao do eixo do x com a reta que passa atraves dos pontos x0 , f (x0 ) e x1 , f (x1 ).
O metodo de M
uller usa tres aproximacoes iniciais x0 , x1 , x2 e determina a proxima aproximacao
x3 como a interseccao do eixo dos x com a parabola que passa atraves dos pontos x0 , f (x0 ),
x1 , f (x1 ) e x2 , f (x2 ).
A derivacao do metodo de M
uller comeca considerando tres valores iniciais x0 , x1 , x2 e o seguinte
polinomio quadratico:
P (x) = a(x x2 )2 + b(x x2 ) + c

(19)

Como queremos que este polinomio passe pelos pontos x0 , f (x0 ), x1 , f (x1 ) e x2 , f (x2 ), podemos
determinar as constantes a, b e c da parabola P (x) como,
f (x0 ) =a(x0 x2 )2 + b(x0 x2 ) + c
f (x1 ) =a(x1 x2 )2 + b(x1 x2 ) + c
f (x2 ) =c

(20)

isto e, resolvendo o sistema (20)


c =f (x2 )
(x0 x2 )2 [f (x1 ) f (x2 )] (x1 x2 )2 [f (x0 ) f (x2 )]
b=
(x0 x2 )(x1 x2 )(x0 x1 )
(x1 x2 )[f (x0 ) f (x2 )] (x0 x2 )[f (x1 ) f (x2 )]
a=
(x0 x2 )(x1 x2 )(x0 x1 )

(21)

Para determinarmos x3 , o zero da parabola P (x), aplicamos a formula de Baskara modificada


e assim evitamos problemas de erro de arredondamento, causados pela subtracao de n
umeros
proximos, isto e aplicamos a formula como,
(x3 x2 ) =

2c

b b2 4ac

(22)

A formula (22) nos da duas possibilidades para a escolha de x3 , dependendo do sinal que
precede o termo radical. Como queremos a raz que x3 seja a raz mais proxima de x2 possvel,
escolhemos o sinal que precede o radical de forma que o modulo do denominador seja o maior
possvel.
Assim, se

mod1 = |b + b2 4ac|
mod2 = |b b2 4ac|

162


denominador =

b + b2 4ac
b b2 4ac

se mod1 mod2
se mod1 < mod2

E desta forma, temos


x3 = x2

2c
denominador

(23)

onde a, b e c sao dados por (21). Uma vez que x3 e determinado, o procedimento descrito
acima e reinicializado usando x1 , x2 e x3 para determinar x4 . O processo repete-se ate que uma
solucao satisfatoria seja obtida.

Nota: Note que em cada iteracao o metodo envolve a raz b2 4ac, logo o metodo ira
aproximar tambem razes complexas.
A seguir apresentamos o algoritmo deste metodo.
ALGORITMO 7 (Mu
ller) Encontra solucao para f (x) = 0, dadas tres aproximacoes x1 , x2
e x3 ;
ENTRADA x1 , x2 , x3 ;a,b; Tol=105 ; N
umero maximo de iteracoes N0
SAIDA Solucao aproximada p ou mensagem de falha
Passo 1 Faca:
h1 = x1 x0 ;
h2 = x2 x1 ;
1 = (f (x1 ) f (x0 ))/h1 ;
2 = (f (x2 ) f (x1 ))/h2 ;
d = (1 2 )/(h2 + h1 );
i = 1.
Passo 2 Enquanto i N0 (3-7).
Passo 3 Faca:
b = 2 + h2 d;
D = (b2 4f (x2 )d)1/2 . (Obs: Pode ser aritmetica complexa.)
Passo 4 Se |b D| < |b + D|
entao faca E = b + D
caso contrario faca E = b D.
Passo 5 Faca
h = 2f (x2 )/E;
p = x2 + h.
Passo 6 Se |h| < T OL entao

SAIDA
(p);
PARE.
Passo 7 Faca

163

x0 = x1 ; (preparando nova iteracao)


x 1 = x2 ;
x2 = p;
h1 = x1 x0 ;
h2 = x2 x1 ;
1 = (f (x1 ) f (x0 ))/h1 ;
2 = (f (x2 ) f (x1 ))/h2 ;
d = (2 1 )/(h2 h1 );
i=i+1

Passo 8 SAIDA
(Metodo falhou depois de N0 iteracoes)
STOP
Exemplo 49 Considere o polinomio P (x) = 16x4 40x3 + 5x2 + 20x + 6, considerando T OL =
uller e diferentes valores para x0 , x1
105 . Os resultados produzem usando o o algoritmo de M
e x2 .
i
3
4
5
6
7
8

x0 = 0.5, x1 = 0.5 e x2 = 0
xi
0.555556 + 0.598352i
0.435450 + 0.102101i
0.390631 + 0.141852i
0.357699 + 0.169926i
0.356051 + 0.162856i
0.356062 + 0.162758i

f (xi )
29.4007 3.89872i
+1.33223 1.19309
+0.375057 0.670164i
0.146746 0.00744629i
0.183868 102 + 0.539780 103 i
+0.286102 105 + 0.953674 106

i
3
4
5
6
7

x0 = 0.5, x1 = 1.0 e x2 = 1.5


xi
1.28785
1.23746
1.24160
1.24168
1.24168

f (xi )
1.37624
+0.126941
+0.219440 102
+0.257492 104
+0.257492 104

i
3
4
5
6

x0 = 2.5, x1 = 2.0 e x2 = 2.25


xi
1.96059
1.97056
1.97044
1.97044

f (xi )
0.611255
+0.748825 102
0.295639 104
0.259639 104

Nota: Geralmente o metodo de M


uller converge para uma raz da funcao f (x) para qualquer
chute inicial, problemas existem, mas quase nunca ocorrem. (ex: se f (xi ) = f (xi+1 ) = f (xi+2 )).
A ordem de convergencia do metodo e = 1.84.

164

8.2

M
etodos para calcular razes de Polin
omios

Os metodos desenvolvidos nas secoes anteriores, e em particular o metodo de Newton, podem


ser usados para encontrar razes de polinomios. Para calcularmos os zeros de um polinomio
exploramos sua estrutura especial. Alem disto, frequentemente o problema e complicado pois
necesstamos calcular todos os seus zeros, inclusive os complexos, e os muito proximos ou m
ultiplos, assim encontrar zeros de polinomios e um assunto que merece uma atencao especial.
Existem muitos metodos classicos para encontrar razes de polinomios tais como o metodo de
Bairstow e o metodo de Laguerre (ver Numerical Analysis de Kincaid e Cheney, 1996), que
iremos passar rapidamente. O metodo de Bernoulli que e um metodo iterativo que usando
o metodo da potencia para determinar uma aproximaco para a raz de modulo maximo. O
metodo de Bernoulli explora a conexao existente entre uma Equacao em Diferencas Linear
e seu polinomio caracterstico como forma para encontrar os zeros de um polinomio sem ter
conhecimento de gresseiras primeiras aproximacoes. Ja o metodo de Jenkins-Traub que tem
ordem de convergencia 3 (ver Jenkins e Traub, SIAMNA 7, 545-566, 1970 ou Jenkins e Traub,
NM 14, 252-263, 1970) e um algortmo numerico que inicia encontrando a maior e a menor
raz e depois entra na procurapelas outras razes. Este metodo encontra todos os zeros do
polinomio, um por vez, e tem por base no metodo de Newton implicito. Estes dois u
ltimos
proporcionam algoritmos estaveis para o calculo das razes. Ainda citamos o metodo da matriz
companheira, que encontra as razes de um polinomio, atraves do calculo dos autovalores de sua
matriz companheira.
Um metodo numerico para determinar um zero de um polinomio geralmente toma a forma
de uma receita para construir uma ou muitas sequencias zn de n
umeros complexos que supos
tamente irA convergir para um zero do polinomio. Cada algoritmos possui suas vantagens e
desvantagens e desta forma a escolha para o melhoralgoritmo para um dado problema nem
sempre e facil.
Um algoritmo razoavel deve convergir, isto e, a sequencia gerada por ele deve, sob certas
condicoes aceitaveis, convergir para um zero de um dado polinomio. Um algoritmo deve tambem
poder produzir aproximacoes tanto para raz real ou complexa de um dado polinomio. Outras
propriedades que um algortmo pode ou nao ter sao as seguintes:
1. Convergencia Global: Muitos algortmos podem ter convergencia garantida somente se o
valor inicial z0 estiver suficientemente proximo de uma raz do polinomio. Estes metodos
sao chamados de localmente convergentes. Algoritmos que nao requerem isto, isto e
convergem independente do valor inicial z0 sao ditos globalmente convergentes
2. Convergencia Incondicional: Alguns algoritmos so irao convergir se o polinomio considerado possir algumas propriedades especiais, isto e, zeros simples ou zeros nao equimodulares, por exemplo. Estes algoritmos sao ditos condicionalmente convergentes.
Se um algoritmo e convergente (local ou globalmente) para todos os polinomios, ele e
incondicionalmente convergente
3. Estimativa a posteriori Na pratica os algoritmos sao terminados artificialmente por algum
criterio de parada. Assim e desejavel que o algoritmo possa fazer uma estimativa de erro
para o erro |zn |. ( a raz do polinomio)

165

4. Velocidade de convergencia: O conceito de ordem e frequentemente usado para medir a


velocidade de convergencia de um algoritmo. A ordem e definida como o supremo dos
n
umeros reais para que
lim sup

|zn+1 |
<
|zn |

5. Determinacao simultanea de zeros


6. Insensibilidade de grupos de zeros muito proximos ou iguais
7. Estabilidade Numerica isto e Estabilidade significa pouca sensibilidade ao arredondamento
nas operacoes efetuadas.
Para estudarmos metodos desenvolvidos exclusivamente para polinomios, vamos considerar o
seguinte polinomio de grau n:
p(z) = an z n + an1 z n1 + ... + a1 z + a0 = 0

(24)

na qual os coeficientes ak sao coeficientes e z pode ser n


umero complexo. Se an 6= 0 entao p
tem grau n.
Teorema 35 (Teorema Fundamental da
algebra) Cada polinomio nao constante possui
ao menos uma raz no plano complexa.
Teorema 36 (N
umero de Zeros) : Um polinomio de grau n possui exatamente n zeros no
campo complexo. (Considera-se que um zero de multiplicidade m e m vezes raz do polin
omio)
Teorema 37 (Teorema do Resto:) Se um polinomio P , de grau n 1, e dividido por um
fator linear (z c), entao p(z) = (z c)q(z) + r, onde q(z) e o polinomio quociente de grau
n 1 e R e um n
umero complexo chamado de resto.
Observe no teorema acima que
1. Se z = c, entao temos que p(c) = r.
2. Se c e um zero de p(z) entao no teorema 37 r = 0 e (z c) e um fator de p(z).
Teorema 38 (Disco contendo todos os zeros de um polin
omio) Todos os zeros do polinomio descrito pela equacao (24) estao dentro de um crculo aberto de centro na origem do
plano complexo e cujo raio e
= 1 + |an |1 max |ak |
0k<n

166

Uma outra ideia u


til para a analise da localizacao de razes de polinomios e que se consideramos o polinomio p(z) definido por (24) e definirmos o polinomio,
!
 n1
 n
1
1
+ an1
+ ... + a0 = an + an1 z + ... + a0 z n ,
s(z) = z n an
z
z
temos que s(z) e um polinomio de grau igual ou menor que n e que se z0 6= 0 e um n
umero
1
complexo de forma que p(z0 ) = 0 e equivalente dizer que s( z0 ) = 0. Desta observacao resulta
que:
Teorema 39 (Zeros N
ao nulos de um polin
omio) Se todos os zeros do polinomio descrito
n
pela equacao s(z) = z p(1/z) estao em um disco centrado em zero e com raio , entao todos os
zeros nao nulos de p(z) encontram-se fora do disco |z| = 1 .
Uma outra ideia u
til para a analise de polinomios e que: Se tomamos o polinomio p da
equacao (24), e consideramos a funcao s(z) = z n p(1/z). Entao
"
s(z) =z n

#
 n1
 n
1
1
+ an1
+ ... + a0
an
z
z

(25)

=an + an1 z + an2 z 2 + ... + a0 z n


Exemplo 50 Vamos considerar p(z) = z 4 4z 3 + 7z 2 5z 2. Pelos teoremas (38) e (39),
conclumos que os zeros nao nulos deste polinomio estao no anel r1 |z| R onde:
R = 1 + |1|1 .7 = 8

r = 1 + |2|1 .7 =

9
2

isto e
2
|z| 8
9
Teorema 40 Se f e contnua em um intervalo [a, b],
1. Se f (a)f (b) < 0 entao temos um n
umero mpar de razes neste intervalo.
2. Se f (a)f (b) > 0 entao temos um n
umero par de razes neste intervalo.
3. Se f 0 e contnua e possui sinal constante neste intervalo,
(a) f (a)f (b) < 0 entao existe uma raz neste intervalo
(b) f (a)f (b) > 0 entao nao existe raz neste intervalo
1. Regra de Descartes O n
umero de razes positivas de um polinomio P (z) com coeficientes
reais nunca e maior que T , o n
umero de troca de sinal na sequencia de seus coeficientes
nao nulos; e se e menor, entao e sempre um n
umero par.
A mesma regra pode ser aplicada para enumerar as razes negativas, analisando P (z).

167

Exemplo 51 P (z) = 3z 3 + z 2 z 1. A sequencia e + + . Logo T = 1 e P (z) possui


entao uma raz positiva. P (z) = 3z 3 + z 2 + z 1. A sequencia e + +. Logo T = 2
assim o n
umero de razes negativas e 2 ou 0.
2. Regra de Du Gua Seja P (z) = an z n + ... + a1 z + a0 um polinomio de grau n sem razes
nulas. Se para algum k, 1 < k < n, tem-se a2k ak+1 ak1 , entao P (z) possui razes
complexas.
3. Regra da Lacuna
(a) Se os coeficientes de p(z) sao todos reais e para algum k, 1 k < n, tem-se ak = 0
e ak1 ak+1 > 0, entao p(z) tera razes complexas.
(b) Se os coeficientes de p(z) sao todos reais e existem dois ou mais coeficientes sucessivos
nulos, entao p(z) = 0 tem razes complexas.
Exemplo 52 Seja p(z) = 2z 5 + 3z 4 + z 3 + 2z 2 5z + 3. Para p(z), o n
umero de trocas
de sinal e T = 2, logo pela regra de Descartes p(z) possui duas ou nenhuma raz positiva.
Para p(z) o n
umero de trocas e T = 3 logo p(z) possui tres ou uma raz negativa.
Testando a2k ak+1 ak1 temos para k = 2, a22 a3 a1 ie 1 (3)(2) = 5. Assim por Du
Gua, temos razes complexas para p(z).
A regra da Lacuna nada afirma neste exemplo.
4. Cota de Laguerre-Thibault Dado um polinomio de coeficientes reais, procede-se a
divisao do polinomio por z 1, z 2, ... ate z m, onde o quociente Q(z) tenha todos
os coeficientes positivos ou nulos, assim R > 0. Tal m e uma cota superior das razes de
P . Para determinar uma cota inferior basta aplicar o mesmo procedimento em P (z).
5. Cota de Fujiwara Seja z uma raz real ou complexa de P (z) = an z n + ... + a1 z + a0 .
Entao,
(


1/(n1) 1/n )

a0
an1 an2 1/2
,
, ..., a1

,
.
|
z | 2 max
an
an
an an
Exemplo 53 Que regiao do plano contem as razes de P (z) = z 4 14z 2 + 24z 10. Pela
cota de Fujiwara temos:
|
z | 2 max{0, 141/2 , 241/3 , 101/4 } 2(3.74) = 7.48
6. Cota de Kojima Seja p(z) = an z n +an1 z n1 +...+a1 z +a0 . Toda raz real ou complexa
z satisfaz
|
z | q1 + q2
onde q1 e q2 sao os maiores valores de
(
)
ani 1/i


, i = 1, 2, ..., n.
an

168

Exemplo 54 Seja p(z) = z 5 + z 4 9z 3 z 2 + 20z 12. Temos que:


1/1
a1
= 1;
a0

1/2
a2
= 3;
a0

1/3
a3
= 1;
a0

1/4
a4
= 2.114742527;
a0

1/5
a5
= 1.643751829.
a0

logo
|
z | 3 + 2.114742527 = 5.114742527

Entre os metodos desenvolvidos especificamente para o calculo de razes de polinomios vamos


estudar os metodos de Newton-Horner, Bairstow e o metodo de Laguerre. Os dois primeiros
foram escolhidos por ter entendimento mais simples e o metodo de Laguerre por ser simples e
apresentar ordem de convergencia 3 e ser usado internamente por muitos pacotesmatematicos.
Para isto, vamos considerar o seguinte problema:
p(z) = an z n + an1 z n1 + + a1 z + a0 = 0

(26)

onde os coeficientes ai sao n


umeros reais e z uma variavel complexa. Os metodos iterativos ja
vistos podem ser aplicados na resolucao deste problema, no entanto encontrar as razes de um
polinomio p(z), na pratica, aparece com tanta frequencia que justifica o desenvolvimento de
metodos particularmente adaptados a este problema que leve em conta sua forma polinomial.
Alem disto a necessidade de encontrar razes complexas ou todas as razes de um polinomio dao
a este problema um enfoque especial. Muitas vezes nao sabemos onde estao estas razes e desta
forma precisamos de metodos que sejam incondicionalmente convergentes principalmente em
se tratando de polinomios de alto grau. Antes de vermos o metodo de Bairstow e importante
salientar que existe uma vasta literatura sobre este assunto como por exemplo ver Wilf H.S.
The numerical solution of polynomials equations, John Wiley & sons Inc. NY, 1960. Como
este temos outros metodos classicos para encontrar razes de polinomios tais como o metodo de
Bernoulli, metodo de Laguerre e o metodo de Jekins-Traub. Deste apenas veremos o metodo
de Laguerre, os outros podem ser encontrados no livro A. Ralston e P. Rabinowitz, A first
course in numerical analysis, 1978, ou Householder A.S., The numerical treatment of a single
nonlinear equation, McGraw-Hill, 1970. O problema de zeros de um polinomio ainda pode ser
tratado de forma matricial, calculando os autovalores de uma matriz associada ao polinomio,
chamada de matriz companheira.
Devemos ainda observar que se zj e um zero de p(z) pelo teorema do resto podemos escrever,
p(z) = (z zj )(bn1 z n1 + bn2 z n2 + + b0 ) + Rj

(27)

se Rj = 0 o polinomio q(z) = bn1 z n1 + bn2 z n2 + + b0 ) e o polinomio deflatado de grau


n 1 isto e o polinomio cujos zeros sao identicos aos restantes n 1 zeros de p(z). Assim
uma vez que encontramos zj , uma raz de p(z) por algum metodo de encontrar raz, atraves do
algoritmo de Horner (divisao sintetica), podemos encontrar o polinomio deflatado q(z). Para

169

encontrarmos os zeros adicionais aplicamos um metodo para encontrar uma raz de q(z) e
encontrarmos um novo polinomio deflatado de q(z) e assim sucessivamente. Este procedimento
e chamado de deflac
ao. Ainda notamos que para termos mais precisao nestas razes, cada raz
de um polinomio deflatado encontrada pode servir de chute inicial para algum metodo iterativo,
como por exemplo o de Newton-Raphson.

8.2.1

O m
etodo de Newton para polin
omios

Para usarmos o procedimento de Newton Raphson para localizar zeros de um polinomio P (x)
e necessario avaliar seu valor em cada xi . Para o algoritmo ser computacionalmente eficiente,
podemos calcular estes valores, a cada iteracao, usando o algoritmo de Horner. Por este procedimento fazemos uma decomposicao do polinomio
P (x) = an xn + an1 xn1 + ... + a0

(28)

do tipo
P (x) =
(x x0 )Q(x) + b0
onde
Q(x) = bn xn1 + bn1 xn2 + ... + b2 x + b1

(29)
(30)

assim se fizermos x = x0 em (29) temos que P (x0 ) = b0 , alem disto se derivamos (29) temos,
P 0 (x) = Q(x) + (x x0 )Q0 (x)

(31)

Agora fazendo x = x0 em (31) vemos que P 0 (x0 ) = Q(x0 ). Assim aplicamos o metodo de
Horner, agora em Q(x) e obtemos o valor de Q(x0 ) = P 0 (x0 ).
O algoritmo de Horner e dado por:
ALGORITMO 8 (Horner) Para calcular o polinomio
P (x) = an xn + an1 xn1 + ... + a1 x + a0
E e sua derivada em x0 ;
ENTRADA Grau n; Coeficientes a0 , a1 , ..., an ; x0 .
SAIDA y = P (x0 ); z = P 0 (x0 ).
Passo 1 Faca
y = an ; (calcula bn para P)
z = an ; (calcula bn1 para Q)
Passo 2 Para j = n 1, n 2, ..., 1

170

Faca

Faca y = x0 y + aj ; (Calcula bj para P.)


z = x0 z + y. (Calcula bj1 para Q.

Passo 3 Faca y = x0 y + a0 . (Calcula b0 para P.)

Passo 4 SAIDA
(y, z);
STOP.
A seguir, vamos exemplificar este procedimento.
Exemplo 55 Encontre uma aproximacao de um zero de
P (x) = 2x4 3x2 + 3x 4
com chuteinicial x0 = 2 e usando os metodos de Newton para encontrar a raz e o de Horner
para avaliar P (xi ) e P 0 (xi ).
Fazendo a primeira iteracao com x0 = 2,
2
-2 2
2

0
-4
-8

-3
5
21

3
-7
-49

-4 Coef. de P (x)
10 = P (2)
= Q(2) = P 0 (2)

Note que do esquema acima temos que


Q(x) = 2x3 4x2 + 5x 7

P 0 (2) = Q(2)

assim,
P (x0 )
x1 = x0 0
= 2
P (x0 )

10
49


1.796

Repetindo o processo, agora para x1 temos,


2
-1.796 2
2

0
-3.592
-7.184

-3
3.451
16.353

3
-3.197
-32.565

-4
1.7242

assim,
P (x1 )
x2 = x1 0
= 1.7946
P (x1 )

1.742
32.565


1.7425

x2 , x3 , etc... sao calculados da mesma forma.


O zero deste problema com cinco casas decimais e 1.73896.

171

Coef. de P (x)
= P (1.796)
= P 0 (1.796)

Note que o polinomio chamado de Q depende da aproximacao que esta sendo usada e
troca a cada iteracao. Se a n-esima iteracao, xN , no procedimento de Newton Raphson e
aproximadamente um zero de P , entao
P (x) = (x xN )Q(x) + b0 = (x xN )Q(x) + P (xN ) (x xN )Q(x);
logo x xN e uma aproximacao de um fator de P . Chamando x1 = xN uma aproximacao de
um zero de P e Q1 (x) um fator aproximado, temos:
P (x) (x x1 )Q1 (x),
agora, podemos encontrar uma aproximacao de uma outra raz de P aplicando NR sobre
Q1 (x).Se P tem grau n, com n zeros reais, este procedimento e aplicado repetidamente, encontrando assim (n 2) aproximacoes de n 2 zeros de P e um fator quadratico Qn2 que sera
resolvido pos Baskara. Este procedimento e chamado de deflacao.
Obs: Para melhorar a deflacao cada zero aproximado e usado como chutee o metodo de
NR, com este chute e aplicado novamente sobre P .
Exemplo 56 Vamos usar o metodo de Newton Raphson e deflacao para encontrar todas as
razes do seguinte polinomio:
p(x) = 10x4 + 11x3 + 20x2 + 45x 12
Podemos ver que as razes deste polinomio estao localizados em um anel, com raios:
R=1+

45
= 5.5
10

r=

1
= 0.210526
1 + 45
12

pela regra da troca de sinal podemos afirmar que possui exatamente uma raz real positiva e 3 ou
1 raz real negativa. Ainda como 202 (45)(11), podemos afirmar que temos um par complexo.
Assim temos 1 raz real positiva, 1 real negativa e um par complexo conjugado.
Para iniciarmos o metodo de Newton, sabemos que existe uma raz real entre 0.2 e 5.5.
Como p(0.2) < 0 e p(1) > 0, vamos escolher x0 = 0.5.
Repetindo o processo, agora para x1 temos,
0.5

10
10
10

11
16
21

20
28
38.5

x1 = 0.5

0.276358

10
10
10

11
13.763578
16.527157

45
59
78.25

-12 Coef. de P (x)


17.5 = P (0.5)
= P 0 (0.5)

17.5
= 0.276357827
78.25

20
23.803673
28.371082

x2 = 0.276358

45
51.578331
59.418902

-12
Coef. de P (x)
2.254076 = P (0.276358)
= P 0 (0.276358)

2.254076
= 0.238422
59.418902

172

0.238422

10
10
10

11
13.384225
15.768450

20
23.191100
26.950654

x3 = 0.238422
10
0.23759172 10
10

11
13.375917
15.751834

45
50.529280
56.954922

-12
Coef. de P (x)
0.047317 = P (0.238422)
= P 0 (0.238422)

0.0473172
= 0.237592
56.954922

20
23.178007
26.920512

45
50.506902
56.902993

-12
Coef. de P (x)
0.0000215768 = P (0.237591)
= P 0 (0.237591)

0.0000215768
= 0.23759134
56.90299317
Desta forma aceitamos a primeira raz como 0.237591, fatorando usando o algoritmo de
Horner temos:
x4 = 0.23759172

10
0.23759134 10

11
13.375913

20
23.178001

45
50.506892

-12
4.481012

Desta forma pelo teorema do resto temos que


p(x) = (x 0.237591)(10x3 + 13.375913x2 + 23.178001x + 50.506892) + 4.48 1012
Desprezando o resto obtemos uma fatoracao para p(x). Sabemos que o polinomio p(x) possui
uma raz real negativa entre 5.5 e 0.2, assim aplicando o metodo anterior sobre o polin
omio
q(x) e notando que q(0) = 850.506892 , q(1) = 30.704804, q(2) = 22.345456, q(1.5) =
12.0857, vemos que a raz esta entre 2 e 1.5. Vamos escolher x0 = 1.75. Assim seguindo
procedimento semelhante ao anterior obtemos:
x0 = 1.75
x1 = 1.7106575
x2 = 1.7097381
x3 = 1.7097376
x4 = 1.7097376
assumimos a raz como x4 , assim fatoramos novamente:
p(x) = (x 0.237591)(x + 1.7097376)g(x) + r
os coeficientes de g(x) sao obtidos pelo algoritmo de Horner como:
10
-1.7097376 10

13.375913
-3.721464

23.178001
29.540727

50.506892
-7.545 1025

Desta forma temos que o resto e 7.545 1025


g(x) = 10x2 3.721464x + 29.540727
cujas razes sao 0.186073 1.708640i. ou seja:
p(x) (x 0.237591)(x + 1.7097376)(x 0.186073 + 1.708640i)(x 0.186073 1.708640i)

173

8.2.2

O M
etodo de Bairstow

Vamos observar que se zj e um zero de p(z) pelo teorema do resto podemos escrever,
p(z) = (z zj )(bn1 z n1 + bn2 z n2 + + b0 ) + Rj

(32)

se Rj = 0 o polinomio q(z) = bn1 z n1 +bn2 z n2 + +b0 ) e o polinomio deflatado de grau n1


isto e o polinomio cujos zeros sao identicos aos restantes n1 zeros de p(z). Assim uma vez que
encontramos zj , uma raz de p(z) por algum metodo de encontrar raz, atraves do algoritmo de
Horner (divisao sintetica), podemos encontrar o polinomio deflatado q(z). Para encontrarmos
os zeros adicionais aplicamos um metodo para encontrar uma raz de q(z) e encontaramos um
novo polinomio deflatado de q(z) e assim sucessivamente. Este procedimento e chamado de
deflac
ao. Devemos ainda notar que para termos mais precisao nestas razes, cada raz de um
polinomio deflatado encontrada pode servir de chute inicial para algum metodo iterativo, como
por exemplo o de Newton-Raphson.
Ainda temos que observar que se p(z) e um polinomio real e nos precisamos encontrar razes
complexas, elas aparecem aos pares conjugados, isto e, zj = xj + iyj e zj = xj iyj e assim
(z zj )(z zj ) = z 2 + pj z + qj ,

onde pj = 2xj e qj = x2j + yj2

e um fator de p(z). Assim como estamos interessados em usar aritmetica real, nos precisamos
desenvolver um algoritmo tipo o de Horner para dividirmos por um fator quadratico, isto e:
p(z) =(z 2 + pj z + qj )(bn2 z n2 + bn3 z n3 + + b0 ) + b1 (z + pj ) + b2
{z
}
|
n

resto
n2

n1

=bn2 z + (bn3 + pj bn2 )z


+ (bn4 + pj bn3 + qj bn2 )z
+ (b1 + pj b0 + qj b1 )z + (b2 + pj b1 + qj b0 )

+ ...

(33)

Comparando as equacoes (26) e (26), vemos que os coeficientes bk sao dados por:

bn2 = an
bn3 = an1 pj bn2

bk
= ak+2 pj bk+1 qj bk+2

(34)
k = n 4, . . . , 0, 1, 2

O resto tambem pode ser escrito na forma Rz + S onde:


R =b1 = a1 pj b0 qb1
S =b2 + pj b1 = a0 pj b1 qj b0 + pj b1 = a0 qj b0

(35)

Desta forma para z 2 + pj z + qj ser um fator de p(z) devemos ter R(pj , qj ) = S(pj , qj ) = 0.
Neste caso o quociente polinomial e um polinomio deflatado de grau n 2.

174

Descric
ao do m
etodo de Bairstow
No caso de polinomios reais, sabemos que zeros complexos ocorrem aos pares conjugados.
Assim, ao inves de procurarmos um zero por vez, podemos procurar por pares de zeros os quais
geram um fator real quadratico. Esta e a ideia basica da iteracao de Bairstow, a qual assume
um bom chute inicial. Assim queremos encontrar p e q de forma que as funcoes R(p, q) =
S(p, q) = 0 definidas por (35). Note que b1 e b0 tambem sao funcoes de p e q. Para resolver
estas equacoes usando um metodo iterativo,onde assumimos uma aproximacao inicial p0 e q0 ,
precisamos encontrar aproximacoes pi+1 e qi+1 de forma que pi+1 = pi + 4pi e qi+1 = qi + 4qi
de forma que R(pi+1 , qi+1 ) = S(pi+1 , qi+1 ) = 0 ou o mais proximo de zero possvel.
Agora, desejamos que as trocas 4pi e 4qi que irao resultar em pi+1 e qi+1 . Consequentemente devemos expandir as duas equacoes
R(pi + 4pi , qi + 4qi ) = 0
S(pi + 4pi , qi + 4qi ) = 0

(36)

usando expansao em serie de Taylor em torno de (pi , qi ) e considerando apenas potencias de


4pi e 4qi lineares, obtemos duas equacoes lineares aproximadas para 4pi e 4qi ,





R
R
4pi +
4qi = 0
R(pi , qi ) +
p i
q i
 
 
S
S
S(pi , qi ) +
4pi +
4qi = 0
p i
q i

(37)

O sub-ndice i denota que as derivadas parciais sao calculadas no ponto pi , qi . Uma vez que as
correcoes forem encontradas a iteracao pode ser repetida ate R e S serem suficientemente perto
de zero. Este metodo e o metodo de Newton Raphson para duas variaveis. Podemos isolar pi+1
e qi+1

pi+1

qi+1



S
R
1
R
S
=pi
D
q
q p = pi
q = qi


1
R
S
=qi
S
R
D
p
p p = pi
q = qi

(38)

onde
R
p
D = R
q

S
p
S
p
q

= pi
q = qi

Agora usando (35)podemos escrever

175

R
b0
b1
=p
q
b0
p
p
p
R
b0
b1
=p
q
b1
q
q
q
S
b0
=q
p
p
S
b2
b1
=p
+p
q
q
q
de (33) temos:

(39)

bk
bk+1
bk+2
= bk+1 p
q
p
p
p
bn2 bn1
=
=0
p
p

k = n 3, . . . , 0, 1

(40)
bk
bk+1
bk+2
= bk+2 p
q
k = n 4, . . . , 0, 1, 2
q
q
q
bn3 bn2
=
=0
q
q
Se definirmos dk pela relacao de recorrencia
dk = bk+1 pdk+1 qdk+2
dn2 =dn1 = 0

k = n 3, . . . , 0, 1

(41)

entao segue de (40) que


bk
= dk e
p
e finalmente que

bk1
= dk ,
q

k = n 3, . . . , 0, 1

R
R
S
S
= d1 ,
= d0 ,
= qd0 ,
= d1 + pd0 .
p
q
p
q
Desta forma as equacoes (38) que
1
[b1 (d1 + pi d0 ) (b2 + pi b1 )d0 ]
D
1
qi+1 =qi [(b2 + pi b1 )d1 + d0 b1 qi ]
D
onde
D =d21 + pi d0 d1 + qi d20 .

(42)

(43)

pi+1 =pi

176

(44)

Exemplo 57 Use a iteracao de Bairstow para encontrar um fator quadratico de z 3 z 1


comecando com p0 = q0 = 1.
Vamos arranjar os calculos na forma:
an
an1
..
.
..
.
..
.
..
.
a0

(pi , qi )
bn2
..
.
..
.
..
.

dn3
..
.
..
.

b0

d1

d0

b1
b2

usando (34) e (41) pra calcular as u


ltimas duas colunas. Para este problema temos, usando
as equacoes dadas em (44),

4 2
(p0 , q0 ) (1, 1)
,
(p1 , q1 )
3 3
1
1
1
1
1
1
8
0
1
2
0
43
3
1
1
1
1
9
7
1
1
1
27
e finalmente p2 = 1.32246, q3 = 0.7544, onde os valores reais sao p = 1.3247 e q = 0.7549.
Para encontrarmos as razes devemos usar a formula de Baskara para resolver z 2 + pz + q = 0.
Quando o metodo de Bairstow converge, possui como caracterstica convergencia rapida
como o metodo de Newton-Raphson. Porem, como usual em metodos para resolver equacoes
nao lineares simultaneas, convergencia requer uma boa aproximacao inicial. A vantagem e
poder encontrar razes complexas, mesmo que o valor de partida seja um n
umero real.

8.2.3

O M
etodo de Laguerre

O metodo de Laguerre e um algoritmo desenvolvido para encontrar raz de um polinomio. Este


metodo possui uma otima caracterstica, a convergencia e garantida, independendo do valor
inicial. Este algoritmo aproxima razes reais ou complexas e, no caso da raz procurada ser
simples, possui ordem de convergencia igual a 3. Aqui, vamos dar uma ideia deste metodo.
Para isto vamos lembrar que pelo teorema fundamental da algebra, todo o polinomio p(z) pode
ser fatorado atraves de suas razes, ou
p(z) = an (z z1 )(z z2 )...(z zn ).

(45)

Da igualdade acima, aplicando a funcao logaritmo dos dois lados da igualdades, temos
ln |p(z)| = ln |an | + ln |(z z1 )| + ln |(z z2 )| + ... + ln |(z zn )|.

177

(46)

Usando a equacao acima vamos definir as funcoes A(x),


A(z) =

1
1
1
d
ln |p(z)| =
+
+ ... +
,
dz
(z z1 ) (z z2 )
(z zn )

(47)

ou de outra forma,
d
p0 (z)
A(z) =
ln |p(z)| =
dz
p(z)

(48)

d2
1
1
1
B(z) = 2 ln |p(z)| =
+
+ ... +
,
2
2
dz
(z z1 )
(z z2 )
(z zn )2

(49)

ou de outra forma,


d2
d p0 (z)
p(z)p00 (z) (p0 (z))2
p00 (z)
2
B(z) = 2 ln |p(z)| =
=
=
A
(z)

dz
dz p(z)
p2 (z)
p(z)

(50)

Agora, vamos supor estamos procurando a raz z1 e que a diferenca entre esta raz e a nossa
estimativa z e um n
umero complexo a, isto e a = z z1 . Vamos ainda supor que todas as outras
razes se afastem de nossa estimativa z pelo menos b isto e |b| < |z zi |, i = 2, 3, ..., n, como
|b| > |a|. Assim, podemos estimar o valor de a substituindo as estimativas feitas nas equacoes
(47) e (49), ou
A(z)

1 n1
+
,
a
b

(51)

B(z)

1
n1
+ 2 ,
2
a
b

(52)

O algoritmo de Laguerre, aproxima o valor de a, resolvendo o sistema nao linear, para a e b,


dado pelas equacoes (51). A solucao deste sistema e dada por,
a=

n
p
,
A(z) (n 1)(nB(z) A2 (z))

(53)

e assim o proximo z e calculado como


z = z + a.

(54)

Devemos observar que a aritmetica empregada neste metodo e complexa. A ordem de convergencia deste metodo e 3 se z1 e uma raz simples. Existem modificacoes deste algoritmo para
o caso de raz m
ultipla. O algoritmo e feito usando para A(z) e B(z) as relacoes (48), (48) e a
formula (54), onde a e calculado como (53)

178

Algortmo de Laguerre
Escolhemos um ponto de partida z0
Para k = 0, 1, 2, ...
Calculamos A(zk ) como,
A(zk ) =

p0 (zk )
p(zk )

Calculamos B(zk como,


B(zk ) = A2 (zk )

p00 (zk )
p(zk )

Calcule ak como,
ak =

n
p
A(zk ) (n 1)(nB(zk ) A2 (zk ))

onde no denominador, para evitarmos erro pela diminuicao de n


umeros muito proximos e consequente erro de arredondamento, devemos escolher o sinal + ou de
forma que o denominador possua o maior valor absoluto.
Faca
zk+1 = zk + ak .
Repetimos o procedimento ate o erro absoluto (ou relativo) ser suficientemente pequeno,
ou depois de exceder um n
umero pre determinado de iteracoes.
A maior vantagem do metodo de Laguerre e que sua convergencia e quase sempre garantida
para algumas razes do polinomio, nao importando qual o valor escolhido para z0 e, alem disto,
aproxima tanto valores de razes reais quanto complexas. Ele e usado em pacotes computacionais
como, Numerical Recipes na sub-rotina zroots e o metodo de Laguerre modificado e usado pelo
pacote NAG F77 library na sub-rotina C02AFF. Sobre a famlia de metodos de Laguerre ver o
artigo: Ljiljana D. Petkovic, Miodrag S. Petkovic e Dragan Zivkovic, Hansen-Patricks Family
IS of Laguerres Type, Novi Sad J. Math, Vol 331, pp 109-115, 2003.
Exemplo 58 Vamos considerar o polinomio P (z) = 4x3 + 3z 2 + 2z + 1. Neste caso n = 3.
Vamos escolher
1. z0 = 1
A(1) = 4.0000000000
B(1) = 7.0000000000
Calculandop
C1 = A + p2(3B A2 ) = 0.8377223398
C2 = A 2(3B A2 ) = 7.1622776607

179

z1 = z0 + n/C2 = 0.5811388300
2. z1 = 0.5811388300
A(0.5811388300) = 38.9736659610
B(0.5811388300) = 1639.6623695156
Calculandop
C1 = A + p2(3B A2 ) = 1639.6623695156
C2 = A 2(3B A2 ) = 43.4889373220
z2 = z1 + n/C1 = 0.6058431463
3. z2 = 0.6058431463
A(0.6058431463) = 73747.0441427632
B(0.6058431463) = 5.4383991072 109
Calculandop
C1 = A + p2(3B A2 ) = 73742.4185458994
C2 = A 2(3B A2 ) = 221236.5068314258
z3 = z2 + n/C2 = 0.6058295861
4. z3 = 0.6058295861
A(0.6058295861) = 4.7182194357 1014
B(0.6058295861) = 2.2261594643 1029
Calculandop
C1 = A + p2(3B A2 ) = 1.4154658307 1015
C2 = A 2(3B A2 ) = 4.7182194357 1014
z4 = z3 + n/C1 = 0.6058295861
Agora vamos fazer z0 = 0
1. z0 = 0
A(1) = 2.0000000000
B(1) = 2.0000000000
Calculandop
C1 = A + p2(3B A2 ) = 2.0000000000 + 4.4721400000i
C2 = A 2(3B A2 ) = 2.0000000000 4.4721400000i

180

z1 = z0 + n/C1 = 0.2500000000 + 0.5590170000i


2. z1 = 0.2500000000 + 0.5590170000i
A(0.2500000000 + 0.5590170000i) = 4.0000000000
B(0.2500000000 + 0.5590170000i) = 16.0000000000 21.4663000000i
Calculandop
C1 = A + p2(3B A2 ) = 6.1936800000 6.3175200000i
C2 = A 2(3B A2 ) = 14.1937000000 + 6.3175200000i
z2 = z1 + n/C2 = 0.0735872000 + 0.6375370000i
3. z2 = 0.0735872000 + 0.6375370000i
A(0.0735872000 + 0.6375370000i) = 520.8960000000 + 272.4890000000i
B(0.0735872000 + 0.6375370000i) = 196952.0000000000 286081.0000000000i
Calculandop
C1 = A + p2(3B A2 ) = 523.2090000000 277.6130000000i
C2 = A 2(3B A2 ) = 1565.0000000000 + 822.5920000000i
z3 = z2 + n/C2 = 0.0720852000 + 0.6383270000i
4. z3 = 0.0720852000 + 0.6383270000i
A(0.0720852000 + 0.6383270000i) = 6.1144273889 108 + 1.1804919396 109
B(0.0720852000 + 0.6383270000i) = 1.0196989997 1018 1.4436064535 1018 i
Calculandop
C1 = A + p2(3B A2 ) = 6.1144274120 108 1.1804919447 109 i
C2 = A 2(3B A2 ) = 1.8343282189 109 + 3.5414758241 109 i
z4 = z3 + n/C2 = 0.0720852000 + 0.6383270000i

8.3

Soluc
ao Num
erica de Sistemas de Equa
co
es N
ao Lineares

A solucao de sistemas nao lineares de equacoes deve, sempre que possvel ser evitado. Isto as
vezes e feito atraves de uma linearizacao do problema, isto e o sistema nao linear e aproximado
localmente por um sistema linear. Quando esta solucao aproximada nao satisfaz, devemos
atacar o problema de frente. Em geral os metodos para resolucao de sistemas nao lineares,
sao adaptacoes dos metodos usados na resolucao de uma equacao nao linear. Aqui iremos
apresentar a extensao do metodo de Newton e o metodo da secante aplicados na resolucao de
sistemas nao lineares.

181

8.3.1

O m
etodo de Newton

Vamos considerar um sistema nao linear de equacoes descrito por:


f1 (x1 , x2 , ..., xn ) = 0
f2 (x1 , x2 , ..., xn ) = 0
..
..
.
.
fn (x1 , x2 , ..., xn ) = 0

(55)

onde cada funcao fi para i = 1, 2, ..., n esta definida de Rn R e X = (x1 , x2 , ..., xn )T e um


vetor definido em Rn . Se notarmos a funcao F(x) = (f1 (x), ..., fn (x))T , onde F : Rn Rn ,
podemos reescrever o sistema (55) como:
F(x) = 0.

(56)

No caso unidimensional, o metodo de Newton escolhe uma funcao (x) de forma que o metodo
do ponto fixo definido por
g(x) = x (x)f (x)
possua uma convergencia quadratica. Neste caso a escolha e 1/f 0 (x), se f 0 (x) 6= 0. No caso
matricial, devemos escolher uma matriz

a11 (x) a12 (x) ... a1n (x)


a21 (x) a22 (x) ... a2n (x)

A(x) =

..
..
..
.
.

.
.
.
.
a41 (x) a42 (x) ... a4n (x)
de forma que
G(x) = x A1 (x)F(x)
possua convergencia quadratica. Podemos mostrar, que esta escolha recai sobre o Jacobiano de
F(X). Isto e podemos provar que:
Se p uma solucao de G(x) = x e existe um n
umero > 0 de forma que:
, para i = 1, 2, .., n e j = 1, 2, ..., n, e contnua uma vizinhanca N =
1. Se gxi (x)
j
{x/||x p|| < };
2

gi (x)
2. Se (x
, e contnua e | 2 gi (x)/(xj xk )| M para algum M constante
j xk )
sempre que x N , para cada i = 1, 2, .., n, j = 1, 2, ..., n e k = 1, 2, ..., n;

3. Se

gi (p)
xk

= 0, para i = 1, 2, .., n, k = 1, 2, .., n.

Entao existe um n
umero de forma que a sequencia gerada por x(k) = G(x(k1) )
converge quadraticamente para p para qualquer escolha de x(0) , desde que ||x(0)
Alem disto,
p|| < .
||x(k) p||

n2 M (k1)
||x
p||2 , para cada k 1.
2

182

Usando este teorema, podemos mostrar que A(x) = J(F(x)) onde J(F(x)) e o Jacobiano de
F(x) definido como:

f1
f1
f1
(x)
(x)
...
(x)
x1
x2
xn
f2 (x) f2 (x) ... f2 (x)

x1
x2
xn
(57)
J(F(x)) =

.
.
.
.
..
..
..
..

fn
fn
n
(x) f
(x) ... x
(x)
x1
x2
n
Desta forma, o metodo de Newton para sistemas e definido por:
x(k) = G(x(k1) ) = x(k1) J1 (x(k1) )F(x(k1) ).

(58)

Este metodo e o Metodo de Newton para sistemas nao lineares e em geral possui convergencia
quadratica, se o valor inicial for suficientemente proximo da solucao e se J1 (p) existe. A
grande fragilidade do metodo de Newton esta na necessidade de calcular o Jacobiano e ainda
inverte-lo. Na pratica a inversa do Jacobiano e evitada separando esta operacao em dois passos:
1. Encontrar um vetor Y que satisfaca o sistema linear J(x( k 1))Y = F(x( k 1)).
2. Calcular x(k) como sendo x(k) = x(k1) + Y.
Exemplo 59 Vamos considerar o seguinte sistema nao

3x cos(yz)

x2 81(y + 0.1)2 + sin(z)

xy
e
+ 20z

linear de equacoes:
=

1
2

= 1.06
=

103
3

Para aplicarmos o metodo de Newton, vamos considerar a funcao F (x, y, z),

1
3x cos(yz) 2

F (x, y, z) = x2 81(y + 0.1)2 + sin(z) + 1.06 ,

10

3
exy + 20z
3
com Jacobiano dado por:

3
z sin(yz)
y sin(yz)
162(0.1 + y) cos(z)
J(F (x, y, z)) = 2x
xy
e y
exy x
20
Se escolhemos o vetor inicial Y0 = (0.1 , 0.1, 0.1)T entao

1.19995
3
0.000999983 0.000999983
0.2
32.4
0.995004
F (Y0 ) = 2.26983 ,
J(F (Y0 )) =
8.4623
0.099005 0.099005
20

183

Sabemos que Yk = Yk1 (J(F (Yk1 ))) F (Yk1 ), ou Yk = Yk1 G, onde G e um vetor
encontrado pela resolucao do sistema linear J(Y0 )G = F (Y0 ), isto e:

3
0.000999983 0.000999983
g1
1.19995

0.2
32.4
0.995004 g2 = 2.26983
0.099005 0.099005
20
g3
8.4623
Resolvendo este sistema por Crammer temos:
g1 =

777.229
det1
=
= 0.39987
det
1943.71

det1
156.533
=
= 0.0805332
det
1943.71
det1
819.312
g3 =
=
= 0.42152
det
1943.71

g2 =

onde:


1.19995 0.000999983 0.000999983


32.4
0.995004 = 777.229
det1 = 2.26983

8.46203
0.099005
20



3
1.19995 0.000999983

0.2
2.26983
0.995004 = 156.533
det2 =
0.099005 8.46203

20



3
0.000999983 1.19995

0.2
32.4
2.26983 = 819.312
det3 =
0.099005 0.099005
8.46203




3
0.000999983
0.000999983



0.2
32.4
0.995004 = 1943.71
det =
0.099005 0.099005

20
Desta forma, temos

0.49987
Y1 = Y0 G = 0.0194668
0.52152
Seguindo o mesmo procedimento temos:

0.1
0.49987
0.500014
Y0 = 0.1 , Y1 = 0.0194668 , Y2 = 0.00158859 ,
0.1
0.52152
0.523557

0.5
0.5
Y3 = 0.0000124448 , Y4 = 7.757857 1010 ...
0.523599
0.523598

184

EXERCCIOS
1. Encontre a raz positiva de f (x) = x3 ex .
(a) pelo metodo da bisseccao
(b) pelo metodo de Newton
(c) pelo metodo da secante
R: Esta funcao possui apenas um zero positivo x = 0.77288.
2. Encontre o valor da raz c
ubica de 75 com precisao de seis casas decimais, usando o
metodo de Newton.
(R: 4.217163).
3. Encontre uma raz real de f (x) = x3 3.23x2 5.54x + 9.84 usando o metodo da secante
com x0 = 0.9 e x1 = 1.0.
R: 1.23.
4. A funcao f (x) = x2 2ex x + e2x possui uma raz real m
ultipla. Encontre esta raz
usando o metodo de Newton modificado com x0 = 1. Tente tambem aplicar o metodo
de Newton tradicional com o mesmo chute inicial e compare os o n
umero de iteracoes
necessarias para obter a mesma precisao.
R: 0.567143
5. Encontre as primeiras cinco razes positivas de f (x) = tan x2x. Cuidado, pois a tangente
tende para mais e menos infinito muitas vezes no domnio que inclui estas razes.
R: 1.16556, 4.60422, 7.78988, 10.94994, 14.10172.
6. Encontre todas as razes de f (x) = x4 7.223x3 + 13.447x2 0.672x 10.223.
R: -0.713967, 1.57251, 2.17178, 4.19268.
7. Encontre aproximacoes com precisao de 104 de todos os zeros reais de f (x) = x3 2x2 5
usando o metodo de Muller.
R: 2.69065, 0.345324 1.31873i.
8. P (x) = 10x3 8.3x2 + 2.295x 0.21141 = 0 possui uma raz x = 0.29. Use o metodo de
Newton com aproximacao inicial x0 = 0.28 para tentar encontrar a raz. O que acontece?
Problemas Computacionais
Bissecc
ao
1. Escreva um programa teste do algoritmo da bisseccao e teste com:
(a) x1 tan x, [0, /2]

185

(b) x1 2x , [0, 1]
(c) (x3 + 4x2 + 3x + 5)/(2x3 9x2 + 18x 2), [0,4]
2. Encontre a raz de
x8 36x7 + 546x6 4536x5 + 22449x4 67284x3 + 118124x2 109584x + 40320 = 0
no intervalo [5.5; 6.5]. Troque -36 por -36.001 e repita.
Newton
1. Escreva um programa para resolver a equacao x = tan x. Encontre as razes proximas de
4.5 e 7.7.
2. A equacao 2x4 + 24x3 + 61x2 16x + 1 = 0 possui dois zeros perto de 0, 1. Encontre-os
pelo metodo de Newton.
3. Use o metodo de Newton com precisao dupla, para encontrar o zero negativo de f (x) =
ex 1.5 tan1 x. (x0 = 7)
4. No exerccio anterior, investigue a sensibilidade da raz para perturbacoes no termo constante.
5. Programe o metodo de Newton com aritmetica complexa e teste para:
(a) f (z) = z + sin z 3, z0 = 2 i
(b) f (z) = z 4 + z 2 + 2 + 3i, z0 = 1
secante
1. Escreva um subprograma para o metodo da secante, assumindo que dois valores iniciais
sejam dados. Teste esta rotina em:
(a) sin(x/2) 1
(b) ex tan x
(c) x3 12x2 + 3x + 1
2. Use expansoes em Taylor para f (x + h) e f (x + k), derive a seguinte aproximacao para
f 0 (x):
f 0 (x) =

k 2 f (x + h) h2 f (x + k) + (h2 k 2 )f (x)
(k h)kh

3. Programe e teste um refinamento do metodo da secante que usa a aproximacao de f 0 (x)


dada no exerccio acima. Isto e use esta aproximacao na formula de Newton. Tres pontos
de inicializacao sao necessarios, os dois primeiros arbitrarios e o terceiro calculado pelo
metodo da secante.

186

Zeros de Polin
omios
1. Escreva um programa cuja entrada e os coeficientes de um polinomio p e um ponto
especfico z0 , e que produza como sada os valores de p(z0 ), p0 (z0 ) e p00 (z0 ) (use Horner).
Teste o algortimo calculando p(4) para p(z) = 3z 5 7z 4 5z 3 + z 2 8z + 2.
2. Escreva uma rotina computacional para o metodo de Newton+Horner com deflacao para
encontrar todas as razes de um polinomio. Teste a rotina para
p(x) = x8 36x7 +546x6 4536x5 +22449x4 67284x3 +118124x2 109584x+40320 = 0
As razes corretas sao 1, 2, 3, 4, 5, 6, 7, 8. A seguir resolva a mesma equacao fazendo o
coeficiente de x7 como 37. Observe como uma perturbacao pequena pode ocasionar uma
grande troca nas razes. Assim as razes sao funcoes instaveis dos coeficientes.

187

Captulo 9
Solu
co
es Num
ericas de Equa
co
es
Diferencias Ordin
arias
9.1

Introduc
ao

Existe uma enorme variedade de aproximacoes numericas para a solucao de ED. Nao linearidades em ED e condicoes de contorno ou condicoes iniciais, muitas vezes requerem modificacoes
nestas tecnicas numericas a serem empregadas na solucao. Muitas vezes tecnicas numericas
podem ser escolhidas sem realmente olharmos para a equacao diferencial, o que e muito contrastante com ao problema de encontrar uma solucao analtica exata para uma ED. Ate problemas
lineares podem algumas vezes apresentar obstaculos enormes para encontrar uma tecnica aceitavel para encontrar solucao analtica. Alem disto algumas EDO e muitas EDP sao virtualmente
impossveis de serem resolvidas de forma analticas. Muitas vezes e possvel aproximar solucoes para estes problemas, mas a precisao da aproximacao raramente podem ser propriamente
avaliadas.
Tecnicas numericas para EDO sao muito poderosas e podem ser aplicados em uma grande
variedade de problemas. Mas e preciso ter em mente que existem dificuldades inerentes a elas
mesmas, como iremos ver mais adiante. Alem disto, como tecnicas numericas sao estas ferramentas tao poderosas e flexveis, e natural que sejam aplicadas na resolucao de equacoes
extremamente complexas e muitas vezes mal comportadas. Em tais circunstancias, e inteiramente razoavel esperar que dificuldades inerentes ao problema, que esta sendo resolvido, sejam
manifestadas de uma forma indesejavel na aplicacao destes metodos tecnicas numericos. Desta
forma tecnicas numericas para EDO nunca devem ser consideradas como uma prova infalvel,
e seus resultados nao devem ser aceitos como corretos sem um cuidadoso exame para cada
problema importante.
Vamos agora identificar duas grandes categorias nas quais os problemas envolvendo ED
devem estar envolvidos. Estas duas categorias sao chamadas de problemas de valor inicial e
problemas de valor de contorno. Problemas de valor inicial sao aqueles para os quais condicoes
sao especificadas apenas em um valor da variavel independente. Estas condicoes sao chamadas
de condicoes iniciais. Por simplicidade, muitas vezes dizemos que este valor e o zero. Um
problema tpico de condicao inicial e dado por:

188

d2 y
dy
+ B + Cy = g(t),
2
dt
dt

dy
(0) = V0
dt

y(0) = y0 ,

(1)

Este problema poderia descrever a resposta forcada de um oscilador harmonico simples com
o tempo.
Problemas de condicao de contorno sao aqueles para os quais as condicoes sao especificadas
em dois valores distintos da variavel independente. Um problema tpico de valor de contorno
poderia ter a forma,
d2 y
dy
+ Ey = h(x),
+D
2
dx
dx

y(0) = y0 ,

y(L) = yl

(2)

Este problema poderia descrever a distribuicao de temperatura em estado estacionario em


um problema unidimensional de transferencia de calor com temperatura y0 na extremidade
x = 0 e yl em x = L.

9.2

Problemas de Valor Inicial

Qualquer problema de valor inicial pode ser representado como um conjunto de uma ou mais
EDO de primeira ordem, cada uma com uma condicao inicial. Por exemplo, o problema do
oscilador harmonico simples descrito por,
d2 y
dy
A 2 + B + Cy = g(t),
dt
dt

y(0) = y0 ,

dy
(0) = V0
dt

pode ser reescrito com a mudanca de variaveis z =


dy
=z
dt
dz
B
C
= z y + g(t)
dt
A
A

dy
,
dt

(3)

como

(4)

com as condicoes iniciais:


y(0) = y0
z(0) = V0

(5)

Para qualquer EDO de ordem n pode similarmente ser reduzidos a um sistema de n EDO
de primeira ordem acopladas. Assim neste captulo vamos estudar:

189

Metodos para encontrar a solucao aproximada y(t) para problemas da forma:


dy
dt

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

atb

Extensao destes metodos para resolucao aproximada do sistema de EDO de primeira


ordem,
dy1
dt
dy2
dt

..
.

= f1 (t, y1 , y2 , ..., yn )
= f2 (t, y1 , y2 , ..., yn
..
.

dyn
dt

= fn (t, y1 , y2 , ..., yn )

(6)

para a t b e sujeito a`s condicoes iniciais:


y1 (a) = 1 ,

y2 (a) = 2 ,

... , y3 (a) = 3

(7)

Relacao entre um problema de valor inicial de ordem n e um sistema de EDO de primeira


ordem.

9.3

Teoria Elementar de Problemas de Valor Inicial

Definic
ao 1: Uma funcao f (t, y) e dita de Lipschitz na variavel y D <2 , se existe uma
constante, chamada de constante de Lipschitz, L > 0 de forma que
| f (t, y1 ) f (t, y1 )| L| y1 y2 |
sempre que (t, y1 ), (t, y2 ) D.
Definic
ao 2: Um conjunto D <2 e dito comvexo se sempre que (t, y1 ), (t, y2 ) D o ponto
((1 )t1 + t2 , (1 )y1 + y2 ) pertenca a` D para cada , 0 1.
Teorema 41 Suponha que f (t, y) esta definida num conjunto convexo D <2 . Se existe uma
constante L > 0 de forma que,


f

(t, y) L
y

para todo (t, y) D,

(8)

entao f satisfaz a condicao de Lipschitz sobre D na variavel y para a constante L. (Prova:


Teorema do valor medio)

190

Como proximo teorema iremos mostrar, que muitas vezes e de grande interesse determinar
quando a funcao envolvida em um problema de valor inicial satisfaz as condicoes de Lipschitz
na sua segunda variavel, e a condicao (8) e geralmente muito mais simples de aplicar que a
definicao. Deve ser notado que o teorema (41) nos da apenas condicoes suficientes para uma
condicao valer.
O proximo teorema e uma versao do teorema fundamental de existencia e unicidade para
EDO de primeira ordem.
Teorema 42 Sejam D = {(t, y)/a t b, y }, e f (t, y) uma funcao contnua
sobre D. Se f satisfaz a condicao de Lipschitz em D na variavel y, entao o problema de valor
inicial
dy
= f (t, y)
dt

atb
y(a) =

tem solucao u
nica y(t) para a t b. (Prova em livros de EDO).
Exemplo 60 Seja o problema de valor inicial:
y 0 = 1 + t sin(ty),

0 t 2,

y(0) = 0.

Deixando t constante e aplicando o TVM na funcao f (t, y) = 1 + t sin(ty) temos que para
y1 < y2 existe um n
umero , y1 < < y2 de forma que
t2 cos(t) =

f (t, y2 ) f (t, y1 )
f
(t, ) =
y
y2 y1

da, para todo y1 < y2 ,




|f (t, y2 ) f (t, y1 )| = |y2 y1 | t2 cos(t) 4 |y2 y1 |
assim, f satisfaz a condicao de Lipschtz na variavel y, com L = 4. Alem disto f (t, y) e contnua
quando 0 t 2 e y , logo, pelo teorema (42) possui solucao u
nica.
Nota 4 Para desenvolvermos metodos numericos de resolucao de problema de valor inicial,
gostaramos de saber quando um problema tem a propriedade de que pequenas perturbac
oes nos
dados produzam pequenas mudancas na solucao!
Definic
ao 3: O problema de valor inicial
dy
= f (t, y),
dt

a t b, y(a) =

(9)

e dito bem-posto (well-posed) se:


1. Possui solucao u
nica y(t)

191

2. > 0, existe uma constante positiva k de forma que sempre que |0 | < e |(t)| < ,
uma u
nica solucao do problema
dz
= f (t, y) + (t)
dt

a t ,

z(a) = + 0 ,

(10)

existe com, |z(t) y(t)| < k para todo a t b.


O problema dado pela equacao (10) e muitas vezes chamado de problema perturbado associado ao problema (9) Metodos numericos sempre estarao relacionados com a resolucao de
um problema perturbado, uma vez que qualquer erro introduzido na representacao ira resultar
em um problema deste tipo. A nao ser que o problema original seja bem posto, nao existe a
mnima razao para esperar que a solucao numerica de um problema perturbado ira se aproximar
da solucao do problema original. (falar de convergencia e estabilidade). O proximo teorema
estabelecera condicoes que asseguram que um problema de valor inicial e bem posto. Sua prova
pode ser encontrada em livros de EDO.
Teorema 43 Seja D = {(t, y)/a t b, y }. Se f e contnua e satisfaz a
condicao de Lipschtz na variavel y soble D, entao o problema de valor inicial
dy
= f (t, y)
dt

a t b,

y(a) = ,

e bem posto providenciando que a funcao e contnua.


Exemplo 61 Sejam D = {(t, y)/0 t 1, y } e o problema de valor inicial
dy
= y + t + 1
dt

0 t 1,

y(0) = 1,

(11)



como f (t, y) = y + t + 1 temos que f
= 1, logo pelo teorema 1 f (t, y) satisfaz a condic
ao
y
de Lipschtz com L = 1. Como f e contnua sobre D temos que o problema e bem posto.
Considere agora, o problema perturbado,
dz
= z + t + 1 +
dt

0 t 1,

z(0) = 1 + 0 ,

onde e 0 sao constantes. As solucoes dos problemas (11) e (12) sao


y(t) = et + t

z(t) = (1 + 0 )et + t +

respectivamente. Tambem e facil verificar que se || < e |0 | < , entao






|y(t) z(t)| = ( 0 )et |0 | + || 1 et 2
para todo t, o que concorda com o teorema acima.

192

(12)

9.4

Soluc
oes Num
ericas: M
etodos de Passo Smples

Vamos considerar o problema de valor inicial:


dy
= f (t, y)
dt
y(a) =

atb

(13)
(14)

Note que muitos destes problemas podem ser resolvidos de forma analtica, mas muitos
outros nao. Assim necessitamos desenvolver solucoes numericas para estes problemas.

9.4.1

O M
etodo de Euler

Euler desenvolveu este metodo em 1768 usando aproximacao em diferencas para frente (forward).
Aqui vamos desenvolve-lo pela serie de Taylor. O objetivo deste metodo e obter uma aproximacao para o PVI bem posto
dy
= f (t, y),
dt

a t b,

y(a) =

(15)

Na verdade uma aproximacao contnua da solucao y(t) nao sera obtida; Ao inves disto, serao
geradas em varios valores, chamados de pontos da malha, sobre o intervalo[a, b]. Uma vez que
a solucao e obtida neste ponto, ela podera ser obtida em outros pontos por interpolacao.
Primeiramente vamos dividir o intervalo [a, b] em um n
umero finito de sub-intervalos pela
introducao de uma malha (mesh ou grid points) a = t0 < t1 < ... < tN = b. Vamos considerar
que os pontos desta malha sao igualmente afastados entre si, apesar que se nao fossem nao
haveria dificuldade maior. Vamos chamar este espacamento de h = (b a)/N de tamanho do
passo assim

ti = a + ih,

para i = 0 : N

(16)

Vamos supor que y(t) seja a u


nica solucao de (15) e que possua derivada de segunda ordem
contnua em [a, b]. Agora, pelo teorema de Taylor, temos,

y(ti+1 ) = y(ti ) + (ti+1 ti )y 0 (ti+1 ) +

(ti+1 ti )2 00
y (i )
2

(17)

para algum n
umero i , com ti < i < ti+1 . Agora, como h = ti+1 ti temos que

y(ti+1 ) = y(ti ) + h y 0 (ti+1 ) +

h2 00
y (i )
2

(18)

e como y(t) satisfaz a EDO (15) temos que

193

y(ti+1 ) = y(ti ) + h f (t, y(ti )) +

h2 00
y (i )
2

(19)

O metodo de Euler despreza o termo de erro da expressao acima, construindo wi ' y(ti )
para cada i = 11, 2, ..., N , simplesmente retirando o termo de erro na equacao (19). Assim,
w0 =
wi+1 = wi +hf (ti , yi )

para i = 0 : N

(20)

A equacao (20) e chamada de equacao em diferenca associada ao metodo de Euler.


ALGORITMO DE EULER:
Dados: a, b, N, w0 =
Fazer: t0 = a, h = (ba)
N
Para: i = 1 : N
wi = wi1 + hf (ti1 , wi1 ))
ti = ti1 + h
Sada: i = 1 : N ,

(wi , ti )

Para interpretar o metodo de Euler geometricamente, note que quando wi e uma aproximacao boa de y(ti ), a afirmativa que o problema e bem posto implica que
f (ti , wi ) y 0 (ti ) = f (ti , y(ti ))
O grafico da funcao e da aproximacao feita pelo metodo de Euler esta na figura (9.1), feita
em varios passos.

194

Figura 9.1: geometricamente o metodo de Euler aproxima a solucao em ti atraves da tangente `a curva em
ti1

Exemplo 62 Vamos encontrar aproximacoes do PVI


y 0 = y + t + 1,

0 t 1,

y(0) = 1,

faca N = 10.
Assim, h = 0.1 e ti = 0.1i.
Usando o fato que f (t, y) = y + t + 1 temos:
w0 =1
wi =wi1 + h(wi1 + ti1 + 1)
=wi1 + 0.1(wi1 + 0.1(i 1) + 1)
=0.9wi1 + 0.01(i 1) + 0.1
para i = 1, 2, ..., 10.
ti
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0

wi
1.000000
1.000000
1.010000
1.029000
1.056100
1.090490
1.131441
1.178297
1.230467
1.287420
1.348678

yi
Erro = |wi yi |
1.000000
0.0
1.004837
0.004837
1.018731
0.008731
1.040818
0.011818
1.070320
0.014220
1.106531
0.016041
1.148812
0.017371
1.196585
0.018288
1.249329
0.018862
1.306570
0.019150
1.367879
0.019201

195

(21)

A solucao exata de (21) e y(t) = t + et . A tabela (62) mostra uma comparacao entre os
valores aproximados em ti e os valores reais.
Note que o crescimento do erro cresce um pouco com o crescimento do valor de ti . Este
crescimento de erro controlado e consequencia da estabilidade do metodo de Euler, que implica
espera-se que o erro devido ao arredondamento nao deve crescer mais que uma forma linear.
Apesar do metodo de Euler nao ser preciso o suficiente para ser garantido seu uso na pratica,
ele e suficientemente elementar para nos analisarmos o erro que e produzido com sua aplicacao.
Para derivarmos um limite de erro para o metodo de Euler, precisamos dos seguintes resultados:
Lema 1 Para todo x 1 e qualquer n
umero positivo m,
0 (1 + x)m emx .

(22)

PROVA: Aplicando o teorema de Taylor com f (x) = ex , em torno de x0 , e n = 1, temos,


1
ex = 1 + x + x2 e
2
onde esta entre zero e x. assim,
1
0 1 + x 1 + x + x2 e = ex
2
e como 1 + x 0, 0 (1 + x)m (ex )m = emx .
Lema 2 Se s e t sao n
umeros reais positivos, {ai }ki=0 e uma sequencia satisfazendo a0 t/s,
e
ai+1 (1 + s)ai + t, para cada i = 0, 1, 2, ..., k,

then ai+1 e(i+1)s st + a0 st .

(23)

Teorema 44 Suponha que f e uma funcao contnua e que satisfaz a condicao de Lipschitz com
a constante L sobre o conjunto
D = {(t, y)|a t b, < y < },
e que exista uma constante M com a propriedade qu
y 00 (t)| M para todo t [a, b].
Seja y(t) a solucao u
nica do problema de valor inicial
y 0 = f (t, y),

a t b,

y(a) = ,

e w0 , w1 , ...wN as N aproximacoes geradas pelo metodo de Euler para algum inteiro positivo N .
Entao
hM L(ti a)
|y(ti wi |
[e
1]
(24)
2L
para cada i = 0, 1, 2, ..., N.

196

9.5

M
etodos de Taylor de Ordem Superior

Como o objetivo dos Metodos Numericos e determinar aproximacoes suficientemente precisas


de um PVI, com o mnimo de esforco, nos precisamos ter uma ferramenta para comparar a
eficiencia dos varios metodos de aproximacao. O primeiro instrumento que iremos considerar
e chamado de erro de truncamento local (ETL). O ETL em um determinado passo mede a
quantidade pala qual a solucao exata da Equacao diferencial falha para satisfazer a equacao em
diferencas que esta sendo usada para a aproximacao.
Definic
ao 12 O metodo em diferencas
w0 =
wi+1 =wi + h(ti , yi )

para cada i = 0, 1, ..., N 1

(25)

possui erro de truncamento local dado por

i (h) =

yi yi1
(ti1 , wi1 )
h

para cada i = 1, 2, ..., N

(26)

Assim, para o metodo de Euler, o erro de truncamento Local no iesimo passo para o problema
y 0 = f (t, y),

a t b, y(a) =

e
i (h) =

yi yi1
f (ti1 , yi1 )
h

para cada i = 1, 2, ..., N.

onde como usual, yi = y(ti ) denota o valor exato da solucao em ti . Este erro e dito erro local
porque mede a precisao do metodo em um passo especfico, assumindo que no passo anterior
era exato. Pode-se notar que este erro depende da Equacao Diferencial, do tamanho do passo
e de um passo particular na aproximacao.
2
Considerando que para o metodo de Euler temos y(ti+1 ) = y(ti ) + hf (ti , y(ti )) + h2 y 00 (i ),
vemos que para o metodo de Euler

i (h) =

h 00
y (i )
2

para algum i ,

onde ti1 < i < ti ,

(27)

e quando sabemos que y 00 (t) e limitado por uma constante M em [a, b], isto implica que
|i (h)|

h
M.
2

Assim o ETL do metodo de Euler e O(h). Uma forma de selecionar metodos de equacoes
em diferencas para aproximar a solucao de uma EDO e escolher de tal forma que o ETL seja

197

O(hp ) para p tao grande quanto possvel, mantendo o n


umero e complexidade de operacoes
dentro de um limite razoavel.
Como o metodo de Euler foi derivado usando o teorema de Taylor com n = 2 para aproximar
a solucao da equacao diferencial, nossa primeira tentativa em encontrar metodos para melhorar
as propriedades de convergencia dos metodos de diferencas e extender esta mesma regra para
um n maior.
Suponha que a solucao y(t) de um PVI
y 0 = f (t, y),

a t b, y(a) = ,

possui (n + 1) derivadas contnuas. Se expandimos a solucao y(t) em serie de Taylor em torno


de ti e calcularmos em ti+1 temos,
y(ti+1 ) = y(ti ) + hy 0 (ti ) +

hn
hn+1 (n+1)
h2 00
y (ti ) + ... + y (n) (ti ) +
y
(i )
2
n!
(n + 1)!

(28)

para algum i , ti < i < ti+1 .


Diferenciacoes sucessivas da solucao ,y(t), nos da,
y 0 (t) =f (t, y(t))
y 00 (t) =f 0 (t, y(t))

y (k) (t) =f (k1) (t, y(t)).


Substituindo estes resultados na equacao (28) temos,

y(ti+1 ) = y(ti )+hf ((ti , y(ti )))+

h2 0
hn
hn+1 (n)
f (ti , y(ti )))+...+ f (n1) (ti , y(ti ))+
f (i , y(i )).
2
n!
(n + 1)!
(29)

A equacao em diferenca correspondente a equacao (29) e obtida nao considerando o u


ltimo
termo envolvendo i . Este metodo e chamado de M
etodo de Taylor de ordem n:
w0 =,
wi + 1 =wi + hT (n) (ti , wi ) para cada i = 0, 1, ..., N 1,
(30)
n1
h
h
onde T (n) (ti , wi ) =f (ti , wi ) + f (ti , wi ) + ... +
f (n1) (ti , wi )
2
n!
Note que o metodo de Euler e o metodo de Taylor de ordem um. Note tambem que para
aplicarmos os metodos de Taylor de ordem superior, temos que derivar (n 1) vezes a funcao
f (t, y(t)) em relacao a` t. Assim, se f (t, y) nao for uma funcao muito simples o metodo torna-se
inviavel.

198

9.6

M
etodos de Runge Kutta

Metodos de Taylor
Alta ordem de Erro de Truncamento Local (ETL)
Porem requer calculo das derivadas de f (t, y), oque consome tempo computacional
e pode ser complicado
Quase nunca sao usados na pratica
Metodos de Runge Kutta
Usa o ETL de alta ordem dos metodos de Taylor
Elimina o calculo das derivadas de f (t, y)

9.6.1

Introdu
c
ao

Formulas do tipo de Runge Kutta estao entre as formulas mais largamente usadas para a solucao
numerica de EDO. Suas vantagens incluem:
Sao facilmente programaveis
Possuem boas propriedades de estabilidade
O tamanho do passo pode ser trocado livremente sem complicacoes
Ele se auto inicia
Suas desventagens sao em primeiro lugar que computacionalmente podem precisar de mais
tempo que outros metodos para obter a mesma precisao e a estimativa do erro local nao sao
simples de serem obtidas. Muitas vezes o metodo de Runge Kutta e usado para resolver
problemas inteiros, mas analistas numericos recomendam seu uso como inicializador de metodos
mais eficientes de multipasso como o preditor corretor.

Preliminares Matem
aticos
Teorema 45 (Taylor em duas variaveis)
Suponha que f (t, y) e todas as suas derivadas de ordem menor ou igual que n + 1 s
ao
contnuas em
D = {(t, y)/a t b, c y d}

199

. Seja (t0 , y0 ) D. Para todo (t, y) em D, existe entre t e t0 e entre y e y0 com


f (t, y) = Pn (t, y) + Rn (t, y),
onde

f
f
Pn (t, y) = f (t0 , y0 ) + (t t0 ) (t0 , y0 ) + (y y0 ) (t0 , y0 )
t
y


(t t0 )2 2 f
(y y0 )2 2 f
2f
+
(t0 , y0 ) +
(t0 , y0 ) + (t t0 )(y y0 )
(t0 , y0 )
2
t2
ty
2
y 2


+...
"

#
n  
n

f
1 X n
(t t0 )nj (y y0 )nj nj j (t0 , y0 )
+
n! j=0 j
t y
and

n+1 
X
n+1
n+1 f
1
(t t0 )n+1j (y y0 )j n+1j j (, )
Rn (t, y) =
(n + 1)! j=0
j
t
y
A funcao Pn e chamada de Polinomio de Taylor de grau n em duas variaveis para a funcao f
em torno de (t0 , y0 ), e Rn (t, y) o resto associado a` Pn (t, y).

p
Exemplo 63 O polinomio de Taylor de segundo grau para f (t, y) = 4t + 12y t2 2y 2 6
em torno de (2, 3) e encontrado a partir de


f
f
P2 (t, y) = f (t0 , y0 ) + (t t0 ) (t0 , y0 ) + (y y0 ) (t0 , y0 )
t
y


2 2
(t t0 ) f
2f
(y y0 )2 2 f
+
(t0 , y0 ) + (t t0 )(y y0 )
(t0 , y0 ) +
(t0 , y0 )
2
t2
ty
2
y 2
Calculando cada uma destas derivadas parciais em (t0 , y0 ) = (2, 3), P2 (t, y) reduz-se `a:
1
1
P2 (t, y) = 4 (t 2)2 (y 3)2 .
4
2
Este polinomio fornece uma aproximacao precisa de f (t, y) quando t esta perto de 2 e y est
a
perto de 3, por exemplo:
P2 (2.1, 3.1) = 3.9925

f (2.1, 3.1) = 3.9962.

Entretanto, a precisao da aproximacao deteriora rapidamente quando (t, y) se move para longe
de (2, 3).

200

Figura 9.2: funcoes f (t, y) e P2 (t, y)

O metodo de Runge-Kutta evita a dificuldade de derivacao da funcao f (t, y) que aparece


nos metodos de Taylor de ordem superior. Para isto, assim ao inves de usar a serie de Taylor
este metodo aproxima o polinomio de Taylor por uma combinacao de valores da funcao f (t, y)
em diversos pontos. Vamos ilustrar este procedimento fazendo a derivacao do metodo de Runge
Kutta de segunda ordem.
Derivac
ao de um m
etodo de Runge Kutta de ordem 2
Para mostrar qual o procedimento seguido no desenvolvimento dos metodos de Runge-Kutta,
vamos desenvolver o chamado de M
etodo do Ponto M
edio, que e um Metodo de RungeKutta de Segunda Ordem.
1. Primeiramente vamos supor que o polinomio de Taylor de segunda ordem possa ser aproximado por uma combinacao de valores da funcao f (t, y). Neste caso vamos supor que
T (2) = a1 f (t + 1 , y + 1 )
2. Para determinar os valores das constantes a1 , 1 e beta1 de forma que a1 f (t + 1 , y + 1 )
aproxime o polinomio de Taylor
h
T (2) = f (t, y) + f 0 (t, y)
2
com erro menor ou igual `a O(h2 ), vamos primeiramente encontrar uma expressao para a
derivada de f (t, y) em relacao a t, lembrando que y = y(t),
f 0 (t, y) =

df
f
f
(t, y) =
(t, y) +
(t, y).y 0 (t)
dt
t
y

y 0 (t) = f (t, y).

3. Substituindo a expressao acima no pol. de Taylor, temos


T (2) (t, y) = f (t, y) +

h f
h f
(t, y) +
(t, y).f (t, y).
2 t
2 y

201

(31)

4. Por outro lado, vamos expandindo a funcao f (t + 1 , y + 1 ) em serie de Taylor, temos


que o pol. de Taylor de grau 1 em torno de (t, y) para esta expansao e dada por:
a1 f (t + 1 , y + 1 ) = a1 f (t, y) + a1 1

f
f
(t, y) + a1 1 (t, y) + a1 .R1 (t + 1 , y + 1 ), (32)
t
y

onde o termo de erro e dado por,


R1 (t + 1 , y + 1 ) =

12 2 f
12 2 f
2f
2
(,
)
+
(,
)
+

(, )
1 1
2 t2
ty
2 y 2

(33)

5. Agora, igualando os coeficientes de f e suas derivadas nas equacoes (31) e (32),


f (t, y) :
f
(t, y) :
t
f
(t, y) :
y

a1 = 1;
h
2
h
a1 1 = f (t, y)
2
a1 1 =

Desta forma os parametros a1 , 1 e 1 sao determinados de forma u


nica como:
a1 = 1,

1 =

h
2

1 =

h
f (t, y)
2

logo
T

(2)





h
h
h
h
(t, y) = f t + , y + f (t, y) R1 t + , y + f (t, y)
2
2
2
2

e da equacao (33) obtemos a seguinte formula para o erro:




h
h
h2 2 f
h2
2f
h2 2 f
R1 t + , y + f (t, y) =
(, ) + f (t, y)
(, ) +
(, ). (34)
2
2
8 t2
4
ty
8 y 2
6. Assim, se todas as derivadas de segunda ordem da f sao limitadas, pela formula do erro
dada acima pela eq. (34) temos que este metodo e O(h2 ).

Assim, a equacao em diferencas para o m


etodo do Ponto M
edio e:
w0 = ,

wi+1 = wi + hf


h
h
ti + , wi + f (ti , wi )
2
2

202

para i = 0, 1, ..., N 1.

(35)

Note, uma vez que somente 3 parametros estao presentes na expressao a1 f (t + 1 , y + 1 ),


e que todos sao necessarios para casaros termos com T (2) , precisaremos de uma forma mais
complicada para satisfazer as condicoes requeridas para metodos de Taylor de mais alta ordem.
A forma mais apropriada com quatro constantes para aproximar,
h2
h
T (3) = f (t, y) + f 0 (t, y) + f 00 (t, y)
2
6
e
a1 f (t, y) + a2 f (t + 2 , y + 2 f (t, y));

(36)

Fazendo os algebrismos necessarios, vemos que mesmo com este n


umero de parametros ainda
nao temos flexibilidade suficiente para casaro termo
2

h2 f
(t, y) f (t, y)
6 y
proveniente da expansao de (h2 /6)f 00 (t, y). Desta forma o melhor que podemos obter com
metodos vindos de (36) sao metodos com ETL de O(h2 ). Os dois metodos mais importantes
de Runge Kutta de segunda ordem sao:
1. M
etodo de Euler Modificado: Corresponde a escolha de a1 = a2 =
assim sua equacao em diferencas e:

1
2

e 2 = 2 = h,

w0 = ,
wi+1 = wi +

h
(f (ti , wi ) + f (ti+1 , wi + hf (ti , wi )))
2

2. M
etodo de Heun: Corresponde a escolha de a1 = 41 , a2 =
equacao em diferencas e:

para i = 0, 1, ..., N 1.
(37)
3
4

e 2 = 2 = 32 h, assim sua

w0 = ,
wi+1

h
= wi +
4



2
2
f (ti , wi ) + 3f (ti + h, wi + hf (ti , wi ))
3
3

para i = 0, 1, ..., N
(38)
1.

Exemplo 64 Nao vamos aplicar os metodos de Runge Kutta de ordem 2 no nosso exemplo,
y 0 = y + t + 1
0 t 1,
y(0) = 1 pois por sua natureza, obtemos para todos a mesma
equacao em diferencas que o metodo de Taylor de ordem 2. Para comparar os varios metodos
vamos aplica-lo ao PVI,
y 0 = y + t2 + 1

0 t 1,

y(0) = 1

cuja solucao exata e dada por, y(t) = 2et + t2 2t + 3.


Considerando N = 10, h = 0.1 e ti = 0.1i, as equacoes de diferenca sao:

203

Ponto Medio
Euler Modificado
Heun

wi+1 = 0.905wi + 0.00095i2 + 0.001i + 0.09525


wi+1 = 0.905wi + 0.00095i2 + 0.001i + 0.0955
wi+1 = 0.905wi + 0.00095i2 + 0.001i + 0.095333333

para i = 0, 1, ...9, onde w0 = 1 em todos os casos.


ti
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0

Exato
Ponto Medio
1.000000
1.000000
1.000325
1.000250
1.002538
1.002426
1.008363
1.008246
1.019360
1.019264
1.036939
1.036882
1.062377
1.062379
1.096829
1.096903
1.141342
1.141497
1.196861
1.197105
1.264241
1.264580

Erro
7.52 105
1.12 104
1.18 104
9.75 105
5.62 105
2.00 106
7.33 105
1.55 104
2.44 104
3.39 104

Euler Mod.
1.000000
1.000500
1.002902
1.008927
1.020129
1.037917
1.063564
1.098226
1.142944
1.198665
1.266242

Erro
1.75 104
3.64 104
5.63 104
7.69 104
9.78 104
1.19 103
1.40 103
1.60 103
1.80 103
2.00 103

Heun
1.000000
1.000333
1.002595
1.008473
1.019551
1.037227
1.062774
1.097344
1.141979
1.197625
1.265134

Erro
8.10 106
4.65 105
1.09 104
1.91 104
2.88 104
3.97 104
5.14 104
6.37 104
7.64 104
8.93 104

Tabela 9.1: Tabela resultado do exerccio (64)


Nota 5 T (3) (t, y) pode ser aproximada com erro O(h3 ), mas por ser complicado o algebrismo
e por quase nao ser usado na pratica nao vamos apresenta-lo.

O metodo mais comum de Runge Kutta e o Runge Kutta de Quarta Ordem cuja equacao
em diferenca e dada por:
w0 = ,
k1 = hf (ti , wi ),
1
h
k2 = hf (ti + , wi + k1 ),
2
2
h
1
k3 = hf (ti + , wi + k2 ),
2
2
k4 = hf (ti+1 , wi + k3 ),

(39)

1
wi+1 = wi + (k1 + 2k2 + 2k3 + k4 ),
6
para i = 0, 1, ....N 1. O ETL deste metodo e O(h4 ), se a solucao y(t) possuir cinco derivadas
contnuas. O motivo da introducao de k1 , k2 , k3 e k4 no metodo e eliminar repeticao de calculos
na segunda variavel de f (t, y).

204

ALGORITMO 9 (Runge Kutta Quarta Ordem)


Aproxima a solucao do problema de valor inicial
y 0 = f (t, y),

a t b,

y(a) = ,

em N + 1 pontos igualmente espacados no intervalo [a, b]:


ENTRADA: a, b; N ; .
SAIDA: Aproximacao w de y em N + 1 valores de t.
PASSO 1: Faca
h
t
w
SADA:

= (b a)/N ;
= a;
= ;
(t, w).

PASSO2: Para i = 1, 2, ...N (3-5)


PASSO 3: Faca:
K1 = hf (t, w),
K2 = hf (t + h2 , w + 12 K1 ),
K3 = hf (t + h2 , w + 12 K2 ),
K4 = hf (t + h, w + k),
PASSO 4: Faca
w = w + (K1 + 2K2 + 2K3 + K4 )/6;
t = a + ih
PASSO 5: SADA: (t, w).

Exemplo 65 Usando o metodo de RK de quarta ordem obtenha uma aproximacao para o PVI:
y 0 = y + t + 1,

0 t 1,

y(0) = 1,

com h = 0.1, N = 10 e ti = 0.1i.

Exemplo 66 Considere o exemplo


y 0 = y + 1,

0 t 1,

y(0) = 0,

Para resolver este problema foi aplicado o metodo de Euler com h = 0.025, o metodo de Euler
modificado com h = 0.05 e o metodo de Runge-Kutta de quarta ordem com h = 0.1. Os
resultados obtidos estao comparados na tabela abaixo com os valores exatos nos pontos 0.1, 0.2,
0.3, 0.4 e 0.5 da malha.
Cada uma destas tecnicas requer 20 calculos funcionais para determinar os valores liatados
na tabela. Neste exemplo o metodo RK de quarta ordem e claramente superior.

205

ti
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0

Valor Exato
1.0000000000
1.0048374180
1.0187307531
1.0408182207
1.0703200460
1.1065306597
1.1488116360
1.1965853038
1.2493289641
1.3065696597
1.3678794412

RK quarta ordem
1.0000000000
1.0048375000
1.0187309014
1.0408184220
1.0703202889
1.1065309344
1.1488119344
1.1965856187
1.2493292897
1.3065699912
1.3678797744

Erro
8.200 108
1.483 107
2.013 107
2.429 107
2.747 107
2.984 107
3.149 107
3.256 107
3.315 107
3.332 107

Tabela 9.2: Tabela dos resultados do exerccio (65)

t
0.1
0.2
0.3
0.4
0.5

Metodo de
Metodo de
Runge Kutta
Euler
Euler Modificado Quarta Ordem
0.096312
0.095123
0.09516250
0.183348
0.181198
0.18126910
0.262001
0.259085
0.25918158
0.333079
0.329563
0.32967971
0.397312
0.393337
0.39346906

Valor
Exato
0.095162582
0.181269247
0.259181779
0.329679954
0.393469340

Tabela 9.3: Tabela dos resultados obtidos para o exerccio (66)

206

9.7

Controle de Erro e o M
etodo de Runge-Kutta-Fehlberg

Metodos adaptativos sao aqueles que incorporam um procedimento para adaptar o n


umero e a
posicao dos nos da malha com a qual se efetua a aproximacao, garantindo assim que o erro de
truncamento nunca ultrapasse um limita especificado.
Vamos observar que um metodo ideal de diferencas
wi+1 = wi + hi (ti , wi , hi )

i = 0, N 1

(40)

para aproximar o problema de valor inicial


y 0 = f (t, y) ,

atb

y(a) =

(41)

deve, com uma tolerancia > 0, ter a propriedade de que a quantidade mnima de pontos da
malha sera usada para assegurar que o erro global |y(ti ) wi | nao exceda para i = 0 : N .
Este metodo existe e escolhe os pontos da malha nao igualmente espassados, escolhendo um
n
umero mnimo de pontos na malha de forma a controlar o erro global.
Agora, vamos examinar uma tecnica usada para o controle do erro global deste metodo e uma
forma eficiente para a escolha apropriada da malha.
Geralmente nao podemos determinar o erro global de um metodo, logo iremos trabalhar
com o erro de truncamento local (ETL). Mais tarde, veremos que sob algumas hipoteses o erro
local de truncamento de um metodo e o erro global possuem relacao entre si, estabelece-se que
o limite sobre o ETL produz um igual limite sobre o erro global. Usando metodos de ordem
distinta podemos estimar o ETL e selecionar, com esta estimativa, um tamanho de passo ideal
para controlar o erro global.
Vamos, agora, mostrar como podemos estimar o ETL em um metodo de diferencas finitas.
Assim vamos considerar:
1. Vamos considerar um metodo de ordem n obtido por serie de Taylor de ordem n da forma:
y(ti+1 ) = y(ti ) + h(ti , y(ti ), h) + O(hn+1 ),
que produz as aproximacoes
w0 =
wi+1 = wi + h(ti , wi , h)

para i > 0

(42)
(43)

com erro de truncamento i+1 (h) = O(hn ).


2. Vamos tambem considerar um metodo de ordem superior, derivado do metodo de Taylor
de ordem n + 1.
i , y(ti ), h) + O(hn+2 ),
y(ti+1 ) = y(ti ) + h(t

207

que produz as aproximacoes


w0 = a
i , wi , h)
wi+1 = wi + h(t

(44)
(45)

para i > 0

com erro de truncamento i+1 (h) = O(hn+1 ).


3. Vamos supor que wi y(ti ) wi e vamos selecionar um passo fixo h para gerar as
aproximacoes wi+1 e wi+1 de y(ti+1 ). Com estes dados, calculamos:
(a) Encontrando uma express
ao de c
alculo simples para aproximar o ETL
i.
i+1 (h) =
=

y(ti+1 ) y(ti )
(ti , y(ti ), h)
h

y(ti+1 ) wi
(ti , wi , h)
h
y(ti+1 ) [wi + h(ti , wi , h)]
=
h

1
(y(ti+1 ) wi+1 ).
h
ii. De forma similar temos
=

i+1 (h) =

1
(y(ti+1 ) wi+1 )
h

iii. E como consequencia, diminuindo os tens acima temos a seguinte relacao


1
i+1 (h) = i+1 (h) + (wi+1 wi+1 )
h
iv. Como i+1 (h) e O(hn+1 ), maior que a de i+1 (h) que e O(hn ), a parte significativa,
conforme a expressao acima, de i+1 (h) deve vir do outro termo, isto e: h1 (wi+1
wi+1 ), isto e uma aproximacao do erro de truncamento local pode ser dada por:
i+1 (h) =

1
(wi+1 wi+1 ).
h

4. Como ajustar o passo para mante-lo dentro de um limite especificado?


(a) i+1 (h) e de ordem O(hn ), isto e existe uma constante K de forma que
i+1 (h) Khn
(b) Na expressao acima substituindo h por qh temos,
i+1 (h) K(qh)n = q n (Khn ) q n i+1 (h)

208

qn
(wi+1 wi+1 ).
h

(c) Assim para limitarmos o ETL i+1 (qh) por , escolhemos q de forma que
qn
|wi+1 wi+1 | |i+1 (qh)| ;
h
isto e

q

h
|wi+1 wi+1 |

1/n
.

Uma tecnica popular que usa a relacao para controle de erro e chamada de metodo de RungeKutta-Fehlberge consiste em usar o metodo de Runge Kutta com erro de truncamento local
de ordem cinco,
w
ei+1 = w
ei +

6656
28561
9
2
16
k1 +
k3 +
k4 k5 + k6,
135
12825
56430
50
55

para estimar o erro local de truncamento para o metodo de Runge-Kutta de quarta ordem,
wi+1 = wi +

25
1408
2197
1
k1 +
k3 +
k4 k5 ,
216
2565
4104
5

onde
k1 = hf (ti , wi ),


h
1
k2 = hf ti + , wi + k1 ,
4
4


3h
3
9
k3 = hf ti + , wi + k1 + k2 ,
8
32
32


1932
7200
7296
12h
, wi +
k1
k2 +
k3 ,
k4 = hf ti +
13
2197
2197
2197


439
3680
845
k5 = hf ti + h, wi +
k1 8k2 +
k3
k4 ,
216
513
4104


h
8
3544
1859
11
k6 = hf ti + , wi k1 + 2k2
k3 +
k4 k5 .
2
27
2565
4104
40
Note que
w
ei+1 wi+1 =

1
128
2197
1
2
k1
k3
k4 + k5 + k6 .
360
4275
75240
50
55

Uma vantagem deste metodo e que so seis estimativas da funcao f sao necessarias por passo.

209

Em teoria de controle de erro, um valor inicial de h foi usado no i-esimo passo para encontrar os primeiros valores de wi+1 e w
ei+1 , os quais nos levaram a determinacao do q para este
passo, e entao os calculos sao repetidos. Este procedimento requer duas vezes o n
umero de estimativas funcionais por passo que sem o controle de erro. Na pratica o valor de q a ser usado e
escolhido de forma um pouco diferente para fazer o n
umero crescente de estimativas funcionais
valer a pena. O valor de q determinado no i-esimo passo e usado para dois propositos:
1. Para rejeitar, se necessario, a escolha inicial de h no i-esimo passo e repetir os calculos
usando qh.
2. Prever uma escolha inicial adequada para h no passo (i + 1).

Em funcao do preco pago na avaliacao das funcoes ao repertirmos os passos, q tende a ser
escolhido de forma conservadora. A escolha comum para RK4 e

q=

h
2|wi+1 wi+1 |

1/4


= 0.84.

h
|wi+1 wi+1 |

Algortmo Runge-Kutta-Fehlberg
Para aproximar o PVI y 0 = f (t, y), a t b e y(a) = com ETL na parte interna de uma
dada tolerancia:
ENTRADA: Pontos Finais a,b. Condicao Inicial . Tolerancia TOL. Passo maximo e mnimo
hmax e hmin.
SAIDA: t, w, h onde w aproxima y(t) e o passo h foi usado ou uma mensagem que o passo
mnimo excedeu.
PASSO 1: Faca t = a; w = ; h = h max; FLAG=1;
SAIDA (t, w).
PASSO 2: Enquanto (FLAG=1) siga os passos 3-11.
PASSO 3: Faca: k1 = hf (t, w)

.
k2 = hf t + h4 , w + 14 k1

3
9
.
k3 = hf t + 3h
,
w
+
k
+
k
1
2
8
32
32

7200
7296
.
k4 = hf t + 12h
, w + 1932
k 2197
k2 + 2197
k3
13
2197 1

3680
845
.
k5 = hf t + h, w + 439
k

8k
+
k

k
1
2
3
4
216
513
4104

8
3544
11
.
k6 = hf t + h2 , w 27
k1 + 2k2 2565
k3 + 1859
k 40
k5
4104 4
128
2197
1
2
1
PASSO 4: Faca R = h1 360
k1 4275
k3 75240
k4 + 50
k5 + 55
k6 (note que R =
1
|w
ei+1 wi+1 |)
h
PASSO 5: Se (R T OL entao siga os passos 6 e 7.

210

PASSO 6: Faca t = t + h; (Aproximacao aceita) .


25
k + 1408
k + 2197
k 51 k5 .
216 1
2565 3
4104 4
PASSO 7: SAIDA (t, w, h).
PASSO 8: Faca = 0.84(T OL/R)1/4
PASSO 9: Se 0.1 entao faca h = 0.1h;
contrario faca h = h. (Calcule um novo h).

w = w+

se 4 entao faca h = 4h; caso

PASSO 10: Se h > hmax entao faca h = h max.


PASSO 11: Se t b entao faca F LAG = 0; se t + h > b entao faca h = b t; se h < h min
entao faca F LAG = 0;
.
SAIDA: h mnimo foi excedido. Procedimento completado sem sucesso.
PASSO 12: Este procedimento esta completo
PARE

Exemplo 67 O algortmo acima sera usado para aproximar a solucao do problema de valor
inicial
y 0 = y t2 + 1,

0 t 2,

y(0) = 0.5

cuja solucao exata e dada por t(t) = (t + 1)2 0.5et . Fazendo T OL = 105 , hmax = 0.25,
hmin = 0.01.

ti
0
0.2500000
0.4865522
0.7293332
0.9793332
1.2293332
1.4793332
1.7293332
1.9793332
2.0000000

yi = y(ti )
0.5
0.9204873
1.3964884
1.9537446
2.5864198
3.2604520
3.9520844
4.6308127
5.2574687
5.3054720

RKF-4
wi
0.5
0.9204886
1.3964910
1.9537488
2.5864260
3.2604605
3.9520955
4.6308268
5.2574861
5.3054896

hi

Ri

0.2500000
0.2365522
0.2427810
0.2500000
0.2500000
0.2500000
0.2500000
0.2500000
0.0206668

6.2106
4.5106
4.3106
3.8106
2.4106
7.0107
1.5106
4.3106

|yi wi |
0.5
1.30106
2.60106
4.20106
6.20106
8.50106
1.11105
1.41105
1.73105
1.77105

Tabela 9.4: Tabela solucao do exerccio (67)

211

RKF-5
wi

|
yi wi |

0.9204870
1.3964900
1.9537477
2.5864251
3.2604599
3.9520954
4.6308272
5.2574871
5.3054896

2.424107
1.510106
3.136106
5.242106
7.895106
1.096105
1.446105
1.839105
1.768105

9.8

M
etodos de Multipasso

M
etodos de um passo
Nos metodos de um passo a aproximacao para o ponto ti+1 da malha apenas envolve
informacoes do ponto anterior ti . Estes metodos nao retem a informacao sobre ti
para uso posterior, para aproximar ti+2 por exemplo. Resumindo toda informacao
usada por estes metodos para aproximar a solucao em ti+1 esta contida dentro do
intervalo ti , ti+1 .
Note que as informacoes sobre os pontos t0 , t1 , ..., Ti estao disponveis antes de calcularmos a
aproximacao da solucao em ti+1 . Alem disto sabemos que o erro |wj f (tj )| tende a crescer
com o aumento de j, desta forma parece razoavel desenvolver um metodo que use estes dados
anteriores, mais precisos, para aproximar a solucao em ti+1 .
M
etodos de Multipasso
Sao metodos que usam informacao em mais de um ponto anterior da malha para
determinar a aproximacao no proximo ponto.
Definic
ao 13 Um metodo para resolver o PVI
y 0 = f (t, y),

a t b,

y(a) =

(46)

e aquele cuja equacao em diferencas para encontrar a aproximacao wi+1 no ponto da malha ti+1
pode ser representada por uma equacao do tipo,
wi+1 = am1 wi +am2 wi1 +...+a0 wi+1m +h[bm f (ti+1 , wi+1 )+bm1 f (ti , wi )+...+b0 f (ti+1m , wi+1m )]
(47)
onde m e um inteiro e i = m 1, m, ..., N 1, os valores iniciais
w0 = , w1 = 1 , ...wm1 = m1
sao dados e h = (b a)/N .
Se bm = 0 temos um metodo explcito ou aberto
Se b0 =
6 0 temos um metodo implcito ou fechado.
Exemplo 68 As equacoes
w0 = , w1 = 1 , w2 = 2 , w3 = 3 ,
h
[55f (ti , wi ) 59f (ti1 , wi 1) + 37f (ti2 , wi2 9f (ti3 , wi3 )]
wi+1 = wi +
24

212

(48)

para i = 3, 4, ..., N 1 define um metodo explcito de quatro passos e e conhecido como t


ecnica
de Adams-Bashforth de quarta ordem.
As equacoes
w0 = , w1 = 1 , w2 = 2 ,
h
[9f (ti+1 , wi+1 ) + 19f (ti , wi ) 5f (ti1 , wi 1) + f (ti2 , wi2 ]
wi+1 = wi +
24

(49)

para i = 3, 3, 4, ..., N 1 define um metodo implcito de tres passos e e conhecido como t


ecnica
de Adams-Moulton de quarta ordem.
Os valores iniciais em ambos os casos (48) e (49) devem ser conhecidos, geralmente assumimos que w0 = e geramos os outros valores pelo metodo de Runge Kutta (normalmente RK4)
ou outro metodo de um passo. Note ainda que nos metodos implcitos temos que resolver uma
equacao implcita, o que nem sempre pode ser feito sem apelarmos para metodos numericos.

Derivac
ao dos M
etodos Multistep
Vamos integrar no intervalo [ti , ti+1 ] a equacao (46), da,
Z ti+1
Z ti+1
0
f (t, y(t))dt
y (t)dt =
ti

ti

isto e
Z

ti+1

y(ti+1 ) y(ti ) =

f (t, y(t))dt
ti

Sem conhecermos y(t) a integral acima nao pode ser calculada, assim vamos aproximar a
funcao f por seu polinomio interpolador obtido do dados iniciais, (t0 , w0 ), (t1 , w1 ), ...(ti , wi ).
Alem disto, vamos assumir que wi y(ti ), assim,
Z ti+1
P (t)dt
(50)
y(ti+1 ) wi +
ti

Qualquer polinomio interpolador pode ser usado para calcular P (t) mas o mais conveniente
e a formula de Newton de diferencas para tras, assim para derivarmos a tecnica de AdamsBashforth de m passos devemos encontrar o polinomio interpolador Pm1 que passa atraves
de (ti , y(ti )), (ti1 , y(ti1 )), ..., (ti+1m , y(ti+1m )). Como Pm1 e um polinomio interpolador de
grau m 1, existe um n
umero (ti+1m , ti ) de forma que:
f (t, y(t)) = Pm1 (t) +

f (m) (i , y(i ))
(t ti )(t ti1 )...(t ti+11 ).
m!

Vamos, agora, proceder a seguinte mudanca de variaveis:


t = ti + sh da dt = hds e que,

213

t ti = sh
t ti1 = t (ti h) = t ti + h = h(s + 1), temos:
f (t, y(t)) =

m1
X

(1)

k=0


s
f (m) (i , y(i )) m+1
h
s(s + 1)...(s + m 1).
k f (ti , y(ti )) +
m!
k

integrando de ti a` ti+1 e lembrando pela mudanca de variaveis que dt = hds e que ti t ti+1
entao 0 s 1, temos:
Z

ti+1

f (t, y(t))dt =
ti

m1
X

(1) hf (ti , y(ti ))


0

k=0

 
Z
s
hm+1 1
s(s+1)...(s+m1)f (m) (i , y(i ))ds.
ds+
m! 0
k


R1
As integrais (1)k 0 s
ds para varios valores de k sao facilmente calculadas e listadas na
k
tabela abaixo, por exemplo, quando n = 3,
Z 1 
Z 1
Z
s
(s)(s 1)(s 2)
1 1 3
3
3
(1)
ds =
ds =
(s + 3s2 + 2s)ds = .
3
1.2.3
6 0
8
0
0
k
(1)k

R1
0

s
k

ds 1

1
2

5
12

3
8

251
720

95
288

Por exemplo para k = 3 temos:

(1)

 
Z 1
s
(s)(s 1)(s 2)
ds
ds =
3
1.2.3
0
Z
1 1 3
=
(s + 3s2 + 2s)ds
6 0

1
1 s4
3
2
=
+s +s
6 4
0
 
3
1 9
=
=
6 4
8

Como consequencia
Z

ti+1

ti


1
5 2
f (t, y(t))dt = h f (ti , y(ti )) + f (ti , y(ti )) + f (ti , y(ti )) + ...
2
12
m+1 Z 1
h
+
s(s + 1)...(s + m 1)f (m) (i , y(i ))ds.
m! 0

214

(51)

Como s(s + 1)...(s + m 1) nao mudam de sinal em [0, 1], pelo teorema do valor medio
com peso para integrais pode ser usado e assim podemos reescrever o u
ltimo termo da integral
como:
Z  
s
h
f (i , y(i ))(1)
ds.
m
Rt
Alem disto como y(ti+1 )y(ti ) = tii+1 f (t, y(t))dt, podemos reescrever a equacao (51) como:
m+1 (m)


5 2
1
y(ti+1 ) = y(ti ) + h f (ti , y(ti )) + f (ti , y(ti )) + f (ti , y(ti )) + ...
2
12
Z  
s
ds.
+hm+1 f (m) (i , y(i ))(1)m
m


(52)

Fazendo m=3, por exemplo temos o metodo de Adams Bashforth de 3 passos:

w0 = , w1 = 1 , w2 = 2
h
wi+1 = wi +
(23f (ti , wi ) 16f (ti1 , wi1 + 5f (ti2 , wi2 ))
12
para i = 2, 3, ..., N 1.
Deve-se notar que qualquer polinomio interpolador poderia ter sido usado no desenvolvimento do metodo, como por exemplo o polinomio interpolador de Lagrange.
Se y(t) e a solucao do PVI (46) e

wi+1 = am wi + am1 wi1 + ... + a0 wim +


+h[bm+1 f (ti+1 , wi+1 ) + bm f (ti , wi ) + ... + b0 f (tim , wim )]

(53)

e o passo (i + 1) no metodo multi-passo, o erro de truncamento local neste passo e dado


por:

i+1 (h) =

y(ti+1 ) am y(ti ) a0 ytim )

h
[bm+1 f (ti+1 , wi+1 ) + bm f (ti , wi ) + ... + b0 f (tim , wim )]

(54)

para cada i = m, m + 1, , N 1.
Usando a definicao acima no metodo de Adams Bashforth de tres passos, derivado anteriormente, podemos ver que o erro de truncamento associado a este metodo e O(h3 ).

215

A seguir vamos listar alguns dos m


etodos explcitos mais comuns:
Adams-Bashforth de Dois passos

w0 =
w1 = 1
h
wi+1 = wi + [3f (ti , wi ) f (ti1 , wi1 )]
2
para i = 1, 2, . . . , N 1. O Erro de truncamento local e dado por:
i+1 (h) =

5 000
y (i )h2 ,
12

ti1 < i < ti+1 .

Adams-Bashforth de Tr
es passos

w0 =
w1 = 1
w2 = 2
wi+1 = wi +

h
[23f (ti , wi ) 16f (ti1 , wi1 ) + 5f (ti2 , wi2 )]
12

para i = 2, 3, . . . , N 1. O Erro de truncamento local e dado por:


3
i+1 (h) = y iv (i )h3 ,
8

ti2 < i < ti+1 .

Adams-Bashforth de Quatro passos

w0
w1
w2
w3

=
=
=
=

1
2
3

wi+1 = wi +

h
[55f (ti , wi ) 59f (ti1 , wi1 ) + 37f (ti2 , wi2 ) 9f (ti3 , wi3 )]
24

para i = 3, 4, . . . , N 1. O Erro de truncamento local e dado por:


i+1 (h) =

251 v
y (i )h4 ,
720

ti3 < i < ti+1 .

216

Adams-Bashforth de Cinco passos

w0
w1
w2
w3
w4

=
=
=
=
=

1
2
3
4

h
[1901f (ti , wi ) 2774f (ti1 , wi1 ) + 2616f (ti2 , wi2 )
720
1274f (ti3 , wi3 ) + 251f (ti4 , wi4 )]

wi+1 = wi +

para i = 4, 5, . . . , N 1. O Erro de truncamento local e dado por:


i+1 (h) =

95 vi
y (i )h5 ,
288

ti4 < i < ti+1 .

Os metodos implcitos podem ser derivados da mesma forma, apenas


R t usando o ponto
(ti+1 , f (ti+1 , y(ti+1 )) como ponto adicional na aproximacao da integral tii+1 f (t, y(t))dt. Estes sao os metodos de Adams Moulton.
Alguns dos metodos de Implcitos mais comuns sao:
Adams-Moulton de Dois passos

w0 =
w 1 = 1
wi+1 = wi +

h
[5f (ti+1 , wi+1 ) + 8f (ti , wi ) f (ti1 , wi1 )]
12

para i = 1, 2, . . . , N 1. O Erro de truncamento local e dado por:


i+1 (h) =

1 iv
y (i )h3 ,
24

ti1 < i < ti+1 .

Adams-Moulton de Tr
es passos

w0 =
w1 = 1
w2 = 2
wi+1 = wi +

h
[9f (ti+1 , wi+1 ) + 19f (ti , wi ) 5f (ti1 , wi1 ) + f (ti2 , wi2 )]
24

217

para i = 2, 3, . . . , N 1. O Erro de truncamento local e dado por:


i+1 (h) =

19 v
y (i )h4 ,
720

ti2 < i < ti+1 .

Adams-Moulton de Quatro passos

w0
w1
w2
w3

=
=
=
=

1
2
3

h
[251f (ti+1 , wi+1 ) + 646f (ti , wi )
720
264f (ti1 , wi1 ) + 106f (ti2 , wi2 ) 19f (ti3 , wi3 )]

wi+1 = wi +

para i = 3, 4, . . . , N 1. O Erro de truncamento local e dado por:


i+1 (h) =

3 vi
y (i )h5 ,
160

ti3 < i < ti+1 .

e interessante comparar um metodo de m-passos de Adams Bashforth explcito e um de


(m 1)-passos de Adams Moulton implcito. Ambos precisam de m calculos da funcao f por
passo e ambos possuem termos y (m+1) (i )hm em seus erros locais de truncamento. Em geral, os
coeficientes dos termos envolvendo f e os erros locais de truncamento sao menores nos metodos
implcitos. Isto leva a maior estabilidade e menores erros de arredondamento nos metodos
implcitos.
Na pratica metodos de multi-passo implcitos nao sao usados como descrito acima. Eles
normalmente sao usados para melhorar os resultados de aproximacoes obtidas pelos metodos
explcitos. A combinacao entre as tecnicas implcita e explcita e chamada de m
etodo de
Predic
ao Correc
ao. O metodo explcito prediz uma aproximacao e o metodo implcito corrige
esta predicao.
Como exemplo vamos considerar o metodo de quarta ordem para resolver um problema de
valor inicial.
y 0 = f (t, y),

a t b,

y(a) =

1. w0 = e a condicao inicial do problema.


2. w1 , w2 e w3 sao calculados atraves de um metodo de um passo, o mais usado e o metodo
de Runge Kutta de Quarta ordem.
(0)

3. Calculamos pelo metodo explcito uma aproximacao que iremos chamar de w4 para y(t4 ),
usando o metodo de Adams-Bashforth como preditor:
(0)

w4 = w3 +

h
[55f (t3 , w3 ) 59f (t2 , w2 ) + 37f (t1 , w1 ) 9f (t0 , w0 )] .
24

218

4. Esta aproximacao e melhorada pelo uso do metodo de Adams-Moulton de tres passos


como corretor, assim:
i
h h
(0)
(1)
9f (t4 , w4 ) + 19f (t3 , w3 ) 5f (t2 , w2 ) + f (t1 , w1 ) .
w4 = w3 +
24
(1)

5. Agora, fazemos w4 = w4 e a aproximacao corrigida do valor exato y(t4 ).


6. Repetimos o procedimento para encontrar a aproximacao w5 da solucao exata y(t5 ), isto
e
7.
(0)

w5 = w4 +

h
[55f (t4 , w4 ) 59f (t3 , w3 ) + 37f (t2 , w2 ) 9f (t1 , w1 )] .
24

e corrigimos este valor como:


i
h h
(0)
(1)
9f (t5 , w5 ) + 19f (t4 , w4 ) 5f (t3 , w3 ) + f (t2 , w2 ) .
w5 = w4 +
24
(1)

8. Fazemos agora w5 = w5 . E assim por diante.


Algortimo 5.4
PREDITOR-CORRETOR Adams de Quarta Ordem
Aproxima solucao do PVI y 0 = f (t, y), a t b, y(a) = em N + 1 pontos igualmente
espacados no intervalo [a, b]:
ENTRADA: Pontos finais a, b, O n
umero inteiro N e a condicao inicial .
SADA: Aproximacao w para y em N + 1 valores de t.
Passo 1 Faca
h = (b a)/N ;
t0 = a;
w0 = ;
SAIDA (t0 , y0 ).
Passo 2 Para i = 1, 2, 3 execute passos 3-5 (RK quarta ordem)
Passo 3 Faca:
K1
K2
K3
K4

= hf (ti1 , wi1 );
= hf (ti1 + h/2, wi1 + K1 /2);
= hf (ti1 + h/2, wi1 + K2 /2);
= hf (ti1 + h, wi1 + K3 ).

219

ti
0.4
0.5
0.6
0.7
0.8
0.9
1.0

wi
1.0703199182
1.1065302684
1.1488110326
1.1965845314
1.2493280604
1.3065686568
1.3678783660

|y(ti ) wi |
1.278 107
3.923 107
6.035 107
7.724 107
9.043 107
1.003 106
1.075 106

Passo 4 Faca
wi = wi1 + (K1 + 2K2 + 2K3 + K4 )/6;
t = a + ih.
Passo 5 SAIDA (ti , wi ).
Passo 6 Para i = 4, , N faca passos 7-10.
Passo 7 Faca
t = a + ih;
w = w3 + h [55f (t3 , w3 ) 59f (t2 , w2 ) + 37f (t1 , w1 ) 9f (t0 , w0 )] /24;
w = w3 + h [9f (t, w) + 19f (t3 , w3 ) 5f (t2 2, w2 ) + f (t1 1, w1 )] /24.
Passo 8 SADA (t, w).
Passo 9 Para j = 0, 1, 2
Faca:
tj = tj+1 ;
wj = wj+1 .
Passo 10 Faca t3 = t;
w3 = w.
Passo 11 PARE.

EXEMPLO:
A tabela lista os resultados obtidos pelo algoritmo 5.4 para o problema de valor inicial
y 0 = y + t + 1,

0.

y(0) = 1,

com N=10.
Outros metodos que podem ser derivados usando integracao de polinomios interpoladores

220

sobre intervalos da forma [tj , ti+1 ], para j i 1, para obter uma aproximacao para y(ti+1 ).
Um metodo explcito e obtido da integracao do polinomio de Newton para tras sobre [ti3 , ti+1 ]
e e chamado de M
etodo de Milne:
wi+1 = wi 3 +

4h
[2f (ti , wi ) f (ti1 ), wi1 + 2f (ti2 , wi2 )] ,
3

14 4 (5)
que possui erro de truncamento 25
h y (i ), para algum i (ti3 , ti+1 ).
Este metodo e ocasionalmente usado como preditor para um metodo implcito chamado de
M
etodo de Simpson,

wi+1 = wi1 +

h
[f (ti+1 , wi+1 ) + 4f (ti , wi ) + f (ti1 , wi1 )] ,
3

com erro local de truncamento (h4 /90)y (5) (i ) onde ti1 < i < ti + 1 e e obtido pela integracao
do metodo de Newton para tras sobre [ti1 , ti+1 ].
Apesar do metodo preditor-corretor de Milne-Simpson geralmente possuir menor erro local
de truncamento que a associacao de Adam-Bashforth-Moulton, a tecnica fica limitada por
problemas de estabilidade.
Os metodos mais populares para a resolucao de problemas de valor inicial sao os metodos
de Runge-Kutta de quarta ou quinta ordem e o metodo de Predicao Correcao como Adams
Bashforth-Moulton de quarta ou quinta ordem. Embora nenhum dos metodos seja invariavelmente superior aos demais em todos os problemas e apropriado salientar as vantagens e
desvantagens de cada um.
Os metodos de Runge Kutta possuem a importante vantagem de serem auto-inicializados.
Alem disto sao estaveis e fornecem boa precisao. Como programa estes metodos ocupam relativamente pouca memoria, contudo eles nao fornecem uma estimativa da precisao a ser atingida,
de modo que o usuario pode nao saber se o passo h, que esta sendo usado e adequado. Naturalmente, podemos processar o mesmo problema com diversos valores de h e estimar a precisao
comparando-se os resultados, mas este procedimento exige muito mais tempo de maquina.
Ja os metodos de Predicao-Correcao fornecem uma estimativa automatica de erro, permitindo, desta forma, a selecao de um passo h otimo, isto e com a precisao requerida.

9.9

Estabilidade dos M
etodos Num
ericos

Ate aqui foram apresentados metodos para aproximacao da solucao de problemas de valor
inicial. Apesar de existirem muitos outros metodos de aproximacao estes foram escolhidos, pois
geralmente satisfazem tres criterios:
Seu desenvolvimento e claro o suficiente para estudantes que estao vendo pela primeira
vez analise numerica possam entender
A maioria das tecnicas mais avancadas e complexas sao baseadas em um ou na combinacao
dos procedimentos descritos

221

Um ou mais destes metodos darao resultados satisfatorios para a maior parte dos problemas encontrados por estudantes de graduacao.
Nesta secao vamos discutir porque alguns destes metodos produzem resultados satisfatorios
quando outros metodos similares nao.
Definic
ao: Um metodo de um passo para equacao em diferenca com erro local de truncamento i (h) no i-esimo passo e dito consistente com a equacao diferencial que ele aproxima,
se
lim max |i (h)| = 0

h0 1iN

Note que esta definicao e essencialmente uma definicao local , uma vez que cada um dos
valores i (h) e comparada com o valor exato f (ti , yi ) para a aproximacao de y 0 em ti . Um significado mais realista para analisar o efeito de fazer h pequeno e determinar o efeito global do
metodo. Este e o erro maximo do metodo sobre todo o seu domnio de aproximacao, assumindo
somente que o metodo tem solucao exata no valor inicial.
Definic
ao: Um metodo de um passo para equacao em diferenca e dito convergente com respeito
a equacao diferencial que ele aproxima, se
lim max |yi wi | = 0

h0 1iN

onde yi = y(ti ) denota o valor exato de solucao da equacao diferencial e wi e a aproximcao


obtida do metodo de diferenca no i-esimo passo.
Notando que o limite de erro para a formula de Euler e dada por,
|yi wi |


hM  L(ti a)
e
1
2L

com L constante de Lipschtz e |y(t)| M em D = {(t, y)/a t b, y } temos


que,
max |yi wi |

1iN


hM  L(ba)
e
1 .
2L

Assim o metodo de Euler e convergente com respeito a equacao diferencial quando satisfaz as
condicoes acima e sua razao de convergencia e O(h).
Um metodo de um passo e consistente precisamente quando a equacao em diferenca para o
metodo aproxima a equacao diferencial quando o tamanho do passo vai a zero; isto e, o erro de
truncamento local vai a zero quando o tamanho do passo se aproxima de zero. A definicao de
convergencia tem uma conotacao similar. Um metodo e convergente, precisamente quando a
solucao a equacao em diferenca aproxima a solucao da equacao diferencial quando o tamanho
do passo vai `a zero.

222

O outro tipo de limite de erro do problema que existe quando usamos metodos de equacoes
em diferencas para aproximar solucoes de equacoes diferenciais e uma consequencia de nao usar
resultados precisos. Na pratica nem a condicao inicial, nem a aritmetica usada sao representadas
de forma exata, por causa do erro de arredondamento associado a` aritmetica de finitos dgitos.
Aqui vamos tentar determinar quais dos metodos sao estaveis, no sentido de que pequenas trocas
ou perturbacoes na condicao inicial provocarao pequenas trocas nas aproximacoes geradas.
Assim um metodo estavel e aquele que depende continuamente dos dados iniciais.

223

Teorema 46 Suponha que o PVI y 0 = f (t, y), com a t b, e condicao inicial y(a) = ,
seja aproximado por um metodo de diferencas de um passo na forma
w0 =
,
.
wi+1 = wi + h(ti , wi , h)
Suponha alem disto, que exista um n
umero h0 > 0 e que (ti , wi , h) seja contnua e satisfaca a
condicao de Lipschitz na variavel w com a constante de Lipschitz L em
D = {(t, w, h)/a t b, < w < , 0 h h0 }
. Entao:
1. O metodo e estavel
2. O metodo de diferencas e convergente se e somente se for consistente, o que equivale a
(t, y, 0) = f (t, y), para todo a t b;
3. Se existe uma funcao e para cada i = 1, 2, ..., N o erro local de truncamento i (h)
satisfaz |i (h)| (h) sempre que 0 h h0 , entao
|y(ti ) wi |

(h) L(ti a)
e
.
L

Multipasso
Em um metodo multipasso, o resultado nao depende apenas da solucao encontrada no passo
anterior, mas de 2 ou mais. Desta forma os conceitos de convergencia e estabilidade ficam um
pouco diferentes. Se consideramos o PVI:
y0
= f (t, y(t))
y(a) =

(55)

Um metodo de multipasso para este problema e descrito na forma:


w0 = ,

w1 = 1 , ... wm1 = m1
(56)

am1 wi + ak2 wi1 + ... + a0 w1+1m = hF (ti , h, wi+1 , wi , , ..., wi+1m )


para cada i = m 1, m, ..., N 1. Como em metodo de passo simples, o erro de truncamento
local mede como a solucao y da equacao diferencial nao satisfaz a equacao diferencas.
Definic
ao 14 Um metodo de multi-passo e dito convergente se a solucao da equac
ao em
diferencas se aproxima da solucao da equacao diferencial a medida que h 0, isto e
lim max |wi = y(ti )| = 0

h0 0iN

224

Ja a consistencia apresenta uma pequena mudanca em relacao aos metodos de um passo, pois
queremos que a Equacao em diferencas se aproxime da equacao diferencial quando o tamanho
do passo diminui, porem agora temos muitas condicoes iniciais e queremos que os erros de todos
os i tendam para zero quando h diminui. Isto e queremos que
lim |j (h)| = 0, j = m, m + 1, ..., N

h0

lim |i y(ti )| = 0, i = 1, 2, ..., m 1.

h0

Aqui vamos observar que associado a equacao (56) definimos o chamado polinomio caracterstico como:
p() = m am1 k1 am2 k2 ... + a1 1 a0

(57)

A estabilidade com relacao ao erro de arredondamento e determinada pela magnitude dos zeros
do polinomio caracterstico (57).
Definic
ao 15 Sejam 1 , 2 , ... ,m , as razes do polinomio caracterstico associada a uma
equacao de diferencas de um metodo multi-passo (56). Se |i | 1 para i = 1, 2..., m e se todas
as razes com magnitude 1 sao simples, entao dizemos que este metodo satisfaz a condi
c
ao de
raz.
Alem de convergencia, Outros dois termos usados sao estabilidade e consist
encia. Um
metodo e dito est
avel se todas as razes do polinomio p estao dentro do disco |z| 1 e se cada
raz de modulo 1 e simples.
Definic
ao 16
1. Os metodos que satisfazem a condicao de raz e tem = 1 como a u
nica
raz da equacao caracterstica de magnitude 1 sao ditos fortemente est
aveis.
2. Os metodos que satisfazem a condicao de raz e tem mais de uma raz distinta da equac
ao
caracterstica de magnitude um sao ditos fracamente est
aveis
3. Os metodos que nao satisfazem a condicao de raz sao chamados de inst
aveis.
A consist
encia e a converg
encia de um metodo de multi-passo sao conceitos muito proximos
ao de estabilidade de arredondamento do metodo. Este fato e descrito pelo teorema:
Teorema 47 Um metodo de multi-passo (56) e estavel, se e somente se satisfaz a condic
ao
de raz. Alem disto se o metodo de diferenca e consistente com a equacao diferencial, ent
ao o
metodo e estavel se e somente se e convergente.
Exemplo 69 O metodo de Adams Basforth de quarta ordem:
wi+1 = wi + hF (ti , h, wi+1 , ..., wi3 )
neste caso, i 3 = i + 1 m logo m = 4 e am1 = a3 = 1 (coeficiente de wi ) e a2 = a1 = a0 = 0,
logo o polinomio caracterstico associado e:
4 3 = 0
logo 1 = 1 e 2 = 3 = 4 = 0. Assim este metodo satisfaz a condicao de raz e e fortemente
estavel.

225

O mesmo pode ser mostrado para o metodo de Adams Moulton de quarta ordem.
Exemplo 70 Vamos considerar o metodo de Milne
wi+1 = wi3 +

4h
(2f (ti , wi ) f (ti1 , wi1 ) + 2f (ti2 , wi2 ))
3

que e um metodo de quarta ordem. Neste caso i 3 = i + 1 m, isto e m = 4, a2 = 0, a1 = 0


e a0 = 1, ou o polinomio caracterstico e 4 1 = 0 e as razes sao 1, 1, i, 1 distintas, mas
todas com modulo 1. Logo o metodo de Milne e fracamente estavel.
Conforme foi dito anteriormente, apesar do metodo preditor-corretor de Milne-Simpson
geralmente possuir menor erro local de truncamento que a associacao de Adam-BashforthMoulton, a tecnica fica limitada por problemas de estabilidade. AB-AM e fortemente estavel e
Milne Simpson e fracamente estavel.

226

9.10

Equaco
es Rgidas (Stiff )

A propriedade de dureza, em um sistema de equacoes diferenciais ordinarias, refere-se a uma


larga disparidade nas escalas de tempo do componente na solucao vetorial. Alguns procedimentos numericos, que normalmente sao satisfatorios, em geral aproximarao pobremente em
equacoes rijas, ou nem isto. Este fato ocorre quando a estabilidade numerica das solucoes apenas
existem quando usamos um passo muito pequeno no tempo. Este tipo de equacoes aparecem
em problemas de vibracao como em um sistema massa-mola quando as constantes da mola sao
muito grandes, no monitoramento de reacoes qumicas que podem ter uma grande diversidade
na escala de tempo para as trocas fsicas e qumicas que ocorrem; em circuitos eletricos onde
os termos transientes com escala de ordem de micro-segundos podem ser impostas sobre um
circuito em geral de comportamento suave; em cinetica de reatores nucleares etc... O nome
rgidoe devido a sistemas do tipo massa-mola com grandes valores para a constante da mola.

9.10.1

O m
etodo de Euler

Para ilustrarmos a dificuldade do problema vamos aplicar o metodo de Euler sobre o seguinte
problema teste:
y 0 = y,

y(0) =

(58)

Assim, aplicando o metodo de Euler sobre este problema temos


w0 =
wn+1 = wn + hwn ,

(59)

n = 0, 1, ...

Desta forma:
w0 = 1
w1 = 1 + hw0 = (1 + h)
w2 = w1 + w1 = (1 + )2 w0 = (1 + )2
..
.

(60)

wn = (1 + h)n w0 = (1 + h)n
Por outro lado a solucao exata do problema teste (58) e dados por
y(t) = et

(61)

Aqui devemos notar que se < 0,a solucao acima e fortemente decrescente e tende
rapidamente para 0, com o crescimento do tempo t. Por outro lado, olhando a solucao
numerica vemos que para ela tender para zero, devemos escolher h de forma que
|1 + h| < 1 1 < 1 + h < 1 2 < h < 0
Agora como e um n
umero negativo, temos que h > 2, ou
h>

227

Como conhecemos a solucao exata, podemos calcular o erro absoluto,


y(tj ) wj | = |ejh (1 + h)j ||| = |(eh )j (1 + h)j |||
Assim a precisao depende de como o termo 1 + h aproxima a exponencial eh .
Aqui devemos observar que, em contraste com o metodo de Euler explcito que precisa
encontrar os criterios acima mencionados, o metodo de Euler implcito, definido por
wn+1 = wn + hf (tn+1 , wn+1 )
quando aplicado ao nosso problema teste produz:
w0 =
wn+1 = wn + hwn+1 ,

n = 0, 1, ...

(62)

isto e
wn + 1 = (1h)( 1)wn
ou no enesimo passo teremos,
wn = (1 h)1
Assim, neste caso como e negativo, o requerimento para que nossa solucao tenda a zero
com o aumento do tempo e que
|1 h|1 < 1
o que sera satisfeito para qualquer tamanho de passo h.
De forma similar vamos aplicar o metodo de Euler a um sistema de EDO. Vamos novamente entender que um bom metodo numerico deve funcionar bem uma equacao teste
com solucao exponencial. Vamos agora considerar o seguinte problema teste
 0
y1 = y1 + y2
y1 (0) = 2
(63)
y20 = y1 + y2
y2 (0) = 0
A solucao analtica deste sistema e dado por:

y1 (t) = e(+)t + e()t
y2 (t) = e(+)t e()t
Aplicando o metodo de Euler, a solucao e dada por:
(
(1)
(1)
(1)
(2)
(1)
wn+1 = wn + h(wn + )wn+1 , w0 = 2
(2)
(2)
(1)
(2)
(2)
wn+1 = wn + h(wn + )wn+1 , w0 = 0
E resolvendo estas equacoes em diferencas temos
(
(1)
wn = (1 + h + h)n + (1 + h h)n
(2)
wn = (1 + h + h)n (1 + h h)n

228

(64)

(65)

(66)

Aqui consideramos que < 0 e < 0, assim a solucao exata dada por (64) estao
caindo para zero. Para que a solucao numerica dada pelas equacoes em diferencas (66)
mantenham este comportamento, devemos ter que:
|1 + h + h| < 1

|1 + h h| < 1

(67)

Lembrando que estamos considerando e negativos, as desigualdades acima equivalem


a escolha de
2
h<
+
Por exemplo se temos = 20 e = 19, nossa solucao e uma combinacao de e39t
e et . A primeira destas funcoes e transiente, isto e depois de um pequeno intervalo de
tempo podemos negligencia-la quando comparada a segunda funcao. E ainda assim ela
ira controlar o tamanho do passo no tempo por toda a solucao numerica!
A situacao e similar em outros metodos de um passo em geral, existe uma funcao Q com
a propriedade que o metodo de diferencas pode ser aplicado a` equacao teste e teremos,
wn+1 = Q(h)wn

(68)

Novamente a precisao do metodo depende diretamente de como a funcao Q(h) aproxima


eh . Podemos mostrar que o erro cresce sem limites se |Q(h)| > 1.
No caso dos metodos de multi-passo, se aplicamos ao nosso caso teste temos:
wj+1 = am1 wj + ... + a0 wj+1m + h(bm wj+1 + bm1 wj + ... + b0 wj+1m ),

(69)

para j = 1, ..., N 1, ou isolando wj+1 temos,


(1 hbm )wj+1 (am1 + hbm1 )wj ... (a0 + hb0 )wj+1m = 0.

(70)

O polinomio caracterstico associado a esta equacao de diferencas e (que inclui a funcao


teste):
Q(z, h) = (1 hbm )z m (am1 + hbm1 )z m1 ... (a0 + hb0 ).

(71)

Vamos agora supor que as m primeiras solucoes sao conhecidas, isto e w0 , w1 , ..., wm1 sao
conhecidas e que para um h fixo tambem conhecamos as m razes do polinomio Q(z, h),
sejam elas 1 , 2 , ..., m .Se estas razes sao distintas o metodo considerado encontrara a
aproximacao da solucao como
wj =

m
X

ck (k )j ,

j = m, m + 1, ..., m.

(72)

k=1

Se as razes sao m
ultiplas raciocnio semelhante continua valendo. Para que wj definido em
(72), aproxime a solucao exata y(tj ) = (eh )j , devemos ter todas as razes k satisfazendo
|k | < 1, caso contrario a solucao aproximada por (72) nao ira decair a` zero.

229

Como exemplo vamos considerar o problema teste


y 0 = 30y,

0 t 1.5,

y(0) =

1
3

A solucao exata deste problema teste e


1
y(t) = e30t
3
Usando os metodos de Euler, RH4, Preditor Corretor de 4 passos, obtemos em t = 1.5 os
valores:
Tabela 9.5: Solucao do problema teste em t=1.5 e passo h= 0.1
Solucao Exata
9.54173 1021
Euler
1.09225 10 4
Runge Kutta 4
3.95730 10 1
Preditor Corretor
8.03840 10 5
As nao precisoes que aparecem neste exemplo sao devido a |Q(h)| > 1, para Euler e RK4
e de que o polinomio Q(z, h) possuir razes com modulo maior que 1 no caso do metodo do
Preditor corretor. Para obter melhor resultado devemos reduzir muito o tamanho do passo.

230

Para mostrar melhor o que ocorre, no que segue, usamos o metodo de Euler considerando
h = 0.1 e h = 0.05 para resolver o problema teste. Abaixo, mostramos as tabelas completas
para estes casos.
Tabela 9.6: PROGRAMA TESTE PARA EQUACOES RIGIDAS - h= 0.1
t
0.0000000E+00
0.1000000
0.2000000
0.3000000
0.4000000
0.5000000
0.6000000
0.7000000
0.8000000
0.9000000
1.000000
1.100000
1.200000
1.300000
1.400000
1.500000

Euler
0.3333333
-0.6666667
1.333333
-2.666667
5.333333
-10.66667
21.33333
-42.66667
85.33334
-170.6667
341.3333
-682.6667
1365.333
-2730.667
5461.333
-10922.67

Exata
1.000000
4.9787067E-02
2.4787523E-03
1.2340980E-04
6.1442124E-06
3.0590232E-07
1.5229979E-08
7.5825607E-10
3.7751344E-11
1.8795252E-12
9.3576229E-14
4.6588862E-15
2.3195227E-16
1.1548180E-17
5.7495220E-19
2.8625186E-20

Erro Relativo
0.6666666
14.39036
536.9050
21609.22
868024.6
3.4869520E+07
1.4007461E+09
5.6269472E+10
2.2604053E+12
9.0803074E+13
3.6476502E+15
1.4653002E+17
5.8862685E+18
2.3645863E+20
9.4987604E+21
3.8157540E+23

Tabela 9.7: PROGRAMA TESTE PARA EQUACOES RIGIDAS - h= 0.05


t
0.00
0.10
0.20
0.30
0.40
0.50
0.60
0.70
0.80
0.90
1.00
1.10
1.20
1.30
1.40
1.50

Euler
0.3333333
8.3333321E-02
2.0833332E-02
5.2083321E-03
1.3020831E-03
3.2552081E-04
8.1380189E-05
2.0345049E-05
5.0862627E-06
1.2715655E-06
3.1789139E-07
7.9472855E-08
1.9868210E-08
4.9670530E-09
1.2417634E-09
3.1044078E-10

Exata
1.000000
4.9787067E-02
2.4787523E-03
1.2340980E-04
6.1442124E-06
3.0590232E-07
1.5229979E-08
7.5825607E-10
3.7751344E-11
1.8795252E-12
9.3576229E-14
4.6588862E-15
2.3195227E-16
1.1548180E-17
5.7495220E-19
2.8625186E-20

231

Erro Relativo
0.6666666
0.6737946
7.404766
41.20355
210.9203
1063.133
5342.421
26830.37
134729.6
676534.5
3397137.
1.7058336E+07
8.5656456E+07
4.3011565E+08
2.1597681E+09
1.0845022E+10

Definic
ao 17 A regiao R, chamada de estabilidade regi
ao de estabilidade absoluta
Para um metodo de passo simples e dada por R = {h C/|Q(h)| < 1}
Para um metodo de passo m
ultiplo e dada por R = {h C/|k | < 1 para k raz de Q(z, h)}
Conforme vimos acima, apenas podemos aplicar de forma eficiente um metodo numerico
em uma equacao rgida se h esta em sua regiao de estabilidade absoluta e esta restricao sobre
h devera ser mantida durante todo o domnio de t, para controle do erro. Isto e mesmo que
avaliando o erro de truncamento tudo indique que h pode ser maior, o criterio de estabilidade
absoluta faz que ele tenha que ser mantido pequeno. Os metodos de passo variavel nao sao
indicados para este tipo de problema, pois o passo h pode ser aumentado saindo assim da zona
de estabilidade absoluta.
Definic
ao 18 Dizemos que um metodo numerico e A-est
avel se sua regiao de estabilidade
absoluta contem todo o semi-plano esquerdo.
Aqui, vamos considerar um m
etodo Implcito Trapezoidal que e um metodo A-est
avel,
definido por:
w0 =
wj+1 = wj + h2 (f (tj+1 , wj+1 ) + f (tj , wj )) , 0 < j < N 1

(73)

Este e o u
nico metodo de multi-passo A-est
avel, e apesar de nao apresentar aproximacoes muito
precisas para passos grandes o erro e mantido sob controle. Para sistemas rgidos, normalmente
sao usados metodos implcitos, mesmo que isto implique resolver uma equacao nao linear de
forma iterativa a cada passo no tempo. Aqui vamos usando como exemplo o metodo descrito
por (73).
Calcular tj e tj+1 e wj
Para encontrarmos wj+1 devemos encontrar o zero de
F (w) = w wj

h
(f (tj+1 , w) + f (tj , wj ))
2
(0)

Como chuteinicial no processo iterativo, normalmente fazemos wj+1 = wj e aplicamos


por exemplo o metodo de Newton-Raphson para encontrar a solucao, assim:
(k1)

(k)

(k1)

wj+1 = wj+1

F (wj+1 )
(k1)

F 0 (wj+1 )

(k1)

(k1)

= wj+1

(k1)

wj+1 wj h2 (f (tj , wj ) + f (tj+2 , wj+1 ))


(k1)

1 h2 fy (tj+1 , wj+1 )

onde fy (t, y) = y
f (t, y). Em geral 3 ou 4 iteracoes sao suficientes para para obtermos a
precisao desejada.

232

Exemplo 71 Seja o problema:


y 0 = 5e5t (y t)2 + 1, 0 t 1, y(0) = 1
A solucao analtica deste problema e dado por:
y(t) = t e5t
Resolvendo este problema por Runge-Kutta e M. Trapezoidal implcito com h = 0.2 e h = 0.25
obtemos os seguintes resultados:

ti
0.0
0.2
0.4
0.6
0.8
1.0
ti
0.00
0.25
0.50
0.75
1.00

Runge Kutta
h = 0.2
wi
|y(ti ) wi |
-1.0000000
0
-0.1488521
1.9027102
0.2684884
3.8237103
0.5519927
1.7798103
0.7822857
6.0131104
0.9934905
2.2845104
h = 0.22
wi
|y(ti ) wi |
-1.0000000
0
0.4014315
4.37936101
3.4374753
3.01956100
23
1.4463910
1.446391023
NaN

Trapezoidal
h = 0.2
wi
|y(ti ) wi |
-1.00000000
0
-0.14144969 2.6383102
0.2748614 1.0197102
0.5539898 3.7700103
0.7830720 1.3876103
0.9937726 5.1050104
h = 0.25
wi
|y(ti ) wi |
-1.00000000
0
0.0054557 4.1961102
0.4267572 8.8422103
0.7291528 2.6706103
0.9940199 7.5790104

Os problemas deste tipo, normalmente aparecem como um sistema de ED. O metodo descrito
acima por exemplo pode ser aplicado e a cada passo um sistema nao linear de equacoes deve
ser resolvido.

233

9.11

Problema de Valor Inicial: Sistemas de EDO e EDO


de Ordem Superior

Um sistema de EDO de primeira ordem pode ser escrito como:

dt y1 (t) = f1 (t, y1 , y2 , ..., yn )

d y2 (t) = f2 (t, y1 , y2 , ..., yn )


dt
..

d y (t) = f (t, y , y , ..., y )


n
1 2
n
dt n

(74)

O sistema acima possui n funcoes incognitas, sao elas y1 (t), y2 (t), ... e yn (t), e n EDO envolvendo
estas funcoes incognitas. O problema de valor inicial, associa ao sistema de equacoes (74) um
conjunto de condicoes iniciais definido por:

y1 (a) = 1

y2 (t0 ) = 2
.
(75)
..

y (t ) =
n 0
n
Uma notacao conveniente para este sistema o sistema de equacoes (74) e a notacao vetorial.
Pra isto, chamamos do Y(t) ao vetor coluna definido por
Y(t) = [y1 (t), y2 (t), ..., yn (t)]T .
Desta forma Y(t) e uma funcao de R (ou um intervalo de R) em Rn . De forma similar vamos
notar o vetor F = [f1 , f2 , ..., fn ]T , onde cada funcao fi = fi (t, y1 , y2 , ..., yn ) onde cada fi e uma
funcao sobre Rn+1 (ou subintervalo deste. Desta forma F e uma funcao de Rn+1 em Rn . Com
esta notacao o sistema (74) pode ser escrito como:
d
Y = F(t, Y)
dt
e a condicao inicial e dada por Y(t0 ) = [1 , 2 , ..., n ]T .
Por exemplo

(76)

Exemplo 72 Como exemplo vamos considerar o seguinte sistema linear fazendo x1 = x e


x2 = y,
 d
x(t) = x + 4y et
dt
(77)
d
y(t) = x + t + 2et
dt
com condicao de contorno dada por x(0) = 4 e y(0) = 5/4, possui solucao u
nica dada por:

x(t) = 4e3t + 2et 2et
(78)
y(t) = 2e3t et + 41 et
Matricialmente temos:


x(t)
Y(t) =
,
y(t)


F(t, Y) =

f1 (t, x, y)
f2 (t, x, t)

234


=

x + 4y et
x + t + 2et

Aqui tambem devemos chamar a atencao que, conforme foi dito no incio deste captulo, um
problema de valor inicial de ordem superior pode ser escrito como um sistema de EDO. Para
isto, vamos supor que temos o seguinte PVI de ordem n
z (n) = f (t, z, z 0 , ..., z (n1) )
com
z(t0 ) = 1 , z 0 (t0 ) = 2 ,

....,

z (n1) (t0 ) = n .

Para resolvermos este sistema pelos metodos estudados anteriormente, a seguir, introduzimos
a mudanca de varaveis:
y1 = z(t)

y1 = z 0 (t)

y3 = z 00 (t) ... yn = z (n1) (t)

Estas novas variaveis satisfazem ao seguinte sistema de EDO de primeira ordem:

dt y1 (t) = y2 (t)

dt y2 (t) = y3 (t)
d
y (t) = y4 (t)
dt 3

..

d y (t) = f (t, y , y , ..., y )


dt n

com a condicao

y1 (t0 )

y2 (t0 )
y3 (t0 )

y (t )
n 0

inicial
= 1
= 2
= 3
..
.
= n )

Exemplo 73 Vamos considerar o seguinte problema de valor inicial

(sin t)z 000 + cos(ty) + sin(t2 + z 00 ) + (y 0 )3 = ln t

z(2) = 7
z 0 (2) = 3

00
z (2) = 4
Vamos converter este sistema em um PVI de primeira ordem fazendo a mudanca de vari
aveis:
y1 (t) = z(t),

y2 (t) = z 0 (t),

o sistema e dado por:

y1 (t) = y2 (t)

dt

d
y2 (t) = y3 (t)
dt

d
ln t x32 sin(t2 + y3 ) cos(ty1 )

y3 (t) =
dt
sin(t)
com condicao inicial Y(2) = (7, 3, 4)T .

235

e y3 (t) = z 00 (t)

9.11.1

Resolu
c
ao de Sistemas de EDO para PVI

Os sistemas de EDO podem ser resolvidos pelos metodos ja discutidos nas primeiras secoes
deste captulo. Assim podemos usar o metodos de Euler, Taylor de ordem superior, RungeKutta, os metodos de Adams Bashforth, ou preditor corretor. Por exemplo o metodo de Runge
Kutta de quarta ordem na forma matricial e dado por:
1
W(t + h) = W(t) + (K1 + 2K2 + 2K3 + K4 )
6
onde

K1

K2
K3

K4

(79)

= hF(t, X)
= hF(t + 21 h, K1 )
= hF(t + 12 h, K2 )
= hF(t + h, K3 )

Todos os metodos desenvolvidos para resolucao de PVI podem ser aplicados para a solucao
de sistema de EDO, inclusive os metodos de Multistep. Esta extensao e feita de forma direta.
Como exemplo vamos resolver um PVI de segunda ordem por um metodo de Runge Kutta
de ordem 2.
Exemplo 74 Neste exemplo, vamos considerar o seguinte PVI de segunda ordem:
y 00 2y 0 + 2y = e2t sin t, t > 0
y(0) = 0.4
y 0 (0) = 0.6
Encontre uma aproximacao para a solucao deste problema em t = 0.2 usando o metodo de Heun
, que e um metodo de Runge Kutta de segunda ordem definido por:
w0 =
wi+1 = wi +

h
4


f (ti , wi ) + 3f (ti + 23 h , wi + 23 hf (ti , wi )) i = 0, 1, ...

use h = 4t = 0.1
Soluc
ao: Primeiramente vamos proceder a seguinte mudanca de variaveis:y 0 = z e portanto
00
0
y = z , assim temos as equacoes:
y0 = z
z 0 = 2z 2y + e2t sin t
Na forma matricial temos:

 

d y(t)
z
= 2t
,
e sin t + 2z 2y
dt z(t)


W0 =

 

0.4
y(0)
=
,
z(0)
0.6

Assim temos que



F (t, W) =

z
2t
e sin t + 2z 2y

236


onde W(t) =


y(t)
z(t)

h = 0.1 Para i = 0 temos:


  


 

0.1
0.2
2
0.4
0.4
W1 = W0 +
F 0,
+ 3F
, W0 + (0.1)F 0,
0.6
0.6
4
3
3
0.1
W1 = W0 +
4

W1 =







0.2
0.6
0.44
+ 3F
,
0.4
0.626667
3




 


0.1
0.4
0.626667
0.462000
0.4
+3
=
+
0.6
0.297214
0.632291
0.6
4

para i = 1 temos:
0.1
W2 = W1 +
4










0.1
0.2 0.632291
0.462000
0.632291
0.462000
+
+ 3F 0.166667,
+
0.632291
0.218645
0.632291
4
3 0.218645







0.1
0.632291
0.504153
0.462000
+ 3F 0.166667,
+
0.218645
0.646867
0.632291
4





 



0.1
0.1 2.572890
0.646867
0.462000
0.462000
0.632291
+
+3
=
+
0.632291
0.218645
0.0539027
0.632291
4
4 0.380353


0.526322
0.641800

W2 =

W2 =

W2 =

W2 =

 






0.2
2
0.462000
0.462000
F 0.1,
+ 3F 0.1 +
, W1 + (0.1)F 0.1,
0.632291
0.632291
3
3

E desta forma temos que y(0.2) = 0.526322. Aqui notamos que por causa da mudanca de
variaveis feita, conhecemos tambem o valor de y 0 (0.2) = 0.641800.

237

Captulo 10
Problema de Valor de Contorno
Neste captulo vamos estudar metodos numericos para a resolucao de Problemas de Valor de
Contorno (PVC).

10.1

Exist
encia de Solu
c
ao

Primeiramente considerar o problema:


 00
y = f (t, y, y 0 )
y(a) = y(b) =

(1)

Devemos observar que teoremas de existencia para este tipo de problema tendem a ficar complicados e podem ser encontrados em textos avancados de Analise Numerica. Aqui vamos citar
um resultado devido a Keller(1968):
Teorema 48 O problema de valor de contorno
 00
y = f (t, y)
y(0) = 0 y(1) = 0
possui solucao u
nica se f /y e contnua, nao negativa e limitada na faixa infinida definida
pelas desigualdades 0 t 1, < y < .
O teorema anterior e aplicado apenas a um caso especial de PVC, mas uma simples troca
de variaveis pode reduzir casos mais gerais neste caso especial. Para fazer isto primeiramente
procedemos a troca no intervalo t. Vamos supor que o problema original e:
 00
y = f (t, y)
(2)
y(a) = y(b) =
A troca de variaveis t = a + (b a)s e feita aqui. Note que quando s = 0 temos t = a e que
quando s = 1 temos t = b. Mais ainda x(s) = y(a+s) com = ba. Entao x0 (s) = y 0 (a+s)

238

e x00 (s) = 2 y 00 (a + s). Da mesma forma x(0) = y(a) = e x(1) = y(b) = . Desta forma, se
y e solucao de (2), entao x e a solucao do PVC
 00
x = 2 f (a + s, x(s))
(3)
x(0) = x(1) =
Na direcao contraria se x e solucao de (3), entao a funcao y(t) = x((t a)/(b a)) e a solucao
de (2).
Teorema 49 Considere os dois PVCs:
 00
 00
y = f (t, y)
x = g(t, x)
(i)
(ii)
y(a) = y(b) =
x(0) = x(1) =
no qual
g(p, q) = (b a)2 f (a + (b a)p, q)
Se x e uma solucao de (ii), entao a funcao y definida por y(t) = x((t a)/(b a)) e a soluc
ao
de (i). Mais ainda, se y e uma solucao de (i), entao x(t) = y(a + (b a)t) e a solucao de (ii).
Ainda temos que para reduzir um PVC
 00
x = g(t, y)
y(0) = y(1) =
em um que possua condicoes de contorno homogeneas, simplesmente subtramos de x uma
funcao linear que leva os valores e em 0 e 1. O teorema nos diz que:
Teorema 50 Considere os dois PVCs:
 00
 00
x = g(t, x)
z = h(t, z)
(ii)
(iii)
x(0) = x(1) =
z(0) = 0 z(1) = 0
no qual
h(p, q) = g(p, q + + ( )p)
Se z e uma solucao de (iii), entao a funcao x(t) = z(t) + + ( )t e a solucao de (ii). Mais
ainda, se x e uma solucao de (ii), entao z(t) = y(t) [ + ( )t] e a solucao de (iii).
Teorema 51 Seja f uma funcao contnua de (t, s), onde 0 t 1 e < s < . Assuma
que sobre este domnio
|f (t, s1 ) f (t, s2 )| k|s1 s2 |

(k < 8)

Entao o PVC
 00
y = f (t, y)
y(0) = 0 y(1) = 0
possui solucao u
nica em C[0, 1].

239

Exemplo
Mostre que o seguinte problema possui solucao u
nica
 00
y = 2 exp(t cos y)
y(0) = 0 y(1) = 0
Para mostrar seja f (t, s) = 2 exp(t cos y). Pelo Teorema do valor medio temos que

f
|f (t, s1 ) f (t, s2 )| = |s1 s2 |
s
onde

f
= |2 exp(t cos s)(t sin s)| 2e < 5.437 < 8
s
Assim pelo teorema (51), o PVC descrito por (4) possui solucao u
nica.

240

(4)

10.2

M
etodo de Diferen
cas Finitas Para Problemas Lineares

O metodo do disparo pode ser usado para resolver PVC lineares e nao lineares mas, muitas vezes,
ele apresenta problemas de instabilidade. Uma outra aproximacao para PVC consiste de uma
discretizacao inicial do intervalo t seguido pelo uso de formula de aproximacao das derivadas.
Os metodos de diferencas finitas substituem cada uma das derivadas que aparecem no PVC
por um quociente em diferencas apropriado, escolhido de forma a obter o erro de truncamento
desejado. No nosso caso estas duas formulas de diferencas centrais sao especialmente u
teis:
y(t + h) y(t h) 1 2 000
h y ()
2h
6
y(t + h) 2y(t) + y(t h)
1
y 00 (t) =
h2 y (4) ( )
2h
12
EDO de segunda ordem
y 0 (t) =

(5)
(6)

Vamos supor que o problema a ser resolvido e:


 00
y = f (t, y, y 0 )
y(a) = y(b) =

(7)

Vamos particionar o intervalo [a, b] nos pontos a = t0 , t1 , t2 , ..., tn+1 = b, os quais nao necessitam ser igualmente espacados, mas geralmente na pratica sao. Agora se os pontos nao forem
igualmente espacados, versoes mais complexas das formulas (5) e (6) serao necessarias. Por
simplicidade, vamos assumir que:
ti = a + ih

0in+1

Vamos notar um valor aproximado

y0 =

h2 (yi1 2yi + yi+1 ) =

yn+1 =

10.2.1

h = (b a)/(n + 1)

(8)

de y(ti ) por yi . Assim, a versao discreta de (7) e dada por:

f (ti , yi , (2h)1 (yi+1 yi1 ))

(1 i n)

(9)

O caso Linear

Na equacao (7) temos n incognitas y1 , y2 , ..., yn e n equacoes que devem ser resolvidas. Se f
envolve yi de uma forma nao linear, estas equacoes serao nao lineares e, em geral, difceis de
serem resolvidas. Entretanto, vamos assumir que f e linear, isto e que possui a equacao possui
a forma:
y 00 = p(x)y 0 + q(x)y + r(x)
y(a) =
y(b) = ,

a x b,

Agora seguimos o seguinte:

241

(10)

Escolhemos um inteiro N e dividimos o intervalo [a, b] em N + 1 subintervalos. Os pontos


da malha dados por xi = a + ih, para i = 0, 1, ..., N + 1 e h = (b a)/(N + 1). Por
facilidade h sera considerado constante.
Em um ponto interior da malha xi , i = 1, ...N , substitumos as aproximacoes em diferencas
centrais dadas pelas formulas (5) e (6) para y 0 e y 00
Usando estas formulas em diferencas centrais na equacao (10) resulta na seguinte equacao:


y(xi+1 ) 2y(xi ) + y(xi1 )
y(xi+1 ) y(xi1 )
+ q(xi )y(xi )
= p(xi )
h2
2h

h2 
+ r(xi )
2p(xi )y 000 (i ) y (4) (i ) .
12
Usando esta equacao juntamente com as condicoes de contorno do problema y(a) = e
y(b) = obtemos um metodo de diferencas finitas com erro de truncamento de ordem
O(h2 ), definido por:
w0 = ,

wN +1 =

e


2wi wi+1 wi1


h2


+ p(xi )

wi+1 wi1
2h


+ q(xi )wi = r(xi )

(11)

para cada i = 1, 2, ..., N .


Agora rearranjando a equacao (11) temos:





h
h
2
1 + p(xi ) wi1 + 2 + h q(xi ) wi 1 p(xi ) wi+1 = h2 r(xi )
2
2
o que resulta em um sistema de N equacoes e N incognitas,
Aw = b

(12)

onde,

2 + h2 q(x1 )

1 + h2 p(x1 )

1 h2 p(x2 )

A=
..

..

.
0

2 + h2 q(x2 )

1 + h2 p(x2 )

..

..

..

.
...

242

...
..
.
..
.

...

0
..
.
..
.

..

.
0

..

.
0
h
2
2 + h q(xN )
1 2 p(xN )

w1
w2
..
.

w=

wN 1
wN


h2 r(x1 ) + 1 + h2 p(x1 ) w0
h2 r(x2 )
..
.

b=

h2 r(xN 1 )

h2 r(xN ) + 1 h2 p(xN ) wN +1

O sistema acima e tridiagonal e pode ser resolvido por um algoritmo Gaussiano especial
para estes casos. Note ainda que se h e pequeno e qi > 0, a matriz do sistema sera diagonal
dominante se




1
1
2

|2 + h qi | > 1 + hpi + 1 hpi = 2
2
2
Aqui nos assumimos que | 12 hpi | 1 porque entao o termo 1 + 12 hpi sao ambos nao negativos.
Desta forma assumimos que qi > 0 e h e pequeno o suficiente para que | 12 hpi | 1. O seguinte
teorema nos apresenta condicoes sob as quais podemos garantir a existencia de uma u
nica
solucao do sistema (12).
Teorema 52 Suponha que p, q e r sao funcoes contnuas sobre o intervalo [a, b]. Se q(x) > 0
sobre [a, b], entao o sistema tridiagonal (12) possui uma u
nica solucao se h < 2/L, onde
L = maxaxb |p(x)|.
Devemos ainda notar que a hipotese do teorema (52) garante a unicidade de solucao de
PVC (10), mas isto nao garante que y C(4) [a, b], o que e preciso para assegurar um erro de
truncamento de O(h2 ).
ALGORITMO 10
Aproxima a solucao do PVC y 00 = p(x)y 0 + q(x)y + r(x), y(a) = , y(b) =
ENTRADA: a, b, , , N .
SADA: Aproximacoes wi de y(xi ) para cada i = 0, 1, ..., N + 1.
1. Faca h = (b a)/(N + 1)
x=a+h
a1 = 2 + h2 q(x)
b1 = 1 + (h/2)p(x)
d1 = h2 r(x) + (1 + (h/2)p(x))
2. Para = 2, . . . , N 1 faca
x = a + ih
ai = 2 + h2 q(x)
bi = 1 + (h/2)p(x)
ci = 1 (h/2)p(x)
di = h2 r(x)
3. Faca x = b h

243

aN = 2 + h2 q(x)
cN = 1 (h/2)p(x)
dN = h2 r(x) + (1 (h/2)p(x))
4. Faca l1 = a1 (4 `a 10 resolve sistema tridiag.)
u1 = b1 /a1
5. Para i = 2, ..., N Faca
li = ai ci ui1
ui = bi /li
6. Faca lN = aN cN uN 1
7. Faca z1 = d1 /l1
8. Para i = 2, ..., N Faca zi = (di ci zi1 )/li
9. Faca
w0 =
wN +1 =
wN = zN
10. Para i = N 1, ..., 1 Faca wi = zi ui wi+1
11. Para i = 0, ..., N + 1 Faca x = a + ih
SADA: (x, wi )
12. PARE
Exemplo 75 O algoritmo (10) sera usado para aproximar a solucao do PVC
2
sin(ln x)
2
, 1 x 2,
y 00 = y 0 + 2 y +
x
x
x2

y(1) = 1, y(2) = 2,

neste exemplo iremos usar N = 9, e assim h = (2 1)/(9 + 1) = 0.1. Os resultados est


ao
listados na tabela (7). Aqui vamos comparar os resultados obtidos pelo metodo com a soluc
ao
exata
y(x) = c1 x +
onde c2 =

1
[8
70

c2
3
1

sin(ln x)
cos(ln x),
2
x
10
10

12 sin(ln 2) 4 cos(ln 2)] 0.03920701320 e c1 =

244

11
10

c2 1.1392070132.

xi
1.0
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
2.0

wi
1.00000000
1.09260052
1.18704313
1.28333687
1.38140205
1.48112026
1.58235990
1.68498902
1.78888175
1.89392110
2.00000000

y(xi )
1.00000000
1.09262930
1.18708484
1.28338236
1.38144595
1.48115942
1.58239246
1.68501396
1.78889853
1.89392951
2.00000000

|wi y(xi )|

2.88 105
4.17 105
4.55 105
4.39 105
3.92 105
3.26 105
2.49 105
1.68 105
8.41 106

Nota 6 Este metodo e O(h2 ) e por isto e menos preciso que o para resolucao de PVI que e
O(h4 ). Para obter um metodo de diferencas com maior precisao, aparecem dificuldades, pois
aproximacoes de maior ordem em diferencas finitas necessitam m
ultiplos valores antes e depois
de xi .
Nota 7 Pode-se usar extrapolacao de Richardson para acelerar a convergencia do metodo. Por
exemplo para aproximar a solucao do PVC do exemplo (75) devemos resolve-lo com h1 = 0.1,
h2 = h1 /2 = 0.05 e h3 = h2 /2 = 0.025. Aqui vamos notar wi,1 , wi,1 ewi,1 para as aproximac
oes
da solucao y(xi ) com h1 , h2 e h3 respectivamente. Assim usando as formulas, de extrapolac
ao
4wi,2 wi,1
3
4wi,3 wi,2
Ext2,i =
3
16w2,i w1,i
Ext3,i =
15
obtemos os resultados descritos na tabela:
Ext1,i =

xi
1.0
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
2.0

wi,1
1.00000000
1.09260052
1.18704313
1.28333687
1.38140205
1.48112026
1.58235990
1.68498902
1.78888175
1.89392110
2.00000000

wi,2 )
1.00000000
1.09262207
1.18707436
1.28337094
1.38143493
1.48114959
1.58238429
1.68500770
1.78889432
1.89392740
2.00000000

wi,3
1.00000000
1.09262749
1.18708222
1.28337950
1.38144319
1.48115696
1.58239042
1.68501240
1.78889748
1.89392898
2.00000000

245

Ext1,i
1.00000000
1.09262925
1.18708477
1.28338230
1.38144589
1.48115937
1.58239242
1.68501393
1.78889852
1.89392950
2.00000000

Ext2,i
1.00000000
1.09262930
1.18708484
1.28338236
1.38144595
1.48115941
1.58239246
1.68501396
1.78889853
1.89392951
2.00000000

Ext3,i
1.00000000
1.09262930
1.18708484
1.28338236
1.38144595
1.48115941
1.58239246
1.68501396
1.78889853
1.89392951
2.00000000

10.2.2

M
etodos de diferencas finitas para problemas n
ao lineares

Para o problema geral nao linear de contorno


y 00 = f (x, y, y 0 ),

a x b,

y(a) = ,

y(b) = ,

(13)

o metodo em diferenca e similar ao do caso linear, porem o sistema resultante aqui e nao linear
e desta forma necessita de um processo iterativo para resolve-lo.
Para desenvolvermos este metodo vamos assumir que a funcao f satisfaz:
1. f e suas derivadas parciais em y e em y 0 sao contnuas em
D = {(x, y, y 0 )/a x b, < y < , < y 0 < )
2. fy (x, y, y 0 ) > 0 sobre D para algun > 0
3. Existem constantes k e L ,com
k=

max |fy (x, y, y 0 )|,

(x,y,y 0 )D

L=

max |fy0 (x, y, y 0 )|.

(x,y,y 0 )D

Estas tres condicoes garantem a existencia e unicidade de solucao do problema (13).


Como no caso linear, dividimos o intervalo [a, b] em N + 1 subintervalos iguais cujos pontos
estao em xi = a + ih, para i = 0, 1, ..., N + 1. Assumindo que a solucao exata e limitada em
sua quarta derivada nos permite substituir y 00 (xi ) e y 0 (xi ) em cada uma das equacoes
y 00 (xi ) = f (xi , y(xi ), y 0 (xi ))

(14)

pela formula apropriada em diferencas finitas dadas por (5) e (6). Assim obtemos para i =
1, 2, ..., N ,


y(xi+1 ) y(xi1 ) h2 000
h2 (4)
y(xi+1 2y(xi ) + y(xi1 )
=
f
x
,
y(x
),

y
(
)
+
y (i ) (15)
i
i
i
h2
2h
6
12
para algum i e i no intervalo (xi1 , xi+1 ).
Como no caso linear quando nao consideramos os termos de erro e empregamos as condicoes
de contorno,
w0 = ,
wN +1 =


wi+1 2wi + wi1
wi+1 wi1

= f xi , wi ,
=0
h2
2h

(16)

para i = 1, 2, ..., N .
Desta forma obtemos um sistema nao linear de N equacoes e N incognitas, que possui
solucao u
nica se h < 2/L ver Keller[76]

246


w2
=0
2w1 w2 + h f x1 , w1 ,
2h


w3 w1
2
w1 + 2w2 w3 + h f x2 , w2 ,
=0
2h
..
..
.
.


wN wN 2
=0
wN 1 + 2wN 1 wN + h2 f xN 1 , wN 1 ,
2h


wN 1
2
wN 1 + 2wN + h f xN , wN ,
=0
2h


(17)

Para aproximar a solucao deste sistema podemos usar o metodo de Newton para sistemas nao
lineares, conforme ja disctimos. A sequencia de vetores wk gerada pelas iteracoes converge para
a solucao u
nica do sistema, se a aproximacao inicial for suficientemente proxima da solucao w e
o Jacobiano da matriz seja nao singular. No nosso caso o Jacobiano J(w1 , ..., wN ) e tridiagonal
e definido por:

A1,1

A2,1

0
J(w1 , ..., wN ) =
.
..

A1,2
A2,2
..
.

0
..
.

...

..

..

..

..
...

.
0

AN,N 1

0
..
.
..
.

AN 1,N
AN,N

onde w0 = , wN +1 =


wi+1 wi1
2
Ai,j = 2 + h fy xi , wi ,
, para i = j, j = 1, ..., N
2h


h
wi+1 wi1
Ai,j = 1 + fy0 xi , wi ,
, para i = j 1, j = 2, ..., N
2
2h


wi+1 wi1
h
, para i = j + 1, j = 1, ..., N 1
Ai,j = 1 fy0 xi , wi ,
2
2h
O metodo de Newton para sistemas nao lineares precisa resolver em cada iteracao o sistema
linear


2w1 w2 + h2 f x1 , w1 , w22h 
w3
w1 + 2w2 w3 + h2 f x2 , w2 , w32h
..
.

v1

v2

J(w1 , ..., wN ) .. =


w
w
.
N
N
2
2
wN 2 + 2wN 1 wN + h f xN 1 , wN 1 ,


 2h

vN
w
N 1
2
wN 1 + 2wN + h f xN , wN , 2h

247

(18)

deve ser resolvido para o vetor v. e assim calcula-se a proxima iteracao como:
(k)

wi

(k1)

= wi

+ vi ,

para cada i = 1, 2, ..., N.

EXERCCIOS
1. Use Diferencas finitas para aproximar a solucao dos seguintes PVC:
(a) y 00 + y = 0, 0 0 , y(0) = 1, y() = 1;. Use h = /2.
R: x1 = 1.04720, w1 = 0.525382; x2 = 2.09439, w2 = 0.525382.
(b) y 00 + 4y = cos x, 0 x /4, y(0) = 0, y(/4) = 0;. Use h = /12.

R: x1 = 12
, w1 = 0.0877483; x2 = 6 , w2 = 0.0852364.
2. Mostre que os seguintes PVC satisfazem a hipotese do teorema de existencia e unicidade
e aproxime sua solucao.
(a) y 00 = 3y 0 + 2y + 2x + 3, 0 x 1, y(0) = 2, y(1) = 1. Use h = 0.1 e compare
os resultados com a solucao exata.
(b) y 00 = (x + 1)y 0 + 2y + (1 x2 )ex , 0 x 1, y(0) = 1, = y(1) = 0. Use
h = 0.1 e compare os resultados com a solucao exata y = (x 1)ex .
3. Repita o exerccio 2 usando extrapolacao de Richardson.
4. Encontre por diferencas finitas a aproximacao da solucao de:
(a) y 00 = (y 0 )2 y + ln x, 1 x 2, y(1) = 0, y(2) = ln 2. Use h = 0.5.
R: xi = 1.5, wi = 0.406800.
0

(b) y 00 = xyx2y , 1 x 1.6, y(1) = 1, y(1.6) = 0.847994. Use h = 0.2.


R: x = 1.2, w = 0.980942; x = 1.4, w = 0.928693.

248

Captulo 11
M
etodo de Diferen
cas Finitas aplicado
a EDP: Uma introdu
c
ao
Uma importante Classe de EDP sao as equacoes de segunda ordem com a forma:


2u
2u
u u
2u
+ C(x, y) 2 = G x, y, u, ,
A(x, y) 2 + B(x, y)
,
x
xy
y
x y

(1)

com (x, y) R2 , A, B e C funcoes contnuas em de forma que A2 + B 2 + C 2 6= 0, para


todo (x, y) .
Classificamos estas equacoes como:
1. Hiperb
olica: Na regiao onde B 2 (x, y) A(x, y)C(x, y) > 0
2. Elptica: Na regiao onde B 2 (x, y) A(x, y)C(x, y) < 0
3. Parab
olica: Na regiao onde B 2 (x, y) A(x, y)C(x, y) = 0
Exemplos:
1. Equacao de Laplace:
2u 2u
+
=0
x2 y 2
Elptica, pois B 2 AC = 1 < 0,

x, y

2. Equacao de Transferencia de calor (difusao):


2u
u
=
2
x
t
e uma equacao Parabolica, pois: B 2 AC = 1 = 0,

249

x, y .

3. Equacao da onda:
2

2u 2u
2 =0
x2
t

e uma equacao Hiperbolica, pois B 2 AC = 1 > 0,

x, y

A ideia basica do metodo de diferencas finitas e aproximar as derivadas parciais que aparecem na EDP, nas condicoes iniciais e de contorno por formulas de diferencas finitas para
frente
u(t, x + 4x) u(t, x)
u
(t, x)
,
x
4x

(2)

diferencas para tras,


u
u(t, x) u(t, x 4x)
(t, x)
,
x
4x

(3)

ou diferencas centrais
u
u(t, x + 4x) u(t, x 4x)
(t, x)
.
x
24x

(4)

As derivadas parciais de ordens superiores tambem possuem varias aproximacoes em diferenca


finitas, no caso de diferencas centrais temos:
2u
u(t, x + 4x) 2u(t, x) + u(t, x 4x)
(t,
x)

x2
(4x)2

11.1

(5)

EDP Elpticas

Vamos considerar a equacao de Poisson, descrita por:

2 u(x, y)

2u
2u
(x,
y)
+
(x, y) = f (x, y)
x2
y 2

(6)

para (x, y) R2 e u(x, y) = g(x, y) para (x, y) S, onde


R = {(x, y)/a < x < b, c < y < d}
e S denota a fronteira de R. Vamos supor que f e g sao funcoes contnuas sobre seus domnios,
assegurando assim unicidade de solucao para (6).
1. n, m inteiros h = (b a)/n e k = (d c)/m.
2. Partir o intervalo [a, b] em n partes iguais de largura k, com xi = a + ih, i = 0, 1, ..., n e
yj = c + jh, j = 0, 1, ..., m.

250

3. Em cada ponto interior do grid (xi , yj ) para i = 1, ..., n 1 e j = 1, ..., m 1, expandindo


em serie de Taylor na variavel x em torno de xi ,
u(xi+1 , yj ) 2u(xi , yj ) + u(xi1 , yj ) h2 4 u
2u
(xi , yj ) =

(i , yj )
x2
h2
12 x4

(7)

i (xi1 , xi+1 ) e expandindo em serie de Taylor na variavel y em torno de xj ,


2u
u(xi , yj+1 ) 2u(xi , yj ) + u(xi , yj1 ) k 2 4 u
(x
,
y
)
=

(xi , j )
i
j
y 2
k2
12 x4

(8)

j (yj1 , yj+1 ).
4. substituindo as formulas (7) e (8) na equacao (6) temos a representacao da equacao de
Poisson no ponto (xi , yj ) como:
u(xi+1 , yj ) 2u(xi , yj ) + u(xi1 , yj ) u(xi , yj+1 ) 2u(xi , yj ) + u(xi , yj1 )
+
=
h2
k2
h2 4 u
4u
f (xi , yj ) +
(
,
y
)
+
(xi , j )
i j
12 x4
x4

(9)

para i = 1, ..., n 1 e j = 1, ..., m 1. Com as condicoes de contorno


u(x0 , yj ) =g(x0 , yj ),
u(xn , yj ) =g(x0 , yj ),
u(xi , y0 ) =g(xi , y0 ),
u(xi , ym ) =g(x0 , yj ),

j = 0, ..., m,
j = 0, ..., m,
i = 1, ..., n 1,
i = 1, ..., n 1.

(10)

5. Asim obtemos a equacao em diferenca chamada de Metodo de Diferenca Central, com


ordem de truncamento O(h2 + k 2 )
" 
#
 2
2
h
h
+ 1 wi,j (wi+1,j + wi1,j )
(wi,j+1 + wi,j1 ) = h2 f (xi , yj ) (11)
2
k
k
para i = 1, ..., n 1 e j = 1, ..., m 1, de forma que:
w0,j
wn,j
wi,0
wi,m

=g(x0 , yj )
=g(xn , yj )
=g(xi , y0 )
=g(xi , ym )

para cada j = 0, 1, ..., m,


para cada j = 0, 1, ..., m,
para cada i = 1, 2, ..., n 1,
para cada i = 1, 2, ..., n 1.

251

(12)

6. where wi,j aproxima u(xi , yj ).


Note que a equacao em cada ponto (xi , yj ) envolve,

Figura 11.1: Pontos envolvidos na equacao escrita no no (xi , yj ) da malha

assim, para montarmos a equacao no ponto (xi , yj ) temos que conhecer as solucoes nos
pontos da malha acima abaixo e dos lados de (xi , yj ).
Exemplo 76 Considere o problema de determinar a distribuicao de temperatura em estado
estacionario em uma placa quadrada 0.5m 0.5m. Duas fronteiras adjacentes sao mantidas
a 0o C, enquanto o calor sobre as outras fronteiras crescem linearmente de 0o C em um canto
ate 100o C, onde estes lados se encontram. Assim, u(0, y) = 0, u(x, 0) = 0, u(x, 0.5) = 200x e
u(0.5, y) = 200y.
Para montarmos o sistema de equacoes associado, primeiramente vamos fazer a malha,
considerando n = m = 4.

Figura 11.2: Malha gerada para o exemplo (76)

Em cada no interior da malha, como h = k, temos:

252

4wi,j wi1,j wi 1, j wi,j1 wi,j+1 = 0

(13)

ou
-1

-1
4 -1
-1

Desta forma obtemos o sistema,

4
-1
0
-1
0
0
0
0
0

-1 0
4 -1
-1 4
0 0
-1 0
0 -1
0 0
0 0
0 0

-1
0
0
4
-1
0
-1
0
0

0
-1
0
-1
4
-1
0
-1
0

0 0
0 0
-1 0
0 -1
-1 0
4 0
0 4
0 -1
-1 0


0 0
w1


0 0
w2


0 0
w3


0 0
w4

-1 0 w5
=


0 -1
w6

-1 0 w7

4 -1 w8
-1 4
w9

25
50
150
0
0
50
0
0
25

(14)

Resolvendo o sistema acima temos a solucao,


i
wi

1
2
3
4
5
6
7
18.75 37.50 56.25 12.50 25.00 37.50 6.25

8
9
12.50 18.75

(15)

A solucao exata deste problema e dada por u(x, y) = 400xy, assim a resposta obtida na
tabela acima e exata pois para este metodo o erro e avaliado atraves das derivadas de quarta
ordem em relacao a x e a y, que no caso sao nulas.
Devemos observar que o sistema gerado por este metodo e tridiagonal e para matrizes de
ordem 100 ou menores deve ser usado um metodo direto de resolucao, ja que seu carater de
definida positiva garante a estabilidade com relacao a` erros de arredondamento. No caso de
sistemas grandes e conveniente resolver este sistema por um metodo iterativo. Dos metodos
discutidos o SOR seria o mais conveniente e para a selecao de decompomos A como:
A = D L U,
e calculamos a matriz do metodo de Jacobi como:
J = D1 (L + U)
assim seu raio espectral e
 i
1h 
cos
+ cos
.
(J) =
2
m
n

253

Em consequencia, o valor de que sera utilizado e:


=

4
2
p
q
=



1 + 1 2 (J)
2 + 4 cos m
+ cos

2 .

Exemplo 77 Neste exemplo vamos considerar a equacao de Poisson:


2u
2u
(x,
y)
+
(x, y) = xey , 0 < x < 2, 0 < y < 1,
x2
y 2
com condicoes de contorno descritas por:
u(0, y) = 0, u(2, y) = eey , 0 y 1,
u(x, 0) = x, u(x, 1) = ex, 0 x 2.
Fazendo a aproximacao por diferencas finitas e usando n = 6, m = 5 e como criterio de parada
para o metodo de Gauss Seidel
(i)

(i1)

wij wij

1010 ,

para todo i = 1, ..., 5 e j = 1, ..., 4. Os resultados obtidos juntamente com os valores exatos s
ao
descritos na tabela:

254

i
1
1
1
1
2
2
2
2
3
3
3
3
4
4
4
4
5
5
5
5

11.2

j
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4
1
2
3
4

xi
0.3333
0.3333
0.3333
0.3333
0.6667
0.6667
0.6667
0.6667
1.0000
1.0000
1.0000
1.0000
1.3333
1.3333
1.3333
1.3333
1.6667
1.6667
1.6667
1.6667

yi
0.2000
0.4000
0.6000
0.8000
0.2000
0.4000
0.6000
0.8000
0.2000
0.4000
0.6000
0.8000
0.2000
0.4000
0.6000
0.8000
0.2000
0.4000
0.6000
0.8000

(61)

wij
0.40713
0.49727
0.60737
0.74185
0.81427
0.99455
1.2147
1.4837
1.2214
1.4918
1.8221
2.2255
1.6285
1.9891
2.4295
2.9674
2.0357
2.4864
3.0369
3.7092

(61)

u(xi , yj ) |u(xi , yj ) wij |


0.40713
1.30104
0.49727
2.08104
0.60737
2.23104
0.74185
1.60104
0.81427
2.55104
0.99455
4.08104
1.2147
4.37104
1.4837
3.15104
1.2214
3.64104
1.4918
5.80104
1.8221
6.24104
2.2255
4.51104
1.6285
4.27104
1.9891
6.79104
2.4295
7.35104
2.9674
5.40104
2.0357
3.71104
2.4864
5.84104
3.0369
6.41104
3.7092
4.89104

EDP Parab
olicas

Para exemplificar o metodo de diferencas finitas aplicado `a equacoes parabolicas usaremos a


equacao da difusao, dada por:
u
2u
(x, t) = 2 2 (x, t), para 0 < x < `, para t > 0
t
x

(16)

e vamos considerar as condicoes de contorno e condicao inicial:


u(x, 0) = f (x), para 0 x `, e u(0, t) = u(`, t) = 0, para t > 0.

11.2.1

(17)

Diferen
ca para frente

Primeiramente vamos definir h = `/m onde m e um n


umero inteiro positivo. Selecionamos um
passo k > 0 no tempo. Os pontos da malha sao (xi , tj ), onde xi = ih para i = 0, 1, 2, ..., m e
tj = jk, para j = 0, 1, .... Vamos ainda considerar as seguintes aproximacoes em diferencas:
u
u(xi , tj + k) u(xi , tj ) k 2 u
(xi , tj ) =

(xi , j )
t
k
2 t2

255

(18)

onde j (tj , tj+1 ) e


2u
u(xi + h, tj ) 2u(xi , tj ) + u(xi h, tj ) h2 4 u
(xi , tj ) =

(i , tj )
x2
h2
12 x4

(19)

onde i (xi1 , xi+1 ).


A ED Parabolica (16) implica que os pontos da malha (xi , tj ) para todo i = 1, 2, ...m 1 e
j = 1, 2, ... teremos
2u
u
(xi , tj ) 2 2 (xi , tj ) = 0,
t
x
ou seja,
wi+1,j 2wi,j + wi1,j
wi,j+1 wi,j
2
,= 0
k
h2

(20)

onde wi,j u(xi , yj ).


O erro local de truncamento para esta equacao em diferencas e dado por:
i,j =

2 4
k 2u
2h u
(x
,

(i , tj ).
i
j
2 t2
12 x4

(21)

Agora, resolvendo a equacao (20) para wi,j+1 temos




22 k
k
wi,j+1 = 1 2
wi,j + 2 2 (wi+1,j + wi1,j ),
h
h

(22)

para i = 1, 2, ..., m 1 e j = 1, 2, .... Agora, como a condicao inicial u(x, 0) = f (x), para todo
0 x `, temos que wi,0 = f (xi ). As equacoes adicionais u(0, t) = 0 e u(`, t) = 0 implicam
que w0,i = wm,i .
Matricialmente podemos escrever:
w(j) = Aw(j1) ,

para j = 1, 2, ...

onde

A=

(1 2)

0
..
.
..
.
0

(1 2)

..
..
.
.
..
.

...
..
.
..
..
..

...

...

..

0
..
.
..
.

..

..

onde = 2 (k/h2 ). E onde


w(0) = (f (x1 ), ......, f (xm1 ))T

256

...

(1 2)

.
Quando a solucao da EDP possui quatro derivadas parciais contnuas na variavel x e duas
na variavel y este metodo e da ordem O(k + h2 ).
Infelizmente, podemos mostrar que este metodo e condicionalmente est
avel e ele converge
2
para a solucao da equacao (16) com taxa de convergencia O(k + h ) somente se
||An e(0) || ||e(0) ||
onde e(0) e o erro que se comete ao representar os dados iniciais w(0) (ou em qualquer outro
passo). Assim devemos ter ||An || 1 e isto equivale `a requerer (An ) = n (A) 1. Podemos
mostrar que esta condicao equivale a escolha de k de forma que:
2

k
1

2
h
2

Este fato pode ser visto no seguinte exemplo:

257

Exemplo 78 Vamos considerar a equacao do calor:


 u
2
(x, t) xu2 (x, t) = 0, 0 < x < 1, t 0
t
u(0, t) = u(1, t) = 0, t > 0, u(x, 0) = sin(x),

0 x 1.
2

A solucao exata deste problema e dada por u(x, t) = e t sin(x). A solucao em t = 0.5 ser
a
aproximada usando h = 0.1, k = 0.0005 e portanto = 0.05 e tambem fazendo h = 0.1, k = 0.1
e portanto = 1. Os resultados obtidos estao na seguinte tabela:
xi
0.1
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0

u(xi , 0.5) wi,1000 (k = 0.0005) |u(xi , 0.5) wi,1000 | wi,50 (k = 0.1) |u(xi , 0.5) wi,50 |
0
0
0
0.00222241
0.00228652
6.411105
8.19876107
8.199107
8
0.00422728
0.00434922
1.219104
- 1.5571910
1.557108
0.00581836
0.00598619
1.678104
2.13833108
2.138108
0.00683989
0.00703719
1.973104
- 2.50642108
2.506108
8
0.00719188
0.00739934
2.075104
2.6268510
2.627108
0.00683989
0.00703719
1.973104
- 2.49015108
2.490108
8
0.00581836
0.00598619
1.678104
2.1120010
2.112108
0.00422728
0.00434922
1.219104
- 1.53086108
1.531108
0.00222241
0.00228652
6.511105
8.03604107
8.036107
0
0
0
Tabela 11.1: Tabela de resultados

258

11.2.2

Diferen
ca para tr
as

Um metodo incondicionalmente est


avel e obtido quando usamos diferencas para tras ao
inves de diferenca para frente na variavel t,
u(xi , tj ) u(xi , tj1 ) k 2 u
u
(xi , tj ) =
+
(xi , j )
x
k
2 t2
onde j (tj1 , tj ). Substituindo esta equacao juntamente com a equacao (19) na ED Parabolica (16) temos que os pontos da malha (xi , tj ) para todo i = 1, 2, ...m 1 e j = 1, 2, ...
teremos
2 4
u(xi+1 , tj ) 2u(xi , tj ) + u(xi1 , tj )
k 2u
u(xi , tj ) u(xi , tj1 )
2h u
2
=

(x
,

)
(i , tj ),
i
j
k
h2
2 t2
12 x4
ou

wi+1,j 2wi,j + wi1,j


wi,j wi,j1
2
,= 0
k
h2

(23)

para todo i = 1, 2, ..., m 1 e j = 1, 2, ....


O metodo de diferencas para tras inclui, em um passo tpico, os seguintes pontos da malha:

(xi1 , tj )

(xi , tj )

(xi+1 , tj )

(xi , tj1 )
Sendo a quantidade = 2 (k/h2 ), o metodo de diferencas para tras e dado por:

22 k
(1 2 )wi,j wi+1,j wi1,j = wi,j1 ,
h
para i = 1, 2, ..., m 1 e j = 1, 2, .... Agora, usando que wi0 = f (xi ) para todo i = 1, 2, ..., m 1
e wm,j = w0,j = 0 para todo j = 1, 2, ..., temos a seguinte representacao matricial:
Aw(j) = w(j1) ,

para j = 1, 2, ...

onde

A=

(1 + 2)

0
..
.
..
.
0

(1 2)

..
..
.
.
..
.

...
..
.
..
..
..

...

...

..

0
..
.
..
.

..

..
0

259

...

(1 + 2)

Quando a solucao da EDP possui quatro derivadas parciais contnuas na variavel x e duas
na variavel y este metodo e da ordem O(k + h2 ).
A razao pela qual o metodo de diferencas para tras nao apresenta os problemas de estabilidade do metodo de diferencas para frente e que os autovalores de A sao dados por:
2
 
i
i = 1 + 4 sin
2m
e como > 0 temos que i > 1 e desta forma os autovalores de A1 sao todos menores que 1
em modulo.

260

Exemplo 79 Vamos considerar novamente o exemplo:


2u
u
(x, t) 2 (x, t) = 0 para 0 < x < ` e t > 0,
t
x
sujeito `as condicoes de contorno
u(0, t) = u(`, t) = 0 para t > 0 e u(x, 0) = sin(x), 0 x `.
Aqui vamos usar as escolhas m = 10, isto e h = 0.1, k = 0.01, logo = 1.
Depois de 50 iteracoes, temos a aproximacao da solucao em t = 0.5 com:
xi
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0

wi,50
u(xi , 0.5) = e0.5 sin(xi )
0
0
0.00289802
0.00222241
0.00551236
0.00422728
0.00758711
0.00581836
0.00891918
0.00683989
0.00937818
0.00719188
0.00891918
0.00683989
0.00758711
0.00581836
0.00551236
0.00422728
0.00289802
0.00222241
0
0

|wi,50 u(xi , 0.5)|


6.756 104
1.2885 103
1.769 103
2.079 103
2.186 103
2.079 103
1.769 103
1.285 103
6.756 104

O problema deste metodo reside no fato que o erro local de truncamento possui uma parte
com ordem linear, isto e O(k). Este fato faz que o intervalo requerido no tempo seja muito
pequeno. Desta forma seria interessante obtermos um metodo O(k 2 + h2 ). Para isto primeiramente usou-se aproximacao em diferencas centrais para a variavel t, obtendo-se o metodo de
Richardson. Porem este metodo possui serios problemas de convergencia.

261

11.2.3

O m
etodo de Crank-Nicolson

Como o problema do metodo de diferenca finita para tras para a resolucao de EDP Parabolicas,
apesar de incondicionalmente estavel, possui em sua formula de erro o fator O(k) que e linear e
assim requer que os intervalos considerados no tempo (k) seram muito menores que os espaciais
(h). e claro que o ideal e que o erro seja O(h2 + k 2 ). Este metodo existe e e uma media entre
os metodos de diferenca para frente no j-esimo passo no tempo t.
wi+1,j 2wi,j + wi1,j
wi,j+1 wi,j
2
= 0,
k
h2
que possui erro (k/2)( 2 u/t2 )(xi , j )+O(h2 ), e o metodo de diferenca para tras no passo (j+1)
no tempo,
wi+1,j+1 2wi,j+1 + wi1,j+1
wi,j+1 wi,j
2
= 0,
k
h2
que possui erro (k/2)( 2 u/t2 )(xi ,
j ) + O(h2 ). Se assumimos que
2u
2u
(x
,

)
=
(xi ,
j )
i
j
t2
t2
assim a media e dada por:


2 wi+1,j 2wi,j + wi1,j wi+1,j+1 2wi,j+1 + wi1,j+1
wi,j+1 wi,j

+
=0
k
2
h2
h2
que possui erro de ordem O(h2 + k 2 ), se as usuais condicoes de diferenciabilidade sejam satisfeitas. Este metodo e chamado de Crank-Nicolson e e representado na forma matricial
por,
Aw(j+1) = Bw(j)
para j = 0, 1, 2, . . . , onde
= 2

k
,
h2

w(j) = (w1j , w2j , . . . , wm1,j )T ,

e as matrizes A e B sao dadas por,

(1 + )
2

2
(1 + )

...

0
A= .
...
..

..
.
0
...

0
2
...
...

...
..
.
...
...

...

...

...

...
...
...
2

262

0
..
.
..
.


2
(1 + )

(24)

(1 )
2

2
(1 )

..

.
0
B= .
.
..
..

..
.
0
...

..

..

..

.
...

... ...
..
.
.. ..
.
.
.. ..
.
.
..
.
0

0
..
.
..
.
0

(25)

(1 )

Agora, como A e definida positiva, estritamente diagonal dominante e tridiagonal e desta


forma nao singular. Para resolver este sistema podemos usar fatoracao de Crout para sistemas
tridiagonais ou um metodo iterativo.

263

Exemplo 80 Use o metodo de Crank-Nicolson para aproximar


2u
u
(x, t) 2 (x, t) = 0 para 0 < x < ` e t > 0,
t
x
sujeito `as condicoes de contorno
u(0, t) = u(`, t) = 0 para t > 0 e u(x, 0) = sin(x), 0 x `.
Aqui vamos usar as escolhas m = 10, isto e h = 0.1, k = 0.01, logo = 1.
Depois de 50 iteracoes, temos a aproximacao da solucao em t = 0.5 com:
xi
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0

wi,50
u(xi , 0.5) = e0.5 sin(xi )
0
0
0.00230512
0.00222241
0.00438461
0.00422728
0.00603489
0.00581836
0.00709444
0.00683989
0.00745954
0.00719188
0.00709444
0.00683989
0.00603489
0.00581836
0.00438461
0.00422728
0.00230512
0.00222241
0
0

264

|wi,50 u(xi , 0.5)|


8.271 105
1.573 104
2.165 104
2.546 104
2.677 104
2.546 104
2.165 104
1.573 104
8.271 105

11.3

EDP Hiperb
olicas

Para apresentarmos o metodo de diferencas finitas aplicado `a equacoes hiperbolicas, vamos


considerar a equacao da onda dada por:
2
2u
2 u
(x,
t)

(x, t) = 0, para 0 < x < ` e t > 0,


t2
x2

(26)

sujeita a`s condicoes de contorno


u(0, t) =u(`, t) = 0, para t > 0,
u
u(x, 0) =f (x), e
(x, 0) = g(x), para 0 x `,
t

(27)

Vamos escolher um inteiro m > 0 e um passo no tempo k > 0. Fazendo h = `/m, ospontos da
malha (xi , tj ) sao definidos por
xi = ih e tj = jk,
para cada i = 0, 1, . . . , m e j = 0, 1, . . . . Em um ponto interior da malha (xi , yj ), podemos usar
o quociente de diferencas centrais para a derivada segunda, obtendo
u(xi , tj+1 ) 2u(xi , tj ) + u(xi , tj1 ) k 2 4 u
2u
(x
,
t
)
=

(xi , j ),
i j
t2
k2
12 t4

(28)

para um j (tj1 , tj+1 ) e


u(xi+1 , tj ) 2u(xi , tj ) + u(xi1 , tj ) h2 4 u
2u
(x
,
t
)
=

(i , tj ),
i j
x2
h2
12 x4

(29)

para um i (xi1 , xi+1 ).


Substituindo estas formulas na equacao da onda e negligenciando o termo de erro, dado por


2 4
1 k2 4u
2h u
(xi , j )
(i , tj )
(30)
12 12 t4
12 x4
obtemos a equacao em diferencas
wi,j+1 2wi,j + wi,j1
2 wi+1,j 2wi,j + wi1,j

=0
k2
h2

(31)

Agora, se notarmos
=

k
,
h

nos podemos resolver a equacao acima, para a aproximacao da solucao mais avancada no tempo
wi,j+1 , obtendo
wi,j+1 = 2(1 2 )wi,j + 2 (wi+1,j + wi1,j ) wi,j1 .

265

(32)

Esta equacao vale para i = 1, 2, ..., m 1 e j = 1, 2, .... As condicoes de contorno sao dadas
por,
w0,j = wm,j = 0, para cada j = 1, 2, 3, ....

(33)

e condicao inicial
wi,0 = f (xi ), para cada i = 1, 2, ..., m 1.
Matricialmente podemos escrever

2(1 2 )
2
w1,j+1

w2,j+1 2
2(1 2 )


..
w3,j+1
.
0

..

=
.
.
.


..
..


.
..


..

.
wm1,j+1
0
...

(34)

... ...
..
.
.. ..
.
.
.. ..
.
.
..
.

2
..
.
..
.
..
.
...

0
..
.
..
.

w1,j
w1,j1

w2,j w2,j1

w3,j w3,j1
.

..
.
.
.
.

0
.

.
..
..

wm1,j
wm1,j1
2(1 2 )
(35)

Desta forma para calcularmos w1,j+1 precisamos conhecer os valores da j-esima linha e da
linha j 1, o que reverte em um pequeno problema de inicializacao. Quando j = 0 os valores
sao dados pela equacao (34), porem quando j = 1, devem ser obtidos da outra condicao inicial
u
(x, 0) = g(x), 0 x `.
t
Para resolver este problema poderamos usar diferenca finita para frente, mas isto baixaria a
ordem do metodo para O(k). Se f 00 (x) existe, para mantermos a ordem quadratica do erro
expandimos u(xi , t1 ) em serie de Maclaurin como:
u(xi , t1 ) = u(xi , 0) + k

u
k2 2u
k3 3u
(xi , 0) +
(x
,
0)
+
(xi ,
i )
i
t
2 t2
6 t3

para algum
i (0, t1 ). Entao:
2
2
2u
2 u
2 d
(x
,
0)
=

(x
,
0)
=

(xi ) = 2 f 00 (xi )
i
i
t2
x2
dx2

e
u(xi , t1 ) = u(xi , 0) + kg(xi ) +

2 k 2 00
k3 3u
f (xi ) +
(xi ,
i ),
2
6 t3

o que produz uma aproximacao com erro O(k 3 ):


wi,1 = wi,0 + kg(xi ) +

2 k 2 00
f (xi ).
2

266

Ainda, se nao dispomos de f 00 (xi ), mas f C 4 [0, 1], podemos aproximar por diferencas
finitas como:
f (xi+1 ) 2f (xi ) + f (xi1 ) h2 (4)
f (i ),
f (xi ) =
h2
12
00

para i (xi1 , xi+1 ). e isto implica que


u(xi , t1 ) = u(xi , 0) + kg(xi ) +

2 k 2
(f (xi+1 ) 2f (xi ) + f (xi1 )) + O(k 3 + h2 k 2 ).
2h2

se = k/h, entao
u(xi , t1 ) = u(xi , 0) + kg(xi ) +

2
(f (xi+1 ) 2f (xi ) + f (xi1 )) + O(k 3 + h2 k 2 ).
2

ou
u(xi , t1 ) = (1 )f (xi ) +

2
2
f (xi+1 ) + f (xi1 ) + kg(xi ) + O(k 3 + h2 k 2 ).
2
2

Assim podemos usar a equacao em diferencas


wi,1 = (1 )f (xi ) +

2
2
f (xi+1 + f (xi1 ) + kg(xi ),
2
2

para calcular wi,1 , para i = 1, 2, ..., m 1.

267

Exemplo 81
Vamos considerar o seguinte problema:
2u
2u
(x,
t)

4
(x, t) = 0,
t2
x2

0 < x < 1, t > 0,

com as condicoes de fronteira


u(0, t) = u(1, t) = 0, para t > 0,
e condicoes iniciais
u(x, 0) = sin(x),

0 x 1, e

u
(x, 0) = 0,
t

0 x 1.

A solucao exata do problema e dada por:


u(x, t) = sin x cos 2t.
Aqui usamos m = 10, T = 1 e N = 20, o que significa que = 0.1, k = 0.05 e = 1.
Os resultados obtidos sao dados na seguinte tabela: Os resultados dados pela tabela acima
xi
wi,20
xi
wi,20

0.0
0.1
0.0000000000 0.3090169944
0.6
0.7
0.9510565163 0.8090169944

0.2
0.3
0.4
0.5877852523 0.8090169944 0.9510565163
0.8
0.9
1.0
0.5877852523 0.3090169944 0.0000000000

0.5
1.0000000000

possuem todas as casas decimais exatas. Isto ocorre pois a solucao da equacao e infinitamente
diferenciavel e com isto podemos mostrar que o erro de truncamento local do metodo e 0. Esta
formulacao tambem apresenta problemas de estabilidade e exige que = k/h 1. Neste caso
tambem existem metodos implcitos que sao incondicionalmente estaveis.

268

Vous aimerez peut-être aussi