Apostila CNumerico 2013
Apostila CNumerico 2013
Apostila CNumerico 2013
alculo Num
erico A
2012
Sum
ario
1 S
umula da Disciplina
2
3 Sistemas Lineares
3.1 Algebra Matricial . . . . . . . . . . . . . . . . . . . . .
3.1.1 Operacoes Elementares . . . . . . . . . . . . . .
3.1.2 Matrizes . . . . . . . . . . . . . . . . . . . . . .
3.1.3 Autovalores e Autovetores . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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 .
. . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
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;
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| < .
xx0
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.
f (b) f (a)
.
ba
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
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
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 .
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
10
(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
0 1000010 101100110000010000000000
O bit mais da esquerda, 0 no caso, indica que o n
umero e positivo.
12
(2.5)
(2.6)
(2.7)
(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:
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,
1 d1 9,
0 di 9,
i = 2, ..., k
(2.11)
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 .
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)
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
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
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|
b + b2 4ac b b2 4ac
b2 (b2 4ac)
x1 =
=
2a
b b2 4ac
2a(b b2 4ac)
Logo,
x1 =
2c
.
b + b2 4ac
2.000
2.000
=
= 0.01610
62.10 + 62.06
124.2
17
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!
+ ....
+
+ ....
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
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
20
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
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 )
(n N )
(n N )
ou
|xn+1 x |
C
|xn x |
(n 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
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
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.
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
(2.15)
(2.16)
1 i1
3
1 i2
3
+ c2 3i1
+ c2 3i2
(2.17)
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
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
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
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
(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
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
1
1
+ 18 + ... +
(b) Faca
1
1000
+ ... +
1
1000
1
+ 11
8
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
n
X
xi y i ,
i=1
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
a11
a21
A = a31
..
.
an1
de n
umeros A = [aij ], com 1 i m linhas e
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
..
.. . .
..
. .
.
.
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
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:
... 0
..
..
.. . .
.. .. .. .. . .
.. ..
..
..
..
.
.
.
. . . . .
. . .
.
.
.
.
.
.
a1n a2n a3n ... ann
0 0 0 ... dn
d1 a1n d2 a2n d3 a3n ... dn ann
35
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
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
36
3.1.2
Matrizes
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
(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
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
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
38
0
0
1
n
X
i=1
39
aii
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
n
X
i =
i=1
(b) 1 2 ...n =
n
Y
i=1
i = (1)n
dn1
dn
d0
dn
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 =
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
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
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
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)
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
1in
(AT A)
43
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
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)
1
2
da equacao 1 da terceira.
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)
1
2
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
..
.
..
.
0
..
..
..
...
.
.
.
(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 .
(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
n1
X
((n i) + 1) =
i=1
n2 + n
2
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
2 1
1
1 1
x1 =
1
1 x2
2 1
=1
=
1
1
(1 )
1
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)
mjk =
ajk
(k)
>> 1
akk
xk =
aj,n+1
Pn
j=k+1
(k)
akk
(k)
ajk
50
5.291
= 1763.666... 1764.
0.003000
0.003000x1 +
59.14x2 =
59.17
104300.x2 = 104400.
59.17 59.20
59.17 (59.14)(1.001)
=
= 10.00 6= 10.00!!!!!
0.003000
0.003000
Assim
m21 =
0.003000
= 0.0005670
5.291
51
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
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
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
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
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
|a32 |
6.12
=
= 1.45
s3
4.21
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 =
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
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
55
60 30 20
u11
u12
u13
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
.. . .
..
. .
.
ak2 ... akk
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
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
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
1
0
0
0
L4
m42 = +1
1 1
2
1 1
1
0
0
2
0
2 1
p = (2, 1, 4, 3)
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
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
b=
1
5
58
PAx = Pb
1 0 0 0
0 1 0 0
1 1 1 0
1 0 0 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
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
z }| {
0.992x 0.873y = 0.119
0481x 0.421y = 0.060
60
|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 }
x +
3y
=
11
1.5x + 4.501y = 16.500
| {z }
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
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)
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 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
(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
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)
(k)
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
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
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
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
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
b1 c1 0 ...
...
...
0
.
a2 b2 c2 . . ...
...
0
..
0 a
.
...
0
b
c
3
3
3
A=
. . . . . . . . . . . . . . .
...
0
`1
0
L=
. . .
0
0
decomposicao LU na forma:
0
`2
...
...
...
...
...
...
0
..
.
3 `3 0
...
0
.. .. ..
..
.
.
.
.
...
0
...
..
.
... ...
0 1 2
... ...
0
0 0 1 . . . ...
0
3
U=
.
.
.
.
. . . . . . . . . . . ...
0
0 ... ... 0 0 1 n1
0 ... ... 0 0 0
1
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
Ly = f
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
2 1
0
0
x1
1
x2
2
1
0
0 1
2 1 x3
0
0 1
2
x4
0
0
=
0
1
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
3.5
Exerccios
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
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
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
2
6 3
x1
5
1 3.001
2 x2 = 9
4
1
9
x3
29
i. sem pivotamento
71
1
2 3
x1
17
5 1 4 x2 = 2
2
4 1
x3
24
x1 + 2x2 x3
2x1 x2
x2 + 2x3 x4
x3 + 2x4
=
=
=
=
1
1
1
1
x1 3x2 + x3 x4
x2 2x3
10x1 + x2
+ x4
x1
x3 + 3x4
72
(k)
xi | 103
= 1
=
3
= 8
=
8
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)
(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
75
n
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
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
76
f (n+1) ((x))
(x x0 )(x x1 )...(x xn ),
(n + 1)!
(4.5)
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
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
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
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
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
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)
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
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.
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)
(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
j = 0, 1, . . . , n 1
(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)
aj+1 = aj + bj hj +
h2j
(2cj + cj+1 )
3
(4.13)
e
bj+1 = bj + hj (cj + cj+1 )
(4.14)
bj =
1
hj
(aj+1 aj ) (2cj + cj+1 ),
hj
3
(4.15)
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
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)
(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)
4.2.2
Spline C
ubico Restrito
(4.23)
(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)
86
87
2
3
2
3
2
p20 (x) = 0.4 0.39(x 13.0) 0.54(x 13.0) + 0.6(x 13.0)3
88
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 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.
90
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
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
(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
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
(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
ak
m
X
xj+k
i
i=1
m
X
yi xji ,
j = 0, 1, ..., n.
(5.3)
i=1
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
..
.
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
94
(5.4)
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
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
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
f (x)
E = E(a0 , a1 , ..., an ) =
a
n
X
!2
ak x
dx.
k=0
(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
ak
j+k
(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
1
2
a2
=
3
1
1
a2
=
4
1
2 4
a2 =
5
3
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
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
w(x) f (x)
E(a0 , a1 , ..., an ) =
a
n
X
!2
ak k (x)
k=0
w(x) f (x)
a
n
X
!
ak k (x) j (x)dx
k=0
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
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)
f 0 (x) =
h2
f (x + h) f (x) h 00
f (x) f 000 (x) . . .
h
2
6
103
(6.2)
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)
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)
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
(2h)3 000
(2h)2 00
f (x) +
f (x) + . . .
2!
3!
(6.9)
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)
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)
(6.16)
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
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) =
(6.19)
(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)
h3 000
f (x) + . . .
3
(6.23)
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
=
=
(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
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) =
(6.27)
f 0 (0) =
(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,
(6.31)
f 0 (4) =
(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)
(6.37)
2
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 ) =
(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)
(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
f (0.900 + h) f (0.900 h)
2h
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)
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
115
7.1
Regra Trapeizodal
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)
xj+1
xj
f (x)dx =
xj1
xj+1
f (x)dx +
xj1
f (x)dx
xj
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
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
(h)3 00
(h)2 0
f (xj ) +
f (xj ) + O(h)4
2
3!
(7.7)
(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:
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)
(h)3 (b a) 00
(h)2
f (
x) =
(b a)f 00 (
x)
12
h
12
(7.14)
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)
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!
(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!
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)
(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) =
f (xj ) + O(h)7
h2
12
(7.21)
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=
(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
j=1
j impar
=
b a iv
f (
x)
h
90
n1
X
(iv)
j=1
j impar
(h)4
(xj ) =
(b a)f (iv) (
x).
180
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
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)
(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
(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)
(30)
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
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
123
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
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
(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,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
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
1 dn 2
(x 1)n
2n n! dxn
2(1 x2i )
n2 (Pn1 (xi ))2
f (x)dx
a
n
X
wi f (xi )
i=1
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
/2
x2 cos xdx =
2 8
0.467401
4
x4 =
f (x3 ) = 0.233413
129
f (x2 ) = 0.548777
f (x1 ) = 0.232572
I =
/20
2
Exato
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
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
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
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
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
133
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) =
(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
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
60
a+b
xi +
2
2
X1 = 5.32379,
X2 = 0.67621,
logo
X3 = 3
7.6.2
Construindo Quadraturas
Para encontrar os pesos e razes da quadratura de ordem N = 2, vamos supor que esta integral
pode ser escrita como
Z
1
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
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
137
ln x
2
dx =
0.8224670334
x+1
12
1
x+1
ln x
dx f (x1 )w1 + f (x2 )w2 = 0.821826
x+1
1
x+1
ln x
dx f (x1 )w1 + f (x2 )w2 + f (x3 )w3 + f (x4 )w4 = 0.822466
x+1
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)
d(x)
f (x, y)dy
g(x) =
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
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
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)
1
2n1
(b a) e p (an , bn ).
21
2 103
9
2
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)
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.
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) =
y(x) =
(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=
(4)
como a 6= b
x=
af (b) bf (a)
f (b) f (a)
(5)
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 =
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:
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
148
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
1. Encontre o u
nico zero de f (x) = x3 + 4x2 10 no intervalo [1, 2].
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
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
f (x) = f (
x) + (x x)f 0 (
x) +
(x x)2 00
f ((x))
2!
(6)
0 = f (
x) + (p x)f 0 (
x) +
(p x)2 00
f ((p))
2!
(7)
(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 )
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
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,
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
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 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
x
)
=
(p
x
)
i
i
f 0 (xi )
2
f 0 (xi )
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)
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
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)
f (xn2 ) f (xn1 )
f (xn1 ) f (xn2 )
=
xn2 xn1
xn1 xn2
(17)
(18)
pn
0.5
0.7853981635
0.7363841390
0.7390581394
0.7390851492
0.7390851334
161
8.1.7
M
etodo de Mu
ller
(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)
(21)
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
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
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
f (xi )
1.37624
+0.126941
+0.219440 102
+0.257492 104
+0.257492 104
i
3
4
5
6
f (xi )
0.611255
+0.748825 102
0.295639 104
0.259639 104
164
8.2
M
etodos para calcular razes de Polin
omios
165
|zn+1 |
<
|zn |
(24)
166
#
n1
n
1
1
+ an1
+ ... + a0
an
z
z
(25)
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
168
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
(26)
(27)
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
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)
P 0 (2) = Q(2)
assim,
P (x0 )
x1 = x0 0
= 2
P (x0 )
10
49
1.796
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
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
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
13.375913
-3.721464
23.178001
29.540727
50.506892
-7.545 1025
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)
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
+ ...
(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
(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)
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
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)
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)
(pi , qi )
bn2
..
.
..
.
..
.
dn3
..
.
..
.
b0
d1
d0
b1
b2
8.2.3
O M
etodo de Laguerre
(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)
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)
n
p
,
A(z) (n 1)(nB(z) A2 (z))
(53)
(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 )
p00 (zk )
p(zk )
Calcule ak como,
ak =
n
p
A(zk ) (n 1)(nB(zk ) A2 (zk ))
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
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
(55)
(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
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
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)
xy
e
+ 20z
linear de equacoes:
=
1
2
= 1.06
=
103
3
1
3x cos(yz) 2
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
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)
9.2
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
dy
,
dt
(3)
como
(4)
(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
= f (t, y)
y(a) =
atb
..
.
= f1 (t, y1 , y2 , ..., yn )
= f2 (t, y1 , y2 , ..., yn
..
.
dyn
dt
= fn (t, y1 , y2 , ..., yn )
(6)
y2 (a) = 2 ,
... , y3 (a) = 3
(7)
9.3
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
(8)
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
a t b, y(a) =
(9)
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)
a t b,
y(a) = ,
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 ,
z(t) = (1 + 0 )et + t +
192
(12)
9.4
Soluc
oes Num
ericas: M
etodos de Passo Smples
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)
(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
h2 00
y (i )
2
(18)
193
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)
(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
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)
(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
(25)
i (h) =
yi yi1
(ti1 , wi1 )
h
(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
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 ,
(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
a t b, y(a) = ,
hn
hn+1 (n+1)
h2 00
y (ti ) + ... + y (n) (ti ) +
y
(i )
2
n!
(n + 1)!
(28)
h2 0
hn
hn+1 (n)
f (ti , y(ti )))+...+ f (n1) (ti , y(ti ))+
f (i , y(i )).
2
n!
(n + 1)!
(29)
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
+...
"
#
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
Entretanto, a precisao da aproximacao deteriora rapidamente quando (t, y) se move para longe
de (2, 3).
200
df
f
f
(t, y) =
(t, y) +
(t, y).y 0 (t)
dt
t
y
h f
h f
(t, y) +
(t, y).f (t, y).
2 t
2 y
201
(31)
f
f
(t, y) + a1 1 (t, y) + a1 .R1 (t + 1 , y + 1 ), (32)
t
y
12 2 f
12 2 f
2f
2
(,
)
+
(,
)
+
(, )
1 1
2 t2
ty
2 y 2
(33)
a1 = 1;
h
2
h
a1 1 = f (t, y)
2
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
h
h
ti + , wi + f (ti , wi )
2
2
202
para i = 0, 1, ..., N 1.
(35)
(36)
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
203
Ponto Medio
Euler Modificado
Heun
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
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
a t b,
y(a) = ,
= (b a)/N ;
= a;
= ;
(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,
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
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
206
9.7
Controle de Erro e o M
etodo de Runge-Kutta-Fehlberg
i = 0, N 1
(40)
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)
207
(44)
(45)
para i > 0
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
1
(wi+1 wi+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
w = w+
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
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)
(49)
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!
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
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
(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)
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
(53)
i+1 (h) =
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
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
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
w0
w1
w2
w3
=
=
=
=
1
2
3
wi+1 = wi +
h
[55f (ti , wi ) 59f (ti1 , wi1 ) + 37f (ti2 , wi2 ) 9f (ti3 , wi3 )]
24
251 v
y (i )h4 ,
720
216
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 +
95 vi
y (i )h5 ,
288
w0 =
w 1 = 1
wi+1 = wi +
h
[5f (ti+1 , wi+1 ) + 8f (ti , wi ) f (ti1 , wi1 )]
12
1 iv
y (i )h3 ,
24
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
19 v
y (i )h4 ,
720
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 +
3 vi
y (i )h5 ,
160
a t b,
y(a) =
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
w5 = w4 +
h
[55f (t4 , w4 ) 59f (t3 , w3 ) + 37f (t2 , w2 ) 9f (t1 , w1 )] .
24
= 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
hM L(ti a)
e
1
2L
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)
w1 = 1 , ... wm1 = m1
(56)
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
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
226
9.10
Equaco
es Rgidas (Stiff )
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)
(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
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)
(68)
(69)
(70)
(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
0 t 1.5,
y(0) =
1
3
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
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)
(k)
(k1)
wj+1 = wj+1
F (wj+1 )
(k1)
F 0 (wj+1 )
(k1)
(k1)
= 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
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
(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)
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)
dt y1 (t) = y2 (t)
dt y2 (t) = y3 (t)
d
y (t) = y4 (t)
dt 3
..
com a condicao
y1 (t0 )
y2 (t0 )
y3 (t0 )
y (t )
n 0
inicial
= 1
= 2
= 3
..
.
= n )
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),
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
z
2t
e sin t + 2z 2y
236
onde W(t) =
y(t)
z(t)
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
(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)
(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
y0 =
yn+1 =
10.2.1
h = (b a)/(n + 1)
(8)
(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,
241
(10)
wN +1 =
e
+ p(xi )
wi+1 wi1
2h
+ q(xi )wi = r(xi )
(11)
(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,
1
[8
70
c2
3
1
sin(ln x)
cos(ln x),
2
x
10
10
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
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=
(x,y,y 0 )D
L=
(x,y,y 0 )D
(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 ,
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
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)
x, y
249
x, y .
3. Equacao da onda:
2
2u 2u
2 =0
x2
t
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)
(3)
ou diferencas centrais
u
u(t, x + 4x) u(t, x 4x)
(t, x)
.
x
24x
(4)
x2
(4x)2
11.1
(5)
EDP Elpticas
2 u(x, y)
2u
2u
(x,
y)
+
(x, y) = f (x, y)
x2
y 2
(6)
250
(i , yj )
x2
h2
12 x4
(7)
(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)
j = 0, ..., m,
j = 0, ..., m,
i = 1, ..., n 1,
i = 1, ..., n 1.
(10)
=g(x0 , yj )
=g(xn , yj )
=g(xi , y0 )
=g(xi , ym )
251
(12)
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.
252
(13)
ou
-1
-1
4 -1
-1
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)
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
4
2
p
q
=
1 + 1 2 (J)
2 + 4 cos m
+ cos
2 .
(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)
EDP Parab
olicas
(16)
11.2.1
(17)
Diferen
ca para frente
(xi , j )
t
k
2 t2
255
(18)
(i , tj )
x2
h2
12 x4
(19)
(20)
2 4
k 2u
2h u
(x
,
(i , tj ).
i
j
2 t2
12 x4
(21)
(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
..
.
..
.
..
..
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
257
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
(x
,
)
(i , tj ),
i
j
k
h2
2 t2
12 x4
ou
(23)
(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
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
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
(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 )
263
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
11.3
EDP Hiperb
olicas
(26)
(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)
(i , tj ),
i j
x2
h2
12 x4
(29)
=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
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
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
2
2
f (xi+1 + f (xi1 ) + kg(xi ),
2
2
267
Exemplo 81
Vamos considerar o seguinte problema:
2u
2u
(x,
t)
4
(x, t) = 0,
t2
x2
0 x 1, e
u
(x, 0) = 0,
t
0 x 1.
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