Escolar Documentos
Profissional Documentos
Cultura Documentos
Cálculo Numérico
Cálculo Numérico
(elfsenne@feg.unesp.br)
DEPARTAMENTO DE MATEMTICA
Universidade Estadual Paulista - Unesp
Campus de Guaratinguet
Faculdade de Engenharia
2000
CLCULO NUMRICO
SUMRIO
Apresentao
Referncias Bibliogrficas
1. Aritmtica Computacional
1.1 - Nmeros de Ponto Flutuante ........................................................................................ 1
1.2 - Sistemas de Ponto Flutuante ........................................................................................ 2
1.3 - Aritmtica de Ponto Flutuante....................................................................................... 5
1.4 - Dgitos Significativos Exatos ......................................................................................... 7
1.5 - Mal-Condicionamento e Instabilidade Numrica ........................................................... 9
Exerccios Resolvidos ......................................................................................................... 11
Exerccios Propostos........................................................................................................... 13
Exerccios de Programao ................................................................................................ 14
2. Soluo de Equaes
2.1 - Introduo ................................................................................................................... 17
2.2 - Estimativa de Razes de Equaes Polinomiais ......................................................... 18
Enumerao das Razes ............................................................................................. 19
Localizao das Razes Reais .................................................................................... 21
Localizao das Razes Complexas............................................................................ 22
2.3 - Separao das Razes................................................................................................ 23
2.4 - Mtodos Iterativos de Soluo de Equaes .............................................................. 25
Ordem de Convergncia de um Mtodo Iterativo........................................................ 26
Mtodos de Quebra .................................................................................................... 26
Mtodos de Ponto Fixo ............................................................................................... 29
Mtodo de Aitken ........................................................................................................ 31
Mtodo de Newton-Raphson....................................................................................... 32
Mtodo das Secantes (ou das Cordas)....................................................................... 35
Mtodo de Mller......................................................................................................... 36
2.5 - Resoluo de Sistemas de Equaes No-Lineares .................................................. 37
Exerccios Resolvidos ......................................................................................................... 40
Exerccios Propostos........................................................................................................... 43
Exerccios de Programao ................................................................................................ 44
4. Interpolao
4.1 - Introduo ................................................................................................................... 81
4.2 - Interpolao Polinomial ............................................................................................... 82
4.3 - Polinmios de Lagrange ............................................................................................. 87
4.4 - O Erro na Interpolao................................................................................................ 89
4.5 - Diferenas Divididas ................................................................................................... 89
4.6 - Diferenas Simples ..................................................................................................... 92
4.7 - Interpolao de Hermite .............................................................................................. 93
4.8 - Interpolao por "Spline"............................................................................................. 97
Exerccios Resolvidos ....................................................................................................... 102
Exerccios Propostos......................................................................................................... 104
Exerccios de Programao .............................................................................................. 105
5. Aproximao de Funes
5.1 - Introduo ................................................................................................................. 107
5.2 - Mtodo dos Quadrados Mnimos .............................................................................. 107
5.3 - Aproximao de Funes Contnuas ........................................................................ 112
5.4 - Polinmios Ortogonais .............................................................................................. 117
5.5 - Mtodo dos Quadrados Mnimos Generalizado ........................................................ 124
Exerccios Resolvidos ....................................................................................................... 130
Exerccios Propostos......................................................................................................... 131
Exerccios de Programao .............................................................................................. 132
6. Integrao Numrica
6.1 - Introduo ................................................................................................................. 135
6.2 - Mtodos de Newton-Cotes........................................................................................ 137
Regra dos Retngulos .............................................................................................. 137
Regra dos Trapzios................................................................................................. 139
Regra de Simpson .................................................................................................... 140
Frmula Geral das Quadraturas Newtonianas .......................................................... 142
6.3 - Mtodos de Extrapolao ......................................................................................... 146
6.4 - Quadratura de Gauss................................................................................................ 149
6.5 - Quadraturas Adaptativas .......................................................................................... 153
Exerccios Resolvidos ....................................................................................................... 158
Exerccios Propostos......................................................................................................... 160
Exerccios de Programao .............................................................................................. 162
iii
iv
CLCULO NUMRICO
APRESENTAO
Clculo Numrico foi escrito para servir como material de apoio para a segunda
parte da disciplina Computao e Clculo Numrico, oferecida aos alunos da Faculdade de
Engenharia do Campus de Guaratinguet, da Unesp - Universidade Estadual Paulista. Seu
objetivo apresentar os fundamentos do clculo numrico, ilustrando a aplicao dos
mtodos e algoritmos discutidos com programas de computador escritos na linguagem de
programao apresentada na primeira parte da disciplina.
O Captulo 1 discute a aritmtica dos computadores, chamando a ateno para o
fato de que, como os nmeros representados em um computador no obedecem mesma
estrutura algbrica dos nmeros reais (dada a finitude da mquina), a ocorrncia de erros
, por vezes, inevitvel. No Captulo 2 discute-se a busca de razes de equaes nolineares, dando especial ateno aos polinmios, para os quais muitos resultados tericos
so conhecidos. No Captulo 3 discute-se a soluo de sistemas de equaes lineares, um
assunto importante porque a soluo de vrias classes de problemas (como visto nos
captulos seguintes) recaem em sistemas lineares. O Captulo 4 discute como aproximar
uma funo, conhecida apenas em alguns pontos discretos, a um polinmio, atravs da
tcnica de interpolao. O assunto do Captulo 5 tambm a aproximao de funes,
mas com o emprego da tcnica dos mnimos quadrados. Neste caso, no se restringe a
discusso ao caso discreto e tampouco s aproximaes polinomiais, podendo a funo de
aproximao ser definida como uma combinao linear qualquer de funes conhecidas.
No Captulo 6 estuda-se o problema de como calcular o valor de integrais definidas, para
funes conhecidas discretamente ou para as quais no possvel, ou no desejvel, a
aplicao de uma forma analtica de resolver o problema. Finalmente, o Captulo 7 discute
a resoluo numrica de equaes diferenciais ordinrias, apresentando diversos mtodos
para a soluo de problemas de valor inicial e de problemas de valor de contorno.
Este volume apresenta ainda, ao final de cada captulo, vrios exerccios resolvidos
e exerccios propostos. Prope tambm exerccios de programao e, neste particular,
recomenda-se a leitura do volume Introduo Programao de Computadores para
rever os conceitos e construes relativas linguagem de programao discutida na
primeira parte dessa disciplina.
ELFS
REFERNCIAS BIBLIOGRFICAS
Cludio, D.M.; Marins, J.M. Clculo Numrico Computacional - Teoria e Prtica. So Paulo,
SP, Atlas, 1994.
Dahlquist, G.; Bjrck, A. Numerical Methods. Englewood Cliffs, NJ, Prentice-Hall, 1974.
Phillips, C.; Cornelius, B. Computational Numerical Methods. New York, NY, John Wiley &
Sons, 1986.
Ralston, A.; Rabinowitz, P. A First Course in Numerical Analysis. Tokyo, Japan, McGrawHill, 1978.
Ruggiero, M.A.G.; Lopes, V.L.R. Clculo Numrico: Aspectos Tericos e Computacionais.
So Paulo, SP, Makron Books, 1998.
Vandergraft, J.S. Introduction to Numerical Computations. New York, NY, Academic Press,
1978.
vi
Clculo Numrico
1. ARITMTICA COMPUTACIONAL
1.1 Nmeros de Ponto Flutuante
Os nmeros representados em um computador no obedecem mesma estrutura algbrica
dos nmeros reais, isto porque a mquina tem recursos finitos. Os nmeros reais
representveis em um computador so denominados nmeros de ponto flutuante.
Um nmero de ponto flutuante representado como: x = m. be , onde:
x = 721.5438
b) b = 2
x = 1101.01
1 23 + 1 2 2 + 0 21 + 1 2 0 + 0 21 + 1 22 = 13.25
Forma normalizada: x = 0.110101 x 2 4
No computador os valores de ponto flutuante so representados (na base binria) sempre na
forma normalizada.
Representao de Nmeros de Ponto Flutuante
espao de armazenamento (palavra)
sinal
mantissa
expoente
Clculo Numrico
1 Aritmtica Computacional
Exemplo:
Considere um computador com o seguinte espao de armazenamento:
palavra = 8 bits
espao para mantissa = 4 bits
espao para expoente = 3 bits
ou seja:
Valores Possveis do
Expoente
Binrio
Decimal
000
-4
001
-3
010
-2
011
-1
100
0
101
1
110
2
111
3
ou seja: 010
b - base de numerao
m - nmero de dgitos na mantissa
n - nmero de dgitos para a representao do expoente (incluindo o sinal)
Clculo Numrico
1 Aritmtica Computacional
No exemplo anterior, o sistema de ponto flutuante pode ser representado por: F(2,4,3).
Dado um sistema de ponto flutuante F(b,m,n) tem-se:
1. Para qualquer mantissa a, b 1 a < 1
2. x F( b , m, n ) x F( b , m , n)
3. A cardinalidade de F (total de nmeros representveis) dado por:
2 (b-1). ( b m 1) ( b n ) + 1
onde:
(b
1
8
5
( 0101
.
2 2 ) = (0.00101) 2 = 0 2 0 + 0 2 1 + 0 2 2 + 1 2 3 + 0 2 4 + 1 25 =
32
3
( 0110
.
2 2 ) = ( 0.00110) 2 = 0 2 0 + 0 21 + 0 2 2 + 1 2 3 + 1 2 4 + 0 2 5 =
16
7
( 0111
.
2 2 ) = (0.00111) 2 = 0 2 0 + 0 2 1 + 0 2 2 + 1 2 3 + 1 2 4 + 1 2 5 =
32
( 0100
.
2 2 ) = ( 0.00100) 2 = 0 2 0 + 0 21 + 0 2 2 + 1 2 3 + 0 2 4 + 0 2 5 =
( 0111
.
21 ) = (111
. ) 2 = 1 2 0 + 1 2 1 + 1 2 2 =
7
4
expoente
-2
-1
0
1
0.100
1/8
1/4
1/2
1
mantissa
0.101
0.110
5/32
3/16
5/16
3/8
5/8
3/4
5/4
3/2
Esquematicamente:
0.111
7/32
7/16
7/8
7/4
Clculo Numrico
1 Aritmtica Computacional
5/32 7/32
regio de
overflow
1/8
3/16 1/4
5/16 3/8
7/16
1/2
5/8
3/4
7/8
5/4
3/2
7/4
Da figura acima pode-se ver que os nmeros de ponto flutuante representveis no esto
uniformemente distribudos no intervalo [-7/4, 7/4]. Nota-se tambm que entre potncias
sucessivas da base, o nmero de valores representveis uma constante, dada por:
c = (b-1) ( b m 1)
(cardinalidade da mantissa)
No exemplo acima:
densidade =
( b 1)( b m 1 )
b k b k 1
densidade
4
= 16
1/ 21/ 4
4
=8
1 1 / 2
4
=4
21
ou seja, a distncia entre dois nmeros de ponto flutuante representveis consecutivos vai
aumentanto. Portanto, ao se comparar nmeros de ponto flutuante prximos (por exemplo,
para verificar a convergncia de um processo iterativo) conveniente comparar a diferena
em relao ao tamanho dos nmeros.
Para ilustrar, considere os seguintes conceitos:
Erro Absoluto:
ER =
xx*
x*
EA
x*
4
Clculo Numrico
1 Aritmtica Computacional
No caso de nmeros de ponto flutuante, o erro relativo mais significativo do que o erro
absoluto porque, como comentado acima, a comparao de valores de ponto flutuante deve
ser feita em relao ao tamanho dos nmeros. Por exemplo:
a) Um erro absoluto E A = 106 em um valor x* = 1015 significativo?
10 6
Neste caso, E R =
1015
0.00001
= 0.2 , ou seja, o erro da aproximao de 20% e portanto,
0.00005
significativo.
y = 3/8
y = 3/8
z = 3/4
(x + y) + z = (( 0101
.
x 2 0 ) + (0.110 x 2 1 )) + ( 0110
.
x 2 0 ) = (0.101 + 0.011) + 0.110 = 1.00
+ 0.110 = (111
. )2
x + (y + z) = ( 0101
.
x 2 0 ) + (( 0.110 x 2 1 ) + (0.110 x 20 )) = 0.101 + (0.011 + 0.110) =
0.101 + 1.001 = 1.101 = (110
. )2
(observe que os dgitos assinalados acima precisam ser descartados pois no podem ser
representados em F)
Logo: (x + y) + z
x + (y + z)
Estes exemplos mostram que na aritmtica de ponto flutuante, quando um nmero, para ser
representado, precisa de mais dgitos na mantissa do que o mximo permitido, preciso fazer
uma aproximao, o que ir resultar em um erro de arredondamento.
Exemplo:
Seja F(2,3,2)
5
Clculo Numrico
1 Aritmtica Computacional
valor
aproximao
1 = 1.00
erro de arredondamento
1.00 - 1.125 = -0.125 (erro por falta)
9/8 = 1.125
5/4 = 1.25
Sejam:
v1, v2 - valores verdadeiros de dois nmeros positivos.
a1, a2 - valores aproximados de v1 e v2, respectivamente.
Ei = | vi ai | - erro absoluto (i = 1,2)
Ri = Ei/ai - erro relativo (i = 1,2)
Ento, tem-se que:
ai - Ei vi ai + Ei (i = 1,2)
a) SOMA
(a1 - E1) + (a2 - E2) v1 + v2 (a1 + E1) + (a2 + E2)
(a1 + a2) - (E1 + E2) v1 + v2 (a1 + a2) + (E1 + E2)
e portanto:
| (v1 + v2) - (a1 + a2) | (E1 + E2)
ou seja: o erro absoluto da soma menor ou igual soma dos erros absolutos das parcelas.
Para o erro relativo tem-se:
r=
( v1 + v2) ( a1 + a2)
E1 + E2
E1
E2
a1
E1
a2
E2
=
+
=
a1 + a 2
a1 + a2 a1 + a2 a1 + a2 a1 + a2 a1 a1 + a2 a2
Seja =
a1
a1
( a1 + a2) a1
a2
. Ento: (1 ) = 1
.
=
=
a1 + a 2
a1 + a 2
a1 + a2
a1 + a2
Logo: r . r1 + (1 ). r2
ou seja: o erro relativo da soma menor ou igual a um valor intermedirio entre os erros
relativos das parcelas.
b) SUBTRAO
O maior valor de (v1 - v2) ocorre quando: v1 = a1 + E1 e v2 = a2 - E2. Analogamente, o menor
valor de (v1 - v2) ocorre quando: v1 = a1 - E1 e v2 = a2 + E2. Portanto, pode-se afirmar que:
(a1 - E1) - (a2 + E2) v1 - v2 (a1 + E1) - (a2 - E2)
6
Clculo Numrico
1 Aritmtica Computacional
r=
( v1 v2) ( a1 a2)
Logo: r
a1 a 2
E1 + E2
E1
E2
a1
E1
a2
E2
=
+
=
a1 a2 a1 a2 a1 a2 a1 a2 a1 a1 a2 a2
a1
a2
a1 + a2 a1
a2
r1 +
r2
r1 +
r2 =
+ a2 4244444
a1 a2
a1 a2
a1 a2 1
a14444
a1 + a2 3
erro relativo da soma
a1 + a 2
> 1 pelo erro
a1 a 2
relativo da soma (que um valor intermedirio entre os erros relativos das parcelas). Alm
disso, quando a1 a2, o fator
a1 + a2
pode ser muito grande. Ou seja, a subtrao de
a1 a2
nmeros muito prximos resulta em um erro relativo muito maior do que os erros relativos das
parcelas. Este fenmeno conhecido como cancelamento subtrativo.
E a1E2 + a2 E1
r r1 + r 2
d) DIVISO
a1 E1 E2
( +
)
a2 a1 a2
r r1 + r 2
E
Clculo Numrico
1 Aritmtica Computacional
Exemplos:
a) 0.00000014 forma normalizada = 0.14 x 106 2 dgitos significativos
b) 30457 forma normalizada = 0.30457 x 105 5 dgitos significativos
c) 231000 forma normalizada = 0.231 x 106 3 dgitos significativos
A questo agora saber: Todos os dgitos significativos so exatos? Para responder a esta
questo tem-se o seguinte teorema:
Teorema. Se o erro relativo de um nmero for menor ou igual a 0.5 10k , ento este nmero
possui k dgitos significativos exatos.
Exemplos:
a) v = 2/3
ER =
a = 0.6667
2
0.6667
3
0.6667
ER =
a = 0.66998
2
0.66988
3
0.66998
xi + 1 x i
xi
0.5 10 m
ou seja:
x
i +1 x i
log
xi
log( 0.5) m
xi +1 x i
m log(0.5) log
xi
Clculo Numrico
1 Aritmtica Computacional
Um problema mal-condicionado se, pequenas alteraes nos seus dados (ou parmetros),
resultam em grandes modificaes em sua soluo.
Exemplo. O sistema de equaes
10x1
7 x
1
8x1
7 x1
+
+
+
+
7 x2
5x2
6x 2
5x2
+ 8x3
+ 6x 3
+ 10x 3
+ 9x 3
+ 7 x4
+ 5x4
+ 9 x4
+ 10x 4
=
=
=
=
32
23
33
31
( > 0; n = 0,1,2,...)
dado por:
+ 1
I 0 = ln
1
I n = I n 1
n
( n = 1,2,...)
Considere que existe um erro (de arredondamento) no valor I 0. Neste caso, as prximas
aproximaes sero:
Clculo Numrico
1 Aritmtica Computacional
1
1
I 1 = (I 0 + ) = [ I 0 ]
1
1
1
1
I 2 = ( I 1 ) = [ I 1] + 2
2
2
...
1
I n = [ I n 1 ] + ( ) n
n
Nota-se, portanto, que se > 1, o erro vai crescendo a cada iterao, levando a resultados
absurdos. O mtodo iterativo acima portanto instvel.
Por vezes possvel reformular o mtodo de maneira a evitar a instabilidade numrica. Para o
problema acima, por exemplo, pode-se escrever:
I n1 =
1 1
In
( n =...,2,1)
Como medida que n aumenta, I n diminui, para n suficientemente grande (por exemplo: n =
20) pode-se fazer I n 0. Assim, se existir um erro no valor I 20 , tem-se:
1 1
1 1
1
( I 20 + ) = I 20 +
20
20
1 1
1 1 1
1
I 18 = (I 19 + ) = I19 + 2
19
19
I 19 =
10
Clculo Numrico
1 Aritmtica Computacional
EXERCCIOS RESOLVIDOS
1. Um cilindro tem base com raio R = 1.0 0.05 e altura H = 2.0 E H , onde E H o erro
absoluto em H. Com que erro absoluto deve-se determinar H para que o volume do cilindro
V = R 2 H seja calculado com erro absoluto menor ou igual a 0.5? Considere = 3.1416
como valor exato.
Soluo:
R = 1.0 0.05 E R = 0.05
H = 1.2 E H
+ ( R 2 H) E . Mas como E = 0, E V E 2 .
R H
2
Por outro lado, E 2 R E H + HE 2 . Mas: E 2 RE R + RE R = 2RE R
R H
R
R
2
Logo: E V ( R E H + H( 2RE R )) . Portanto, se ( R 2 E H + H( 2 RE R )) = 0.5 ento
E V 0.5
V = ( R 2 H )
E V E
R 2H
0.5 31416
.
0.12
0.04
31416
.
f (b) = f (a) +
( b a ) (1)
( b a ) 2 ( 2)
( b a ) n ( n)
( b a ) n+ 1 ( n+ 1)
f (a) +
f ( a ) +... +
f (a) +
f
( )
1!
2!
n!
( n + 1)!
onde:
f(x) uma funo definida no intervalo [a, b]
f(i) (x) a i-sima derivada de f(x)
(a, b)
Fazendo f(x) = ex e considerando o intervalo [a, b] como [0, 1], possvel usar o teorema
de Taylor para estimar o valor de e (base do logaritmo natural). Obtenha esta estimativa
para n = 4, trabalhando com 3 casas decimais. Quais os erros cometidos neste processo?
O resultado obtido confivel com quantas casas decimais?
Soluo:
Fazendo f(x) = ex e considerando a = 0 e b = 1 tem-se:
1 0 0 (1 0) 2 0 (1 0) 3 0 (1 0) 4 0
1
0
e =e +
e +
e +
e +
e
1!
2!
3!
4!
11
Clculo Numrico
1 Aritmtica Computacional
ou seja: e = 1 + 1 +
1 1 1
+ +
= 1000
.
+ 1000
.
+ 0.500 + 0.167 + 0.042 = 2.709
2 6 24
(1 0) 5
e , para 0 < < 1.
5!
(1 0) 5 1
ET <
e
5!
Logo: E R =
E T < 0.023
ET
0.023
<
= 0.008 < 0.5 10 1 . Portanto, como o erro relativo menor do que
2.709 2.709
expoente
-1
0
1
0.1
0.01
0.1
1
0.2
0.02
0.2
2
0.3
0.03
0.3
3
0.4
0.04
0.4
4
mantissa
0.5
0.6
0.05 0.06
0.5
0.6
5
6
0.7
0.07
0.7
7
0.8
0.08
0.8
8
0.9
0.09
0.9
9
12
Clculo Numrico
1 Aritmtica Computacional
10 1
existem
100
9
9
9
d=
=
=
= 10
.
0.9
10 0 101 1 01
Entre
nmeros
representveis
9
101 100
9
9
= =1
10 1 9
7 3
+ = 1.666 + 0.375 = 2.4
4 8 { 123 {
2
b)
0.4
1 3
= 0.0166 0.6 =
.3
58
102
60 5 123
0.02
7 3
+ =2
4 8
0.6
1 3
= 0.6
60 5
EXERCCIOS PROPOSTOS
1. Uma corrente flui atravs de uma resistncia de 10 ohms que tem exatido de 10% (erro
relativo). A corrente medida como 2.0 A com tolerncia de 0.1 A. Pela lei de Ohm, a
queda de tenso atravs da resistncia o produto da resistncia pela corrente. Quais
so os erros absoluto e relativo na tenso computada?
2. Considere um sistema de ponto flutuante com base b = 10, espao de armazenamento de
dgitos da mantissa m = 4, e com apenas os expoentes -3, -2, -1, 0, 1, 2, 3, 4. Quantos
nmeros de ponto flutuante podem ser representados neste sistema? Considerando x =
0.7237 104 , y = 0.2145 103, z = 0.2585 101, quais so os resultados, neste sistema,
das seguintes operaes:
a) x + y - z
b)
x y
z
4. Seja x n =
Mostre que: x n = ( 3001x n 1 1000 x n 2 ) / 3 . Trabalhando com 6 casas
n 1
1 ( x n 1 1)( x n 1 + 2)
. Compare os resultados obtidos com os resultados
x n = x n 1
3
( x n 1 + 1)
13
Clculo Numrico
que
se
1 Aritmtica Computacional
obtm
quando
se
usa
2 ( x n 1 1)( x n 1 + 2)
.
x n = x n 1
3
( x n 1 + 1)
14
equao
de
recorrncia
Clculo Numrico
1 Aritmtica Computacional
EXERCCIOS DE PROGRAMAO
1. Para demonstrar o efeito de erros de arredondamento considere os seguintes clculos:
H
X
Y
A
B
C
=
=
=
=
=
=
1/2
2/3 - H
3/5 - H
(X+X+X) - H
(Y+Y+Y+Y+Y) - H
B/A
xn =
kx n 1 + e x n 1
k +1
Implemente um programa para encontrar o valor da raiz usando este mtodo iterativo.
Considere como critrio de parada o seguinte:
x n x n 1 <
para = 10-5. Sugira um valor (real) de k de forma a alcanar uma convergncia rpida.
Mostre o valor de k, o nmero de iteraes, o valor de x* obtido e o valor de f(x*).
+ 1
I 0 = ln
In =
1
I n 1
n
( n = 1,2,...)
n
1 x
I n1 =
1 1
In
( n =...,2,1)
Clculo Numrico
2. SOLUO DE EQUAES
2.1 - Introduo
Neste captulo estuda-se como encontrar uma ou mais razes da equao f(x) = 0, ou, em
outras palavras, como encontrar os zeros da funo f(x).
Exemplo:
y
y
1
0.4
y = f(x)
0.8
0.6
raiz isolada
0.2
y = f(x)
mltiplas raizes
0.4
0.2
x
0.5
1.5
-0.2
-0.2
-0.4
-0.4
10
x
= 0.
2
Atravs do grfico da funo (ver pgina seguinte) pode-se concluir que a raiz [1.5, 2.0].
Este mtodo para estimativa da raiz muito conveniente, principalmente quando se dispe de
ferramentas computacionais para a construo do grfico da funo (como, por exemplo, o
programa Mathematica). Entretanto, para uma classe especial de funes - os polinmios muitos resultados so conhecidos e atravs destes resultados pode-se chegar tambm a uma
estimativa para o intervalo que contm uma raiz.
17
Clculo Numrico
2 Soluo de Equaes
0.2
x
0.5
1.5
2.5
-0.2
-0.4
-0.6
f ( x) = a n x n + a n 1x n 1+...+a1x + a 0 = a i xi = 0
i= 0
((...(( a n x + a n 1 ) x + a n 2 ) x +...) x + a 1 ) x + a 0
e esta maneira de escrever o polinmio facilita sua avaliao e a de sua derivada f'(x), pois
minimiza o nmero de operaes aritmticas necessrias.
Escrito desta forma, a avaliao de f() pode ser escrita como:
b n 1 = a n
b i = a i + 1 + b i + 1
f () = a 0 + b 0
( i = n 2, n 3,...,0)
x5
x4
x3
x2
x1
x0
1
1
0
2
2
-6
4
-2
1
-4
-3
7
-6
1
b4
b3
b2
b1
b0
-4
2
-2
f(2)
=2
Teorema.
f ( x) = ( x ) b i xi + f ( )
i= 0
18
Clculo Numrico
2 Soluo de Equaes
f ( x) = ( x 2)( x 4 + 2x 3 2 x2 3x + 1) + ( 2)
Se uma raiz de f(x) = 0, ento f() = 0. Neste caso, pelo teorema anterior, pode-se
escrever:
n 1
f ( x ) = ( x ) b i x i = 0
e portanto, g( x) =
i= 0
n 1
bixi
Este processo pode ser muito insatisfatrio devido ao efeito acumulativo dos erros introduzidos
a cada vez que f(x) reduzida para g(x).
Avaliao de f'(x):
n
f ( x) = ( x ) bi x i + f () = ( x ) g( x) + f ()
i= 0
Logo:
x4
x3
x2
1
1
2
2
4
-2
8
6
-3
12
9
b3
b2
b1
b0
1
18
19
g(2) = f'(2)
=2
19
Clculo Numrico
2 Soluo de Equaes
O Teorema de Descartes pode ser usado para enumerar tambm as razes reais negativas,
calculando-se p(-x)
3
2
p( x) = x + 2 x + 3x 5
Sequncia de sinais: - + + - 2 trocas. Logo: p(x) tem 2 ou 0 raizes reais negativas (se
tiver 0 razes reais negativas, ter 2 razes complexas).
+
+
+
+
+
+
2 trocas
3 trocas
Reais
Positivas
0
0
2
2
Total
5
5
5
5
a2 = 2
a 3 = 1 a 32 = 1 a 2 a 4 = 6
a4 = 3
ou seja, p(x) possui raizes complexas, o que descarta a ltima linha da tabela acima.
b) p( x) = 2x 6 3x5 2x 3 + x 2 x + 1
Descartes:
p(x)
p(-x)
+
+
+
+
Huat:
20
+
+
4 trocas
0 trocas
Clculo Numrico
2 Soluo de Equaes
a 3 = 2
a4 = 0 a42 = 0 a3 a5 = 6
a5 = 3
ou seja, p(x) possui raizes complexas. Portanto, as possibilidades so as seguintes:
Raizes
Reais
Positivas
0
2
4
Complexas
6
4
2
Total
6
6
6
1
1
2
-9
2
-7
21
-1
20
-12
Clculo Numrico
2 Soluo de Equaes
1
=2
1
1
=3
1
1
2
3
-9
6
-3
-1
20
-12
1
3
4
-9
12
3
-1
9
8
20
24
44
-12
132
120
Logo, pelo teorema de Laguerre, todas as razes reais positivas de p(x) = 0 so menores que
3, ou seja, 3 um limite superior do intervalo das raizes.
-1
1
0
-1
2
1
-9
0
-9
-9
2
-7
20
12
20
12
-1
3
2
-9
6
-3
20
12
-1
4
3
-9
12
3
1
12
13
20
52
72
12
288
300
Logo: todas as razes reais negativas de p(x) = 0 so maiores que -4, ou seja, -4 um limite
inferior para as raizes reais.
Portanto, as razes reais de p(x) = 0 pertencem ao intervalo [-4, 3].
1
ai ni
(i = n-1, ..., 0)
| | q1 + q2, onde q1 e q2 so os dois maiores valores de:
an
Exemplo: p( x) = x5 + x4 9x 3 x 2 + 20x 12
Neste caso tem-se:
22
Clculo Numrico
1
11
,
1
9 2
,
1
2 Soluo de Equaes
1 3
,
1
20 4
,
1
1
1
1
1
12 5
2
4
= 1, 9 , 1, 20 , 12 5 = {1, 3, 1, 2.1147, 1.6437}
1
Logo: q1 = 3 e q2 = 2.1147. Portanto, toda raiz de p(x) tal que: | | 5.1147. Desta forma,
b = 5.1147 corresponde cota superior da regio que contm as razes. Para determinar a
cota inferior basta considerar o polinmio:
1
9
1 20
1 1
p = 5 + 4 3 2 +
12
x x
x
x
x
x
Multiplicando por x5 tem-se:
1
p = 1 + x 9 x2 x3 + 20x 4 12 x5 = 12 x5 + 20x 4 x 3 9 x2 + x + 1
x
Assim, tem-se:
1
20 1
,
12
1
1 2
12
1
9 3
12
1
1 4
12
1
1 5
= {1.6667, 0.2886, 0.9085, 0.5372, 0.6083}
12
Teorema (Bolzano). Se f(x) uma funo contnua num intervalo [a, b] e trocar de sinal nos
extremos deste intervalo, ento existe pelo menos uma raiz real de f(x) = 0 no intervalo [a, b].
Exemplos:
f(a)
y = f(x)
y = f(x)
f(a)
b
x
b
a
f(b)
f(b)
23
Clculo Numrico
2 Soluo de Equaes
b
x
-2
1
0
-1
-2
3
1
-1
3
2
Derivadas de p(x):
p' ( x) = 3x 2 4x 1
p"( x) = 6x 4
Ento:
24
-1
p'"( x) = 6
2
6
8
por
Clculo Numrico
2 Soluo de Equaes
p(0) = 2
p'(0) = -1
p"(0) = -4
p'"(0) = 6
Portanto: V0 = 2
V3 = 0
p(3) = 8
p'(3) = 14
p"(3) = 14
p'"(3) = 6
Bisseccionando o intervalo (0, 3) nos intervalos (0, 1.5) e (1.5, 3) e calculando V15
. tem-se que
V15
. = 1. Pode-se concluir, ento, que os intervalos (0, 1.5) e (1.5, 3) contm, cada um, uma
raiz real.
Assim, para separar as razes pelo teorema de Budan, deve-se conseguir um intervalo (a, b) tal
que Va Vb
= 1.
y=x
y = exp(x)
x
0
Raiz [0, 1]
uma estimativa inicial para a raiz (o que pode ser obtida pelo estudo de separao de
razes);
uma frmula de recorrncia, que calcula uma estimativa melhor com base em estimativas
conhecidas;
um critrio de parada;
uma estimativa do erro cometido (preciso do resultado).
Existem quatro maneiras bsicas para estabelecer o critrio de parada de um mtodo iterativo:
25
Clculo Numrico
2 Soluo de Equaes
xi + 1 xi
<
xi
f (x i ) <
m( xi + 1 , x i ) k
i>L
onde:
k
L
tolerncia de erro
nmero de dgitos significativos exatos requeridos
nmero mximo de iteraes
lim x i = x *
Definio. Seja uma sequncia x 0 , x 1 , x 2 ,... que converge para x*. Seja e i = x i x * . Se
e
existe um nmero > 1 e uma constante 0 tais que: lim i + 1 = , ento
i e
i
denominado ordem de convergncia e conhecida como constante assinttica de erro.
Quanto maior for o nmero , mais rpida ser a convergncia do mtodo iterativo. Quanto
menor for a constante , mais preciso ser o resultado obtido pelo mtodo.
MTODOS DE QUEBRA
Os mtodos de quebra para soluo de equaes partem de um intervalo [a, b] que contenha
uma raiz e reduz este intervalo a intervalos cada vez menores. Estes tipos de mtodos so
intuitivos geometricamente, mas convergem lentamente. Os principais mtodos de quebra so:
o mtodo da bisseco e o mtodo da falsa-posio.
a) MTODO DA BISSECO
Seja a equao f(x) = 0 e o intervalo [a, b], que contm uma raiz de f(x).
Algoritmo:
1. m = (a + b)/2
2. se f(m) 0 ento:
se f(a) f(m) < 0 ento fazer b = m
caso contrrio, fazer a = m
3. repetir os passos 1 e 2 at satisfazer o critrio de parada.
26
Clculo Numrico
2 Soluo de Equaes
Ilustrao Grfica:
y
m2
b
x
m1
pode ser difcil encontrar um intervalo [a, b] tal que f(a) f(b) < 0;
erros de arredondamento podem levar a um intervalo que efetivamente no contm uma
raiz.
f ( x i ). f ( x i 1 ) < 0 tem-se:
e i +1 = x i +1 x * =
x i + x i 1
x i + x i 1 2 x *
1
1
x* =
=
(x i x*) + ( xi 1 x*) e i
2
2
2
2
Logo:
ei +1 1
ei
2
ei +1 1
e, consequentemente: lim
=
2
i e1i
m( x i +1 , x i ) m( xi , x i 1 ) =
x i +1 x i
= log( 0.5) log
x i +1
x x
i
i 1
log
= log
xi
Fazendo: r ( x i ) =
x i xi 1
xi
x i x i 1
log( 05
. ) + log
=
xi
x i +1 x i
x i+ 1
r ( xi )
r ( x i +1 )
, tem-se: m( x i +1 , x i ) m( xi , x i 1 ) = log
27
Clculo Numrico
e
1
Como: i + 1
ei
2
2 Soluo de Equaes
b) MTODO DA FALSA-POSIO
A idia do mtodo da falsa-posio , ao invs de particionar o intervalo [a, b] ao meio a cada
iterao, particionar na interseo da reta que une os pontos (a, f(a)) e (b, f(b)) com o eixo x.
Graficamente:
y
f(a)
b
x
a
f(b)
Neste caso, o ponto de quebra (por congruncia de tringulos) pode ser escrito como:
ba
b m
=
f ( b) f ( a) f ( b) 0
m= b
f ( b)( b a)
f ( b) f (a )
Assim, dada uma equao f(x) = 0 e um intervalo [a, b] que contm uma raiz de f(x), pode-se
escrever o algoritmo do mtodo da falsa-posio como:
Algoritmo:
1. m = b
f ( b)( b a)
f ( b) f ( a)
2. se f(m) 0 ento:
se f(a) f(m) < 0 ento fazer b = m
caso contrrio, fazer a = m
3. repetir os passos 1 e 2 at satisfazer o critrio de parada.
fcil perceber (como mostram as figuras a seguir) que no mtodo da falsa-posio pode
ocorrer que um dos extremos do intervalo mantenha-se sempre fixo. Isto ir ocorrer sempre
que a funo f(x) for cncava ou convexa no intervalo [a, b].
28
Clculo Numrico
2 Soluo de Equaes
y
y = f(x)
x2
a
a=x0
x1
b=x0
x
raiz
x1 x2
x
raiz
b
y = f(x)
i
0
1
2
3
4
5
6
7
8
9
10
Mtodo da Bisseco
xi
f(xi)
-0.5000
11.125
-0.7500
5.015
-0.8750
1.627
-0.9375
-0.156
-0.9063
0.743
-0.9219
0.295
-0.9297
0.070
-0.9336
-0.043
-0.9316
0.014
-0.9326
-0.014
-0.9321
0.000
Mtodo da Falsa-Posio
xi
f(xi)
-0.9130
0.549
-0.9318
0.010
-0.9321
0.000
(ponto fixo)
Exemplo. f (x) = x 3 3x + 1 = 0
Neste caso g(x) pode ser escrita como:
29
Clculo Numrico
2 Soluo de Equaes
g( x) =
x3 + 1
3
g( x) =
ou
1
3 x2
O teorema a seguir, estabelece condies para que exista um ponto fixo para uma funo g(x).
Teorema. Seja I = [a, b] e g(x) uma funo tal que:
g contnua em I
g(I) = { g() | I } I
Convergncia Monotnica
y=x
y
y=x
y = g(x)
y = g(x)
x0
raiz
x
raiz
x0
Divergncia Monotnica
y
y = g(x)
Divergncia Oscilante
y
y=x
y=x
y = g(x)
raiz
x0
x0
raiz
g(i) I
x I, | g'(x) | L < 1
30
Clculo Numrico
2 Soluo de Equaes
et = x * x n <
Exemplo. f ( x) = x 2 x 2
L
x x n 1
1 L n
I = [0, 2]
Escolha de g(x):
a) g( x) = x2 2
g'(x) = 2x g'(x) > 1 para x >
b) g ( x ) =
g'(x) =
1
2
x+2
1
2 x+2
xi + 2 (i = 0, 1, 2, ...)
3
Outro exemplo: f ( x) = x 3x + 3 = 0
x 2 ( x 3) = 3
x=
3
( x 3)
3
3
2
( x 3) 2
( x 3)
3
e se quizermos
( x 3)
3
.
( x 3)
MTODO DE AITKEN
31
Clculo Numrico
2 Soluo de Equaes
(1)
(1)
( 2)
(2 )
Teorema (Aitken). Sejam os mtodos iterativos xi = 1( xi 1) e xi = 2 ( x i 1) , i = 1, 2,
..., de ordem p, os quais convergem para x = . Com as funes 1 e 2 possvel construir a
funo dada por:
x1 ( 2 ( x)) 1 ( x) 2 ( x)
x 1 ( x) 2 ( x) + 1 ( 2 ( x))
( x) =
x i( ( x i )) ( x i ) ( x i )
x i ( x i + 1 ) ( x i + 1 ) 2
x i xi + 2 ( x i + 1 ) 2
( x i ) =
=
=
x i ( xi ) ( x i ) + ( ( x i )) x i 2x i + 1 + ( x i + 1 ) x i 2 xi +1 + x i + 2
Exemplo. Seja f(x) = x - e x = 0
I = [0, 1]
Mtodo Iterativo:
x = e x (ou seja, (x) = e x ). Neste caso '(x) = - e x . Portanto | '(x) | < 1 para x > 0, ou
seja, o mtodo converge.
A tabela a seguir mostra os valores obtidos diretamente por este mtodo iterativo com x0 = 0.5
e tambm os valores obtidos atravs do mtodo de Aitken.
i
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
(xi)
0.50000
0.60653
0.54524
0.57970
0.56006
0.57117
0.56486
0.56844
0.56641
0.56756
0.56691
0.56728
0.56707
0.56719
0.56712
0.56716
0.56714
Mtodo de Aitken
0.50000
0.60653
0.54524
0.56762
0.56687
0.56730
0.56714
32
Clculo Numrico
2 Soluo de Equaes
MTODO DE NEWTON-RAPHSON
Teorema (Taylor ). Seja f(x) uma funo tal que f(x) e suas n derivadas f(n)(x) (n > 0) so
contnuas no intervalo [a, b]. Seja f(n+1)(x) definida no intervalo (a, b). Ento existe, pelo
menos, um valor (a, b) tal que:
f ( b) = f (a ) +
ba
(b a) 2
( b a) n ( n)
( b a) n + 1 ( n + 1)
f '( a) +
f " (a) +...+
f (a ) +
f
()
1!
2!
n!
( n + 1)!
Seja xi uma aproximao para a raiz de f(x) = 0 e seja = xi + h. Ento, como f() = 0, para o
intervalo [xi, xi + h], pelo Teorema de Taylor, pode-se escrever:
0 = f() = f(xi + h) = f(xi) + hf'(xi) + ...
Ignorando os prximos termos da expanso de Taylor, tem-se:
f(xi) + hf'(xi) = 0
ou seja: h =
f (x i )
f '( x i )
Portanto, como xi + h deve ser uma nova aproximao para a raiz de f(x), tem-se o mtodo de
Newton-Raphson:
xi + 1 = x i
f ( xi )
f '( x i )
i = 0, 1, 2, ...
f ( 0.00000)
= 0.20000
f '( 0.00000)
f ( 0.20000)
x2 = 0.20000
= 0.25535
f ' (0.20000)
f ( 0.25535)
x3 = 0.25535
= 0.25915
f '( 0.25535)
f ( 0.25915)
x4 = 0.25915
= 0.25917
f '( 0.25915)
f ( 0.25917)
x5 = 0.25917
= 0.25917
f ' (0.25917)
x1 = 0.00000
33
Clculo Numrico
2 Soluo de Equaes
Interpretao Geomtrica
y
y = f(x)
f(xi)
f(xi+1)
a
raiz
tg (a) = f '( xi ) =
f (x i )
(x i x i +1 )
x
xi
xi+1
x i + 1 = xi
f ( xi )
f '( x i )
Uma questo importante : O mtodo converge sempre? As figuras a seguir ilustram algumas
situaes possveis.
y = f(x)
y = f(x)
x1 = x3
x
x0 = x2
x0
raiz
x1
f(a).f(b) < 0
f'(x) 0, x [a, b]
f"(x) 0 ou f"(x) 0, x [a, b]
f (a)
< ba e
f ' (a)
f ( b)
< ba
f ' ( b)
Ento, para qualquer x0 [a, b] o mtodo de Newton-Raphson ir convergir para a raiz de f(x)
= 0 pertencente ao intervalo [a, b].
Exemplo. f(x) = x3 + 2x 2 + 3x 1
I = [0, 1]
Clculo Numrico
2 Soluo de Equaes
f ( 0)
1
1
=
= < 1 0
f ' (0)
3
3
f (1)
5
1
=
= < 1 0
f ' (1)
10
2
( x * xi ) 2
0 = f ( x*) = f ( xi ) + ( x * x i ) f '( xi ) +
f "( )
2
com (xi, x*).
Dividindo-se por f'(xi) tem-se:
f ( xi )
( x * x i ) 2 f " ()
+ ( x * x i ) +
=0
f '( x i )
2
f '( xi )
Por outro lado: xi + 1 = x i
f (x i )
f ( xi )
. Portanto:
= x i x i +11. Logo:
f ' ( xi )
f '( x i )
( x * xi ) 2 f " ()
( x i x i + 1 ) + ( x * xi ) +
=0
2
f '( xi )
( x * x i + 1) +
( x * x i ) 2 f "()
=0
2
f ' (x i )
1
ei + 1 = ei2 k
2
ei +1
ei2
1
= k
2
lim
ei +1
e2i
= cte
35
Clculo Numrico
2 Soluo de Equaes
y = f(x)
f(x0)
f(x1)
x2
x0
x1
raiz
x i + 1 xi
x i x i 1
=
f ( xi ) 0 f ( x i 1 ) f ( x i )
Portanto, o mtodo das secantes pode ser escrito iterativamente como:
xi + 1 = x i
( xi x i 1) f ( xi )
f ( xi ) f ( xi 1 )
i = 1, 2, ...
Deve-se observar que o mtodo das secantes no exige que haja troca de sinal da funo f(x)
no intervalo [xi-1 , xi] como no mtodo da falsa-posio.
medida que se aproxima da raiz, f(xi) e f(xi-1 ) devem ser valores muito prximos e
consequentemente, poder ocorrer o fenmeno do cancelamento subtrativo. Para evitar isto,
pode-se escrever o mtodo das secantes como:
xi + 1 = x i
f ( xi )
f ( xi 1 )
f (x i )
(1
)
f (x i 1 )
(x i 1 x i )
1
( 5 + 1) 1618
. , ou seja, converge um pouco mais lentamente que o mtodo de Newton2
MTODO DE MLLER
No mtodo das secantes, consideram-se dois pontos xi-1 e xi e por eles traa-se uma reta para
determinar o prximo ponto xi+1 (interpolao linear ). O mtodo de Mller considera trs
pontos: xi-2, xi-1 e xi, e por eles passa uma equao do segundo grau (parbola) a fim de
determinar o prximo ponto xi+1.
36
Clculo Numrico
2 Soluo de Equaes
Ilustrao Grfica:
y
x1
x0
x2
x3
y = f(x)
x2 + x + = f ( x )
1 0
2
0
0 02
0 x1 + 1x1 + 2 = f ( x1 )
2
0 x 2 + 1x2 + 2 = f ( x 2 )
Resolvendo-se o sistema tem-se: x3 =
2 2
1 12 4 0 2
deve ser escolhido de modo que o denominador tenha o maior valor absoluto possvel.
x + 2y 3 = 0
2
2
3x + y 7 = 0
Neste caso, deseja-se saber os valores de x e de y que satisfazem, simultaneamente, as duas
equaes. Estes valores podem ser vistos no grfico a seguir, onde as funes y = f 1(x) e y =
f2 (x) so definidas como: f1 ( x ) = ( 3 x ) / 2 e f 2 ( x) =
7 3x2 .
y
f2(x)
2.5
f1(x)
raiz
1.5
raiz
1
0.5
x
-2
-1
37
Clculo Numrico
2 Soluo de Equaes
7 3x2
y = 2(x,y) =
Pelas tabelas abaixo pode-se observar que, partindo-se de uma estimativa inicial (x0,y0 ) =
(1.00, 1.00) o mtodo converge para a raiz (-1.00, 2.00) (mostrada esquerda, no grfico
acima). Entretanto, partindo-se da estimativa inicial (x0 ,y0) = (0.00, 1.00), aps 3 iteraes, o
mtodo diverge.
i
xi
yi
xi
yi
0
1
2
3
1.00
1.00
-1.00
-1.00
1.00
2.00
2.00
2.00
0
1
2
3
0.000
1.000
-2.292
-1.000
1.000
2.646
2.000
8.753
A convergncia do mtodo de ponto fixo pode ser estabelecida pela generalizao do teorema
de convergncia para funo de uma varivel, onde o intervalo I substitudo por uma regio
circular que contenha a raiz. Para o caso acima, por exemplo, deve-se ter:
2
2
2 2 2
1 2 1
+
+
L1
+
x
x
y
y
f1 (x, y) = 0
f 2 (x, y ) = 0
Uma nova aproximao para a raiz do sistema pode ser estabelecida como:
x i +1 = x i + h i
y i +1 = y i + k i
onde hi e ki so os valores dos passos a serem determinados. Como xi +1 e yi +1 so
aproximaes para uma raiz do sistema, pode-se escrever:
f 1( x i +1, yi +1 ) = f1 ( x i + h i , yi + k i ) 0
f 2 ( x i +1 , y i +1 ) = f 2 ( x i + h i , y i + k i ) 0
38
Clculo Numrico
2 Soluo de Equaes
f
f
f 1( xi + hi , y i + k i ) = f1 ( x i , yi ) + hi 1 ( x i , yi ) + ki 1 ( x i , yi ) +... 0
x
y
f
f
f 2 ( x i + h i , yi + ki ) = f 2 ( x i , y i ) + hi 2 ( x i , yi )+ k i 2 ( x i , y i ) +... 0
x
y
Ou seja:
f1 ( x i , y i )
f ( x , y )
+ k i 1 i i = f1 ( xi , yi )
x
y
f ( x , y )
f ( x , y )
hi 2 i i + ki 2 i i = f 2 ( x i , y i )
x
y
hi
f1 ( x i , yi ) f1 ( xi , yi )
h
f1( xi , y i )
x
y
i =
f 2 ( x i , yi ) f 2 ( x i , yi ) ki
f 2 ( x i , yi )
x
y
14444244443
Jacobiano
f1 ( x, y) = e x y 4y = 0
f 2 ( x, y) = cos( x + y) + 4x = 0
f1
= ex y
x
f1
= e x y 4
y
f 2
f2
= sen( x + y) + 4
= sen( x + y)
x
y
Considerando como estimativa inicial para a soluo o ponto (x0 , y0 ) = (0.0, 0.0), tem-se:
1 5 h0
1
=
4 0
k0
1
Resolvendo o sistema de equaes lineares acima, tem-se os valores de h 0 e k 0 . Neste
caso:
39
Clculo Numrico
2 Soluo de Equaes
h0 =
1
4
k0 =
3
20
EXERCCIOS RESOLVIDOS
1. Enumere, localize e separe as razes reais da equao 2x 3 + 5x 2 2 = 0 . Em seguida
utilize o mtodo do ponto fixo para encontrar uma raiz positiva e o mtodo de NewtonRaphson para encontrar uma raiz negativa, caso exista, desta equao. Nos mtodos
iterativos trabalhe com 3 casas decimais e utilize o critrio de parada: x n x n 1 < 0.01,
onde xi corresponde i-sima aproximao para o valor da raiz.
Soluo:
p(x) = 2x 3 + 5x 2 2
p(-x) = 2 x3 + 5x 2 2 = 2x 3 5x 2 + 2
Enumerao:
p(x)
p(-x)
+ + + - +
Localizao:
Raiz positiva:
5
2
7
0
7
7
-2
7
5
raiz [0, 1]
Razes negativas:
2
-5
2
-3
-5
4
-1
40
Clculo Numrico
2 Soluo de Equaes
-5
6
1
0
3
3
2
9
11
razes [-3, 0]
p( x) = 2x 3 + 5x2 2
p' ( x) = 6x2 + 10x
p"( x) = 12 x + 10
p"'( x) = 12
Seja o intervalo [-3, -2]:
p(-3) = -11
p'(-3) = 24
p"(-3) = -26
p'"(-3) = 12
p(-2) = 2
p'(-2) = 4
p"(-2) = -14
p'"(-2) = 12
Logo, como V 3 V 2 = 1, existe uma raiz no intervalo [-3, -2]. Portanto a outra raiz
negativa est no intervalo [-2, 0].
Clculo da raiz positiva - Mtodo do ponto fixo:
2x3 + 5x 2 2 = 0
x 2 ( 2x + 5) = 2
x=
2
2x + 5
Assim:
g( x) =
2
2x + 5
g' ( x ) =
2
1
( 2x + 5) 2
2x + 5
converge.
Seja x 0 = 0.000
x1 =
2
= 0.632
2 0 + 5
x3 =
2
= 0.571
2 0.565 + 5
x2 =
2
= 0.565
2 0.632 + 5
x4 =
2
= 0.571
2 0.571 + 5
p( x) = 2x 3 + 5x2 2
xi + 1 = x i
p'( x) = 6x 2 + 10x
p( xi )
. Seja x 0 = 3
p'( x i )
41
Clculo Numrico
x1 = 3
2 Soluo de Equaes
p(3)
= 2.542
p'( 3)
x 2 = 2.542
p( 2.542)
= 2.352
p'( 2.542 )
x3 = 2.352
p( 2.352)
= 2.315
p'(2.352)
x4 = 2.315
p( 2.315)
= 2.313
p'( 2.315)
p(-x) = x 3 + 3x + 1 = x3 3x 1
p(x)
p(-x)
+ - +
- + +
Localizao:
Razes positivas:
0
1
1
-3
1
-2
0
2
2
-3
4
1
1
2
3
raiz [0, 2]
0
2
2
-3
4
1
-1
2
1
raiz [-2, 0]
Raiz negativa:
p( x) = x 3 3x + 1
p' ( x) = 3x 2 3
p"( x) = 6x
p"'( x) = 6
42
Clculo Numrico
2 Soluo de Equaes
V0 = 2 trocas de sinal
V1 = 1 troca de sinal
Logo, como V0 V1 = 1, existe uma raiz no intervalo [0, 1]. Portanto, o intervalo [0, 2]
deve conter duas razes (e no zero razes). Conclui-se ento que a outra raiz positiva est
no intervalo [1, 2].
Clculo da raiz positiva - Mtodo do ponto fixo:
x3 3x + 1 = 0 x =
x3 + 1
3
Assim:
g( x) =
x3 + 1
g'( x) = x 2
3
mtodo
converge.
Seja x 0 = 0 .
03 + 1
x1 =
= 0.3333
3
0.3333 3 + 1
x2 =
= 0.3457
3
0.3457 3 + 1
x3 =
= 0.3471
3
p( x) = x 3 3x + 1
xi + 1 = x i
p( xi )
. Seja x0 = 2
p'( x i )
p( 2)
1
= 2
= 18889
.
9
p' ( 2)
p( 18889
.
)
0.0727
= 18889
.
= 18889
.
= 18795
.
p'( 18889
.
)
7.7038
p( 18795
.
)
0.0009
= 18795
.
= 18795
.
= 18794
.
p' (18795
.
)
7.5976
x1 = 2
x2
x3
p'( x) = 3x2 3
raiz 0.34
Clculo Numrico
2 Soluo de Equaes
EXERCCIOS PROPOSTOS
1. Enumere, localize e separe as razes reais das equaes abaixo. Em seguida utilize o
mtodo do ponto fixo para encontrar, caso exista, uma raiz negativa e o mtodo de
Newton-Raphson para encontrar, caso exista, uma raiz positiva destas equaes. Nos
mtodos iterativos trabalhe com 3 casas decimais e utilize o critrio de parada:
2. Considerando a equao f ( x) =
1
x2
EXERCCIOS DE PROGRAMAO
1. Determinar uma raiz da equao f ( x) = sin( x)
x
= 0 no intervalo [0, ]. Para identificar
2
uma aproximao inicial para o valor da raiz utilizar o programa Mathematica com as
seguintes instrues:
f[x_] = Sin[x] - x/2
Plot[f[x], {x, 0.0, Pi},
AxesLabel->{"x","y"},
Ticks->{{0.0,0.5,1.0,1.5,2.0,2.5,3.0},Automatic}]
( x n x n 1 ) / x n <
para = 10 -5 . Mostre o nmero n de iteraes, o valor da raiz x* obtida e o valor de f(x*).
2. Determinar uma raiz da equao f ( x ) = x + Ln( x ) = 0 no intervalo [0, 1].
Implementar o mtodo de Newton-Raphson para determinar o valor da raiz. O processo
iterativo de Newton-Raphson deve ser implementado como uma funo NRSOLVE com os
seguintes parmetros:
RAIZ = NRSOLVE(X0,EPS,LIM,RAIZ)
onde:
X0
EPS
Clculo Numrico
2 Soluo de Equaes
LIM
RAIZ
O critrio de parada deve combinar o erro relativo entre aproximaes sucessivas e o limite
de iteraes.
Conferir o valor encontrado para a raiz utilizando o programa Mathematica. Utilizar as
seguintes instrues:
f[x_] = x + Log[x]
FindRoot[f[x] == 0, {x, x0, xmin, xmax}, MaxIterations -> lim]
onde: x0 - estimativa inicial da raiz; xmin - limite inferior do intervalo que contm a raiz; xmax
- limite superior do intervalo que contm a raiz; lim - nmero mximo de iteraes.
45
Clculo Numrico
3. SOLUO DE SISTEMAS DE EQUAES LINEARES
3.1 - Introduo
Neste captulo estuda-se como encontrar a soluo de um sistema de equaes lineares da
forma:
...
a n1x1 + a n2 x2 + ... + a nn x n = b n
Neste caso o sistema possui n equaes e n incgnitas ( x1, x 2 ,..., x n ). O problema
encontrar os valores de x1, x 2 , ..., x n que satisfazem simultaneamente ao conjunto de
equaes.
Exemplo:
x1 x 2 2x 3 = 5
x1 + 2x 2 + x 3 = 7
x + 3x x = 2
1
2
3
Neste caso, o problema determinar os valores de
x1 , x 2 , x 3
que satisfazem
simultaneamente as trs equaes. Este problema pode ser escrito na forma matricial como:
1 1 2
5
x1
1 2 1 x2 = 7
1 3 1
2
x3
14
4244
3 1
23 {
A
onde:
Clculo Numrico
MATRIZES ESPECIAIS
Uma matriz A (n x n) :
TRIANGULAR:
se Aij = 0 para i > j ; i,j = 1, 2, ..., n (Triangular Superior)
se Aij = 0 para i < j ; i,j = 1, 2, ..., n (Triangular Inferior)
n
| A ij | , para i = 1, 2, ..., n
j= 1
j i
j= 1
j i
Exemplos:
Tridiagonal
Simtrica
1
2
3
4
2
5
6
7
3 4
6 7
8 9
9 10
1
3
0
0
Simtrica e Tridiagonal
2
4
6
0
0 0
5 0
7 8
9 10
Triangular Superior
1 2 0 0
2 3 4 0
1 2 3
0 5 6
0 4 5 6
0 0 6 7
0 0 8 9
0 0 0 10
48
4
7
Clculo Numrico
Diagonal
Triangular Inferior
1
2
4
7
0
3
5
8
0 0
0 0
6 0
9 10
1
0
0
0
0
1
4
6
0
0
1
7
0
0
3
0
0
0
0
4
Diagonal Dominante
1
2
3
5
0
2
0
0
10 1 2
4
4 9 0 5
1 1 6 2
1 1 2 5
0
0
0
1
( a) x1 x 2 2x 3 = 5
( b) x1 2x 2 + x 3 = 7
(c) x1 + 3x 2 x 3 = 2
Fazendo: (d) = (b) - (a); (e) = (c) - (a), tem-se as equaes:
( d) 3x 2 + 3x 3 = 12
( e) 4x + x = 7
2
3
Fazendo agora: (f) = (e) - (4/3)(d), tem-se:
{(f )
3x 3 = 9
Logo, de (f) pode-se determinar que x3 = 3. Substituindo o valor de x3 na equao (e) tem-se
que x2 = 1. Substituindo os valores de x2 e x3 na equao (a) tem-se que x1 = 2.
49
Clculo Numrico
(1)
(1)
(1)
(1)
(1)
(1)
(1)
(1)
(1)
(1)
(1)
a 21 x1 + a 22 x 2 + a 23 x 3 = b 2
a 31 x1 + a 32 x 2 + a 33 x 3 = b 3
Para eliminar x1 da segunda equao, deve-se:
(1)
(1)
(1)
(1)
(1)
(1)
(1)
(2 )
( 2)
( 2)
(2 )
( 2)
( 2)
a 22 x2 + a 23 x 3 = b2
a 32 x2 + a 33 x 3 = b3
onde:
(1)
(2 )
(1) a i1 (1)
a ij = a ij (1) a1j
a11
(1)
( 2)
(1) a
(1)
bi = b i i1 b1
(1)
a11
i , j = 2,3
i = 2,3
(2)
(2)
(1)
(1)
(1)
(2 )
( 2)
( 2)
( 3)
(3)
a 22 x2 + a 23 x 3 = b2
a 33 x3 = b 3
onde:
50
Clculo Numrico
(2 )
(3)
(2) a 32 (2)
a 33 = a 33 (2) a 23
a 22
( 2)
( 3)
( 2) a 32 ( 2)
b3 = b3 ( 2) b2
a 22
Com estas operaes, transformou-se a matriz dos coeficientes do sistema em uma matriz
triangular superior. Portanto pode-se determinar facilmente o valor da ltima incgnita ( x 3 ).
Uma vez determinado este valor, pode-se usar, sucessivamente, as equaes anteriores para
determinar, uma a uma, as demais incgnitas do sistema. Portanto o mtodo da eliminao de
Gauss apresenta duas fases:
(i)
(ii)
2x1 + 3x 2 x 3 = 5
4x1 + 4x 2 3x 3 = 3
2x 3x + x = 1
1
2
3
As operaes de eliminao do mtodo de Gauss se aplicam matriz dos coeficientes (A) e ao
vetor dos termos independentes (B). Assim, para facilitar, pode-se escrever a matriz
aumentada (AB):
4 4 3 3
2 3 1 1
No primeiro passo de eliminao, deve-se transformar os elementos a 21 e a 31 em zero. Para
a
fazer a 21 = 0, basta substituir a segunda linha por: (2 linha) 21 (1 linha). Ou seja:
a11
a
4
21 (1 linha) =
( 2 3 1 5) = (2)( 2
a 11
2
a
(2 linha) 21 (1 linha) = (4
a11
3 1 5) = ( 4 6 2 10)
3 3) + ( 4
10 ) = (0
1 7)
a
Para fazer a 31 = 0, basta substituir a terceira linha por: (3 linha) 31 (1 linha). Ou seja:
a11
a 31
2
(1 linha) =
( 2 3 1 5) = (1)( 2 3 1 5) = ( 2 3 1 5)
a 11
2
51
Clculo Numrico
a
(3 linha) 31 (1 linha) = (2
a11
3 1 1) + ( 2
3 1 5) = (0
6)
0 2 1 7
0 6 2 6
No segundo passo de eliminao, partindo-se da nova matriz aumentada, deve-se transformar
o elemento a 32 em zero. Para fazer a 32 = 0, basta substituir a terceira linha por: (3
a 32
linha)
(2 linha). Ou seja:
a 22
a 32
( 6)
(2 linha) =
( 0 2 1 7) = (3)( 0 2 1 7) = ( 0 6 3 21)
a 22
2
a
(3 linha) 32 (2 linha) = (0
a 22
6 2 6) + (0 6 3 21) = (0 0 5 15)
0 2 1 7
0 0 5 15
e portanto, pode-se escrever:
5x3 = 15 x3 = 3
2 x2 1x 3 = 2x 2 3 = 7 x 2 = 2
2x1 + 3x 2 1x3 = 2 x1 + 6 3 = 5 x1 = 1
ou seja, o vetor soluo do sistema :
1
X= 2
3
x1 + 2x 2 + 3x 3 + 4x 4
2x1 + x 2 + 2x 3 + 3x 4
3x1 + 2x 2 + x 3 + 2x 4
4x1 + 3x 2 + 2 x3 + x 4
= 10
=7
=6
=5
52
Clculo Numrico
a i,k 1
a k 1, k 1
b i = b i piv b k 1
a i , k 1 = 0
a i, j = a i, j piv a k 1, j
Fase de Substituio:
4. Para i variando de N at 1, fazer:
N
x i = ( b i a i, j x j ) / a i, i
j= i + 1
Observaes :
a11 x1 +
(1)
...+
a1n x n =
(2 )
...+
a 2n x n =
...
b2
(n ) x =
a nn
n
b n(n)
a12 x2 +
a 22 x 2 +
(1)
(2 )
(1)
b1
(2 )
(1)
( 2)
( n)
Portanto, o determinante da matriz dos coeficientes A dado por: a 11 a 22 ... a nn
(i )
(i )
Em cada estgio i do processo de eliminao, admitiu-se que a i, i 0. Se a i, i = 0, pelo
menos um dos demais coeficientes da coluna i deve ser diferente de zero. Portanto, pode
ser necessrio mudar a ordem das equaes.
Para sistemas de equaes lineares com a mesma matriz dos coeficientes, como por exemplo
em:
53
Clculo Numrico
1 1 2
1
1
2
3
x1
1 1 2
1 x2 = 7
2
1
x3
1
1
2
3
x1
1 x2 = 7
6
1
x3
1 1 2
1
1
x1
5 1
1 x2 = 7 7
2 6
1
x3
2
3
1 1 2
0
0
x1
5 1
3 x 2 = 12 6
3
x3
9 3
3
0
Uma observao importante com relao preciso dos resultados obtidos pelo mtodo da
eliminao de Gauss. Em qualquer estgio do processo de eliminao indesejvel ter-se
pivs
a i, k 1
a k 1, k 1
grandes, pois isto implica que os erros nos dados iniciais (matriz dos
1 1 2
1
1
2
3
x1
1 x2 = 7
1
x3
2
Neste caso, considerando a primeira coluna para a 1, 2 e 3 equaes, tem-se que piv =
1. Ento:
1 1 2
0
0
3
4
x1
3 x 2 = 12
1
x3
7
Agora, considerando-se a segunda coluna para a 2 e 3 equaes, tem-se que piv = 4/3,
ou seja, para minimizar os erros de aproximao o sistema deve ser rearranjado como:
54
Clculo Numrico
1 1 2
0
0
4
3
x1
1 x3 = 7
12
3
x2
AX1 =
1
0
...
0
AX 2 =
0
1
...
0
AX n =
...
0
0
...
1
1
0
X1 = A 1
...
0
123
0
1
X 2 = A 1
...
0
123
1 coluna
de A 1
2 coluna
de A 1
...
E xemplo.
1 1 2
Determinar a inversa de A = 1 2
1 .
1 3 1
Seja ento o "sistema expandido":
1 1 2 1 0 0
1 2 1 0 1 0
1 3 1 0 0 1
Aplicando as operaes de eliminao, tem-se:
1 1 2 1 0 0
0 3 3 1 1 0
0 4
1 1 0 1
55
0
0
X n = A 1
...
1
123
n sima
coluna
de A 1
Clculo Numrico
1 1 2
0
0
3 1
1
0
3 1 / 3 4 / 3 1
3
0
5/9
1/ 3
7/9
X2 = 1 / 9
X1 = 2 / 9
1/ 9
X3 =
4/9
1/ 3
1/ 3
ou seja:
5/9
7/9
1 / 3
= 2 / 9 1 / 9 1 / 3
1 / 9 4 / 9 1 / 3
Exerccio.
2
Determinar a inversa da matriz A =
1
Operaes Elementares[ A B I ] A
A
123
I
A
B
123
X
1
1
A
123I [ I X A ]
A 1
x + y + z = 4
2x + 3y + z = 9
x y z = 2
Clculo Numrico
1 0 0
2 3 1 9 0 1 0
1 1 1 2 0 0 1
O mtodo de Gauss-Jordan procura passo-a-passo, transformar a matriz dos coeficientes na
matriz identidade. Assim deve-se, no i-simo passo, dividir a i-sima linha da matriz expandida
por a ii e, em seguida, transformar os demais coeficientes da i-sima coluna em zero, atravs
da soma de linhas. Portanto no primeiro passo tem-se:
1
0
0
1
1
-2
1
-1
-2
4
1
-6
1
-2
-1
0
1
0
0
0
1
-1
1
2
0
0
1
0
1
0
2
-1
-4
3
1
-4
3
-2
-5
0
1
0
0
0
1
1
2
1
0.5
-0.75
1.25
0
0.5
-0.5
0.5
-0.25
-0.25
Portanto:
X= y = 2
z
1
05
.
0.5
= 0.75 05
.
0.25
125
.
05
. 0.25
Exerccio. Determinar o vetor soluo e a inversa da matriz dos coeficientes para os seguintes
sistemas de equaes lineares:
x1 + x 2 x 3 = 0.5
2x1 + x 3 = 4
.
x1 x 2 + 2x 3 = 35
3x1 x2 + x3 = 0
x1 + x 2 + x 3 = 0
2x1 x 2 + 2 x3 = 6
Clculo Numrico
L,M
K = 1,N
P = M(K,K)
I = 1,N
C(I) = M(I,K)
J = K,L
M(K,J) = M(K,J)/P
I = 1,N
sim
I <> K?
no
CONTINUE
a i, jx j = bi
j =1
Clculo Numrico
(LU)X = B
ou seja: LY = B, com Y = UX.
Neste caso, para determinar o vetor soluo X, ao invs de resolver o sistema original AX = B,
resolve-se dois sistemas:
LY = B
UX = Y
e em seguida:
A vantagem de resolver o sistema dessa forma que, uma vez feita a fatorao A = LU, o
clculo das solues dos sistemas LY = B e UX = Y muito simples, pois as matrizes dos
coeficientes desses sistemas j est na forma triangular. Alm disso, se for alterado o vetor B,
a fatorao de A pode ser aproveitada e a soluo do sistema continua fcil de ser
determinada.
Exemplo. Seja o sistema AX = B da forma:
1 1 2
1
1
2
3
x1
1 x2 = 7
1
x3
2
Considerando a fatorao:
1 1 2 1
1 2
1 =1
1 3 1
14243
0
1
0 1 1 2
00 3
3
1 4/3 1 0 0 3
14243 142
4 43
4
y1
1 1
0 y2 = 7
1 4/ 3 1
y3
2
cuja soluo fcilmente determinada, pois a matriz dos coeficientes j est na forma
triangular inferior. Assim:
1 y1 = 5 y1 = 5
1 y1 + 1 y2 = 7 y 2 = 12
1 y1 +
4
y 2 + 1 y3 = 2 y 3 = 9
3
59
Clculo Numrico
ou seja:
y1
y 2 = 12
y3
9
b) UX = Y, como:
1 1 2
x1
5
0 3 3 x2 = 12
0 0 3
x3
9
cuja soluo novamente pode ser determinada facilmente por retro-substituio, ou seja:
3 x3 = 9 x 3 = 3
3 x 2 + 3 x3 = 12 x 2 = 1
1 x1 1 x2 2 x 3 = 5 x1 = 2
Assim, o vetor soluo do sistema de equaes original dado por:
x1
2
x2 = 1
x3
3
A questo : "Como obter a fatorao A = LU ?"
Exemplo:
Seja a seguinte matriz A:
a11 a12
A = a 21 a 22
a 31 a 32
a13
a 23
a 33
para eliminar x 1 da linha 2 devemos substituir a linha 2 por: (linha 2) p21(linha 1), onde
a
p21 o piv dessa linha, dado por: p 21 = 21 .
a11
60
Clculo Numrico
para eliminar x1 da linha 3 devemos substituir a linha 3 por: (linha 3) p31(linha 1), onde
a
p31 o piv dessa linha, dado por: p31 = 31 .
a11
A=
b11
b12
b13
0
0
b 22
b32
b 23
b 33
para eliminar x 2 da linha 3 devemos substituir a linha 3 por: (linha 3) p32(linha 2), onde
p32 o piv dessa linha, dado por: p32 =
b32
.
b 22
u11
U= 0
0
u12
u 22
0
u13
u 23
u 33
e a matriz L (triangular inferior unitria) ser formada pelos pivs usados para determinar U, ou
seja:
1
0
L = p 21
1
p31 p 32
0
0
1
Exerccio.
4
Determinar a fatorao LU para a seguinte matriz A = 1
4 1 .
1 4
U1 j = A1 j ; L jj = 1 ( j = 1, 2, ..., N )
A
L i1 = i1 ( i = 2, 3, ..., N)
U11
61
Clculo Numrico
U
=
A
L rk U kj
rj
rj
k
=1
L ik U kr
ir
k
=
1
L =
ir
U rr
( j = r , r + 1, ..., N)
(i = r + 1, r + 2, ..., N)
Yi = Bi
Yi
Xi =
i 1
L ijYj
j =1
(i = 1, 2, ..., N)
j= i + 1
U ijX j
Uii
( i = N, N 1, ..., 1)
Outro mtodo que tambm usa a fatorao A = LU, mas com L, matriz triangular inferior e U,
matriz triangular superior unitria, conhecido como Mtodo de Crout .
Exemplo. Resolver o sistema AX = B a seguir pelo mtodo de Crout:
1 1 2
1
1
2
3
x1
1 x2 = 7
1
x3
2
1 1 2 1 0
1 2
1 =1 3
1 3 1
14243
0
1 1 2
0 0 1
1
1 4 3 0 0
1
14243 142
4 43
4
1 0
y1
1 3 0 y2 = 7
1 4 3
y3
2
Deste sistema tem-se:
1 y1 = 5 y1 = 5
1 y1 + 3 y2 = 7 y 2 = 4
1 y1 + 4 y2 3 y 3 = 2 y 3 = 3
62
Clculo Numrico
1 1 2
0
0
x1
1 x2 = 4
3
1
x3
1
0
Portanto:
1 x 3 = 3 x3 = 3
1 x 2 + 1 x 3 = 4 x 2 = 1
1 x1 1 x2 2 x 3 = 5 x1 = 2
Existem mtodos para casos especiais da matriz dos coeficientes. O mtodo de Choleski, por
exemplo, aplicado em sistemas onde a matriz A simtrica, considerando uma fatorao
a1
d2
A = ...
0
0
c1
a2
0
c2
0
0
...
0
0
...
...
0
0
0
0
...
...
0
0
d n 1 a n 1 c n 1
dn
an
0
1
d2
0
2
L=
0
0
onde:
0
0
...
...
...
0
0
0
0
0
0
1 1 ...
0 1 2
0 0
... 0
...
0
0
0
0
U=
... d n 1 n 1 0
...
0
dn n
0
0
...
...
0
0
1 n 1
0
1
1 = a 1
i 1i 1 = c i 1
d i i 1 + i = a i
( i = 2, 3, ..., n)
63
Clculo Numrico
b1
1
b d i yi 1
yi = i
i
y1 =
( i = 2, 3, ..., n)
xn = yn
xi = y i i x i + 1 (i = n 1, n 2, ..., 1)
d2y
dx 2
=4
dy
4
3y x ; y 0 =
; y6 = 16419
.
dx
9
(2 + 4h + 3h 2 )
1
0
0
0
(1 4 h)
0
0
0
(2 + 4 h + 3h 2 )
(1 4 h)
0
0
(2 + 4 h + 3h 2 )
(1 4h)
1
0
(2 + 4 h + 3h 2 )
(1 4 h)
0
1
(2 + 4 h + 3h 2 )
0
0
1
h x1 y 0
y1
h2 x2
y2
y3 =
h 2 x 3
y4
h2 x4
y5
h 2 x 5 (1 4 h)y 6
17925
0.8
0
.
17925
1
08
.
.
0
1
17925
.
0
0
0
0
1
0
0.4445
y1
0.0004
y2
y3 = 0.0009
y4
17925
0.0016
0.8
.
y5
1
17925
13160
.
.
0
0
0.8
64
0
0
0
Clculo Numrico
1 = a 1
11 = c1
d 2 1 + 2
1 = 17925
.
0.8
1 =
= 0.4463
17925
.
= a 2 2 = 17925
1 (0.4463) = 13462
.
.
08
.
2 2 = c2 2 =
= 0.5943
13462
.
d 32 + 3 = a 3 3 = 17925
1 (0.5943) = 11982
.
.
0.8
33 = c 3 3 =
= 0.6677
11982
.
d 4 3 + 4 = a 4 4 = 1.7925 1 ( 0.6677 ) = 11248
.
4 4 = c 4
d 5 4 + 5 = a 5
0.8
= 0.7112
11248
.
5 = 17925
1 (0.7112 ) = 10813
.
.
4 =
ou seja:
17925
.
1
0
0
L=
1.3462
0
0
1
11982
.
0
0
1
11248
.
0
0
0
10813
.
1 0.4463
0
0
0
0.5943
0
1
0
0
0.6677
0
1
0
U= 0
0.7112
0
0
0
1
0
z1 =
b1
1
z1 =
b d 2 z1
z2 = 2
2
b 3 d 3z2
z3 =
3
b4 d 4z3
4
b5 d 5z 4
z5 =
5
z4 =
0.4445
= 0.2480
17925
.
0.0004 1 0.2480
= 01845
.
13462
.
0.0009 1 01845
.
z3 =
.
= 01547
11982
.
z2 =
z4 =
0.0016 1 0.1547
= 01389
.
.
11248
z5 =
13160
.
1 01389
.
= 13455
.
10813
.
65
Clculo Numrico
y5 = z5
.
y5 = 13455
y4 = z4 4 y5
.
y4 = 0.1389 ( 0.7112 ) 13455
= 1.0958
.
.
.
y3 = z3 3y 4 y 3 = 01547
(0.6677 ) 10958
= 08864
.
.
y2 = z2 2 y3 y 2 = 01845
(0.5943) 08864
= 0.7113
y1 = z1 1y2 y1 = 0.2480 ( 0.4463) 0.7113 = 0.5655
.
05655
0.7113
Portanto a soluo do sistema AY = B dada por: Y = 0.8864
.
10958
1.3455
Observao .
Os mtodos de fatorao so mtodos diretos (ou seja, no iterativos) como o mtodo da
eliminao de Gauss. No caso da fatorao LU para matrizes tridiagonais o nmero de
operaes aritmticas elementares proporcional a n (lembrar que este nmero proporcional
a n 3 para o mtodo de Gauss).
x 3 = ( b 3 a 31x1 a 32 x 2 ) / a 33
Sejam x (0 ) , x ( 0) , x( 0) aproximaes iniciais para x1, x2, x3. A partir das equaes acima,
1
2
3
pode-se estabelecer o esquema iterativo de Gauss-Jacobi:
x2
( k 1)
( k 1)
= ( b2 a 21x1 a 23x 3 ) / a 22
k = 1, 2, 3, ...
Clculo Numrico
k = 1, 2, 3, ...
3x1
x1
+
+
x2
5x2
2x 3
x3
=
=
2
6
x1
x2
4x 3
1
x1 = ( 2 x 2 + 2x 3 )
3
1
x2 = ( 6 + x1 + x 3 )
5
1
x3 = ( 2 x1 + x2 )
4
0
Seja a soluo inicial dada por: X
( 0)
Gauss-Jacobi .
1 iterao :
1
1
x1 = (2 x 2 + 2 x3 ) = ( 2 0 + 2 0) = 0.6667
3
3
1
1
x2 = ( 6 + x1 + x3 ) = ( 6 + 0 + 0) = 12000
.
5
5
1
1
x3 = ( 2 x1 + x 2 ) = ( 2 0 + 0) = 0.5000
4
4
2 iterao :
67
0.6667
(1)
= 1.2000
0.5000
Clculo Numrico
1
1
x1 = (2 x 2 + 2x3 ) = ( 2 1.2000 + 2 0.5000) = 0.6000
3
3
1
1
x2 = ( 6 + x1 + x 3 ) = ( 6 + 0.6667 + 0.5000) = 14333
.
5
5
1
1
x3 = (2 x1 + x 2 ) = ( 2 0.6667 + 12000
.
) = 0.6333
4
4
(2 )
0.6000
= 1.4333
0.6333
3 iterao :
1
1
x1 = (2 x 2 + 2 x3 ) = (2 14333
.
+ 2 0.6333) = 0.6111
3
3
1
1
x2 = ( 6 + x1 + x3 ) = ( 6 + 0.6000 + 0.6333) = 14467
.
5
5
1
1
x3 = ( 2 x1 + x 2 ) = ( 2 0.6000 + 14333
.
) = 0.7083
4
4
11 / 17
0.6111
(3)
= 1.4467
0.7083
0.6471
12 / 17
0.7059
1
1
x1 = (2 x 2 + 2 x3 ) = ( 2 0 + 2 0) = 0.6667
3
3
1
1
x2 = ( 6 + x1 + x 3 ) = ( 6 + 0.6667 + 0) = 13333
.
5
5
1
1
x3 = (2 x1 + x 2 ) = ( 2 0.6667 + 13333
.
) = 0.6666
4
4
0.6667
(1)
= 1.3333
0.6666
2 iterao :
1
1
x1 = (2 x 2 + 2x3 ) = ( 2 1.3333 + 2 0.6666) = 0.6666
3
3
1
1
x2 = ( 6 + x1 + x 3 ) = ( 6 + 0.6666 + 0.6666) = 14666
.
5
5
1
1
x3 = (2 x1 + x 2 ) = ( 2 0.6666 + 14666
.
) = 0.7000
4
4
3 iterao :
68
(2 )
0.6666
= 1.4666
0.7000
Clculo Numrico
1
1
x1 = (2 x 2 + 2x3 ) = ( 2 1.4666 + 2 0.7000) = 0.6444
3
3
1
1
x2 = ( 6 + x1 + x 3 ) = ( 6 + 0.6444 + 0.7000) = 14689
.
5
5
1
1
x3 = (2 x1 + x 2 ) = ( 2 0.6444 + 14689
.
) = 0.7061
4
4
0.6444
(3)
= 1.4689
0.7061
Portanto, nota-se que, aps 3 iteraes, a soluo aproximada obtida atravs do mtodo de
0.6444
0.6471
Gauss-Seidel, X = 14689
.
0.7061
0.7059
do que a
0.6111
*
0.7083
de Gauss-Seidel converge mais rapidamente do que o de Gauss-Jacobi.
Exemplo. Seja o sistema:
4x1 +
x2
x3 =
12
x1 + 3x 2 + 3x 3 =
2x1 + 2 x2 + 5x 3 =
6
5
Sejam x1(0 ) = x (20) = x (30) = 0 . Neste caso, tem-se os seguintes resultados dos mtodos
iterativos de Gauss-Jacobi e Gauss-Seidel:
k
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
x1
0.00000
3.00000
2.75000
2.08333
1.89583
1.94583
1.99965
2.00965
2.00363
1.99954
1.99918
1.99978
2.00007
2.00007
2.00001
1.99999
Gauss-Jacobi
x2
0.00000
2.00000
2.66667
3.25000
3.08333
3.00972
2.97917
2.99396
3.00039
3.00169
3.00038
2.99989
2.99987
2.99998
3.00001
3.00001
x3
0.00000
1.00000
-1.00000
-1.16667
-1.13333
-0.99167
-0.98222
-0.99152
-1.00144
-1.00161
-1.00049
-0.99982
-0.99986
-0.99997
-1.00002
-1.00001
x1
0.00000
3.00000
1.90000
1.97500
2.00542
2.00038
1.99979
2.00000
2.00001
2.00000
Gauss-Seidel
x2
0.00000
3.00000
3.10000
2.99167
2.99736
3.00050
3.00005
2.99998
3.00000
3.00000
x3
0.00000
-1.40000
-1.00000
-0.98667
-1.00111
-1.00035
-0.99993
-0.99999
-1.00000
-1.00000
Clculo Numrico
MTODO DE GAUSS-JACOBI:
n
x (i k ) = ( bi a i, jx (jk 1) ) / a i,i
j=1
j i
i = 1,2,...,n
MTODO DE GAUSS-SEIDEL:
i 1
j=1
j =i +1
i = 1,2,...,n
a i, j x j = b i
i = 1, 2,..., n
j= 1
n
| a kj |
e seja: k =
j =1, j k
| a kk |
Observe que o teorema acima estabelece uma condio suficiente, mas no necessria, para
a convergncia, ou seja, os esquemas iterativos de Gauss-Jacobi e de Gauss-Seidel podero
tembm convergir para outras classes de sistemas de equaes lineares. Ver, para ilustrar, a
tabela de resultados do exemplo anterior, onde a matriz dos coeficientes no estritamente
diagonal dominante e para o qual o mtodo de Gauss-Jacobi converge aps 15 iteraes e o
mtodo de Gauss-Seidel converge aps 9 iteraes.
A questo importante a seguinte: se a matriz dos coeficientes for estritamente diagonal
dominante, o teorema garante que para qualquer soluo inicial os mtodos iterativos
convergem. No caso da tabela acima, os mtodos convergiram para uma soluo inicial nula.
Ser que iro convergir para uma outra estimativa inicial qualquer? Da a importncia do
teorema acima, que garante que, se a matriz dos coeficientes for estritamente diagonal
dominante os mtodos de Gauss-Jacobi e Gauss-Seidel iro convergir, qualquer que seja a
estimativa inicial escolhida.
Observe que o critrio das linhas pode ser satisfeito aps uma permutao de linhas ou
colunas. Por exemplo, seja o sistema:
70
Clculo Numrico
x1 + 3x 2 + x 3 = 2
5x1 + 2x 2 + 2x 3 = 3
6x 2 + 8x 3 = 6
A matriz dos coeficientes desse sistema no satisfaz o critrio das linhas, pois para a 1 linha
tem-se: 1 =
3 +1
= 4 > 1. Contudo, permutando-se a primeira linha com a segunda, tem-se o
1
sistema:
5x1 + 2x 2 + 2x 3 = 3
x1 + 3x 2 + x 3 = 2
6x 2 + 8x 3 = 6
que equivalente ao sistema original mas que apresenta uma matriz dos coeficientes que
satisfaz o critrio das linhas. Ou seja, aplicando-se um mtodo iterativo a esta nova forma do
sistema a convergncia estar assegurada.
a i, j x j = b i
i = 1, 2,..., n
j= 1
e sejam:
n
| a1 j |
1 =
j= 2
| a11 |
e j =
| a j1 | 1 + | a j2 | 2 + L + | a jj1 | j 1 + | a jj+1 | + L + | a jn |
.
| a jj |
estimativa inicial. Alm disso, quanto menor for o valor de , mais rpida ser a convergncia.
Exemplo. Seja o seguinte sistema:
2x1 +
x 2 + 3x 3 = 9
x 2 + x3 = 1
x1 +
3x 3 = 3
1+ 3
= 2 > 1.
2
Clculo Numrico
x1 +
3x 3 = 3
x 2 + x3 = 1
2x1 + x 2 + 3x 3 = 9
e, em seguida, trocando-se a 1 coluna pela 3, tem-se:
3x 3 +
x1 = 3
x3
x2
= 1
3x 3 + x 2 + 2x1 = 9
e nesta forma, tem-se:
1
1 + 0
1
3
2 =
=
1
3
1
1 =
3
1
1
3 +1
3 =2
3
3 =
2
3
2
< 1 , o critrio de Sassenfeld est satisfeito e tem-se
3
( erro absoluto)
x(i k) x (i k 1)
Max
<
1in
x (i k 1)
( erro relativo )
e formular um critrio de parada com base em alguma medida deste vetor, por exemplo,
alguma norma do vetor resduo ser menor que (preciso). As normas mais comumente
usadas so:
n
Norma-2 =
ri2
i =1
Norma- = Max | ri |
1 i n
72
Clculo Numrico
a i, j x j = b i ,
0
L=
D=
... 0
a 2,1
0
...
a n,1 a n,2
... 0
a11
,
...
0
...
0
a 2, 2
...
... 0
0 a1,2
0
0
U=
...
0
0
... a n, n
... a1, n
... a 2, n
0
Ento, o sistema original pode ser escrito como: (L + D + U)X = B. Os termos desta equao
podem ser reestruturados de vrias maneiras, cada uma das quais levando a um mtodo
iterativo. Por exemplo:
DX = -(L + U)X + B
o que leva ao esquema iterativo de Gauss-Jacobi:
X ( k ) = D 1 ( L + U) X ( k 1) + D1B
O esquema iterativo de Gauss-Seidel segue do esquema de Gauss-Jacobi, separando-se a
soma (L + U):
X ( k ) = D1LX ( k ) D 1UX ( k 1) + D 1B
Neste caso, multiplicando-se todos os termos por D e rearranjando, tem-se:
( D + L) X ( k ) = UX ( k 1) + B
e portanto:
X ( k ) = ( D + L) 1 UX ( k 1) + ( D + L) 1 B
73
Clculo Numrico
Gauss-Jacobi
Gauss-Seidel
G
D -1 B
(D + L)-1B
X ( k) = MX ( k 1) + G
para a soluo exata, deve valer:
X = MX + G
Subtraindo estas duas equaes, tem-se:
1)
( k)
2
X
X4
X ( k43
)
14
3 = M (X
1
42
E ( k 1)
E ( k)
E ( k) = ME ( k 1) = M ( ME ( k 2 ) ) = M 2 E( k 2) = ... = M k E ( 0)
onde E ( 0) o erro na aproximao inicial X ( 0) . Portanto o processo iterativo ir convergir se
M k tender para a matriz nula medida que k aumentar.
Exemplo. Verificar a convergncia do mtodo iterativo de Gauss-Jacobi para o sistema de
equaes lineares a seguir.
4 x1 + x 2 = 2
x1 + 4x 2 x 3 = 6
x + 4x = 2
2
3
4
Neste caso, A = 1
L = 1
0 0
1 0
4 0 0
D= 0
4 0
0 0 4
0 1
U = 0 0 1
74
0 0
Clculo Numrico
1 / 4
0
0
M=
0
1 / 4
0
0
0
1 / 4
1 / 4
=
0 0 0
0 1 0
1 0 0 + 0 0 1
0 0 0
0 1 0
0
0
1 / 4
1 0 1 = 1 / 4
0
1 / 4 0 1 0
0
0
0
1 / 4
0
1/ 4
1/ 4
0
0
1
M = 1/ 4
0
1 / 4
0
1/ 4
1/ 4
0
1 / 16 0 1 / 16
2
M =
0
1 / 16
0
0
0
1 / 16
0 0 0
3
M = 0 0 0
0 0 0
Portanto o processo iterativo de Gauss-Jacobi ir convergir, qualquer que seja a aproximao
inicial da soluo.
75
Clculo Numrico
Exemplo.
2x1 x2 x 3 = 0
0.03
2 1 1
015
.
0.05
0.05
4 2 0.22 = 1 127
.
= 0.27
3 2 4
0.03
0
0.13
013
.
2 1 1
v1
0.05
3 4 2 v2 = 0.27
3 2 4
v3
013
.
obtem-se:
0.0500
V* = 0.0367
0.0133
Portanto a nova aproximao da soluo ser:
0.0500
015
.
01000
.
0.0133
0.03
0.0167
2 1 1
0.1000
R = B - AX* = 1 3
0.0000
0.0000
4 2 01833
.
= 1 0.9998 = 0.0002
3 2 4
0.0167
0
0.0002
0.0002
76
Clculo Numrico
2 1 1
AV = R
v1
0.0000
3 4 2 v2 = 0.0002
v3
3 2 4
0.0002
0.00000
V* =
0.00003
0.00003
.
010000
0.00000
0.1000
+ 0.00003 = 018333
.
.
X* = X* + V* = 01833
0.00003
0.01667
0.0167
Assim, a cada passo do refinamento obtm-se melhores aproximaes para a soluo do
sistema:
1 / 10
X = 11 / 60 .
1 / 60
EXERCCIOS RESOLVIDOS
c0 = 2
c0 + 2c1 + 4c2 = 1
c0 + 5c1 + 25c 2 = 1
Soluo:
Escrito na forma matricial o sistema acima apresenta-se como:
1 0
c0
1 2 4 c1 = 1
1 5 25
c2
1
O mtodo de Gauss utilizado em duas fases: na primeira (denominada fase de
eliminao ou fase de triangularizao), a matriz dos coeficientes transformada em uma
matriz triangular (superior ou inferior); na segunda fase (denominada fase de retrosubstituio ou fase de substituio, dependendo se a matriz dos coeficientes foi
transformada em uma matriz triangular superior ou inferior, respectivamente), determinamse os valores das variveis.
1 0
4 , para a triangularizao
1 5 25
basta tornar nulo o elemento A 2,3 = 4 . Isto pode ser feito substituindo-se a 2 linha de A
por: (2 linha -
4
(3 linha)). Com isto tem-se o sistema:
25
77
Clculo Numrico
c0
21 / 25 6 / 5 0 c1 = 29 / 25
1
5 25
c2
1
onde a matriz dos coeficientes triangular inferior.
Portanto, aplicando-se a fase de substituio:
c0 = 2
21
6
29
c 0 + c1 =
25
5
25
c0 + 5c1 + 25c 2 = 1
71
2.367
30
13
c2 =
0.433
30
c1 =
x+ y+z = 0
x + 2y + 4z = 3
x + 3y + 9 z = 14
Soluo:
O sistema acima pode ser escrito como:
1 1 1
x
0
1 2 4 y = 3
1 3 9
z
14
Para a aplicao do mtodo de Gauss, pode-se trabalhar apenas com a matriz aumentada:
1 1 1 0
A= 1 2 4 3
1 3 9 14
Fase de eliminao (matriz triangular superior):
Passo 1:
78
Clculo Numrico
1 1 1
A= 0 1
3 3
0 2 8 14
Passo 2:
1 1 1 0
A= 0 1 3 3
0 0 2 8
Fase de retro-substituio:
8
=4
2
y + 3z = 3
z=
y = 3 3z = 3 3 4 y = 9
x + y + z = 0 x = y z = ( 9) 4
x=5
x1 + 5x 2 + x 4 = 2
x 2x + 4x = 1
2
3
4
3. Resolver o sistema:
pelo mtodo de Gauss-Seidel, comeando
8
x
x
+
x
=
2
3 1
1
x1 + 4 x3 2x 4 = 0
com x 0 = ( 0,0,0,0) T .
Soluo:
Para garantir a convergncia do mtodo de Gauss-Seidel, deve-se ter uma matriz de
coeficientes diagonal dominante. Para isto, pode-se reescrever o sistema de equaes
como:
8 1 1
0
x1
1
1 5 0
1
x2
2
=
1 0 4 2
x3
0
0 1 2 4
x4
1
Portanto, as equaes de Gauss-Seidel para este sistema so:
x1 = (1 + x2 x3 ) / 8
x2 = (2 + x1 x4 ) / 5
x3 = ( x1 + 2x 4 ) / 4
x4 = (1 + x 2 + 2x 3 ) / 4
Portanto, partindo-se da estimativa inicial x0 = ( 0, 0, 0, 0) tem-se:
79
Clculo Numrico
Passo
0
1
Clculos
x3 = (0125
.
+ 2 0.000) / 4 = 0.031
x3 = ( 0182
.
+ 2 0.341) / 4 = 0125
.
x4 = (1 + 0.368 + 2 0125
. ) / 4 = 0.405
x1 = (1 + 0.368 0125
. )) / 8 = 0155
.
x2 = (2 + 0.155 0.405) / 5 = 0.350
x 3 = ( 0.155 + 2 0.405) / 4 = 0.164
Soluo atual
(0.000, 0.000, 0.000, 0.000)
(0.125, 0.000, 0.000, 0.000)
(0.125, 0.425, 0.000, 0.000)
(0.125, 0.425, -0.031, 0.000)
(0.125, 0.425, -0.031, 0.341)
(0.182, 0.425, -0.031, 0.341)
(0.182, 0.368, -0.031, 0.341)
(0.182, 0.368, 0.125, 0.341)
(0.182, 0.368, 0.125, 0.405)
(0.155, 0.368, 0.125, 0.405)
(0.155, 0.350, 0.125, 0.405)
(0.155, 0.350, 0.164, 0.405)
(0.155, 0.350, 0.164, 0.420)
(0.148, 0.350, 0.164, 0.420)
(0.148, 0.346, 0.164, 0.420)
(0.148, 0.346, 0.173, 0.420)
(0.148, 0.346, 0.173, 0.423)
Para ilustrar, a soluo deste sistema (obtida com o programa Mathematica ) corresponde
ao vetor:
(0.146, 0.344, 0.175, 0.424)
4. Decompor a matriz: A = 2
x1 + 2 x2 + 3x3 = 2
equaes: 2x1 + 8x 2 + 7x 3 = 7
2x + 16x + 12x = 10
1
2
3
Soluo:
1 2 3
1 0 0
1 2 3
A = 2 8 7 fatorada como: LU = 2 1 0 0 4 1
2 16 12
2 3 1
0 0 3
Portanto, o sistema:
x1
Clculo Numrico
1 0 0
y1
1 2 3
2 1 0 y2 = 7
10
2 3 1
y3
x1
y1
0 4 1 x 2 = y2
0 0 3
y3
x3
y1 = 2
2y1 + y 2 = 7 y2 = 3
2y1 + 3y2 + y3 = 10 y 3 = 3
e assim o segundo sistema torna-se:
1 2 3
x1
0 4 1 x2 = 3
0 0 3
x3
3
cuja soluo :
3x 3 = 3 x3 = 1
4x 2 + x 3 = 3 x2 = 1
x1 + 2x 2 + 3x3 = 2 x1 = 3
EXERCCIOS PROPOSTOS
2x 12 y + 8z + w = 27
4x + 7y 2 z + 5w = 4
7x + 9y + 5z 3w = 11
12 x 8y + 3z + 6w = 49
pede-se:
a) reescrev-lo em notao matricial
b) resolv-lo utilizando o mtodo da eliminao de Gauss
c) resolv-lo utilizando o mtodo de Gauss-Jacobi
100
.
0.67 0.33
A = 0.45 100
.
055
.
0.67 0.33 100
.
3. Verifique quais so os valores de k que garantem a convergncia do mtodo de GaussSeidel para o sistema de equaes a seguir. Em seguida, escolha um valor possvel para k
e encontre a soluo do sistema.
81
Clculo Numrico
kx1 + 3x2 + x 3 = 1
kx1 + 6x 2 + x3 = 2
x + 6x + 7x = 3
1
2
3
4. Dado o sistema de equaes lineares:
4 1 0
1 4 1
0
0
0
0
1 4 1
0 1 4
x1
x2
x3
x4
1
1
1
1
pede-se:
a) obter o vetor soluo atravs do mtodo de Gauss-Jacobi
b) obter o vetor soluo atravs do mtodo de Gauss-Seidel
considerando x( 0) = ( 0.00, 0.00, 0.00, 0.00) T , clculos feitos com trs casas decimais, e
preciso < 102 .
0
2
12
4
8
6
7
3
6 12 7 7
6 12 1 4
x1
x2
x3
x4
53
35
58
22
6. Um fazendeiro est criando porcos para vender e deseja determinar as quantidades dos
tipos de alimentos disponveis a ser dada a cada porco para atingir certos requisitos
nutritivos mnimos. O nmero de unidades de cada ingrediente nutritivo bsico contido em
1 kg de cada tipo de alimento disponvel dado pela tabela a seguir:
Ingrediente
Nutritivo
Carboidratos
Protenas
Vitaminas
Quilo de
Milho
3
9
1
Quilo de
Mandioca
8
2
2
Quilo de
Alfafa
6
4
6
Requisito
Mnimo
18
20
15
82
Clculo Numrico
xi
Max
1 i n
[k 1]
xi
<
[ k 1]
xi
xi
i 1
[ k]
= ( b i a i, jx j
j= 1
[ k 1]
a i, j x j
j= i + 1
i = 1, 2,..., n
) / a i, i
1 1 2
1
1
2
3
z1
1 z2 = 7
1
z3
2
83
z1
z2 = 1
z3
3
Clculo Numrico
4. INTERPOLAO
4.1 - Introduo
Seja { (xi, yi), i = 0, 1, ..., n } um conjunto de pontos conhecidos yi = f(xi) para uma funo f(x)
desconhecida ou muito trabalhosa de ser calculada analiticamente. O problema a ser estudado
neste captulo : "Como calcular o valor de f(x*), onde x* um ponto diferente de qualquer
dos pontos xi (i = 0, 1, ..., n) conhecidos?"
Exemplo. Dada a tabela de pontos abaixo, representando uma funo y = f(x), calcular f(2.50).
xi
1.00
2.00
3.00
yi
1.500
2.300
7.100
Admitindo-se que os valores tabelados so corretos (ou confiveis), o problema como obter,
de forma confivel , valores da funo para pontos no tabelados. Para isto, como f(x) uma
funo conhecida apenas em alguns pontos, o que se desej a construir uma funo (x) tal
que:
Graficamente:
y
Funo Interpoladora
y = f(x)
x
x0
x1
x2
x3
( x) = a 0 + a1x + ... + a n x n
F (Fourier):
( x ) = a i cos( ix ) + b i sen(ix )
E (Exponenciais):
( x) = ae bx
S (Splines):
Clculo Numrico
4 Interpolao
No caso geral, pode-se imaginar a funo interpoladora como sendo uma combinao de
funes fi(x) (i = 0, 1, ..., n), ou seja:
f(x) ( x ) = c 0 f 0 ( x ) + c1f 1 ( x) + L + c n f n ( x)
As funes f i(x) (i = 0, 1, ..., n) devem ser escolhidas de acordo com a natureza do fenmeno
que resultou na tabela de pontos. O problema, portanto, se resume em determinar os
coeficientes ci (i = 0, 1, ..., n). Entretanto, como (xi) = f(xi) = yi (pela definio de funo
interpoladora), os coeficientes ci podem ser determinados resolvendo-se o seguinte sistema
de equaes lineares:
c 0 f 0 ( x 0 ) + c1f1( x 0 ) + ... + c n f n ( x 0 ) = y 0
c 0 f 0 ( x1 ) + c1f1( x1 ) + ... + c n f n ( x1 ) = y1
...
c0 f 0 ( x n ) + c1f1( x n ) + ... + c n f n ( x n ) = y n
ou seja:
f 0 ( x 0 ) f1( x0 ) ... f n ( x 0 ) c0
y0
f 0 ( x1 ) f1( x1 ) ... f n ( x1 ) c1
y1
=
...
...
...
f 0 ( x n ) f 1( x n ) ... f n ( x n ) c n
yn
( x) = c0 f 0 ( x) + c1f1( x) = c 0 + c1x
ou seja, neste caso: f0 (x) = 1 e f1 (x) = x. Portanto, neste caso, pretende-se passar um
polinmio do 1 grau (segmento de reta) a cada par de pontos da tabela, conforme mostra a
figura a seguir.
y = f(x)
x
x0
x1
x2
x3
Clculo Numrico
4 Interpolao
i ( x) = c0 + c1x
passando pelos pontos xi e xi+1, como ilustra a figura a seguir:
yi
y = f(x)
yi+1
x
xi
xi+1
1 xi c0
yi
=
1 x i +1 c1
y i +1
ou seja:
x y xi y i + 1 y i + 1 yi
i ( x) = i + 1 i
+x
x
xi + 1 xi
i + 1 xi
14442444
3 14243
c0
c1
Para a tabela toda { (xi, y i), i = 0, 1, ..., n }, a funo interpoladora (x) ser dada por:
( x ) = 0 ( x) + 1 ( x ) + L + n ( x)
onde i ( x ) = 0 se x [xi, xi+1].
Evidentemente, outros polinmios (de graus 2, 3, ...) poderiam ser considerados.
Exemplo. Dada a tabela abaixo, onde yi = f(xi) (i = 0, 1, 2, 3), determinar f(2.8) usando
interpolao linear:
xi
yi
1
6
2
5
3
2
4
-9
Neste caso, considerando o intervalo [2, 3], o polinmio de interpolao dado por:
3 5 2 2 2 5
( x) =
+
x = 11 3x
3 2 3 2
14
4244
3 123
c0
c1
87
Clculo Numrico
4 Interpolao
(notar que, por construo, a funo (x) uma funo interpoladora no intervalo [2, 3], ou
seja: ( x1 ) = (2) = 5 = y1 e ( x 2 ) = (3) = 2 = y 2).
Assim: f(2.8) (2.8) = 11 - 3(2.8) = 2.6
( x) = c 0 + c1x + c 2 x 2
e para determinar os coeficientes c 0 , c1 e c 2 devem ser considerados 3 pontos. Como o
ponto que se deseja interpolar 2.8, tem-se portanto duas escolhas: considerar os pontos do
intervalo [1, 3] ou do intervalo [2, 4]. Seja, por exemplo, o intervalo [1, 3]. Tem-se ento:
(1) = 6
c0 + c1(1) + c2 (12 ) = 6
( 2 ) = 5
c 0 + c1 (2) + c2 ( 22 ) = 5
( 3) = 2
c 0 + c1( 3) + c2 ( 32 ) = 2
ou seja:
1 1 1
c0
1 2 4
1 3 9
c1 = 5
c2
2
( x) = 5 + 2 x x
1 2
c0
1 3 9 c1 = 2
1 4 16 c 2
9
e portanto, a funo interpoladora ser: ( x) = 13 + 17x 4x2 . Neste caso: f(2.8) (2.8) =
Clculo Numrico
4 Interpolao
f ( n +1) ( )
G( x*)
( n + 1)!
onde G( x) = ( x x 0 )( x x1 ) L( x x n ) .
Portanto, por este teorema, quanto maior o grau do polinmio interpolador, menor ser o erro
de truncamento. O fator G( x*) = ( x * x 0 )( x * x1 ) L( x * x n ) ser tanto menor (em valor
absoluto) quanto mais prximo o ponto x* estiver de um dos xi (i = 0, 1, ..., n). Alm disso, o
valor de | G(x) | atinge valores mximos nos extremos do intervalo [ x 0 , x n ] .
Para ilustrar que quando se considera o intervalo x 0, x n , a funo G(x) atinge valores
mximos (em valor absoluto) nos intervalos x 0 , x1 e x n 1, x n , considere os exemplos a
seguir.
] [
a) G(x) = (x-1)(x-2)(x-3)(x-4)(x-5)
3
2
1
2
-1
-2
-3
b) G(x) = (x-1)(x-2)(x-3)(x-4)(x-5)(x-6)
5
-5
-10
-15
89
Clculo Numrico
4 Interpolao
c) G(x) = (x-0.1)(x-0.2)(x-0.3)(x-0.4)(x-0.5)(x-0.6)(x-0.7)
0.00001
-6
5. 10
Portanto, para minimizar o valor do erro, deve-se escolher um intervalo x 0, x n de tal forma
que o ponto x* para o qual deseja-se calcular o valor interpolado seja o mais central possvel
Observao .
Se x* estiver fora do intervalo [a, b] (extrapolao), a expresso para o erro de truncamento
ainda vlida mas, neste caso, o fator G( x*) = ( x * x 0 )( x * x1 ) L( x * x n ) ser muito
grande (em valor absoluto).
Assim, no caso acima, 2.8 mais central ao intervalo [2, 4] do que ao intervalo [1, 3]. Portanto,
a melhor escolha seria f(2.8) = 3.24.
Para uma tabela de pontos { (xi, yi), i = 0, 1, ..., n }, fazendo fi(x) = xi, tem-se o polinmio
interpolador dado por:
( x ) = c0 f 0 ( x ) + c1f1 ( x) + L + c n f n ( x) = c 0 + c1x + c 2 x 2 + L + cn x n
cujos coeficientes so determinados pelo sistema:
x0
x 20
1 x1
...
x12
... x n0
... x1n
x 2n
... x nn
xn
c0
y0
c1
y1
=
...
...
cn
yn
(x i x j )
i> j
Clculo Numrico
4 Interpolao
Assim, dada uma tabela { (xi, yi), i = 0, 1, ..., n }, com fazendo yi = xi, se x j x k , j k ,
ento ir existir um nico polinmio interpolador de grau n.
Exemplo. Determinar o polinmio interpolador de maior grau para a seguinte tabela de pontos:
xi
yi
1
6
2
5
3
2
4
-9
Neste caso, como n = 3 (notar que os ndices i comeam em 0), o polinmio interpolador de
maior grau ter grau 3, ou seja:
( x ) = c0 + c1x + c 2 x 2 + c3 x 3
Portanto, tem-se o seguinte sistema de equaes lineares:
1
1
1
1
1 1 1
2 4 8
3 9 27
4 16 64
c0
6
c1
5
=
c2
2
9
c3
c0
11
c1
9
=
c2
5
c3
1
ou seja:
( x ) = 11 9x + 5x 2 x 3
Notar que, por construo, o polinmio (x) "passa" pelos pontos tabelados. Por exemplo:
( 2) = 11 9 2 + 5 2 2 23 = 5
4.4 Polinmios de Lagrange
Como viu-se na seo anterior, a determinao de um polinmio interpolador para uma tabela
de pontos requer a resoluo de um sistema de equaes lineares. Isto porque, para
determinar o valor de (x) para um ponto x = x*, preciso, primeiro, determinar qual o
polinmio (x). Com os polinmios de Lagrange evita-se ter de resolver tal sistema.
Os polinmios de Lagrange de grau n so dados por:
x xi
i =0 x k x i
n
Lk ( x) =
ki
91
k = 0, 1, ..., n
Clculo Numrico
4 Interpolao
L0 ( x) =
( x x1 )( x x 2 )( x x 3 )
( x0 x1 )( x0 x 2 )( x0 x 3 )
L1( x) =
( x x0 )( x x 2 )( x x 3 )
( x1 x0 )( x1 x 2 )( x1 x3 )
L2 ( x) =
( x x0 )( x x1 )( x x3 )
( x 2 x0 )( x2 x1 )( x 2 x 3 )
L3 ( x) =
( x x 0 )( x x1 )( x x 2 )
( x3 x0 )( x3 x1 )( x 3 x 2 )
1
Li ( x j ) = i, j =
0
se i = j
se i j
(delta de Kronecker )
Portanto, o polinmio:
( x ) = y0 L 0 ( x ) + y1L1 ( x) + L + y n L n ( x)
construdo a partir dos polinmios de Lagrange Lk(x) (k = 0, 1, ..., n) para uma tabela de
pontos { (xi, y i), i = 0, 1, ..., n } tal que:
( x i ) = y0 L 0 ( x i ) + y1L1 ( x i ) + L + yi L i ( x i ) + L + y n L n ( x)
ou seja:
( x i ) = y0 0 + y1 0 + L + yi 1 + L + y n 0 = yi
Logo, o polinmio (x) "passa" pelos pontos tabelados sendo, portanto, um polinmio
interpolador.
1
6
2
5
3
2
4
-9
( x 2 )( x 3)( x 4)
( x 1)( x 3)( x 4 )
( x 1)( x 2 )( x 4)
( x 1)( x 2)( x 3)
+ 5.
+ 2.
+ ( 9).
(1 2)(1 3)( 1 4 )
(2 1)( 2 3)( 2 4)
( 3 1)( 3 2)( 3 4 )
( 4 1)( 4 2)( 4 3)
ou seja:
( x ) = 6.
( x 3 9 x 2 + 26 x 24)
( x 3 8x 2 + 19 x 12 )
( x 3 7 x 2 + 14 x 8 )
( x 3 6 x 2 + 11x 6 )
+ 5.
+ 2.
+ (9 ).
6
2
2
6
92
Clculo Numrico
4 Interpolao
Logo:
( x ) = 11 9x + 5x 2 x 3
Notar que, como o polinmio interpolador de grau 3 para esta tabela de pontos unico, o
polinmio interpolador de Lagrange idntico ao polinmio interpolador obtido anteriormente.
Neste caso, entretanto, no foi necessrio resolver um sistema de equaes lineares.
Evidentemente, para calcular um valor interpolado no necessrio ter-se o polinmio de
Lagrange escrito na forma padro. Por exemplo:
f(2.5) (2.5) = -(2.5) 3 + 5.(2.5)2 - 9.(2.5) + 11 = 4.125
pode ser calculado, diretamente, como:
(2.5) = 6.
(25
. 2)(2.5 3)(2.5 4)
(2.5 1)(2.5 3)(2.5 4)
(2.5 1)( 25
. 2)(2.5 4)
(2.5 1)(2.5 2)( 25
. 3)
+ 5.
+ 2.
+ (9).
=
(1 2)(1 3)(1 4)
(2 1)(2 3)(2 4)
(3 1)(3 2)(3 4)
(4 1)(4 2)( 4 3)
= 4125
.
Observao. Notar que este algoritmo ordem n 2 , enquanto colocar o polinmio interpolador
na forma padro e, em seguida, calcular o valor interpolado ordem n 3 .
i = 0, 1, ..., n
k 1f [ x i+ 1 ,..., x i + k ] k 1f [ xi ,..., x i + k 1 ] k 1y i +1 k 1y i
=
x i+ k x i
xi + k x i
Clculo Numrico
4 Interpolao
xi
yi
0
1
2
3
4
0.2
0.4
0.6
0.8
1.0
1.22
1.49
1.82
2.23
2.72
xi
yi
1 yi
2 yi
3 yi
4 yi
0
1
2
3
4
0.2
0.4
0.6
0.8
1.0
1.22
1.49
1.82
2.23
2.72
1.35
1.65
2.05
2.45
-
0.75
1.00
1.00
-
0.42
0.00
-
-0.52
-
Notar que:
0 y1 0 y0 149
. 1.22 0.27
y0 =
=
=
= 135
.
x1 x 0
0.4 0.2
0.2
1
0 y 2 0 y1 182
. 1.49 0.33
=
=
= 165
.
x 2 x1
0.6 0.4
0.2
1y1 =
...
2 y0 =
1y1 1y 0 165
. 135
.
0.30
=
=
= 0.75
x2 x 0
0.6 0.2
0.4
...
4 y0 =
Para determinar um polinmio interpolador (x) para uma tabela de pontos { (xi, yi), i = 0, 1, ...,
n }, onde yi = (xi), tem-se, pela definio de diferenas divididas:
1[ x, x 0 ] =
0 [ x 0 ] 0 [ x ] 0 [ x ] 0 [ x 0 ] y( x) y( x 0 ) ( x) ( x 0 )
=
=
=
x0 x
x x0
x x0
x x0
ou seja: ( x) = ( x 0 ) + ( x x 0 )1[ x, x 0 ] .
Por outro lado,
1[ x 0 , x1 ] 1[ x, x 0 ] 1[ x, x 0 ] 1[ x 0 , x1 ]
[ x, x 0 , x1 ] =
=
x1 x
x x1
2
94
Clculo Numrico
4 Interpolao
ou seja:
1[ x, x 0 ] = 1[ x0 , x1 ] + ( x x1 ) 2[ x, x 0 , x1 ]
Mas, pela equao acima,
1[ x, x 0 ] =
( x ) ( x 0 )
x x0
e portanto:
( x ) = ( x 0 ) + ( x x 0 ) 1[ x 0 , x1 ] + ( x x 0 )( x x1 ) 2[ x, x 0 , x1 ]
Continuando este processo, pode-se escrever:
( x ) = ( x 0 ) + ( x x 0 ) 1[ x 0 , x1 ] + ( x x 0 )( x x1 ) 2 [ x 0 , x1 , x 2 ] + L
+ ( x x 0 )( x x1 ) L ( x x n 1 ) n [ x 0 , x1 ,L, x n ] +
+ ( x x 0 )( x x1 ) L ( x x n ) n +1[ x, x 0 , x1 ,L , x n ]
facil ver que n +1[ x, x 0 , x1 ,L, x n ] = 0, uma vez que com n+1 pontos tem-se diferenas
divididas de at ordem n, sendo as diferenas de ordens mais altas todas nulas. Logo:
( x ) = ( x 0 ) + ( x x 0 ) 1[ x 0 , x1 ] + ( x x 0 )( x x1 ) 2 [ x 0 , x1 , x 2 ] + L
+ ( x x 0 )( x x1 ) L ( x x n 1 ) n [ x 0 , x1 ,L, x n ]
Mas:
( x 0 ) = y0
1[ x 0 , x1 ] = 1 y0
2 [ x 0 , x1 , x 2 ] = 2 y 0
...
n [ x 0 , x1 ,L , x n ] = n y0
Logo, o polinmio de Newton dado por:
( x ) = y0 + ( x x 0 ) 1 y 0 + ( x x 0 )( x x1 ) 2 y0 + L + ( x x 0 )( x x1 ) L( x x n 1 ) n y 0
Observe que (x) um polinmio interpolador, pois:
( x 0 ) = y0 + ( x 0 x 0 ) 1y 0 + ( x 0 x 0 )( x 0 x1 ) 2 y 0 + L + ( x 0 x 0 )( x 0 x1 ) L ( x0 x n 1 ) n y0
= y0
( x1 ) = y0 + ( x1 x 0 )1y 0 = y0 +
0 y1 0 y 0
( x1 x 0 ) = y0 + y1 y 0 = y1
(x 1 x 0 )
95
Clculo Numrico
4 Interpolao
( x 2 ) = y 0 + ( x 2 x 0 ) 1 y0 + (x 2 x 0 )(x 2 x1 )2 y 0 =
= y0 + (x2 x0 )
0 y1 0 y 0
1y1 1y 0
+ (x 2 x 0 )(x 2 x1 )
=
(x 1 x 0 )
(x2 x0 )
= y0 + (x2 x0 )
y y1
y1 y 0
y y0
+ ( x 2 x1 ) 2
1
=
( x1 x 0 )
(x 2 x 1 ) ( x 1 x 0 )
= y 0 + ( y1 y0 )
(x 2 x 0 )
(x x 1 )
+ y 2 y1 ( y1 y 0 ) 2
=
(x 1 x 0 )
( x1 x 0 )
( x x 0 ) ( x 2 x1 )
= ( y0 y1 ) + ( y1 y0 ) 2
+ y2 =
( x 1 x 0 ) (x 1 x 0 )
= ( y0 y1 ) + ( y1 y0 ) + y 2 = y 2
e assim sucessivamente.
xi
yi
1 yi
2 yi
3 yi
4 yi
0
1
2
3
4
0.1
0.2
0.3
0.5
0.6
1.115
1.261
1.439
1.899
2.182
1.46
1.78
2.30
2.83
-
1.60
1.73
1.77
-
0.33
0.08
-
-0.50
-
0 yi = yi
n yi = n 1y i +1 n 1y i
y
y i 1 yi
1y i = i +1
=
x i +1 x i
h
1y i +1 1y i
y i+ 1 y i
1y i +1 1y i 2 y i
h
h
2
yi =
=
=
=
xi + 2 x i
2h
2h 2
2h 2
1
96
Clculo Numrico
3 yi =
4 Interpolao
2 y i +1 2 y i
=
xi + 3 x i
2 y i+ 1
2 y i
2 y i +1 2 y i 3 y i
2h 2
2h 2
=
=
3h
6h 3
6h 3
n y i =
n y i
n! h n
Portanto, por este teorema, pode-se escrever o polinmio interpolador (conhecido como
polinmio de interpolao de Gregory-Newton ) como:
( x) = y0 + ( x x0 )
y 0
2y 0
n y 0
...
(
x
x
)(
x
x
)...(
x
x
)
+ ( x x 0 )( x x1 )
+
+
0
1
n 1
h
2 h2
n! h n
xi
yi
1 yi
2 yi
3 yi
4 yi
0
1
2
3
4
0.2
0.4
0.6
0.8
1.0
0.40
0.79
1.16
1.52
1.84
0.39
0.37
0.36
0.32
-
-0.02
-0.01
-0.04
-
0.01
-0.03
-
-0.04
-
0.39
(0.02)
+ ( 0.5 0.2)( 0.5 0.4)
+
0.2
2(0.2) 2
0.01
3!( 0.2) 3
(0.04)
4!( 0.2) 4
= 0.97
A tabela de diferenas pode ajudar a responder seguinte questo: "Dada uma tabela de
pontos { (xi, y i ), i = 0, 1, ..., n }, qual deve ser o grau ( n) do polinmio interpolador? ".
Para responder a esta questo, deve-se examinar os valores das diferenas nas vizinhanas
do ponto de interesse. Se nesta vizinhana as diferenas de ordem n so praticamente
constantes (ou, equivalentemente, as diferenas de ordem n+1 so prximas de zero), podese concluir que um polinmio interpolador de grau n uma boa aproximao da funo na
regio considerada.
97
Clculo Numrico
4 Interpolao
xi
1.00
1.01
1.02
1.03
1.04
1.05
yi
1.0000
1.0050
1.0100
1.0149
1.0198
1.0247
xi
yi
1 yi
2 yi
0
1
2
3
4
5
1.00
1.01
1.02
1.03
1.04
1.05
1.0000
1.0050
1.0100
1.0149
1.0198
1.0247
0.50
0.50
0.49
0.49
0.49
-
0.0
-0.01
0.0
0.0
-
Assim, no intervalo [1.00, 1.05] pode-se dizer que um polinmio do grau 1 uma boa
aproximao de f(x). Portanto:
f(1025
. ) 1(1025
. )=
(1.03)(10100
.
) (1.02)(10149
.
) 10149
.
10100
.
+
1025
.
= 10124
.
103
. 102
.
1.03 102
.
i =0
i =0
Ph ( x) = i ( x) f ( xi ) + i ( x) f '( x i )
com:
i ( x) = 1 2( x x i ) 'i ( xi ) i2 ( x)
i ( x) = ( x xi ) i2 ( x)
i = 0, 1, ..., n
onde:
x xk
k = 0 xi x k
n
i ( x) =
(polinmio de Lagrange)
ki
Clculo Numrico
4 Interpolao
Ph ( x j ) = i ( x j )f ( xi ) + i ( x j ) f '( xi ) = ijf ( xi )
i= 0
i1
= 044
42444
3 i= 0
0
i =0
i =0
i = 0, 1, ..., n
ou seja:
[
]
= [1 2( x j xi ) i' ( x i )] 2 ij 'i ( x j ) 2 'i ( xi ) 2ij = 0
fi
f i'
0.0
5.0
-7.0
1.0
3.0
8.0
99
2.0
27.0
41.0
Clculo Numrico
4 Interpolao
0 ( x) =
( x 1)( x 2) 1 2
= ( x 3x + 2)
( 0 1)( 0 2) 2
1( x ) =
( x 0)( x 2)
= x 2 + 2 x
(1 0)(1 2 )
2 ( x) =
( x 0)( x 1) 1 2
= ( x x)
( 2 0)( 2 1) 2
1
'0 ( x) = ( 2x 3)
2
'0 ( x0 ) = '0 ( 0) =
1' ( x) = 2x + 2
'2 ( x 2 ) = '2 ( 2) =
'2 ( x) =
1
( 2x 1)
2
3
2
3
2
Ento:
3 1
Ph ( x) = [1 2( x 0)( )] ( x 2 3x + 2) 2 5 + [1 2( x 1) 0]( x 2 + 2 x) 2 3 +
2 4
3 1
+ [1 2( x 2) ] ( x 2 x) 2 27 +
2 4
1
1
+ ( x 0) ( x2 3x + 2) 2 ( 7) + ( x 1)( x 2 + 2x) 2 8 + ( x 2) ( x 2 x) 2 41
4
4
Efetuando os clculos tem-se:
Ph ( x) = x 4 + 7x 3 x2 7 x + 5
(notar que o polinmio de interpolao de Hermite de grau 2n, para uma tabela com n
pontos). Para verificar que o polinmio e sua derivada passam pelos pontos tabelados, notar
que:
Ph ( x) = x4 + 7x 3 x 2 7 x + 5
Ph' ( x) = 4x 3 + 21x 2 2x 7
Ph ( 0) = ( 0) 4 + 7( 0) 3 ( 0) 2 7( 0) + 5 = 5
Ph ( 2) = ( 2) 4 + 7( 2) 3 ( 2) 2 7( 2) + 5 = 27
Pelo teorema de Weierstrass vimos que existe uma boa razo para usar polinmios como
funo interpoladora. Vimos tambm que, em princpio, quanto maior o grau do polinmio,
menor ser o erro de truncamento. O teorema de Weierstrass, no entanto, no diz como o
polinmio deve ser construdo.
100
Clculo Numrico
4 Interpolao
Vamos considerar a seguinte forma de obter o polinmio de interpolao para uma funo f(x)
contnua em um intervalo [a,b]. Seja uma discretizao de f(x) para os pontos a = x0 < x1 < ... <
xn = b. Sabe-se que, para esta discretizao, existe apenas um polinmio de interpolao
p n(x). A questo a seguinte: p n(x) converge para f(x) em [x 0 , x n] quando n ?. A resposta
: nem sempre. Para ilustrar considere o caso a seguir.
1
1 + 25 x 2
-1
-0.5
0.5
0.8
1.5
0.6
1
0.4
0.5
0.2
-1
-0.5
0.5
-1
-0.5
0.5
Note, pela figura a seguir, que considerando o polinmio p20 (x), a aproximao no intervalo [0.5, 0.5] melhora ainda mais. Mas nos extremos do intervalo [-1, 1] ocorrem problemas de
divergncia.
4
3
2
1
-1
-0.5
0.5
-1
-2
101
Clculo Numrico
4 Interpolao
Portanto, embora o teorema de Weierstrass garanta que existe um polinmio pn(x), para algum
n, que aproxima a funo de Runge, a forma de obter esse polinmio no como a mostrada
acima (interpolao considerando n+1 pontos igualmente espaados).
A seo a seguir apresenta uma outra abordagem para a interpolao por polinmios, visando
evitar problemas de aproxi mao (como o que ocorre com o polinmio p20(x) considerado
acima): em vez de considerar um nico polinmio de aproximao de grau alto, considerar
vrios polinmios de baixo grau.
P2(x)
P1(x)
x
x0
x1
x2
x3
Definio. Seja uma funo f(x) tabelada nos pontos x0 < x1 < ... < xn. Uma funo Sp (x)
denominada spline de grau p para os pontos xi (i = 0, 1, ..., n) se satisfaz as seguintes
condies:
em cada subintervalo [xi , xi+1 ], (i = 0, 1, ..., n), Sp(x) um polinmio de grau p: p i (x);
Sp (x) contnua e tem derivada contnua at ordem (p - 1) em [x0 , xn].
Se, alm disso, Sp (x) tambm satisfaz a condio:
O objetivo da interpolao por spline obter uma aproximao to suave quanto possvel para
os pontos conhecidos. A interpolao por spline mais comum a que utiliza funes splines
cbicas interpolantes.
Para i sto, devemos considerar para cada intervalo [xi, xi+1], um polinmio de grau 3, pi(x).
Como pi(x) um polinmio cbico, p"i ( x) uma reta. Vamos considerar a reta que passa pelos
pontos (xi, i) e (xi+1, i+1), onde i e i+1 so desconhecidos, como ilustra a figura a seguir:
102
Clculo Numrico
4 Interpolao
y
p"(x)
i
i+1
= p"(x )
i
i i
i
x
x
x
h
i+1
Ento:
p "i ( x ) = i +
( i + 1 i )( x x i )
x i +1 x i
ou seja:
p"i ( x) =
i ( x i+ 1 xi ) + i+ 1 ( x xi ) i ( x xi )
=
x i +1 x i
i x i +1 i xi + i+ 1x i+ 1x i i x + i x i i ( xi +1 x) i +1 ( x x i )
=
+
x i +1 x i
hi
hi
pi' ( x) =
i ( x i+ 1 x) 2
i +1 ( x x i ) 2
+ ci +
+ di
2h i
2h i
pi ( x) =
i ( xi + 1 x) 3 i +1 ( x x i ) 3
+
c i ( x i +1 x ) + d i ( x x i )
6h i
6hi
pi ( x i ) = yi
p i ( x i +1 ) = y i + 1
Logo:
i ( x i+ 1 xi ) 3
pi ( x i ) =
c i ( x i +1 x i ) = y i
6h i
(x
xi ) 3
pi ( x i+1 ) = i +1 i +1
+ d i ( xi +1 x i ) = yi +1
6h i
ou seja:
103
Clculo Numrico
4 Interpolao
i h i3
ci h i = yi
6h i
i +1h 3i
+ d i h i = y i +1
6hi
ci =
yi i h i
+
6
hi
h
y
d i = i +1 i + 1 i
6
hi
p'i ( x) =
i
i +1
y i i h i y i + 1 i + 1h i
( x i +1 x ) 2 +
( x xi ) 2 +
+
+
2h i
2 hi
6
6
hi
hi
Consequentemente:
p'i 1 ( x) =
i 1
i
yi 1 i 1h i 1
yi
i h i 1
( x i x) 2 +
( x x i 1 ) 2 +
+
+
2 h i 1
2 h i 1
6
6
h i 1
h i 1
p'i ( x i ) =
i hi yi i h i y i +1 i +1 hi
+
+
=
2
hi
6
hi
6
= p i' 1 ( x i ) =
i hi 1 yi 1 i 1h i 1
i h i 1
yi
+
+
2
h i 1
6
h i 1
6
ou seja:
y
y
y
y
3 i h i + i h i i +1h i 3 i h i 1 i 1h i 1 + i h i 1 = 6 i i +1 i 1 + i
hi
h i 1 h i 1
hi
Multiplicando por -1 e rescrevendo, tem-se:
y i +1 y i y i y i 1
hi 1 i 1 + 2 ( hi + h i 1 ) i + h i i +1 = 6
( i = 2, 3, K n 1)
hi
h i 1
i=2
i=3
M
i = n 1
y y2 y 2 y1
0 + 2( h2 + h1 ) 2 + h 2 3 = 6 3
h1
h2
y y3 y 3 y 2
h2 2 + 2( h 3 + h2 ) 3 + h 3 4 = 6 4
h2
h3
M
y y n 1 y n 1 y n 2
h n 2 n 2 + 2( h n 1 + h n 2 ) n 1 + 0 = 6 n
h n2
h n 1
104
Clculo Numrico
4 Interpolao
y i +1 y i
, tem-se:
hi
Fazendo bi = 6
2 (h 1 + h 2 ) h 2
h2
2 (h 2 + h 3 ) h 3
h3
2( h3 + h4 ) h 4
h4
M
h n 2
2
b2 b1
3
b3 b2
b4 b 3
4 =
M
M
2( h n 2 + hn 1 )
n 1
b n 1 b n 2
c 2 = 2( h1 + h2 )
h 2i 1
c i = 2 ( h i 1 + h i )
c i 1
( i = 3, 4, L , n 1)
Passo 2:
d 2 = b 2 b1
h d i 1
d i = ( b i b i 1 ) i 1
c i 1
( i = 3, 4, L , n 1)
Passo 3:
d n 1
c n 1
d i h i i +1
i =
ci
n1 =
( i = n 2, n 3, L , 2)
pi ( x) = yi + i ( x x i ) + i ( x xi ) 2 + i ( x x i ) 3
onde:
i =
y i +1 y i i +1
hi i hi
hi
6
3
i = i
2
i =
i +1 i
6h i
( i = 1, 2, L , n 1)
Exemplo: Aproximar a funo y = f(x), definida pela tabela a seguir, por uma curva spline.
105
Clculo Numrico
4 Interpolao
xi
yi
-2
-1
0
1
2
2
1
0
1
2
2
b 2 b1
h2
2( h1 + h 2 )
0
3 = b3 b2
h2
h3
2( h 2 + h 3 )
4
b4 b3
h3
0
2( h 3 + h 4 )
Substituindo os valores, tem-se:
4 1 0
1 4 1 3 = 12
0 1 4
0
4
ou seja:
6 / 7
3 = 24 / 7
4
6 / 7
Com os valores de i ( i = 1, 2 , L , 5) pode-se determinar os n-1 polinmios spline
pi ( x) ( i = 1, 2, 3, 4) . Por exemplo:
p4 ( x) = y 4 + 4 ( x x 4 ) + 4 ( x x 4 ) 2 + 4 ( x x 4 ) 3
com:
y y4 5
9
4 = 5
h4 4 h4 =
h4
6
3
7
3
4 = 4 =
2
7
4 =
5 4 1
=
6h 4
7
e portanto:
9
3
1
p 4 ( x ) = 1 + ( x 1) ( x 1) 2 + ( x 1) 3
7
7
7
Os outros trs polinmios spline para este caso so mostrados a seguir. As figuras a seguir
ilustram as aproximaes para a funo f(x) = | x | no intervalo [-2, 2] obtidas pelo polinmios
106
Clculo Numrico
4 Interpolao
Funo Original
2
1.5
1
0.5
-2
-1
1.5
1.5
0.5
0.5
-2
-1
-2
-1
EXERCCIOS RESOLVIDOS
1. Dada a tabela:
x
y
0
-1
1
0
2
3
3
14
Clculo Numrico
4 Interpolao
1 x0
1 x1
y0
c0
x20
2
x1 c1 = y1
1 x2
x22
c2
y2
0
-1
1
0
2
3
1 0 0
c0
1
1 1 1 c1 = 0
1 2 4
c2
3
Resolvendo este sistema, tem-se: c0 = -1, c1 = 0, c2 = 1. Portanto, para este caso, o
polinmio de interpolao dado por: ( x) = 1 + x 2 . Logo:
f(1.2) (1.2) = -1 + (1.2) 2 = 0.44
1
0
2
3
3
14
1 1 1
c0
0
1 2 4 c1 = 3
1 3 9
c2
14
Resolvendo este sistema, tem-se: c 0 = 5 , c1 = 9 , c 2 = 4 . Portanto, para este caso, o
polinmio de interpolao dado por: ( x) = 5 9x + 4 x2 . Logo:
f(1.6) (1.6) = 5-9(1.6) + 4(1.6)2 = 0.84
2. Dada a tabela:
108
Clculo Numrico
4 Interpolao
1.2
0.19
xi
yi
1.4
0.15
1.6
0.11
representando uma funo y = f(x), deseja-se determinar f(1.5) atravs de uma funo de
interpolao da forma: p( x) = ax 2 + be x + c ln(x) .
a) Montar um sistema de equaes lineares para o problema;
b) Resolver o sistema obtido pelo mtodo da eliminao de Gauss para determinar os
coeficientes a, b, c da funo de interpolao p(x);
c) Determinar f(1.5) p(1.5)
Soluo:
Neste caso, embora a funo de interpolao no seja um polinmio, o problema pode ser
facilmente resolvido, uma vez que existem 3 incgnitas (a, b e c) e 3 pontos tabelados.
Portanto, como toda funo de interpolao deve passar pelos pontos tabelados, tem-se:
.
p(12
. ) = 019
.
a(12
. ) 2 + be12
+ c ln(12
. ) = 019
.
144
. a + 3.32b + 0.18c = 019
.
p(14
. ) = 0.15 a(14
. ) 2 + be1.4 + c ln(14
. ) = 015
.
196
. a + 4.06b + 0.34c = 015
.
p(16
. ) = 011
.
. ) = 011
.
.
a(1.6) 2 + be1.6 + c ln(16
2.56a + 4.95b + 0.47c = 011
Logo, tem-se o seguinte sistema de equaes lineares:
144
.
3.32 018
.
a
0.19
196
.
4.06 0.34 b = 015
.
2.56 4.95 0.47
c
0.11
Resolvendo o sistema pelo mtodo de Gauss, tem-se: a = -0.44, b = 0.25, c = 0.05
Logo, a funo de interpolao dada por: p( x) = 0.44 x2 + 0.25e x + 0.05ln(x) . Portanto:
f(1.5) p(1.5) = 0.44(15
. ) 2 + 0.25e1.5 + 0.05 ln(15
. ) = 015
.
EXERCCIOS PROPOSTOS
1. Dada a tabela:
xi
yi
0
-2
2
1
3
4
5
-1
Clculo Numrico
4 Interpolao
1.00
0.2420
1.20
0.1942
1.40
0.1497
1.60
0.1109
1.80
0.0790
sen(x)
0.9999885
0.9999928
0.9999961
0.9999984
0.9999997
cos(x)
0.0047963
0.0037963
0.0027963
0.0017963
0.0007963
tan(x)
208.49129
263.41125
357.61106
556.69098
1255.76559
EXERCCIOS DE PROGRAMAO
1. Dada uma tabela de pontos { (xi, yi), i = 1, 2, ..., n }, determinar o polinmio interpolador
( x ) = c1 + c 2 x + L + c n x n 1 . Para determinar os coeficientes do polinmio, montar o
seguinte sistema de equaes lineares:
1 x1
1 x2
M
1 xn
x 22 L x nn 1
x 22 L x n2 1
x 2n
L x nn 1
c1
y1
c2
y2
=
M
M
cn
yn
110
Clculo Numrico
4 Interpolao
2. Dada uma tabela de pontos { (xi, yi), i = 1, 2, ..., n }, que representa uma funo
y i = f ( x i ) , deseja-se determinar o valor de y* para um novo ponto x* tal que
111
Clculo Numrico
5. APROXIMAO DE FUNES
5.1 - Introduo
No captulo anterior viu-se que uma funo y = f(x) conhecida apenas em alguns pontos
{ ( x i , y i ), i = 0,1, L , n } pode ser aproximada a um polinmio interpolador. Esta nem
sempre a melhor maneira de aproximar uma funo e algumas razes para isto so:
erros experimentais nos dados sero incorporados ao polinmio interpolador (que, por
construo, deve passar pelos pontos originais);
em certos casos, embora sem conhecer a funo que originou os dados, pela natureza
do problema, possvel saber o tipo de funo que estabelece a relao entre x e y.
Por exemplo: sabe-se que os pontos da figura abaixo so oriundos de uma curva
exponencial.
y
Clculo Numrico
5 Aproximao de Funes
Para responder a esta questo preciso estabelecer um critrio. Para isto, seja p(x) uma
funo de aproximao para f(x) e vamos definir os resduos como: ri = p(xi) - f(xi) = p(xi) yi (i = 0,1, ..., n). Muitos critrios podem ser usados para comparar aproximaes. Por
exemplo:
n
Min ri , ou seja: minimizao da soma dos resduos. Este no um bom critrio
i=0
porque resduos positivos podem compensar resduos negativos e ainda assim a
aproximao ser ruim.
n
Min
| ri | , ou seja, minimizao da soma dos valores absolutos dos resduos. Neste
i=0
caso, embora no exista a compensao de resduos, a funo "mdulo" no sempre
diferencivel e leva a dificuldades em achar o mnimo.
n
2
Min ri , ou seja, minimizao da soma dos quadrados dos resduos. Neste caso,
i=0
no h o risco de resduos se anularem reciprocamente e a funo "quadrado"
facilmente diferencivel.
O mtodo dos quadrados mnimos adota este ltimo critrio para determinar a melhor
aproximao. A tcnica de aproximao de funes pelo mtodos dos quadrados mnimos
tambm conhecida como regresso ou suavizao de dados.
Portanto, no mtodo dos quadrados mnimos, dado um conjunto de pontos { (xi, yi), i = 0,1,
..., n }, deseja-se determinar uma funo de aproximao:
p( x) = c 0 0 ( x) + c11( x)+...+ c m m ( x)
onde: 0 ( x), 1( x),..., m ( x) so funes escolhidas levando-se em conta a natureza dos
dados, e c 0 , c1 , L, c m so constantes a serem determinadas de modo a minimizar o valor
de R:
R=
i=0
i=0
i= 0
(j = 0,1, ..., m)
p( x i )
= j ( x i ) , podemos escrever:
c j
n
R
= 2 ( p( x i ) y i ) j ( x i ) = 0
c j
i=0
(j = 0,1, ..., m)
Clculo Numrico
5 Aproximao de Funes
2R
c j
n p( x )
i
= 2 [
c j
i =0
j (x i )
y i
j ( x i )]
c j
e como: y i = 0
c j
2R
c j 2
n p( x )
i
= 2[
i =0
c j
i=0
i =0
j ( x i )] = 2 [ j ( x i ) j ( x i )] = 2 [ j ( x i )] 2 > 0
2 (c 0 0 ( x i ) + c11 ( x i )+...+ c m m ( x i ) y i ) j ( x i ) = 0
(j = 0,1, ..., m)
i=0
ou seja:
n
i=0
i= 0
(c 0 0 ( x i ) + c11 ( x i )+...+c m m ( x i )) j ( x i ) = y i j ( x i )
(j = 0,1, ..., m)
Isto corresponde ao seguinte sistema de (m+1) equaes lineares (j = 0,1, ..., m) com
(m+1) incgnitas ( c 0 , c1 , L, c m ), denominado sistema normal:
0 ( x i ) 0 ( x i ) 0 (x i )1 ( x i )
1 (x i )0 (x i ) 1 ( x i )1 ( x i )
L
m ( x i ) 0 ( x i )
L
L
m ( x i )1 ( x i )
0 ( x i ) m ( x i )
1 ( x i ) m ( x i )
m ( x i ) m ( x i )
c0
c1
=
L
cm
yi 0 (x i )
y i 1 (x i )
L
yi m (x i )
(L) .
i=0
0.5
25
1.0
24
2.0
20
3.0
18
4.0
15
...
...
8.0
?
Seja a aproximao de y = f(x) por uma reta p(x) = c0 + c1x (ou seja, escolhendo-se as
funes base como: 0 (x) = 1 e 1(x) = x). Neste caso, o sistema normal ser:
4
i=0
i= 0
(c 0 + c1x i ) j ( x i ) = y i j ( x i )
ou seja,
109
(j = 0,1)
Clculo Numrico
5 Aproximao de Funes
para j = 0, como j ( x i ) = 1
para j = 1, como j ( x i ) = x i
i=0
4
i=0
4
(c 0 + c1x i ).1 = y i .1
(c 0 + c1x i ). x i = y i . x i
i=0
1 x i
x i x i2
i=0
c0
=
c1
yi
yi x i
c0
102.0
=
c1
190.5
5.00 10.50
10.50 30.25
i=0
i=0
(c 0 + c1x i + c 2 x 2i ) j ( x i ) = y i j ( x i )
(j = 0,1,2)
ou seja,
para j = 0, como j ( x i ) = 1
para j = 1, como j ( x i ) = x i
para j = 2, como j ( x i ) = x 2i
i=0
i=0
(c 0 + c1x i + c 2 x 2i ).1 = y i .1
i=0
i=0
i=0
i=0
(c 0 + c1x i + c 2 x 2i ). x i = y i . x i
(c 0 + c1x i + c 2 x 2i ). x 2i = y i . x 2i
110
Clculo Numrico
5 Aproximao de Funes
1 x i x i2
x i x i2 x 3i
x i2 x 3i x i4
c0
c1 =
c2
yi
yi x i
yi x i2
1
xi
...
x im
xi
x i2
x im +1
...
...
...
x im
x im +1
x i2m
c0
c1
=
...
cm
yi
yi x i
...
y i x im
Clculo Numrico
5 Aproximao de Funes
Nem sempre um polinmio a melhor funo de aproximao para uma dada tabela de
pontos. Seja por exemplo, a tabela a seguir:
xi
yi
1
10
2
5
4
2
6
1
4 13
57 c 0
18
13 57 289 c1 = 34
57 289 1569 c 2
98
cuja soluo leva a: p( x ) = 14.31 5.27 x + 0.51x 2 , com resduo total R = 1.22
Para o caso (b) tem-se o sistema normal:
c0
4.00 192
.
18.00
=
c1
192
.
134
.
1317
.
10.77
cuja soluo leva a: q( x ) = 0.66 +
, com resduo total R = 0.11
x
Ou seja, para a tabela acima, a aproximao dada por q(x) melhor que a aproximao
dada por p(x).
( x x 0 )2
( x x 0 ) n ( n)
( x x 0 ) n +1 ( n +1)
f "( x 0 )+...+
f (x0 ) +
f
()
2!
n!
( n + 1)!
p( x) = f ( x 0 ) + ( x x 0 )f '( x 0 ) +
( x x0 )2
( x x 0 ) n ( n)
f "( x 0 )+...+
f (x0 )
2!
n!
112
Clculo Numrico
5 Aproximao de Funes
pode ser usado como uma aproximao de f(x) nas vizinhanas do ponto x 0 .
Exemplo. Seja f(x) = ex e seja [0, 1] o intervalo de interesse. O polinmio de aproximao
de grau 3, para x 0 = 0, dado por:
( x 0) 2 0 ( x 0) 3 0
x2 x3
0
0
p 3 ( x) = e + ( x 0)e +
e +
e = 1+ x +
+
2
6
2
6
O polinmio de aproximao de grau 4, para x 0 = 0, ser:
p 4 ( x) = 1 + x +
x2 x 3 x4
+
+
2
6
24
A tabela a seguir ilustra estas aproximaes para alguns valores do intervalo [0, 1]:
x
ex
p3(x)
p4(x)
0.0
0.2
0.5
1.0
1.00000
1.22140
1.64872
2.71828
1.00000
1.22133
1.64583
2.66667
1.00000
1.22140
1.64843
2.70843
(observe que, como x 0 = 0, medida que x se afasta de x 0 o erro torna-se cada vez
maior).
Para verificar o quo boa a aproximao por srie de Taylor, pode-se utilizar a funo
erro En(x), que dada por:
( x x 0 ) n + 1 ( n +1)
E n ( x) = f ( x) p n ( x) =
f
()
( n + 1)!
O valor do erro no possvel calcular porque desconhecido, portanto, interessa saber
um limite superior para En(x). Em geral os limites superiores so pessimistas, garantindo
entretanto que o mtodo seja usado com algum grau de confiana. Seja Mn+1 um valor tal
que:
f ( n +1) ( x) < M n +1
Ento:
E n ( x) =
x [a, b]
( x a ) n +1 ( n +1)
( x a ) n +1
() <
f
M n +1
( n + 1)!
( n + 1)!
E n ( x) <
( b a ) n +1
M n +1
( n + 1)!
113
Clculo Numrico
5 Aproximao de Funes
Portanto:
1
E 3 ( x) < 2.71828 = 011326
.
24
1
2.71828 = 0.02265
E 4 ( x) <
120
Na verdade o erro bem menor do que estes valores (ver tabela anterior). Esta estimativa
de erro implica em utilizar mais termos da srie do que o necessrio para alcanar uma
certa preciso, ou seja, o esforo computacional maior, mas o resultado estar,
garantidamente, dentro da preciso.
Exemplo. Calcular pn(0.5) com 5 casas decimais corretas. Qual deve ser o valor de n?
1
E n ( x) <
2.71828 < 0.00001
( n + 1)!
x 2 x3
x8
Ento: p 8 ( x) = 1 + x +
+
+...+
2
3!
8!
n=8
p 8 (0.5) = 164872
.
(com 5 casas decimais).
O mtodo dos quadrados mnimos pode tambm ser usado para o caso de aproximao de
funes contnuas. Para isto, necessrio definir a funo residual:
r(x) = p(x) - f(x)
onde p(x) a funo de aproximao de f(x) no intervalo [a, b]. Agora, o critrio dos
quadrados mnimos ser:
b
b
2
Min ( r( x)) dx = Min ( p( x) f ( x)) 2 dx
a
a
Portanto, se:
p( x) = c 0 0 ( x) + c11( x)+...+ c m m ( x)
114
Clculo Numrico
5 Aproximao de Funes
p( x)
= j ( x) , e portanto o mnimo de R ser obtido quando os valores de
c j
(j = 0,1, ..., m)
a
ou seja:
b
(j = 0,1, ..., m)
o que corresponde ao sistema normal de (m+1) equaes lineares (j = 0,1, ..., m) com
(m+1) incgnitas ( c 0 , c1 , L, c m ). Novamente, a soluo deste sistema ir fornecer os
valores dos coeficientes c 0 , c1 , L, c m da melhor aproximao p(x) para a funo f(x),
segundo o critrio dos quadrados mnimos.
Exemplo. Aproximar a funo f(x) = ex no intervalo [0, 1] a um polinmio do 2 grau, pelo
mtodo dos quadrados mnimos.
Neste caso, p(x) = c0 + c1x + c2x2 e o sistema normal ser dado por:
1
1
2
(c 0 + c1x + c 2 x ) j ( x)dx = j ( x)e x dx
0
0
ou seja:
(j = 0 0(x) = 1)
(j = 1 1(x) = x)
(j = 2 2(x) = x2)
(c 0 + c1x + c 2 x 2 )dx = e x dx
(c 0 + c1x + c 2 x 2 )xdx = xe x dx
(c 0 + c1x + c 2 x 2 )x 2 dx = x 2 e x dx
Portanto:
115
(j = 0,1,2)
Clculo Numrico
5 Aproximao de Funes
1dx xdx x dx
2
3
xdx x dx x dx
2
3
4
x dx x dx x dx
2
c0
c1 =
c2
e dx
x
xe dx
2 x
x e dx
x
A i, j = x i + jdx
(i = 0, 1, ..., m; j = 0, 1, ..., m)
a
ou seja:
x i + j + 1 b b i + j+ 1 a i + j+ 1
=
A i, j =
i + j+1
i + j + 1
a
(i = 0, 1, ..., m; j = 0, 1, ..., m)
A i, j =
1i + j+ 1 0i + j+1
1
=
i + j+1
i + j+1
(i = 0, 1, 2; j = 0, 1, 2)
ou seja:
1 1/ 2 1/ 3
A = 1/ 2 1/ 3 1/ 4
1/ 3 1/ 4 1/ 5
O vetor dos termos independentes do sistema normal tal que:
1
b i = x i e x dx (i = 0, 1, 2)
0
e portanto:
1
[ ]
b 0 = e dx = e
x
0
1
= e1 e 0 = e 1
0
b1 = xe dx = e ( x 1)
x
0
1
= e1 (1 1) e 0 (0 1) = 1
0
b 2 = x e dx = e ( x 2 x + 2)
0
2 x
= e1 (12 2 1 + 2) e 0 (0 2 2 0 + 2) = e 2
0
116
Clculo Numrico
5 Aproximao de Funes
1 1 / 2 1 / 3 c0
e 1
1 / 2 1 / 3 1 / 4 c1 = 1
1 / 3 1 / 4 1 / 5 c2
e2
que resolvido resulta em:
p(x) = 1.013 + 0.851x + 0.839x2
ab P( x) Q( x) dx = 0
O uso de polinmios ortogonais para o ajuste de funes leva a um sistema de equaes
normais cuja matriz dos coeficientes diagonal, o que no apenas evita o malcondicionamento das matrizes de Hilbert, como facilita a soluo do sistema.
Os polinmios de Legendre podem ser escritos, recursivamente, como:
L0 (x) = 1
L1 (x ) = x
2n 1
n 1
L n (x) =
( x ) L n 1 (x )
L n 2 (x ),
n
n
n = 2,3,K
1 L n (x ) L m ( x ) dx = 0
nm
Alm disto,
1(L n ( x ))
1
dx =
2
2n + 1
n = 0,1,K
Exemplo:
L 0 (x) = 1
L1 ( x ) = x
L 2 (x ) =
2 2 1
2 1
3
1 1
( x )L1 (x )
L 0 ( x ) = x x = 3x 2 1
2
2
2
2 2
Verificando a ortogonalidade:
117
Clculo Numrico
5 Aproximao de Funes
1
x2
1 1
1
1
1 L 0 ( x)L1 (x )dx = 1 xdx = 2 = 2 2 = 0
1
1
1 1
1 3
1
1
2
1 L 0 ( x)L 2 ( x)dx = 2 1(3x 1)dx = 2 x x 1 = 2 (1 1) (1 + 1) = 0
1 1
1 3x
1
3
=
=
L
(
x
)
L
(
x
)
dx
(
3
x
x
)
dx
2
1 1
2 1
2 4
x2
=
1
1 1 1 1 1
= 0
2 4 2 4 2
p 2 ( x) = c 0 + c1x + c 2 x 2
de uma funo contnua f(x) definida no intervalo [-1, 1]. Do polinmio de Legendre de 2
grau tem-se:
L 2 (x ) =
1
3x 2 1
2
ou seja:
x2 =
1
(2L 2 ( x ) + 1) = 1 (2L 2 (x ) + L 0 ( x ) )
3
3
Substituindo em p 2 ( x) tem-se:
p 2 ( x ) = c 0 L 0 (x ) + c1L1 ( x ) + c 2
1
(2L 2 ( x ) + L 0 ( x ) ) = (c 0 + 1 c 2 )L 0 ( x ) + c{1 L1 ( x ) + 2 c 2 L 2 ( x )
3
3
{
142343
0
Assim, para determinar os coeficientes do polinmio de ajuste pelo critrio dos quadrados
mnimos, deve-se minimizar:
2
2
1
1 f ( x) i L i (x ) dx
i =0
A i, j = L i (x )L j (x ) dx
1
1
b i = f ( x )L i (x ) dx
i, j = 0,1,2
i = 0,1,2
118
Clculo Numrico
5 Aproximao de Funes
1
f (x )L i ( x)dx = 2 i + 1
= 1
2
2 i +1
1 f (x )L i ( x) dx
(i = 0,1,2)
c0
1
+ c2
3
= 0
= 1
2
c
3 2
= 2
c1
cuja soluo :
1
c0 = 0 2
2
c1 = 1
c2 =
2 2
0 =
1 1 x
1 1
1
e L 0 ( x )dx = e x dx = e e 1
2 1
2 1
2
1 =
3 1 x
3 1
e L1 ( x )dx = e x xdx =3e 1
2 1
2 1
2 =
5 1 x
5 1
1
5
e L 2 (x )dx = e x 3x 2 1 dx = e 7e 1
2 1
2 1 2
2
Portanto:
c0 =
1
15
1
e e 1
e 7 e 1 = 3 e + 33 e 1 = 0.996
2
22
4
c1 = 3 e 1 = 1104
.
c2 =
35
15
e 7 e 1 =
e 7 e 1 = 0.537
22
4
p 2 ( x) = 0.996 + 1104
. x + 0.537 x 2
A tabela abaixo ilustra a aproximao obtida:
119
Clculo Numrico
5 Aproximao de Funes
p 2 ( x)
ex
-1.0
0.0
0.5
1.0
0.429
0.996
1.682
2.637
0.368
1.000
1.649
2.718
x [ a , b]
z=
2x a b
[1, 1]
ba
Q 0 (x ) = c 00
Q1 ( x ) = c10 + c11x
Q 2 ( x ) = c 20 + c 21x + c 22 x 2
A ortogonalidade destes polinmios implica em:
ab Q 0 ( x) Q1 ( x) dx = 0
ab Q 0 ( x) Q 2 ( x) dx = 0
ab Q1 ( x) Q 2 ( x) dx = 0
o que leva a um sistema de 3 equaes com 6 incgnitas. Escolhendo, arbitrariamente,
c 00 = c 01 = c 02 = 1 , pode-se determinar os demais coeficientes.
Exemplo. Polinmios ortogonais em [0, 1].
1
c
x2
1
1
0 Q 0 ( x) Q1 ( x) dx = 0 1 1 + c11x dx = x + c11 = 1 + 11 = 0
2
2
0
120
Clculo Numrico
5 Aproximao de Funes
ou seja: c11 = 2 .
01
01
Q 0 ( x) Q 2 ( x) dx =
1 1 + c 21x + c 22 x
c
c
x2
x3
+ c 22
dx = x + c 21
= 1 + 21 + 22 = 0
2
3
2
3
01 Q1 ( x) Q 2 ( x) dx = 01 (1 2 x) ( 1 + c 21x + c 22 x 2 ) dx =
x2
x3
x4
1
1
= x + (c 21 2)
+ (c 22 2c 21 )
c 22
= c 21 c 22 = 0
2
3
2
6
6
ou seja: c 21 = 6,
Q 0 (x ) = 1
Q1 ( x ) = 1 2x
Q 2 ( x ) = 1 6x + 6x 2
Uma vez determinados os polinmios ortogonais Q i ( x ) , o sistema de equaes normais
para o polinmio de aproximao de quadrados mnimos:
p 2 ( x) = 0 Q 0 ( x) + 1Q1 ( x) + 2 Q 2 ( x)
obtido de forma anloga ao caso dos polinmios de Legendre, ou seja:
i =
ab f ( x) Q i ( x) dx
ab ( Q i ( x)) dx
2
i = 0, 1, K
0 =
1 =
2 =
01 e x Q 0 ( x) dx
2
01 Q 0 ( x) dx
01 e x Q1 ( x) dx
01 ( Q1 ( x)) dx
2
01 e x Q 2 ( x) dx
01 ( Q 2 ( x)) dx
2
01 e x dx
01 dx
= e1
01 e x (1 2 x) dx
01 (1 2 x) 2 dx
= 3 (e 3)
01 e x (1 6x + 6x 2 ) dx
01 (1 6x + 6x 2 ) 2 dx
= 5 (7 e 19)
Portanto:
.
+ 0.851x + 0.839 x 2
p 2 ( x) = 1013
121
Clculo Numrico
5 Aproximao de Funes
Notar que este polinmio o mesmo obtido anteriormente (ver seo 6.3).
No
processo
ab ( Q i ( x)) dx = 1
2
i = 0, 1, K
i = a f ( x) Q i ( x) dx
b
i = 0, 1, K
Q 0 (x ) = c 00
Q1 ( x ) = c10 + c11x
Q 2 ( x ) = c 20 + c 21x + c 22 x 2
/
Pela ortogonalidade tem-se:
c11
= 0
2
01 Q 0 ( x) Q 2 ( x) dx = 01 c 00 ( c 20 + c 21x + c 22 x 2 ) dx = 0 c 00 c 20 +
01 Q1 ( x) Q 2 ( x) dx = 01 ( c10 + c11x) ( c 20 + c 21x + c 22 x 2 ) dx = 0
c
c
c
c
c
c10 c 20 + 21 + 22 + c11 20 + 21 + 22 = 0
2
2
3
3
4
Tem-se ento:
c
c10 + 11 = 0
2
c 21 c 22
c 20 +
+
=0
2
3
c
c
c
c
c
c10 c 20 + 21 + 22 + c11 20 + 21 + 22 = 0
2
2
3
3
4
122
c 21 c 22
=0
+
2
3
Clculo Numrico
5 Aproximao de Funes
01 ( Q 0 ( x)) dx = 01 ( c 00 ) dx = 1 c 00 = 1
2
2
01 ( Q1 ( x)) dx = 01 ( c10 + c11x) dx = 1 c10
+ c10 c11 +
2
2
c11
=1
3
01 ( Q 2 ( x)) dx = 01 ( c 20 + c 21x + c 22 x 2 ) dx = 1
2
Tem-se ento:
c 00 = 1
2
c11
2
c10 + c10 c11 +
=1
3
c 221 c 21c 22 c 222
2
2
c 20 + c 20 c 21 + c 20 c 22 +
+
+
=1
3
3
2
5
c 00 = 1
c10 = 3
c 20 = 5
c11 = 2 3
c 21 = 6 5
c 22 = 6 5
Q 0 (x ) = 1
Q1 ( x ) = 3 2 3 x
Q 2 (x) = 5 6 5 x + 6 5 x 2
Exerccio. Verificar a ortonormalidade dos polinmios acima, no intervalo [0, 1].
p 2 ( x) = 0 Q 0 ( x) + 1Q1 ( x) + 2 Q 2 ( x)
ou seja:
0 se i j
1
A i , j = 0 Q i ( x) Q j ( x) dx =
1 se i = j
123
i, j = 0, 1, 2
Clculo Numrico
5 Aproximao de Funes
b i = 0 f ( x) Q i ( x) dx
1
i = 0, 1, 2
i = 0 f ( x) Q i ( x) dx
1
i = 0, 1, 2
Portanto:
p 2 ( x) = 1013
.
+ 0.851x + 0.839 x 2
que , evidentemente, o mesmo polinmio de aproximao obtido anteriormente (ver
exemplos anteriores).
L(, , x) = 0 0 ( x) + 11 ( x) + K + n n ( x) = i i ( x)
i=0
Notar que a aproximao polinomial um caso particular de L(, , x) onde as funesbase i ( x) (i = 0, 1, K , n) correspondem aos monmios
polinmios ortogonais Pi ( x ) .
x i (i = 0, 1, K , n) ou a
Pelo critrio dos quadrados mnimos, uma vez escolhido o conjunto , deve-se determinar
os coeficientes 0 , 1 , K , n que minimizam a funo:
124
Clculo Numrico
5 Aproximao de Funes
ou, de uma forma generalizada, introduzindo uma funo-peso w(x) para reduzir (ou
reforar) o quadrado do erro em certos trechos do intervalo [a, b], que minimizam a funo:
I()
=0
j
j = 0, 1, K , n
ou seja:
n
I()
b
= 2 a f ( x) i i ( x) j ( x) w ( x) dx = 0
j
i=0
j = 0, 1, K , n
i ab i ( x) j ( x) w ( x) dx = ab f ( x) j ( x) w ( x) dx
i=0
1444424444
3
1444
424444
3
A i, j
bj
j = 0, 1, K , n
Para o caso discreto as integrais devem ser substitudas por somatrias. Neste caso, temse:
m
A i, j = i ( x k ) j ( x k ) w k
(i, j = 0, 1, K , n)
k=0
b j = f ( x k ) j (x k ) w k
( j = 0, 1, K , n)
k=0
1.0
2.0
4.0
6.0
yi
10.0
5.0
2.0
1.0
k=0
k=0
k=0
k=0
A 0,0 = 0 ( x k ) 0 ( x k ) = 1 1 = 1 + 1 + 1 + 1 = 4
A 0,1 = 0 ( x k ) 1 ( x k ) = 1 x k = 1 + 2 + 4 + 6 = 13
125
Clculo Numrico
5 Aproximao de Funes
k=0
k=0
A 0,2 = 0 ( x k ) 2 ( x k ) = 1 x 2k = 12 + 2 2 + 4 2 + 62 = 57
M
3
k=0
k=0
b 0 = y k 0 ( x k ) = 1 y k = 10 + 5 + 2 + 1 = 18
M
Tem-se, ento, o seguinte sistema normal:
4
13
57
13
57
289
57
289
1569
a0
18
a 1 = 34
a2
98
R=
( f ( x k ) L( x k ) ) =
k=0
c1
x
1
Neste caso, w k = 1 ( k = 0, 1, 2, 3) e 0 ( x) = 1; 1 ( x) = .
x
Portanto, para este caso, tem-se:
3
k=0
k=0
A 0,0 = 0 ( x k ) 0 ( x k ) = 1 1 = 1 + 1 + 1 + 1 = 4
3
3 1
A 0,1 = 0 ( x k ) 1 ( x k ) =
= 1917
.
k=0
k=0 x
M
o que leva ao seguinte sistema normal:
4.000
1917
.
1917
.
1340
.
126
c0
18.000
=
c1
13167
.
Clculo Numrico
5 Aproximao de Funes
e funo de aproximao:
L(x) = 0.658 +
10.765
x
R=
( f ( x k ) L( x k ) ) =
k=0
Pelos valores do resduo total R conclui-se, portanto, que a aproximao (b) melhor
do que a aproximao (a).
0 ( x) = 0 ( x)
i 1
i ( x) = i ( x) c ij j ( x)
i = 1, 2, K , n
j= 0
{ k ( x),
k = 0, 1, K , i
i 1
j= 0
ab k ( x) i ( x) w ( x) dx = ab k ( x) i ( x) c ij j ( x) w ( x) dx =
= a k ( x) i ( x) w ( x) dx c ik a k ( x) k ( x) w ( x) dx = 0
b
ou seja:
ab k ( x) i ( x) w ( x) dx
c ik = b
k ( x) k ( x) w ( x) dx
0 ( x) = 0 ( x)
i 1
ab j ( x) i ( x) w ( x) dx
j= 0
ab j ( x) j ( x) w ( x) dx
i ( x) = i ( x)
127
j ( x)
i = 1, 2, K , n
Clculo Numrico
5 Aproximao de Funes
{ i ( x) = x i ,
i = 0, 1, K e funo-peso w ( x) =
1 x2
0 (x ) = 0 ( x ) = x 0 = 1
1
dx
1
2
(
x
)
(
x
)
w
(
x
)
dx
1 x
0 1
1 ( x ) = 1 (x ) 1
0 (x) = x
1 = x
1
1
1
dx
1 0 ( x) 0 ( x)w ( x)dx
1
2
1 x
11 0 ( x) 2 ( x) w ( x) dx
2 ( x) = 2 ( x ) 1
0 ( x ) 0 ( x ) w ( x ) dx
11 1 ( x) 2 ( x) w ( x) dx
1
1 ( x) = x 2
2
1 1 ( x ) 1 ( x ) w ( x) dx
0 ( x ) 1
Os polinmios:
i = 0, 1, K
1
1 x2
u = cos 1 ( x)
x = 1
x =1
u=
u=0
e tambm:
du =
1
1 x
dx
Portanto:
11 Ti ( x) Tj ( x) w ( x) dx = 0 cos( i u) cos( j u)
1
1 x
128
1 x 2 du =
1
1 x2
dx
Clculo Numrico
0 cos( i
5 Aproximao de Funes
2 ( i 2 j2 )
= 00 = 0
cos[i cos 1 ( x)] + cos[(i 2) cos1 ( x)] = 2 cos[(i 1) cos 1 ( x)]cos[cos1 ( x)] i = 0, 1, K
ou seja:
Ti ( x) + Ti 2 ( x) = 2 x Ti 1 ( x)
Ti ( x) = 2 x Ti 1 ( x) Ti 2 ( x)
i = 2, 3, K
p 3 ( x) = 0 T0 ( x) + 1T1 ( x) + 2 T2 ( x) + 3T3 ( x)
onde Ti(x) (i = 0, ..., 3) so polinmios de Tchebyshev.
Do mtodo dos quadrados mnimos generalizado, tem-se que o sistema de equaes
normais A = b tal que:
A i , j = a Ti ( x) Tj ( x) w ( x) dx
b
b j = a f ( x) Tj ( x) w ( x) dx
b
i, j = 0, 1, K , n
j = 0, 1, K , n
ab f ( x) Ti ( x) w ( x) dx
i = b
T ( x) Ti ( x) w ( x) dx
a i
129
i, j = 0, 1, K , n
Clculo Numrico
5 Aproximao de Funes
11 Ti ( x) Ti ( x)
para i = 0
dx = 0 cos 2 [iu] du =
1 x2
para i 1
2
1
Logo:
1 1 e x T0 ( x)
0 = 1
dx = 1266
.
1 x2
1 =
2 1 e x T1 ( x)
dx = 1130
.
1 1 x 2
2 =
2 1 e x T2 ( x)
dx = 0.271
1 1 x 2
2 1 e x T3 ( x)
3 = 1
dx = 0.044
1 x2
Dos polinmios de Tchebyshev tem-se:
.
[1] + 1130
.
[ x] + 0.271 [2 x 2 1] + 0.044 [4 x 3 3x]
p 3 ( x) = 1266
ou seja:
EXERCCIOS RESOLVIDOS
1. Aproximar a funo y = f(x) conhecida apenas nos pontos da tabela a seguir a uma
funo da forma y = ab x
Clculo Numrico
5 Aproximao de Funes
x
f(x)
1.00
0.24
1.20
0.19
1.40
0.14
1.60
0.11
1.80
0.08
Soluo:
Aplicando logaritmo pode-se escrever: ln(y) = ln(a) + x 2 ln(b). Fazendo z = ln(y), c 0 =
ln(a), c1 = ln(b), o problema reduz-se a a ajustar uma funo z = c 0 0 ( x) + c11 ( x) ,
com 0 ( x) = 1 e 1 ( x) = x 2 , seguinte tabela de pontos:
x
z
1.00
-1.43
1.20
-1.66
1.40
-1.97
1.60
-2.21
1.80
-2.53
i =1
5
x 2i
i =1
5
2
c
xi
zi
0
i =1
i =1
= 5
5
4
c1
xi
z i x 2i
i =1
i =1
5.0
10.2
9.8
c0
10.2 23.9
=
c1
097
c0
215
.
=
c1
0.49
0.97
a=e 0 =e
= 0.38
c1
0.49
b=e =e
= 0.61
2
EXERCCIOS PROPOSTOS
1. Aproximar a funo y = f(x) conhecida apenas nos pontos da tabela a seguir a uma
funo da forma y = a 1 + bx 2 utilizando o mtodo dos quadrados mnimos.
x
y
0.0
0.50
1.0
0.76
2.0
1.24
3.0
1.78
1.00
0.2420
1.20
0.1942
1.40
0.1497
131
1.60
0.1109
1.80
0.0790
Clculo Numrico
5 Aproximao de Funes
Aproxime f(x) a uma funo da forma: c0ln(x) + c1e-x pelo mtodo dos quadrados
mnimos.
0.00
1.000
0.15
1.004
0.31
1.031
0.50
1.117
0.60
1.223
0.75
1.422
4. A tabela abaixo fornece o nmero de habitantes do Brasil (em milhes) a partir de 1872.
Obter uma estimativa para a populao brasileira no ano 2000. Comente criticamente o
resultado obtido.
ano
habitante
s
1872
9.9
1890
14.3
1900
17.4
1920
30.6
1940
41.2
1950
51.9
1960
70.9
1970
93.1
1980
130.0
0
32
1
47
2
65
3
92
4
132
5
190
6
275
6. Encontrar uma aproximao de quadrados mnimos linear para sen(x) no intervalo [0,
/2] pelos seguintes caminhos:
a) diretamente da definio, ou seja, resolvendo o sistema normal;
b) usando polinmios ortogonais em [0, /2];
c) mapeando o intervalo em [-1,1] e usando polinmios de Legendre.
EXERCCIOS DE PROGRAMAO
1. Dada uma tabela { ( x i , y i ), i = 1, 2, ..., n }, que representa uma funo y i = f( x i ), podese determinar o polinmio p(x) = c1 + c 2 x + c 3 x 2 + ... + c m+ 1x m que melhor aproxima
esta tabela, segundo o critrio dos quadrados mnimos, montando e resolvendo o
sistema normal, dado por:
132
Clculo Numrico
1
x
5 Aproximao de Funes
x
x2
x2
x3
xm
x m+1
c1
c2
x 2m
M
c m+ 1
x m x m +1 x m + 2
y
y x
M
y xm
valor = c m+1
para i = m, m-1, ..., 1 fazer:
valor = valor * xs + c i
133
Clculo Numrico
5 Aproximao de Funes
134
Clculo Numrico
6. INTEGRAO NUMRICA
6.1 - Introduo
Neste captulo estuda-se o problema de calcular, com uma preciso desejada, o valor de:
b
I = f ( x)dx
a
Existem vrias funes f(x) para as quais no possvel determinar o valor da integral
analiticamente. Por exemplo:
1
2
I = e x dx
0
Nestes casos, um mtodo numrico (que calcula I de forma aproximada) imprescindvel.
Mas, mesmo que exista uma forma analtica de calcular a integral, o clculo de I pode ser
muito trabalhoso e difcil, sendo prefervel calcular I atravs de um mtodo de integrao
numrica (ou mtodo de quadratura). Outras situaes em que a integrao numrica
importante ocorrem quando:
I = f ( x)dx
a
w i f (xi )
i=0
onde os pontos xi [a, b] (i = 0,1, ..., n) e so tais que x0 < x1 < ... < xn. Os diversos
mtodos de integrao numrica conhecidos provm das escolhas dos pesos wi e dos
pontos xi (i = 0,1, ..., n).
Exemplo: Determinar I =
1
a)
[ f (1) + 4f (0) + f (1)]
3
b)
1
[5f ( 3 / 5 ) + 8f (0) + 5f ( 3 / 5 )]
9
Clculo Numrico
6 Integrao Numrica
I = f ( x)dx
R=
w i f (xi )
i=0
Exemplo.
I=
=
i + 1
1
0, para i impar
x
x i dx =
Correto
2.00000
0.00000
0.66667
Regra (a)
2.00000
0.00000
0.66667
Erro (a)
0.0
0.0
0.0
Regra (b)
2.00000
0.00000
0.66667
Erro (b)
0.0
0.0
0.0
x3
x4
x5
x6
0.00000
0.00000
0.0
0.00000
0.0
0.40000
0.66667
-0.26667
0.40000
0.0
0.00000
0.00000
0.0
0.28571
0.24000
0.04571
Portanto: A regra (a) tem preciso de grau 3 e a regra (b) tem preciso de grau 5.
Uma regra de quadratura pode ser fixa ou adaptativa, dependendo da escolha dos pesos
wi e dos pontos xi (i = 0,1, ..., n). Numa regra de quadratura fixa esta escolha no depende
do comportamento de f(x), mas apenas da regra a ser utilizada. J na quadratura
adaptativa a escolha feita de acordo com o comportamento de f(x), de modo que a
densidade dos pontos xi seja maior onde a funo varia mais intensamente, como ilustra a
figura a seguir.
y
y = f(x)
Clculo Numrico
6 Integrao Numrica
Frmulas de Newton-Cotes
Mtodos de Extrapolao
Frmulas de Gauss
y = f(x)
I
x
a
137
Clculo Numrico
6 Integrao Numrica
( )
( )
x i +1 + x i
(valor de f(x) no meio do subintervalo)
c) f
(b)
y
y = f(x)
y = f(x)
x
a = x0
x1
x2
x3 = b
a = x0
x1
x2
x3 = b
Qualquer que seja o caso, o valor de I aproximado soma das reas dos retngulos de
cada subintervalo, ou seja:
(a) I R =
(b) I R =
(c) I R =
n 1
n 1
i=0
n 1
i=0
n 1
i=0
n 1
i=0
( x i +1 x i ) f ( x i ) = hf ( x i )
( x i +1 x i ) f ( x i +1 ) = hf ( x i +1 )
( x i +1 x i ) f (
i=0
n 1
x i +1 + x i
x
+ xi
) = hf ( i +1
)
2
2
i= 0
y = f(x)
y = f(x)
x
a
138
Clculo Numrico
6 Integrao Numrica
Ou seja, existe um compromisso entre esforo e preciso: quanto menor o passo h, maior
ser o esforo computacional, mas melhor ser a aproximao.
y
y = f(x)
T1
T2
T3
T4
x
b
I = f ( x)dx
a
Ti
i =1
x
xi
h
Ti = i +1
[ f ( x i ) + f ( x i +1 )] = [ f ( x i ) + f ( x i + 1 )]
2
2
Portanto:
n
h
2
h
2
h
2
Ti = [ f ( x 0 ) + f ( x1 )] + [ f ( x1 ) + f ( x 2 )]+...+ [ f ( x n 1 ) + f ( x n )]
i =1
ou seja:
h
I [ f ( x 0 ) + 2 f ( x1 ) + 2 f ( x 2 )+...+2 f ( x n 1 ) + f ( x n )]
2
O erro de truncamento da regra dos trapzios dado por:
| E |=
ba 2
h | f "() |
12
com (a , b)
Para estimar o valor do erro deve-se encontrar um valor M tal que | f"(x) | M, x [a, b]. Se
isto for possvel, pode-se escrever:
ba 2
| E |
h M
12
Exemplo: Calcular I = e x dx , pela regra dos trapzios, tal que o erro de truncamento seja
1
menor que 10 3 .
139
Clculo Numrico
6 Integrao Numrica
Neste caso, para determinar qual deve ser o passo de integrao h, tem-se:
f (x) = e x
M = e2 = 7.39
Como:
| E |
ba 2
h M
12
12.| E|
( b a ). M
Portanto:
12.(103 )
0.04
(2 1).7.39
Assim, pela regra dos trapzios os seguintes pontos devem ser considerados:
x
1.00
1.04
1.08
1.12
1.16
1.20
1.24
f(x)
2.7183
2.8292
2.9447
3.0649
3.1899
3.3201
3.4556
x
1.28
1.32
1.36
1.40
1.44
1.48
1.52
f(x)
3.5966
3.7434
3.8962
4.0552
4.2207
4.3929
4.5722
x
1.56
1.60
1.64
1.68
1.72
1.76
1.80
f(x)
4.7588
4.9530
5.1552
5.3656
5.5845
5.8124
6.0496
x
1.84
1.88
1.92
1.96
2.00
f(x)
6.2965
6.5535
6.8210
7.0993
7.3891
Erro
0.0006
REGRA DE SIMPSON
Na regra de integrao numrica de Simpson, aproxima-se a funo f(x), a cada 3 pontos,
a um polinmio de grau 2, ou seja:
y = f(x)
x
xi
xi+1
xi+2
( x x i +1 )( x x i + 2 )
( x x i )( x x i + 2 )
( x x i )( x x i +1 )
f ( xi ) +
f ( x i +1 ) +
f (xi+2 )
( x i x i +1 )( x i x i + 2 )
( x i +1 x i )( x i +1 x i + 2 )
( x i + 2 x i )( x i + 2 x i +1)
140
Clculo Numrico
6 Integrao Numrica
e ento:
xi+2
xi+ 2
xi
xi
f ( x)dx p 2 ( x)dx
f ( x) dx
xi
x
x
xi+ 2
) i +2
f (xi )
f (x ) i + 2
f (x
( x x i +1 )( x x i + 2 )dx + i +1 ( x x i )( x x i + 2 )dx + i + 2 ( x x i )( x x i +1 )dx
( h)(2 h)
( h)( h)
(2 h)( h)
xi
xi
xi
14444
4244444
3
1444
4244443
1444
424444
3
2h 3
3
4 h 3
3
2h3
3
ou seja:
xi+2
h
3
f ( x)dx [ f ( x i ) + 4 f ( x i +1 ) + f ( x i + 2 )]
xi
No caso de se ter o intervalo [a, b] dividido em n subintervalos (notar que n deve ser par,
porque consideram-se 2 subintervalos de cada vez), tem-se:
b
n,2 h
i=0 3
f ( x)dx ( [ f ( x i ) + 4 f ( x i + 1 ) + f ( x i + 2 )]) =
h n,2
[ f ( x i ) + 4 f ( x i + 1 ) + f ( x i + 2 )] =
3 i=0
h
h
h
[ f ( x 0 ) + 4 f ( x1 ) + f ( x 2 )] + [ f ( x 2 ) + 4 f ( x 3 ) + f ( x 4 )] + L + [ f ( x n 2 ) + 4 f ( x n 1 ) + f ( x n )] =
3
3
3
h
[ f ( x 0 ) + 4 f ( x1 ) + 2 f ( x 3 ) + L + 2 f ( x n 2 ) + 4 f ( x n 1 ) + f ( x n )]
3
| E |
b a 4 iv
h | f () |
180
( a , b)
| E |
ba 4
h M
180
h4
180.| E|
( b a ). M
Portanto:
180.(10
h4
3 )
(2 1).7.39
0.4
n=
b a 21
=
= 2.5
h
0.4
Clculo Numrico
6 Integrao Numrica
h=
b a 21
=
= 0.25
n
4
f(x)
2.7183
3.4903
4.4817
5.7546
7.3891
Com estes valores tem-se (comparar com os resultados obtidos pela regra dos trapzios):
Valor Correto
4.6708
Regra de Simpson
4.6709
Erro
0.0001
xx m f ( x)dx xx m p m ( x)dx
0
y 0
2 y 0
my0
+ ( x x 0 )( x x1 )
+
L
+
(
x
x
)(
x
x
)
L
(
x
x
)
0
1
m1
h
2h2
m! h m
x x0
, com h = xi+1 - xi (i = 0,1, ..., m-1). Portanto, pode-se
h
escrever:
(x - x0) = hz
(x - x1) = (x - (x0 + h)) = (x - x0) - h = hz - h = h(z - 1)
(x - x2) = (x - (x0 + 2h)) = (x - x0) - 2h = hz - 2h = h(z - 2)
...
(x - xm-1) = (x - (x0 + (m-1)h)) = (x - x0) - (m-1)h = h(z - (m-1))
Logo:
y 0
2 y 0
my0
2
m
p m ( x) = y 0 + hz
+ h z( z 1)
+ L + h z( z 1) L ( z ( m 1))
h
2h2
m! h m
ou seja:
m
z( z 1) L ( z ( m 1)) m
z
z( z 1) 2
p m ( x) = y 0 + y 0 +
y0 + L +
y0 = a kk y 0
1!
2!
m!
k=0
142
Clculo Numrico
6 Integrao Numrica
onde:
ak =
Como z =
z( z 1) L ( z ( k 1))
k!
x x0
, ento x = x0 + hz e portanto, dx = hdz. Alm disto, nos limites de
h
integrao tem-se:
x0 x 0
=0
h
x m x 0 x 0 + mh x 0
para x = xm tem-se z =
=
=m
h
h
para x = x0 tem-se z =
Portanto:
xm
xm
m m
x0
x0
0 k=0
m m
m
m
(
)
(
)
m
+
1
m
+
1
m
+
2
m
+
1
a m +1f
()( hdz) = h
() a m +1dz
R m+ 1 = h
f
0
0
com ( x 0 , x m )
Exemplo.
Seja m = 1. Neste caso, para o subintervalo [ x 0 , x1 ] tem-se:
x1
1 1
x0
k=0 0
Mas:
1
1dz = 1
0
1
z 2 1 1 0 1
zdz = = =
2 2 2
2
0
0
Logo:
x1
1
2
h
2
h
2
f ( x)dx h[ y 0 + ( y1 y 0 )] = [ y 0 + y1 ] = [ f ( x 0 ) + f ( x1 )]
x0
Clculo Numrico
6 Integrao Numrica
1 z( z )
1
1
1
z2
11 2
1 z 3
1
dz = ( z z)dz =
=
20
2 3
2
12
0
0
ou seja:
h3
E 0,1 =
f "()
12
com ( x 0 , x1 )
n h
i = 12
h
2
h
2
h
2
ou seja:
b
h
2
f ( x)dx [ f ( x 0 ) + 2 f ( x1 ) + 2 f ( x 2 ) + K + 2 f ( x n 1 ) + f ( x n )]
E =
n h3
i =1
i = 112
E i 1,i =
f "() = n
h3
b a h3
ba 2
f "() =
f "() =
h f "()
12
12
h 12
f ( x)dx = h a k k y 0 dz
x0
k=0 0
onde:
0 y 0 = y 0
1y 0 = 0 y1 0 y 0 = y1 y 0
2 y 0 = 1y1 1y 0 = ( y 2 y1 ) ( y1 y 0 ) = y 2 2 y1 + y 0
Logo:
2
x2
2
2 z( z 1)
x0
0{
0
014243
{
2
2
1
3
1
2
1
= h 2 y 0 + 2 y1 2 y 0 + y 2 y1 + y 0
3
3
3
144
Clculo Numrico
6 Integrao Numrica
y 0 + 4 y1 + y 2 h
= h
= 3 [ y 0 + 4 y1 + y 2 ]
(Regra de Simpson)
Erro de Truncamento:
2
2 z( z 1)( z 2)
3!
dz =
2
h 4 f ''' () 2 3
h 4 f ''' () z 4
2
3
2
( z 3z + 2 z) dz =
=
x +z =0
6
6
4
0
0
E T = R 4 = h 5 f ( iv) () a 4 dz
0
ET = h f
2 z( z 1)( z 2)( z 3)
()
4!
h 5 f (iv ) () 2 4
( z 6z 3 + 11z 2 6z) dz
dz =
24
0
z 5 6z 4 11z 3 6z 2 2 8
Mas: ( z 6z + 11z 6z) dz =
=
4
3
2
30
5
0
0
2
Logo:
h 5 f (iv ) () 8
h 5 (iv )
ET =
=
f
()
24
30
90
Para todo o intervalo [a, b] tem-se:
b
x2
x4
xm
x0
x2
x m 2
f ( x) dx = f ( x) dx + f ( x) dx + L + f ( x) dx
onde m =
ba
.
2h
Logo:
145
Clculo Numrico
b
6 Integrao Numrica
h
3
h
3
h
3
f ( x) dx = [ y 0 + 4 y1 + y 2 ] + [ y 2 + 4 y 3 + y 4 ] + L + [ y m 2 + 4 y m 1 + y m ]
h
[ y + 4 y1 + 2 y 2 + 4 y 3 + 2 y 4 + L + 2 y m 2 + 4 y m 1 + y m ]
3 0
E T = mR 4 =
b a h 5 ( iv )
( b a ) 4 (iv )
f
h f
() =
()
2 h 90
180
( a b)
Para valores maiores de m tem-se outras regras de quadratura. Por exemplo, para m = 3,
tem-se a regra 3/8 de Simpson, dada por:
b
f ( x)dx =
com n =
3h
[ y 0 + 3y1 + 3y 2 + 2 y 3 + 3y 4 + 3y 5 + 2 y 6 +L+ 2 y n 3 + 3y n 2 + 3y n 1 + y n ]
8
(b a )
, e erro de truncamento dado por:
3h
ET =
( b a ) 4 ( iv)
h f
()
80
( a b)
ba
, ento o
m
bj =
2 j
f ( 2 j1) (a ) f ( 2 j 1) ( b)]
[
(2 j)!
(j = 1,2, ..., m)
n
e os 2j (denominados nmeros de Bernoulli) so tais que: 0 = 1 e
= 0,
n k
k = 1 k
n
Clculo Numrico
6 Integrao Numrica
n=3
3
3
3
3
3 k = 0 31 + 3 2 + 3 3 = 0
k =1 k
1
2
3
3
3 2 + 31 + 0 = 0 2 =
1
6
ba
2j
(j = 0,1,2, ...)
h j 2
h j 4
h j 6
I T0, j+ 1 = b1 + b 2 + b 3 +...
2
2
2
(j = 0,1,2, ...)
I T0, j+ 1 =
1
1
1
b1h 2j + b 2 h 4j +
b h 6 +...
4
16
64 3 j
(j = 0,1,2, ...)
1
1
b 2 h 4j + b 3 h 6j +...
4
16
(j = 0,1,2, ...)
ou seja:
1
1
b 2 h 4j + b 3 h 6j +...) - ( b1h 2j + b 2 h 4j + b 3 h 6j +...)
4
16
3I (4T0, j+ 1 T0, j ) =
Dividindo por 3:
3b 2 4 15b 3 6
h
h +L
4 j
16 j
3b 2 4 15b 3 6
hj +
hj +L
48
112
23
123
c2
ou seja:
4T0, j+ 1 T0, j
3 44
1442
3
c3
= c 2 h 4j + c 3 h 6j + L
T1, j
147
Clculo Numrico
onde: c 2 =
6 Integrao Numrica
3b 2
15b 3
, c3 =
, L (notar que como bi no depende de h, ci tambm
12
48
Em outras palavras, este esquema mostra como, a partir de duas aproximaes de ordem
h 2j possvel determinar uma aproximao de ordem h 4j . Continuando este processo,
pode-se eliminar o termo em h 4j e construir uma aproximao de ordem h 6j .
Por exemplo:
I T1, j = c 2 h 4j + c 3 h 6j + L
h j 4
h j 6
1
1
I T1, j+1 = c 2 + c 3 + L = c 2 h 4j + c 3 h 6j + L
16
64
2
2
ou seja: 16(I T1, j+1 ) = c 2 h 4j +
(j = 0,1,2, ...)
1
c h 6 + L Subtraindo as duas expresses, tem-se:
4 3 j
1
16(I T1, j+1 ) (I T1, j ) = (c 2 h 4j + c 3 h 6j +...) (c 2 h 4j + c 3 h 6j +...)
4
Portanto: I
= d 3 h 6j +...
com d 3 =
3c 3
,L
4
T2, j
Em outras palavras, T2, j =
h 6j .
Continuando desta maneira, pode-se eliminar termos h kj (k = 6,8, ...) e obter aproximaes
cada vez melhores, que so calculadas sempre como combinaes lineares de
aproximaes anteriores.
h=
ba
2j
148
Clculo Numrico
6 Integrao Numrica
1
Ti, j = i
(4 i Ti 1, j+1 Ti 1, j )
4 1
segundo o esquema:
T0,0
T1,0
T0,1
T0,2
M
T1,1
M
T2,0
M
Exemplo: Calcular I = e x dx pelo mtodo de Romberg, at que o erro seja menor do que
0
7
10 .
No mtodo de Romberg o limitante do erro dado por | E | | Ti +1, j Ti, j |. Portanto, para
o caso acima tem-se:
i
0
j
0
1
2
3
h
1.000
0.500
0.250
0.125
Ti, j
1.7182841
1.7182818
1.7182819
1.7182818
1.7182818
1.7272219
1.7205186
1.7188411
1.7184216
3
1.7182818
f ( x)dx
1
devem ser os pesos wi e os pontos xi de avaliao da funo f(x) de forma que G seja uma
aproximao com preciso de grau 3 para I (ou seja, de forma que G seja exata para
f(x) = 1, x, x 2 e x 3 )?". Para responder esta questo, seja o seguinte sistema de equaes
(no lineares):
1
f ( x) = 1 w 1 + w 2 = 1dx = 2
1
f ( x) = x w 1x1 + w 2 x 2 =
xdx = 0
f ( x) = x 2
w1x12 + w 2 x 22 =
f ( x) = x 3
w 1x13 + w 2 x 32 =
149
1
1
2
3
x 2 dx =
x 3dx = 0
Clculo Numrico
6 Integrao Numrica
1
. Portanto, a regra de
3
quadratura:
G 2 = f (
1
1
) + f( )
3
3
f(x) = 1, x, x 2 , x 3 , x 4 , x 5 (ou seja, de modo a se ter uma regra com preciso de grau 5).
Neste caso, resolvendo-se o sistema de equaes, tem-se:
w1 =
5
9
w2 =
8
9
w3 =
5
9
3
5
x1 =
x2 = 0
x3 =
3
5
Portanto:
G3 =
5
3
8
5
3
f ( ) + f (0) + f ( )
9
5
9
9
5
L 0 ( x) = 1
L1 ( x) = x
2n 1
n 1
L n ( x) =
xL n 1 ( x)
L n 2 ( x)
n
n
n = 2,3,...
n = 2 L 2 ( x) =
2.2 1
2 1
3
1
1
xL1 ( x)
L 0 ( x) = x. x .1 = (3x 2 1)
2
2
2
2
2
150
Clculo Numrico
n = 3 L 3 ( x) =
6 Integrao Numrica
2.3 1
31
5 1
2
1
xL 2 ( x)
L1 ( x) = x[ (3x 2 1)] . x = (5x 3 3x)
3
3
3 2
3
2
L 2 ( x) = 0 Razes: x1 =
1
3
3
L 3 ( x) = 0 Razes: x1 =
5
; x2 =
1
3
3
5
; x2 = 0 ; x3 =
wi =
| L'n ( x i ) |2 1 x i2
(i = 1,2, ..., n)
1
n = 2 L 2 ( x) = (3x 2 1) L'2 ( x) = 3x
2
1
1
x1 =
; x2 =
3
3
w1 =
1
2
1 2
1 2 1
= .
= . = .3 = 1
.
1 2
1 2 3
1 3 2 3
1
|3.
| 1 (
)
3
3
3
3
w2 =
1
2
1 2
1 2 1
.
= .
= . = .3 = 1
1 2
1
1 3 2 3
3
|3.
| 1 ( )2
1
3
3
3
3
En =
Exemplo: Calcular I =
2 ( 2 n +1) ( n !) 4 (2 n)
f
()
(2 n + 1)(2 n!) 3
(1, 1)
Clculo Numrico
6 Integrao Numrica
I=
e x dx = [ e x ]
= e1 e 1 = 2.3504023
2 9 (4!) 4 (8)
E4 =
f ()
9 (8!) 3
(1, 1)
E4
2 9 (4!) 4 1 1698
108
.
e
=
2.718 = 0.0000007
9 (8!) 3
5899
1014
.
xi
wi
2
3
0.577350269189626
0.000000000000000
0.774596669241483
0.339981043584856
0.861136311594053
0.000000000000000
0.538469310105683
0.906179745938664
0.238619186083197
0.661209386466265
0.932469514203152
0.000000000000000
0.405845151377397
0.741531185599394
0.949107912342759
0.183434642495650
0.525532409916329
0.796666477413627
0.960289856497536
1.000000000000000
0.888888888888889
0.555555555555556
0.652145154362546
0.347854854137454
0.568888888888889
0.478628670499365
0.236926885056189
0.467913934572691
0.360761573048139
0.171324492379170
0.417959183673469
0.381830050505119
0.279705391489277
0.129484966168870
0.362683783378362
0.313706645877887
0.222381034453374
0.101228536290376
4
5
Caso o intervalo de integrao no seja o intervalo [-1, 1], ser preciso fazer uma mudana
de varivel. Para um intervalo [a, b] a mudana necessria pode ser escrita como:
152
Clculo Numrico
6 Integrao Numrica
x=
ba
b+a
t+
2
2
e consequentemente:
dx =
ba
dt
2
2
Exemplo: Calcular I = e x dx usando a regra de quadratura gaussiana de 4 pontos.
1
Neste caso, a mudana de varivel necessria ser:
x=
2 1 2 1 1
t+
= ( t + 3)
2
2
2
dx =
21
1
dt = dt
2
2
1 1 ( t + 3)
1 1 ( t + 3)
1
1
Portanto I = e dx = e 2
dt = e 2
dt
2
2
1
1
1 4243
1
G
2
ou seja:
1
1
G = 9.341448 = 4.670724
2
2
2
Observao:
Existem outras regras de quadratura gaussiana, considerando os pontos x i (i = 1, 2, ..., n)
como zeros de polinmios de Tchebyshev (quadratura de Gauss-Tchebyshev), de
polinmios de Laguerre (quadratura de Gauss-Laguerre) ou de polinmios de Hermite
(quadratura de Gauss-Hermite).
Clculo Numrico
6 Integrao Numrica
pode ser grande (sem comprometer a preciso), mas nos trechos em que a funo varia
muito, um espaamento h grande pode levar a grandes erros.
A idia da Quadratura Adaptativa adaptar-se ao comportamento de f(x) no intervalo [a, b],
usando um passo h pequeno em trechos onde o erro grande e um passo h grande (e
portanto um esforo computacional menor) onde o erro pequeno.
Considere que deseja-se calcular uma aproximao S, pela regra de Simpson, para
b
I = f ( x) dx , de forma que:
a
a) I S <
b) o nmero de avaliaes de f(x) o menor possvel (notar que o nmero de avaliaes
de f(x) depende de h).
x j+1
Sejam h j = x j+1 x j
S j2 =
hj
6
hj
2
tem-se:
[ f j + 4 f j+ 1 / 2 + f j+ 1 ]
5
1 h j ( iv)
2
()
Ij Sj = f
90 2
[ x j , x j +1 ]
S j4 =
hj
12
[ f j + 4 f j + 1 / 4 + 2 f j + 1 / 2 + 4 f j+ 3 / 4 + f j + 1 ]
5
5
1 h j ( iv)
1 h j ( iv)
4
Ij Sj = f
(1 ) f
(2 )
90 4
90 4
144424443
1 [ x j , x j+1/ 2 ]
Seja f ( iv ) ( x) M
( x [ x j , x j+1 ]) . Ento:
154
14442444
3
2 [ x j+1/ 2 , x j+1 ]
hj
4
Clculo Numrico
6 Integrao Numrica
hj
2
I j S j
hj
4
I j S j
5
5
5
1 hj
1 hj 1 hj
90 2 M 90 4 M 90 4 M
ou seja:
hj
hj
5
5
5
32 h j
2 hj
30 h j
4
2
S j S j = M M = M
90 4
90 4
90 4
ou ento:
hj
hj
5
Mhj
1 4
= S j S j2
90 4
30
Portanto:
hj
hj
5
h
1 4
2 M j
2
I j S j4 =
= S j S j
90 4
15
hj
I j S j4
h j
( b a)
x 2 , L , x n 1 , x n = b e seja:
( j = 1, 2, L , n 1)
E T = I j S j4
j= 1
n 1
hj
n 1
n 1 h j
n 1
hj =
I
S
=
j
j
j= 1
j= 1 ( b a ) ( b a ) j = 1
123
(b a)
ou seja, se para cada intervalo h j, a aproximao obtida pela regra de Simpson com passo
hj
4
hj
tal que:
I j S j4
h j
( b a)
E T . Em outras palavras, para garantir que o erro de truncamento total esteja limitado
preciso desejada, necessrio que:
hj
hj
h j
1 4
2
S
S
j ( b a)
15 j
Clculo Numrico
6 Integrao Numrica
Caso esta condio no seja satisfeita para algum subintervalo, divide-se este subintervalo
ao meio e assim sucessivamente.
Exemplo: Calcular I =
9 1
1 x
pode-se notar que no trecho assinalado a funo varia mais rapidamente, o que vai exigir
um passo pequeno. Nos demais trechos, a funo variando mais lentamente, poder
admitir um passo maior.
No caso acima tem-se, inicialmente, h1 = (b1 - a1 ) = 9 - 1 = 8 e deve-se calcular:
h1
h 1
h
8 1
1 1
S12 = 1 f (a 1 ) + 4 f (a 1 + 1 ) + f ( b1 ) = + 4 + = 2.54815
6 1
2 3
2
5 9
h1
3h
h 1
h
h
S14 = 1 f (a 1 ) + 4 f (a 1 + 1 ) + 2 f (a 1 + 1 ) + 4 f (a 1 + 1 ) + f ( b1 ) =
4
4 3
4
2
8 1
1
1
1 1
+ 4 + 2 + 4 + = 2.27725
12 1
3
5
7 9
h1
1
S 4 S12
15 1
1
2.27725 2.54815 = 0.01806
15
h1
= = 0.001
( b1 a 1 )
h1
h1
1
e portanto, como
S 4 S12
15 1
>
h1
, a aproximao S1 no satisfatria e o
( b1 a 1 )
intervalo [1, 9] deve ser dividido nos subintervalos [1, 5] e [5, 9].
156
Clculo Numrico
6 Integrao Numrica
h2
1
S 4 S 22
15 2
h 2
1
4 0.001
=
= 0.001
0.58783 0.58836 = 0.0000353 <
b2 a2
15
95
Portanto:
9 1
I=
5 x
dx = 0.58783
h2
1
S 4 S22
15 2
h 2
1
.
168889
.
= 0.004 >
= 0.001
162222
b2 a2
15
Portanto, o intervalo [1, 5] precisa ser dividido nos subintervalos [1, 3] e [3, 5] para atingir a
preciso desejada.
Intervalo [1, 3]: h 3 = b 3 - a 3 = 3 - 1 = 2
h3
2 1
1 1
S 32 = + 4 + = 111111
.
6 1
2 3
h3
2 1
1
1
1 1
+ = 110000
.
S 34 = + 4 + 2 + 4
12 1
15
.
2
2.5 3
h3
h3
1
S 34 S 32
15
h 3
1
110000
.
111111
.
= 0.00074 <
= 0.001
15
b3 a3
157
Clculo Numrico
6 Integrao Numrica
Portanto:
3 1
I=
1 x
dx = 110000
.
h3
2 1
1
1
1 1
S 34 = + 4 + 2 + 4
+ = 0.51084
12 3
35
.
4
4.5 5
h3
h3
1
S 4 S 32
15 3
h 3
1
= 0.001
0.51084 0.51111 = 0.000018 <
b3 a3
15
Portanto:
5 1
I=
3 x
dx = 0.51084
Logo:
9 1
I=
1 x
3 1
dx =
1 x
5 1
dx +
3 x
9 1
dx +
5 x
dx = 110000
.
+ 0.51084 + 0.58783 = 2.19867
I=
1 x
EXERCCIOS RESOLVIDOS
2.0
0.21
2.5
0.30
3.0
0.37
4.0
0.45
5.0
0.49
6.0
0.50
7.0
0.49
8.0
0.47
9.0
0.45
9.5
0.40
obter uma aproximao para a integral desta funo no intervalo [2.0, 9.5], usando a
regra de Simpson quando possvel e a regra dos trapzios quando no for possvel
aplicar a regra de Simpson.
Soluo:
Para a aplicao da regra de Simpson preciso ter um nmero par de subintervalos de
mesmo comprimento. Portanto pode-se aplicar a regra de Simpson para os intervalos:
[2.0, 3.0] com passo h = 0.5
158
Clculo Numrico
6 Integrao Numrica
f ( x) dx
3.0
9.0
9.5
2.0
14243
S ( h = 0.5)
31
.0424
3
S ( h = 1.0)
9.0
14243
T ( h = 0.5)
f ( x) dx + f ( x) dx + f ( x) dx
2.0
Assim:
3.0
h
3
2.0
9.0
0.5
[0.21 + 4 0.30 + 0.37] = 0.30
3
h
3
3.0
10
.
[ 0.37 + 4 0.45 + 2 0.49 + 4 0.50 + 2 0.49 + 4 0.47 + 0.45] =
3
10
.
[ 0.37 + 180
=
. + 0.98 + 2.00 + 0.98 + 188
. + 0.45] = 2.82
3
=
9.5
h
3
f ( x) dx = [ f (9.0) + f (9.5)] =
9.0
0.5
[0.45 + 0.40] = 014
.
3
9.5
Logo:
2.0
que o erro absoluto entre duas aproximaes sucessivas seja menor do que 0.01.
Soluo:
O esquema de Romberg pode ser escrito como:
T0,0
T1,0
T2,0
T0,1
T0,2
M
T1,1
M
onde os valores de T0, j so obtidos atravs da regra dos trapzios com passos h =
ba
159
Clculo Numrico
com h =
6 Integrao Numrica
0
20
= , tem-se:
T0,0 =
com h =
0
2
[ f (0) + f ( )] = 15708
.
[0 + 0] = 0
2
, tem-se:
2
T0,1 =
T1,0 =
com h =
T0,2 =
1
1
[4T0,1 T0,0 ] = [4 0.3266 0] = 0.4354
41
3
=
, tem-se:
4
22
3
[ f (0) + 2 f ( ) + 2 f ( ) + 2 f ( ) + f ()] = 0.3927[0 + 0.6448 + 0.4158 + 01340
.
+ 0] = 0.4691
8
4
2
4
T1,1 =
1
1
[4T0,2 T0,1 ] = [4 0.4691 0.3266] = 0.5166
4 1
3
1
1
T2 ,0 = 2
[4 2 T1,1 T1,0 ] = [16 0.5166 0.4354] = 0.5221
15
4 1
Neste caso, o erro absoluto dado por: E = | 0.5221 - 0.5166 | = 0.0055 < 0.01.
Portanto, o valor aproximado da integral I = 0.5221.
EXERCCIOS PROPOSTOS
1. Dada a funo f(x) conhecida apenas para os pontos tabelados:
x
f(x)
-0.20
1.020
-0.10
1.005
0.00
1.000
0.10
1.005
0.20
1.020
0.25
1.034
0.30
1.045
0.35
1.061
0.42
1.089
0.49
1.122
obter uma aproximao para a integral desta funo no intervalo [-0.20, 0.49], usando a
regra de Simpson quando possvel e a regra dos trapzios quando no for possvel
aplicar a regra de Simpson.
-0.20
0.039
-0.15
0.022
0.00
0.000
0.10
0.009
0.20
0.039
160
0.25
0.062
0.30
0.089
0.35
0.122
0.50
0.249
0.65
0.422
Clculo Numrico
6 Integrao Numrica
obter uma aproximao para a integral desta funo no intervalo [-0.20, 0.65], usando a
regra de Simpson quando possvel e a regra dos trapzios quando no for possvel
aplicar a regra de Simpson.
x 2 sen( x)dx
3. Determinar I =
menor que 10 4 .
4. Calcular I =
x ln( x)dx
5. Calcular os valores das integrais dos exerccios 3 e 4 pela regra de Gauss de 5 pontos.
Compare os resultados obtidos.
I = f ( x, y) dx dy
R
k
y0
x
x0
x1
h
Nestas condies, I =
f ( x, y) dx dy = xx 2 yy 2
R
x2
161
Clculo Numrico
6 Integrao Numrica
x y
x k
I = x 2 y 2 f ( x, y) dy dx x 2 [ f ( x, y 0 ) + 2 f ( x, y1 ) + f ( x, y 2 )] dx =
0
0
02
2k x 2
k x2
k x2
f ( x, y1 ) dx + x f ( x, y 2 ) dx
= x f ( x, y 0 ) dx +
2 0
2 x0
2 0
Mas:
h
[ f ( x 0 , y 0 ) + 2 f ( x1 , y 0 ) + f ( x 2 , y 0 )]
0
2
h
xx 2 f ( x, y1 ) dx = [ f ( x 0 , y1 ) + 2 f ( x1 , y1 ) + f ( x 2 , y1 )]
0
2
h
xx 2 f ( x, y 2 ) dx = [ f ( x 0 , y 2 ) + 2 f ( x1 , y 2 ) + f ( x 2 , y 2 )]
0
2
xx 2 f ( x, y 0 ) dx =
Portanto, o valor de I, calculado pela regra dos trapzios, pode ser escrito como:
I=
kh
[ f ( x 0 , y 0 ) + 2f ( x1 , y 0 ) + f ( x 2 , y 0 ) + 2 f ( x 0 , y1 ) + 4f ( x1 , y1 ) + 2 f ( x 2 , y1 ) + f ( x 0 , y 2 ) + 2f ( x1 , y 2 ) + f ( x 2 , y 2 )]
22
EXERCCIOS DE PROGRAMAO
1. A regra de Simpson para calcular I = a f ( x)dx pode ser escrita como:
b
I=
h
[ f ( x 0 ) + 4 f ( x1 ) + 2 f ( x 2 ) + 4 f ( x 3 ) + 2 f ( x 4 )+...+2 f ( x n 2 ) + 4 f ( x n 1 ) + f ( x n )
3
b a 4 iv
ba
h f () , com (a, b) e n =
deve ser um inteiro
180
h
par.
i =1
Clculo Numrico
6 Integrao Numrica
-0.7966664774
-0.9602898564
+0.1834346424
+0.5255324099
+0.7966664774
+0.9602898564
0.2223810344
0.1012285362
0.3626837833
0.3137066458
0.2223810344
0.1012285362
3. A regra dos trapzios com passo h para resolver o problema: I = a f ( x) dx pode ser
escrita como:
b
h
I [ f ( x 0 ) + 2 f ( x1 ) + 2 f ( x 2 )+...+2 f ( x n 1 ) + f ( x n )]
2
Implementar a regra dos trapzios na forma de uma funo com os seguintes
parmetros:
I = TRAPEZIO(A,B,H)
onde: A e B so os limites de integrao, H o passo e I o valor calculado para a
integral.
A seguir implementar o seguinte algoritmo para o clculo de I com preciso :
1. Determinar a aproximao I1 para o valor da integral chamando a funo
TRAPEZIO com passo h = b-a. Fazer T(1,1) = I1.
2. Fazer i = 1, j = 2 e k = j.
3. Se i = 1 ento determinar a aproximao I2 para o valor da integral chamando a
funo TRAPEZIO com passo h =
ba
2 k 1
1
I 2 = i 1
(4 i 1 T(i 1, k + 1) T(i 1, k )) .
4
1
4. Fazer T(i,k) = I2.
5. Se | I2 - I1 | < ento o valor I da integral igual a I2 e o algoritmo termina.
Caso contrrio, fazer:
I1 = I2
Se k = 1 ento fazer i = 1, j = j + 1 e k = j. Caso contrrio fazer i = i + 1 e k = k - 1.
Voltar ao passo 3.
Teste o programa na soluo do seguinte problema:
4. A regra de Simpson para resolver o problema I = f ( x)dx pode ser escrita como:
a
163
Clculo Numrico
6 Integrao Numrica
I S( h) =
h
[ f + 4 f1 + 2 f 2 + L + 2 f n 2 + 4 f n 1 + f n ]
3 0
onde:
n um inteiro par;
fi representa f(xi); e
S(h) indica a aproximao de Simpson com passo h.
1
h
[S( h / 4 ) S( h / 2 )]
15
ba
onde S(h/4) e S(h/2) so aproximaes de Simpson com passo h/4 e h/2,
respectivamente. Com esta relao pode-se estabelecer o seguinte algoritmo para
determinar o valor de I:
1) Fazer inicialmente h = b-a
2) Calcular as aproximaes S(h/4) e S(h/2)
3) Verificar se a relao acima est satisfeita. Caso esteja, o valor de S(h/4) a
aproximao desejada para o valor de I. Se a relao no for satisfeita, dividir h ao
meio e voltar ao passo 2.
Elaborar um programa que implemente este algoritmo. O clculo das aproximaes de
Simpson deve ser feito por uma funo, tendo o passo h como parmetro. Mostrar o
valor de I e o valor do passo usado para obt-lo.
164
Clculo Numrico
7. RESOLUO NUMRICA DE EQUAES DIFERENCIAIS ORDINRIAS
7.1 - Introduo
Muitos fenmenos fsicos podem ser modelados atravs de equaes diferenciais:
equaes que envolvem uma funo e algumas de suas derivadas. Uma equao que
envolve derivadas de at ordem n chamada equao diferencial de ordem n e pode ser
escrita como:
(7.1)
A soluo desta equao uma funo y = f(x) definida em [a, b], com n derivadas e que
satisfaz a equao (7.1).
Exemplo. A soluo da equao diferencial de 2 ordem:
y '' = - y
a funo y(x) = sen(x) + cos(x), pois:
y(x) = sen(x) + cos(x) y'(x) = cos(x) - sen(x) y"(x) = -sen(x) - cos(x)
Logo: y''(x) = - (sen(x) + cos(x)) = -y(x)
Se a funo de uma s varivel (como no exemplo acima) tem-se uma equao
diferencial ordinria. Do contrrio, tem-se uma equao diferencial parcial.
Exemplos:
a) y' = y + x 2
b)
c)
d)
e)
y' = y 2
y' = 2x + 3
y" = - 3y' + 17y
yy" + xy' = 0
y = f ( x)dx
12
4 4
3
+ c
integral
indefinida
y = (2 x + 3)dx = x 2 + 3x + c
Portanto, como c pode ser uma constante qualquer, tem-se uma famlia de solues, como
ilustra a figura a seguir.
165
Clculo Numrico
c=5
c=3
c=1
y
20
15
10
5
x
-6
-4
-2
Se para a equao (c) for conhecido, por exemplo, que y(0) = 1 (condio inicial), ento a
soluo da equao unvoca, pois desta forma fica estabelecido o valor da constante c
(no caso, c = 1). Em geral, para especificar uma das solues de uma famlia de solues
para a equao (7.1) preciso impor condies adicionais da forma:
y(a) = v1;
(condies iniciais)
(7.2)
A equao (7.1) com as condies (7.2) denominada problema de valor inicial (PVI). Na
soluo de um PVI, portanto, procura-se uma funo y(x) que alm de satisfazer a equao
diferencial para valores de x > a, atenda s condies iniciais pr-estabelecidas.
Outra categoria de problemas associada equao (7.1) a dos problemas de valor de
contorno (PVC). Para um PVC, alm de condies no incio do fenmeno (ou seja,
condies para x = a), tem-se tambm condies a serem satisfeitas no final do fenmeno
modelado pela equao diferencial (ou seja, condies para x = b).
Infelizmente, dispe-se de poucas tcnicas matemticas gerais que possibilitem solues
analticas de tais problemas. Por exemplo, para o problema de valor inicial:
y' = x 2 + y 2 ;
y(0) = 1
no se conhece uma tcnica para obter uma soluo analtica. Em casos assim, preciso
ento pensar em tcnicas de aproximao. A soluo aproximada do problema ser uma
tabela de pontos: {(x i , y i ), i = 0,1, ..., n} representando a funo y = f(x) desconhecida.
Mesmo no caso de uma soluo analtica ser possvel, pode ser difcial avaliar f(x) para um
dado valor de x. Por exemplo, o problema:
y' = 1 + 2xy ;
tem como soluo: y( x) = e
x2
e t dt .
y(0) = 0
Clculo Numrico
y(0) = 1
y' (0) = 0
Fazendo: y1 (x) = y(x) , y 2 (x) = y' (x) e y 3 (x) = y' ' (x) tem-se o seguinte sistema:
y'1 (x) = y 2 ( x )
y' 2 ( x ) = y 3 ( x )
y'3 ( x ) = xy 2 ( x ) + e x y1 ( x ) + x 2 + 1
com as condies iniciais: y1 (0) = 1,
y 2 (0) = 0, y 3 (0) = 1 .
h2
y( x i + 1 ) = y( x i + h) = y( x i ) + hy '( x i ) +
y"()
2
( x i , x i +1 )
y i +1 y i + h.f(x i , y i )
(i = 0,1, ... )
Portanto, com esta expresso do mtodo de Euler, conhecido o valor y 0 (condio inicial)
possvel determinar outros valores yi (i = 1,2, ...) para a funo y(x) nos pontos xi.
Mtodos como o de Euler em que os valores de yi podem ser obtidos diretamente so
denominados mtodos explcitos. Alm disto, como yi obtido atravs do ponto
imediatamente precedente apenas, tal mtodo conhecido como de passo simples.
167
Clculo Numrico
y
yi+1
y = f(x)
yi
x
xi
xi+1
y
y i y i +1 y i
y' ( x i ) = f ( x i , y i ) = tg = i +1
=
x i +1 x i
h
y i + 1 = y i + hf ( x i , y i )
y(x)
1.00
1.50
2.02
2.56
3.12
3.70
Com h = 0.01, os valores obtidos sero mais precisos. A tabela a seguir mostra tais
valores, onde o valor correto dado por: x 2 + 3x - 3 .
x
1.0
1.1
1.2
1.3
1.4
1.5
y(x)
1.000
1.509
2.038
2.587
3.156
3.747
168
correto
1.000
1.510
2.040
2.590
3.160
3.750
Clculo Numrico
y" = y;
x 0;
y(0) = 1;
y' (0) = - 1
y'1 = f1 (x, y1 , y 2 ) = y 2
y' 2 = f 2 (x, y1 , y 2 ) = y1
y1 (0)
y 2 (0)
y1 (x 0 ) = y1 (0.0) = 1.00
y 2 (x 0 ) = y 2 (0.0) = 1.00
xi
y1 ( x i )
y 2 (x i )
correto
0
1
2
3
4
5
0.0
0.2
0.4
0.6
0.8
1.0
1.0000
0.8000
0.6400
0.5120
0.4096
0.3277
-1.0000
-0.8000
-0.6400
-0.5120
-0.4096
-0.3277
1.0000
0.8187
0.6703
0.5488
0.4493
0.3678
Clculo Numrico
x x0
(x x0 ) 2
( x x 0 ) n ( n)
F( x) = F( x 0 ) +
F' ( x 0 ) +
F"( x 0 )+...+
F (x0 ) + ET
1!
2!
n!
Mas:
F( x 0 ) = y 0
F ' (x 0 ) = y' (x 0 ) = f (x 0 , y 0 ) = y 0 '
F ' ' ( x 0 ) = y' ' ( x 0 ) = y 0 ' '
...
As derivadas y'', y''', ... no so conhecidas, uma vez que F(x) no conhecida. Contudo,
se f(x,y) for suficientemente derivvel tais derivadas podem ser determinadas da seguinte
maneira:
y' = f ( x, y( x)) = f
y" = f ' ( x, y( x)) =
f dy f
.
+
= fy f + fx
y
dx
x
{
{
{
f y y'= f
y (3) =
fx
( f y f ) dy ( f y f ) f x
. +
+
y {
dx
x
y
f
dy f x
+
= f yy f 2 + f y2 f + 2 f xy f + f x f y + f xx
dx
x
{
f
e assim sucessivamente.
Exemplo:
y' = x + y 2
com
y(0) = 1.
y'0 = f(x 0 , y 0 ) = 0 + 12 = 1
y' '0 = 2y 0 y' 0 + 1 = 2.1.1 + 1 = 3
y' ' ' 0 = 2(y'0 ) 2 + 4(y 0 ) 2 y' 0 + 2y 0 = 2.(1) 2 + 4.(1) 2 .1 + 2.1 = 8
Logo:
170
Clculo Numrico
(x x 0 ) 2
(x x 0 )3
y( x ) = y 0 + ( x x 0 ) y'0 +
y' ' 0 +
y' ' ' 0 + E T
2!
3!
4
3
( x 0) 3
(x 0) 2
.8 = 1 + x + x 2 + x 3
.3 +
y( x ) 1 + (x 0).1 +
3
2
6
2
Exemplo: O problema de valor inicial y' = y 2 ; x [0, 1]; y(0) = 0.25, tem como soluo:
y( x) =
1
4x
Determinar o valor de y(0.2). Neste caso, pela srie de Taylor pode-se escrever:
x
y( x) y 0 + xy 0' +
Mas:
3
( 3)
" x
y0 +
y0
y 0 = 0.25
y'0 = (y 0 ) 2 = (0.25) 2 = 0.0625
y 0 ' ' = f y f + f x = 2y 0 y'0 + 0 = 2.(0.25).(0.0625) = 0.03125
(0.2) 2
(0.2) 3
(0.03125) +
(0.0234375) = 0.263156
2
6
1
= 0.263157
4 0.2
com y(x 0 ) = y 0
pode-se escrever:
xi
x i 1
y' ( x)dx = y] x i = y( x i ) y( x i 1 ) = y i y i 1
i 1
x
Clculo Numrico
xi
x i 1
h
y' ( x)dx = [ y'( x i 1 ) + y'( x i )] + E T
2
Para que yi seja obtido iterativamente necessrio uma estimativa inicial y i . Muitas
escolhas so possveis para a estimativa inicial. Alguns exemplos so:
yi
h
[ n 1]
= y i 1 + [ f ( x i 1 , y i 1 ) + f ( x i , y i
)]
2
( n = 1,2,...)
ou seja:
[ n]
yi
[ n 1]
= ( y i
h
h
) onde: ( y i ) = y i 1 + f ( x i 1 , y i 1 ) + f ( x i , y i )
2424444
1444
3 2
independe de y i
Pelo teorema de convergncia para a iterao funcional (ver Captulo 2 - Mtodo de Ponto
Fixo), deve-se ter:
d
<1
dy i
para que haja convergncia do processo iterativo. Portanto, deve-se ter que:
d
h f ( x , y )
=
<1
x= x j
dy i
2
y
y= y j
ou seja, para garantir a convergncia do processo iterativo, o passo h dever ser tal que:
h<
2
f ( x , y )
x=x j
y
y=y j
Clculo Numrico
Neste caso:
f
2
= 2y h <
y
2y
h<
1
y
1
= 4 . Assim, a escolha h = 0.2 deve ser suficiente
0.25
y 0 = 0.25
0.2
[(0.25) 2 + (0.2625) 2 ] = 0.263141
2
0.2
= 0.25 +
[(0.25) 2 + (0.263141) 2 ] = 0.263174
2
0.2
= 0.25 +
[(0.25) 2 + (0.263174) 2 ] = 0.263176
2
0.2
= 0.25 +
[(0.25) 2 + (0.263176) 2 ] = 0.263176
2
y1[1] = 0.25 +
y1[ 2]
y1[3]
y1[ 4]
1
= 0.263157 ).
4 0.2
h2
y i +1 = y( x i +1 ) = y( x i + h) = y( x i ) + hy'( x i ) +
y"( x i ) + E T
2
Como y'(x) = f(x,y) tem-se:
173
Clculo Numrico
h 2 df ( x, y)
y i +1 y( x i ) + hf ( x i , y i ) +
2
dx x = x
Para calcular
p( x ) =
df ( x, y)
seja o polinmio interpolador de 1 grau no intervalo [xi, xi+1]:
dx
x x i +1
.y( x i ) +
x i x i +1
1424
3
h
x xi
1
.y( x i +1 ) = [(x x i ) y(x i +1 ) ( x x i +1 ) y( x i )]
h
x i +1 x i
14
24
3
h
Portanto:
p'( x) =
1
[ y( x i + 1 ) y( x i )]
h
df ( x , y) 1
[f ( x i +1 , y i +1 ) f ( x i , y i )]
dx
h
Ento:
y i + 1 y( x i ) + hf ( x i , y i ) +
h2 1
h
h
. [ f ( x i + 1 , y i + 1 ) f ( x i , y i )] = y i + f ( x i , y i ) + f ( x i + 1 , y i + 1 )
2 h
2
2
h
y i +1 = y i + [ f ( x i , y i ) + f ( x i +1 , y i + hf ( x i , y i ))]
2
Fazendo:
k 1 = hf ( x i , y i )
k 2 = hf ( x i + 1 , y i + hf ( x i , y i )) = hf ( x i + 1 , y i + k 1 )
tem-se:
1
y i +1 = y i + [ k 1 + k 2 ]
2
xi
yi
k1
k2
0
1
2
3
4
5
0.0
0.2
0.4
0.6
0.8
1.0
2.00000
1.66000
1.41720
1.25410
1.15636
1.11222
-0.40000
-0.29200
-0.20344
-0.13082
-0.07127
-
-0.28000
-0.19360
-0.12275
-0.06466
-0.01702
-
Clculo Numrico
y' ' = x + y;
x [0,1]
h = 0.2
y1 = y e y 2 = y'
Com essa troca de variveis, tem-se o seguinte sistema de equaes:
y'1 = y 2
y ' = f ( x , y1 , y 2 ) = y 2
1 1
y1 (0) = 1
y 2 (0) = 0
1
y1 (0.2) = y1 (0.0) + (k11 + k12 )
2
1
k1 = hf 1 (0.0, y1 (0.0), y 2 (0.0)) = 0.2 y 2 (0.0) = 0
k12 = hf1 (0.0 + h, y1 (0.0) + k11 , y 2 (0.0) + k12 ) = 0.2 ( y 2 (0.0) + k12 )
1
y 2 (0.2) = y 2 (0.0) + (k12 + k 22 )
2
2
k1 = hf 2 (0.0, y1 (0.0), y 2 (0.0)) = 0.2 (0.0 + y1 (0.0)) = 0.2 (0 + 1) = 0.2
k 22 = hf 2 (0.0 + h, y1 (0.0) + k11 , y 2 (0.0) + k12 ) = 0.2 (0.2 + y1 (0.0) + k11 )
Substituindo os valores conhecidos, tem-se:
k11 = 0
k12 = 0.2 ( y 2 (0.0) + k12 ) = 0.2 (0 + 0.2) = 0.04
1
1
y1 (0.2) = y1 (0.0) + (k11 + k12 ) = 1 + (0 + 0.04) = 1.02
2
2
k12 = 0.2
k 22 = 0.2 (0.2 + y1 (0.0) + k11 ) = 0.2 (0.2 + 1 + 0) = 0.24
1
1
y 2 (0.2) = y 2 (0.0) + (k12 + k 22 ) = 0 + (0.2 + 0.24) = 0.22
2
2
para x = 0.4 temos:
1
y1 (0.4) = y1 (0.2) + (k11 + k12 )
2
1
k1 = hf 1 (0.2, y1 (0.2), y 2 (0.2)) = 0.2 y 2 (0.2) = 0.2 (0.22) = 0.044
k12 = hf1 (0.2 + h, y1 (0.2) + k11 , y 2 (0.2) + k12 ) = 0.2 ( y 2 (0.2) + k12 )
175
Clculo Numrico
1
y 2 (0.4) = y 2 (0.2) + (k12 + k 22 )
2
2
k1 = hf 2 (0.2, y1 (0.2), y 2 (0.2)) = 0.2 (0.2 + y1 (0.2)) = 0.2 (0.2 + 1.02) = 0.244
k 22 = hf 2 (0.2 + h, y1 (0.2) + k11 , y 2 (0.2) + k12 ) = 0.2 (0.4 + y1 (0.2) + k11 )
Substituindo os valores conhecidos, tem-se:
k11 = 0.044
k12 = 0.2 ( y 2 (0.2) + k12 ) = 0.2 (0.22 + 0.244) = 0.0928
1
1
y1 (0.4) = y1 (0.2) + (k11 + k12 ) = 1.02 + (0.044 + 0.0928) = 1.0884
2
2
k12 = 0.244
k 22 = 0.2 (0.4 + y1 (0.2) + k11 ) = 0.2 (0.4 + 1.02 + 0.044) = 0.2928
1
1
y 2 (0.4) = y 2 (0.2) + (k12 + k 22 ) = 0.22 + (0.244 + 0.2928) = 0.4884
2
2
e assim sucessivamente para os demais valores de x = 0.6, 0.8 e 1.0.
Ou seja, a soluo pode ser resumida na seguinte tabela (observe que como y1 = y , a
soluo numrica corresponde coluna de y1 ( x i ) ):
xi
y1 ( x i )
y 2 (x i )
0
1
2
3
4
5
0.0
0.2
0.4
0.6
0.8
1.0
1.0000
1.0200
1.0884
0.0000
0.2200
0.4884
correto = e x i x i
1.0000
1.0214
1.0918
y i +1 = y i +
onde:
k i = hf ( x j + i h, y j +
wiki
i =1
i 1
i, p k p ) (i = 1,2,..., n)
p =1
e os coeficientes wi, i e i, p (i = 1,2, ..., n; p = 1,2, ..., i-1) so escolhidos de modo que a
expanso de yi+1 pela srie de Taylor considere at n termos.
Para n = 2 (mtodo de Runge-Kutta de 2 grau) tem-se:
176
Clculo Numrico
y i +1 = y i +
com:
wiki
i =1
w 1 = w 2 = 1/2 ;
= y i + w 1k 1 + w 2 k 2
1 = 0 , 2 = 1 ;
2,1 = 1
2 1
1
1
y i +1 = y i + hf ( x i + 0{ h, y i ) +
hf ( x i + 1{ h, y i + 2, p k p ) =
2
2
{
{
p =1
1
2
w 1 1442443 w 2 1444442444443
k1
k2
1
1
= y i + hf ( x i , y i ) + hf ( x i + 1 , y i + 1{ k 1 )
2
2
2,1
y i +1 = y i +
com:
wi ki
i =1
= y i + w 1k 1 + w 2 k 2 + w 3 k 3
k 1 = hf ( x i + 1h, y i )
k 2 = hf ( x i + 2 h, y i + 2,1k 1 )
k 3 = hf ( x i + 3 h, y i + 3,1k 1 + 3,2 k 2 )
onde:
w1 =
1
6
1 = 0
2,1 =
1
2
2
3
1
2 =
2
w2 =
w3 =
1
6
3 = 1
3,1 = 1
3,2 = 2
ou seja:
1
y i +1 = y i + [ k 1 + 4 k 2 + k 3 ]
6
com:
k 1 = hf ( x i , y i )
k
h
k 2 = hf ( x i + , y i + 1 )
2
2
k 3 = hf ( x i + h, y i k 1 + 2 k 2 )
1
y i +1 = y i + [ k 1 + 2 k 2 + 2 k 3 + k 4 ]
6
com:
k 1 = hf ( x i , y i )
k
h
k 2 = hf ( x i + , y i + 1 )
2
2
k2
h
k 3 = hf ( x i + , y i +
)
2
2
k 4 = hf ( x i + h, y i + k 3 )
177
Clculo Numrico
Observao:
Seja y' = f(x) (ou seja, o lado direito da equao diferencial uma funo que no
depende de y(x)). Neste caso, para o mtodo de Runge-Kutta de 3 grau tem-se:
h
k 2 = hf ( x i + )
2
k 1 = hf ( x i )
k 3 = hf ( x i + h)
e portanto:
h
h
y i +1 = y i + [ f ( x i ) + 4 f ( x i + ) + f ( x i + h)]
6
2
Por outro lado:
x i +1
f ( x)dx =
xi
x i +1
y'( x)dx = y i + 1 y i
xi
Logo:
x i +1
xi
h
h
f ( x)dx = [ f ( x i ) + 4 f ( x i + ) + f ( x i + h)]
6
2
h
.
2
y i +1 =
j= 1
j= 0
j y i j+ 1 + h j f ( x i j + 1 , y i j + 1 )
144
42444
3
f i j+ 1
j= 1
j=1
Clculo Numrico
y( x i + 1 ) = y( x i ) +
x i +1
f ( x, y( x))dx
xi
x i +1
x i +1
(x xi )
( x x i 1 )
1
. f i 1 +
. f ]dx = y i + [ f i ( x x i 1 ) dx f i 1 ( x x i )dx]
y i +1 = y i + [
( x i x i 1 ) i
h
xi
xi
x i ( x i 1 x i )
x2
=
(
x
x
)
dx
i
2
x
i
x i +1
xi
x i2+1 x i2
x i+1
x i 1.x x =
x i 1 ( x i +1 x i ) =
i
2
2
x i2+1 x i2 2x i 1x i +1 + 2 x i 1x i
2
x x
x i x i x i 1x i +1 x i 1x i +1 + x i 1x i + x i 1x i
= i +1 i +1
=
2
1 3h 2
h2
h
y i +1 = y i + [
fi
f i 1 ] = y i + [3f i f i 1 ]
h 2
2
2
Notar que, considerando a forma geral vista anteriormente, o mtodo de Adams-Bashforth
de 2 grau pode ser escrito como:
y i +1 = 1y i + 2 y i 1 + h[1 f i + 2 f i 1 ]
onde: 1 = 1 ; 2 = 0 ; 1 = 3/2 ; 2 = -1/2
Para k = 3, o polinmio do 2 grau e tem-se o mtodo de Adams-Bashforth de 3 grau:
h
y i +1 = y i + [23f i 16f i 1 + 5f i 2 ]
12
179
Clculo Numrico
h
y i +1 = y i + [55f i 59 f i 1 + 37 f i 2 9 f i 3 ]
24
Para k = 5, o polinmio do 4 grau e tem-se o mtodo de Adams-Bashforth de 5 grau:
h
y i +1 = y i +
[1901f i 2774 f i 1 + 2616f i 2 1274 f i 3 + 251f i 4 ]
720
Observaes Importantes:
Pode-se notar que, medida que aumenta o grau do polinmio interpolador, aumentam
os coeficientes de f j (j = i, i-1, i-2, ..., i-k+1) e portanto o mtodo torna-se mais sensvel
a erros de arredondamento.
x i +1
xi
x i +1
x i +1
( x x i +1 )
(x xi )
1
fi +
f i +1 ]dx = y i + [ f i +1 ( x x i ) dx f i ( x x i +1 ) dx]
( x i x i +1 )
( x i +1 x i )
h
x
x
i
ou seja:
h
y i +1 = y i + [ f i + 1 + f i ]
2
Para k = 3 (mtodo de Adams-Moulton de 3 grau):
y i +1 = y i +
h
[5f + 8f i f i 1 ]
12 i + 1
h
y i +1 = y i + [9 f i + 1 + 19 f i 5f i 1 + f i 2 ]
24
Para k = 5 (mtodo de Adams-Moulton de 5 grau):
h
y i +1 = y i +
[251f i +1 + 646f i 264 f i 1 + 106f i 2 19 f i 3 ]
720
180
Clculo Numrico
Observao:
J os mtodos explcitos tem a vantagem de poder calcular yi+1 somente com base em
valores anteriores da soluo.
Pode-se, ento, combinar estes dois tipos de mtodos de modo a empregar as vantagens
de cada um. Esta combinao conhecida como mtodo de previso e correo, que
corresponde a:
Portanto, nos mtodos de previso e correo, o mtodo explcito (mtodo de AdamsBashforth) usado como frmula previsora e o mtodo implcito (mtodo de AdamsMoulton) corresponde frmula corretora.
Exemplo: y ' = y2
y(0) = 0.25
x [0, 1]
h = 0.2
1
y1 = y 0 + [ k 1 + k 2 ]
2
k 1 = hf ( x 0 , y 0 ) = 0.2(0.25) 2 = 0.012500
k 2 = hf ( x1 , y 0 + k 1 ) = 0.2(0.25 + 0.012500) 2 = 0.013781
1
Logo: y1 = 0.25 + [0.012500 + 0.013781] = 0.263141
2
(b) Previso: clculo de y 2 (Adams-Bashforth de 2 grau)
h
0.2
y 2 = y1 + [3f1 f 0 ] = 0.263141 +
[3.(0.263141) 2 (0.25) 2 ] = 0.277664
2
2
(c) Correo: clculo de y 2 (Adams-Moulton de 2 grau)
h
0.2
y 2 = y1 + [ f 2 + f1 ] = 0.263141 +
[( 0.277664) 2 + (0.263141) 2 ] = 0.277775
2
2
181
Clculo Numrico
1
= 0.277778
4 0.4
Deve-se observar que o passo de correo pode ser executado vrias vezes, at que se
consega um resultado considerado satisfatrio.
(x xi )2
y( x) = y( x i ) + ( x x i ) y' ( x i ) +
y"( x i ) + ...
2!
(7.3)
( x i +1 x i ) 2
y( x i + 1 ) = y( x i ) + ( x i + 1 x i ) y'( x i ) +
y"( x i ) + ...
2!
h2
= y( x i ) + hy'( x i ) +
y"( x i ) + ...
2
ou seja:
y( x i + 1 ) y( x i )
h
= y'( x i ) + y"( x i ) + ...
h
2
Tem-se, portanto:
y' ( x i ) =
y( x i +1 ) y( x i )
+ O(h)
h
onde O(h) (lido como ordem de h) indica que a magnitude dos termos restantes depende da
ordem de grandeza do valor de h.
Assim, pode-se escrever:
y'( x i )
y( x i +1 ) y( x i )
h
Diz-se, neste caso, que y' (x) aproximada por uma diferena finita ascendente, com erro
da ordem de h.
Se na equao (7.3) substituirmos x por x i1 tem-se:
( x i 1 x i ) 2
y( x i 1 ) = y( x i ) + ( x i 1 x i ) y'( x i ) +
y"( x i ) + ...
2!
h2
= y( x i ) hy'( x i ) +
y"( x i ) + ...
2
e portanto:
y'( x i )
y( x i ) y( x i 1 )
h
182
Clculo Numrico
e, neste caso, diz-se, que y' (x) aproximada por uma diferena finita descendente, com
erro tambm da ordem de h.
Uma terceira aproximao para y' (x) pode ser obtida subtraindo-se a expresso para
y( x i1 ) da expresso para y( x i+1 ), ou seja:
y( x i + 1 ) y( x i 1 ) = 2 hy' ( x i ) + O( h 3)
Portanto:
y' ( x i ) =
y( x i +1 ) y( x i 1 )
+ O( h 2 )
2h
Logo:
y'( x i )
y( x i + 1 ) y( x i 1 )
2h
Neste caso, diz-se que y' (x) aproximada por uma diferena finita central. Deve-se
observar, entretanto, que nesta aproximao o erro da ordem de h 2 (menor, portanto,
que o erro das aproximaes anteriores, se h < 1).
Pode-se obter uma aproximao para a derivada segunda, somando-se as expresses
para y( x i1 ) e y( x i+1 ):
y( x i 1 ) + y( x i +1 ) = 2 y( x i ) + h 2 y" ( x i ) + O( h 4 )
ou seja:
y"( x i )
y( x i 1 ) 2 y( x i ) + y( x i +1 )
h2
Esta expresso aproxima o valor de y' ' (x) com erro da ordem de h 2 . Aproximaes para
derivadas de ordens mais altas podem ser obtidas de forma anloga.
O mtodo das diferenas finitas para soluo de equaes diferenciais decorre da
substituio, na equao, das derivadas da funo pelas suas correspondentes
aproximaes por diferenas finitas. Considerando a notao y i para designar o valor de
y( x i ), tem-se ento:
Derivada
Primeira
Segunda
Aproximao
y
yi
y' i i +1
h
y i y i 1
y' i
h
y y i 1
y'i i +1
2h
y 2 y i + y i +1
y' ' i i 1
h2
183
Ordem do Erro
h
h
h2
h2
Clculo Numrico
Exemplo. Usando o mtodo das diferenas finitas, obter uma soluo aproximada para o
seguinte problema de valor de contorno:
y" y'+ xy = e x (x 2 + 1)
y(0.0) = 0.00
y(1.0) = 2.71
x [0,1]
Para resolver o problema pelo mtodo das diferenas finitas, deve-se inicialmente
discretizar o domnio. Para o caso acima, seja n = 5 o nmero de subintervalos do domnio
[0, 1]. Neste caso:
h=
onde:
b a 1 0
=
= 0.2
n
5
xi
yi
0
1
2
3
4
5
0.0
0.2
0.4
0.6
0.8
1.0
0.00
?
?
?
?
2.71
y i 1 2 y i + y i + 1 y i +1 y i 1
+ x i y i = e x i ( x i2 + 1)
2
2h
h
i = 1, 2, 3, 4
ou seja:
(2 + h) y i 1 + (2 h 2 x i 4) y i + (2 h) y i + 1 = 2 h 2 e x i ( x 2i + 1)
i = 1, 2, 3, 4
Tem-se ento:
i = 1 (2 h 2 x1 4) y1 + (2 h) y 2 = 2 h 2 e x1 ( x12 + 1) (2 + h) y 0
i = 2 (2 + h) y1 + (2 h 2 x 2 4) y 2 + (2 h) y 3 = 2 h 2 e x 2 ( x 22 + 1)
i = 3 (2 + h) y 2 + (2 h 2 x 3 4) y 3 + (2 h) y 4 = 2 h 2 e x 3 ( x 23 + 1)
i = 4 (2 h 2 x 4 4) y 4 + (2 h) y 5 = 2 h 2 e x 4 ( x 24 + 1) (2 h) y 5
184
Clculo Numrico
3.984
.
y1
.
18
0
0
0102
.
y2
.
2.2
18
0
0138
3.968
=
.
y3
.
0
2.2
3.952
18
0198
y4
0
0
2.2
3.936
4.601
Resolvendo o sistema, tem-se os valores correspondentes soluo aproximada. A tabela
a seguir compara os valores obtidos para a soluo aproximada com os valores obtidos
atravs da soluo analtica y(x) = x e x .
i
xi
y i aproximado
y i exato
0
1
2
3
4
5
0.0
0.2
0.4
0.6
0.8
1.0
0.0000
0.2434
0.5954
1.0917
1.7791
2.7183
0.0000
0.2443
0.5967
1.0933
1.7804
2.7183
EXERCCIOS RESOLVIDOS
1. Resolver o problema de valor inicial:
y' =
3x + 2 y
;
x
x 0 = 1.00
y 0 = 1.000
x1 = 1.10
y1
x 2 = 1.20
y2
x 3 = 1.30
y3
3 100
. + 2 1000
.
] = 0.500
100
.
3 110
. + 2 (0.500)
k 2 = hf ( x1 , y 0 + k 1 ) = 010
. f (110
. , 1000
.
0.500) = 010
. [
] = 0.391
110
.
1
1
y1 = y 0 + [ k 1 + k 2 ] = 1000
.
+ [0.500 0.391] = 0.555
2
2
k 1 = hf ( x 0 , y 0 ) = 010
. f (100
. , 1000
. ) = 010
. [
185
Clculo Numrico
010
.
010
.
Clculo de y3
Previso: y 3 = y 2 +
h
010
.
[3f 2 f1 ] = 0188
.
+
[3f (120
. , 0188
. ) f (110
. , 0.555)] = 0109
.
2
2
h
0.10
Correo: y 3 = y 2 + [ f 3 + f 2 ] = 0188
.
+
[ f (130
. , 0109
. ) + f (120
. , 0188
. )] = 0119
.
2
2
Logo, a soluo do problema a tabela:
x
y
x 0 = 1.00
y 0 = 1.000
x1 = 1.10
y1 = 0.555
x 2 = 1.20
y 2 = 0.188
x 3 = 1.30
y 3 = -0.119
2
y( x) = 2 x . A tabela a seguir mostra os valores da soluo exata, para efeitos de
x
comparao.
x
y
x 0 = 1.00
y 0 = 1.000
x1 = 1.10
y1 = 0.553
x 2 = 1.20
y 2 = 0.189
x 3 = 1.30
y 3 = -0.117
y(0) = 0, y(1) = 0;
h = 0.25
Soluo:
A soluo do problema uma tabela da forma:
x
y
x 0 = 0.00
y 0 = 0.000
x1 = 0.25
y1
x 2 = 0.50
y2
x 3 = 0.75
y3
x 4 = 1.00
y 4 = 0.000
y i 1 2y i + y i +1
y i +1 y i 1
+
2
+ y i = 30x i
2h
h2
186
(i = 1, 2, 3)
Clculo Numrico
ou seja:
(1 h) y i 1 + ( h 2 2) y i + (1 + h) y i +1 = 30h 2 x i
(i = 1, 2, 3)
( h 2 2) (1 + h)
0
y1
30h 2 x1
(1 h) ( h 2 2) (1 + h) y 2 = 30h 2 x 2
0
(1 h) ( h 2 2)
y3
30h 2 x 3
Substituindo os valores, tem-se:
194
.
125
.
0
y1
0.47
0.75 194
.
125
.
y 2 = 0.94
0
0.75 194
.
y3
141
.
y1
1586
.
y 2 = 2.085
y3
1533
.
x 0 = 0.00
y 0 = 0.000
x
y
x1 = 0.25
y1 = -1.586
x 2 = 0.50
y 2 = -2.085
x 3 = 0.75
y 3 = -1.533
x 4 = 1.00
y 4 = 0.000
EXERCCIOS PROPOSTOS
1. Dado o problema de valor inicial: xy' = x - y com y(2) = 2, obter uma aproximao
para y(2.4) pelo mtodo de previso e correo de 3 grau. Utilize h = 0.1 e o mtodo
de Runge-Kutta de 3 grau para as inicializaes necessrias. Para obter a soluo
analtica do problema e conferir os resultados, utilize as seguintes instrues do
programa Mathematica:
f[x_,y_] = (x y)/x
DSolve[y'[x] ==f[x,y[x]],y[x],x]
d2y
dx
dy
= (sin( x) + cos( x)) ;
dx
4. Calcular uma aproximao para y(0.6) pelo mtodo de Runge-Kutta de 3 grau, com
passo h = 0.2, sabendo que y ' = xy + 1 e y(0) = 1.
187
Clculo Numrico
5. Seja o problema de valor inicial dado por: y '' = 4y ' - 3y - x, com y(0) = 0.445 e y '(0) =
2.333. Transformar este problema em um conjunto de duas equaes ordinrias de 1
ordem e obter uma soluo aproximada utilizando o mtodo de Runge-Kutta de 2 grau.
6. Usar o mtodo das diferenas finitas para encontrar solues aproximadas para os
seguintes problemas de valor de contorno:
a) y' '+ y = 0 , com: x (0, 1); y(0) = 0, y(1) = 1; h = 0.2
b) y' ' + ( x + 1) y'2 y = (1 x 2 ) e x , com: x (0, 1); y(0) = 0, y(1) = 0; h = 0.2
EXERCCIOS DE PROGRAMAO
1. Implementar um mtodo de previso e correo de 4 grau para a soluo de equaes
diferenciais ordinrias de 1 ordem. Para a inicializao do mtodo, utilizar a frmula de
Runge-Kutta de 4 grau, dada por:
1
y i +1 = y i + [ k 1 + 2 k 2 + 2 k 3 + k 4 ]
6
onde:
k 1 = hf ( x i , y i )
k
h
k 2 = hf ( x i + , y i + 1 )
2
2
k2
h
k 3 = hf ( x i + , y i +
)
2
2
k 4 = f ( x i + h, y i + k 3 )
h
y i +1 = y i + [55f i 59 f i 1 + 37 f i 2 9 f i 3 ]
24
Para o clculo do valor corrigido utilizar a frmula de Adams-Moulton de 4 grau, dada
por:
h
y i +1 = y i + [9 f i + 1 + 19 f i 5f i 1 + f i 2 ]
24
Testar o programa na soluo do seguinte problema:
3x + 2 y
com x [1, 2], y(1) = 1 e h = 0.05
x
2
Neste caso a soluo exata do problema conhecida: y( x) = 2 x . Verificar quo
x
y' =
Clculo Numrico
r ' = 2 r 2 rf
f ' = f + rf
r (0) = 1; f (0) = 3
0 t 10
2y
x
y" y' 2 = 2 xe + e
x
y(0) = 0
y'(1) = e
pode ser modelado por meio do mtodo das diferenas finitas, usando diferena central
para aproximao das derivadas. Elaborar um programa que construa o sistema de
equaes lineares resultante, para um dado valor do passo h, encontre a soluo do
sistema e apresente os resultados.
4. O PVC a seguir:
2 V
2 V
+
=0
x 2 y 2
189