Você está na página 1de 197

Edson Luiz Frana Senne

(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

3. Soluo de Sistemas de Equaes Lineares


3.1 - Introduo ................................................................................................................... 45
Matrizes Especiais ...................................................................................................... 46
3.2 - Mtodos Diretos .......................................................................................................... 47
Mtodo da Eliminao de Gauss ................................................................................ 48
Determinao de Inversa de Matriz............................................................................. 53
Mtodo de Gauss-Jordan............................................................................................ 54
Refinamento Iterativo da Soluo ............................................................................... 56
3.3 - Mtodos Iterativos ....................................................................................................... 58
ii

Mtodo de Gauss-Jacobi ............................................................................................ 61


Mtodo de Gauss-Seidel............................................................................................. 61
Estudo da Convergncia dos Mtodos Iterativos ........................................................ 64
3.4 - Mtodos de Fatorao ................................................................................................ 67
Exerccios Resolvidos ......................................................................................................... 74
Exerccios Propostos........................................................................................................... 78
Exerccios de Programao ................................................................................................ 80

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

7. Resoluo Numrica de Equaes Diferenciais Ordinrias


7.1 - Introduo ................................................................................................................. 165
7.2 - Mtodo de Euler........................................................................................................ 167
7.3 - Mtodos Baseados na Srie de Taylor ..................................................................... 169
7.4 - Mtodos Baseados em Regras de Quadratura ......................................................... 171
7.5 - Mtodos de Runge-Kutta .......................................................................................... 173
7.6 - Mtodos de Passo Mltiplo ....................................................................................... 178
Mtodos Explcitos de Passo Mltiplo ....................................................................... 179
Mtodos Implcitos de Passo Mltiplo ....................................................................... 180
7.7 - Mtodos de Previso e Correo.............................................................................. 181
7.8 - Mtodo das Diferenas Finitas.................................................................................. 182
Exerccios Resolvidos ....................................................................................................... 185
Exerccios Propostos......................................................................................................... 187
Exerccios de Programao .............................................................................................. 188

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 - nmero de ponto flutuante


m - mantissa
b - base de numerao
e - expoente

Se b 1 m < 1, ento tem-se um nmero de ponto flutuante normalizado.


Exemplo:
a) b = 10

x = 721.5438

Existem vrias formas no normalizadas para representar x como um valor de ponto


flutuante. Por exemplo:
x = 721.5438 x 100 ou x = 72.15438 x 101.
Existe, entretanto, apenas uma forma normalizada: x = 0.7215438 x 103.

b) b = 2

x = 1101.01

Neste caso x corresponde ao valor decimal:

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:

Neste caso, tem-se:


Valores Possveis da
Mantissa
Binrio
Decimal
0.1111
0.9375
0.1110
0.8750
0.1101
0.8125
0.1100
0.7500
0.1011
0.6875
0.1010
0.6250
0.1001
0.5625
0.1000
0.5000

Valores Possveis do
Expoente
Binrio
Decimal
000
-4
001
-3
010
-2
011
-1
100
0
101
1
110
2
111
3

Notar que a representao do expoente corresponde representao binria de: e + 2 n 1 ,


onde n o espao disponvel para o expoente. Por exemplo: expoente = -2. Neste caso, a
representao do expoente -2 ser a representao binria de:
-2 + 2 3 1 = -2 + 4 = 2

ou seja: 010

Observe que neste caso:

o maior nmero representvel (em notao decimal) ser: x = 0.9375 x 2 3 = 7.5


o total de nmeros representveis dado por:
2 (+,-) x 8 (mantissas) x 8 (expoentes) + 1 (zero) = 129

1.2 Sistemas de Ponto Flutuante


Um sistema de ponto flutuante corresponde unio de todos os nmeros de ponto flutuante
representveis e escrito como F(b,m,n), onde:

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:

2 vezes corresponde a positivo e negativo;


(b-1) so os dgitos possveis na primeira posio da mantissa;
m 1 so os dgitos restantes da mantissa;

(b

( b n ) o total de expoentes possveis;


mais 1 corresponde ao valor zero.

Seja, por exemplo, F(2,3,2).


Logo, as mantissas possveis so: 0.100, 0.101, 0.110, 0.111 e os expoentes representveis
so: -2, -1, 0, 1. Neste caso, os nmeros positivos representveis so:

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 =

e assim por diante, at:

( 0111
.
21 ) = (111
. ) 2 = 1 2 0 + 1 2 1 + 1 2 2 =

7
4

A tabela a seguir resume os nmeros positivos representveis neste sistema de ponto


flutuante:

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:

entre 2 2 e 2 1 existem 4 valores: 1/8, 5/32, 3/16 e 7/32


entre 2 1 e 2 0 existem 4 valores: 1/4, 5/16, 3/8 e 7/16
entre 2 0 e 21 existem 4 valores: 1/2, 5/8, 3/4 e 7/8

Portanto, pode-se definir a densidade de nmeros representveis entre potncias sucessivas


da base como:

densidade =

( b 1)( b m 1 )
b k b k 1

com k = ..., -1, 0, 1, ...

Para o exemplo acima tem-se:


k
-1
0
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:

EA = x x* , onde: x o valor verdadeiro e x* o valor aproximado.


Erro Relativo:

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

= 10 9 , ou seja, um erro de 106 numa quantidade de 1015 no

significativo (pois 109 um valor pequeno).


b) Um erro absoluto E A = 0 .00001 em um valor x* = 0.00005 significativo?
Neste caso, E R =

0.00001
= 0.2 , ou seja, o erro da aproximao de 20% e portanto,
0.00005

significativo.

1.3 Aritmtica de Ponto Flutuante


Algumas leis da aritmtica que valem em R (conjunto dos nmeros reais) no valem para a
aritmtica em F (conjunto dos nmeros de ponto flutuante). Seja, por exemplo, F(2,3,2).
a) x = 5/4

y = 3/8

x + y = 5/4 + 3/8 = 13/8 F (notar que a representao normalizada de 13/8 =

x21) 2 F, porque requer 4 dgitos na mantissa).


(01101
.
b) x = 5/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

x = 9/8 F pois 9/8 = ( 01001


x 21 ) 2 e portanto possui um dgito a mais na mantissa do que o
.
mximo permitido. Assim, ( 01001
.
x 21 ) 2 precisa ser arredondado para: ( 0100
.
x 21 ) = 1. ou
5
para: ( 0101
.
x 21 )

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

1.25 - 1.125 = 0.125 (erro por excesso)

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

(a1 - a2) - (E1 + E2) v1 - v2 (a1 - a2) + (E1 + E2)


e portanto:
| (v1 - v2) - (a1 - a2) | (E1 + E2)
ou seja: o erro absoluto da subtrao menor ou igual soma dos erros absolutos das
parcelas.
Para o erro relativo tem-se:

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

ou seja: o erro relativo da subtrao igual ao produto de um fator =

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.

Exerccio: Mostre que as relaes a seguir, so vlidas para as operaes de multiplicao e


diviso.
2. MULTIPLICAO

E a1E2 + a2 E1
r r1 + r 2
d) DIVISO

a1 E1 E2
( +
)
a2 a1 a2
r r1 + r 2
E

1.4 Dgitos Significativos Exatos


Os resultados numricos obtidos atravs do computador so, em geral, valores aproximados.
A questo : Qual o valor exato? Esta questo, geralmente, no pode ser respondida, e
dessa forma fica impossvel calcular o valor do erro absoluto e, consequentemente, o valor do
erro relativo. Entretanto, possvel avaliar o resultado, ou seja, saber o quo exato o valor
aproximado.
Seja x um nmero de ponto flutuante normalizado. Define-se o nmero de dgitos significativos
de x como sendo o nmero de dgitos aps o ponto decimal.
7

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

= 0.0000499 < 0.00005 = 0.5 10 4

Logo: a = 0.6667 tem os 4 dgitos significativos exatos.


b) v = 2/3

ER =

a = 0.66998

2
0.66988
3
0.66998

= 0.00494 < 0.005 = 0.5 102

Logo: a = 0.66998 tem apenas os 2 primeiros dgitos significativos como exatos.


Na prtica, com a impossibilidade de calcular o erro relativo exatamente, o teorema utilizado
para determinar o nmero de dgitos significativos exatos de um valor aproximado obtido
iterativamente, em relao ao valor aproximado disponvel na iterao anterior. Ou seja, o
nmero m de dgitos significativos exatos calculado aproximadamente como:

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

1.5 - Mal-Condicionamento e Instabilidade Numrica


8

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

tem como soluo: x1 = x2 = x3 = x4 = 1. Entretanto, se os valores do lado direito das


equaes forem modificados para: 32.1, 22.9, 32.9, 31.1, a soluo do sistema ir se alterar
para:
x1 = 6, x2 = -7.2, x3 = 2.9, x4 = -0.1
Neste caso, pode-se notar que pequenas alteraes no sistema modificaram radicalmente sua
soluo. Este , portanto, um problema mal-condicionado . importante ressaltar que o malcondicionamento uma propriedade do problema em si, e no do mtodo numrico usado
para resolv-lo.
Uma outra situao, quando o mtodo numrico usado para resolver o problema leva a
resultados no confiveis. Neste caso diz-se que existe um fenmeno de instabilidade
numrica . Portanto:

mtodo estvel - o erro final de arredondamento pequeno;


mtodo instvel - os erros de arredondamento individuais se propagam com efeito
crescente, comprometendo o resultado final.

Exemplo. Um mtodo iterativo para calcular os valores de:


n
1 x
I n = 0
dx
x+

( > 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 =

e assim por diante.


Portanto, com este outro mtodo, o erro vai diminuindo a cada iterao. Logo, este mtodo
iterativo estvel.

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

Assim, deve-se ter:

0.5 = ( R 2 E H + H( 2RE R )) = 31416


.
((10
. ) 2 E H + (12
. )(2 10
. 0.05)) . Portanto:
EH =

0.5 31416
.
0.12
0.04
31416
.

2. Pelo teorema de Taylor pode-se escrever:

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

Os erros cometidos no processo so:

(1 0) 5
e , para 0 < < 1.
5!

erro de truncamento, por no considerar o termo

erro de arredondamento, por trabalhar com 3 casas decimais.

Para determinar quantas casas decimais so confiveis necessrio calcular um limitante o


erro relativo correspondente. Para isto, em primeiro lugar deve-se calcular um limitante para o
erro absoluto, ou seja:

(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

0.5 101 pode-se confiar no resultado at a 1 a. casa decimal.

3. Considere um sistema de ponto flutuante com base b = 10, espao de armazenamento de


dgitos da mantissa m = 1, e apenas os expoentes -1, 0 e 1. Quantos nmeros de ponto
flutuante podem ser representados neste sistema? Apresente todos os nmeros positivos
representveis neste sistema. Calcule a densidade de nmeros representveis entre
potncias sucessivas da base para este sistema de ponto flutuante. Quais so os
resultados, neste sistema, das seguintes operaes:
a) 7/4 + 3/8
b) 1/60 - 3/5
Soluo:
Os nmeros positivos representveis neste sistema de ponto flutuante podem ser
mostrados na tabela a seguir:

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

Portanto, podem ser representados neste sistema:


(zero) + (27 nmeros positivos) + (27 nmeros negativos) = 55 nmeros representveis
As densidades de nmeros positivos representveis entre potncias sucessivas da base
so dadas por:

12

Clculo Numrico

1 Aritmtica Computacional

10 1

existem
100
9
9
9
d=
=
=
= 10
.
0.9
10 0 101 1 01

Entre

nmeros

Entre 100 e 101 existem 9 nmeros representveis d =

representveis

9
101 100

9
9
= =1
10 1 9

Para as operaes tem-se:


a)

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

3. Considere o sistema de ponto flutuante F(2,4,3). Quais so os nmeros positivos


representveis neste sistema? Quais so os resultados, neste sistema, das operaes:
a) 5.4 + 3.8
b) 3.4 + 5.8

4. Seja x n =
Mostre que: x n = ( 3001x n 1 1000 x n 2 ) / 3 . Trabalhando com 6 casas
n 1

decimais, gere os valores de x2, x3, x4 e x5 usando esta relao de recorrncia e os


valores iniciais x0 = 3 e x1 = 1. Comente sobre os resultados obtidos.
5. A equao polinomial x 3 3x + 2 = 0 tem razes x = 1 (raiz dupla) e x = -2. Comeando
com x0 = 0.9, encontre x1, x2, ..., x7 usando a equao de recorrncia:

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

Procure prever o valor de C. Em seguida implemente estes clculos num programa e


verifique o resultado.
2. Para determinar a preciso de um computador em representar nmeros "reais", pode-se
calcular o valor conhecido como Epsilon da Mquina, definido como sendo o maior nmero
E tal que 1 + E = 1. Para o clculo do Epsilon da Mquina pode-se comear com E igual a
1 e dividir o valor de E ao meio at que 1 + E = 1. Implemente um programa para isto.
3. A equao f(x) = x + ln(x) = 0 possui uma raiz x* prxima a x = 0.55. Considere a seguinte
equao de recorrncia:

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*).

4. Implementar o mtodo iterativo:

+ 1

I 0 = ln

In =

1
I n 1
n

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

para calcular os valores de: I n =


dx com > 0 e n = 0, 1, 2, ..., e verificar que
0 x+
para > 1, o mtodo instvel. Em seguida, implementar o mtodo na forma:

I n1 =

1 1

In

( n =...,2,1)

e, considerando I 30 = 0, verificar que este mtodo iterativo estvel.


15

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

A soluo de equaes por um mtodo iterativo requer:

uma estimativa inicial para o valor da raiz;


uma equao de recorrncia para a gerao de uma sequncia de valores que, espera-se,
convirja para a raiz.

So ainda importantes para um mtodo iterativo de soluo de equaes:


a) estabelecer sob que condies a sequncia de iteraes converge para a raiz;
b) sabendo-se que a iterao convergente, estabel ecer um critrio de parada para o
processo iterativo, o que ir depender da preciso que se deseja alcanar.
Alm disto, no caso de haver vrios esquemas iterativos, preciso ter uma medida da
eficincia computacional para escolher o melhor.
Neste captulo sero estudados alguns mtodos iterativos de soluo de equaes. Para a
determinao da estimativa inicial para o valor da raiz, pode-se empregar um mtodo grfico.
Exemplo. Estimar o valor de uma raiz positiva de sin( x)

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

2.2 Estimativa de Razes de Equaes Polinomiais


Uma equao polinomial da forma:
n

f ( x) = a n x n + a n 1x n 1+...+a1x + a 0 = a i xi = 0
i= 0

onde n o grau e ai (i = 0,1,...,n) so os coeficientes (reais) do polinmio. Uma equao


polinomial do grau n tem n razes (reais ou complexas).
n
Um polinmio f(x) = a i xi pode ser escrito na forma:
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)

Exemplo. Avaliar f(x) = x5 6x 3 + x 2 + 7 x 4 no ponto = 2. Neste caso, pode-se escrever:

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

Exemplo. Seja f ( x) = x5 6x 3 + x2 + 7x 4 e = 2. Neste caso, pode-se escrever:

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

corresponde a um polinmio de grau n-1 (polinmio reduzido).


i= 0
Assim, pode-se ter o seguinte esquema para resolver f(x) = 0, equao polinomial de grau n:

determinar x = , uma raiz de f(x) = 0;


determinar coeficientes b i (i = n-1, n-2, ..., 0);
repetir o processo para g(x) = 0.

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:

f '( x) = ( x ) g' ( x ) + g ( x ) f '( ) = g ( )

Exemplo. Seja f ( x) = x5 6x 3 + x2 + 7x 4 e = 2. Neste caso, pode-se escrever:

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

ENUMERAO DAS RAZES


a) Enumerao das Raizes Reais
Teorema (Descartes). O nmero de razes reais positivas de uma equao polinomial p(x)=0
no maior que o nmero de trocas de sinal na sequncia de seus coeficientes no nulos, e
se for menor, ento sempre por um nmero par.
Exemplo. Seja p( x) = x 3 + 2x2 3x 5
Sequncia de sinais: + + - - 1 troca. Logo: p(x) tem 1 raiz real positiva.

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).

b) Enumerao das Raizes Complexas


Teorema (Huat ). Dada uma equao polinomial p(x)=0 de grau n, se para algum k (1 k n)
tem-se:
a 2k a k + 1. a k 1
ento p(x) = 0 ter razes complexas.
Exemplos:
a) p( x) = 2x5 + 3x4 + x3 + 2x 2 5x + 3
Descartes:
p(x)
p(-x)

+
+

+
+

+
+

2 trocas
3 trocas

Portanto, os seguintes casos so possveis:


Raizes
Reais
Negativas Complexas
1
4
3
2
1
2
3
0

Reais
Positivas
0
0
2
2

Total
5
5
5
5

Mas, pelo teorema de Huat:

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

LOCALIZAO DAS RAZES REAIS


Para dar incio a um processo iterativo preciso uma estimativa para a raiz. Para isto
necessrio conhecer onde as razes esto localizadas.

localizao das razes reais: determinao dos limites a (inferior) e b (superior) de um


intervalo que contenha todas as razes.
localizao das razes complexas: determinao dos raios a (interno) e b (externo) de um
anel que contenha as razes complexas.
Regio das Razes Complexas

Regio das Razes Reais

Teorema (Laguerre ). Dado um polinmio p(x) e um nmero , seja:


p(x) = (x - )q(x) + R
Se os coeficientes de q(x) e R forem todos positivos ou nulos, ento as razes reais positivas
x i de p(x) so tais que x i < .
5
4
3
2
Exemplo: p( x) = x + x 9x x + 20x 12
Localizao das razes reais positivas de p(x) = 0
1
=1
1

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.

Localizao das razes reais negativas


Basta considerar o polinmio p( x) = x5 + x 4 + 9x 3 x2 20x 12 . Multiplicando-se por
1 (para que o coeficiente do termo de maior grau seja positivo), tem-se:
1
=1
1
1
=2
1
1
=3
1
1
=4
1

-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].

LOCALIZAO DAS RAZES COMPLEXAS


Teorema (Kojima ). Dado o polinmio p( x) = a n x n + a n 1x n 1+ ...+ a 1x + a 0 , toda raiz , real
ou complexa, de p(x) = 0 tal que:

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

ou seja: q1 = 1.6667 e q2 = 0.9085. Portanto a = 1/(1.6667 + 0.9085) = 0.3883. Ento, as


razes (reais ou complexas) de p( x) = x5 + x4 9x 3 x 2 + 20x 12 so tais que:
0.3883 | | 5.1147

2.3 Separao das Razes


A separao das razes de uma equao corresponde a encontrar uma sequncia de
subintervalos tais que:

cada subintervalo contm exatamente uma raiz real;


cada raiz real est contida em um subintervalo.

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

Teorema de Bolzano no se aplica: funo descontnua


y

b
x

Teorema (Budan). Seja p(x) um polinmio de grau n e p( k) () , o valor da derivada de ordem


k de p(x), calculada para x = . Seja V o nmero de variaes de sinal da sequncia:
p(), p'( ), p"(), ..., p( n) ()
Ento, o nmero de razes de p(x) = 0 no intervalo (a, b) igual ou menor que Va Vb
um mltiplo de 2.
Exemplo: p( x) = x 3 2x 2 x + 2
Descartes: + - - + 2 ou 0 razes reais positivas.
Laguerre:
1
-2
-1
1
1
1
-1
1
2
1
1
3
1

-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

Portanto: cota superior = 3. Seja o intervalo (0,3).

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

V0 V3 = 2 . Logo tem-se 2 ou 0 razes reais em (0, 3).

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.

Exerccio: Separar as raizes de p( x) = x 3 9 x2 + 20x + 1


importante ressaltar que nesta seo os resultados apresentados se aplicam apenas a
equaes polinomiais. Para funes transcendentes, como comentado anteriormente,
necessrio uma avaliao grfica da funo.
Exemplo: f (x) = e x x = 0
Avaliao Grfica:
y

y=x

y = exp(x)
x
0

Raiz [0, 1]

2.4 Mtodos Iterativos de Soluo de Equaes


Um mtodo iterativo de soluo de equaes requer:

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

Em geral, o critrio de parada combina um ou mais destes critrios bsicos.

ORDEM DE CONVERGNCIA DE UM MTODO ITERATIVO


Definio. Uma sequncia x0 , x1 , x2 ,... converge para x*, se dado > 0, existe um inteiro I
tal que, qualquer que seja i > I, x i x * < . Neste caso, tem-se que:

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

Problemas do Mtodo da Bisseco:

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.

Pode-se determinar a ordem de convergncia e a constante assinttica de erro do mtodo da


x + x i 1
, onde
bisseco. Seja x* uma raiz de f(x) = 0 e seja e i = x i x * . Como xi + 1 = i
2

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

Portanto, para o mtodo da bisseco tem-se:


= 1, ou seja, o mtodo possui convergncia linear ;
= 1/2, ou seja, a cada iterao o erro reduz-se metade.
Pode-se tambm determinar o nmero de dgitos significativos exatos obtidos por iterao de
um mtodo. Por exemplo, para o mtodo da bisseco tem-se:

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

tem-se que: m( x i + 1 , xi ) m( x i , x i 1 ) log( 2) = 0.33

Portanto, no mtodo da bisseco, consegue-se cerca de um dgito significativo exato a cada 3


iteraes.

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)

Exemplo: p( x) = x 3 5x 2 + 17 x + 21 = 0 tem uma raiz no intervalo [-1, 0]. A tabela a seguir


ilustra os resultados obtidos pelos mtodos da bisseco e da falsa-posio para este caso.

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

MTODOS DE PONTO FIXO


Nos mtodos de ponto fixo (ou mtodos de iterao funcional ), para determinar a raiz
pertencente ao intervalo [a, b] da equao f(x) = 0, procura-se determinar uma funo g(x) tal
que:
g(x) = x + c(x).f(x)
onde c(x) 0, x [a, b]. Desta maneira, procurar os valores x* para os quais f(x*) = 0,
corresponde a procurar os valores x* tais que:
x* = g(x*)

(ponto fixo)

Dependendo da escolha de g(x) tem-se diferentes mtodos de 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

Ento existe pelo menos um x* I tal que x* = g(x*).


O problema saber, no caso de haver vrias funes g(x) possveis, qual a melhor escolha.
Isto importante porque, dependendo desta escolha, podem acontecer os seguintes casos:
Convergncia Oscilante

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

Os teoremas a seguir ajudam na escolha da funo g(x).


Teorema. Seja g(x) uma funo definida em I = [a, b], tal que:

g(i) I
x I, | g'(x) | L < 1
30

Clculo Numrico

2 Soluo de Equaes

Ento existe exatamente um x* I tal que g(x*) = x*.


Teorema. Seja g(x) uma funo satisfazendo as condies do teorema anterior. Para x0 I,
a sequncia x n + 1 = g( xn ), n = 0,1,2, ... converge para x* e o erro de truncamento cometido
na n-sima iterao tal que:

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

g'(x) < 1 para x > 0

Portanto, o mtodo iterativo mais conveniente : xi + 1 =

xi + 2 (i = 0, 1, 2, ...)

3
Outro exemplo: f ( x) = x 3x + 3 = 0

razes positivas em: [1, 2] e [2, 3]


raiz negativa em: [-1, 0]
Neste caso, podemos ter:

x 2 ( x 3) = 3

x=

3
( x 3)

Portanto, se quizermos a raiz negativa podemos considerar g( x) =


a raiz positiva em [1, 2] podemos considerar g( x) = +
Observe que g' ( x) =

3
3
2
( x 3) 2
( x 3)

3
e se quizermos
( x 3)

3
.
( x 3)

< 1 para x [-1,0] ou para x [1,2].

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) =

Ento, o mtodo iterativo xi = (xi-1 ), i = 1, 2, ... tem ordem de convergncia superior a p,


desde que seja satisfeita a condio:
(1 () - 1)(2 () - 1) 0
A aplicao mais simples do Teorema de Aitken quando 1 = 2 = . Neste caso tem-se:

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, ...

Exemplo. Sejam f ( x) = xe x 0.2 e x0 = 0 . Neste caso, f '( x) = e x (1 x) . Portanto, pelo


mtodo de Newton-Raphson, tem-se:

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

Nota-se, deste exemplo, que a convergncia no mtodo de Newton-Raphson rpida.

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

Destas figuras percebe-se claramente que, dependendo da escolha do ponto inicial x0 , o


mtodo de Newton-Raphson pode no convergir. O teorema a seguir estabelece as condies
necessrias para que ocorra a convergncia do mtodo de Newton-Raphson.
Teorema. Seja f(x) uma funo definida em I = [a, b], tal que:

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]

Verificando as condies do teorema acima, tem-se:


34

Clculo Numrico

2 Soluo de Equaes

f(0) = -1; f(1) = 5 f(0).f(1) < 0


f'(x) = 3x 2 + 4 x + 3 f'(x) > 0 para x [0, 1]
f"(x) = 6x + 4 f"(x) > 0 para x [0, 1]

f ( 0)
1
1
=
= < 1 0
f ' (0)
3
3
f (1)
5
1
=
= < 1 0
f ' (1)
10
2

Logo, para qualquer x0 [0, 1] o mtodo ir convergir.

Ordem de Convergncia do Mtodo de Newton-Raphson

( 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 )

Portanto, como ei = x* - xi, tem-se:

1
ei + 1 = ei2 k
2

ei +1
ei2

1
= k
2

lim

ei +1
e2i

= cte

ou seja: o mtodo de Newton-Raphson tem ordem de convergncia quadrtica .

MTODO DAS SECANTES (OU DAS CORDAS)


Um problema com o mtodo de Newton-Raphson o clculo de derivadas, um problema malcondicionado. A idia do mtodo das secantes , partindo-se de duas aproximaes x0 e x1 ,
substituir a derivada por uma reta que passa pelos pontos (x0, f(x0 )) e (x1, f(x1 )), como no
mtodo da falsa-posio.

35

Clculo Numrico

2 Soluo de Equaes

y = f(x)

f(x0)
f(x1)

x2
x0

x1

raiz

Da figura acima (por congruncia de tringulos) pode-se escrever:

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 )

com | f(xi) | < | f(xi-1) | (do contrrio, inverter xi e xi-1).


Pode-se mostrar que a ordem de convergncia do mtodo das secantes dada por:

1
( 5 + 1) 1618
. , ou seja, converge um pouco mais lentamente que o mtodo de Newton2

Raphson (para o qual = 2).

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)

Da figura pode-se ver que g( x) = 0 x 2 + 1x + 2 tal que:

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

, onde o sinal frente do radical

deve ser escolhido de modo que o denominador tenha o maior valor absoluto possvel.

2.5 Resoluo de Sistemas de Equaes No-Lineares


Considere o seguinte sistema de equaes:

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

Os mtodos de quebra (bisseco e falsa-posio) no podem ser generalizados para


sistemas pois as trocas de sinal no caracterizam as razes de funes de vrias variveis.
Entretanto os mtodos de ponto fixo e de Newton-Raphson podem ser generalizados
facilmente.
Seja, por exemplo, o mtodo de ponto fixo:
x = 1(x,y) = 3 - 2y

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

para o mtodo convergir.

A generalizao do mtodo de Newton-Raphson pode ser obtida atravs da generalizao


do Teorema de Taylor para funes de vrias variveis. Seja, por exemplo, o caso de funes
de duas variveis. Considere (x i , yi ) a i-sima aproximao para uma raiz do sistema:

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

Pelo Teorema de Taylor pode-se escrever:

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

ou ento, em notao vetorial:

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

Portanto, resolvendo o sistema tem-se os valores de h i e k i e portanto, as novas


aproximaes x i + 1 e y i + 1 para a soluo do sistema de equaes.
Exemplo.
Seja o sistema de equaes:

f1 ( x, y) = e x y 4y = 0
f 2 ( x, y) = cos( x + y) + 4x = 0

Para este caso, tem-se:

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

Portanto, a nova aproximao para a soluo ser:

x1 = x 0 + h 0 = 0.00 + ( 0.25) = 0.25


y1 = y0 + k 0 = 0.00 + 0.15 = 0.15
Continuando desta forma, a cada iterao do mtodo de Newton-Raphson, determina-se os
novos valores de passo e portanto, novas aproximaes para a soluo do sistema.
Deve-se observar que cada iterao do mtodo de Newton-Raphson aplicado a sistemas de
equaes no-lineares requer a soluo de um sistema de equaes lineares (para determinar
os passos). A resoluo de sistemas de equaes lineares o assunto do captulo seguinte.

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)

1 troca 1 raiz real positiva


2 trocas 0 ou 2 razes reais negativas

+ + + - +

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]

Separao das razes negativas:

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

V-3 = 3 trocas de sinal

V-2 = 2 trocas de sinal

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

g' ( x ) < 1x [0,1] mtodo

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

Clculo de raiz negativa - Mtodo de Newton-Raphson:

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)

2. Enumere, localize e separe as razes reais da equao x3 3x + 1 = 0 . Em seguida utilize


o mtodo do ponto fixo para encontrar uma raiz positiva, caso exista, e o mtodo de
Newton-Raphson para encontrar uma raiz negativa desta equao. Nos mtodos iterativos
trabalhe com 4 casas decimais e utilize o critrio de parada: x n x n 1 < 0.01, onde x i
corresponde i-sima aproximao para o valor da raiz.
Soluo:
p(x) = x3 3x + 1
Enumerao:

p(-x) = x 3 + 3x + 1 = x3 3x 1

p(x)
p(-x)

2 trocas 0 ou 2 razes reais positivas


1 troca 1 raiz real negativa

+ - +
- + +

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:

Separao das razes positivas:

p( x) = x 3 3x + 1
p' ( x) = 3x 2 3
p"( x) = 6x
p"'( x) = 6
42

Clculo Numrico

2 Soluo de Equaes

Seja o intervalo [0, 1]:


p(0) = 1
p'(0) = -3
p"(0) = 0
p'"(0) = 6
p(1) = -1
p'(1) = 0
p"(1) = 6
p'"(1) = 6

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

g'( x) < 1 para 0 < x < 1

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

x 2 x 3 = 0.0014 < 0.01

Clculo de raiz negativa - Mtodo de Newton-Raphson:

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

Portanto: raiz 1.87


43

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:

x n x n 1 < 0.01, onde x n corresponde n-sima aproximao para o valor da raiz.


a) x3 6x 2 x + 20 = 0
b) x 3 5x 2 + x + 3 = 0
c) x 4 6x3 + 10x 2 6x + 9 = 0

2. Considerando a equao f ( x) =

1
x2

a = 0 mostre que a raiz quadrada de 1/a pode ser

encontrada pela iterao de Newton-Raphson: x n = x n 1 3 ax 2n 1 / 2 . Deduza uma


expresso equivalente para encontrar a raiz m-sima (m > 1) de 1/a e use o esquema
iterativo encontrado para calcular a raiz cbica de 2 com 5 casas decimais.

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}]

Utilize o mtodo da bisseco e o mtodo da falsa-posio para determinar o valor da raiz.


Para os mtodos iterativos, considere o seguinte critrio de parada:

( 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

Estimativa inicial da raiz


Preciso desejada
44

Clculo Numrico

2 Soluo de Equaes

LIM
RAIZ

Nmero mximo de iteraes


Valor encontrado para a 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:

a11x1 + a12 x2 + ... + a1n x n = b1


a x + a x + ... + a x = b
21 1
22 2
2n n
2

...
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:

A - matriz dos coeficientes


X - vetor de incgnitas
B - vetor dos termos independentes

Os mtodos numricos de soluo de sistemas de equaes lineares podem ser classificados


em:
Mtodos Diretos. So mtodos que determinam a soluo X de um sistema AX = B realizando
um nmero preestabelecido de operaes aritmticas. A menos de erros de arredondamento
(possivelmente cometidos quando implementa-se o mtodo de soluo no computador), a
soluo obtida por um mtodo direto exata.
Mtodos Iterativos. So mtodos que permitem obter uma soluo aproxi mada X* a partir de
um esquema iterativo para gerar uma sequncia de aproximaes sucessivas X (1) ,X ( 2) ,... a
partir de uma aproximao inicial X ( 0) e de um critrio de parada.
Os mtodos iterativos de soluo de sistemas de equaes lineares so muito dependentes
da matriz dos coeficientes do sistema. Dependendo do tipo de matriz, um mtodo pode
47

Clculo Numrico

3 Soluo de Sistemas de Equaes Lineares

convergir ou no. Outro problema, j discutido anteriormente, o mal-condicionamento, tambm


depende da matriz dos coeficientes do sistema. Para os mtodos diretos, existem mtodos
especiais quando a matriz dos coeficientes possui uma forma especial.

MATRIZES ESPECIAIS
Uma matriz A (n x n) :

SIMTRICA: se Aij = Aji, para i,j = 1, 2, ..., n

BANDA K: se Aij = 0 para | i - j | > K (K = 1, 3, 5, ...), para i,j = 1, 2, ..., n


Casos Especiais:
K = 1 Matriz diagonal
K = 3 Matriz tridiagonal

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

DIAGONAL DOMINANTE: se | Aii |

ESTRITAMENTE DIAGONAL DOMINANTE: se | Aii | >

j= 1
j i

| A ij |, para i = 1,2, ..., n

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

3 Soluo de Sistemas de Equaes Lineares

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

Triangular Inferior Unitria

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

3.2 Mtodos Diretos


Uma forma de resolver um sistema de equaes lineares eliminar, sucessivamente, as
incgnitas at obter uma equao com uma nica incgnita. Determinar o valor desta incgnita
e substituir de volta seu valor nas outras equaes, para determinar o valor das demais
incgnitas.
Por exemplo, seja o seguinte sistema:

( 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.

Portanto nesta classe de mtodo, possvel estabelecer a priori o nmero de operaes


aritmticas elementares requeridas para obter a soluo, em funo do nmero de equaes.
A questo : "Como fazer isto eficientemente e como organizar os clculos de modo a
diminuir os erros de arredondamento?".

49

Clculo Numrico

3 Soluo de Sistemas de Equaes Lineares

3.2.1 MTODO DA ELIMINAO DE GAUSS


Seja o sistema a seguir, onde os sobrescritos entre parnteses so usados para indicar os
valores disponveis em cada estgio da soluo:
(1)

(1)

(1)

(1)

(1)

(1)

(1)

(1)

(1)

(1)

(1)

(1)

a11 x1 + a12 x 2 + a13 x 3 = b1

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)

substituir a segunda equao por: (2 equao) a 21 / a 11 (1 equao)

Para eliminar x1 da terceira equao, deve-se:

(1)

(1)

substituir a terceira equao por: (3 equao) a 31 / a 11 (1 equao)

Aps este passo o sistema pode ser escrito como:


(1)

(1)

(1)

(1)

(2 )

( 2)

( 2)

(2 )

( 2)

( 2)

a11 x1 + a12 x2 + a13 x3 = b1

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

O prximo passo ser eliminar x2 da terceira equao. Para isto deve-se:

(2)

(2)

substituir a terceira equao por: (3 equao) a 32 / a 22 (2 equao)

Com isto, o sistema passa a ser o seguinte:


(1)

(1)

(1)

(1)

(2 )

( 2)

( 2)

( 3)

(3)

a11 x1 + a12 x2 + a13 x3 = b1

a 22 x2 + a 23 x 3 = b2

a 33 x3 = b 3
onde:

50

Clculo Numrico

3 Soluo de Sistemas de Equaes Lineares

(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)

fase de eliminao , para transformar a matriz dos coeficientes em matriz triangular


superior, e
fase de substituio , para determinar, da ltima at a primeira, os valores da incgnitas.

Exemplo. Resolver, pelo mtodo da eliminao de Gauss, o seguinte sistema:

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

3 Soluo de Sistemas de Equaes Lineares

a
(3 linha) 31 (1 linha) = (2
a11

3 1 1) + ( 2

3 1 5) = (0

6)

Assim, ao final deste primeiro passo, a nova matriz aumentada ser:

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)

Assim, ao final do passo de eliminao tem-se a seguinte matriz aumentada:

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

Exerccio. Resolver o seguinte sistema pelo mtodo da eliminao de Gauss:

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

3 Soluo de Sistemas de Equaes Lineares

Seja o sistema AX = B, com n equaes. O algoritmo do mtodo da eliminao de Gauss pode


ser escrito como:
Fase de Eliminao:
1. Para k variando de 2 at n, fazer:
2. Para i variando de k at n, fazer:
piv =

a i,k 1
a k 1, k 1

b i = b i piv b k 1

a i , k 1 = 0

3. Para j variando de k at n, fazer:

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 :

No mtodo da eliminao de Gauss, o nmero de somas/subtraes e multiplicaes


proporcional a n3 (ou seja, o esforo computacional cresce com o cubo do nmero de
equaes).

Aps as eliminaes, tem-se:


(1)

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

3 Soluo de Sistemas de Equaes Lineares

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

no preciso resolver os sistemas independentemente (uma vez que as operaes de


eliminao dependem apenas da matriz dos coeficientes). Pode-se aplicar o processo de
eliminao sobre o "sistema expandido":

1 1 2
1
1

x1

5 1

1 x2 = 7 7
2 6
1
x3

2
3

e para obter os valores de x do primeiro sistema, fazer as retro-substituies considerando os


valores finais da primeira coluna de B. Para obter os valores de x do segundo sistema, basta
considerar a segunda coluna da matriz B. No caso acima, aps a fase de eliminao tem-se:

1 1 2
0
0

x1

5 1

3 x 2 = 12 6
3
x3
9 3

3
0

e portanto, a soluo do primeiro sistema ser: 1 e a do segundo: 1 .

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

coeficientes e vetor dos termos independentes) e os erros de arredondamento acumulados


sero multiplicados por um valor grande. O ideal rearranjar as equaes de modo a se ter,
em cada estgio, pivs que sejam (em valor absoluto) menores do que 1.
Exemplo:

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

3 Soluo de Sistemas de Equaes Lineares

1 1 2
0
0

4
3

x1

1 x3 = 7
12
3
x2

3.2.2 DETERMINAO DE INVERSA DE MATRIZ


A soluo do sistema AX = B dada por X = A-1B. Por outro lado, mostrou-se acima que no
caso de sistemas com mesma matriz dos coeficientes e diferentes vetores dos termos
independentes, pode-se considerar a matriz expandida . Portanto, se inicialmente forem
considerados vrios vetores B, de forma a ter no lado direito do sistema uma matriz identidade,
ao final do mtodo da eliminao de Gauss os vetores soluo sero as colunas da inversa da
matriz dos coeficientes. Em outras palavras, considere os sistemas:

AX1 =

1
0
...
0

AX 2 =

0
1
...
0

AX n =

...

0
0
...
1

As solues destes sistemas sero tais que:

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

3 Soluo de Sistemas de Equaes Lineares

1 1 2
0
0

3 1
1
0
3 1 / 3 4 / 3 1

3
0

Portanto, os "vetores soluo" sero:

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 =

4 4 3 , pelo mtodo da eliminao de Gauss.


2 3 1

3.2.3 MTODO DE GAUSS-JORDAN


Considere um sistema de n equaes lineares da forma AX = B, cuja soluo X = A 1B .
Seja a matriz expandida escrita como: A B I , onde I uma matriz identidade de ordem n.
Considere operaes elementares que transformem a matriz A em uma matriz identidade. Tais

operaes correspondem multiplicao de A por sua inversa A 1, ou seja A1A = I . Estas


operaes elementares quando aplicadas matriz expandida A B I , portanto, sero tais que:

1
Operaes Elementares[ A B I ] A
A
123
I

A
B
123
X

1
1
A
123I [ I X A ]

A 1

Assim, no mtodo de Gauss-Jordan parte-se da matriz expandida [ A B ] (ou [ A B I ], caso


deseja-se determinar tambm a inversa da matriz A) e procura-se transformar a matriz A em
matriz identidade. Uma vez concludo este passo, tem-se ao final a matriz expandida
transformada em [ I X ] (ou [ I X A 1], caso, de incio, a matriz expandida seja [ A B I ]).
Exemplo. Determinar o vetor soluo e a inversa da matriz dos coeficientes para o seguinte
sistema de equaes lineares:

x + y + z = 4

2x + 3y + z = 9
x y z = 2

Neste caso, a matriz expandida ser:


56

Clculo Numrico

3 Soluo de Sistemas de Equaes Lineares

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

No segundo passo, tem-se:


1
0
0

0
1
0

2
-1
-4

3
1
-4

3
-2
-5

Finalmente, no terceiro passo tem-se:


1
0
0

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

Seja o sistema AX = B, com N equaes. Seja M a matriz expandida (M = [ A B], se apenas a


soluo do sistema for desejada, ou M = [ A B I ], caso se queira tambm a inversa da matriz
dos coeficientes). Seja L o nmero de colunas de M (L = N+1, se M = [ A B ], ou L = 2N+1, se
M = [ A B I ]). O algoritmo do mtodo da eliminao de Gauss-Jordan pode ser escrito na
forma de um diagrama de blocos como:
57

Clculo Numrico

3 Soluo de Sistemas de Equaes Lineares

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?

M(I,J) = M(I,J) - C(I)*M(K,J)

no

CONTINUE

M(I,N+1), I = 1, 2, ..., N, a soluo do sistema


M(I,J), I = 1, 2, ..., N ; J = N+2, N+3, ..., L, a matriz inversa

3.2.4 Mtodos de Fatorao


A idia dos mtodos de fatorao trabalhar com a matriz dos coeficientes, mantendo o vetor
dos termos independentes inalterado. O mtodo mais usado o da fatorao LU. Seja o
n

sistema de n equaes lineares:

a i, jx j = bi

com i = 1, 2, ..., n. Considere que a matriz A

j =1

seja fatorada como o produto de duas matrizes:

uma matriz triangular inferior unitria (L)


uma matriz triangular superior (U)

Com a fatorao A = LU, o sistema de equaes AX = B pode ser escrito como:


58

Clculo Numrico

3 Soluo de Sistemas de Equaes Lineares

(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

(note que como L e B so conhecidos, pode-se determinar Y)

UX = Y

(como U e Y so conhecidos, determina-se X)

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

pode-se reescrever o sistema de equaes como os seguintes sistemas:


a) LY = B, como:

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

3 Soluo de Sistemas de Equaes Lineares

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 ?"

CLCULO DOS FATORES L e U


As matrizes L e U so obtidas pela fase de triangularizao do mtodo da eliminao de
Gauss:

a matriz L formada a partir dos pivs usados nos passos de eliminao;


a matriz U a matriz triangular resultante do processo de eliminao.

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

3 Soluo de Sistemas de Equaes Lineares

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

Isso vai resultar em uma matriz da forma:

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

Com isso, a matriz resultante ser a matriz U (triangular superior):

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

Este processo de soluo de sistemas de equaes lineares, baseado na fatorao LU,


conhecido como Mtodo de Doolittle. Este mtodo pode ser estabelecido formalmente como o
seguinte algoritmo:
Algoritmo Mtodo de Doolittle
Seja o sistema AX = B.
1. Para determinar as matrizes L e U, fazer:

U1 j = A1 j ; L jj = 1 ( j = 1, 2, ..., N )
A
L i1 = i1 ( i = 2, 3, ..., N)
U11
61

Clculo Numrico

3 Soluo de Sistemas de Equaes Lineares

Para r = 1, ..., N fazer:


r 1

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)

2. Com as matrizes L e U determinadas, calcular os vetores Y e X como:

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

A matriz A pode ser escrita como:

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

Deve-se, em primeiro lugar (como no mtodo de Doolittle), determinar o vetor Y a partir do


sistema LY = B, ou seja:

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

3 Soluo de Sistemas de Equaes Lineares

Com o vetor Y, a soluo do sistema original obtida resolvendo-se o sistema UX = Y, ou


seja:

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

A = LLT , onde L matriz triangular inferior e LT a transposta da matriz L.


Um caso de muito interesse prtico quando a matriz dos coeficientes tridiagonal . Uma
matriz A da forma:

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

pode ser fatorada como A = LU tal que:

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)

Neste caso, para um sistema de equaes da forma AX = B, obtm-se facilmente o vetor X


uma vez que os sistemas LY = B e UX = Y so sistemas muito simples. Ou seja, a soluo do
sistema LY = B pode ser calculada como:

63

Clculo Numrico

3 Soluo de Sistemas de Equaes Lineares

b1
1
b d i yi 1
yi = i
i
y1 =

( i = 2, 3, ..., n)

e, em seguida, a soluo do sistema UX = Y dada por:

xn = yn
xi = y i i x i + 1 (i = n 1, n 2, ..., 1)

Exemplo. O problema de valor de contorno dado por:

d2y
dx 2

=4

dy
4
3y x ; y 0 =
; y6 = 16419
.
dx
9

pode ser resolvido numericamente discretizando-se o espao (x, y) e aproximando-se as


derivadas a diferenas finitas. Considerando-se, por exemplo, os valores de x = {0.05, 0.10,
0.15, 0.20, 0.25}, ou seja, valores de x igualmente espaados com passo h = 0.05, a soluo
do problema um vetor y = { y1, y 2 , y 3, y 4 , y5 } , que pode ser obtido resolvendo-se o
seguinte sistema de equaes lineares:

(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

Determinar a soluo do problema pelo mtodo de matrizes tridiagonais.

Neste caso, substituindo-se os valores de h, y 0 e y 6 tem-se o seguinte sistema AY = B:

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

Para a determinao das matrizes L e U tem-se:

64

0
0
0

Clculo Numrico

1 = a 1

3 Soluo de Sistemas de Equaes Lineares

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

Assim, a soluo do sistema LZ = B dada por:

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
.

e portanto, a soluo do problema dada resolvendo-se o sistema UY = Z, ou seja:

65

Clculo Numrico

y5 = z5

3 Soluo de Sistemas de Equaes Lineares

.
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).

3.3 Mtodos Iterativos


Seja o sistema de equaes lineares:

a11x1 + a12 x 2 + a13x 3 = b1


a 21x1 + a 22 x 2 + a 23x3 = b2
a 31x1 + a 32 x 2 + a 33x3 = b3
Supondo que a11 , a 22 e a 33 so diferentes de zero, pode-se escrever:

x1 = ( b1 a12 x 2 a13x 3 ) / a11


x2 = ( b2 a 21x1 a 23x 3 ) / a 22

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:

x1( k ) = ( b1 a12 x (2k 1) a13x (3k 1) ) / a11


(k )

x2

( k 1)
( k 1)
= ( b2 a 21x1 a 23x 3 ) / a 22

k = 1, 2, 3, ...

x (3k ) = ( b3 a 31x1( k 1) a 32x (2k 1) ) / a 33


Do esquema iterativo de Gauss-Jacobi acima, pode-se notar que uma vez determinado o valor
de x1( k ) pela primeira equao, no preciso mais usar a aproximao anterior x1( k 1) na 2
66

Clculo Numrico

3 Soluo de Sistemas de Equaes Lineares

e 3 equaes. O mesmo ocorre em relao a x (2k ) e o uso de x (2k 1) na 3 equao. Com


estas modificaes, tem-se o esquema iterativo de Gauss-Seidel , que faz uso das novas
aproximaes to logo elas se tornem disponveis:

x1( k ) = ( b1 a12 x (2k 1) a13 x(3k 1) ) / a11


x (2k ) = ( b2 a 21x1( k ) a 23x (3k 1) ) / a 22

k = 1, 2, 3, ...

x (3k ) = ( b3 a 31x1( k ) a 32 x (2k) ) / a 33


Exemplo. Determinar a soluo do sistema:

3x1
x1

+
+

x2
5x2

2x 3
x3

=
=

2
6

x1

x2

4x 3

Neste caso, pode-se escrever:

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)

= 0 . Considere inicialmente a aplicao do mtodo de


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

3 Soluo de Sistemas de Equaes Lineares

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

e assim por diante. A soluo deste sistema : X = 25 / 17 14705


.

12 / 17

0.7059

Considerando agora a aplicao do mtodo de Gauss-Seidel , tem-se:


1 iterao :

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

3 Soluo de Sistemas de Equaes Lineares

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
.

est mais prxima da soluo exata X 1.4705

0.7061

0.7059

do que a

0.6111
*

soluo obtida com o mtodo de Gauss-Jacobi, X = 14467


. Em outras palavras, o mtodo
.

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

As equaes de recorrncia dos mtodos iterativos de Gauss-Jacobi e Gauss-Seidel podem


ser generalizadas, para um sistema com n equaes como:
69

Clculo Numrico

3 Soluo de Sistemas de Equaes Lineares

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

x (i k ) = ( bi a i, jx (jk) a i, jx (jk 1) ) / a i,i

i = 1,2,...,n

onde k = 1, 2, ... representa o nmero da iterao e a ii 0 (i = 1, 2, ..., n).


Uma observao importante que o nmero de operaes aritmticas elementares em cada
iterao dos mtodos de Gauss-Jacobi e Gauss-Seidel proporcional a n 2 . O esforo
computacional total ser determinado pelo nmero de iteraes necessrias para alcanar a
convergncia.
Teorema (Critrio das Linhas). Seja o sistema de n equaes lineares:
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 |

. Se = Max { k } < 1 ento os mtodos de Gauss-Jacobi e


k =1, 2,L, n

Gauss-Seidel convergem, independente da escolha da aproximao inicial. Uma matriz que


satisfaz o critrio das linhas denominada matriz estritamente diagonal dominante.

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

3 Soluo de Sistemas de Equaes Lineares

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.

O critrio das linhas assegura a convergncia tanto do mtodo de Gauss-Jacobi como do


mtodo de Gauss-Seidel. Entretanto, para o mtodo de Gauss-Seidel existe um outro critrio
que tambm estabelece condies suficientes para a convergncia, como mostra o teorema a
seguir.
Mtodo de Gauss-Seidel Critrio de Sassenfeld
Teorema. Seja o sistema de n equaes lineares:
n

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 |

Se = Max { k } < 1 ento o mtodo de Gauss-Seidel converge, qualquer que seja a


k =1, 2,L, n

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

Com esta disposio, o critrio de Sassenfeld no satisfeito, pois 1 =


Contudo, trocando-se a primeira equao com a terceira, tem-se:
71

1+ 3
= 2 > 1.
2

Clculo Numrico

3 Soluo de Sistemas de Equaes Lineares

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

Portanto, como = Max { 1 , 2 , 3 } =

1
1
3 +1
3 =2
3
3 =
2
3

2
< 1 , o critrio de Sassenfeld est satisfeito e tem-se
3

garantida a convergncia do mtodo de Gauss-Seidel.

O mtodos iterativos de Gauss-Jacobi e de Gauss-Seidel devem utilizar algum critrio de


parada . Os critrios mais comuns levam em conta o erro absoluto e o erro relativo de duas
iteraes sucessivas, ou seja, considera-se que o mtodo convergiu aps k iteraes se um
dos critrios a seguir foi satisfeito:

Max x ( k ) x(i k 1) <


1in i

( erro absoluto)

x(i k) x (i k 1)
Max
<
1in
x (i k 1)

( erro relativo )

onde o valor requerido para a preciso.


Outra forma determinar o vetor resduo :
n

ri( k) = bi a i, jx (jk ) com i = 1, 2, ..., n


j =1

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

3 Soluo de Sistemas de Equaes Lineares

3.3.1 ESTUDO DA CONVERGNCIA DOS MTODOS ITERATIVOS


n

a i, j x j = b i ,

com ai,i 0 e i = 1, 2, ..., n. A matriz dos


j= 1
coeficientes A pode ser escrita como: A = L + D + U
onde:
Seja o sistema AX = B, ou seja,

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

uma matriz estritamente triangular inferior ,

uma matriz diagonal , e

... a n, n
... a1, n
... a 2, n
0

uma matriz estritamente triangular superior.

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

3 Soluo de Sistemas de Equaes Lineares

Logo, possvel escrever os esquemas iterativos de Gauss-Jacobi e de Gauss-Seidel na


forma: X ( k ) = MX ( k 1) + G , onde M e G so as matrizes mostradas na tabela a seguir:
M
-D-1 (L + U)
-(D + L) -1U

Gauss-Jacobi
Gauss-Seidel

G
D -1 B
(D + L)-1B

Seja E ( k ) = X X ( k ) o erro na k-sima iterao, onde X a soluo exata do sistema e X( k )


a soluo obtida na k-sima iterao. Ento, como:

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)

Logo, pode-se escrever que:

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

4 1 . Escrevendo A na forma L+D+U, tem-se:


1 4
0

L = 1

0 0
1 0

4 0 0
D= 0

4 0
0 0 4

0 1

U = 0 0 1

Para o mtodo de Gauss-Jacobi, M = -D -1 (L + U). Tem-se ento:

74

0 0

Clculo Numrico

3 Soluo de Sistemas de Equaes Lineares

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

Determinando-se as potncias de M, tem-se:

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.

Exerccio. Verificar a convergncia do mtodo de Gauss-Seidel para o sistema do exemplo


acima.

3.4 REFINAMENTO ITERATIVO DA SOLUO


Devido aos erros de aproximao j referidos anteriormente, nem sempre possvel
determinar, em computadores, a soluo do sistema AX = B de forma exata. Seja R = B - AX*,
o vetor resduo da soluo X* encontrada (X* portanto uma aproximao da soluo exata
X). Evidentemente, R representa o quanto a soluo calculada deixa de satisfazer ao sistema
de equaes original ( importante observar que devido ao problema de mal-condicionamento,
o vetor resduo nem sempre um indicador confivel da preciso).
Seja V = X - X*, o vetor diferena entre a soluo verdadeira e a soluo aproximada. Ento:
R = B - AX* = AX - AX* = AV
Portanto, teoricamente, pode-se determinar o vetor V (e, por consequncia, a soluo
verdadeira X = X* + V) resolvendo o sistema AV = R (note que para calcular V, basta aplicar as
equaes de eliminao sobre o vetor R, uma vez que X* foi obtido como soluo do sistema
AX* = B, que tem a mesma matriz dos coeficientes que AV = R). O problema que, como

75

Clculo Numrico

3 Soluo de Sistemas de Equaes Lineares

novamente preciso resolver um sistema de equaes, ao invs do valor verdadeiro V, ser


obtido um valor aproximado V*. Da a necessidade de um processo iterativo:
1. Dada uma soluo inicial aproximada X*;
2. Enquanto o critrio de convergncia no estiver satisfeito, fazer:
a. Calcular R = B - AX*
b. Resolver o sistema AV = R, para determinar o vetor V*
c. Fazer X* = X* + V*

Exemplo.

2x1 x2 x 3 = 0

Considere que para o sistema: 3x1 + 4x 2 2x 3 = 1 obteve-se a seguinte soluo


3x 2x + 4x = 0
1
2
3
015
.
aproximada: X* = 0.22 . Melhorar esta soluo pelo processo de refinamento sucessivo.

0.03
2 1 1

015
.

0.05

0.05

Neste caso: R = B - AX* = 1 3

4 2 0.22 = 1 127
.
= 0.27
3 2 4
0.03
0
0.13
013
.

Resolvendo-se o sistema AV = R, ou seja:

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
.

X* = X* + V* = 0.22 + 0.0367 = 01833


.

0.0133

0.03

0.0167

Continuando o processo, tem-se:

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

3 Soluo de Sistemas de Equaes Lineares

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

1. Resolver, pelo mtodo da eliminao de Gauss, o seguinte sistema de equaes lineares:

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

No caso acima, como a matriz dos coeficientes A = 1 2

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

3 Soluo de Sistemas de Equaes Lineares

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 =

2. Resolver o sistema de equaes lineares a seguir, pelo mtodo da eliminao de Gauss.

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:

transformar o elemento a 21 em zero: substituir a 2 linha por (2 linha 1 linha)


transformar o elemento a 31 em zero: substituir a 3 linha por (3 linha 1 linha)

Aps este passo, a matriz aumentada apresenta-se como:

78

Clculo Numrico

3 Soluo de Sistemas de Equaes Lineares

1 1 1

A= 0 1

3 3
0 2 8 14

Passo 2:

transformar o elemento a 32 em zero: substituir a 3 linha por (3 linha - 22 linha)

Aps este passo, a matriz aumentada apresenta-se como:

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

3 Soluo de Sistemas de Equaes Lineares

Clculos

x1 = (1 + 0.000 0.000) / 8 = 0125


.

x 2 = (2 + 0.125 0.000) / 5 = 0.425

x3 = (0125
.
+ 2 0.000) / 4 = 0.031

x 4 = (1 + 0.425 + 2 0.031) / 4 = 0.341


2

x1 = (1 + 0.425 ( 0.031)) / 8 = 0.182


x 2 = (2 + 0.182 0.341) / 5 = 0.368

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

x4 = (1 + 0.350 + 2 0.164) / 4 = 0.420


4

x1 = (1 + 0.350 0.164 )) / 8 = 0.148

x2 = (2 + 0.148 0.420) / 5 = 0.346


x3 = (0148
.
+ 2 0.420) / 4 = 0173
.
x4 = (1 + 0.346 + 2 0173
. ) / 4 = 0.423

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

8 7 em um produto LU, onde L matriz triangular inferior


2 16 12

unitria e U matriz triangular superior. Em seguida, encontrar a soluo do sistema de

x1 + 2 x2 + 3x3 = 2

equaes: 2x1 + 8x 2 + 7x 3 = 7
2x + 16x + 12x = 10
1
2
3
Soluo:

Aplicando o algoritmo de Doolittle para determinar a fatorao LU da matriz A, tem-se:

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

2 8 7 x 2 = 7 pode ser desmembrado nos seguintes sistemas:


2 16 12
x3
10
80

Clculo Numrico

1 0 0

3 Soluo de Sistemas de Equaes Lineares

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

Portanto, do primeiro sistema vem:

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

1. Dado o sistema de equaes lineares a seguir:

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

2. Calcular o determinante da matriz A abaixo, utilizando o mtodo da eliminao de Gauss.

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

3 Soluo de Sistemas de Equaes Lineares

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 .

5. Resolver o sistema de equaes lineares a seguir utilizando o mtodo da fatorao LU.

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

Resolver o problema usando o mtodo de Gauss-Seidel.


EXERCCIOS DE PROGRAMAO

1. Implementar o mtodo da eliminao de Gauss para a soluo de um sistema de N


equaes lineares AX = B, como uma funo X = ELGAUSS(N,A,B).

82

Clculo Numrico

3 Soluo de Sistemas de Equaes Lineares

2. Implementar o mtodo iterativo de Gauss-Seidel para a soluo de um sistema de N


equaes lineares AX = B, como uma funo X = GSEIDEL(EPS,N,A,B) utilizando como
critrio de parada o erro relativo de duas iteraes sucessivas, ou seja:
[k]

xi

Max

1 i n

[k 1]

xi

<

[ k 1]

xi

Utilize o seguinte algoritmo:


[k]

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

onde k = 1, 2, ... representa o nmero da iterao e ai,i 0 (i = 1, 2, ..., n).


Conferir a soluo encontrada utilizando o programa Mathematica empregando as
seguintes instrues:
a = { {a11, a12, ..., a1n},
{a21, a22, ..., a2n},
...
{an1, an2, ..., ann} }
b = { b1, b2, ..., bn}
x = LinearSolve[a,b]

3. Implementar o mtodo de Doolittle para resolver um sistema de N equaes lineares da


forma AX = B como uma funo X = DOOLITTLE(N, A, B)
Testar a funo DOOLITTLE na soluo do seguinte problema:

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:

(xi) = f(xi), para i = 0, 1, ..., n


(x*) f(x*), para x* [x0 , xn] e x* xi (i = 0, 1, ..., n)

Graficamente:
y

Funo Interpoladora

y = f(x)

x
x0

x1

x2

x3

A funo (x) denomina-se funo interpoladora e, dependendo da forma de (x) tem-se


diferentes tipos de interpolao. Em geral a funo interpoladora pertence a uma das
seguintes classes:
P (Polinmios):

( 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):

( x ) = p1 (x) + p2(x) + ... + pk(x)


85

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

4.2 Interpolao Polinomial


Polinmios so boas funes interpoladoras porque so fceis de calcular, de derivar e de
integrar. O caso mais simples ocorre quando a funo interpoladora um polinmio linear:

( 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

Para um dado valor i (i = 1, 2, ..., n-1) tem-se:


86

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

Assim, a equao de i ( x ) dada pelo seguinte sistema de equaes:

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

Exemplo. Seja o mesmo problema acima mas considerando um polinmio interpolador de


segundo grau.
Neste caso, o polinmio interpolador ser da forma:

( 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

Resolvendo o sistema, tem-se: c 0 = 5, c1 = 2 e c 2 = -1, ou seja, para o intervalo [1, 3] a


funo interpoladora ser:
2

( x) = 5 + 2 x x

Assim: f(2.8) (2.8) = 5 + 2(2.8) - (2.8)2 = 2.76

Considerando o intervalo [2, 4] tem-se o seguinte sistema de equaes lineares:

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) =

13 + 17( 2.8) 4( 2.8) 2 = 3.24


Uma questo importante neste caso : Qual a melhor escolha para o valor interpolado? Os
teoremas a seguir ajudam na resposta a esta questo.
88

Clculo Numrico

4 Interpolao

4.3 - O Erro na Interpolao


Teorema (Weierstrass). Se f(x) uma funo contnua em [a, b], ento para qualquer >0,
existe um polinmio pn (x), com n = g( ), tal que | f(x) - pn(x) | < para x [a, b].
Este teorema d uma boa razo para usar polinmios como funo interpoladora. Entretanto, o
teorema no indica qual deva ser o grau de um polinmio interpolador para uma tabela de
pontos { (xi, y i), i = 0, 1, ..., n }.
Teorema (Erro de Truncamento). Seja (x) um polinmio de grau n tal que (xi) = y i = f(xi) (i =
0, 1, ..., n), onde f(x) uma funo definida em [a, b] e xi [a, b] (i = 0, 1, ..., n). Se f (n+1)
vezes continuamente diferencivel em [a, b], ento para qualquer x* [a, b] tem-se que:
E(x*) = f(x*) - (x*) =

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

0.1 0.2 0.3 0.4 0.5 0.6 0.7


-6
-5. 10
-0.00001

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

no intervalo x 0, x n (ou seja, o mais longe possvel das extremidades).

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

A matriz dos coeficientes deste sistema de equaes conhecida como matriz de


Vandermonde , cujo determinante dado por:

(x i x j )

i> j

Portanto, se x 0 , x1 , ..., x n so pontos distintos, o determinante da matriz dos coeficientes


ser diferente de zero e consequentemente o sistema linear ir admitir uma nica soluo.
90

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

Resolvendo o sistema, tem-se:

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

Exemplo. Dados os pontos x0, x1 , x2 e x3 , os polinmios de Lagrange (de grau 3) so dados


por:

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 )

fcil ver que:

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.

Exemplo. Determinar o polinmio interpolador de Lagrange para a seguinte tabela de pontos:


xi
yi

1
6

2
5

3
2

4
-9

Neste caso, o polinmio (x) ser:


( x) = 6.

( 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
.

Portanto, vantajoso usar polinmios de Lagrange na interpolao de pontos de uma tabela.


Ou seja, dados: { (xi, y i), i = 0, 1, ..., n }, para determinar o valor interpolado de y* em um ponto
x*, ao invs de determinar o polinmio de interpolao (x) e, em seguida, o valor de y* = (x*),
pode-se usar, diretamente, o seguinte algoritmo:
1. y* = 0
2. Para j = 0, 1, ..., n fazer:
a) L = 1
b) Para i = 0, 1, ..., n fazer:
Se i j ento L = L*(x* - xi)/(x j - xi)
c) y* = y* + yj.L

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 .

4.5 Diferenas Divididas


Uma outra maneira de determinar o polinmio de interpolao para uma tabela de pontos
atravs do uso de diferenas divididas. O polinmio assim obtido denomina-se polinmio de
Newton .
Dada uma tabela de pontos { (xi, y i), i = 0, 1, ..., n }, onde y i = f(xi), define-se:

A diferena dividida de ordem zero por: 0 yi = 0 f[xi] = y i

A diferena dividida de ordem k por: k yi = k f[xi, xi+1, ..., xi+k] =


=

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

com i = 0, 1, ..., n-k.


93

Clculo Numrico

4 Interpolao

Exemplo. Para a tabela de pontos:


i

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

pode-se determinar as diferenas divididas de ordens 1, 2, 3 e 4 da seguinte maneira:

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 =

3y1 3 y 0 0 0.42 0.42


=
=
= 0.52
x4 x0
10
. 0.2
0.8

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.

Exemplo. Dada a tabela a seguir, determinar o valor interpolado para x = 0.4


i

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
-

Neste caso, pelo polinmio de interpolao de Newton tem-se:


f(0.4) (0.4) = 1.115 + (0.4 - 0.1)(1.46) + (0.4 - 0.1)(0.4 - 0.2)(1.60) +
+ (0.4 - 0.1)(0.4 - 0.2)(0.4 - 0.3)(0.33) +
+ (0.4 - 0.1)(0.4 - 0.2)(0.4 - 0.3)(0.4 - 0.5)(-0.50) = 1.651

4.6 Diferenas Simples


No caso de os pontos xi (i = 0, 1, ..., n) serem igualmente espaados, o clculo das diferenas
pode ser simplificado. Seja h = xi+1 - xi (i = 0, 1, ..., n-1) o espaamento constante entre os
valores de x. As diferenas simples so definidas como:

Diferena simples de ordem 0 :

0 yi = yi

Diferena simples de ordem n :

n yi = n 1y i +1 n 1y i

Pode-se, facilmente, relacionar diferenas simples com diferenas divididas:

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

Generalizando, tem-se o seguinte teorema:


Teorema. Seja a funo y = f(x) definida pelos pontos { (xi, y i), i = 0, 1, ..., n } tais que xi+1 - xi
= h, para todo i (i = 0, 1, ..., n-1). Ento:

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

Exemplo. Determinar f(0.5) dada a tabela:


i

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
-

Neste caso, pelo polinmio de interpolao de Gregory-Newton, tem-se:

f( 0.5) (0.5) = 0.40 + ( 0.5 0.2)

0.39
(0.02)
+ ( 0.5 0.2)( 0.5 0.4)
+
0.2
2(0.2) 2

+ (0.5 0.2)( 0.5 0.4)( 05


. 0.6)

0.01
3!( 0.2) 3

+ (0.5 0.2)( 0.5 0.4)( 05


. 0.6)( 05
. 0.8)

(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

Exemplo. A tabela abaixo representa a funo f(x) =


f(1.025).

x , com 4 casas decimais. Calcular

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

Neste caso, como n = 5, possvel aproximar f(x) a polinmios de at grau 5. Entretanto,


construindo-se a tabela de diferenas simples tem-se:
i

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
.

4.7 Interpolao de Hermite


Sejam conhecidos um conjunto de pontos { (xi, y i), i = 0, 1, ..., n } representando uma funo y
= f(x), e os valores das derivadas de f(x) em cada um dos pontos tabelados, ou seja, f'(xi), i =
0, 1, ..., n. Seja o polinmio:

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

Deseja-se mostrar que Ph ( x ) assim definido um polinmio de interpolao (conhecido como


polinmio de Hermite ). Para isto preciso mostrar que Ph ( x) "passa" pelos pontos tabelados,
ou seja, que Ph ( x i ) = f ( x i ) = y i .
Sabe-se que i ( x j ) = ij (delta de Kronecker ). Portanto:
98

Clculo Numrico

4 Interpolao

i ( x j ) = 1 2( x j x i ) 'i ( xi ) 2i ( x j ) = 1 2( x j x i ) 'i ( x i ) 2ij = ij


i ( x j ) = ( x j xi ) 2i ( x j ) = ( x j x i ) 2ij = 0
ou seja:
n

Ph ( x j ) = i ( x j )f ( xi ) + i ( x j ) f '( xi ) = ijf ( xi )
i= 0
i1
= 044
42444
3 i= 0
0

= 0 jf ( x0 ) + 1 jf ( x1 ) + ... + jjf ( x j ) + ... + njf ( x n ) = f ( x j )


Assim o polinmio de Hermite Ph ( x) "passa" pelos pontos tabelados, sendo portanto um
polinmio de interpolao. Mas o polinmio de Hermite possui uma outra caracterstica
importante: a derivada de Ph ( x) "passa" pelos pontos f'(xi), i = 0, 1, ..., n. Para mostrar isto,
seja a derivada de Ph ( x) :
n

i =0

i =0

Ph' ( x) = 'i ( x) f ( xi ) + 'i ( x) f '( x i )


Mas:

'i ( x) = 1 2( x x i ) 'i ( xi ) 2 i ( x) 'i ( x) 2 'i ( xi ) 2i ( x)


'i ( x) = ( x xi )2 i ( x) 'i ( x) + 2i ( x)

i = 0, 1, ..., n

ou seja:

[
]
= [1 2( x j xi ) i' ( x i )] 2 ij 'i ( x j ) 2 'i ( xi ) 2ij = 0

i' ( x j ) = 1 2( x j x i ) i' ( xi ) 2 i ( x j ) i' ( x j ) 2 i' ( x i ) 2i ( x j )

'i ( x j ) = ( x j xi )2 i ( x j ) 'i ( x j ) + 2i ( x j ) = ( x j xi )2 ij 'i ( x j ) + 2ij = ij


Logo:
n

Ph' ( x j ) = i' ( x j )f ( xi ) + i' ( x j ) f ' ( x i ) = ij f ' ( x i )


i1
= 0442443 i = 0
i= 0
0
'

= 0 jf ( x 0 ) + 1 j f ' ( x1 ) + ... + jj f ' ( x j ) + ... + njf ' ( x n ) = f ' ( x j )


Exemplo. Seja a tabela de pontos a seguir, para uma funo e sua derivada. Determinar o
polinmio interpolador de Hermite para esta tabela.
xi

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

1' ( x1 ) = 1' (1) = 0

'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' ( 0) = 4(0) 3 + 21( 0) 2 2( 0) 7 = 7

Ph (1) = (1) 4 + 7(1) 3 (1) 2 7(1) + 5 = 3

Ph' (1) = 4(1) 3 + 21(1) 2 2(1) 7 = 8

Ph ( 2) = ( 2) 4 + 7( 2) 3 ( 2) 2 7( 2) + 5 = 27

Ph' ( 2) = 4( 2) 3 + 21( 2) 2 2(2) 7 = 41

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.

4.8 Fenmeno de Runge


Seja a funo: f ( x) =

1
1 + 25 x 2

tabelada no intervalo [-1, 1].


1
0.8
0.6
0.4
0.2

-1

-0.5

0.5

As figuras a seguir ilustram as aproximaes da funo de Runge pelos polinmios de


interpolao p5(x) e p10(x), obtidos pelo seguinte programa Mathematica:
f[x_]=1/(1+25x^2);
n = Input["Grau do polinmio"];
t = Table[{i,f[i]},{i,-1,1,2/n}];
q[x_] = InterpolatingPolynomial[t,x];
g1 = Plot[f[x],{x,-1,1},PlotStyle->RGBColor[1,0,0]];
g2 = Plot[q[x],{x,-1,1}];
Show[g1,g2];
Aproximao por p5(x):

Aproximao por p10(x):

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.

4.9 Interpolao por "Spline"


Pode-se entender o significado da palavra spline como "haste flexvel para desenhar curvas".
A idia da interpolao por spline , ao invs de considerar todos os pontos disponveis de
uma vez para determinar um polinmio interpolador de grau elevado, considerar poucos
pontos de cada vez e construir um polinmio composto por uma sequncia de polinmios de
grau baixo, os quais so vlidos localmente. A figura a seguir ilustra esta idia.
P3(x)

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:

Sp (xi ) = f(xi ), (i = 0, 1, ..., n), ento denominada spline interpolante.

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

Integrando-se a expresso de p"i ( x) , obtm-se p 'i ( x) :

pi' ( x) =

i ( x i+ 1 x) 2
i +1 ( x x i ) 2
+ ci +
+ di
2h i
2h i

onde c i e di so constantes de integrao.


Integrando-se novamente, tem-se:

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

Como pi(x) deve ser um polinmio de interpolao, deve-se ter:

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

Substituindo os valores de c i e di na expresso de p'i ( x) , tem-se:

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

Como deve-se ter p'i ( xi ) = p'i 1 ( x i ) segue que:

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

o que representa um sistema de (n-2) equaes lineares com n incgnitas: 1 , 2 , K , n .


Fazendo a escolha: 1 = 0 e n = 0 (spline natural) chega-se no seguinte sistema de
equaes lineares:

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

Este sistema pode ser resolvido atravs do seguinte algoritmo:


Passo 1:

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)

Substituindo os valores de i ( i = 1, 2, L , n) na equao de pi(x) e rearranjando os termos,


tem-se os seguintes polinmios de interpolao por spline:

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

Neste caso, n = 5 e o sistema de equaes lineares dado por:

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

de interpolao de maior grau possvel neste caso (4 grau) e pelos polinmios de


interpolao spline de 3 grau:
t = {{-2,2},{-1,1},{0,0},{1,1},{2,2}}
f = ListPlot[t,PlotJoined->True]
q[x_] = InterpolatingPolynomial[t,x]
g = Plot[q[x],{x,-2,2}]
Show[f,g]
p1[x_] = 2 - (6/7)*(x+2) - (1/7)*(x+2)^3
p2[x_] = 1 - (9/7)*(x+1) - (3/7)*(x+1)^2 + (5/7)*(x+1)^3
p3[x_] = (12/7)*x^2 - (5/7)*x^3
p4[x_] = 1 + (9/7)*(x-1) - (3/7)*(x-1)^2 + (1/7)*(x-1)^3
s1 = Plot[p1[x],{x,-2,-1}]
s2 = Plot[p2[x],{x,-1,0}]
s3 = Plot[p3[x],{x,0,1}]
s4 = Plot[p4[x],{x,1,2}]
Show[f,s1,s2,s3,s4]

Funo Original
2
1.5
1
0.5

-2

-1

Aproximao por polinmio de interpolao do 4


grau

Aproximao por funes spline interpoladoras do


3 grau

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

representando uma funo y = f(x), determine os valores de f(1.2) e f(1.6) atravs de


interpolao polinomial do 2o grau, de modo que o erro cometido seja o menor possvel.
107

Clculo Numrico

4 Interpolao

Utilizar o mtodo da eliminao de Gauss para a soluo de sistemas de equaes


lineares.
Soluo:
Neste caso, o polinmio de interpolao tem a forma: ( x) = c 0 + c1x + c 2 x 2 . Para
determinar os coeficientes c 0 , c 1 e c 2 deve-se resolver o seguinte sistema de equaes
lineares:

1 x0
1 x1

y0
c0
x20
2
x1 c1 = y1

1 x2

x22

c2

y2

onde ( x 0 , y 0 ), ( x1 , y1 ), ( x 2 , y2 ) correspondem a 3 pontos tabelados. A escolha dos


pontos tabelados deve ser feita de tal maneira que o ponto x*, para o qual deseja-se o
valor interpolado, seja o mais central possvel . No caso de x* = 1.2 a melhor escolha ser:
x
y

0
-1

1
0

2
3

Neste caso, o sistema de equaes lineares correspondente dado por:

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

No caso de x* = 1.6 a melhor escolha dos pontos tabelados ser:


x
y

1
0

2
3

3
14

o que leva ao seguinte sistema de equaes lineares:

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

representando uma funo y = f(x), deseja-se determinar f(2.5) atravs de um polinmio de


interpolao do 2o. grau de modo que o erro cometido seja o menor possvel. Para isto:
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 do polinmio de interpolao p(x);
109

Clculo Numrico

4 Interpolao

c) Determinar f(2.5) p(2.5)


2. Dada a funo f(x) conhecida apenas nos pontos tabelados:
x
f(x)

1.00
0.2420

1.20
0.1942

1.40
0.1497

1.60
0.1109

1.80
0.0790

a) Construir a tabela de diferenas divididas para esta funo.


b) Obter uma aproximao para f(1.25) usando frmula de Newton com interpolao de
grau 3.
c) Estimar o erro cometido no item (b).

3. Seja a seguinte tabela de pontos:


x
1.566
1.567
1.568
1.569
1.570

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

Use estes dados para calcular a tan(1.5695) pelos seguintes caminhos:


a) usando interpolao de Gregory-Newton para os pontos de tan(x) tabelados;
b) usando interpolao de Hermite para calcular sen(1.5695) e cos(1.5695).
Discuta os resultados obtidos.

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

Usar a funo ELGAUSS (ver Captulo 3) para resolver o sistema.


Conferir a soluo encontrada utilizando o programa Mathematica , utilizando as seguintes
instrues:
tab = { {x1,y1}, {x2,y2}, ..., {xn,yn} }
Expand[InterpolatingPolynomial[tab,x]]

110

Clculo Numrico

4 Interpolao

Uma vez determinados os coeficientes c1, c 2 ,L , c n do polinmio interpolador, estender a


tabela para um novo espaamento h de valores de x. Para isso, escrever uma funo
INTERP(n,C,a) para calcular o valor v de um polinmio de grau n com vetor de coeficientes
C, em um ponto a, utilizando o seguinte algoritmo:
dn-1 = cn
para i = n-2 at 1 fazer:
di = c i+1 + a*d i+1
v = c1 + a*d1

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

x1 x* x n . O valor de y* pode ser calculado como:


y* = y1 + ( x * x1) 1,1 + ( x * x1 )(x * x 2 ) 1,2 + ... + ( x * x1 )( x * x 2 ) ... ( x * x n 1 ) 1, n 1
onde i, j representa a i-sima diferena dividida de ordem j. Fazer um programa que
calcule e mostre a matriz de diferenas divididas e, em seguida, escreva uma funo
INTERPOLA para calcular valores interpolados.

3. Escreva um programa que determina a matriz dos coeficientes e o vetor independente do


sistema de equaes lineares correspondente a uma aproximao por spline cbico para a
funo sen(2x) usando os pontos {0, 1/2, 1}.

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

Neste captulo sero estudadas algumas formas de aproximao de funes, inicialmente


para casos discretos, em que a funo conhecida apenas para um conjunto de pontos e,
em seguida, para o caso contnuo.

5.2 Mtodo dos Quadrados Mnimos


Seja o conjunto de pontos { (xi, yi), i = 0,1, ..., n } correspondentes a uma funo y = f(x),
linear. A figura a seguir ilustra duas retas que aproximam este conjunto de pontos.

A questo : "Qual a melhor aproximao?"


107

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

ri2 = ( p( x i ) y i ) 2 = (c 0 0 ( x i ) + c11( x i )+...+c m m ( x i ) y i ) 2 ,

O valor de R como funo de c 0 , c1 , L, c m atinge um mnimo quando as (m+1) derivadas


parciais de R em funo de c j (j = 0,1, ..., m) se anularem simultaneamente, ou seja:
n
p( x i )
R
= 2 ( p( x i ) y i )
= 0,
c j
c j
i=0
Mas, como

(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)

Observe que os valores de c 0 , c1 , L, c m que anulam simultaneamente essas equaes


levam mesmo a um ponto de mnimo, pois:
108

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

Portanto o mnimo de R ser obtido quando os valores de c 0 , c1 , L, c m satisfazem as


equaes:
n

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 )

onde as somatrias correspondem a

(L) .

A soluo do sistema normal fornece os

i=0

valores dos coeficientes c 0 , c1 , L, c m da melhor aproximao p(x) para a funo yi = f(xi),


(i = 0,1, ..., n), segundo o critrio dos quadrados mnimos.
Exemplo.
A tabela a seguir representa o desempenho de uma mquina em funo de sua idade.
Fazer uma projeo da produo que esta mquina ter aos 8 anos.
x (anos)
y (produo)

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

ou, em notao matricial:

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

onde, nas somatrias, i vai de 0 at 4. Portanto, substituindo os valores, tem-se:

c0
102.0
=
c1
190.5

5.00 10.50
10.50 30.25

Resolvendo o sistema: c 0 = 26.47 e c1 = -2.89, ou seja, a reta que melhor aproxima a


tabela acima, segundo o critrio dos quadrados mnimos, :
p(x) = 26.47 - 2.89 x
Para estimar o valor da produo aos 8 anos, basta calcular p(8) = 3.34, ou seja, aos 8
anos a mquina estar produzindo cerca de 3 peas.

O mesmo problema pode ser resolvido aproximando a funo yi = f(xi) a um polinmio do


2 grau. Neste caso tem-se:
p2(x) = c0 + c1x + c2x2
o que implica nas escolhas: 0 (x) = 1, 1(x) = x e 2 (x) = x2. Portanto, neste caso o
sistema normal ser:
4

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

ou, em notao matricial:

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

com i = 0 at 4, nas somatrias. Portanto, substituindo os valores, tem-se:

5.00 10.50 30.25 c 0


102.00
10.50 30.25 10013
.
c1 = 190.50
30.25 10013
.
354.03 c 2
512.25
Resolvendo o sistema: c 0 = 26.875, c1 = -3.434 e c2 = 0.122, ou seja, o polinmio do 2
grau que melhor aproxima a tabela acima, segundo o critrio dos quadrados mnimos, :
p2(x) = 26.875 - 3.434x + 0.122x2
Neste caso, a produo aos 8 anos dada por: p 2 (8) = 7.2
Uma forma de comparar estas duas aproximaes calculando-se o resduo total, dado
por:
n
R = ( p( x i ) y i ) 2
i=0
uma vez que boas aproximaes devem corresponder a valores pequenos de R. Para os
casos acima, tem-se:
4

R 1 = ( p( x i ) y i ) 2 = (0.025) 2 + (0.42) 2 + (0.69) 2 + (0.20) 2 + (0.09) 2 = 0.70


i= 0

. ) 2 + (0.437) 2 + (0.495) 2 + (0.329) 2 + (0.091) 2 = 0.57


R 2 = ( p 2 ( x i ) y i ) 2 = (0184
i=0

Portanto, para a tabela acima, a aproximao por um polinmio do 2 grau melhor.


Para o caso geral de ajustar um polinmio de grau m a uma tabela de pontos { (xi, yi), i =0,
1,..., n }, pelo mtodo dos quadrados mnimos (regresso polinomial), tem-se o seguinte
sistema normal:

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

onde as somatrias so todas com i = 0 at n. A soluo deste sistema de equaes


lineares ir fornecer os coeficientes do polinmio de grau m que melhor se ajusta (segundo
o critrio dos quadrados mnimos) tabela de pontos dados.
111

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

Sejam as funes de aproximao:


(a) p(x) = c0 + c1x + c2x2 (ou seja: 0 (x) = 1, 1(x) = x e 2 (x) = x2)
(b) q(x) = c0 + c1/x (ou seja: 0 (x) = 1 e 1(x) = 1/x)
Para o caso (a) tem-se o seguinte sistema normal:

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).

5.3 Aproximao de Funes Contnuas


Uma outra situao em que a aproximao de funes importante ocorre quando y = f(x),
mesmo sendo conhecida, difcil e onerosa de ser calculada. Se o clculo dessa funo
ocorre num processo iterativo, por exemplo, pode ser necessrio avaliar a funo um
grande nmero de vezes, com grande esforo computacional. Neste caso, pode ser
vantajoso substituir f(x) por uma outra funo p(x), mais simples de ser manipulada. Uma
maneira de realizar tal aproximao atravs do teorema de Taylor:
Teorema (Taylor). Seja f(x) uma funo contnua sobre um intervalo [a, b] e seja x0 [a,
b]. Ento se f(x) for suficientemente diferencivel em [a, b] pode-se escrever:
f ( x) = f ( x 0 ) + ( x x 0 ) f '( x 0 ) +

( 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)!

onde (x0, x).


Ento, se a srie de Taylor for convergente e n for suficientemente grande, o polinmio:

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)!

como: | x - a | (b - a), para x [a, b], pode-se escrever:

E n ( x) <

( b a ) n +1
M n +1
( n + 1)!

113

Clculo Numrico

5 Aproximao de Funes

Exemplo. Sejam as aproximaes de ex em [0, 1] dadas pelos polinmios p 3 ( x ) e p 4 ( x )


acima.
f (4) ( x ) = f (5) (x ) = e x Mn+1 = Max e x = e1 = 2.71828
0 x 1

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).

Valor correto, neste caso, dado por: e0.5 = 1.64872127...

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)

onde: 0 ( x), 1( x),..., m ( x) so funes escolhidas convenientemente, e c0, c1, ..., cm


so constantes a serem determinadas de modo a minimizar o valor de:
b
b
R = ( p( x) f ( x)) 2 dx = (c 0 0 ( x) + c11( x)+...+ c m m ( x) f ( x)) 2 dx ,
a
a

114

Clculo Numrico

5 Aproximao de Funes

Como no caso discreto, o valor mnimo de R como funo de c 0 , c1 , L, c m ser obtido


quando as (m+1) derivadas parciais de R em funo de cj (j = 0,1, ..., m) se anularem
simultaneamente, ou seja:
b
R
p( x)
dx = 0 ,
= 2 ( p( x) f ( x))
(j = 0,1, ..., m)
c j
c j
a
Mas:

p( x)
= j ( x) , e portanto o mnimo de R ser obtido quando os valores de
c j

c 0 , c1 ,L, c m satisfizerem as equaes:


b

2 (c 0 0 ( x) + c11( x)+...+ c m m ( x) f ( x)) j ( x)dx = 0

(j = 0,1, ..., m)

a
ou seja:
b

(c 0 0 ( x) + c11( x)+...+c m m ( x)) j ( x)dx = f ( x) j ( x)dx

(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

onde os limites de integrao so 0 e 1. Pode-se notar que, no caso geral da funo de


aproximao ser um polinmio de grau m, os elementos da matriz A dos coeficientes so
tais que:
b

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)

Logo, para o caso acima, a matriz dos coeficientes ser:

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

Logo, o sistema normal ser:

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

A matriz A dada por A i, j =


(i,j = 0,1, ..., m) conhecida como matriz de Hilbert.
i + j+1
Problemas que envolvem soluo de sistemas de equaes lineares onde a matriz dos
coeficientes uma matriz de Hilbert so problemas mal-condicionados. O malcondicionamento torna-se mais pronunciado medida que m aumenta.

5.4 Polinmios Ortogonais


Para evitar o mal-condicionamento das matrizes de Hilbert pode-se empregar polinmios
ortogonais. Dois polinmios distintos P(x) e Q(x) so ortogonais em um intervalo [a, b] se:

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

Tais polinmios so ortogonais no intervalo [-1, 1], ou seja:


1

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

Considere, ento, a aproximao por quadrados mnimos da forma:

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

o que leva ao sistema de equaes normais A = b, onde:


1
1

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

Da ortogonalidade dos polinmios de Legendre vem que os elementos da matriz A so no


nulos apenas na diagonal principal (i = j). Portanto, a soluo do sistema ser:

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)

Com os valores de i (i = 0, 1, 2) pode-se determinar os coeficientes c 0 , c1 , c 2 a partir de:

c0

1
+ c2
3

= 0
= 1

2
c
3 2

= 2

c1

cuja soluo :

1
c0 = 0 2
2
c1 = 1
c2 =

2 2

Exemplo: Aproximar a funo ex no intervalo [-1, 1].


Neste caso, tem-se:

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

ou seja, a funo de aproximao por quadrados mnimos dada por:

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

Portanto, o uso de polinmios ortogonais na aproximao de funes pelo mtodo dos


quadrados mnimos, do ponto de vista computacional, muito vantajoso, tanto em tempo
de processamento ( necessrio calcular apenas os elementos da diagonal principal da
matriz dos coeficientes), como em espao de memria (no necessrio espao para
armazenar a matriz dos coeficientes).
O uso dos polinmios de Legendre, no entanto, cria um problema: E se o intervalo onde se
deseja a aproximao no for [-1, 1]?. Neste caso, existem duas maneiras de resolver o
problema:

Troca de varivel. Basta substituir a varivel x pela varivel z:

x [ a , b]

z=

2x a b
[1, 1]
ba

Processo de ortogonalizao de Gram-Schmidt. Neste caso procura-se determinar uma


sequncia de polinmios { Q i ( x), i = 0, 1, K } com Q i ( x ) de grau i, que sejam
ortogonais em [a, b].

Para ilustrar, considere que deseja-se determinar os polinmios Q 0 (x ), Q1 ( x ) e Q 2 ( x ) ,


ortogonais em [a, b]. Pode-se, ento, definir:

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,

c 22 = 6 . Portanto, os seguintes polinmios so ortogonais em [0, 1]:

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

Exemplo. Aproximar ex no intervalo [0, 1] a um polinmio do 2 grau.


Neste caso, tem-se:

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

considerado acima, para determinar os polinmios ortogonais


{ Q i ( x), i = 0, 1, K } escolheu-se (arbitrariamente) os coeficientes c 0,i (i = 0, 1, K ) como
sendo iguais a 1. Evidentemente, existem outras escolhas. Uma escolha possvel fixar as
condies de normalizao, dadas por:

ab ( Q i ( x)) dx = 1
2

i = 0, 1, K

Com as condies de normalizao os polinmios obtidos so denominados ortonormais.


Se o processo de aproximao por quadrados mnimos for expresso em termos de
polinmios ortonormais, a matriz dos coeficientes do sistema de equaes normais ser a
matriz identidade. Portanto, neste caso, os coeficientes i (i = 0, 1, K ) sero calculados
diretamente por:

i = a f ( x) Q i ( x) dx
b

i = 0, 1, K

Exemplo. Polinmios ortonormais em [0, 1].


Sejam os polinmios:

Q 0 (x ) = c 00
Q1 ( x ) = c10 + c11x
Q 2 ( x ) = c 20 + c 21x + c 22 x 2
/
Pela ortogonalidade tem-se:

01 Q 0 ( x) Q1 ( x) dx = 01 c 00 ( c10 + c11x) dx = 0 c 00 c10 +

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

Pela normalizao tem-se:

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

c 221 c 21c 22 c 222


2
2
+
+
=1
c 20 + c 20 c 21 + c 20c 22 +

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

Resolvendo as seis equaes chega-se aos seguintes valores:

c 00 = 1
c10 = 3
c 20 = 5

c11 = 2 3
c 21 = 6 5

c 22 = 6 5

Portanto, os polinmios a seguir so ortonormais em [0, 1]:

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].

Com os polinmios ortonormais pode-se facilmente determinar o polinmio de aproximao


de quadrados mnimos:

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

Portanto, como A matriz identidade:

i = 0 f ( x) Q i ( x) dx
1

i = 0, 1, 2

Exemplo. Aproximar ex no intervalo [0, 1] a um polinmio do 2 grau, usando polinmios


ortonormais.
Neste caso, tem-se:
1
1
0 = 0 e x Q 0 ( x) dx = 0 e x dx = e 1
1
1
1 = 0 e x Q1 ( x) dx = 0 e x ( 3 2 3 x) dx = 3 (e 3)
1
1
2 = 0 e x Q 2 ( x) dx = 0 e x ( 5 6 5 x + 6 5 x 2 ) dx = 5(7 e 19)

Portanto:

p 2 ( x) = 1013
.
+ 0.851x + 0.839 x 2
que , evidentemente, o mesmo polinmio de aproximao obtido anteriormente (ver
exemplos anteriores).

5.5 Mtodo dos Quadrados Mnimos Generalizado


Embora existam teoremas, como o de Weierstrass, por exemplo (ver Captulo 4) que
garantem que para um intervalo [a, b] sempre possvel determinar uma boa aproximao
de uma funo contnua f(x) por um polinmio pn(x), existem fenmenos que levam a
pensar em outros modelos de aproximao.
Por exemplo, sabe-se (pela natureza do problema) que a funo f(x) peridica em [-, ].
Neste caso natural usar uma funo de aproximao como uma combinao linear de
funes peridicas.
Seja = { i ( x), i = 0, 1, K , n } um conjunto de funes linearmente independentes
denominadas funes-base. Seja a funo de aproximao dada por:
n

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:

I() = a ( f ( x) L(, , x)) dx


2

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() = a ( f ( x) L(, , x)) w ( x) dx


2

Os coeficientes 0 , 1 , K , n que minimizam esta funo so tais que:

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

o que leva ao seguinte sistema de equaes normais:


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

Exemplo. Seja a tabela abaixo, representando uma funo y = f(x):


xi

1.0

2.0

4.0

6.0

yi

10.0

5.0

2.0

1.0

a) Seja a funo de aproximao L( x) = a 0 + a 1x + a 2 x 2


Neste caso, w k = 1 ( k = 0, 1, 2, 3) e 0 ( x) = 1; 1 ( x) = x; 2 ( x) = x 2 , ou seja:
i ( x) = x i (i = 0, 1, 2) .
Portanto, para este caso, tem-se:
3

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

o que leva funo de aproximao:


L(x) = 14.312 - 5.266 x + 0.513 x2
Calculando a soma dos quadrados dos resduos tem-se:
2

R=

( f ( x k ) L( x k ) ) =

k=0

= (10 - 9.558)2 + (5 - 5.829)2 + (2 - 1.447)2 + (1 - 1.166)2 = 1.216

b) Considere agora a funo de aproximao L( x) = c 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

Neste caso, a soma dos quadrados dos resduos ser:


2

R=

( f ( x k ) L( x k ) ) =

k=0

= (10 - 10.107)2 + (5 - 4.724)2 + (2 - 2.033)2 + (1 - 1.136)2 = 0.107

Pelos valores do resduo total R conclui-se, portanto, que a aproximao (b) melhor
do que a aproximao (a).

O processo de ortogonalizao de Gram-Schmidt pode ser estendido para gerar uma


sequncia de funes ortogonais a partir de um conjunto = { i ( x), i = 0, 1, K , n } de
funes-base linearmente independentes:

0 ( x) = 0 ( x)
i 1

i ( x) = i ( x) c ij j ( x)

i = 1, 2, K , n

j= 0

Como as funes i ( x) so construdas recursivamente, para que no estgio i as funes

{ k ( x),

k = 0, 1, K , i

} formem um conjunto ortogonal, deve-se ter:

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

Portanto, as funes ortogonais so obtidas por:

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

Exemplo. Determinar funes ortogonais em [-1, 1] a partir do conjunto de funes-base

{ 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

e assim por diante.

Os polinmios:

Ti ( x) = cos(i cos1 ( x))

i = 0, 1, K

so conhecidos como polinmios de Tchebyshev e tambm so ortogonais em [-1, 1] com


relao funo-peso w ( x) =

1
1 x2

. facil verificar isto, pois para i j:

11 Ti ( x) Tj ( x) w ( x) dx = 11 cos(i cos 1 ( x)) cos( j cos1 ( x))


Fazendo a mudana de varivel:

u = cos 1 ( x)

tem-se, para os limites de integrao:

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

i sen( iu ju) + j sen(iu ju) + i sen(iu + ju) j sen( iu + ju)


u) cos( j u) du =

2 ( i 2 j2 )

i sen[ (i j)] + j sen[ (i j)] + i sen[ (i j)] j sen[ (i j)]


2 ( i 2 j2 )
i sen[0] + j sen[0] + i sen[ 0] j sen[0]
2 ( i 2 j2 )

= 00 = 0

Sabe-se tambm que:

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)

Portanto, os polinmios de Tchebyshev podem ser escritos de forma recursiva, como:

Ti ( x) = 2 x Ti 1 ( x) Ti 2 ( x)

i = 2, 3, K

Os polinmios obtidos desta forma, a menos de um fator, so os mesmos obtidos pelo


processo de ortogonalizao de Gram-Schmidt.
Exemplo. Aproximar a funo ex no intervalo [-1, 1] uma funo da forma:

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

e que para polinmios ortogonais o sistema de equaes normais diagonal. Portanto:

ab f ( x) Ti ( x) w ( x) dx

i = b

T ( x) Ti ( x) w ( x) dx
a i

Para o exemplo acima:

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:

T0 ( x) = cos[0 cos1 ( x)] = cos[0] = 1


T1 ( x) = cos[1 cos1 ( x)] = x
T2 ( x) = 2 x T1 ( x) T0 ( x) = 2 x x 1 = 2 x 2 1
T3 ( x) = 2 x T2 ( x) T1 ( x) = 2 x (2 x 2 1) x = 4 x 3 3x
Portanto, a funo de aproximao ser:

.
[1] + 1130
.
[ x] + 0.271 [2 x 2 1] + 0.044 [4 x 3 3x]
p 3 ( x) = 1266
ou seja:

p 3 ( x) = 0.995 + 0.998 x + 0.542 x 2 + 0176


x3
.
Portanto, usando polinmios de Tchebyshev a dificuldade est na avaliao das integrais
para o clculo dos coeficientes i (i = 0, 1, K , n) . Como calcular integrais numericamente
o assunto do captulo a seguir.

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

utilizando o mtodo dos quadrados mnimos.


130

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

Portanto, o sistema normal ser:


5

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

Substituindo os valores, tem-se:

5.0

10.2

9.8

c0

10.2 23.9

=
c1

097

c0

215
.

=
c1

0.49

Como ln(a) = c 0 e ln(b) = c1 tem-se:


c

0.97

a=e 0 =e
= 0.38
c1
0.49
b=e =e
= 0.61
2

Portanto a funo de aproximao ser: y = 0.38 0.61x .

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

2. Dada a funo f(x) conhecida apenas nos pontos tabelados:


x
f(x)

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.

3. Encontre os polinmios de grau 1, 2 e 3 que melhor ajustam a tabela abaixo, no sentido


dos quadrados mnimos. Qual deles fornece o menor resduo?
x
f(x)

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

5. O nmero y de bactrias por unidade de volume existente em uma cultura, aps x


horas, apresentado na tabela a seguir. Ajuste aos dados as curvas y = ab x e y = ax b .
Qual delas parece ser a melhor aproximao?
x (horas)
y (bactrias/volume)

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.

7. Escreva um programa para determinar uma aproximao de quadrados mnimos da


forma L(, x ) = 1 + 2 sen( x ) + 3 cos(x ) para a funo y = e x no intervalo [-, ] (ou
seja, o programa deve determinar os valores de 1 , 2 e 3 ).

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

onde as somatrias so todas com i = 1, ..., n. Fazer um programa que:


L o nmero de pontos (n) e a tabela { ( x i , y i ), i = 1, 2, ..., n };
L o grau do polinmio de aproximao (m);
Constri e mostra o sistema de equaes normais;
Resolve o sistema para determinar os coeficientes do polinmio que melhor
aproxima a tabela de pontos, pelo critrio dos quadrados mnimos;
e) Determina a soma total dos resduos ao quadrado. Lembrar que, uma vez
determinados os coeficientes c i (i = 1, 2, ..., m+1), o valor do polinmio em um
ponto xs qualquer pode ser calculado como:
a)
b)
c)
d)

valor = c m+1
para i = m, m-1, ..., 1 fazer:
valor = valor * xs + c i

2. Fazer um programa para expandir a funo y = cos(x) em torno de um ponto x = x 0 ,


usando o teorema de Taylor, para encontrar um polinmio de aproximao. O grau do
polinmio deve ser tal que o erro de aproximao seja menor que . O programa dever
mostrar o polinmio de aproximao encontrado e testar o resultado da aproximao
para valores de x em um intervalo [a, b] que contenha o ponto x 0 .
Confira o polinmio com o obtido pelo programa Mathematica, utilizando a funo:
Series[Cos[x], {x, x0, n}]

onde n o nmero de termos da srie de Taylor a serem considerados.

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:

a funo f(x) conhecida apenas para um conjunto de pontos;


o problema aparece como um subproblema em um mtodo numrico (como no caso de
regresso de funes contnuas, visto no captulo anterior).

Os mtodos de integrao numrica realizam a seguinte aproximao:


b

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 =

e x dx pelos seguintes mtodos numricos:

1
a)
[ f (1) + 4f (0) + f (1)]
3
b)

1
[5f ( 3 / 5 ) + 8f (0) + 5f ( 3 / 5 )]
9

Neste caso, tem-se:


Valor Correto
2.35040

Pela Regra (a)


2.36205

Pela Regra (b)


2.35034

O erro de truncamento em um mtodo de quadratura dado por E = I - R, onde:


135

Clculo Numrico

6 Integrao Numrica

I = f ( x)dx

R=

w i f (xi )

i=0

Em geral, no possvel saber o valor de E, mas pode-se determinar um limite superior


para o valor do erro, ou seja:
|E|M
para um valor M > 0. Diz-se que uma regra de quadratura tem preciso de grau m, se:

E = 0 quando f(x) = 1, x, x2, ..., xm


E 0 para f(x) = xm+1

Exemplo.

I=

2 / (i + 1), para i par


i + 1 1

=
i + 1
1
0, para i impar

x
x i dx =

Calculando I pelas regras (a) e (b) acima, tem-se:


Integrando
1
x
x2

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)

Neste captulo sero estudados os seguintes mtodos de integrao numrica:


136

Clculo Numrico

6 Integrao Numrica

Frmulas de Newton-Cotes

Mtodos de Extrapolao

Frmulas de Gauss

os pontos x i (i = 0,1, ..., m) so igualmente


espaados no intervalo [a, b] de integrao, ou
seja: x 0 = a e x i = x 0 + i h , com h = x i x i 1 (i =
1,2, ..., m);
os pesos w i (i = 0,1, ..., m) so escolhidos a partir
do polinmio interpolador de grau m que passa
pelos pontos x i ;
a regra exata para polinmios de at grau m.
so mtodos que aceleram as frmulas de
Newton-Cotes pela escolha de passos de
integrao convenientes.
os pontos x i e os pesos w i (i = 0,1, ..., m) so
escolhidos de modo que a regra seja exata para
polinmios de at grau p = 2m+1;
os pontos x i no so igualmente espaados.

6.2 Mtodos de Newton-Cotes


A idia bsica dos mtodos de Newton-Cotes aproximar a funo f(x) a um polinmio de
grau m que passa por pontos x i (i = 0,1, ..., m) tais que a = x0 < x1 < ... < xm = b.
Dependendo do grau do polinmio, tem-se diversas regras de quadratura de NewtonCotes.
O caso mais simples, quando o polinmio tem grau 0, conhecido como regra dos
retngulos.

REGRA DOS RETNGULOS


b

Nesta regra, para calcular I = f ( x)dx ,


a

y = f(x)

I
x
a

tem-se o seguinte procedimento:

137

Clculo Numrico

6 Integrao Numrica

particionar o intervalo [a, b] em n subintervalos iguais tais que x 0 = a , x n = b e


x i x i 1 = h (constante);
aproximar f(x), em cada subintervalo [xi, xi+1], a um polinmio de grau 0, ou seja, uma
constante, que pode ser:

( )
( )

a) f x i (valor de f(x) no incio do subintervalo),


b) f x i+1 (valor de f(x) no fim do subintervalo, ou

x i +1 + x i
(valor de f(x) no meio do subintervalo)

c) f

As figuras a seguir ilustram este procedimento para os casos (a) e (b).


(a)

(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

Evidentemente, a escolha do passo h importante na preciso do resultado, como ilustram


as figuras a seguir:

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.

REGRA DOS TRAPZIOS


A regra dos trapzios uma extenso natural da regra dos retngulos, onde em cada
subintervalo considera-se um polinmio interpolador de grau 1, ou seja, uma reta. Portanto,
na regra dos trapzios tem-se:

y
y = f(x)

T1

T2

T3

T4
x
b

I = f ( x)dx
a

Ti

i =1

Considerando um intervalo [xi, xi+1] qualquer tem-se:

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

f ' ' (x) = e x .

Logo, para x [1, 2],

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

Com estes pontos obtm-se os seguintes valores:


Valor Correto
4.6708

Regra dos Trapzios


4.6714

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:

Polinmio Interpolador P2(x)

y = f(x)

x
xi

xi+1

xi+2

Pelo polinmio de interpolao de Lagrange, tem-se:


p 2 ( x) =

( 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

Portanto, como xi+1 - xi = h, tem-se:


xi +2

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

Para a regra de Simpson, o erro de truncamento dado por:

| E |

b a 4 iv
h | f () |
180

( a , b)

Exemplo: Resolver o problema anterior, usando o mtodo de Simpson.


Neste caso, para determinar qual deve ser o passo de integrao h, tem-se:

| E |

ba 4
h M
180

h4

180.| E|
( b a ). M

Portanto:

180.(10
h4

3 )

(2 1).7.39

0.4

Neste caso, o nmero de subintervalos tal que:

n=

b a 21
=
= 2.5
h
0.4

Ento, como n deve ser par na regra de Simpson, seja n = 4. Portanto:


141

Clculo Numrico

6 Integrao Numrica

h=

b a 21
=
= 0.25
n
4

Assim, pela regra de Simpson, suficiente considerar somente os seguintes pontos


(comparar com os pontos necessrios para a regra dos trapzios):
x
1.00
1.25
1.50
1.75
2.00

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

FRMULA GERAL DAS QUADRATURAS NEWTONIANAS


Pode-se generalizar os procedimentos anteriores e aproximar f(x) a um polinmio de grau
m. Para isto, cada subintervalo de [a, b] deve conter (m+1) pontos. Considere, sem perda
de generalidade, apenas um subintervalo. Neste caso,

xx m f ( x)dx xx m p m ( x)dx
0

Do polinmio de interpolao de Gregory-Newton (ver Captulo 4), tem-se:


p m ( x) = y 0 + ( x x 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

onde yi = f(xi). Seja z =

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

f ( x)dx p m ( x)dx = a k k y 0 ( hdz) = h a k k y 0 dz


k=0 0

onde o erro de truncamento Rm+1 dado por:

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

f ( x)dx h a k k y 0 dz = h[ a 0 0 y 0 dz + a 11y 0 dz] = h[ y 0 1dz + ( y1 y 0 ) zdz]

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

(regra dos trapzios)

O erro de truncamento neste subintervalo dado por:


1
1z z
( 1)
3
3
E 0,1 = R 2 = h a 2 f "()dz = h f "()
dz
2
0
0
Mas:
143

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 )

Para todo o intervalo [a, b] tem-se:


b

n h

i = 12

h
2

h
2

h
2

f ( x)dx [ f ( x i 1 ) + f ( x i )] = [ f ( x 0 ) + f ( x1 )] + [ f (x1 ) + f ( x 2 )]+...+ [ f ( x n 1 ) + f ( x n )]

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 o erro de truncamento total ser dado por:

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

Exemplo: Determinar o mtodo de Simpson, fazendo m = 2 na frmula geral das


quadraturas newtonianas.
Neste caso, tem-se:
x2

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)

f ( x)dx = h y 0 1dz + ( y1 y 0 ) zdz + ( y 2 2 y1 + y 0 )


dz
2

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)

E T = R 3 = h 4 f ''' () a 3dz =h 4 f ''' ()

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

Portanto, o erro de truncamento para a regra de Simpson no depende de R 3 , ou seja,


exata para polinmios de at grau 3 (ver definio de preciso de uma regra de
quadratura).
O erro na regra de Simpson, no intervalo [ x 0 , x 2 ], dado por:
2

E T = R 4 = h 5 f ( iv) () a 4 dz
0

Observar que o limite superior de integrao 2 (e no 3) porque se est considerando o


intervalo [ x 0 , x 2 ]. Portanto:
5 ( iv )

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

com erro de truncamento:

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)

6.3 Mtodos de Extrapolao


Os mtodos de extrapolao (ou mtodos de Richardson) baseiam-se em determinar o
b
valor de I = f ( x)dx atravs de aproximaes T(h) tais que lim T(h) = I . O mtodo de
h 0
a
Romberg aplica tal idia regra dos trapzios, utilizando o Teorema de Euler-MacLaurin
para expressar o erro de truncamento.
b

Teorema (Euler-MacLaurin). Se T(h) aproximao de I = f ( x)dx com h =


a
erro de truncamento pode ser expresso como:

ba
, ento o
m

I T(h) = b1h 2 + b 2 h 4 +...+ b m h 2 m +...


onde:

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

com n = 2,3, ...


146

Clculo Numrico

6 Integrao Numrica

Exemplo. Os primeiros nmeros de Bernoulli so tais que:


2
2
2
1



n=2
0
0 21 + 0 = 0 1 =
2 k =
2 1 + 2 2 =
2
k =1 k
1
2
2

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

Pode-se observar que na expresso de Euler-MacLaurin, os b j (j = 1,2, ..., m) no


dependem de h. Seja ento T0, j uma aproximao para I, obtida pela regra dos trapzios
com h j =

ba
2j

. Pelo teorema acima tem-se:

I T0, j = b1h 2j + b 2 h 4j + b 3 h 6j +...


hj
Por outro lado, para h j+1 =
, tem-se:
2

(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, ...)

onde os bj (j = 0,1,2, ...) so os mesmos, pois independem de do valor de h. Portanto,


pode-se escrever:

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:

4(I T0, j+ 1 ) = b1h 2j +

Subtraindo esta ltima expresso de (I - T0, j ) tem-se:

4(I T0, j+1 ) (I T0, j ) = ( b1h 2j +

1
1
b 2 h 4j + b 3 h 6j +...) - ( b1h 2j + b 2 h 4j + b 3 h 6j +...)
4
16

(j = 0,1,2, ...). Portanto:

3I (4T0, j+ 1 T0, j ) =
Dividindo por 3:

(4T0, j+1 T0, j )


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

no depende de h). Portanto:

T0, j e T0, j+1 so aproximaes de I com erro da ordem de h 2j


T1, j, calculado como uma combinao linear de T0, j e T0, j+1, uma aproximao de I
com erro da ordem de h 4j , ou seja, T1, j uma aproximao melhor que qualquer uma
das aproximaes anteriores T0, j ou T0, j+1.

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

16T1, j+1 T1, j


14415
2443

= d 3 h 6j +...

com d 3 =

3c 3
,L
4

T2, j
Em outras palavras, T2, j =

16T1, j+1 T1, j


15

uma aproximao de I com erro da ordem de

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.

Assim, o esquema da quadratura de Romberg pode ser escrito como:


Dados T0, j (j = 0,1, ..., m), aproximaes pela regra dos trapzios calculadas com passos

h=

ba
2j

, determinar novas aproximaes por:

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

6.4 Quadratura de Gauss


Sejam I =

f ( x)dx

G = w1f(x1 ) + w 2 f(x 2 ) . Considere a seguinte questo: "Quais

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

Resolvendo este sistema, tem-se: w 1 = w 2 = 1 e x1 = x 2 =

1
. Portanto, a regra de
3

quadratura:

G 2 = f (

1
1
) + f( )
3
3

uma aproximao com preciso de grau 3 para I (quadratura de Gauss de 2 pontos).


Para uma regra de 3 pontos, tem-se:

G 3 = w 1f(x 1 ) + w 2 f(x 2 ) + w 3f(x 3 )


onde w 1 , w 2 , w 3 e x1 , x 2 , x 3 so determinados de modo a se ter G 3 exata para

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

uma regra de quadratura com preciso de grau 5 (quadratura de Gauss de 3 pontos).


Estas regras de quadratura so conhecidas como regras de Gauss-Legendre e procedendo
desta forma pode-se determinar regras G 4 (com preciso de grau 7), G 5 (com preciso
de grau 9), e assim sucessivamente.

Como foi visto no Captulo 4, os polinmios de Legendre podem ser definidos


recursivamente, como:

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,...

Exemplo. Polinmios de Legendre L 2 (x) e L 3 (x) :

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

Pode-se notar que:

L 2 ( x) = 0 Razes: x1 =

1
3

3
L 3 ( x) = 0 Razes: x1 =
5

; x2 =

1
3
3
5

; x2 = 0 ; x3 =

Teorema. Os pontos xi de avaliao de funo para a regra de Gauss Gn so os zeros do


polinmio de Legendre de grau n. Alm disto, os pesos wi so dados por:

wi =

| L'n ( x i ) |2 1 x i2

(i = 1,2, ..., n)

Exemplo: Determinar pelo teorema acima a regra de Gauss de 2 pontos.

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

Exerccio. Determinar a regra de Gauss de 3 pontos.

O erro de truncamento da quadratura de Gauss Gn dado por:

En =

Exemplo: Calcular I =

2 ( 2 n +1) ( n !) 4 (2 n)
f
()
(2 n + 1)(2 n!) 3

(1, 1)

e x dx pela regra de Gauss de 4 pontos, dada por:

G 4 = 0.34785 f(-0.86113) + 0.65214 f(-0.33998) + 0.65214 f(0.33998) + 0.34785 f(0.86113)


151

Clculo Numrico

6 Integrao Numrica

Neste caso, tem-se:

G 4 = 0.34785 e -0.86113 + 0.65214 e -0.33998 + 0.65214 e 0.33998 + 0.34785 e 0.86113 = 2.3504021


Por outro lado, analiticamente, tem-se:

I=

e x dx = [ e x ]

= e1 e 1 = 2.3504023

Pela expresso do erro de truncamento tem-se:

2 9 (4!) 4 (8)
E4 =
f ()
9 (8!) 3

(1, 1)

Portanto, como f (8) ( x) = e x , f (8) () e1 . Com isto pode-se escrever:

E4

2 9 (4!) 4 1 1698
108
.
e
=
2.718 = 0.0000007
9 (8!) 3
5899
1014
.

o que coerente com os resultados acima.


Os pontos x i e os pesos w i (i = 1, 2, ..., n) para as regras de quadratura gaussiana so
conhecidos e tabelados para vrios valores de n. A tabela a seguir ilustra alguns destes
valores.
n

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

O valor de G pode ser calculado como:


1
1
1
1
( 0.86113+ 3)
( 0.33998 + 3)
( 0.33998 + 3)
( 0.86113+ 3)
2
2
2
2
G = 0.34785 e
+ 0.65214 e
+ 0.65214 e
+ 0.34785 e

ou seja:

G = 0.34785 e1.069435 + 0.65214 e1.33001 + 0.65214 e1.66999 + 0.34785 e1.930565


= 1.013542 + 2.465794 + 3.464242 + 2.397870 = 9.341448
Assim, I =

1
1
G = 9.341448 = 4.670724
2
2
2

Para comparar, analiticamente, sabe-se que: I = e x dx = e 2 e1 = 4.670774


1

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).

6.5 Quadraturas Adaptativas


Seja f(x) uma funo tal que no intervalo [ x 0 , x1 ] varia lentamente e no intervalo [ x1 , x 2 ]
varia rapidamente. Nos trechos em que esta funo varia lentamente o espaamento h
153

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

I j = f ( x) dx . Seja o valor de I j calculado pela regra de


xj

Simpson com passo h denominado como S hj .

Assim, pela regra de Simpson com passo


hj

S j2 =

hj
6

hj
2

tem-se:

[ f j + 4 f j+ 1 / 2 + f j+ 1 ]

com erro de truncamento dado por:


hj

5
1 h j ( iv)
2
()
Ij Sj = f
90 2

[ x j , x j +1 ]

Considere agora a aproximao obtida pela regra de Simpson com passo


hj

S j4 =

hj
12

[ f j + 4 f j + 1 / 4 + 2 f j + 1 / 2 + 4 f j+ 3 / 4 + f j + 1 ]

com erro de truncamento dado por:


hj

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

Para todo o intervalo [a, b] sejam os pontos: a = x1 ,


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)

onde corresponde preciso desejada.


Neste caso, o erro de truncamento total ser limitado por:
hj

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)

, ento tem-se para o erro de truncamento total:

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

para todo subintervalo h j ( j = 1, 2, ..., n-1).


155

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

dx com preciso = 0.001

Pelo grfico a seguir:


y
8
6
4
2
x
1

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

Para verificar se esta aproximao satisfaz a preciso tem-se:


h1

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

Seja o subintervalo [5, 9], com h 2 = b 2 - a 2 = 9 - 5 = 4. Para este subintervalo tem-se:


h2
4 1
1 1
S 22 = + 4 + = 0.58836
6 5
7 9
h2
4 1
1
1
1 1
S 24 = + 4 + 2 + 4 + = 0.58783
12 5
6
7
8 9
h2

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

Seja agora o subintervalo [1, 5]. Tem-se ento: h 2 = b 2 - a 2 = 5 - 1 = 4 e:


h2
4 1
1 1
.
S 22 = + 4 + = 168889
6 1
3 5
h2
4 1
1
1
1 1
.
S 24 = + 4 + 2 + 4 + = 162222
12 1
2
3
4 5
h2

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
.

Intervalo [3, 5]: h 3 = b 3 - a 3 = 5 - 3 = 2


h3
2 1
1 1
S 32 = + 4 + = 0.51111
63
4 5

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

Para ilustrar, sabe-se que:


9 1

I=

1 x

dx = [ ln( x)] 1 = 2.19722


9

EXERCCIOS RESOLVIDOS

1. Dada a funo f(x) conhecida apenas para os pontos tabelados:


x
f(x)

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

[3.0, 9.0] com passo h = 1.0


Para o intervalo [9.0, 9.5] no possvel aplicar a regra de Simpson (S) devendo,
portanto, ser usada a regra dos Trapzios (T), ou seja:
9.5

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

ser calculada como:

2.0

Assim:
3.0

h
3

f ( x) dx = [ f (2.0) + 4 f (2.5) + f (3.0)] =

2.0
9.0

0.5
[0.21 + 4 0.30 + 0.37] = 0.30
3

h
3

f ( x) dx = [ f (3.0) + 4 f (4.0) + 2 f (5.0) + 4 f (6.0) + 2 f (7.0) + 4 f (8.0) + f (9.0)] =

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:

f ( x) dx = 0.30 + 2.82 + 014


. = 3.26

2.0

2. Calcular I = e x sen( x) dx usando o esquema de extrapolao de Romberg, de modo


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

, e os demais valores de Ti, j so tais que: Ti, j = i


[4 i Ti 1, j+1 Ti 1, j ] .
2
4 1
Portanto, sendo f ( x) = e x sen( x) ,
j

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 =

[ f (0) + 2 f ( ) + f ( )] = 0.7854[0 + 0.4158 + 0] = 0.3266


4
2

por extrapolao, tem-se:

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

por extrapolao, tem-se:

T1,1 =

1
1
[4T0,2 T0,1 ] = [4 0.4691 0.3266] = 0.5166
4 1
3

por extrapolao, tem-se:

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.

2. Dada a funo f(x) conhecida apenas para os pontos tabelados:


x
f(x)

-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 .

usando a regra de Simpson de modo que o erro seja

4. Calcular I =

x ln( x)dx

usando a regra dos trapzios e o esquema de Romberg, de

modo a ter um resultado de ordem h 6 .

5. Calcular os valores das integrais dos exerccios 3 e 4 pela regra de Gauss de 5 pontos.
Compare os resultados obtidos.

6. Os mtodos de integrao numrica vistos podem ser usados tambm no clculo de


integrais duplas. Considere, por exemplo, que deseja-se calcular:

I = f ( x, y) dx dy
R

onde R a regio de integrao. Considere uma discretizao da regio R onde os


valores de x esto espaados em m intervalos de tamanho h e os valores de y esto
espaados em n intervalos de tamanho k. A figura a seguir ilustra esta discretizao
para m = 2 e n = 2.
y
y2
k
y1

k
y0
x
x0

x1
h

Nestas condies, I =

f ( x, y) dx dy = xx 2 yy 2
R

x2

trapzios. Tem-se ento:

161

f ( x, y) dy dx . Seja ento o mtodo dos

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

Empregando a abordagem acima, calcular:


a) I = 2 1 xy 2 dx dy , com m = n = 3, pela regra dos trapzios.
3 2

b) I = 0 1 e x y dx dy , com m = 4 e n = 2, pela regra de Simpson.


1 3

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

com erro dado por: E =

b a 4 iv
ba
h f () , com (a, b) e n =
deve ser um inteiro
180
h

par.

Fazer um programa para calcular I = 0 e x sin( x) dx pelo metodo de Simpson, de


forma que o erro seja menor do que 0.0000001

2. Fazer um programa para resolver o problema do exerccio anterior pelo mtodo de


quadratura de Gauss, dada por: I =

w i f ( x i ) , onde g a ordem do mtodo. Para a

i =1

quadratura de Gauss de ordem 8 tem-se os seguintes valores de abscissas ( x i ) e


pesos ( w i ):
Abscissas
Pesos
-0.1834346424
0.3626837833
-0.5255324099
0.3137066458
162

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

Testar o resultado obtido com o programa Mathematica, usando as funes:


f[x_]=Exp[-x]*Sin[x]
NIntegrate[f[x], {x, 0, Pi}]

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

Caso contrrio, determinar a aproximao I2 da seguinte maneira:

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:

I = e x sin ( x )dx = 0.521607


0

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.

Um relacionamento entre aproximaes de Simpson e a preciso desejada para o


valor de I pode ser escrita como:

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:

y ( n ) ( x) = F( x, y( x), y'( x), y"( x), ..., y ( n 1) ( x)) x [a , b]

(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

Em casos como o da equao (c), o problema se reduz a um problema de integrao:


y ' = f(x)
cuja soluo dada por:

com f contnua em [a, b]

y = f ( x)dx
12
4 4
3

+ c

integral
indefinida

onde c uma constante de integrao. No caso (c), por exemplo, tem-se:

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

7 Resoluo Numrica de Equaes Diferenciais Ordinrias

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;

y'(a) = v2; ...; y(n-1)(a) = vn

(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

Para avaliar y(x) para um dado valor de x ser

necessrio usar uma regra de quadratura para avaliar a integral.


Neste captulo sero estudados mtodos numricos de resoluo de problemas de valor
inicial e problemas de valor de contorno. Para problemas de valor inicial, os
desenvolvimentos e exemplos consideram apenas equaes diferenciais de 1 ordem.
Deve-se, no entanto, observar que como uma equao diferencial de ordem n pode ser
166

Clculo Numrico

7 Resoluo Numrica de Equaes Diferenciais Ordinrias

transformada facilmente em um sistema de n equaes de 1 ordem, utilizando mudanas


de variveis, tais desenvolvimentos podem ser facilmente estendidos a equaes de
ordens mais altas.
Exemplo. Seja a equao: y' ' ' (x) = xy' (x) + e x y(x) + x 2 + 1, x [0, 1] , com as seguintes
condies iniciais:

y(0) = 1

y' (0) = 0

y' ' (0) = - 1

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' (x) = y 2 ( x )


y' 2 ( x ) = y' ' ( x ) = y 3 ( x )
y' 3 (x ) = y' ' ' (x ) = xy 2 (x ) + e x y 1 ( x ) + x 2 + 1
Portanto, a equao y' ' ' (x) = xy' (x) + e x y(x) + x 2 + 1 , x [0, 1] , com as condies iniciais:
y(0) = 1, y' (0) = 0 e y' ' (0) = -1 pode ser vista como um sistema de 3 equaes de 1 ordem:

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 .

7.2 Mtodo de Euler


Seja a equao y' = f(x, y) com y(x 0 ) = y 0 e com passo de integrao h = x i +1 - x i (i =
0,1, ...). Pelo Teorema de Taylor pode-se escrever:

h2
y( x i + 1 ) = y( x i + h) = y( x i ) + hy '( x i ) +
y"()
2

( x i , x i +1 )

Mas como y' (x i ) = f(x i , y(x i )) e usando a notao: y j = y(x j ) , tem-se:

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.

A interpretao grfica do mtodo de Euler mostrada na figura a seguir:

167

Clculo Numrico

7 Resoluo Numrica de Equaes Diferenciais Ordinrias

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 )

Exemplo. Seja o seguinte problema de valor inicial:


y ' = 2x + 3, x [1.0, 1.5] com y(1.0) = 1.0
Com h = 0.1 tem-se a seguinte soluo numrica pelo mtodo de Euler:
y0 = 1.00
y1 = y0 + h.f(x0, y0) = 1.00 + (0.1)f(1.0, 1.00) = 1.00 + (0.1)(2.(1.0)+3) = 1.50
y2 = y1 + h.f(x1, y1) = 1.50 + (0.1)f(1.1, 1.50) = 1.50 + (0.1)(2.(1.1)+3) = 2.02
y3 = y2 + h.f(x2, y2) = 2.02 + (0.1)f(1.2, 2.02) = 2.02 + (0.1)(2.(1.2)+3) = 2.56
y4 = y3 + h.f(x3, y3) = 2.56 + (0.1)f(1.3, 2.56) = 2.56 + (0.1)(2.(1.3)+3) = 3.12
y5 = y4 + h.f(x4, y4) = 3.12 + (0.1)f(1.4, 3.12) = 3.12 + (0.1)(2.(1.4)+3) = 3.70
Ou seja, neste caso a soluo dada pela seguinte tabela de pontos:
x
1.0
1.1
1.2
1.3
1.4
1.5

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

7 Resoluo Numrica de Equaes Diferenciais Ordinrias

Para uma equao de ordem n, como comentado anteriormente, pode-se considerar um


sistema de n equaes diferenciais de 1 ordem e aplicar o mtodo de Euler a cada uma
delas.

Exemplo. Seja o seguinte problema de valor inicial:

y" = y;

x 0;

y(0) = 1;

y' (0) = - 1

Fazendo a troca de variveis: y1 = y, y 2 = y' tem-se o seguinte sistema:

y'1 = f1 (x, y1 , y 2 ) = y 2
y' 2 = f 2 (x, y1 , y 2 ) = y1

y1 (0)
y 2 (0)

Considerando h = 0.2, pelo mtodo de Euler tem-se:

y1 (x 0 ) = y1 (0.0) = 1.00
y 2 (x 0 ) = y 2 (0.0) = 1.00

y1 (x1 ) = y1 (0.2) = y1 (x 0 ) + h.f1 (x 0 , y1 (x 0 ), y 2 (x 0 )) =


= 1.00 + 0.2(y 2 (x 0 )) = 1.00 + 0.2(1.00) = 0.80
y 2 (x1 ) = y 2 (0.2) = y 2 (x 0 ) + h.f 2 (x 0 , y1 (x 0 ), y 2 (x 0 )) =
= 1.00 + 0.2(y1 (x 0 )) = 1.00 + 0.2(1.00) = 0.80
y1 (x 2 ) = y1 (0.4) = y1 (x 1 ) + h.f 1 (x 1 , y1 (x 1 ), y 2 (x 1 )) =
= 0 .80 + 0 .2 (y 2 (x 1 )) = 0 .80 + 0.2 ( 0.80 ) = 0.64
y 2 (x 2 ) = y 2 (0.4) = y 2 (x 1 ) + h.f 2 (x 1 , y1 (x 1 ), y 2 (x 1 )) =
= 0 .80 + 0.2(y 1 (x 1 )) = 0 .80 + 0.2(0 .80 ) = 0.64
e assim sucessivamente.
Portanto, como y1 (x) = y(x) , os valores de y1 ( x i ) (i = 0,1, ...) representam aproximaes
para a soluo da equao diferencial. A tabela abaixo mostra estes valores para 4 casas
decimais, onde o valor correto dado por: e -x

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

7.3 Mtodos Baseados na Srie de Taylor


O mtodo de Euler considera na srie de Taylor apenas os termos at a derivada primeira.
Outros mtodos numricos podem ser obtidos considerando-se mais termos da srie. Seja
y ' = f(x,y) com y( x 0 ) = y 0 , um problema de valor inicial com soluo dada por y = F(x). Se
169

Clculo Numrico

7 Resoluo Numrica de Equaes Diferenciais Ordinrias

a soluo F(x) for suficientemente derivvel, pode-se escrever a expanso de Taylor em


torno de x 0 :

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.

Neste caso tem-se:

y' ' = f y f + f x = 2y(x + y 2 ) + 1 = 2yy' + 1


y' ' ' = 2(y' ) 2 + (2y) 2 y' + 2.0.y' + 1.(2y) + 0 = 2(y' ) 2 + 4y 2 y' + 2y
Portanto, como y 0 = y(0) = 1 , tem-se:

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

7 Resoluo Numrica de Equaes Diferenciais Ordinrias

(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

y 0 ' ' ' = f yy f 2 + f y 2 f + 2f xy f + f x f y + f xx = 2(y'0 ) 2 + (2y 0 ) 2 y'0 + 2.0.y' 0 + 0.(2y 0 ) + 0 =


= 2.(0.0625) 2 + (2. 0.25) 2 .(0.0625) = 0.0234375
Portanto:
y(0.2) 0.25 + (0.2)(0.0625) +

(0.2) 2
(0.2) 3
(0.03125) +
(0.0234375) = 0.263156
2
6

O valor correto neste caso seria: y(0.2) =

1
= 0.263157
4 0.2

7.4 Mtodos Baseados em Regras de Quadratura


Muitos mtodos para soluo de problemas de valor inicial podem ser obtidos a partir de
regras de integrao numrica, uma vez que para o problema:

y' (x) = f(x, y)

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

Por outro lado, pela regra dos trapzios tem-se:


171

Clculo Numrico

7 Resoluo Numrica de Equaes Diferenciais Ordinrias

xi

x i 1

h
y' ( x)dx = [ y'( x i 1 ) + y'( x i )] + E T
2

Portanto: y i y i 1 + [ f ( x i 1 , y i 1 ) + f ( x i , y i )] uma aproximao para o valor de y(x)


2
no ponto x = xi.
Deve-se notar que esta aproximao, baseada na regra dos trapzios, constitui um
esquema de passo simples (o valor de yi depende de apenas um valor anterior yi-1).
Entretanto este esquema implcito, uma vez que o valor de yi depende do prprio valor yi.
Portanto, neste caso, ser necessrio um processo iterativo para determinar o valor de yi (i
= 1,2, ...).
[0]

Para que yi seja obtido iterativamente necessrio uma estimativa inicial y i . Muitas
escolhas so possveis para a estimativa inicial. Alguns exemplos so:

o valor anterior yi-1


o valor de yi obtido pelo mtodo de Euler: y i -1 + h.f(x i -1 , y i -1 )
[0]

Dado um valor para y i , tem-se o seguinte esquema iterativo:


[ n]

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

Exemplo. Seja y' = y 2 ; x [0, 1]; y(0) = 0.25


172

Clculo Numrico

Neste caso:

7 Resoluo Numrica de Equaes Diferenciais Ordinrias

f
2
= 2y h <
y
2y

para o valor de y, tem-se que h <

h<

1
y

. Tomando y(0) como uma estimativa

1
= 4 . Assim, a escolha h = 0.2 deve ser suficiente
0.25

para garantir a convergncia do processo iterativo. Ento:

y 0 = 0.25

y1[ 0] = y 0 + hf ( x 0 , y 0 ) (estimativa inicial pelo mtodo de Euler) = 0.25 + 0.2(0.25) 2 = 0.2625


Seja = 0.00001

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]

Logo: y1 = 0.263176 (notar que y1 = y(0.2) cujo valor exato y(0.2) =

1
= 0.263157 ).
4 0.2

7.5 Mtodos de Runge-Kutta


Os mtodos numricos de resoluo de equaes diferenciais ordinrias vistos at aqui
tem pouca importncia prtica. O mtodo de Euler requer um passo muito pequeno para
alcanar uma preciso razovel e o mtodo baseado na srie de Taylor (uma extenso do
mtodo de Euler) tem a desvantagem de requerer a forma algbrica de sucessivas
derivadas de f(x,y). J o mtodo baseado na regra dos trapzios, por constituir um
esquema implcito, requer um processo iterativo para determinar cada uma das
aproximaes yi.
Os mtodos de Runge-Kutta, ao contrrio, so muito empregados na prtica pois possuem
as seguintes caractersticas:

so auto-inicializveis, ou seja, a partir da condio inicial possvel conhecer os


demais pontos da soluo;
no requerem o clculo de derivadas;
permitem, facilmente, a alterao do tamanho do passo h;
utilizam n avaliaes da funo a cada passo, onde n o grau do mtodo.

Pela srie de Taylor tem-se:

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

7 Resoluo Numrica de Equaes Diferenciais Ordinrias

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

Usando este resultado, pode-se escrever:

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

Mas, pelo mtodo de Euler, tem-se: yi+1 = yi + hf(xi,yi)


hf(xi,yi)). Ento:

e portanto: f(xi+1,yi+1) = f(xi+1,

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

(mtodo de Runge-Kutta de 2 grau)

Exemplo. y' = x - y ; y(0) = 2 ; x [0, 1] ; h = 0.2


i

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
-

Exemplo. Usar o mtodo de Runge-Kutta de 2 grau para resolver o seguinte problema:


174

Clculo Numrico

y' ' = x + y;

7 Resoluo Numrica de Equaes Diferenciais Ordinrias

x [0,1]

y(0) = 1.0; y' (0) = 0.0

h = 0.2

Como trata-se de um problema de 2 ordem, devemos transform-lo em um sistema de 2


equaes diferenciais de 1 ordem. Para isso, pode-se usar a seguinte troca de variveis:

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

y' 2 = y' ' = x + y1


y' 2 = f 2 ( x, y1 , y 2 ) = x + y1

y1 (0) = 1
y 2 (0) = 0

Portanto, os prximos pontos da soluo podem ser calculados como:


para x = 0.2 temos:

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

7 Resoluo Numrica de Equaes Diferenciais Ordinrias

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

Exerccio. Completar a tabela acima.

De uma forma geral, os mtodos de Runge-Kutta so estabelecidos como:

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

7 Resoluo Numrica de Equaes Diferenciais Ordinrias

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

Para n = 3 (mtodo de Runge-Kutta de 3 grau) tem-se:

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 )

Um dos mtodos Runge-Kutta mais utilizados o de 4 grau, dado por:

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

7 Resoluo Numrica de Equaes Diferenciais Ordinrias

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

que corresponde regra de quadratura de Simpson com passo

h
.
2

7.6 Mtodos de Passo Mltiplo


Os mtodos de resoluo de equaes diferenciais ordinrias vistos anteriormente so
todos de passo nico, isto , para calcular yi+1 leva-se em conta apenas os valores de
f(x,y) em torno do ponto anterior yi. Os mtodos de passo mltiplo levam em conta no
apenas o valor de yi como tambm pontos anteriores yi-1, yi-2, ..., yi-k+1 (mtodo de kpassos).
A frmula geral de um mtodo de k-passos dada por:

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

Dependendo do valor de 0 tem-se duas classes de mtodos de passo mltiplo: mtodos


explcitos e mtodos implcitos.
Se 0 = 0 ento:
y i +1 =

j= 1

j=1

j y i j+1 + h j f i j +1 = (1y i + 2 y i 1 +...+ k y i k +1 ) + h(1f i + 2 f i 1 +...+ k f i k +1 )

ou seja, para determinar o prximo ponto da soluo, yi+1, so necessrios os k valores


anteriores da soluo: yi, yi-1, yi-2, ..., yi-k+1, alm dos respectivos valores de f(xj, yj) (j = i,
i-1, i-2, ..., i-k+1). Portanto, quando 0 = 0 tem-se um mtodo explcito de passo mltiplo.
Se 0 0 ento, alm destes pontos ser necessrio tambm o valor de fi+1. Neste caso,
para calcular yi+1 ser preciso um esquema iterativo levando, portanto, a um mtodo
implcito de passo mltiplo.
178

Clculo Numrico

7 Resoluo Numrica de Equaes Diferenciais Ordinrias

MTODOS EXPLCITOS DE PASSO MLTIPLO


Dada a equao y' = f(x,y(x)) pode-se obter por integrao:

y( x i + 1 ) = y( x i ) +

x i +1

f ( x, y( x))dx

xi

Supondo j conhecidos os valores anteriores y j (j = i, i-1, ..., i-k+1), pode-se substituir


f(x,y(x)) por um polinmio interpolador que passa por estes pontos anteriores. Neste caso
tem-se uma famlia de mtodos (dependendo da escolha do grau do polinmio) para
resolver a equao diferencial conhecidos como mtodos de Adams-Bashforth.
Para k = 2, o polinmio do 1 grau e tem-se um mtodo de 2 grau:
x i +1

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 )

Essas integrais podem ser calculadas facilmente. Por exemplo:


x i +1

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

x i+1 ( x i +1 x i1 ) + x i ( x i 1 x i ) + x i1 ( x i x i+1 ) 2hx i+1 hx i hx i 1


=
=
2
2
hx i +1 + hx i+1 hx i hx i 1 h ( x i+1 x i1 ) + h ( x i +1 x i ) h (2h ) + h (h ) 3h 2
=
=
=
2
2
2
2
Assim:

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

7 Resoluo Numrica de Equaes Diferenciais Ordinrias

Para k = 4, o polinmio do 3 grau e tem-se o mtodo de Adams-Bashforth de 4 grau:

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.

Os mtodos de Adams-Bashforth no so auto-inicializveis, porque necessitam de um


conjunto de k pontos anteriores da soluo para que possam ser aplicados (de incio,
tem-se apenas um ponto da soluo: a condio inicial). Portanto, para aplicar um
mtodo de Adams-Bashforth preciso, primeiramente, obter este conjunto inicial de k
pontos atravs de um mtodo de passo nico.

MTODOS IMPLCITOS DE PASSO MLTIPLO


Os mtodos implcitos de passo mltiplo so obtidos da mesma forma que os mtodos
explcitos, s que agora, 0 0. Tais mtodos so conhecidos como mtodos de AdamsMoulton.
Para k = 2 (mtodo de Adams-Moulton de 2 grau):
y i +1 = y i +

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

Para k = 4 (mtodo de Adams-Moulton de 4 grau):

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

7 Resoluo Numrica de Equaes Diferenciais Ordinrias

Observao:

Pode-se notar que as frmulas implcitas so menos sensveis a erros de


arredondamento (pois os coeficientes so menores) do que as frmulas explcitas, mas
necessitam iterao.

7.7 Mtodos de Previso e Correo


Os mtodos de passo mltiplo possuem algumas caractersticas interessantes:

Os mtodos implcitos so menos sujeitos a erros de arredondamento e apresentam


limites de erro de truncamento menores que os mtodos explcitos de mesmo grau.
Entretanto, nos mtodos implcitos o clculo de yi+1 requer o valor de fi+1 e, portanto,
um processo iterativo.

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:

inicializar o processo por um mtodo de passo nico (por exemplo, Runge-Kutta);


calcular o valor de yi+1 pelo mtodo de passo mltiplo explcito (valor previsto);
recalcular o valor de yi+1 usando o mtodo de passo mltiplo implcito de mesmo grau
(valor corrigido).

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

(a) Inicializao: clculo de y1 (Runge-Kutta de 2 grau)

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

7 Resoluo Numrica de Equaes Diferenciais Ordinrias

Neste caso, o valor correto : y 2 = y(0.4) =

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.

7.8 Mtodo das Diferenas Finitas


No Captulo 5 mostrou-se como obter aproximaes de funes a partir do
desenvolvimento em srie de Taylor. Basicamente, para uma funo y(x) em torno do
ponto x = x i , pode-se escrever:

(x xi )2
y( x) = y( x i ) + ( x x i ) y' ( x i ) +
y"( x i ) + ...
2!

(7.3)

Portanto o valor de y(x) no ponto x = x i+1 = x i + h, pode ser escrito como:

( 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

7 Resoluo Numrica de Equaes Diferenciais Ordinrias

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

7 Resoluo Numrica de Equaes Diferenciais Ordinrias

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

y 0 = y(x 0 ) = y(0.0) = 0.00


y 5 = y( x 5 ) = y(1.0) = 2.71

Portanto, a soluo aproximada consiste em determinar os valores de y i , i = 1, ..., 4, como


ilustra a tabela a seguir:

xi

yi

0
1
2
3
4
5

0.0
0.2
0.4
0.6
0.8
1.0

0.00
?
?
?
?
2.71

Substituindo, na equao diferencial, as derivadas pelas aproximaes por diferenas


finitas (usando, para a derivada primeira, a diferena central, por ser mais exata) obtm-se:

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

7 Resoluo Numrica de Equaes Diferenciais Ordinrias

Deve-se observar que os termos correspondentes a y 0 e y 5 , por serem constantes, foram


deslocados para o segundo membro nas respectivas equaes. Assim, substituindo-se os
valores obtm-se o seguinte sistema de equaes lineares:

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 [1.00, 1.30]; y(1) = 1; h = 0.10

utilizando o mtodo de previso e correo de 2 grau. Para a inicializao utilizar o


mtodo de Runge-Kutta de 2 grau.
Soluo:
A soluo do problema uma tabela da forma:
x
y

x 0 = 1.00
y 0 = 1.000

x1 = 1.10
y1

x 2 = 1.20
y2

x 3 = 1.30
y3

Inicializao (clculo de y1) com mtodo de Runge-Kutta de 2 grau:

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

7 Resoluo Numrica de Equaes Diferenciais Ordinrias

Agora, como j se dispe de dois valores de y, pode-se aplicar o mtodo de previso e


correo para o clculo dos demais valores de y.
Clculo de y2

010
.

010
.

Previso: y 2 = y1 + [3f1 f 0 ] = 0.555 +


[3f (110
. , 0.555) f (100
. , 1000
. )] = 0.204
2
2
Correo: y 2 = y1 + [ f 2 + f1 ] = 0.555 +
[ f (120
. , 0.204) + f (110
. , 0.555)] = 0188
.
2
2

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

Para ilustrar, sabe-se que a soluo exata do problema acima conhecida:

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

2. Resolver o seguinte problema de valor de contorno utilizando o mtodo das diferenas


finitas:
y '' + 2y ' + y = 30x;

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

Para encontrar os valores de y1 , y 2 , y 3 deve-se substituir as derivadas na equao


diferencial por suas aproximaes por diferenas finitas, ou seja:

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

7 Resoluo Numrica de Equaes Diferenciais Ordinrias

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)

Tem-se, portanto, o seguinte sistema de equaes lineares:

( 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
.

Logo, a soluo do problema :

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]

2. Resolver o seguinte problema de valor de contorno utilizando diferenas finitas centrais


para a aproximao de derivadas:

d2y
dx

dy
= (sin( x) + cos( x)) ;
dx

y(0.0) = 2.00; y(1.2) = 0.66; h = 0.4

3. Usar o desenvolvimento em srie de Taylor at os termos de 2 ordem para obter uma


soluo aproximada do problema de valor inicial y'( x) =
para x [1, 2] com passo h = 0.25

y 2 , com y(1) = -1,


2
x
x

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

7 Resoluo Numrica de Equaes Diferenciais Ordinrias

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 )

Para o clculo do valor previsto utilizar a frmula de Adams-Bashforth de 4 grau:

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' =

boa a soluo numrica.

2. Implementar um programa para resolver o problema de valor inicial a seguir,


correspondente convivncia de coelhos e raposas:
188

Clculo Numrico

7 Resoluo Numrica de Equaes Diferenciais Ordinrias

r ' = 2 r 2 rf

f ' = f + rf

r (0) = 1; f (0) = 3

0 t 10

onde r(t) e f(t) denotam a densidade de coelhos e de raposas, respectivamente, em


funo do tempo.
Utilizar o programa Mathematica para visualizar os grficos das funes r e f em funo
do tempo t.

3. O problema de valor de contorno (PVC) a seguir:

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

V(0, y) = 100; V( x,0) = 0; V(3, y) = 0; V( x,2) = 0

descreve a distribuio de temperatura em uma placa plana de comprimento 3 e largura


2. Este problema pode ser modelado por meio do mtodo das diferenas finitas, usando
diferena central para aproximao das derivadas, considerando um passo h na
horizontal e um passo k na vertical. Elaborar um programa que construa o sistema de
equaes lineares resultante, para h = 0.5 e k = 0.25, encontre a soluo do sistema e
apresente os resultados.

189

Você também pode gostar