34413174 calculo numerico en portugues

197
Edson Luiz França Senne ([email protected]) DEPARTAMENTO DE MATEMÁTICA Universidade Estadual Paulista - Unesp Campus de Guaratinguetá Faculdade de Engenharia 2000

Upload: yuri-bach

Post on 28-Dec-2015

71 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: 34413174 Calculo Numerico en Portugues

Edson Luiz França Senne

([email protected])

DEPARTAMENTO DE MATEMÁTICAUniversidade Estadual Paulista - Unesp

Campus de GuaratinguetáFaculdade de Engenharia

2000

Page 2: 34413174 Calculo Numerico en Portugues

ii

C Á L C U L O N U M É R I C O

S U M Á R I O

Apresentação

Referências Bibliográficas

1. Aritmética Computacional

1.1 - Números de Ponto Flutuante ........................................................................................ 11.2 - Sistemas de Ponto Flutuante ........................................................................................ 21.3 - Aritmética de Ponto Flutuante....................................................................................... 51.4 - Dígitos Significativos Exatos ......................................................................................... 71.5 - Mal-Condicionamento e Instabilidade Numérica ........................................................... 9

Exercícios Resolvidos ......................................................................................................... 11Exercícios Propostos........................................................................................................... 13Exercícios de Programação ................................................................................................ 14

2. Solução de Equações

2.1 - Introdução ................................................................................................................... 172.2 - Estimativa de Raízes de Equações Polinomiais ......................................................... 18

Enumeração das Raízes............................................................................................. 19Localização das Raízes Reais .................................................................................... 21Localização das Raízes Complexas............................................................................ 22

2.3 - Separação das Raízes................................................................................................ 232.4 - Métodos Iterativos de Solução de Equações .............................................................. 25

Ordem de Convergência de um Método Iterativo........................................................ 26Métodos de Quebra .................................................................................................... 26Métodos de Ponto Fixo ............................................................................................... 29Método de Aitken ........................................................................................................ 31Método de Newton-Raphson....................................................................................... 32Método das Secantes (ou das Cordas)....................................................................... 35Método de Müller......................................................................................................... 36

2.5 - Resolução de Sistemas de Equações Não-Lineares .................................................. 37

Exercícios Resolvidos ......................................................................................................... 40Exercícios Propostos........................................................................................................... 43Exercícios de Programação ................................................................................................ 44

3. Solução de Sistemas de Equações Lineares

3.1 - Introdução ................................................................................................................... 45Matrizes Especiais ...................................................................................................... 46

3.2 - Métodos Diretos .......................................................................................................... 47Método da Eliminação de Gauss ................................................................................ 48Determinação de Inversa de Matriz............................................................................. 53Método de Gauss-Jordan............................................................................................ 54Refinamento Iterativo da Solução ............................................................................... 56

3.3 - Métodos Iterativos....................................................................................................... 58

Page 3: 34413174 Calculo Numerico en Portugues

iii

Método de Gauss-Jacobi ............................................................................................ 61Método de Gauss-Seidel............................................................................................. 61Estudo da Convergência dos Métodos Iterativos ........................................................ 64

3.4 - Métodos de Fatoração ................................................................................................ 67

Exercícios Resolvidos ......................................................................................................... 74Exercícios Propostos........................................................................................................... 78Exercícios de Programação ................................................................................................ 80

4. Interpolação

4.1 - Introdução ................................................................................................................... 814.2 - Interpolação Polinomial ............................................................................................... 824.3 - Polinômios de Lagrange ............................................................................................. 874.4 - O Erro na Interpolação................................................................................................ 894.5 - Diferenças Divididas ................................................................................................... 894.6 - Diferenças Simples ..................................................................................................... 924.7 - Interpolação de Hermite .............................................................................................. 934.8 - Interpolação por "Spline"............................................................................................. 97

Exercícios Resolvidos ....................................................................................................... 102Exercícios Propostos......................................................................................................... 104Exercícios de Programação .............................................................................................. 105

5. Aproximação de Funções

5.1 - Introdução ................................................................................................................. 1075.2 - Método dos Quadrados Mínimos .............................................................................. 1075.3 - Aproximação de Funções Contínuas ........................................................................ 1125.4 - Polinômios Ortogonais .............................................................................................. 1175.5 - Método dos Quadrados Mínimos Generalizado ........................................................ 124

Exercícios Resolvidos ....................................................................................................... 130Exercícios Propostos......................................................................................................... 131Exercícios de Programação .............................................................................................. 132

6. Integração Numérica

6.1 - Introdução ................................................................................................................. 1356.2 - Métodos de Newton-Cotes........................................................................................ 137

Regra dos Retângulos .............................................................................................. 137Regra dos Trapézios................................................................................................. 139Regra de Simpson .................................................................................................... 140Fórmula Geral das Quadraturas Newtonianas .......................................................... 142

6.3 - Métodos de Extrapolação ......................................................................................... 1466.4 - Quadratura de Gauss................................................................................................ 1496.5 - Quadraturas Adaptativas .......................................................................................... 153

Exercícios Resolvidos ....................................................................................................... 158Exercícios Propostos......................................................................................................... 160Exercícios de Programação .............................................................................................. 162

Page 4: 34413174 Calculo Numerico en Portugues

iv

7. Resolução Numérica de Equações Diferenciais Ordinárias

7.1 - Introdução ................................................................................................................. 1657.2 - Método de Euler........................................................................................................ 1677.3 - Métodos Baseados na Série de Taylor ..................................................................... 1697.4 - Métodos Baseados em Regras de Quadratura......................................................... 1717.5 - Métodos de Runge-Kutta .......................................................................................... 1737.6 - Métodos de Passo Múltiplo ....................................................................................... 178

Métodos Explícitos de Passo Múltiplo ....................................................................... 179Métodos Implícitos de Passo Múltiplo ....................................................................... 180

7.7 - Métodos de Previsão e Correção.............................................................................. 1817.8 - Método das Diferenças Finitas.................................................................................. 182

Exercícios Resolvidos ....................................................................................................... 185Exercícios Propostos......................................................................................................... 187Exercícios de Programação .............................................................................................. 188

Page 5: 34413174 Calculo Numerico en Portugues

v

C Á L C U L O N U M É R I C O

A P R E S E N T A Ç Ã O

Cálculo Numérico foi escrito para servir como material de apoio para a segunda

parte da disciplina Computação e Cálculo Numérico, oferecida aos alunos da Faculdade de

Engenharia do Campus de Guaratinguetá, da Unesp - Universidade Estadual Paulista. Seu

objetivo é apresentar os fundamentos do cálculo numérico, ilustrando a aplicação dos

métodos e algoritmos discutidos com programas de computador escritos na linguagem de

programação apresentada na primeira parte da disciplina.

O Capítulo 1 discute a aritmética dos computadores, chamando a atenção para o

fato de que, como os números representados em um computador não obedecem à mesma

estrutura algébrica dos números reais (dada a finitude da máquina), a ocorrência de erros

é, por vezes, inevitável. No Capítulo 2 discute-se a busca de raízes de equações não-

lineares, dando especial atenção aos polinômios, para os quais muitos resultados teóricos

são conhecidos. No Capítulo 3 discute-se a solução de sistemas de equações lineares, um

assunto importante porque a solução de várias classes de problemas (como é visto nos

capítulos seguintes) recaem em sistemas lineares. O Capítulo 4 discute como aproximar

uma função, conhecida apenas em alguns pontos discretos, a um polinômio, através da

técnica de interpolação. O assunto do Capítulo 5 também é a aproximação de funções,

mas com o emprego da técnica dos mínimos quadrados. Neste caso, não se restringe a

discussão ao caso discreto e tampouco às aproximações polinomiais, podendo a função de

aproximação ser definida como uma combinação linear qualquer de funções conhecidas.

No Capítulo 6 estuda-se o problema de como calcular o valor de integrais definidas, para

funções conhecidas discretamente ou para as quais não é possível, ou não é desejável, a

aplicação de uma forma analítica de resolver o problema. Finalmente, o Capítulo 7 discute

a resolução numérica de equações diferenciais ordinárias, apresentando diversos métodos

para a solução de problemas de valor inicial e de problemas de valor de contorno.

Este volume apresenta ainda, ao final de cada capítulo, vários exercícios resolvidos

e exercícios propostos. Propõe também exercícios de programação e, neste particular,

recomenda-se a leitura do volume Introdução à Programação de Computadores para

rever os conceitos e construções relativas à linguagem de programação discutida na

primeira parte dessa disciplina.

ELFS

Page 6: 34413174 Calculo Numerico en Portugues

vi

REFERÊNCIAS BIBLIOGRÁFICAS

Cláudio, D.M.; Marins, J.M. Cálculo Numérico Computacional - Teoria e Prática. São Paulo,

SP, Atlas, 1994.

Dahlquist, G.; Björck, 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, McGraw-

Hill, 1978.

Ruggiero, M.A.G.; Lopes, V.L.R. Cálculo Numérico: Aspectos Teóricos e Computacionais.

São Paulo, SP, Makron Books, 1998.

Vandergraft, J.S. Introduction to Numerical Computations. New York, NY, Academic Press,

1978.

Page 7: 34413174 Calculo Numerico en Portugues

Cálculo Numérico

1. ARITMÉTICA COMPUTACIONAL

1.1 – Números de Ponto Flutuante Os números representados em um computador não obedecem à mesma estrutura algébrica dos números reais, isto porque a máquina tem recursos finitos. Os números reais representáveis em um computador são denominados números de ponto flutuante.

Um número de ponto flutuante é representado como: x m be= . , onde:

• x - número de ponto flutuante • m - mantissa • b - base de numeração • e - expoente

Se b m− ≤ <1 1, então tem-se um número de ponto flutuante normalizado. Exemplo: a) b = 10 x = 721.5438

Existem várias formas não 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:

25.13212021202121 210123 ==××++××++××++××++××++×× −−−−

Forma normalizada: x = 0.110101 x 24 No computador os valores de ponto flutuante são representados (na base binária) sempre na forma normalizada.

Representação de Números de Ponto Flutuante

sinal mantissaexpoente

espaço de armazenamento (palavra)

Page 8: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 1 – Aritmética Computacional

2

Exemplo: Considere um computador com o seguinte espaço de armazenamento:

palavra = 8 bits espaço para mantissa = 4 bits espaço para expoente = 3 bits

ou seja:

s m e

Neste caso, tem-se:

Valores Possíveis da Mantissa

Valores Possíveis do Expoente

Binário Decimal Binário Decimal

0.1111 0.9375 000 -4 0.1110 0.8750 001 -3 0.1101 0.8125 010 -2 0.1100 0.7500 011 -1 0.1011 0.6875 100 0 0.1010 0.6250 101 1 0.1001 0.5625 110 2 0.1000 0.5000 111 3

Notar que a representação do expoente corresponde à representação binária de: e + 2 1n − , onde n é o espaço disponível para o expoente. Por exemplo: expoente = -2. Neste caso, a representação do expoente -2 será a representação binária de:

-2 + 23 1− = -2 + 4 = 2 ou seja: 010 Observe que neste caso:

• o maior número representável (em notação decimal) será: x = 0.9375 x 23 = 7.5 • o total de números representáveis é dado por:

2 (+,-) x 8 (mantissas) x 8 (expoentes) + 1 (zero) = 129 1.2 – Sistemas de Ponto Flutuante Um sistema de ponto flutuante corresponde à união de todos os números de ponto flutuante representáveis e é escrito como F(b,m,n), onde: • b - base de numeração • m - número de dígitos na mantissa • n - número de dígitos para a representação do expoente (incluindo o sinal)

Page 9: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 1 – Aritmética Computacional

3

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 a− ≤ <1 1

2. ∀ ∈ ⇒ − ∈x F b m n x F b m n( , , ) ( , , ) 3. A cardinalidade de F (total de números representáveis) é dado por:

2 × (b-1).( )bm−1 × ( )bn + 1

onde:

• 2 vezes corresponde a positivo e negativo; • (b-1) são os dígitos possíveis na primeira posição da mantissa;

• ( )bm−1 são os dígitos restantes da mantissa;

• ( )bn é o total de expoentes possíveis;

• mais 1 corresponde ao valor zero. Seja, por exemplo, F(2,3,2). Logo, as mantissas possíveis são: 0.100, 0.101, 0.110, 0.111 e os expoentes representáveis são: -2, -1, 0, 1. Neste caso, os números positivos representáveis são:

( . ) ( . )

( . ) ( . )

( . ) ( . )

( . ) ( . )

0100 2 0 00100 0 2 0 2 0 2 1 2 0 2 0 218

0101 2 0 00101 0 2 0 2 0 2 1 2 0 2 1 25

32

0110 2 0 00110 0 2 0 2 0 2 1 2 1 2 0 23

16

0111 2 0 00111

22

0 1 2 3 4 5

22

0 1 2 3 4 5

22

0 1 2 3 4 5

22

× = = × + × + × + × + × + × =

× = = × + × + × + × + × + × =

× = = × + × + × + × + × + × =

× = =

− − − − − −

− − − − − −

− − − − − −

− 0 2 0 2 0 2 1 2 1 2 1 27

320 1 2 3 4 5× + × + × + × + × + × =− − − − −

e assim por diante, até:

( . ) ( . )0111 2 111 1 2 1 2 1 274

12

0 1 2× = = × + × + × =− −

A tabela a seguir resume os números positivos representáveis neste sistema de ponto flutuante:

mantissa expoente 0.100 0.101 0.110 0.111

-2 1/8 5/32 3/16 7/32 -1 1/4 5/16 3/8 7/16 0 1/2 5/8 3/4 7/8 1 1 5/4 3/2 7/4

Esquematicamente:

Page 10: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 1 – Aritmética Computacional

4

0 1/41/8

5/32

3/16 5/16 3/8

7/32

7/16 1/2 3/45/8 7/8 1 5/4 3/2

região deoverflow

7/4 Da figura acima pode-se ver que os números de ponto flutuante representáveis não estão uniformemente distribuídos no intervalo [-7/4, 7/4]. Nota-se também que entre potências sucessivas da base, o número de valores representáveis é uma constante, dada por:

c = (b-1)( )bm−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 20 existem 4 valores: 1/4, 5/16, 3/8 e 7/16

• entre 20 e 21 existem 4 valores: 1/2, 5/8, 3/4 e 7/8 Portanto, pode-se definir a densidade de números representáveis entre potências sucessivas da base como:

densidade = ( )( )b b

b b

m

k k−

−1 1

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

Para o exemplo acima tem-se:

k densidade

-1

41 2 1 4

16/ /−

=

0

41 1 2

8−

=/

1

42 1

4−

=

ou seja, a distância entre dois números de ponto flutuante representáveis consecutivos vai aumentanto. Portanto, ao se comparar números de ponto flutuante próximos (por exemplo, para verificar a convergência de um processo iterativo) é conveniente comparar a diferença em relação ao tamanho dos números. Para ilustrar, considere os seguintes conceitos: Erro Absoluto:

E x xA = − * , onde: x é o valor verdadeiro e x* é o valor aproximado.

Erro Relativo:

Ex x

x

E

xR

A=−

=*

* *

Page 11: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 1 – Aritmética Computacional

5

No caso de números de ponto flutuante, o erro relativo é mais significativo do que o erro absoluto porque, como comentado acima, a comparação de valores de ponto flutuante deve ser feita em relação ao tamanho dos números. Por exemplo:

a) Um erro absoluto 6A 10E == em um valor 1510*x == é significativo?

Neste caso, ER = = −10

1010

6

159, ou seja, um erro de 106 numa quantidade de 1015 não é

significativo (pois 10 9− é um valor pequeno). b) Um erro absoluto 00001.0EA == em um valor x* = 0.00005 é significativo?

Neste caso, 2.000005.0

00001.0ER ==== , ou seja, o erro da aproximação é de 20% e portanto,

significativo. 1.3 – Aritmética de Ponto Flutuante Algumas leis da aritmética que valem em R (conjunto dos números reais) não valem para a aritmética em F (conjunto dos números 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 representação normalizada de 13/8 =

( . )01101 212x ∉ F, porque requer 4 dígitos na mantissa).

b) x = 5/8 y = 3/8 z = 3/4

• (x + y) + z = (( . ) ( . )) ( . )0101 2 0 110 2 0110 20 1 0x x x+ +− = (0.101 + 0.011) + 0.110 = 1.00

+ 0.110 = ( . )111 2

• x + (y + z) = ( . ) (( . ) ( . ))0101 2 0 110 2 0 110 20 1 0x x x+ +− = 0.101 + (0.011 + 0.110) = 0.101 + 1.001 = 1.101 = ( . )110 2

(observe que os dígitos assinalados acima precisam ser descartados pois não podem ser representados em F) Logo: (x + y) + z ≠ x + (y + z) Estes exemplos mostram que na aritmética de ponto flutuante, quando um número, para ser representado, precisa de mais dígitos na mantissa do que o máximo permitido, é preciso fazer uma aproximação, o que irá resultar em um erro de arredondamento. Exemplo: Seja F(2,3,2)

Page 12: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 1 – Aritmética Computacional

6

x = 9/8 ∉ F pois 9/8 = ( . )01001 212x e portanto possui um dígito a mais na mantissa do que o

máximo permitido. Assim, ( . )01001 212x precisa ser arredondado para: ( . )0100 2 11x = . ou

para: ( . )0101 254

1x =

valor aproximação erro de arredondamento

9/8 = 1.125

1 = 1.00

5/4 = 1.25

1.00 - 1.125 = -0.125 (erro por falta) 1.25 - 1.125 = 0.125 (erro por excesso)

Sejam:

v1, v2 - valores verdadeiros de dois números 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)

Então, 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:

rv v a a

a aE Ea a

Ea a

Ea a

aa a

Ea

aa a

Ea

=+ − +

+≤

++

=+

++

=+

× ++

×( ) ( )1 2 1 2

1 21 21 2

11 2

21 2

11 2

11

21 2

22

Seja α =+a

a a1

1 2. Então: ( )

( )1 1

11 2

1 2 11 2

21 2

− = −+

=+ −

+=

aa a

a a aa a

aa a

.

Logo: r r r≤ + −α α. ( ).1 21

ou seja: o erro relativo da soma é menor ou igual a um valor intermediário entre os erros relativos das parcelas. b) SUBTRAÇÃO 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)

Page 13: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 1 – Aritmética Computacional

7

(a1 - a2) - (E1 + E2) ≤ v1 - v2 ≤ (a1 - a2) + (E1 + E2) e portanto:

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

ou seja: o erro absoluto da subtração é menor ou igual à soma dos erros absolutos das parcelas. Para o erro relativo tem-se:

rv v a a

a a

E E

a a

E

a a

E

a a

a

a a

E

a

a

a a

E

a=

− − −

−≤

+−

=−

+−

=−

× +−

×( ) ( )1 2 1 2

1 2

1 2

1 2

1

1 2

2

1 2

1

1 2

1

1

2

1 2

2

2

Logo: ra

a ar

a

a ar

a a

a a

a

a ar

a

a ar

erro relativo da soma

≤−

× +−

× =+−

×+

× ++

×

1

1 2

2

1 2

1 2

1 2

1

1 2

2

1 21 2 1 21 244444 344444

ou seja: o erro relativo da subtração é igual ao produto de um fator = a a

a a

1 2

1 2

+−

> 1 pelo erro

relativo da soma (que é um valor intermediário entre os erros relativos das parcelas). Além

disso, quando a1 ≈ a2, o fator a aa a1 21 2

+−

pode ser muito grande. Ou seja, a subtração de

números muito próximos resulta em um erro relativo muito maior do que os erros relativos das parcelas. Este fenômeno é conhecido como cancelamento subtrativo. Exercício: Mostre que as relações a seguir, são válidas para as operações de multiplicação e divisão. 2. MULTIPLICAÇÃO

E a E a E

r r1 r

≤ +≤ +

1 2 2 1

2

d) DIVISÃO

Eaa

Ea

Ea

r r1 r

≤ +

≤ +

12

11

22

2

( )

1.4 – Dígitos Significativos Exatos Os resultados numéricos obtidos através do computador são, em geral, valores aproximados. A questão é: Qual é o valor exato? Esta questão, geralmente, não pode ser respondida, e dessa forma fica impossível calcular o valor do erro absoluto e, consequentemente, o valor do erro relativo. Entretanto, é possível avaliar o resultado, ou seja, saber o quão exato é o valor aproximado. Seja x um número de ponto flutuante normalizado. Define-se o número de dígitos significativos de x como sendo o número de dígitos após o ponto decimal.

Page 14: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 1 – Aritmética Computacional

8

Exemplos:

a) 0.00000014 ⇒ forma normalizada = 0.14 x 10 6− ⇒ 2 dígitos significativos

b) 30457 ⇒ forma normalizada = 0.30457 x 105 ⇒ 5 dígitos significativos

c) 231000 ⇒ forma normalizada = 0.231 x 106 ⇒ 3 dígitos significativos A questão agora é saber: Todos os dígitos significativos são exatos? Para responder a esta questão tem-se o seguinte teorema:

Teorema. Se o erro relativo de um número for menor ou igual a 0 5 10. × −k , então este número possui k dígitos significativos exatos. Exemplos: a) v = 2/3 a = 0.6667

ER =−

= < = × −

23

0 6667

0 66670 0000499 0 00005 0 5 10 4

.

.. . .

Logo: a = 0.6667 tem os 4 dígitos significativos exatos.

b) v = 2/3 a = 0.66998

ER =−

= < = × −

23

0 66988

0 669980 00494 0 005 0 5 10 2

.

.. . .

Logo: a = 0.66998 tem apenas os 2 primeiros dígitos significativos como exatos.

Na prática, com a impossibilidade de calcular o erro relativo exatamente, o teorema é utilizado para determinar o número de dígitos significativos exatos de um valor aproximado obtido iterativamente, em relação ao valor aproximado disponível na iteração anterior. Ou seja, o número m de dígitos significativos exatos é calculado aproximadamente como:

x x

x

i i

i

m+ −−

≤ ×1

0 5 10.

ou seja:

log log( . )

log( . ) log

x x

xm

mx x

x

i i

i

i i

i

+

+

≤ −

≤ −−

1

1

0 5

0 5

1.5 - Mal-Condicionamento e Instabilidade Numérica

Page 15: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 1 – Aritmética Computacional

9

Um problema é mal-condicionado se, pequenas alterações nos seus dados (ou parâmetros), resultam em grandes modificações em sua solução. Exemplo. O sistema de equações

10 7 8 7 32

7 5 6 5 23

8 6 10 9 33

7 5 9 10 31

1 2 3 4

1 2 3 4

1 2 3 4

1 2 3 4

x x x x

x x x x

x x x x

x x x x

+ + + =+ + + =+ + + =+ + + =

tem como solução: x1 = x2 = x3 = x4 = 1. Entretanto, se os valores do lado direito das equações forem modificados para: 32.1, 22.9, 32.9, 31.1, a solução do sistema irá se alterar para:

x1 = 6, x2 = -7.2, x3 = 2.9, x4 = -0.1 Neste caso, pode-se notar que pequenas alterações no sistema modificaram radicalmente sua solução. Este é, portanto, um problema mal-condicionado. É importante ressaltar que o mal-condicionamento é uma propriedade do problema em si, e não do método numérico usado para resolvê-lo. Uma outra situação, é quando o método numérico usado para resolver o problema leva a resultados não confiáveis. Neste caso diz-se que existe um fenômeno de instabilidade numérica. Portanto: • método estável - o erro final de arredondamento é pequeno; • método instável - os erros de arredondamento individuais se propagam com efeito

crescente, comprometendo o resultado final. Exemplo. Um método iterativo para calcular os valores de:

Ix

xdx nn

n=

+> =∫

αα0

1 0 0 1 2( ; , , ,...)

é dado por:

I

In

I nn n

0

1

1

11 2

=+

= − =−

ln

( , ,...)

αα

α

Considere que existe um erro (de arredondamento) ε no valor I0. Neste caso, as próximas

aproximações serão:

Page 16: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 1 – Aritmética Computacional

10

I I I

I I I

In

In nn

1 0 0

2 1 12

1

1

1

1

11

2

1

2

1

= − + = − −

= − − = − +

= − + −−

α ε α αε

α αε α α ε

α α ε

( ) [ ]

( ) [ ]

...

[ ] ( )

Nota-se, portanto, que se α > 1, o erro vai crescendo a cada iteração, levando a resultados absurdos. O método iterativo acima é portanto instável. Por vezes é possível reformular o método de maneira a evitar a instabilidade numérica. Para o problema acima, por exemplo, pode-se escrever:

In

I nn n− = −

=1

1 12 1

α( ..., , )

Como à medida que n aumenta, In diminui, para n suficientemente grande (por exemplo: n = 20) pode-se fazer In ≅ 0. Assim, se existir um erro ε no valor I20 , tem-se:

I I I

I I I

19 20 20

18 19 19 2

1 120

1 120

1

1 1

19

1 1 1

19

1

= − +

= −

+

= − +

= −

+

αε

α αε

α αε

α αε

( )

( )

e assim por diante. Portanto, com este outro método, o erro vai diminuindo a cada iteração. Logo, este método iterativo é estável.

Page 17: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 1 – Aritmética Computacional

11

EXERCÍCIOS RESOLVIDOS 1. Um cilindro tem base com raio R = 1.0 ± 0.05 e altura H = 2.0 ± EH , onde EH é o erro

absoluto em H. Com que erro absoluto deve-se determinar H para que o volume do cilindro

V R H= π 2 seja calculado com erro absoluto menor ou igual a 0.5? Considere π = 3.1416 como valor exato.

Solução: R = 1.0 ± 0.05 ⇒ E R = 0.05 H = 1.2 ± EH

V R H= π( )2 ⇒ E E R H EV R H≤ +π π2

2( ) . Mas como Eπ = 0, E EV R H≤ π 2 .

Por outro lado, E R E HER H H R2 2

2≤ + . Mas: E RE RE RER R R R2 2≤ + =

Logo: E R E H REV H R≤ +π( ( ))2 2 . Portanto, se π( ( )) .R E H REH R2 2 0 5+ = então

EV ≤ 0 5.

Assim, deve-se ter:

0 5 2 31416 10 12 2 10 0 052 2. ( ( )) . (( . ) ( . )( . . ))= + = × + × ×π R E H RE EH R H . Portanto:

EH =− ×

≅0 5 31416 0 12

314160 04

. . ..

.

2. Pelo teorema de Taylor pode-se escrever:

f b f ab a

f ab a

f ab a

nf a

b a

nf

nn

nn( ) ( )

( )

!( )

( )

!( ) ...

( )

!( )

( )

( )!( )( ) ( ) ( ) ( )= +

−+

−+ +

−+

−+

++

1 2 11

22

11 ξ

onde: f(x) é uma função 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], é possível 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 é confiável com quantas casas decimais?

Solução: Fazendo f(x) = ex e considerando a = 0 e b = 1 tem-se:

e e e e e e1 0 02

03

04

01 01

1 02

1 03

1 04

= +−

+−

+−

+−

!( )

!( )

!( )

!

Page 18: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 1 – Aritmética Computacional

12

ou seja: e = + + + + = + + + + =1 112

16

124

1000 1000 0 500 0 167 0 042 2 709. . . . . .

Os erros cometidos no processo são:

• erro de truncamento, por não considerar o termo ( )

!1 0

5

5−eξ, para 0 1< <ξ .

• erro de arredondamento, por trabalhar com 3 casas decimais.

Para determinar quantas casas decimais são confiáveis é necessário calcular um limitante o erro relativo correspondente. Para isto, em primeiro lugar deve-se calcular um limitante para o erro absoluto, ou seja:

E e ET T<−

⇒ <( )

!.

1 05

0 0235

1

Logo: EE

RT= < = < × −

2 7090 0232 709

0 008 0 5 10 1.

.

.. . . Portanto, como o erro relativo é menor do que

0 5 10 1. × − pode-se confiar no resultado até a 1a. casa decimal. 3. Considere um sistema de ponto flutuante com base b = 10, espaço de armazenamento de

dígitos da mantissa m = 1, e apenas os expoentes -1, 0 e 1. Quantos números de ponto flutuante podem ser representados neste sistema? Apresente todos os números positivos representáveis neste sistema. Calcule a densidade de números representáveis entre potências sucessivas da base para este sistema de ponto flutuante. Quais são os resultados, neste sistema, das seguintes operações:

a) 7/4 + 3/8 b) 1/60 - 3/5

Solução: Os números positivos representáveis neste sistema de ponto flutuante podem ser mostrados na tabela a seguir:

mantissa expoente 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

-1 0.01 0.02 0.03 0.04 0.05 0.06 0.07 0.08 0.09 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 1 2 3 4 5 6 7 8 9

Portanto, podem ser representados neste sistema:

(zero) + (27 números positivos) + (27 números negativos) = 55 números representáveis

As densidades de números positivos representáveis entre potências sucessivas da base são dadas por:

Page 19: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 1 – Aritmética Computacional

13

Entre 10 1− e 100 existem 9 números representáveis ⇒

d =−

=−

= =9

10 10

9

1 01

9

0 910

0 1 . .

Entre 100 e 101 existem 9 números representáveis ⇒ d =−

=−

= =9

10 10

9

10 1

9

91

1 0

Para as operações tem-se:

a) { {74

38

1 666 0 375 2 474

38

22 0 4 2

+ = + = ⇒ + =. . ..

123

b) 160

35

0 0166 0 6 0 581

6035

0 60 02 0 6

− = − = − ⇒ − = −−

. . . .. .

123 123

EXERCÍCIOS PROPOSTOS 1. Uma corrente flui através de uma resistência de 10 ohms que tem exatidão de 10% (erro

relativo). A corrente é medida como 2.0 A com tolerância de ± 0.1 A. Pela lei de Ohm, a queda de tensão através da resistência é o produto da resistência pela corrente. Quais são os erros absoluto e relativo na tensão computada?

2. Considere um sistema de ponto flutuante com base b = 10, espaço de armazenamento de

dígitos da mantissa m = 4, e com apenas os expoentes -3, -2, -1, 0, 1, 2, 3, 4. Quantos números de ponto flutuante podem ser representados neste sistema? Considerando x =

0.7237 × 104, y = 0.2145 × 10 3− , z = 0.2585 × 101, quais são os resultados, neste sistema, das seguintes operações:

a) x + y - z

b) x y

z

×

3. Considere o sistema de ponto flutuante F(2,4,3). Quais são os números positivos

representáveis neste sistema? Quais são os resultados, neste sistema, das operações:

a) 5.4 + 3.8 b) 3.4 + 5.8

4. Seja xn n= −1

3 1 Mostre que: x x xn n n= −− −( ) /3001 1000 31 2 . Trabalhando com 6 casas

decimais, gere os valores de x2, x3, x4 e x5 usando esta relação de recorrência e os valores iniciais x0 = 3 e x1 = 1. Comente sobre os resultados obtidos.

5. A equação polinomial x x3 3 2 0− + = tem raízes x = 1 (raiz dupla) e x = -2. Começando com x0 = 0.9, encontre x1, x2, ..., x7 usando a equação de recorrência:

( )( )( )x x

x x

xn n

n n

n= −

− +

+

− −

−1

1 1

1

1

3

1 2

1. Compare os resultados obtidos com os resultados

Page 20: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 1 – Aritmética Computacional

14

que se obtêm quando se usa a equação de recorrência

( )( )( )x x

x x

xn n

n n

n= −

− +

+

− −

−1

1 1

1

2

3

1 2

1 .

Page 21: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 1 – Aritmética Computacional

15

EXERCÍCIOS DE PROGRAMAÇÃO 1. Para demonstrar o efeito de erros de arredondamento considere os seguintes cálculos:

H = 1/2 X = 2/3 - H Y = 3/5 - H A = (X+X+X) - H B = (Y+Y+Y+Y+Y) - H C = B/A

Procure prever o valor de C. Em seguida implemente estes cálculos num programa e verifique o resultado.

2. Para determinar a precisão de um computador em representar números "reais", pode-se

calcular o valor conhecido como Epsilon da Máquina, definido como sendo o maior número E tal que 1 + E = 1. Para o cálculo do Epsilon da Máquina pode-se começar 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 equação f(x) = x + ln(x) = 0 possui uma raiz x* próxima a x = 0.55. Considere a seguinte

equação de recorrência:

xkx e

knn

x n=

++

−− −1 1

1

Implemente um programa para encontrar o valor da raiz usando este método iterativo. Considere como critério de parada o seguinte:

x xn n− <−1 ε

para ε = 10-5. Sugira um valor (real) de k de forma a alcançar uma convergência rápida.

Mostre o valor de k, o número de iterações, o valor de x* obtido e o valor de f(x*). 4. Implementar o método iterativo:

I

In

I nn n

0

1

1

11 2

=+

= − =−

ln

( , ,...)

αα

α

para calcular os valores de: dxx

xI

10

n

n ∫ α+= com α > 0 e n = 0, 1, 2, ..., e verificar que

para α > 1, o método é instável. Em seguida, implementar o método na forma:

In

I nn n− = −

=1

1 12 1

α( ..., , )

e, considerando 30I = 0, verificar que este método iterativo é estável.

Page 22: 34413174 Calculo Numerico en Portugues

17

Cálculo Numérico

2. SOLUÇÃO DE EQUAÇÕES

2.1 - Introdução Neste capítulo estuda-se como encontrar uma ou mais raízes da equação f(x) = 0, ou, em outras palavras, como encontrar os zeros da função f(x). Exemplo:

0.5 1 1.5x

-0.4

-0.2

0.2

0.4

y

raiz isolada

y = f(x)

-0.4

-0.2

1

y

2 4 6 8 10

0.2

0.4

0.6

0.8

x

y = f(x) múltiplas raizes

A solução de equações por um método iterativo requer: • uma estimativa inicial para o valor da raiz; • uma equação de recorrência para a geração de uma sequência de valores que, espera-se,

convirja para a raiz. São ainda importantes para um método iterativo de solução de equações: a) estabelecer sob que condições a sequência de iterações converge para a raiz; b) sabendo-se que a iteração é convergente, estabelecer um critério de parada para o

processo iterativo, o que irá depender da precisão que se deseja alcançar. Além disto, no caso de haver vários esquemas iterativos, é preciso ter uma medida da eficiência computacional para escolher o melhor. Neste capítulo serão estudados alguns métodos iterativos de solução de equações. Para a determinação da estimativa inicial para o valor da raiz, pode-se empregar um método gráfico.

Exemplo. Estimar o valor de uma raiz positiva de sin xx

( ) −2

= 0.

Através do gráfico da função (ver página seguinte) pode-se concluir que a raiz ∈ [1.5, 2.0]. Este método para estimativa da raiz é muito conveniente, principalmente quando se dispõe de ferramentas computacionais para a construção do gráfico da função (como, por exemplo, o programa Mathematica). Entretanto, para uma classe especial de funções - os polinômios - muitos resultados são conhecidos e através destes resultados pode-se chegar também a uma estimativa para o intervalo que contém uma raiz.

Page 23: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 2 – Solução de Equações

18

0.5 1 1.5 2 2.5 3x

-0.6

-0.4

-0.2

0.2

y

2.2 – Estimativa de Raízes de Equações Polinomiais Uma equação polinomial é da forma:

f x a x a x a x a a xnn

nn

ii

i

n( ) ...= + + + + = =−

=∑1

11 0

00

onde n é o grau e ai (i = 0,1,...,n) são os coeficientes (reais) do polinômio. Uma equação polinomial do grau n tem n raízes (reais ou complexas).

Um polinômio f(x) = a xii

i

n

=∑

0 pode ser escrito na forma:

((...(( ) ) . ..) )a x a x a x x a x an n n+ + + + +− −1 2 1 0

e esta maneira de escrever o polinômio facilita sua avaliação e a de sua derivada f'(x), pois minimiza o número de operações aritméticas necessárias. Escrito desta forma, a avaliação de f(α) pode ser escrita como:

b a

b a b i n n

f a b

n n

i i i

+ +

== + = − −

= +

1

1 1

0 0

2 3 0αα α

( , ,..., )

( )

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

x5 x4 x3 x2 x1 x0 1 0 -6 1 7 -4

α = 2 2 4 -4 -6 2 1 2 -2 -3 1 -2 b4 b3 b2 b1 b0 f(2)

Teorema. f x x b x fii

i

n( ) ( ) ( )= − +

=∑α α

0

Page 24: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 2 – Solução de Equações

19

Exemplo. Seja f x x x x x( ) = − + + −5 3 26 7 4 e α = 2. Neste caso, pode-se escrever:

f x x x x x x( ) ( )( ) ( )= − + − − + + −2 2 2 3 1 24 3 2 Se α é uma raiz de f(x) = 0, então f(α) = 0. Neste caso, pelo teorema anterior, pode-se escrever:

f x x b xii

i

n( ) ( )= − =

=

−∑α 0

0

1

e portanto, g x b xii

i

n( ) =

=

−∑

0

1 corresponde a um polinômio de grau n-1 (polinômio reduzido).

Assim, pode-se ter o seguinte esquema para resolver f(x) = 0, equação polinomial de grau n: • determinar x = α, uma raiz de f(x) = 0; • determinar coeficientes bi (i = n-1, n-2, ..., 0);

• repetir o processo para g(x) = 0. Este processo pode ser muito insatisfatório devido ao efeito acumulativo dos erros introduzidos a cada vez que f(x) é reduzida para g(x). Avaliação de f'(x):

f x x b x f x g x fii

i

n( ) ( ) ( ) ( ) ( ) ( )= − + = − +

=∑α α α α

0

Logo: f x x g x g x f g' ( ) ( ) ' ( ) ( ) ' ( ) ( )= − + ⇒ =α α α

Exemplo. Seja f x x x x x( ) = − + + −5 3 26 7 4 e α = 2. Neste caso, pode-se escrever:

x4 x3 x2 x 1

1 2 -2 -3 1 α = 2 2 8 12 18

1 4 6 9 19 b3 b2 b1 b0 g(2) = f'(2)

ENUMERAÇÃO DAS RAÍZES a) Enumeração das Raizes Reais Teorema (Descartes). O número de raízes reais positivas de uma equação polinomial p(x)=0 não é maior que o número de trocas de sinal na sequência de seus coeficientes não nulos, e se for menor, então é sempre por um número par.

Exemplo. Seja p x x x x( ) = + − −3 22 3 5

Sequência de sinais: + + - - ⇒ 1 troca. Logo: p(x) tem 1 raiz real positiva.

Page 25: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 2 – Solução de Equações

20

O Teorema de Descartes pode ser usado para enumerar também as raízes reais negativas, calculando-se p(-x)

p x x x x( )− = − + + −3 22 3 5

Sequência de sinais: - + + - ⇒ 2 trocas. Logo: p(x) tem 2 ou 0 raizes reais negativas (se tiver 0 raízes reais negativas, terá 2 raízes complexas). b) Enumeração das Raizes Complexas Teorema (Huat). Dada uma equação polinomial p(x)=0 de grau n, se para algum k (1 ≤ k ≤ n) tem-se:

a a ak k k2

1 1≤ + −.

então p(x) = 0 terá raízes complexas. Exemplos:

a) p x x x x x x( ) = + + + − +2 3 2 5 35 4 3 2

Descartes:

p(x) + + + + − + 2 trocas p(-x) − + − + + + 3 trocas

Portanto, os seguintes casos são possíveis:

Raizes Reais

Positivas Reais

Negativas

Complexas

Total 0 1 4 5 0 3 2 5 2 1 2 5 2 3 0 5

Mas, pelo teorema de Huat:

a

a a a a

a

2

3 32

2 4

4

2

1 1 6

3

== ⇒ = ≤ × ==

ou seja, p(x) possui raizes complexas, o que descarta a última linha da tabela acima.

b) p x x x x x x( ) = − − + − +2 3 2 16 5 3 2 Descartes:

p(x) + − − + − + 4 trocas p(-x) + + + + + + 0 trocas

Huat:

Page 26: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 2 – Solução de Equações

21

a

a a a a

a

3

4 42

3 5

5

2

0 0 6

3

= −= ⇒ = ≤ × =

= −

ou seja, p(x) possui raizes complexas. Portanto, as possibilidades são as seguintes:

Raizes Reais

Positivas

Complexas

Total 0 6 6 2 4 6 4 2 6

LOCALIZAÇÃO DAS RAÍZES REAIS Para dar início a um processo iterativo é preciso uma estimativa para a raiz. Para isto é necessário conhecer onde as raízes estão localizadas. •• localização das raízes reais: determinação dos limites a (inferior) e b (superior) de um

intervalo que contenha todas as raízes. •• localização das raízes complexas: determinação dos raios a (interno) e b (externo) de um

anel que contenha as raízes complexas.

Região das Raízes Reais

a b

Região das Raízes Complexas

ba

Teorema (Laguerre). Dado um polinômio p(x) e um número α, seja:

p(x) = (x - α)q(x) + R Se os coeficientes de q(x) e R forem todos positivos ou nulos, então as raízes reais positivas xi de p(x) são tais que xi < α.

Exemplo: p x x x x x x( ) = + − − + −5 4 3 29 20 12 Localização das raízes reais positivas de p(x) = 0

1 1 -9 -1 20 -12 α = 1 1 2

1 2 -7

Page 27: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 2 – Solução de Equações

22

1 1 -9 -1 20 -12

α = 2 2 6 1 3 -3

1 1 -9 -1 20 -12

α = 3 3 12 9 24 132 1 4 3 8 44 120

Logo, pelo teorema de Laguerre, todas as raízes reais positivas de p(x) = 0 são menores que 3, ou seja, 3 é um limite superior do intervalo das raizes. Localização das raízes reais negativas

Basta considerar o polinômio p x x x x x x( )− = − + + − − −5 4 3 29 20 12 . Multiplicando-se por –

1 (para que o coeficiente do termo de maior grau seja positivo), tem-se:

1 -1 -9 1 20 12 α = 1 1 0

1 0 -9 1 -1 -9 1 20 12

α = 2 2 2 1 1 -7

1 -1 -9 1 20 12

α = 3 3 6 1 2 -3

1 -1 -9 1 20 12

α = 4 4 12 12 52 288 1 3 3 13 72 300

Logo: todas as raízes reais negativas de p(x) = 0 são maiores que -4, ou seja, -4 é um limite inferior para as raizes reais. Portanto, as raízes reais de p(x) = 0 pertencem ao intervalo [-4, 3]. LOCALIZAÇÃO DAS RAÍZES COMPLEXAS

Teorema (Kojima). Dado o polinômio p x a x a x a x ann

nn( ) ...= + + + +−

−1

11 0 , toda raiz α, real

ou complexa, de p(x) = 0 é tal que:

| α | ≤ q1 + q2, onde q1 e q2 são os dois maiores valores de: a

ai

n

n i

1

(i = n-1, ..., 0)

Exemplo: p x x x x x x( ) = + − − + −5 4 3 29 20 12 Neste caso tem-se:

Page 28: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 2 – Solução de Equações

23

11

91

11

201

121

1 9 1 20 12

1

1

1

2

1

3

1

4

1

51

2

1

4

1

5, , , , , , , ,− −

=

={1, 3, 1, 2.1147, 1.6437}

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 região que contém as raízes. Para determinar a cota inferior basta considerar o polinômio:

px x x x x x

1 1 1 9 1 20125 4 3 2

= + − − + −

Multiplicando por x5 tem-se:

px

x x x x x x x x x x1

1 9 20 12 12 20 9 12 3 4 5 5 4 3 2

= + − − + − = − + − − + +

Assim, tem-se:

2012

112

912

112

112

1

1

1

2

1

3

1

4

1

5−

−−

−− − −

, , , , = {1.6667, 0.2886, 0.9085, 0.5372, 0.6083}

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

raízes α (reais ou complexas) de p x x x x x x( ) = + − − + −5 4 3 29 20 12 são tais que:

0.3883 ≤ | α | ≤ 5.1147

2.3 – Separação das Raízes A separação das raízes de uma equação corresponde a encontrar uma sequência de subintervalos tais que: − cada subintervalo contém exatamente uma raiz real; − cada raiz real está contida em um subintervalo. Teorema (Bolzano). Se f(x) é uma função contínua num intervalo [a, b] e trocar de sinal nos extremos deste intervalo, então existe pelo menos uma raiz real de f(x) = 0 no intervalo [a, b].

Exemplos:

x

y = f(x)f(a)

a

b

f(b)

x

y = f(x)

a

b

f(a)

f(b)

Page 29: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 2 – Solução de Equações

24

Teorema de Bolzano não se aplica: função descontínua

x

y

a

b

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

k de p(x), calculada para x = α. Seja Vα o número de variações de sinal da sequência:

p(α), p'(α), p"(α), ..., p n( ) ( )α

Então, o número de raízes de p(x) = 0 no intervalo (a, b) é igual ou menor que V Va b− por

um múltiplo de 2.

Exemplo: p x x x x( ) = − − +3 22 2

Descartes: + - - + ⇒ 2 ou 0 raízes reais positivas. Laguerre:

1 -2 -1 2 1 1 1 -1

1 -2 -1 2

2 1 1 0 -1

1 -2 -1 2

3 3 3 6 1 1 2 8

Portanto: cota superior = 3. Seja o intervalo (0,3). Derivadas de p(x):

p x x x

p x x

p x

' ( )

"( )

'"( )

= − −= −

=

3 4 1

6 4

6

2

Então:

Page 30: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 2 – Solução de Equações

25

p(0) = 2 p'(0) = -1 p"(0) = -4 p'"(0) = 6

p(3) = 8 p'(3) = 14 p"(3) = 14 p'"(3) = 6

Portanto: V V V V0 3 0 32 0 2= = ⇒ − = . Logo tem-se 2 ou 0 raízes 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, então, que os intervalos (0, 1.5) e (1.5, 3) contém, cada um, uma

raiz real. Assim, para separar as raízes pelo teorema de Budan, deve-se conseguir um intervalo (a, b) tal

que V Va b− = 1.

Exercício: Separar as raizes de p x x x x( ) = − + +3 29 20 1

É importante ressaltar que nesta seção os resultados apresentados se aplicam apenas a equações polinomiais. Para funções transcendentes, como comentado anteriormente, é necessário uma avaliação gráfica da função.

Exemplo: f x e xx( ) = − =− 0

Avaliação Gráfica:

1 2x

y

y = exp(x)

y = x

1

0 ⇒ Raiz ∈ [0, 1]

2.4 – Métodos Iterativos de Solução de Equações Um método iterativo de solução de equações requer: − uma estimativa inicial para a raiz (o que pode ser obtida pelo estudo de separação de

raízes); − uma fórmula de recorrência, que calcula uma estimativa melhor com base em estimativas

conhecidas; − um critério de parada; − uma estimativa do erro cometido (precisão do resultado). Existem quatro maneiras básicas para estabelecer o critério de parada de um método iterativo:

Page 31: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 2 – Solução de Equações

26

x x

x

f x

m x x k

i L

i i

i

i

i i

+

+

−<

<

≥>

1

1

ε

ε( )

( , )

onde: ε k L

tolerância de erro número de dígitos significativos exatos requeridos número máximo de iterações

Em geral, o critério de parada combina um ou mais destes critérios básicos. ORDEM DE CONVERGÊNCIA DE UM MÉTODO ITERATIVO Definição. Uma sequência x x x0 1 2, , ,... converge para x*, se dado ε > 0, existe um inteiro I

tal que, qualquer que seja i > I, x xi − <* ε . Neste caso, tem-se que:

lim *

iix x

→ ∞=

Definição. Seja uma sequência x x x0 1 2, , , ... que converge para x*. Seja e x xi i= − * . Se

existe um número ρ > 1 e uma constante α ≠ 0 tais que: limi

i

i

e

e→ ∞

+ =1ρ α , então ρρ é

denominado ordem de convergência e α é conhecida como constante assintótica de erro. Quanto maior for o número ρρ , mais rápida será a convergência do método iterativo. Quanto menor for a constante α, mais preciso será o resultado obtido pelo método. MÉTODOS DE QUEBRA Os métodos de quebra para solução de equações partem de um intervalo [a, b] que contenha uma raiz e reduz este intervalo a intervalos cada vez menores. Estes tipos de métodos são intuitivos geometricamente, mas convergem lentamente. Os principais métodos de quebra são: o método da bissecção e o método da falsa-posição. a) MÉTODO DA BISSECÇÃO Seja a equação f(x) = 0 e o intervalo [a, b], que contém uma raiz de f(x). Algoritmo:

1. m = (a + b)/2 2. se f(m) ≠ 0 então:

se f(a)×f(m) < 0 então fazer b = m caso contrário, fazer a = m

3. repetir os passos 1 e 2 até satisfazer o critério de parada.

Page 32: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 2 – Solução de Equações

27

Ilustração Gráfica:

x

y

a

b

m1

m2

Problemas do Método da Bissecção: • pode ser difícil encontrar um intervalo [a, b] tal que f(a) × f(b) < 0; • erros de arredondamento podem levar a um intervalo que efetivamente não contém uma

raiz. Pode-se determinar a ordem de convergência e a constante assintótica de erro do método da

bissecção. Seja x* uma raiz de f(x) = 0 e seja e x xi i= − * . Como xx x

ii i

+−=

+1

12

, onde

f x f xi i( ). ( )− <1 0 tem-se:

e x xx x

xx x x

x x x x ei ii i i i

i i i+ +− −

−= − =+

− =+ −

= − + − ≤1 11 1

12

2

2

1

2

1

2* *

*( *) ( *)

Logo: e

ei

i

+ ≤1 1

2 e, consequentemente: lim

i

i

i

e

e→ ∞

+ =11

12

Portanto, para o método da bissecção tem-se:

ρρ = 1, ou seja, o método possui convergência linear; αα = 1/2, ou seja, a cada iteração o erro reduz-se à metade.

Pode-se também determinar o número de dígitos significativos exatos obtidos por iteração de um método. Por exemplo, para o método da bissecção tem-se:

m x x m x x

x x

x

x x

x

x x

x

x x

x

i i i i

i i

i

i i

i

i i

i

i i

i

( , ) ( , )

log( . ) log log( . ) log

log log

+ −

+

+

− +

+

− =

= −−

− +

=

=−

1 1

1

1

1

1 1

1

0 5 05

Fazendo: r xx x

xi

i i

i( ) =

− −1, tem-se: m x x m x x

r x

r xi i i ii

i( , ) ( , ) log

( )

( )+ −+

− =

1 1

1

Page 33: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 2 – Solução de Equações

28

Como: e

ei

i

+ ≤1 1

2 tem-se que: m x x m x xi i i i( , ) ( , ) log( ) .+ −− ≤ =1 1 2 0 33

Portanto, no método da bissecção, consegue-se cerca de um dígito significativo exato a cada 3 iterações. b) MÉTODO DA FALSA-POSIÇÃO A idéia do método da falsa-posição é, ao invés de particionar o intervalo [a, b] ao meio a cada iteração, particionar na interseção da reta que une os pontos (a, f(a)) e (b, f(b)) com o eixo x.

Graficamente:

x

y

a

bm

f(a)

f(b)

Neste caso, o ponto de quebra (por congruência de triângulos) pode ser escrito como:

b af b f a

b mf b

m bf b b af b f a

−−

=−

−⇒ = −

−−( ) ( ) ( )

( )( )( ) ( )0

Assim, dada uma equação f(x) = 0 e um intervalo [a, b] que contém uma raiz de f(x), pode-se escrever o algoritmo do método da falsa-posição como: Algoritmo:

1. m bf b b a

f b f a= −

−−

( )( )

( ) ( )

2. se f(m) ≠ 0 então: se f(a)×f(m) < 0 então fazer b = m caso contrário, fazer a = m

3. repetir os passos 1 e 2 até satisfazer o critério de parada. É fácil perceber (como mostram as figuras a seguir) que no método da falsa-posição pode ocorrer que um dos extremos do intervalo mantenha-se sempre fixo. Isto irá ocorrer sempre que a função f(x) for côncava ou convexa no intervalo [a, b].

Page 34: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 2 – Solução de Equações

29

x

y

raiz

a=x0 x1 x2

b

y = f(x)

x

y

raiz

b=x0x1x2

a

y = f(x)

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

ilustra os resultados obtidos pelos métodos da bissecção e da falsa-posição para este caso.

Método da Bissecção Método da Falsa-Posição i xi f(xi) xi f(xi) 0 -0.5000 11.125 -0.9130 0.549 1 -0.7500 5.015 -0.9318 0.010 2 -0.8750 1.627 -0.9321 0.000 3 -0.9375 -0.156 4 -0.9063 0.743 5 -0.9219 0.295 6 -0.9297 0.070 7 -0.9336 -0.043 8 -0.9316 0.014 9 -0.9326 -0.014 10 -0.9321 0.000

MÉTODOS DE PONTO FIXO Nos métodos de ponto fixo (ou métodos de iteração funcional), para determinar a raiz pertencente ao intervalo [a, b] da equação f(x) = 0, procura-se determinar uma função 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 métodos de ponto fixo.

Exemplo. f x x x( ) = − + =3 3 1 0

Neste caso g(x) pode ser escrita como:

Page 35: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 2 – Solução de Equações

30

g xx

ou g xx

( ) ( )=+

=−

3

21

3

1

3

O teorema a seguir, estabelece condições para que exista um ponto fixo para uma função g(x). Teorema. Seja I = [a, b] e g(x) uma função tal que:

• g é contínua em I • g(I) = { g(α) | α ∈ I } ⊆ I

Então existe pelo menos um x* ∈ I tal que x* = g(x*). O problema é saber, no caso de haver várias funções g(x) possíveis, qual é a melhor escolha. Isto é importante porque, dependendo desta escolha, podem acontecer os seguintes casos:

Convergência Monotônica

x0

y = x

y = g(x)

x

y

raiz

Convergência Oscilante

x0

y = x

y = g(x)

x

y

raiz

Divergência Monotônica

y

x

y = g(x) y = x

raiz x0

Divergência Oscilante

raiz

y

y = x

y = g(x)

x0

Os teoremas a seguir ajudam na escolha da função g(x). Teorema. Seja g(x) uma função definida em I = [a, b], tal que:

• g(i) ⊆ I • x ∈ I, | g'(x) | ≤ L < 1

Page 36: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 2 – Solução de Equações

31

Então existe exatamente um x* ∈ I tal que g(x*) = x*. Teorema. Seja g(x) uma função satisfazendo as condições do teorema anterior. Para x0 ∈ I,

a sequência xn+1 = g(xn ), n = 0,1,2, ... converge para x* e o erro de truncamento cometido na n-ésima iteração é tal que:

e x xL

Lx xt n n n= − <

−− −*

1 1

Exemplo. f x x x( ) = − −2 2 I = [0, 2]

Escolha de g(x):

a) g x x( ) = −2 2

g'(x) = 2x ⇒ g'(x) > 1 para x > 12

b) g x x( ) = + 2

g'(x) = 1

2 2x + ⇒ g'(x) < 1 para x > 0

Portanto, o método iterativo mais conveniente é: x xi i+ = +1 2 (i = 0, 1, 2, ...)

Outro exemplo: 03x3x)x(f 3 =+−=

raízes positivas em: [1, 2] e [2, 3] raiz negativa em: [-1, 0] Neste caso, podemos ter:

)3x(3

x3)3x(x2

−−±=⇒−=−

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

3)x(g

−−−= e se quizermos

a raiz positiva em [1, 2] podemos considerar )3x(

3)x(g

−−

+= .

Observe que 2)3x(

)3x(3

2

3)x('g

−−

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

MÉTODO DE AITKEN

Page 37: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 2 – Solução de Equações

32

Teorema (Aitken). Sejam os métodos iterativos x xi i( ) ( )

( )1

1 11= −φ e x xi i

( ) ( )( )

22 1

2= −φ , i = 1, 2,

..., de ordem p, os quais convergem para x = α. Com as funções φ1 e φ2 é possível construir a função Φ dada por:

Φ( )( ( )) ( ) ( )

( ) ( ) ( ( ))x

x x x x

x x x x=

−− − +

φ φ φ φφ φ φ φ

1 2 1 2

1 2 1 2

Então, o método iterativo xi = Φ(xi-1), i = 1, 2, ... tem ordem de convergência superior a p, desde que seja satisfeita a condição:

(φ1(α) - 1)(φ2(α) - 1) ≠ 0 A aplicação mais simples do Teorema de Aitken é quando φ1 = φ2 = φ. Neste caso tem-se:

Φ( )( ( )) ( ) ( )

( ) ( ) ( ( ))

( ) ( )

( )

( )x

x x x x

x x x x

x x x

x x x

x x x

x x xii i i i

i i i i

i i i

i i i

i i i

i i i=

−− − +

=−

− +=

−− +

+ +

+ +

+ +

+ +

φ φ φ φφ φ φ φ

φφ

1 12

1 1

2 12

1 22 2

Exemplo. Seja f(x) = x - e x− = 0 e I = [0, 1] Método Iterativo:

x = e x− (ou seja, φ(x) = e x− ). Neste caso φ'(x) = - e x− . Portanto | φ'(x) | < 1 para x > 0, ou seja, o método converge. A tabela a seguir mostra os valores obtidos diretamente por este método iterativo com x0 = 0.5 e também os valores obtidos através do método de Aitken.

i φφ (xi) Método de Aitken 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

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

0.50000 0.60653 0.54524 0.56762 0.56687 0.56730 0.56714

Page 38: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 2 – Solução de Equações

33

MÉTODO DE NEWTON-RAPHSON Teorema (Taylor). Seja f(x) uma função tal que f(x) e suas n derivadas f(n)(x) (n > 0) são contínuas no intervalo [a, b]. Seja f(n+1)(x) definida no intervalo (a, b). Então existe, pelo menos, um valor ξ ∈ (a, b) tal que:

f b f ab a

f ab a

f ab a

nf a

b a

nf

nn

nn( ) ( )

!'( )

( )

!" ( ) ...

( )

!( )

( )

( )!( )( ) ( )= +

−+

−+ +

−+

−+

++

1 2 1

2 11 ξ

Seja xi uma aproximação para a raiz α de f(x) = 0 e seja α = xi + h. Então, 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 próximos termos da expansão de Taylor, tem-se:

f(xi) + hf'(xi) = 0 ou seja: hf x

f xi

i=

− ( )

'( )

Portanto, como xi + h deve ser uma nova aproximação para a raiz de f(x), tem-se o método de Newton-Raphson:

x xf x

f xii i

i

i+ = − =1 0 1 2

( )

'( ), , , ...

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

método de Newton-Raphson, tem-se:

xf

f1 0 000000 00000

0 000000 20000= − =.

( . )

'( . ).

xf

f2 0 200000 20000

0 200000 25535= − =.

( . )

' ( . ).

xf

f3 0 255350 25535

0 255350 25915= − =.

( . )

'( . ).

xf

f4 0 259150 25915

0 259150 25917= − =.

( . )

'( . ).

xf

f5 0 259170 25917

0 259170 25917= − =.

( . )

' ( . ).

Nota-se, deste exemplo, que a convergência no método de Newton-Raphson é rápida.

Page 39: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 2 – Solução de Equações

34

Interpretação Geométrica

xi

y = f(x)

x

y

raiz xi+1

f(xi)

f(xi+1)a

tg a f xf x

x xx x

f x

f xii

i ii i

i

i( ) '( )

( )

( )

( )

'( )= =

−⇒ = −

++

11

Uma questão importante é: O método converge sempre? As figuras a seguir ilustram algumas situações possíveis.

x

y

y = f(x)

x0 = x2

x1 = x3

x

y

raiz

y = f(x)

x0 x1

Destas figuras percebe-se claramente que, dependendo da escolha do ponto inicial x0, o método de Newton-Raphson pode não convergir. O teorema a seguir estabelece as condições necessárias para que ocorra a convergência do método de Newton-Raphson. Teorema. Seja f(x) uma função 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 af a

b a ef bf b

b a( )' ( )

( )' ( )

< − < −

Então, para qualquer x0 ∈ [a, b] o método de Newton-Raphson irá convergir para a raiz de f(x)

= 0 pertencente ao intervalo [a, b].

Exemplo. f(x) = x x x3 22 3 1+ + − I = [0, 1] Verificando as condições do teorema acima, tem-se:

Page 40: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 2 – Solução de Equações

35

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

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

ff

( )' ( )

00

13

13

1 0=−

= < −

f

f

( )

' ( )

1

1

5

10

1

21 0= = < −

Logo, para qualquer x0 ∈ [0, 1] o método irá convergir.

Ordem de Convergência do Método de Newton-Raphson

02

2= = + − +

−f x f x x x f x

x xfi i i

i( *) ( ) ( * ) '( )( * )

"( )ξ

com ξ ∈ (xi, x*). Dividindo-se por f'(xi) tem-se:

f x

f xx x

x x f

f xi

ii

i

i

( )

'( )( * )

( * ) " ( )

'( )+ − +

−=

2

20

ξ

Por outro lado: x xf x

f xi ii

i+ = −1

( )

' ( ). Portanto:

f x

f xx xi

ii i

( )

'( )= − +11. Logo:

( ) ( * )( * ) " ( )

'( )

( * )( * ) "( )

' ( )

x x x xx x f

f x

x xx x f

f x

i i ii

i

ii

i

− + − +−

=

− +−

=

+

+

1

2

1

2

20

20

ξ

ξ

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

e e ke

ek

e

ectei i

i

i i

i

i+

+

→ ∞

+= − ⇒ = − ⇒ =12 1

21

2

1

2

1

2lim

ou seja: o método de Newton-Raphson tem ordem de convergência quadrática. MÉTODO DAS SECANTES (OU DAS CORDAS) Um problema com o método de Newton-Raphson é o cálculo de derivadas, um problema mal-condicionado. A idéia do método das secantes é, partindo-se de duas aproximações x0 e x1 , substituir a derivada por uma reta que passa pelos pontos (x0, f(x0)) e (x1, f(x1)), como no método da falsa-posição.

Page 41: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 2 – Solução de Equações

36

x

y

raizx0 x1

x2

y = f(x)

f(x1)

f(x0)

Da figura acima (por congruência de triângulos) pode-se escrever:

x x

f x

x x

f x f xi i

i

i i

i i

+ −

−−

=−

−1 1

10( ) ( ) ( )

Portanto, o método das secantes pode ser escrito iterativamente como:

x xx x f x

f x f xii i

i i i

i i+

−= −

−−

=11

11 2

( ) ( )

( ) ( ), , ...

Deve-se observar que o método das secantes não exige que haja troca de sinal da função f(x) no intervalo [xi-1, xi] como no método da falsa-posição. À medida que se aproxima da raiz, f(xi) e f(xi-1) devem ser valores muito próximos e consequentemente, poderá ocorrer o fenômeno do cancelamento subtrativo. Para evitar isto, pode-se escrever o método das secantes como:

x x

x xf x

f xf x

f x

i i

i ii

i

i

i

+

−−

= −−

−1

11

11

( )( )

( )

(( )

( ))

com | f(xi) | < | f(xi-1) | (do contrário, inverter xi e xi-1). Pode-se mostrar que a ordem de convergência do método das secantes é dada por:

ρ = + ≅12

5 1 1618( ) . , ou seja, converge um pouco mais lentamente que o método de Newton-

Raphson (para o qual ρ = 2). MÉTODO DE MÜLLER No método das secantes, consideram-se dois pontos xi-1 e xi e por eles traça-se uma reta para determinar o próximo ponto xi+1 (interpolação linear). O método de Müller considera três pontos: xi-2, xi-1 e xi, e por eles passa uma equação do segundo grau (parábola) a fim de determinar o próximo ponto xi+1.

Page 42: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 2 – Solução de Equações

37

Ilustração Gráfica:

x

y

y = f(x)

x0 x1

x2

x3

Da figura pode-se ver que g x x x( ) = + +α α α02

1 2 é tal que:

α α α

α α α

α α α

0 02

1 0 2 0

0 12

1 1 2 1

0 22

1 2 2 2

x x f x

x x f x

x x f x

+ + =

+ + =

+ + =

( )

( )

( )

Resolvendo-se o sistema tem-se: x32

1 12

0 2

2

4=

− ± −

α

α α α α, onde o sinal à frente do radical

deve ser escolhido de modo que o denominador tenha o maior valor absoluto possível. 2.5 – Resolução de Sistemas de Equações Não-Lineares Considere o seguinte sistema de equações:

x y

x y

+ − =+ − =

2 3 0

3 7 02 2

Neste caso, deseja-se saber os valores de x e de y que satisfazem, simultaneamente, as duas equações. Estes valores podem ser vistos no gráfico a seguir, onde as funções y = f1(x) e y =

f2(x) são definidas como: f x x1 3 2( ) ( ) /= − e f x x227 3( ) = − .

-2 -1 1 2

0.5

1

1.5

2

2.5

f1(x)

f2(x)

y

x

raiz

raiz

Page 43: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 2 – Solução de Equações

38

Os métodos de quebra (bissecção e falsa-posição) não podem ser generalizados para sistemas pois as trocas de sinal não caracterizam as raízes de funções de várias variáveis. Entretanto os métodos de ponto fixo e de Newton-Raphson podem ser generalizados facilmente. Seja, por exemplo, o método de ponto fixo:

x = φ1(x,y) = 3 - 2y

y = φ2(x,y) = 7 3 2− x

Pelas tabelas abaixo pode-se observar que, partindo-se de uma estimativa inicial (x0,y0) = (1.00, 1.00) o método converge para a raiz (-1.00, 2.00) (mostrada à esquerda, no gráfico acima). Entretanto, partindo-se da estimativa inicial (x0,y0) = (0.00, 1.00), após 3 iterações, o método diverge.

i xi yi i xi yi

0 1.00 1.00 0 0.000 1.000 1 1.00 2.00 1 1.000 2.646 2 -1.00 2.00 2 -2.292 2.000 3 -1.00 2.00 3 -1.000 −8 753.

A convergência do método de ponto fixo pode ser estabelecida pela generalização do teorema de convergência para função de uma variável, onde o intervalo I é substituído por uma região circular que contenha a raiz. Para o caso acima, por exemplo, deve-se ter:

∂φ∂

∂φ∂

∂φ∂

∂φ∂

1 1 2 21

2 2 2 2

x y x yL

+

+

+

≤ ≤

para o método convergir. A generalização do método de Newton-Raphson pode ser obtida através da generalização do Teorema de Taylor para funções de várias variáveis. Seja, por exemplo, o caso de funções de duas variáveis. Considere ( )ii y,x a i-ésima aproximação para uma raiz do sistema:

( )( )

==

0y,xf

0y,xf

2

1

Uma nova aproximação para a raiz do sistema pode ser estabelecida como:

ii1i

ii1i

kyy

hxx

+=

+=

+

+

onde ih e ik são os valores dos passos a serem determinados. Como 1ix + e 1iy + são

aproximações para uma raiz do sistema, pode-se escrever:

0)ky,hx(f)y,x(f

0)ky,hx(f)y,x(f

iiii21i1i2

iiii11i1i1

≅++=

≅++=

++

++

Page 44: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 2 – Solução de Equações

39

Pelo Teorema de Taylor pode-se escrever:

0...)y,x(yf

k)y,x(xf

h)y,x(f)ky,hx(f

0...)y,x(yf

k)y,x(xf

h)y,x(f)ky,hx(f

ii2

iii2

iii2iiii2

ii1

iii1

iii1iiii1

≅+∂∂

+∂∂

+=++

≅+∂∂

+∂∂

+=++

Ou seja:

)y,x(fy

)y,x(fk

x)y,x(f

h

)y,x(fy

)y,x(fk

x

)y,x(fh

ii2ii2

iii2

i

ii1ii1

iii1

i

−=∂

∂+∂

−=∂

∂+

∂∂

ou então, em notação vetorial:

)y,x(f

)y,x(f

k

h

y)y,x(f

x)y,x(f

y)y,x(f

x)y,x(f

ii2

ii1

i

i

Jacobiano

ii2ii2

ii1ii1

−=×

∂∂

∂∂

∂∂

∂∂

4444 34444 21

Portanto, resolvendo o sistema tem-se os valores de ih e ik e portanto, as novas

aproximações 1ix + e 1iy + para a solução do sistema de equações.

Exemplo. Seja o sistema de equações:

f x y e y

f x y x y x

x y1

2

4 0

4 0

( , )

( , ) cos( )

= − == + + =

Para este caso, tem-se:

∂∂

∂∂

∂∂

∂∂

f

xe

f

ye

f

xx y

f

yx y

x y x y1 1

2 2

4

4

= = − −

= − + + = − +

− −

sen( ) sen( )

Considerando como estimativa inicial para a solução o ponto ( )00 y,x = (0.0, 0.0), tem-se:

1

1

k

h

04

51

0

0

−−

=×−

Resolvendo o sistema de equações lineares acima, tem-se os valores de 0h e 0k . Neste

caso:

Page 45: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 2 – Solução de Equações

40

20

3ke

4

1h 00 =

−=

Portanto, a nova aproximação para a solução será:

15.015.000.0kyy

25.0)25.0(00.0hxx

001

001

=+=+=

−=−+=+=

Continuando desta forma, a cada iteração do método de Newton-Raphson, determina-se os novos valores de passo e portanto, novas aproximações para a solução do sistema. Deve-se observar que cada iteração do método de Newton-Raphson aplicado a sistemas de equações não-lineares requer a solução de um sistema de equações lineares (para determinar os passos). A resolução de sistemas de equações lineares é o assunto do capítulo seguinte. EXERCÍCIOS RESOLVIDOS

1. Enumere, localize e separe as raízes reais da equação 2 5 2 03 2x x+ − = . Em seguida utilize o método do ponto fixo para encontrar uma raiz positiva e o método de Newton-Raphson para encontrar uma raiz negativa, caso exista, desta equação. Nos métodos

iterativos trabalhe com 3 casas decimais e utilize o critério de parada: x xn n− <−1 0 01. ,

onde xi corresponde à i-ésima aproximação para o valor da raiz.

Solução:

p(x) = 2 5 23 2x x+ − ⇒ p(-x) = − + −2 5 23 2x x = 2 5 23 2x x− + Enumeração:

p(x) + + - 1 troca ⇒ 1 raiz real positiva p(-x) + - + 2 trocas ⇒ 0 ou 2 raízes reais negativas

Localização:

− Raiz positiva:

2 5 0 -2 1 ↓ 2 7 7 raiz ∈ [0, 1] 2 7 7 5

− Raízes negativas:

2 -5 0 2 1 ↓ 2 2 -3

2 -5 0 2

2 ↓ 4 2 -1

Page 46: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 2 – Solução de Equações

41

2 -5 0 2

3 ↓ 6 3 9 raízes ∈ [-3, 0] 2 1 3 11

Separação das raízes negativas:

p x x x( ) = + −2 5 23 2

p x x x

p x x

p x

' ( )

"( )

"'( )

= += +

=

6 10

12 10

12

2

Seja o intervalo [-3, -2]:

p(-3) = -11 p(-2) = 2 p'(-3) = 24 V-3 = 3 trocas de sinal p'(-2) = 4 V-2 = 2 trocas de sinal p"(-3) = -26 p"(-2) = -14 p'"(-3) = 12 p'"(-2) = 12

Logo, como V V− −− =3 2 1, existe uma raiz no intervalo [-3, -2]. Portanto a outra raiz

negativa está no intervalo [-2, 0]. Cálculo da raiz positiva - Método do ponto fixo:

5x22

x2)5x2(x02x5x2 223

+=⇒=+⇒=−+

Assim:

⇒∈<⇒+

+

−=⇒+

= ]1,0[x1)x('g

)5x2(5x2

1

2)x('g

5x22

)x(g2

método

converge. Seja 000.0x0 =

632.0502

2x1 =

+×= 571.0

5565.022

x3 =+×

=

565.05632.02

2x2 =

+×= 571.0

5571.022

x4 =+×

=

Cálculo de raiz negativa - Método de Newton-Raphson:

p x x x p x x x( ) '( )= + − = +2 5 2 6 103 2 2

x xp x

p xi ii

i+ = −1

( )

'( ). Seja x0 3= −

Page 47: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 2 – Solução de Equações

42

xpp1 3

33

2 542= − −−−

= −( )'( )

.

xp

p2 2 5422 542

2 5422 352= − −

−−

= −.( . )

'( . ).

xpp3 2 352

2 3522 352

2 315= − −−−

= −.( . )'( . )

.

xpp4 2 315

2 3152 315

2 313= − −−−

= −.( . )'( . )

.

2. Enumere, localize e separe as raízes reais da equação x x3 3 1 0− + = . Em seguida utilize o método do ponto fixo para encontrar uma raiz positiva, caso exista, e o método de Newton-Raphson para encontrar uma raiz negativa desta equação. Nos métodos iterativos

trabalhe com 4 casas decimais e utilize o critério de parada: x xn n− <−1 0 01. , onde xi

corresponde à i-ésima aproximação para o valor da raiz.

Solução:

p(x) = x x3 3 1− + ⇒ p(-x) = − + +x x3 3 1 = x x3 3 1− − Enumeração: p(x) + - + 2 trocas ⇒ 0 ou 2 raízes reais positivas p(-x) - + + 1 troca ⇒ 1 raiz real negativa Localização:

− Raízes positivas:

1 0 -3 1 1 ↓ 1 1 1 1 -2

1 0 -3 1

2 ↓ 2 4 2 raiz ∈ [0, 2] 1 2 1 3

− Raiz negativa:

1 0 -3 -1 2 ↓ 2 4 2 raiz ∈ [-2, 0] 1 2 1 1

Separação das raízes positivas:

p x x x

p x x

p x x

p x

( )

' ( )

"( )

"'( )

= − +

= −=

=

3

2

3 1

3 3

6

6

Page 48: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 2 – Solução de Equações

43

Seja o intervalo [0, 1]:

p(0) = 1 p'(0) = -3 ⇒ V0 = 2 trocas de sinal p"(0) = 0 p'"(0) = 6

p(1) = -1 p'(1) = 0 ⇒ V1 = 1 troca de sinal p"(1) = 6 p'"(1) = 6

Logo, como V V0 1 1− = , existe uma raiz no intervalo [0, 1]. Portanto, o intervalo [0, 2]

deve conter duas raízes (e não zero raízes). Conclui-se então que a outra raiz positiva está no intervalo [1, 2]. Cálculo da raiz positiva - Método do ponto fixo:

x x xx3

33 1 0

13

− + = ⇒ =+

Assim:

g xx

g x x g x para x( ) '( ) '( )=+

⇒ = ⇒ < < < ⇒3

213

1 0 1 método

converge. Seja x0 0= .

x1

30 13

0 3333=+

= .

x2

30 3333 13

0 3457=+

=.

.

x x x raiz3

3

2 30 3457 1

30 3471 0 0014 0 01 0 34=

+= ⇒ − = < ⇒ ≅

.. . . .

Cálculo de raiz negativa - Método de Newton-Raphson:

p x x x p x x( ) '( )= − + = −3 23 1 3 3

x xp x

p xi ii

i+ = −1

( )

'( ). Seja x0 2= −

xp

p1 22

22

1

918889= − −

−−

= − −−

= −( )

' ( ).

xp

p2 1888918889

1888918889

0 0727

7 703818795= − −

−−

= − −−

= −.( . )

'( . ).

.

..

xp

p3 1879518795

1879518795

0 0009

7 597618794= − −

−−

= − −−

= −.( . )

' ( . ).

.

..

Portanto: raiz ≅ −1.87

Page 49: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 2 – Solução de Equações

44

EXERCÍCIOS PROPOSTOS 1. Enumere, localize e separe as raízes reais das equações abaixo. Em seguida utilize o

método do ponto fixo para encontrar, caso exista, uma raiz negativa e o método de Newton-Raphson para encontrar, caso exista, uma raiz positiva destas equações. Nos métodos iterativos trabalhe com 3 casas decimais e utilize o critério de parada:

x xn n− <−1 0 01. , onde xn corresponde à n-ésima aproximação para o valor da raiz.

a x x x

b x x x

c x x x x

)

)

)

3 2

3 2

4 3 2

6 20 0

5 3 0

6 10 6 9 0

− − + =

− + + =

− + − + =

2. Considerando a equação f xx

a( ) = − =1

02

mostre que a raiz quadrada de 1/a pode ser

encontrada pela iteração de Newton-Raphson: ( )x x axn n n= −− −1 123 2/ . Deduza uma

expressão equivalente para encontrar a raiz m-ésima (m > 1) de 1/a e use o esquema iterativo encontrado para calcular a raiz cúbica de 2 com 5 casas decimais.

EXERCÍCIOS DE PROGRAMAÇÃO

1. Determinar uma raiz da equação f x sin xx

( ) ( )= − =2

0 no intervalo [0, π]. Para identificar

uma aproximação inicial para o valor da raiz utilizar o programa Mathematica com as seguintes instruções: 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 método da bissecção e o método da falsa-posição para determinar o valor da raiz. Para os métodos iterativos, considere o seguinte critério de parada:

ε<− − n1nn x/)xx(

para -510 =ε . Mostre o número n de iterações, o valor da raiz x* obtida e o valor de f(x*). 2. Determinar uma raiz da equação f x x Ln x( ) ( )= + = 0 no intervalo [0, 1].

Implementar o método de Newton-Raphson para determinar o valor da raiz. O processo iterativo de Newton-Raphson deve ser implementado como uma função NRSOLVE com os seguintes parâmetros:

RAIZ = NRSOLVE(X0,EPS,LIM,RAIZ)

onde: X0 Estimativa inicial da raiz EPS Precisão desejada

Page 50: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 2 – Solução de Equações

45

LIM Número máximo de iterações RAIZ Valor encontrado para a raiz

O critério de parada deve combinar o erro relativo entre aproximações sucessivas e o limite de iterações. Conferir o valor encontrado para a raiz utilizando o programa Mathematica. Utilizar as seguintes instruções: 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 contém a raiz; xmax - limite superior do intervalo que contém a raiz; lim - número máximo de iterações.

Page 51: 34413174 Calculo Numerico en Portugues

47

Cálculo Numérico

3. SOLUÇÃO DE SISTEMAS DE EQUAÇÕES LINEARES 3.1 - Introdução Neste capítulo estuda-se como encontrar a solução de um sistema de equações lineares da forma:

a x a x a x b

a x a x a x b

a x a x a x b

n n

n n

n n nn n n

11 1 12 2 1 1

21 1 22 2 2 2

1 1 2 2

+ + + =+ + + =

+ + + =

...

...

...

...

Neste caso o sistema possui n equações e n incógnitas (x x xn1 2, , ..., ). O problema é

encontrar os valores de x x xn1 2, , ..., que satisfazem simultaneamente ao conjunto de equações. Exemplo:

=−+=++

−=−−

2xx3x

7xx2x

5x2xx

321

321

321

Neste caso, o problema é determinar os valores de 321 x,x,x que satisfazem

simultaneamente as três equações. Este problema pode ser escrito na forma matricial como:

{

1 1 2

1 2 1

1 3 1

5

7

2

1

2

3

− −

−× =

A X B

x

x

x1 244 344 123

onde:

• A - matriz dos coeficientes • X - vetor de incógnitas • B - vetor dos termos independentes

Os métodos numéricos de solução de sistemas de equações lineares podem ser classificados em: Métodos Diretos. São métodos que determinam a solução X de um sistema AX = B realizando um número preestabelecido de operações aritméticas. A menos de erros de arredondamento (possivelmente cometidos quando implementa-se o método de solução no computador), a solução obtida por um método direto é exata. Métodos Iterativos. São métodos que permitem obter uma solução aproximada X* a partir de

um esquema iterativo para gerar uma sequência de aproximações sucessivas ...,X,X )2()1( a

partir de uma aproximação inicial )0(X e de um critério de parada. Os métodos iterativos de solução de sistemas de equações lineares são muito dependentes da matriz dos coeficientes do sistema. Dependendo do tipo de matriz, um método pode

Page 52: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

48

convergir ou não. Outro problema, já discutido anteriormente, o mal-condicionamento, também depende da matriz dos coeficientes do sistema. Para os métodos diretos, existem métodos especiais quando a matriz dos coeficientes possui uma forma especial. MATRIZES ESPECIAIS Uma matriz A (n x n) é: • SIMÉTRICA: 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)

• DIAGONAL DOMINANTE: se | Aii | ≥ | |Aijjj i

n

=≠

∑1

, para i = 1, 2, ..., n

• ESTRITAMENTE DIAGONAL DOMINANTE: se | Aii | > | |Aijjj i

n

=≠

∑1

, para i = 1,2, ..., n

Exemplos:

Simétrica

1 2 3 4

2 5 6 7

3 6 8 9

4 7 9 10

Tridiagonal

1 2 0 0

3 4 5 0

0 6 7 8

0 0 9 10

Simétrica e Tridiagonal

1 2 0 0

2 3 4 0

0 4 5 6

0 0 6 7

Triangular Superior

1 2 3 4

0 5 6 7

0 0 8 9

0 0 0 10

Page 53: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

49

Triangular Inferior

1 0 0 0

2 3 0 0

4 5 6 0

7 8 9 10

Diagonal

1 0 0 0

0 2 0 0

0 0 3 0

0 0 0 4

Triangular Inferior Unitária

1 0 0 0

2 1 0 0

3 4 1 0

5 6 7 1

Diagonal Dominante

10 1 2 4

4 9 0 5

1 1 6 2

1 1 2 5

−−

− − −−

3.2 – Métodos Diretos Uma forma de resolver um sistema de equações lineares é eliminar, sucessivamente, as incógnitas até obter uma equação com uma única incógnita. Determinar o valor desta incógnita e substituir de volta seu valor nas outras equações, para determinar o valor das demais incógnitas. Por exemplo, seja o seguinte sistema:

=−+=+−

−=−−

2xx3x)c(7xx2x)b(

5x2xx)a(

321

321

321

Fazendo: (d) = (b) - (a); (e) = (c) - (a), tem-se as equações:

=+=+7xx4)e(12x3x3)d(

32

32

Fazendo agora: (f) = (e) - (4/3)(d), tem-se:

{ 9x3)f( 3 −=−

Logo, de (f) pode-se determinar que x3 = 3. Substituindo o valor de x3 na equação (e) tem-se

que x2 = 1. Substituindo os valores de x2 e x3 na equação (a) tem-se que x1 = 2.

Portanto nesta classe de método, é possível estabelecer a priori o número de operações aritméticas elementares requeridas para obter a solução, em função do número de equações. A questão é: "Como fazer isto eficientemente e como organizar os cálculos de modo a diminuir os erros de arredondamento?".

Page 54: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

50

3.2.1 – MÉTODO DA ELIMINAÇÃO DE GAUSS Seja o sistema a seguir, onde os sobrescritos entre parênteses são usados para indicar os valores disponíveis em cada estágio da solução:

a x a x a x b

a x a x a x b

a x a x a x b

111

1 121

2 131

3 11

211

1 221

2 231

3 21

311

1 321

2 331

3 31

( ) ( ) ( ) ( )

( ) ( ) ( ) ( )

( ) ( ) ( ) ( )

+ + =

+ + =

+ + =

Para eliminar x1 da segunda equação, deve-se:

• substituir a segunda equação por: (2ª equação) −a a211

111( ) ( )

/ (1ª equação)

Para eliminar x1 da terceira equação, deve-se:

• substituir a terceira equação por: (3ª equação) −a a311

111( ) ( )

/ (1ª equação)

Após este passo o sistema pode ser escrito como:

a x a x a x b

a x a x b

a x a x b

111

1 121

2 131

3 11

222

2 232

3 22

322

2 332

3 32

( ) ( ) ( ) ( )

( ) ( ) ( )

( ) ( ) ( )

+ + =

+ =

+ =

onde:

a aa

aa i j

b ba

ab i

ij iji

j

i ii

( ) ( )( )

( )( )

( ) ( )( )

( )( )

, ,

,

2 1 11

111 1

1

2 1 11

111 1

1

2 3

2 3

= − =

= − =

O próximo passo será eliminar x2 da terceira equação. Para isto deve-se:

• substituir a terceira equação por: (3ª equação) −a a322

222( ) ( )

/ (2ª equação)

Com isto, o sistema passa a ser o seguinte:

a x a x a x b

a x a x b

a x b

111

1 121

2 131

3 11

222

2 232

3 22

333

3 33

( ) ( ) ( ) ( )

( ) ( ) ( )

( ) ( )

+ + =

+ =

=

onde:

Page 55: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

51

a aa

aa

b ba

ab

333

332 32

2

222 23

2

33

32 32

2

222 2

2

( ) ( )( )

( )( )

( ) ( )( )

( )( )

= −

= −

Com estas operações, transformou-se a matriz dos coeficientes do sistema em uma matriz triangular superior. Portanto pode-se determinar facilmente o valor da última incógnita ( 3x ).

Uma vez determinado este valor, pode-se usar, sucessivamente, as equações anteriores para determinar, uma a uma, as demais incógnitas do sistema. Portanto o método da eliminação de Gauss apresenta duas fases: (i) fase de eliminação, para transformar a matriz dos coeficientes em matriz triangular

superior, e (ii) fase de substituição, para determinar, da última até a primeira, os valores da incógnitas. Exemplo. Resolver, pelo método da eliminação de Gauss, o seguinte sistema:

2 3 5

4 4 3 3

2 3 1

1 2 3

1 2 3

1 2 3

x x x

x x x

x x x

+ − =

+ − =− + = −

As operações de eliminação do método 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):

2 3 1 5

4 4 3 3

2 3 1 1

−− −

No primeiro passo de eliminação, deve-se transformar os elementos a21 e a31 em zero. Para

fazer a21 = 0, basta substituir a segunda linha por: (2ª linha) −a

a21

11(1ª linha). Ou seja:

−a

a21

11(1ª linha) = ( ) ( ) ( )−

− = − − = − − −4

22 3 1 5 2 2 3 1 5 4 6 2 10( )

(2ª linha) −a

a21

11(1ª linha) = ( ) ( ) ( )7120102643344 −−−=−−−+−

Para fazer a31 = 0, basta substituir a terceira linha por: (3ª linha) −a

a31

11(1ª linha). Ou seja:

−a

a31

11(1ª linha) = ( ) ( ) ( )−

− = − − = − − −2

22 3 1 5 1 2 3 1 5 2 3 1 5( )

Page 56: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

52

(3ª linha) −a

a31

11(1ª linha) = ( ) ( ) ( )626051321132 −−=−−−+−−

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

2 3 1 5

0 2 1 7

0 6 2 6

− − −− −

No segundo passo de eliminação, partindo-se da nova matriz aumentada, deve-se transformar o elemento a32 em zero. Para fazer a32 = 0, basta substituir a terceira linha por: (3ª

linha)−a

a32

22(2ª linha). Ou seja:

−a

a32

22(2ª linha) = ( ) ( ) ( )− −

−− − − = − − − − =

( )( )

62

0 2 1 7 3 0 2 1 7 0 6 3 21

(3ª linha) −a

a32

22(2ª linha) = ( ) ( ) ( )15500213606260 =+−−

Assim, ao final do passo de eliminação tem-se a seguinte matriz aumentada:

2 3 1 5

0 2 1 7

0 0 5 15

− − −

e portanto, pode-se escrever:

5 15 3

2 1 2 3 7 2

2 3 1 2 6 3 5 1

3 3

2 3 2 2

1 2 3 1 1

x x

x x x x

x x x x x

= ⇒ =− − = − − = − ⇒ =

+ − = + − = ⇒ =

ou seja, o vetor solução do sistema é:

X =

1

2

3

Exercício. Resolver o seguinte sistema pelo método da eliminação de Gauss:

x x x x

x x x x

x x x x

x x x x

1 2 3 4

1 2 3 4

1 2 3 4

1 2 3 4

2 3 4 10

2 2 3 7

3 2 2 6

4 3 2 5

+ + + =+ + + =+ + + =+ + + =

Page 57: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

53

Seja o sistema AX = B, com n equações. O algoritmo do método da eliminação de Gauss pode ser escrito como: Fase de Eliminação:

1. Para k variando de 2 até n, fazer:

2. Para i variando de k até n, fazer:

pivô = 1k,1k

1k,i

a

a

−−

1kii bpivôbb −×−=

0a 1k,i =−

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

j,1kj,ij,i apivôaa −×−=

Fase de Substituição: 4. Para i variando de N até 1, fazer:

x b a x ai i i j jj i

N

i i= −= +∑( ) /, ,

1

Observações: • No método da eliminação de Gauss, o número de somas/subtrações e multiplicações é

proporcional a n3 (ou seja, o esforço computacional cresce com o cubo do número de equações).

• Após as eliminações, tem-se:

a x a x a x b

a x a x b

a x b

n n

n n

nnn

n nn

111

1 121

2 11

11

222

2 22

22

( ) ( ) ( ) ( )

( ) ( ) ( )

( ) ( )

...

...

...

+ + + =

+ + =

=

Portanto, o determinante da matriz dos coeficientes A é dado por: a a annn

111

222( ) ( ) ( )...× × ×

• Em cada estágio i do processo de eliminação, admitiu-se que a i ii,

( ) ≠ 0. Se a i i

i,

( ) = 0, pelo

menos um dos demais coeficientes da coluna i deve ser diferente de zero. Portanto, pode ser necessário mudar a ordem das equações.

Para sistemas de equações lineares com a mesma matriz dos coeficientes, como por exemplo em:

Page 58: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

54

1 1 2

1 2 1

1 3 1

5

7

2

1 1 2

1 2 1

1 3 1

1

7

6

1

2

3

1

2

3

− −

−× =

− − −

−× =

x

x

x

e

x

x

x

não é preciso resolver os sistemas independentemente (uma vez que as operações de eliminação dependem apenas da matriz dos coeficientes). Pode-se aplicar o processo de eliminação sobre o "sistema expandido":

1 1 2

1 2 1

1 3 1

5

7

2

1

7

6

1

2

3

− −

−× =

−x

x

x

e para obter os valores de x do primeiro sistema, fazer as retro-substituições 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, após a fase de eliminação tem-se:

1 1 2

0 3 3

0 0 3

5

12

9

1

6

3

1

2

3

− −

−× =

− −

x

x

x

e portanto, a solução do primeiro sistema será:

2

1

3

e a do segundo:

4

1

1

.

Uma observação importante é com relação à precisão dos resultados obtidos pelo método da eliminação de Gauss. Em qualquer estágio do processo de eliminação é indesejável ter-se

pivôs a

ai k

k k

,

,

− −

1

1 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 serão multiplicados por um valor grande. O ideal é rearranjar as equações de modo a se ter, em cada estágio, pivôs que sejam (em valor absoluto) menores do que 1. Exemplo:

1 1 2

1 2 1

1 3 1

5

7

2

1

2

3

− −

−× =

−x

x

x

Neste caso, considerando a primeira coluna para a 1ª, 2ª e 3ª equações, tem-se que pivô = 1. Então:

1 1 2

0 3 3

0 4 1

5

12

7

1

2

3

− −

× =

−x

x

x

Agora, considerando-se a segunda coluna para a 2ª e 3ª equações, tem-se que pivô = 4/3, ou seja, para minimizar os erros de aproximação o sistema deve ser rearranjado como:

Page 59: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

55

1 1 2

0 4 1

0 3 3

5

7

12

1

3

2

− −

× =

−x

x

x

3.2.2 – DETERMINAÇÃO DE INVERSA DE MATRIZ A solução 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 vários vetores B, de forma a ter no lado direito do sistema uma matriz identidade, ao final do método da eliminação de Gauss os vetores solução serão as colunas da inversa da matriz dos coeficientes. Em outras palavras, considere os sistemas:

1

...

0

0

AX...

0

...

1

0

AX

0

...

0

1

AX n21 ===

As soluções destes sistemas serão tais que:

321321321

111

Adecoluna

ésiman

1n

Adecoluna2ª

12

Adecoluna1ª

11

1

...

0

0

AX...

0

...

1

0

AX

0

...

0

1

AX

−−−

−−− ===

Exemplo.

Determinar a inversa de A =

1 1 2

1 2 1

1 3 1

− −

−.

Seja então o "sistema expandido":

1 1 2 1 0 0

1 2 1 0 1 0

1 3 1 0 0 1

− −

Aplicando as operações de eliminação, tem-se:

1 1 2 1 0 0

0 3 3 1 1 0

0 4 1 1 0 1

− −−−

Page 60: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

56

1 1 2 1 0 0

0 3 3 1 1 0

0 0 3 1 3 4 3 1

− −

−− −/ /

Portanto, os "vetores solução" serão:

X1 =

9/1

9/2

9/5

−− X2 =

9/4

9/1

9/7

− X3 =

3/1

3/1

3/1

ou seja:

A− =

− −− −

15 9 7 9 1 3

2 9 1 9 1 3

1 9 4 9 1 3

/ / /

/ / /

/ / /

Exercício.

Determinar a inversa da matriz A =

2 3 1

4 4 3

2 3 1

−−

, pelo método da eliminação de Gauss.

3.2.3 – MÉTODO DE GAUSS-JORDAN

Considere um sistema de n equações lineares da forma AX = B, cuja solução é X = A B−1 . Seja a matriz expandida escrita como: A B I, onde I é uma matriz identidade de ordem n. Considere operações elementares que transformem a matriz A em uma matriz identidade. Tais

operações correspondem à multiplicação de A por sua inversa A−1, ou seja IAA 1 =− . Estas operações elementares quando aplicadas à matriz expandida A B I, portanto, serão tais que:

Operações Elementares[ A B I ] ⇒ A A A B A II X A

− − −

1 1 1

1123 123 123 ⇒ [ I X A −1]

Assim, no método de Gauss-Jordan parte-se da matriz expandida [ A B ] (ou [ A B I ], caso deseja-se determinar também a inversa da matriz A) e procura-se transformar a matriz A em matriz identidade. Uma vez concluído este passo, tem-se ao final a matriz expandida

transformada em [ I X ] (ou [ I X A−1], caso, de início, a matriz expandida seja [ A B I ]). Exemplo. Determinar o vetor solução e a inversa da matriz dos coeficientes para o seguinte sistema de equações lineares:

x y z

x y z

x y z

+ + =

+ + =− − = −

4

2 3 9

2

Neste caso, a matriz expandida será:

Page 61: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

57

1 1 1 4 1 0 0

2 3 1 9 0 1 0

1 1 1 2 0 0 1− − −

O método 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, através da soma de linhas. Portanto no primeiro passo tem-se:

1 1 1 4 1 0 0 0 1 -1 1 -2 1 0 0 -2 -2 -6 -1 0 1

No segundo passo, tem-se:

1 0 2 3 3 -1 0 0 1 -1 1 -2 1 0 0 0 -4 -4 -5 2 1

Finalmente, no terceiro passo tem-se:

1 0 0 1 0.5 0 0.5 0 1 0 2 -0.75 0.5 -0.25 0 0 1 1 1.25 -0.5 -0.25

Portanto:

X

x

y

z

= =

1

2

1

A− = − −− −

105 0 0 5

0 75 05 0 25

125 05 0 25

. .

. . .

. . .

Exercício. Determinar o vetor solução e a inversa da matriz dos coeficientes para os seguintes sistemas de equações lineares:

x x x

x x

x x x

1 2 3

1 3

1 2 3

0 5

2 4

2 35

+ − =

+ =

− + =

.

.

3 0

0

2 2 6

1 2 3

1 2 3

1 2 3

x x x

x x x

x x x

− + =

+ + =

− + = −

Seja o sistema AX = B, com N equações. Seja M a matriz expandida (M = [ A B], se apenas a solução do sistema for desejada, ou M = [ A B I ], caso se queira também a inversa da matriz dos coeficientes). Seja L o número de colunas de M (L = N+1, se M = [ A B ], ou L = 2N+1, se M = [ A B I ]). O algoritmo do método da eliminação de Gauss-Jordan pode ser escrito na forma de um diagrama de blocos como:

Page 62: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

58

L,M

I <> K?

P = M(K,K)

K = 1,N

CONTINUE

sim

não

I = 1,N

C(I) = M(I,K)

J = K,L

M(K,J) = M(K,J)/P

I = 1,N

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

M(I,N+1), I = 1, 2, ..., N, é a solução do sistema

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

3.2.4 – Métodos de Fatoração A idéia dos métodos de fatoração é trabalhar com a matriz dos coeficientes, mantendo o vetor dos termos independentes inalterado. O método mais usado é o da fatoração LU. Seja o

sistema de n equações lineares: ∑=

=n

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

seja fatorada como o produto de duas matrizes: • uma matriz triangular inferior unitária (L) • uma matriz triangular superior (U) Com a fatoração A = LU, o sistema de equações AX = B pode ser escrito como:

Page 63: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

59

(LU)X = B

ou seja: LY = B, com Y = UX. Neste caso, para determinar o vetor solução X, ao invés de resolver o sistema original AX = B, resolve-se dois sistemas:

LY = B (note que como L e B são conhecidos, pode-se determinar Y) e em seguida:

UX = Y (como U e Y são conhecidos, determina-se X) A vantagem de resolver o sistema dessa forma é que, uma vez feita a fatoração A = LU, o cálculo das soluções dos sistemas LY = B e UX = Y é muito simples, pois as matrizes dos coeficientes desses sistemas já está na forma triangular. Além disso, se for alterado o vetor B, a fatoração de A pode ser aproveitada e a solução do sistema continua fácil de ser determinada. Exemplo. Seja o sistema AX = B da forma:

1 1 2

1 2 1

1 3 1

5

7

2

1

2

3

− −

−× =

−x

x

x

Considerando a fatoração:

44344214342143421ULA

300

330

211

13/41

011

001

131

121

211

−−×=

−−

pode-se reescrever o sistema de equações como os seguintes sistemas: a) LY = B, como:

1 0 0

1 1 0

1 4 3 1

5

7

2

1

2

3/

× =

−y

y

y

cuja solução é fácilmente determinada, pois a matriz dos coeficientes já está na forma triangular inferior. Assim:

1 5 5

1 1 7 12

143

1 2 9

1 1

1 2 2

1 2 3 3

× = − ⇒ = −× + × = ⇒ =

× + × + × = ⇒ = −

y y

y y y

y y y y

Page 64: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

60

ou seja:

y

y

y

1

2

3

5

12

9

=

b) UX = Y, como:

1 1 2

0 3 3

0 0 3

5

12

9

1

2

3

− −

−× =

x

x

x

cuja solução novamente pode ser determinada facilmente por retro-substituição, ou seja:

− × = − ⇒ =× + × = ⇒ =× − × − × = − ⇒ =

3 9 3

3 3 12 1

1 1 2 5 2

3 3

2 3 2

1 2 3 1

x x

x x x

x x x x

Assim, o vetor solução do sistema de equações original é dado por:

x

x

x

1

2

3

2

1

3

=

A questão é: "Como obter a fatoração A = LU ?" CÁLCULO DOS FATORES L e U As matrizes L e U são obtidas pela fase de triangularização do método da eliminação de Gauss: − a matriz L é formada a partir dos pivôs usados nos passos de eliminação; − a matriz U é a matriz triangular resultante do processo de eliminação. Exemplo: Seja a seguinte matriz A:

A =

333231

232221

131211

aaa

aaa

aaa

− para eliminar 1x da linha 2 devemos substituir a linha 2 por: (linha 2) – p21(linha 1), onde

p21 é o pivô dessa linha, dado por: 11

2121 a

ap = .

Page 65: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

61

− para eliminar 1x da linha 3 devemos substituir a linha 3 por: (linha 3) – p31(linha 1), onde

p31 é o pivô dessa linha, dado por: 11

3131 a

ap = .

Isso vai resultar em uma matriz da forma:

A =

3332

2322

131211

bb0

bb0

bbb

− para eliminar 2x da linha 3 devemos substituir a linha 3 por: (linha 3) – p32(linha 2), onde

p32 é o pivô dessa linha, dado por: 22

3232 b

bp = .

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

U =

33

2322

131211

u00

uu0

uuu

e a matriz L (triangular inferior unitária) será formada pelos pivôs usados para determinar U, ou seja:

L =

1pp

01p

001

3231

21

Exercício.

Determinar a fatoração LU para a seguinte matriz A =

4 1 0

1 4 1

0 1 4

− −−

.

Este processo de solução de sistemas de equações lineares, baseado na fatoração LU, é conhecido como Método de Doolittle. Este método pode ser estabelecido formalmente como o seguinte algoritmo: Algoritmo – Método de Doolittle Seja o sistema AX = B. 1. Para determinar as matrizes L e U, fazer:

U A L j N

A

Ui N

j j jj

ii

1 1

11

11

1 1 2

2 3

= = =

= =

; ( , , ..., )

( , , ..., )L

Page 66: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

62

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

U A U j r r N

A U

Ui r r N

rj rj rkk

r

kj

ir

ir ik krk

r

rr

= − = +

=−

= + +

=

=

L

L

L

1

1

1

1

1

1 2

( , , ..., )

( , , ..., )

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

Y B Y i N

X

Y U X

Ui N N

i i ijj

i

j

i

i ij jj i

N

ii

= − =

=

= −

=

= +

L1

1

1

1 2

1 1

( , , ..., )

( , , ..., )

Outro método que também usa a fatoração A = LU, mas com L, matriz triangular inferior e U, matriz triangular superior unitária, é conhecido como Método de Crout. Exemplo. Resolver o sistema AX = B a seguir pelo método de Crout:

1 1 2

1 2 1

1 3 1

5

7

2

1

2

3

− −

−× =

−x

x

x

A matriz A pode ser escrita como:

44344214342143421ULA

100

110

211

341

031

001

131

121

211 −−×

=

−−

Deve-se, em primeiro lugar (como no método de Doolittle), determinar o vetor Y a partir do sistema LY = B, ou seja:

1 0 0

1 3 0

1 4 3

5

7

2

1

2

3−× =

−y

y

y

Deste sistema tem-se:

1 5 5

1 3 7 4

1 4 3 2 3

1 1

1 2 2

1 2 3 3

× = − ⇒ = −× + × = ⇒ =× + × − × = ⇒ =

y y

y y y

y y y y

Page 67: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

63

Com o vetor Y, a solução do sistema original é obtida resolvendo-se o sistema UX = Y, ou seja:

1 1 2

0 1 1

0 0 1

5

4

3

1

2

3

− −

× =

−x

x

x

Portanto:

1 3 3

1 1 4 1

1 1 2 5 2

3 3

2 3 2

1 2 3 1

× = ⇒ =× + × = ⇒ =× − × − × = − ⇒ =

x x

x x x

x x x x

Existem métodos para casos especiais da matriz dos coeficientes. O método de Choleski, por exemplo, é aplicado em sistemas onde a matriz A é simétrica, considerando uma fatoração

A LLT= , onde L é matriz triangular inferior e LT é a transposta da matriz L. Um caso de muito interesse prático é quando a matriz dos coeficientes é tridiagonal . Uma matriz A da forma:

A

a c

d a c

d a c

d an n n

n n

=

− − −

1 1

2 2 2

1 1 1

0 0 0 0

0 0 0

0 0 0

0 0 0 0

...

...

... ...

...

...

pode ser fatorada como A = LU tal que:

L

d

d

dn n

n n

=

− −

αα

αα

1

2 2

1 1

0 0 0 0

0 0 0

0 0 0

0 0 0

...

...

...

...

...

U

n

=

1 0 0 0

0 1 0 0

0 0 0 1

0 0 0 0 1

1

2

1

ββ

β

...

...

...

...

...

onde:

α

α β

β α

1 1

1 1 1

1 2 3

=

=

+ = =− − −

a

c

d a i ni i i

i i i i ( , , ..., )

Neste caso, para um sistema de equações da forma AX = B, obtém-se facilmente o vetor X uma vez que os sistemas LY = B e UX = Y são sistemas muito simples. Ou seja, a solução do sistema LY = B pode ser calculada como:

Page 68: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

64

yb

yb d y

i nii i i

i

11

1

1 2 3

=

=−

=−

α

α( , , ..., )

e, em seguida, a solução do sistema UX = Y é dada por:

x y

x y x i n nn n

i i i i

== − = − −+β 1 1 2 1( , , ..., )

Exemplo. O problema de valor de contorno dado por:

d y

dx

dy

dxy x y y

2

2 0 64 34

916419= − − = =; ; .

pode ser resolvido numericamente discretizando-se o espaço (x, y) e aproximando-se as derivadas a diferenças 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 espaçados com passo h = 0.05, a solução do problema é um vetor y y y y y y= { , , , , }1 2 3 4 5 , que pode ser obtido resolvendo-se o

seguinte sistema de equações lineares:

( ) ( )

( ) ( )

( ) ( )

( ) ( )

( ) ( )

− + + −− + + −

− + + −− + + −

− + +

=

− −

− − −

2 4 3 1 4 0 0 0

1 2 4 3 1 4 0 0

0 1 2 4 3 1 4 0

0 0 1 2 4 3 1 4

0 0 0 1 2 4 3 1 4

2

2

2

2

2

1

2

34

5

21 02

22

32

42

5 6

h h h

h h h

h h h

h h h

h h

y

y

yy

y

h x y

h x

h x

h x

h x h y

Determinar a solução do problema pelo método de matrizes tridiagonais. Neste caso, substituindo-se os valores de h, y0 e y6 tem-se o seguinte sistema AY = B:

−−

−−

=

−−−−

17925 0 8 0 0 0

1 17925 08 0 0

0 1 17925 0 8 0

0 0 1 17925 0 8

0 0 0 1 17925

0 4445

0 0004

0 0009

0 0016

13160

1

2

34

5

. .

. .

. .

. .

.

.

.

.

.

.

y

y

yy

y

Para a determinação das matrizes L e U tem-se:

Page 69: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

65

α α

α β β

β α α

α β β

1 1 1

1 1 1 1

2 1 2 2 2

2 2 2 2

17925

0 8

179250 4463

17925 1 0 4463 13462

08

134620 5943

= ⇒ = −

= ⇒ =−

= −

+ = ⇒ = − − × − = −

= ⇒ =−

= −

a

c

d a

c

.

.

..

. ( . ) .

.

..

d a

c

d a

c

d a

3 2 3 3 3

3 3 3 3

4 3 4 4 4

4 4 4 4

5 4 5 5 5

17925 1 0 5943 11982

0 8

119820 6677

1 7925 1 0 6677 11248

0 811248

0 7112

17925 1 0 7112 10813

β α α

α β β

β α α

α β β

β α α

+ = ⇒ = − − × − = −

= ⇒ =−

= −

+ = ⇒ = − − × − = −

= ⇒ =−

= −

+ = ⇒ = − − × − = −

. ( . ) .

.

..

. ( . ) .

..

.

. ( . ) .

ou seja:

L =

−−

17925 0 0 0 0

1 1 3462 0 0 0

0 1 11982 0 0

0 0 1 11248 0

0 0 0 1 10813

.

.

.

.

.

U =

−−

−−

1 0 4463 0 0 0

0 1 0 5943 0 0

0 0 1 0 6677 0

0 0 0 1 0 7112

0 0 0 0 1

.

.

.

.

Assim, a solução do sistema LZ = B é dada por:

zb

z

zb d z

z

11

11

22 2 1

22

0 444517925

0 2480

0 0004 1 0 248013462

01845

= ⇒ =−−

=

=−

⇒ =− − ×

−=

α

α

.

..

. ..

.

zb d z

z

zb d z

z

zb d z

z

33 3 2

33

44 4 3

44

55 5 4

55

0 0009 1 0184511982

01547

0 0016 1 0 1547

1124801389

13160 1 01389

1081313455

=−

⇒ =− − ×

−=

=−

⇒ =− − ×

−=

=−

⇒ =− − ×

−=

α

α

α

. ..

.

. ..

.

. .

..

e portanto, a solução do problema é dada resolvendo-se o sistema UY = Z, ou seja:

Page 70: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

66

y z y

y z y y

y z y y

y z y y

y z y y

5 5 5

4 4 4 5 4

3 3 3 4 3

2 2 2 3 2

1 1 1 2 1

13455

0 1389 0 7112 13455 1 0958

01547 0 6677 10958 08864

01845 0 5943 08864 0 7113

0 2480 0 4463 0 7113 0 5655

= ⇒ =

= − ⇒ = − − × =

= − ⇒ = − − × == − ⇒ = − − × =

= − ⇒ = − − × =

.

. ( . ) . .

. ( . ) . .

. ( . ) . .

. ( . ) . .

β

ββ

β

Portanto a solução do sistema AY = B é dada por: Y =

05655

0 7113

0 8864

10958

1 3455

.

.

.

.

.

Observação. Os métodos de fatoração são métodos diretos (ou seja, não iterativos) como o método da eliminação de Gauss. No caso da fatoração LU para matrizes tridiagonais o número de operações aritméticas elementares é proporcional a n (lembrar que este número é proporcional

a 3n para o método de Gauss). 3.3 – Métodos Iterativos Seja o sistema de equações lineares:

a x a x a x b

a x a x a x b

a x a x a x b

11 1 12 2 13 3 1

21 1 22 2 23 3 2

31 1 32 2 33 3 3

+ + =

+ + =

+ + =

Supondo que 332211 aea,a são diferentes de zero, pode-se escrever:

x b a x a x a1 1 12 2 13 3 11= − −( ) /

x b a x a x a2 2 21 1 23 3 22= − −( ) / x b a x a x a3 3 31 1 32 2 33= − −( ) /

Sejam )0(3

)0(2

)0(1 x,x,x aproximações iniciais para x1, x2, x3. A partir das equações acima,

pode-se estabelecer o esquema iterativo de Gauss-Jacobi:

33)1k(

232)1k(

1313)k(

3

22)1k(

323)1k(

1212)k(

2

11)1k(

313)1k(

2121)k(

1

a/)xaxab(x

a/)xaxab(x

a/)xaxab(x

−−

−−

−−

−−=

−−=

−−=

k = 1, 2, 3, ...

Do esquema iterativo de Gauss-Jacobi acima, pode-se notar que uma vez determinado o valor

de )k(1x pela primeira equação, não é preciso mais usar a aproximação anterior )1k(

1x − na 2ª

Page 71: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

67

e 3ª equações. O mesmo ocorre em relação a )k(2x e o uso de )1k(

2x − na 3ª equação. Com

estas modificações, tem-se o esquema iterativo de Gauss-Seidel , que faz uso das novas aproximações tão logo elas se tornem disponíveis:

33)k(

232)k(

1313)k(

3

22)1k(

323)k(

1212)k(

2

11)1k(

313)1k(

2121)k(

1

a/)xaxab(x

a/)xaxab(x

a/)xaxab(x

−−=

−−=

−−=

−−

k = 1, 2, 3, ...

Exemplo. Determinar a solução do sistema:

3 2 2

5 6

4 2

1 2 3

1 2 3

1 2 3

x x x

x x x

x x x

+ − =− + − =

− + =

Neste caso, pode-se escrever:

x x x

x x x

x x x

1 2 3

2 1 3

3 1 2

1

32 2

1

56

1

42

= − +

= + +

= − +

( )

( )

( )

Seja a solução inicial dada por:

0

0

0

X )0( = . Considere inicialmente a aplicação do método de

Gauss-Jacobi . 1ª iteração:

x x x

x x x

x x x

1 2 3

2 1 3

3 1 2

1

32 2

1

32 0 2 0 0 6667

1

56

1

56 0 0 12000

1

42

1

42 0 0 0 5000

= − + = − + × =

= + + = + + =

= − + = − + =

( ) ( ) .

( ) ( ) .

( ) ( ) .

5000.0

2000.1

6667.0

X )1( =

2ª iteração:

Page 72: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

68

x x x

x x x

x x x

1 2 3

2 1 3

3 1 2

1

32 2

1

32 1 2000 2 0 5000 0 6000

1

56

1

56 0 6667 0 5000 14333

1

42

1

42 0 6667 12000 0 6333

= − + = − + × =

= + + = + + =

= − + = − + =

( ) ( . . ) .

( ) ( . . ) .

( ) ( . . ) .

6333.0

4333.1

6000.0

X)2(

=

3ª iteração:

x x x

x x x

x x x

1 2 3

2 1 3

3 1 2

1

32 2

1

32 14333 2 0 6333 0 6111

15

615

6 0 6000 0 6333 14467

1

42

1

42 0 6000 14333 0 7083

= − + = − + × =

= + + = + + =

= − + = − + =

( ) ( . . ) .

( ) ( . . ) .

( ) ( . . ) .

7083.0

4467.1

6111.0

X )3( =

e assim por diante. A solução deste sistema é: X = ≅

11 17

25 17

12 17

0 6471

14705

0 7059

/

/

/

.

.

.

Considerando agora a aplicação do método de Gauss-Seidel , tem-se: 1ª iteração:

x x x

x x x

x x x

1 2 3

2 1 3

3 1 2

1

32 2

1

32 0 2 0 0 6667

1

56

1

56 0 6667 0 13333

1

42

1

42 0 6667 13333 0 6666

= − + = − + × =

= + + = + + =

= − + = − + =

( ) ( ) .

( ) ( . ) .

( ) ( . . ) .

6666.0

3333.1

6667.0

X )1( =

2ª iteração:

x x x

x x x

x x x

1 2 3

2 1 3

3 1 2

1

32 2

1

32 1 3333 2 0 6666 0 6666

1

56

1

56 0 6666 0 6666 14666

1

42

1

42 0 6666 14666 0 7000

= − + = − + × =

= + + = + + =

= − + = − + =

( ) ( . . ) .

( ) ( . . ) .

( ) ( . . ) .

7000.0

4666.1

6666.0

X )2( =

3ª iteração:

Page 73: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

69

x x x

x x x

x x x

1 2 3

2 1 3

3 1 2

1

32 2

1

32 1 4666 2 0 7000 0 6444

1

56

1

56 0 6444 0 7000 14689

1

42

1

42 0 6444 14689 0 7061

= − + = − + × =

= + + = + + =

= − + = − + =

( ) ( . . ) .

( ) ( . . ) .

( ) ( . . ) .

7061.0

4689.1

6444.0

X )3( =

Portanto, nota-se que, após 3 iterações, a solução aproximada obtida através do método de

Gauss-Seidel, X*.

.

.

=

0 6444

14689

0 7061

está mais próxima da solução exata X ≅

0 6471

1 4705

0 7059

.

.

.

do que a

solução obtida com o método de Gauss-Jacobi, X*.

.

.

=

0 6111

14467

0 7083

. Em outras palavras, o método

de Gauss-Seidel converge mais rapidamente do que o de Gauss-Jacobi. Exemplo. Seja o sistema:

4 12

3 3 6

2 2 5 5

1 2 3

1 2 3

1 2 3

x x x

x x x

x x x

+ − =

− + + =+ + =

Sejam 0xxx )0(3

)0(2

)0(1 === . Neste caso, tem-se os seguintes resultados dos métodos

iterativos de Gauss-Jacobi e Gauss-Seidel:

Gauss-Jacobi Gauss-Seidel

k x1 x2 x3 x1 x2 x3 0 0.00000 0.00000 0.00000 0.00000 0.00000 0.00000 1 3.00000 2.00000 1.00000 3.00000 3.00000 -1.40000 2 2.75000 2.66667 -1.00000 1.90000 3.10000 -1.00000 3 2.08333 3.25000 -1.16667 1.97500 2.99167 -0.98667 4 1.89583 3.08333 -1.13333 2.00542 2.99736 -1.00111 5 1.94583 3.00972 -0.99167 2.00038 3.00050 -1.00035 6 1.99965 2.97917 -0.98222 1.99979 3.00005 -0.99993 7 2.00965 2.99396 -0.99152 2.00000 2.99998 -0.99999 8 2.00363 3.00039 -1.00144 2.00001 3.00000 -1.00000 9 1.99954 3.00169 -1.00161 2.00000 3.00000 -1.00000

10 1.99918 3.00038 -1.00049 11 1.99978 2.99989 -0.99982 12 2.00007 2.99987 -0.99986 13 2.00007 2.99998 -0.99997 14 2.00001 3.00001 -1.00002 15 1.99999 3.00001 -1.00001

As equações de recorrência dos métodos iterativos de Gauss-Jacobi e Gauss-Seidel podem ser generalizadas, para um sistema com n equações como:

Page 74: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

70

MÉTODO DE GAUSS-JACOBI:

n,...,2,1ia/)xab(x i,i

n

ij1j

)1k(jj,ii

)k(i =−= ∑

≠=

MÉTODO DE GAUSS-SEIDEL:

n,...,2,1ia/)xaxab(x i,i1i

1j

n

1ij

)1k(jj,i

)k(jj,ii

)k(i =−−= ∑ ∑

= +=

onde k = 1, 2, ... representa o número da iteração e 0a ii ≠ (i = 1, 2, ..., n).

Uma observação importante é que o número de operações aritméticas elementares em cada

iteração dos métodos de Gauss-Jacobi e Gauss-Seidel é proporcional a 2n . O esforço computacional total será determinado pelo número de iterações necessárias para alcançar a convergência. Teorema (Critério das Linhas). Seja o sistema de n equações lineares:

a x b i ni j j ij

n

, , ,...,= ==∑ 1 2

1

e seja: |a|

|a|

kk

n

kj,1jkj

k

∑≠==α . Se 1}{Max

n,,2,1kk <α=α

= L

então os métodos de Gauss-Jacobi e

Gauss-Seidel convergem, independente da escolha da aproximação inicial. Uma matriz que satisfaz o critério das linhas é denominada matriz estritamente diagonal dominante. Observe que o teorema acima estabelece uma condição suficiente, mas não necessária, para a convergência, ou seja, os esquemas iterativos de Gauss-Jacobi e de Gauss-Seidel poderão tembém convergir para outras classes de sistemas de equações lineares. Ver, para ilustrar, a tabela de resultados do exemplo anterior, onde a matriz dos coeficientes não é estritamente diagonal dominante e para o qual o método de Gauss-Jacobi converge após 15 iterações e o método de Gauss-Seidel converge após 9 iterações. A questão importante é a seguinte: se a matriz dos coeficientes for estritamente diagonal dominante, o teorema garante que para qualquer solução inicial os métodos iterativos convergem. No caso da tabela acima, os métodos convergiram para uma solução inicial nula. Será que irão convergir para uma outra estimativa inicial qualquer? Daí a importância do teorema acima, que garante que, se a matriz dos coeficientes for estritamente diagonal dominante os métodos de Gauss-Jacobi e Gauss-Seidel irão convergir, qualquer que seja a estimativa inicial escolhida. Observe que o critério das linhas pode ser satisfeito após uma permutação de linhas ou colunas. Por exemplo, seja o sistema:

Page 75: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

71

6x8x6

3x2x2x5

2xx3x

32

321

321

−=+

=++−=++

A matriz dos coeficientes desse sistema não satisfaz o critério das linhas, pois para a 1ª linha

tem-se: 141

131 >=

+=α . Contudo, permutando-se a primeira linha com a segunda, tem-se o

sistema:

6x8x6

2xx3x

3x2x2x5

32

321

321

−=+

−=++=++

que é equivalente ao sistema original mas que apresenta uma matriz dos coeficientes que satisfaz o critério das linhas. Ou seja, aplicando-se um método iterativo a esta nova forma do sistema a convergência estará assegurada. O critério das linhas assegura a convergência tanto do método de Gauss-Jacobi como do método de Gauss-Seidel. Entretanto, para o método de Gauss-Seidel existe um outro critério que também estabelece condições suficientes para a convergência, como mostra o teorema a seguir. Método de Gauss-Seidel – Critério de Sassenfeld Teorema. Seja o sistema de n equações lineares:

a x b i ni j j ij

n

, , ,...,= ==∑ 1 2

1

e sejam:

|a|

|a|

11

n

2jj1

1

∑==β e

|a|

|a||a||a||a||a|

jj

jn1jj1j1jj22j11jj

+++β++β+β=β +−− LL

.

Se 1}{Max

n,,2,1kk <β=β

= L

então o método de Gauss-Seidel converge, qualquer que seja a

estimativa inicial. Além disso, quanto menor for o valor de β , mais rápida será a convergência.

Exemplo. Seja o seguinte sistema:

3x3x

1xx

9x3xx2

31

32

321

=+

=+−=++

Com esta disposição, o critério de Sassenfeld não é satisfeito, pois 122

311 >=

+=β .

Contudo, trocando-se a primeira equação com a terceira, tem-se:

Page 76: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

72

9x3xx2

1xx

3x3x

321

32

31

=++

=+−=+

e, em seguida, trocando-se a 1ª coluna pela 3ª, tem-se:

9x2xx3

1xx

3xx3

123

23

13

=++

=−=+

e nesta forma, tem-se:

3

11 =β

3

1

1

031

1

2 =+×

=β 3

2

231

131

3

3 =×+×

Portanto, como 132

},,{Max 321 <=βββ=β , o critério de Sassenfeld está satisfeito e tem-se

garantida a convergência do método de Gauss-Seidel. O métodos iterativos de Gauss-Jacobi e de Gauss-Seidel devem utilizar algum critério de parada. Os critérios mais comuns levam em conta o erro absoluto e o erro relativo de duas iterações sucessivas, ou seja, considera-se que o método convergiu após k iterações se um dos critérios a seguir foi satisfeito:

)relativoerro(x

xxMax

)absolutoerro(xxMax

)1k(i

)1k(i

)k(i

ni1

)1k(i

)k(ini1

ε<−

ε<−

≤≤

≤≤

onde ε é o valor requerido para a precisão. Outra forma é determinar o vetor resíduo:

∑=

−=n

1j

)k(jj,ii

)k(i xabr com i = 1, 2, ..., n

e formular um critério de parada com base em alguma medida deste vetor, por exemplo, alguma norma do vetor resíduo ser menor que ε (precisão). As normas mais comumente usadas são:

Norma-2 = rii

n2

1=∑

Norma-∞ = Max r

i ni

1≤ ≤| |

Page 77: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

73

3.3.1 – ESTUDO DA CONVERGÊNCIA DOS MÉTODOS ITERATIVOS

Seja o sistema AX = B, ou seja, a x bi j j ij

n

, ==∑

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

coeficientes A pode ser escrita como: A = L + D + U onde:

L =

0 0 0

0 0

0

2 1

1 2

...

...

...

...

,

, ,

a

a an n

é uma matriz estritamente triangular inferior,

D =

a

a

an n

11

2 2

0 0

0 0

0 0

,

,

,

...

...

...

...

é uma matriz diagonal, e

U =

0

0 0

0 0 0 0

1 2 1

2

a a

an

n

, ,

,

...

...

... é uma matriz estritamente triangular superior.

Então, o sistema original pode ser escrito como: (L + D + U)X = B. Os termos desta equação podem ser reestruturados de várias maneiras, cada uma das quais levando a um método iterativo. Por exemplo:

DX = -(L + U)X + B o que leva ao esquema iterativo de Gauss-Jacobi:

BDX)UL(DX 1)1k(1)k( −−− ++−=

O esquema iterativo de Gauss-Seidel segue do esquema de Gauss-Jacobi, separando-se a soma (L + U):

BDUXDLXDX 1)1k(1)k(1)k( −−−− +−−= Neste caso, multiplicando-se todos os termos por D e rearranjando, tem-se:

BUXX)LD( )1k()k( +−=+ −

e portanto:

B)LD(UX)LD(X 1)1k(1)k( −−− +++−=

Page 78: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

74

Logo, é possível escrever os esquemas iterativos de Gauss-Jacobi e de Gauss-Seidel na

forma: GMXX )1k()k( += − , onde M e G são as matrizes mostradas na tabela a seguir:

M G Gauss-Jacobi -D-1(L + U) D-1B Gauss-Seidel -(D + L)-1U (D + L)-1B

Seja )k()k( XXE −= o erro na k-ésima iteração, onde X é a solução exata do sistema e )k(X é a solução obtida na k-ésima iteração. Então, como:

GMXX )1k()k( += − para a solução exata, deve valer:

X MX G= + Subtraindo estas duas equações, tem-se:

4342143421)1k()k(

E

)1k(

E

)k( )XX(MXX−

−−=−

Logo, pode-se escrever que:

)0(k)2k(2)2k()1k()k( EM...EM)ME(MMEE ===== −−−

onde )0(E é o erro na aproximação inicial )0(X . Portanto o processo iterativo irá convergir se Mk tender para a matriz nula à medida que k aumentar. Exemplo. Verificar a convergência do método iterativo de Gauss-Jacobi para o sistema de equações lineares a seguir.

4 2

4 6

4 2

1 2

1 2 3

2 3

x x

x x x

x x

+ =− + − =− + =

Neste caso, A =

4 1 0

1 4 1

0 1 4

− −−

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

L =

0 0 0

1 0 0

0 1 0

−−

D =

4 0 0

0 4 0

0 0 4

U =

0 1 0

0 0 1

0 0 0

Para o método de Gauss-Jacobi, M = -D-1(L + U). Tem-se então:

Page 79: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

75

M =

−−

−−

−+ −

1 4 0 0

0 1 4 0

0 0 1 4

0 0 0

1 0 0

0 1 0

0 1 0

0 0 1

0 0 0

/

/

/

=

=

−−

− −−

1 4 0 0

0 1 4 0

0 0 1 4

0 1 0

1 0 1

0 1 0

/

/

/

=

0 1 4 0

1 4 0 1 4

0 1 4 0

− /

/ /

/

Determinando-se as potências de M, tem-se:

M10 1 4 0

1 4 0 1 4

0 1 4 0

=

− /

/ /

/

M21 16 0 1 16

0 0 0

1 16 0 1 16

=

− −/ /

/ /

M30 0 0

0 0 0

0 0 0

=

Portanto o processo iterativo de Gauss-Jacobi irá convergir, qualquer que seja a aproximação inicial da solução. Exercício. Verificar a convergência do método de Gauss-Seidel para o sistema do exemplo acima. 3.4 – REFINAMENTO ITERATIVO DA SOLUÇÃO Devido aos erros de aproximação já referidos anteriormente, nem sempre é possível determinar, em computadores, a solução do sistema AX = B de forma exata. Seja R = B - AX*, o vetor resíduo da solução X* encontrada (X* é portanto uma aproximação da solução exata X). Evidentemente, R representa o quanto a solução calculada deixa de satisfazer ao sistema de equações original (é importante observar que devido ao problema de mal-condicionamento, o vetor resíduo nem sempre é um indicador confiável da precisão). Seja V = X - X*, o vetor diferença entre a solução verdadeira e a solução aproximada. Então:

R = B - AX* = AX - AX* = AV Portanto, teoricamente, pode-se determinar o vetor V (e, por consequência, a solução verdadeira X = X* + V) resolvendo o sistema AV = R (note que para calcular V, basta aplicar as equações de eliminação sobre o vetor R, uma vez que X* foi obtido como solução do sistema AX* = B, que tem a mesma matriz dos coeficientes que AV = R). O problema é que, como

Page 80: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

76

novamente é preciso resolver um sistema de equações, ao invés do valor verdadeiro V, será obtido um valor aproximado V*. Daí a necessidade de um processo iterativo: 1. Dada uma solução inicial aproximada X*; 2. Enquanto o critério de convergência não 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.

Considere que para o sistema:

2 0

3 4 2 1

3 2 4 0

1 2 3

1 2 3

1 2 3

x x x

x x x

x x x

− − =+ − =− + =

obteve-se a seguinte solução

aproximada: X*.

.

.

=

015

0 22

0 03

. Melhorar esta solução pelo processo de refinamento sucessivo.

Neste caso: R = B - AX* =

0

1

0

2 1 1

3 4 2

3 2 4

015

0 22

0 03

0

1

0

0 05

127

0 13

0 05

0 27

013

− −

−−

× = − =

−−

.

.

.

.

.

.

.

.

.

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

2 1 1

3 4 2

3 2 4

0 05

0 27

013

1

2

3

− −−

−× =

−−−

v

v

v

.

.

.

obtem-se:

V* =

−−

0 0500

0 0367

0 0133

.

.

.

Portanto a nova aproximação da solução será:

X* = X* + V* =

015

0 22

0 03

0 0500

0 0367

0 0133

01000

01833

0 0167

.

.

.

.

.

.

.

.

.

+

−−

=

Continuando o processo, tem-se:

R = B - AX* =

0

1

0

2 1 1

3 4 2

3 2 4

0 1000

01833

0 0167

0

1

0

0 0000

0 9998

0 0002

0 0000

0 0002

0 0002

− −

−−

× = − =−

.

.

.

.

.

.

.

.

.

Page 81: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

77

AV = R ⇒

2 1 1

3 4 2

3 2 4

0 0000

0 0002

0 0002

1

2

3

− −

−−

× =−

v

v

v

.

.

.

⇒ V* =

0 00000

0 00003

0 00003

.

.

.−

X* = X* + V* =

0 1000

01833

0 0167

0 00000

0 00003

0 00003

010000

018333

0 01667

.

.

.

.

.

.

.

.

.

+−

=

Assim, a cada passo do refinamento obtém-se melhores aproximações para a solução do sistema:

X =

1 10

11 60

1 60

/

/

/

.

EXERCÍCIOS RESOLVIDOS 1. Resolver, pelo método da eliminação de Gauss, o seguinte sistema de equações lineares:

c

c c c

c c c

0

0 1 2

0 1 2

2

2 4 1

5 25 1

= −

+ + =+ + = −

Solução:

Escrito na forma matricial o sistema acima apresenta-se como:

1 0 0

1 2 4

1 5 25

2

1

1

0

1

2

× =

c

c

c

O método de Gauss é utilizado em duas fases: na primeira (denominada fase de eliminação ou fase de triangularização), a matriz dos coeficientes é transformada em uma matriz triangular (superior ou inferior); na segunda fase (denominada fase de retro-substituição ou fase de substituição, dependendo se a matriz dos coeficientes foi transformada em uma matriz triangular superior ou inferior, respectivamente), determinam-se os valores das variáveis.

No caso acima, como a matriz dos coeficientes é A =

1 0 0

1 2 4

1 5 25

, para a triangularização

basta tornar nulo o elemento A2 3 4, = . Isto pode ser feito substituindo-se a 2ª linha de A

por: (2ª linha - 4

25(3ª linha)). Com isto tem-se o sistema:

Page 82: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

78

1 0 0

21 25 6 5 0

1 5 25

2

29 25

1

0

1

2

/ / /× =

c

c

c

onde a matriz dos coeficientes é triangular inferior. Portanto, aplicando-se a fase de substituição:

c

c c c

c c c c

0

0 1 1

0 1 2 2

2

21

25

6

5

29

25

71

302 367

5 25 113

300 433

= −

+ = ⇒ = ≅

+ + = − ⇒ = − ≅ −

.

.

2. Resolver o sistema de equações lineares a seguir, pelo método da eliminação de Gauss.

x y z

x y z

x y z

+ + =+ + =+ + =

0

2 4 3

3 9 14

Solução: O sistema acima pode ser escrito como:

1 1 1

1 2 4

1 3 9

0

3

14

× =x

y

z

Para a aplicação do método de Gauss, pode-se trabalhar apenas com a matriz aumentada:

A =

1 1 1 0

1 2 4 3

1 3 9 14

Fase de eliminação (matriz triangular superior): Passo 1:

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

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

Após este passo, a matriz aumentada apresenta-se como:

Page 83: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

79

A =

1 1 1 0

0 1 3 3

0 2 8 14

Passo 2: − transformar o elemento 32a em zero: substituir a 3ª linha por (3ª linha - 2×2ª linha)

Após este passo, a matriz aumentada apresenta-se como:

A =

1 1 1 0

0 1 3 3

0 0 2 8

Fase de retro-substituição:

z

y z y z y

x y z x y z x

= =

+ = ⇒ = − = − × ⇒ = −

+ + = ⇒ = − − = − − − ⇒ =

8

24

3 3 3 3 3 3 4 9

0 9 4 5( )

3. Resolver o sistema:

− + + =− − + =

− + =+ − =

x x x

x x x

x x x

x x x

1 2 4

2 3 4

1 2 3

1 3 4

5 2

2 4 1

8 1

4 2 0

pelo método de Gauss-Seidel, começando

com T0 )0,0,0,0(x = .

Solução: Para garantir a convergência do método de Gauss-Seidel, deve-se ter uma matriz de coeficientes diagonal dominante. Para isto, pode-se reescrever o sistema de equações como:

8 1 1 0

1 5 0 1

1 0 4 2

0 1 2 4

1

2

0

1

1

2

3

4

−−

−− −

× =

x

x

x

x

Portanto, as equações de Gauss-Seidel para este sistema são:

x x x

x x x

x x x

x x x

1 2 3

2 1 4

3 1 4

4 2 3

1 8

2 5

2 4

1 2 4

= + −= + −= − +

= + +

( ) /

( ) /

( ) /

( ) /

Portanto, partindo-se da estimativa inicial x0 0 0 0 0= ( , , , ) tem-se:

Page 84: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

80

Passo Cálculos Solução atual

0 (0.000, 0.000, 0.000, 0.000)

1 x1 1 0 000 0 000 8 0125= + − =( . . ) / . (0.125, 0.000, 0.000, 0.000) x2 2 0 125 0 000 5 0 425= + − =( . . ) / . (0.125, 0.425, 0.000, 0.000) x3 0125 2 0 000 4 0 031= − + × = −( . . ) / . (0.125, 0.425, -0.031, 0.000) x4 1 0 425 2 0 031 4 0 341= + + × − =( . . ) / . (0.125, 0.425, -0.031, 0.341)

2 x1 1 0 425 0 031 8 0 182= + − − =( . ( . )) / . (0.182, 0.425, -0.031, 0.341) x2 2 0 182 0 341 5 0 368= + − =( . . ) / . (0.182, 0.368, -0.031, 0.341) x3 0182 2 0 341 4 0125= − + × =( . . ) / . (0.182, 0.368, 0.125, 0.341) x4 1 0 368 2 0125 4 0 405= + + × =( . . ) / . (0.182, 0.368, 0.125, 0.405)

3 x1 1 0 368 0125 8 0155= + − =( . . )) / . (0.155, 0.368, 0.125, 0.405) x2 2 0 155 0 405 5 0 350= + − =( . . ) / . (0.155, 0.350, 0.125, 0.405) x3 0155 2 0 405 4 0164= − + × =( . . ) / . (0.155, 0.350, 0.164, 0.405) x4 1 0 350 2 0 164 4 0 420= + + × =( . . ) / . (0.155, 0.350, 0.164, 0.420)

4 x1 1 0 350 0164 8 0148= + − =( . . )) / . (0.148, 0.350, 0.164, 0.420) x2 2 0 148 0 420 5 0 346= + − =( . . ) / . (0.148, 0.346, 0.164, 0.420) x3 0148 2 0 420 4 0173= − + × =( . . ) / . (0.148, 0.346, 0.173, 0.420) x4 1 0 346 2 0173 4 0 423= + + × =( . . ) / . (0.148, 0.346, 0.173, 0.423)

Para ilustrar, a solução deste sistema (obtida com o programa Mathematica) corresponde ao vetor:

(0.146, 0.344, 0.175, 0.424)

4. Decompor a matriz: A =

1 2 3

2 8 7

2 16 12

em um produto LU, onde L é matriz triangular inferior

unitária e U é matriz triangular superior. Em seguida, encontrar a solução do sistema de

equações:

x x x

x x x

x x x

1 2 3

1 2 3

1 2 3

2 3 2

2 8 7 7

2 16 12 10

+ + =

+ + =+ + =

Solução: Aplicando o algoritmo de Doolittle para determinar a fatoração LU da matriz A, tem-se:

A =1 2 3

2 8 7

2 16 12

fatorada como: LU =

1 0 0

2 1 0

2 3 1

1 2 3

0 4 1

0 0 3

×

Portanto, o sistema:

1 2 3

2 8 7

2 16 12

2

7

10

1

2

3

× =

x

x

x

pode ser desmembrado nos seguintes sistemas:

Page 85: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

81

1 0 0

2 1 0

2 3 1

2

7

10

1 2 3

0 4 1

0 0 3

1

2

3

1

2

3

1

2

3

× = × =

y

y

y

e

x

x

x

y

y

y

Portanto, do primeiro sistema vem:

y

y y y

y y y y

1

1 2 2

1 2 3 3

2

2 7 3

2 3 10 3

=+ = ⇒ =+ + = ⇒ = −

e assim o segundo sistema torna-se:

1 2 3

0 4 1

0 0 3

2

3

3

1

2

3

× =−

x

x

x

cuja solução é:

3 3 1

4 3 1

2 3 2 3

3 3

2 3 2

1 2 3 1

x x

x x x

x x x x

= − ⇒ = −+ = ⇒ =

+ + = ⇒ =

EXERCÍCIOS PROPOSTOS 1. Dado o sistema de equações lineares a seguir:

2 12 8 27

4 7 2 5 4

7 9 5 3 11

12 8 3 6 49

x y z w

x y z w

x y z w

x y z w

− + + =+ − + =+ + − =

− − + + =

pede-se:

a) reescrevê-lo em notação matricial b) resolvê-lo utilizando o método da eliminação de Gauss c) resolvê-lo utilizando o método de Gauss-Jacobi

2. Calcular o determinante da matriz A abaixo, utilizando o método da eliminação de Gauss.

A =100 0 67 0 33

0 45 100 055

0 67 0 33 100

. . .

. . .

. . .

3. Verifique quais são os valores de k que garantem a convergência do método de Gauss-

Seidel para o sistema de equações a seguir. Em seguida, escolha um valor possível para k e encontre a solução do sistema.

Page 86: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

82

kx x x

kx x x

x x x

1 2 3

1 2 3

1 2 3

3 1

6 2

6 7 3

+ + =

+ + =+ + =

4. Dado o sistema de equações lineares:

4 1 0 0

1 4 1 0

0 1 4 1

0 0 1 4

1

1

1

1

1

2

3

4

−− −

− −−

× =

x

x

x

x

pede-se:

a) obter o vetor solução através do método de Gauss-Jacobi b) obter o vetor solução através do método de Gauss-Seidel

considerando x T( ( . , . , . , . )0) 0 00 0 00 0 00 0 00= , cálculos feitos com três casas decimais, e

precisão ε < −10 2 . 5. Resolver o sistema de equações lineares a seguir utilizando o método da fatoração LU.

0 12 8 7

2 4 6 3

6 12 7 7

6 12 1 4

53

35

58

22

1

2

3

4− − − −

× =

x

x

x

x

6. Um fazendeiro está criando porcos para vender e deseja determinar as quantidades dos

tipos de alimentos disponíveis a ser dada a cada porco para atingir certos requisitos nutritivos mínimos. O número de unidades de cada ingrediente nutritivo básico contido em 1 kg de cada tipo de alimento disponível é dado pela tabela a seguir:

Ingrediente

Nutritivo Quilo de

Milho Quilo de

Mandioca Quilo de

Alfafa Requisito Mínimo

Carboidratos 3 8 6 18 Proteínas 9 2 4 20 Vitaminas 1 2 6 15

Resolver o problema usando o método de Gauss-Seidel. EXERCÍCIOS DE PROGRAMAÇÃO 1. Implementar o método da eliminação de Gauss para a solução de um sistema de N

equações lineares AX = B, como uma função X = ELGAUSS(N,A,B).

Page 87: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 3 – Solução de Sistemas de Equações Lineares

83

2. Implementar o método iterativo de Gauss-Seidel para a solução de um sistema de N equações lineares AX = B, como uma função X = GSEIDEL(EPS,N,A,B) utilizando como critério de parada o erro relativo de duas iterações sucessivas, ou seja:

Maxx x

xi n

ik

ik

ik1

1

1≤ ≤

−<

[ ] [ ]

[ ]ε

Utilize o seguinte algoritmo:

x b a x a x a i nik

i i j jk

i j jk

j i

n

j

i

i i[ ]

,[ ]

,[ ]

,( ) / , ,...,= − − =−

= +=

−∑∑ 1

11

11 2

onde k = 1, 2, ... representa o número da iteração e ai,i ≠ 0 (i = 1, 2, ..., n). Conferir a solução encontrada utilizando o programa Mathematica empregando as seguintes instruções:

a = { {a11, a12, ..., a1n}, {a21, a22, ..., a2n}, ... {an1, an2, ..., ann} } b = { b1, b2, ..., bn} x = LinearSolve[a,b]

3. Implementar o método de Doolittle para resolver um sistema de N equações lineares da

forma AX = B como uma função X = DOOLITTLE(N, A, B)

Testar a função DOOLITTLE na solução do seguinte problema:

1 1 2

1 2 1

1 3 1

5

7

2

2

1

3

1

2

3

1

2

3

− −

−× =

⇒ =

z

z

z

z

z

z

Page 88: 34413174 Calculo Numerico en Portugues

85

Cálculo Numérico

4. INTERPOLAÇÃO 4.1 - Introdução Seja { (xi, yi), i = 0, 1, ..., n } um conjunto de pontos conhecidos yi = f(xi) para uma função f(x) desconhecida ou muito trabalhosa de ser calculada analiticamente. O problema a ser estudado neste capítulo é: "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 função y = f(x), calcular f(2.50).

xi yi 1.00 1.500 2.00 2.300 3.00 7.100

Admitindo-se que os valores tabelados são corretos (ou confiáveis), o problema é como obter, de forma confiável , valores da função para pontos não tabelados. Para isto, como f(x) é uma função conhecida apenas em alguns pontos, o que se deseja é construir uma função φ(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

xx0 x1 x2 x3

y = f(x)

Função Interpoladora

A função φ(x) denomina-se função interpoladora e, dependendo da forma de φ(x) tem-se diferentes tipos de interpolação. Em geral a função interpoladora pertence a uma das seguintes classes:

P (Polinômios): φ( ) ...x a a x a xnn= + + +0 1

F (Fourier): φ( ) cos( ) sen( )x a ix b ixi i= +

E (Exponenciais): φ( )x aebx=

S (Splines): φ( )x = p1(x) + p2(x) + ... + pk(x)

Page 89: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 4 – Interpolação

86

No caso geral, pode-se imaginar a função interpoladora como sendo uma combinação de funções fi(x) (i = 0, 1, ..., n), ou seja:

f(x) ≅ )x(fc)x(fc)x(fc)x( nn1100 +++=φ L

As funções fi(x) (i = 0, 1, ..., n) devem ser escolhidas de acordo com a natureza do fenômeno 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 definição de função interpoladora), os coeficientes ci podem ser determinados resolvendo-se o seguinte sistema de equações lineares:

c f x c f x c f x y

c f x c f x c f x y

c f x c f x c f x y

n n

n n

n n n n n n

0 0 0 1 1 0 0 0

0 0 1 1 1 1 1 1

0 0 1 1

( ) ( ) ... ( )

( ) ( ) ... ( )

...

( ) ( ) ... ( )

+ + + =+ + + =

+ + + =

ou seja:

f x f x f x

f x f x f x

f x f x f x

c

c

c

y

y

y

n

n

n n n n n n

0 0 1 0 0

0 1 1 1 1

0 1

0

1

0

1

( ) ( ) ... ( )

( ) ( ) ... ( )

...

( ) ( ) ... ( )

... ...=

4.2 – Interpolação Polinomial Polinômios são boas funções interpoladoras porque são fáceis de calcular, de derivar e de integrar. O caso mais simples ocorre quando a função interpoladora é um polinômio linear:

φ( ) ( ) ( )x c f x c f x c c x= + = +0 0 1 1 0 1 ou seja, neste caso: f0(x) = 1 e f1(x) = x. Portanto, neste caso, pretende-se passar um polinômio do 1º grau (segmento de reta) a cada par de pontos da tabela, conforme mostra a figura a seguir.

y

xx0 x1 x2 x3

y = f(x)

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

Page 90: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 4 – Interpolação

87

xcc)x( 10i +=φ

passando pelos pontos xi e xi+1, como ilustra a figura a seguir:

y

xxi xi+1

y = f(x)

yi

yi+1

Assim, a equação de )x(iφ é dada pelo seguinte sistema de equações:

1i

i

1

0

1i

i

y

y

c

c

x1

x1

++=

ou seja:

φ ii i i i

i i

c

i i

i i

c

xx y x y

x x

y y

x xx( ) =

−−

+

−−

+ +

+

+

+

1 1

1

1

1

0 1

1 2444 3444 1 24 34

Para a tabela toda { (xi, yi), i = 0, 1, ..., n }, a função interpoladora φ(x) será dada por:

)x()x()x()x( n10 φ++φ+φ=φ L

onde )x(iφ = 0 se x ∉ [xi, xi+1].

Evidentemente, outros polinômios (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 interpolação linear:

xi 1 2 3 4 yi 6 5 2 -9

Neste caso, considerando o intervalo [2, 3], o polinômio de interpolação é dado por:

φ( )x x x

c c

=× − ×

+−−

= −3 5 2 2

3 2

2 5

3 211 3

0 1

1 244 344 123

Page 91: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 4 – Interpolação

88

(notar que, por construção, a função φ(x) é uma função interpoladora no intervalo [2, 3], ou seja: φ( x1) = φ(2) = 5 = y1 e φ(x2) = φ(3) = 2 = y2). Assim: f(2.8) ≅ φ(2.8) = 11 - 3(2.8) = 2.6 Exemplo. Seja o mesmo problema acima mas considerando um polinômio interpolador de segundo grau. Neste caso, o polinômio interpolador será da forma:

φ( )x c c x c x= + +0 1 22

e para determinar os coeficientes c0 , c1 e c2 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 então:

φ

φ

φ

( ) ( ) ( )

( ) ( ) ( )

( ) ( ) ( )

1 6 1 1 6

2 5 2 2 5

3 2 3 3 2

0 1 22

0 1 22

0 1 22

= ⇒ + + =

= ⇒ + + =

= ⇒ + + =

c c c

c c c

c c c

ou seja:

2

5

6

c

c

c

931

421

111

2

1

0

=

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

função interpoladora será:

φ( )x x x= + −5 2 2

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 equações lineares:

1 2 4

1 3 9

1 4 16

5

2

9

0

1

2

c

c

c

=−

e portanto, a função interpoladora será: φ( )x x x= − + −13 17 4 2 . Neste caso: f(2.8) ≅ φ(2.8) =

2)8.2(4)8.2(1713 −+− = 3.24

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

Page 92: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 4 – Interpolação

89

4.3 - O Erro na Interpolação Teorema (Weierstrass). Se f(x) é uma função contínua em [a, b], então para qualquer ε>0, existe um polinômio pn(x), com n = g(ε), tal que | f(x) - pn(x) | < ε para x ∈ [a, b]. Este teorema dá uma boa razão para usar polinômios como função interpoladora. Entretanto, o teorema não indica qual deva ser o grau de um polinômio interpolador para uma tabela de pontos { (xi, yi), i = 0, 1, ..., n }. Teorema (Erro de Truncamento). Seja φ(x) um polinômio de grau n tal que φ(xi) = yi = f(xi) (i = 0, 1, ..., n), onde f(x) é uma função definida em [a, b] e xi ∈ [a, b] (i = 0, 1, ..., n). Se f é (n+1) vezes continuamente diferenciável em [a, b], então para qualquer x* ∈ [a, b] tem-se que:

E(x*) = f(x*) - φ(x*) = *)x(G)!1n(

)(f )1n(

+ξ+

onde )xx()xx)(xx()x(G n10 −−−= L .

Portanto, por este teorema, quanto maior o grau do polinômio interpolador, menor será o erro de truncamento. O fator )x*x()x*x)(x*x(*)x(G n10 −−−= L será tanto menor (em valor

absoluto) quanto mais próximo o ponto x* estiver de um dos xi (i = 0, 1, ..., n). Além disso, o valor de | G(x) | atinge valores máximos nos extremos do intervalo ]x,x[ n0 .

Para ilustrar que quando se considera o intervalo [ ]x xn0, , a função G(x) atinge valores

máximos (em valor absoluto) nos intervalos [ ]x x0 1, e [ ]x xn n−1, , considere os exemplos a

seguir. a) G(x) = (x-1)(x-2)(x-3)(x-4)(x-5)

2 3 4 5

-3

-2

-1

1

2

3

b) G(x) = (x-1)(x-2)(x-3)(x-4)(x-5)(x-6)

1 2 3 4 5 6

-15

-10

-5

5

Page 93: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 4 – Interpolação

90

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.1 0.2 0.3 0.4 0.5 0.6 0.7

-0.00001

-5. 10 -6

5. 10 -6

0.00001

Portanto, para minimizar o valor do erro, deve-se escolher um intervalo [ ]x xn0, de tal forma

que o ponto x* para o qual deseja-se calcular o valor interpolado seja o mais central possível

no intervalo [ ]x xn0, (ou seja, o mais longe possível das extremidades).

Observação. Se x* estiver fora do intervalo [a, b] (extrapolação), a expressão para o erro de truncamento ainda é válida mas, neste caso, o fator )x*x()x*x)(x*x(*)x(G n10 −−−= L 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 polinômio interpolador dado por:

nn

2210nn1100 xcxcxcc)x(fc)x(fc)x(fc)x( ++++=+++=φ LL

cujos coeficientes são determinados pelo sistema:

n

1

0

n

1

0

nn

2nn

n1

211

n0

200

y

...

y

y

c

...

c

c

x...xx1

...

x...xx1

x...xx1

=

A matriz dos coeficientes deste sistema de equações é conhecida como matriz de Vandermonde, cujo determinante é dado por:

( )x xi ji j

−>∏

Portanto, se x0 , x1 , ..., xn são pontos distintos, o determinante da matriz dos coeficientes será diferente de zero e consequentemente o sistema linear irá admitir uma única solução.

Page 94: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 4 – Interpolação

91

Assim, dada uma tabela { (xi, yi), i = 0, 1, ..., n }, com fazendo yi = xi, se x xj k≠ , ∀ ≠j k ,

então irá existir um único polinômio interpolador de grau n. Exemplo. Determinar o polinômio interpolador de maior grau para a seguinte tabela de pontos:

xi 1 2 3 4 yi 6 5 2 -9

Neste caso, como n = 3 (notar que os índices i começam em 0), o polinômio interpolador de maior grau terá grau 3, ou seja:

33

2210 xcxcxcc)x( +++=φ

Portanto, tem-se o seguinte sistema de equações lineares:

9

2

5

6

c

c

c

c

641641

27931

8421

1111

3

2

1

0

=

Resolvendo o sistema, tem-se:

c

c

c

c

0

1

2

3

11

9

5

1

=−

ou seja: 32 xx5x911)x( −+−=φ

Notar que, por construção, o polinômio φ(x) "passa" pelos pontos tabelados. Por exemplo:

52252911)2( 32 =−×+×−=φ

4.4 – Polinômios de Lagrange Como viu-se na seção anterior, a determinação de um polinômio interpolador para uma tabela de pontos requer a resolução de um sistema de equações lineares. Isto porque, para determinar o valor de φ(x) para um ponto x = x*, é preciso, primeiro, determinar qual é o polinômio φ(x). Com os polinômios de Lagrange evita-se ter de resolver tal sistema. Os polinômios de Lagrange de grau n são dados por:

L xx x

x xki

k iik i

n( ) =

−−=

∏0

k = 0, 1, ..., n

Page 95: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 4 – Interpolação

92

Exemplo. Dados os pontos x0, x1, x2 e x3, os polinômios de Lagrange (de grau 3) são dados por:

L xx x x x x x

x x x x x x01 2 3

0 1 0 2 0 3( )

( )( )( )

( )( )( )=

− − −− − −

L xx x x x x x

x x x x x x10 2 3

1 0 1 2 1 3( )

( )( )( )

( )( )( )=

− − −− − −

L xx x x x x x

x x x x x x20 1 3

2 0 2 1 2 3( )

( )( )( )

( )( )( )=

− − −− − −

L xx x x x x x

x x x x x x30 1 2

3 0 3 1 3 2( )

( )( )( )

( )( )( )=

− − −− − −

É fácil ver que:

L xse i j

se i ji j i j( ) ,= ==≠

δ1

0(delta de Kronecker)

Portanto, o polinômio:

)x(Ly)x(Ly)x(Ly)x( nn1100 +++=φ L

construído a partir dos polinômios de Lagrange Lk(x) (k = 0, 1, ..., n) para uma tabela de pontos { (xi, yi), i = 0, 1, ..., n } é tal que:

)x(Ly)x(Ly)x(Ly)x(Ly)x( nniiii11i00i +++++=φ LL

ou seja:

ini10i y0y1y0y0y)x( =×++×++×+×=φ LL

Logo, o polinômio φ(x) "passa" pelos pontos tabelados sendo, portanto, um polinômio interpolador. Exemplo. Determinar o polinômio interpolador de Lagrange para a seguinte tabela de pontos:

xi 1 2 3 4 yi 6 5 2 -9

Neste caso, o polinômio φ(x) será:

φ( ) .( )( )( )

( )( )( ).( )( )( )

( )( )( ).( )( )( )

( )( )( )( ).

( )( )( )

( )( )( )x

x x x x x x x x x x x x=

− − −− − −

+− − −− − −

+− − −− − −

+ −− − −− − −

62 3 4

1 2 1 3 1 45

1 3 4

2 1 2 3 2 42

1 2 4

3 1 3 2 3 49

1 2 3

4 1 4 2 4 3

ou seja:

φ( ) .( )

.( )

.( )

( ).( )

xx x x x x x x x x x x x

=− + −

−+

− + −+

− + −−

+ −− + −

69 26 24

65

8 19 12

22

7 14 8

29

6 11 6

6

3 2 3 2 3 2 3 2

Page 96: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 4 – Interpolação

93

Logo: 32 xx5x911)x( −+−=φ

Notar que, como o polinômio interpolador de grau 3 para esta tabela de pontos é unico, o polinômio interpolador de Lagrange é idêntico ao polinômio interpolador obtido anteriormente. Neste caso, entretanto, não foi necessário resolver um sistema de equações lineares. Evidentemente, para calcular um valor interpolado não é necessário ter-se o polinômio de Lagrange escrito na forma padrão. 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 625 2 2 5 3 2 5 4

1 2 1 3 1 45

2 5 1 2 5 3 2 5 42 1 2 3 2 4

22 5 1 25 2 2 5 4

3 1 3 2 3 49

2 5 1 2 5 2 25 34 1 4 2 4 3

4125

=− − −− − −

+− − −− − −

+− − −− − −

+ −− − −− − −

=

=

Portanto, é vantajoso usar polinômios de Lagrange na interpolação de pontos de uma tabela. Ou seja, dados: { (xi, yi), i = 0, 1, ..., n }, para determinar o valor interpolado de y* em um ponto x*, ao invés de determinar o polinômio de interpolação φ(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 então L = L*(x* - xi)/(xj - xi)

c) y* = y* + yj.L

Observação. Notar que este algoritmo é ordem 2n , enquanto colocar o polinômio interpolador

na forma padrão e, em seguida, calcular o valor interpolado é ordem 3n . 4.5 – Diferenças Divididas Uma outra maneira de determinar o polinômio de interpolação para uma tabela de pontos é através do uso de diferenças divididas. O polinômio assim obtido denomina-se polinômio de Newton. Dada uma tabela de pontos { (xi, yi), i = 0, 1, ..., n }, onde yi = f(xi), define-se:

• A diferença dividida de ordem zero por: 0∆ yi = 0∆ f[xi] = yi i = 0, 1, ..., n

• A diferença dividida de ordem k por: k∆ yi = k∆ f[xi, xi+1, ..., xi+k] =

= ∆ ∆ ∆ ∆k

i i kk

i i k

i k i

ki

ki

i k i

f x x f x x

x x

y y

x x

−+ +

−+ −

+

−+

+

−−

=−−

11

11

11

1[ ,..., ] [ ,..., ]

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

Page 97: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 4 – Interpolação

94

Exemplo. Para a tabela de pontos:

i xi yi

0 0.2 1.22 1 0.4 1.49 2 0.6 1.82 3 0.8 2.23 4 1.0 2.72

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

i ix iy 1∆ yi 2∆ yi

3∆ yi 4∆ yi

0 0.2 1.22 1.35 0.75 0.42 -0.52 1 0.4 1.49 1.65 1.00 0.00 - 2 0.6 1.82 2.05 1.00 - - 3 0.8 2.23 2.45 - - - 4 1.0 2.72 - - - -

Notar que:

∆∆ ∆1

0

01

00

1 0

149 1 22

0 4 0 2

0 27

0 2135y

y y

x x=

−−

=−−

= =. .

. .

.

..

∆∆ ∆1

1

02

01

2 1

182 1 49

0 6 0 4

0 33

0 2165y

y y

x x=

−−

=−−

= =. .

. .

.

..

...

∆∆ ∆2

0

11

10

2 0

165 1350 6 0 2

0 300 4

0 75yy y

x x=

−−

=−−

= =. .. .

..

.

...

∆∆ ∆4

0

31

30

4 0

0 0 4210 0 2

0 420 8

0 52yy y

x x=

−−

=−−

=−

= −.

. ...

.

Para determinar um polinômio interpolador φ(x) para uma tabela de pontos { (xi, yi), i = 0, 1, ..., n }, onde yi = φ(xi), tem-se, pela definição de diferenças divididas:

0

0

0

0

0

000

0

00

0

01

xx

)x()x(

xx

)x(y)x(y

xx

]x[]x[

xx

]x[]x[]x,x[

−φ−φ

=−−

=−

φ∆−φ∆=

−φ∆−φ∆

=φ∆

ou seja: ]x,x[)xx()x()x( 01

00 φ∆−+φ=φ .

Por outro lado,

1

101

01

1

01

101

102

xx

]x,x[]x,x[

xx

]x,x[]x,x[]x,x,x[

−φ∆−φ∆

=−

φ∆−φ∆=φ∆

Page 98: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 4 – Interpolação

95

ou seja:

∆ ∆ ∆10

10 1 1

20 1φ φ φ[ , ] [ , ] ( ) [ , , ]x x x x x x x x x= + −

Mas, pela equação acima,

0

00

1

xx

)x()x(]x,x[

−φ−φ

=φ∆

e portanto:

]x,x,x[)xx)(xx(]x,x[)xx()x()x( 102

10101

00 φ∆−−+φ∆−+φ=φ

Continuando este processo, pode-se escrever:

]x,,x,x,x[)xx()xx)(xx(

]x,,x,x[)xx()xx)(xx(

]x,x,x[)xx)(xx(]x,x[)xx()x()x(

n101n

n10

n10n

1n10

2102

10101

00

LL

LL

L

φ∆−−−+

+φ∆−−−+

+φ∆−−+φ∆−+φ=φ

+−

É facil ver que ]x,,x,x,x[ n101n Lφ∆ + = 0, uma vez que com n+1 pontos tem-se diferenças

divididas de até ordem n, sendo as diferenças de ordens mais altas todas nulas. Logo:

]x,,x,x[)xx()xx)(xx(

]x,x,x[)xx)(xx(]x,x[)xx()x()x(

n10n

1n10

2102

10101

00

LL

L

φ∆−−−+

+φ∆−−+φ∆−+φ=φ

Mas:

00 y)x( =φ

01

101 y]x,x[ ∆=φ∆

02

2102 y]x,x,x[ ∆=φ∆

...

0n

n10n y]x,,x,x[ ∆=φ∆ L

Logo, o polinômio de Newton é dado por:

0n

1n1002

1001

00 y)xx()xx)(xx(y)xx)(xx(y)xx(y)x( ∆−−−++∆−−+∆−+=φ −LL

Observe que φ(x) é um polinômio interpolador, pois:

0

0n

1n0100002

100001

0000

y

y)xx()xx)(xx(y)xx)(xx(y)xx(y)x(

=

∆−−−++∆−−+∆−+=φ −LL

10100101

00

10

001

0101 yyyy)xx()xx(

yyyy)xx(y)x( =−+=−

−∆−∆

+=∆−+=φ

Page 99: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 4 – Interpolação

96

220110

201

12

01

020110

01

120112

01

02010

01

01

12

1212

01

01020

02

01

11

120201

00

10

020

02

120201

0202

yy)yy()yy(

y)xx(

)xx(

)xx(

)xx()yy()yy(

)xx(

)xx()yy(yy

)xx(

)xx()yy(y

)xx(

yy

)xx(

yy)xx(

)xx(

yy)xx(y

)xx(

yy)xx)(xx(

)xx(

yy)xx(y

y)xx)(xx(y)xx(y)x(

=+−+−=

=+

−−

−−−

−+−=

=−−

−−−+−−

−+=

=

−−

−−−

−+−−

−+=

=−

∆−∆−−+

−∆−∆

−+=

=∆−−+∆−+=φ

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 0.1 1.115 1.46 1.60 0.33 -0.50 1 0.2 1.261 1.78 1.73 0.08 - 2 0.3 1.439 2.30 1.77 - - 3 0.5 1.899 2.83 - - - 4 0.6 2.182 - - - -

Neste caso, pelo polinômio de interpolação 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 – Diferenças Simples No caso de os pontos xi (i = 0, 1, ..., n) serem igualmente espaçados, o cálculo das diferenças pode ser simplificado. Seja h = xi+1 - xi (i = 0, 1, ..., n-1) o espaçamento constante entre os valores de x. As diferenças simples são definidas como:

• Diferença simples de ordem 0: ii0 yy =δ

• Diferença simples de ordem n: i1n

1i1n

in yyy −

+− δ−δ=δ

Pode-se, facilmente, relacionar diferenças simples com diferenças divididas:

∆1 1

1

1y

y y

x x

y

hii i

i i

i=−−

=+

+

δ

∆∆ ∆2

11

1

2

11

11

11

2

2

22 2 2y

y y

x x

y

h

y

hh

y y

h

y

hi

i i

i i

i ii i i=

−−

=−

=−

=+

+

++

δ δδ δ δ

Page 100: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 4 – Interpolação

97

∆∆ ∆3

21

2

3

21

2

2

2 21

2

3

3

32 2

3 6 6y

y y

x x

y

h

y

hh

y y

h

y

hi

i i

i i

i i

i i i=−−

=−

=−

=+

+

+

+

δ δδ δ δ

Generalizando, tem-se o seguinte teorema: Teorema. Seja a função y = f(x) definida pelos pontos { (xi, yi), i = 0, 1, ..., n } tais que xi+1 - xi = h, para todo i (i = 0, 1, ..., n-1). Então:

∆ni

niny

y

n h=

δ

!

Portanto, por este teorema, pode-se escrever o polinômio interpolador (conhecido como polinômio de interpolação de Gregory-Newton) como:

φδ δ δ

( ) ( ) ( )( ) ... ( )( )...( )!

x y x xy

hx x x x

y

hx x x x x x

y

n hn

n

n= + − + − − + + − − − −0 00

0 1

20

2 0 1 10

2

Exemplo. Determinar f(0.5) dada a tabela:

i xi yi 1∆ yi 2∆ yi

3∆ yi 4∆ yi

0 0.2 0.40 0.39 -0.02 0.01 -0.04 1 0.4 0.79 0.37 -0.01 -0.03 - 2 0.6 1.16 0.36 -0.04 - - 3 0.8 1.52 0.32 - - - 4 1.0 1.84 - - - -

Neste caso, pelo polinômio de interpolação de Gregory-Newton, tem-se:

f( . ) ( . ) . ( . . )..

( . . )( . . )( . )

( . )

( . . )( . . )( . . ).

!( . )

( . . )( . . )( . . )( . . )( . )

!( . )

.

0 5 0 5 0 40 0 5 0 20 390 2

0 5 0 2 0 5 0 40 02

2 0 2

0 5 0 2 0 5 0 4 05 0 60 01

3 0 2

0 5 0 2 0 5 0 4 05 0 6 05 0 80 04

4 0 2

0 97

2

3

4

≅ = + − + − −−

+

+ − − − +

+ − − − −−

=

=

φ

A tabela de diferenças pode ajudar a responder à seguinte questão: "Dada uma tabela de pontos { (xi, yi), i = 0, 1, ..., n }, qual deve ser o grau (≤ n) do polinômio interpolador?". Para responder a esta questão, deve-se examinar os valores das diferenças nas vizinhanças do ponto de interesse. Se nesta vizinhança as diferenças de ordem n são praticamente constantes (ou, equivalentemente, as diferenças de ordem n+1 são próximas de zero), pode-se concluir que um polinômio interpolador de grau n é uma boa aproximação da função na região considerada.

Page 101: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 4 – Interpolação

98

Exemplo. A tabela abaixo representa a função f(x) = x , com 4 casas decimais. Calcular f(1.025).

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, é possível aproximar f(x) a polinômios de até grau 5. Entretanto, construindo-se a tabela de diferenças simples tem-se:

i xi yi 1∆ yi 2∆ yi

0 1.00 1.0000 0.50 0.0 1 1.01 1.0050 0.50 -0.01 2 1.02 1.0100 0.49 0.0 3 1.03 1.0149 0.49 0.0 4 1.04 1.0198 0.49 - 5 1.05 1.0247 - -

Assim, no intervalo [1.00, 1.05] pode-se dizer que um polinômio do grau 1 é uma boa aproximação de f(x). Portanto:

f( . ) ( . )( . )( . ) ( . )( . )

. .

. .

. .. .1025 1025

1 03 10100 1 02 10149

103 102

10149 10100

1 03 1021025 101241≅ =

−−

+−−

× =φ

4.7 – Interpolação de Hermite Sejam conhecidos um conjunto de pontos { (xi, yi), i = 0, 1, ..., n } representando uma função 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 polinômio:

P x x f x x f xh i i i ii

n

i

n( ) ( ) ( ) ( ) '( )= +

==∑∑ α β

00

com:

[ ]α φ φ

β φ

i i i i i

i i i

x x x x x

x x x x i n

( ) ( ) ( ) ( )

( ) ( ) ( ) , , ...,

'= − −

= − =

1 2

0 1

2

2

onde:

φ ik

i kkk i

nx

x x

x x( ) =

−−=

∏0

(polinômio de Lagrange)

Deseja-se mostrar que P xh ( ) assim definido é um polinômio de interpolação (conhecido como

polinômio de Hermite). Para isto é preciso mostrar que P xh ( ) "passa" pelos pontos tabelados,

ou seja, que P x f x yh i i i( ) ( )= = . Sabe-se que φ δi j ijx( ) = (delta de Kronecker). Portanto:

Page 102: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 4 – Interpolação

99

[ ] [ ]α φ φ φ δ δ

β φ δ

i j j i i i i j j i i i ij ij

i j j i i j j i ij

x x x x x x x x

x x x x x x

( ) ( ) ( ) ( ) ( ) ( )

( ) ( ) ( ) ( )

' '= − − = − − =

= − = − =

1 2 1 2

0

2 2

2 2

ou seja:

P x x f x x f x f x

f x f x f x f x f x

h j i j i i j ii

n

i

n

iji

n

i

j j jj j nj n j

( ) ( ) ( ) ( ) '( ) ( )

( ) ( ) ... ( ) ... ( ) ( )

= + =

= + + + + + =

== =∑∑ ∑α β δ

δ δ δ δ

0

0

0 0

0 0 1 1

1 2444 3444

Assim o polinômio de Hermite P xh( ) "passa" pelos pontos tabelados, sendo portanto um polinômio de interpolação. Mas o polinômio de Hermite possui uma outra característica importante: a derivada de P xh( ) "passa" pelos pontos f'(xi), i = 0, 1, ..., n. Para mostrar isto, seja a derivada de P xh( ) :

P x x f x x f xh i i i ii

n

i

n' ' '( ) ( ) ( ) ( ) '( )= +

==∑∑ α β

00

Mas:

[ ]α φ φ φ φ φ

β φ φ φ

i i i i i i i i i

i i i i i

x x x x x x x x

x x x x x x i n

' ' ' '

' '

( ) ( ) ( ) ( ) ( ) ( ) ( )

( ) ( ) ( ) ( ) ( ) , , ...,

= − − −

= − + =

1 2 2 2

2 0 1

2

2

ou seja:

[ ][ ]

α φ φ φ φ φ

φ δ φ φ δ

β φ φ φ δ φ δ δ

i j j i i i i j i j i i i j

j i i i ij i j i i ij

i j j i i j i j i j j i ij i j ij ij

x x x x x x x x

x x x x x

x x x x x x x x x

' ' ' '

' ' '

' ' '

( ) ( ) ( ) ( ) ( ) ( ) ( )

( ) ( ) ( ) ( )

( ) ( ) ( ) ( ) ( ) ( ) ( )

= − − −

= − − − =

= − + = − + =

1 2 2 2

1 2 2 2 0

2 2

2

2

2 2

Logo:

P x x f x x f x f x

f x f x f x f x f x

h j i j ii

n

ii

n

j i iji

n

i

j j jj j nj n j

' ' ' ' '

' ' ' ' '

( ) ( ) ( ) ( ) ( ) ( )

( ) ( ) ... ( ) ... ( ) ( )

= + =

= + + + + + =

= = =∑ ∑ ∑α β δ

δ δ δ δ

0

0

0 0

0 0 1 1

1 244 344

Exemplo. Seja a tabela de pontos a seguir, para uma função e sua derivada. Determinar o polinômio interpolador de Hermite para esta tabela.

xi 0.0 1.0 2.0 fi 5.0 3.0 27.0

fi' -7.0 8.0 41.0

Page 103: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 4 – Interpolação

100

φ021 2

0 1 0 212

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

( )xx x

x x=− −− −

= − +

φ120 2

1 0 1 22( )

( )( )

( )( )x

x xx x=

− −− −

= − +

φ220 1

2 0 2 112

( )( )( )( )( )

( )xx x

x x=− −− −

= −

φ φ φ0 0 0 012

2 3 03

2' ' '( ) ( ) ( ) ( )x x x= − ⇒ = =

φ φ φ1 1 1 12 2 1 0' ' '( ) ( ) ( )x x x= − + ⇒ = =

φ φ φ2 2 2 21

22 1 2

3

2' ' '( ) ( ) ( ) ( )x x x= − ⇒ = =

Então:

P x x x x x x x

x x x

x x x x x x x x x

h( ) [ ( )( )] ( ) [ ( ) ]( )

[ ( ) ] ( )

( ) ( ) ( ) ( )( ) ( ) ( )

= − − − − + × + − − × − + × +

+ − − × − × +

+ − − + − + − − + × + − − ×

1 2 03

2

1

43 2 5 1 2 1 0 2 3

1 2 23

2

1

427

01

43 2 7 1 2 8 2

1

441

2 2 2 2

2 2

2 2 2 2 2 2

Efetuando os cálculos tem-se:

P x x x x xh( ) = − + − − +4 3 27 7 5

(notar que o polinômio de interpolação de Hermite é de grau 2n, para uma tabela com n pontos). Para verificar que o polinômio e sua derivada passam pelos pontos tabelados, notar que:

P x x x x x

P

P

P

h

h

h

h

( )

( ) ( ) ( ) ( ) ( )

( ) ( ) ( ) ( ) ( )

( ) ( ) ( ) ( ) ( )

= − + − − +

= − + − − + =

= − + − − + =

= − + − − + =

4 3 2

4 3 2

4 3 2

4 3 2

7 7 5

0 0 7 0 0 7 0 5 5

1 1 7 1 1 7 1 5 3

2 2 7 2 2 7 2 5 27

P x x x x

P

P

P

h

h

h

h

'

'

'

'

( )

( ) ( ) ( ) ( )

( ) ( ) ( ) ( )

( ) ( ) ( ) ( )

= − + − −

= − + − − = −

= − + − − =

= − + − − =

4 21 2 7

0 4 0 21 0 2 0 7 7

1 4 1 21 1 2 1 7 8

2 4 2 21 2 2 2 7 41

3 2

3 2

3 2

3 2

Pelo teorema de Weierstrass vimos que existe uma boa razão para usar polinômios como função interpoladora. Vimos também que, em princípio, quanto maior o grau do polinômio, menor será o erro de truncamento. O teorema de Weierstrass, no entanto, não diz como o polinômio deve ser construído.

Page 104: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 4 – Interpolação

101

Vamos considerar a seguinte forma de obter o polinômio de interpolação para uma função f(x) contínua em um intervalo [a,b]. Seja uma discretização de f(x) para os pontos a = x0 < x1 < ... < xn = b. Sabe-se que, para esta discretização, existe apenas um polinômio de interpolação pn(x). A questão é a seguinte: pn(x) converge para f(x) em [x0, xn] quando n → ∞ ?. A resposta é: nem sempre. Para ilustrar considere o caso a seguir. 4.8 – Fenômeno de Runge

Seja a função: 2x251

1)x(f

+= tabelada no intervalo [-1, 1].

-1 -0.5 0.5 1

0.2

0.4

0.6

0.8

1

As figuras a seguir ilustram as aproximações da função de Runge pelos polinômios de interpolação p5(x) e p10(x), obtidos pelo seguinte programa Mathematica:

f[x_]=1/(1+25x^2); n = Input["Grau do polinômio"]; 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];

Aproximação por p5(x):

-1 -0.5 0.5 1

0.2

0.4

0.6

0.8

1

Aproximação por p10(x):

-1 -0.5 0.5 1

0.5

1

1.5

2

Note, pela figura a seguir, que considerando o polinômio p20(x), a aproximação no intervalo [-0.5, 0.5] melhora ainda mais. Mas nos extremos do intervalo [-1, 1] ocorrem problemas de divergência.

-1 -0.5 0.5 1

-2

-1

1

2

3

4

Page 105: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 4 – Interpolação

102

Portanto, embora o teorema de Weierstrass garanta que existe um polinômio pn(x), para algum n, que aproxima a função de Runge, a forma de obter esse polinômio não é como a mostrada acima (interpolação considerando n+1 pontos igualmente espaçados). A seção a seguir apresenta uma outra abordagem para a interpolação por polinômios, visando evitar problemas de aproxi mação (como o que ocorre com o polinômio p20(x) considerado acima): em vez de considerar um único polinômio de aproximação de grau alto, considerar vários polinômios de baixo grau. 4.9 – Interpolação por "Spline" Pode-se entender o significado da palavra spline como "haste flexível para desenhar curvas". A idéia da interpolação por spline é, ao invés de considerar todos os pontos disponíveis de uma vez para determinar um polinômio interpolador de grau elevado, considerar poucos pontos de cada vez e construir um polinômio composto por uma sequência de polinômios de grau baixo, os quais são válidos localmente. A figura a seguir ilustra esta idéia.

x0 x1 x2 x3

P1(x)

P2(x)

P3(x)y

x

Definição. Seja uma função f(x) tabelada nos pontos x0 < x1 < ... < xn. Uma função Sp(x) é denominada spline de grau p para os pontos xi (i = 0, 1, ..., n) se satisfaz as seguintes condições: − em cada subintervalo [xi, xi+1], (i = 0, 1, ..., n), Sp(x) é um polinômio de grau p: p i(x); − Sp(x) é contínua e tem derivada contínua até ordem (p - 1) em [x0, xn]. Se, além disso, Sp(x) também satisfaz a condição: − Sp(xi) = f(xi), (i = 0, 1, ..., n), então é denominada spline interpolante. O objetivo da interpolação por spline é obter uma aproximação tão suave quanto possível para os pontos conhecidos. A interpolação por spline mais comum é a que utiliza funções splines cúbicas interpolantes. Para isto, devemos considerar para cada intervalo [xi, xi+1], um polinômio de grau 3, pi(x).

Como pi(x) é um polinômio cúbico, p xi"( ) é uma reta. Vamos considerar a reta que passa pelos

pontos (xi, φi) e (xi+1, φi+1), onde φi e φi+1 são desconhecidos, como ilustra a figura a seguir:

Page 106: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 4 – Interpolação

103

x x

φ

i i+1

i+1

φi

x

y

hi

p"(x)i

φ = i

p"(x )i i

Então:

p xx x

x xi ii i i

i i

" ( )( )( )

= +− −

−+

φ φ1

1

ou seja:

p xx x x x x x

x xii i i i i i i

i i

"( )( ) ( ) ( )

=− + − − −

−=+ +

+

φ φ φ1 1

1

=− + − − +

−=+ + +

+

φ φ φ φ φ φi i i i i i i i i i

i i

x x x x x x

x x1 1 1

1 φ φi i

i

i i

i

x x

h

x x

h

( ) ( )+ +−+

−1 1

Integrando-se a expressão de p xi" ( ) , obtém-se p xi

' ( ) :

p xx x

hc

x x

hdi

i i

ii

i i

ii

' ( )( ) ( )

=− −

+ +−

++ +φ φ12

12

2 2

onde ci e di são constantes de integração. Integrando-se novamente, tem-se:

p xx x

h

x x

hc x x d x xi

i i

i

i i

ii i i i( )

( ) ( )( ) ( )=

−+

−− − + −+ +

+φ φ1

31

3

16 6

Como pi(x) deve ser um polinômio de interpolação, deve-se ter:

1i1ii

iiiy)x(p

y)x(p

++ ==

Logo:

p xx x

hc x x yi i

i i i

ii i i i( )

( )( )=

−− − =+

+φ 1

3

16

1ii1iii

3i1i1i

1ii y)xx(dh6

)xx()x(p ++

+++ =−+

−φ=

ou seja:

Page 107: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 4 – Interpolação

104

φ φi i

ii i i i

i

i

i ih

hc h y c

y

h

h3

6 6− = ⇒ =

−+

φ φi i

ii i i i

i

i

i ih

hd h y d

y

h

h++

+ ++ = ⇒ = −13

11 1

6 6

Substituindo os valores de ci e di na expressão de p xi' ( ), tem-se:

p xh

x xh

x xy

h

h y

h

hi

i

ii

i

ii

i

i

i i i

i

i i' ( ) ( ) ( )=−

− + − +−

+ + −++ + +φ φ φ φ

2 2 6 612 1 2 1 1

Consequentemente:

p xh

x xh

x xy

h

h y

h

hi

i

ii

i

ii

i

i

i i i

i

i i−

− −−

− −

−=−

− + − +−

+ + −11

1

2

11

2 1

1

1 1

1

1

2 2 6 6' ( ) ( ) ( )

φ φ φ φ

Como deve-se ter )x(p)x(p i'

1ii'i −= segue que:

p xh y

h

h y

h

hi i

i i i

i

i i i

i

i i' ( ) =−

− + + − =+ +φ φ φ2 6 6

1 1

= = − + + −−− −

− −

−p xh y

h

h y

h

hi i

i i i

i

i i i

i

i i1

1 1

1

1 1

1

1

2 6 6' ( )

φ φ φ

ou seja:

− + − − − + = − − +

+ − − − −

+ −

− −3 3 61 1 1 1 1

1 1

1 1φ φ φ φ φ φi i i i i i i i i i i i

i

i

i

i

i

i

i

ih h h h h h

y

h

y

h

y

h

y

h

Multiplicando por -1 e rescrevendo, tem-se:

h h h hy y

h

y y

hi ni i i i i i i

i i

i

i i

i− − − +

+ −

−+ + + =

−−

= −1 1 1 1

1 1

12 6 2 3 1φ φ φ( ) ( , , )K

o que representa um sistema de (n-2) equações lineares com n incógnitas: φ φ φ1 2, , ,K n . Fazendo a escolha: φ1 0= e φ n = 0 (spline natural) chega-se no seguinte sistema de equações lineares:

i h h hy y

h

y y

h

i h h h hy y

h

y y

h

i n h h hy y

h

y y

hn n n n nn n

n

n n

n

= + + + =−

−−

= + + + =−

−−

= − + + + =−

−−

− − − − −

− −

2 0 2 6

3 2 6

1 2 0 6

2 1 2 2 33 2

2

2 1

1

2 2 3 2 3 3 44 3

3

3 2

2

2 2 1 2 11

1

1 2

2

( )

( )

( )

φ φ

φ φ φ

φ φ

M M

Page 108: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 4 – Interpolação

105

Fazendo by y

hii i

i=

+6 1 , tem-se:

2

2

2

2

1 2 2

2 2 3 3

3 3 4 4

4

2 2 1

2

3

4

1

2 1

3 2

4 3

1 2

( )

( )

( )

( )

h h h

h h h h

h h h h

h

h h h

b b

b b

b b

b bn n n n n n

++

+

+

× =

−−−

−− − − − − −

M M M

φφφ

φ

Este sistema pode ser resolvido através do seguinte algoritmo:

Passo 1:

c h h

c h hh

ci ni i i

i

i

2 1 2

11

2

1

2

2 3 4 1

= +

= + − = −−−

( )

( ) ( , , , )L

Passo 2:

d b b

d b bh d

ci ni i i

i i

i

2 2 1

11 1

13 4 1

= −

= − − = −−− −

−( ) ( , , , )L

Passo 3:

φ

φφ

nn

n

ii i i

i

dc

d h

ci n n

−−

+

=

=−

= − −

11

1

1 2 3 2( , , , )L

Substituindo os valores de φ i i n( , , , )= 1 2 L na equação de pi(x) e rearranjando os termos,

tem-se os seguintes polinômios de interpolação por spline:

p x y x x x x x xi i i i i i i i( ) ( ) ( ) ( )= + − + − + −α β γ2 3 onde:

αφ φ

ii i

i

ii

ii

y y

hh h=

−− −+ +1 1

6 3

βφ

ii=

2

γφ φ

ii i

ihi n=

−= −+1

61 2 1( , , , )L

Exemplo: Aproximar a função y = f(x), definida pela tabela a seguir, por uma curva spline.

Page 109: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 4 – Interpolação

106

xi yi

-2 2 -1 1 0 0 1 1 2 2

Neste caso, n = 5 e o sistema de equações lineares é dado por:

2 0

2

0 2

1 2 2

2 2 3 3

3 3 4

2

3

4

2 1

3 2

4 3

( )

( )

( )

h h h

h h h h

h h h

b b

b b

b b

++

+× =

−−−

φφφ

Substituindo os valores, tem-se:

4 1 0

1 4 1

0 1 4

0

12

0

2

3

4

× =

φ

φφ

ou seja:

φ

φφ

2

3

4

6 7

24 7

6 7

=

/

/

/

Com os valores de φ i i( , , , )= 1 2 5L pode-se determinar os n-1 polinômios spline

p x ii ( ) ( , , , )= 1 2 3 4 . Por exemplo:

p x y x x x x x x4 4 4 4 4 42

4 43( ) ( ) ( ) ( )= + − + − + −α β γ

com:

79

h3

h6h

yy4

44

5

4

454 =

φ−

φ−

−=α

7

3

24

4−

γφ φ

45 4

46

1

7=

−=

h

e portanto:

324 )1x(

7

1)1x(

7

3)1x(

7

91)x(p −+−−−+=

Os outros três polinômios spline para este caso são mostrados a seguir. As figuras a seguir ilustram as aproximações para a função f(x) = | x | no intervalo [-2, 2] obtidas pelo polinômios

Page 110: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 4 – Interpolação

107

de interpolação de maior grau possível neste caso (4º grau) e pelos polinômios de interpolação 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]

Função Original

-2 -1 1 2

0.5

1

1.5

2

Aproximação por polinômio de interpolação do 4º grau

-2 -1 1 2

0.5

1

1.5

2

Aproximação por funções spline interpoladoras do 3º grau

-2 -1 1 2

0.5

1

1.5

2

EXERCÍCIOS RESOLVIDOS 1. Dada a tabela:

x 0 1 2 3 y -1 0 3 14

representando uma função y = f(x), determine os valores de f(1.2) e f(1.6) através de interpolação polinomial do 2o grau, de modo que o erro cometido seja o menor possível.

Page 111: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 4 – Interpolação

108

Utilizar o método da eliminação de Gauss para a solução de sistemas de equações lineares.

Solução:

Neste caso, o polinômio de interpolação tem a forma: φ( )x c c x c x= + +0 1 22. Para

determinar os coeficientes c c e c0 1 2, deve-se resolver o seguinte sistema de equações

lineares:

1

1

1

0 02

1 12

2 22

0

1

2

0

1

2

x x

x x

x x

c

c

c

y

y

y

× =

onde ( , ), ( , ), ( , )x y x y x y0 0 1 1 2 2 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 possível . No caso de x* = 1.2 a melhor escolha será:

x 0 1 2 y -1 0 3

Neste caso, o sistema de equações lineares correspondente é dado por:

1 0 0

1 1 1

1 2 4

1

0

3

0

1

2

× =−c

c

c

Resolvendo este sistema, tem-se: c0 = -1, c1 = 0, c2 = 1. Portanto, para este caso, o

polinômio de interpolação é dado por: φ( )x x= − +1 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 1 2 3 y 0 3 14

o que leva ao seguinte sistema de equações lineares:

1 1 1

1 2 4

1 3 9

0

3

14

0

1

2

× =c

c

c

Resolvendo este sistema, tem-se: 5c0 = , 9c1 −= , 4c2 = . Portanto, para este caso, o

polinômio de interpolação é dado por: φ( )x x x= − +5 9 4 2 . Logo:

f(1.6) ≅ φ(1.6) = 5-9(1.6) + 4(1.6)2 = 0.84

2. Dada a tabela:

Page 112: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 4 – Interpolação

109

xi 1.2 1.4 1.6

yi 0.19 0.15 0.11

representando uma função y = f(x), deseja-se determinar f(1.5) através de uma função de

interpolação da forma: p x ax be c xx( ) ln( )= + +2 .

a) Montar um sistema de equações lineares para o problema; b) Resolver o sistema obtido pelo método da eliminação de Gauss para determinar os

coeficientes a, b, c da função de interpolação p(x); c) Determinar f(1.5) ≅ p(1.5) Solução: Neste caso, embora a função de interpolação não seja um polinômio, o problema pode ser facilmente resolvido, uma vez que existem 3 incógnitas (a, b e c) e 3 pontos tabelados. Portanto, como toda função de interpolação deve passar pelos pontos tabelados, tem-se:

p a be c a b c( . ) . ( . ) ln( . ) . . . . ..12 019 12 12 019 144 3 32 0 18 0192 12= ⇒ + + = ⇒ + + =

p a be c a b c( . ) . ( . ) ln( . ) . . . . ..14 0 15 14 14 015 196 4 06 0 34 0152 14= ⇒ + + = ⇒ + + =

p a be c a b c( . ) . ( . ) ln( . ) . . . . ..16 011 1 6 16 011 2 56 4 95 0 47 0112 16= ⇒ + + = ⇒ + + =

Logo, tem-se o seguinte sistema de equações lineares:

144 3 32 018

196 4 06 0 34

2 56 4 95 0 47

0 19

015

0 11

. . .

. . .

. . .

.

.

.

× =a

b

c

Resolvendo o sistema pelo método de Gauss, tem-se: a = -0.44, b = 0.25, c = 0.05

Logo, a função de interpolação é dada por: p x x e xx( ) . . . ln( )= − + +0 44 0 25 0 052 . Portanto:

f(1.5) ≅ p(1.5) = − + + =0 44 15 0 25 0 05 15 0152 15. ( . ) . . ln( . ) ..e

EXERCÍCIOS PROPOSTOS 1. Dada a tabela:

xi 0 2 3 5

yi -2 1 4 -1

representando uma função y = f(x), deseja-se determinar f(2.5) através de um polinômio de interpolação do 2o. grau de modo que o erro cometido seja o menor possível. Para isto: a) Montar um sistema de equações lineares para o problema; b) Resolver o sistema obtido pelo método da eliminação de Gauss para determinar os

coeficientes do polinômio de interpolação p(x);

Page 113: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 4 – Interpolação

110

c) Determinar f(2.5) ≅ p(2.5) 2. Dada a função f(x) conhecida apenas nos pontos tabelados:

x 1.00 1.20 1.40 1.60 1.80 f(x) 0.2420 0.1942 0.1497 0.1109 0.0790

a) Construir a tabela de diferenças divididas para esta função. b) Obter uma aproximação para f(1.25) usando fórmula de Newton com interpolação de

grau 3. c) Estimar o erro cometido no item (b).

3. Seja a seguinte tabela de pontos:

x sen(x) cos(x) tan(x) 1.566 0.9999885 0.0047963 208.49129 1.567 0.9999928 0.0037963 263.41125 1.568 0.9999961 0.0027963 357.61106 1.569 0.9999984 0.0017963 556.69098 1.570 0.9999997 0.0007963 1255.76559

Use estes dados para calcular a tan(1.5695) pelos seguintes caminhos: a) usando interpolação de Gregory-Newton para os pontos de tan(x) tabelados; b) usando interpolação de Hermite para calcular sen(1.5695) e cos(1.5695). Discuta os resultados obtidos.

EXERCÍCIOS DE PROGRAMAÇÃO 1. Dada uma tabela de pontos { (xi, yi), i = 1, 2, ..., n }, determinar o polinômio interpolador

1nn21 xcxcc)x( −+++=φ L . Para determinar os coeficientes do polinômio, montar o

seguinte sistema de equações lineares:

n

2

1

n

2

1

1nn

2nn

1n2

222

1nn

221

y

y

y

c

c

c

xxx1

xxx1

xxx1

MM

L

M

L

L

=

Usar a função ELGAUSS (ver Capítulo 3) para resolver o sistema. Conferir a solução encontrada utilizando o programa Mathematica, utilizando as seguintes instruções:

tab = { {x1,y1}, {x2,y2}, ..., {xn,yn} } Expand[InterpolatingPolynomial[tab,x]]

Page 114: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 4 – Interpolação

111

Uma vez determinados os coeficientes n21 c,,c,c L do polinômio interpolador, estender a

tabela para um novo espaçamento h de valores de x. Para isso, escrever uma função INTERP(n,C,a) para calcular o valor v de um polinômio 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 = ci+1 + a*di+1

v = c1 + a*d1

2. Dada uma tabela de pontos { (xi, yi), i = 1, 2, ..., n }, que representa uma função

y f xi i= ( ) , deseja-se determinar o valor de y* para um novo ponto x* tal que

x x xn1 ≤ ≤* . O valor de y* pode ser calculado como:

y y x x x x x x x x x x x xn n* ( * ) ( * )( * ) ... ( * )( * ) ... ( * ), ,2 ,= + − + − − + + − − − − −1 1 11 1 2 1 1 2 1 1 1∆ ∆ ∆

onde ∆i j, representa a i-ésima diferença dividida de ordem j. Fazer um programa que

calcule e mostre a matriz de diferenças divididas e, em seguida, escreva uma função INTERPOLA para calcular valores interpolados.

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

sistema de equações lineares correspondente a uma aproximação por spline cúbico para a função sen(2x) usando os pontos {0, 1/2, 1}.

Page 115: 34413174 Calculo Numerico en Portugues

107

Cálculo Numérico5. APROXIMAÇÃO DE FUNÇÕES

5.1 - Introdução

No capítulo anterior viu-se que uma função y = f(x) conhecida apenas em alguns pontos}n,,1,0i),y,x({ ii L= pode ser aproximada a um polinômio interpolador. Esta nem

sempre é a melhor maneira de aproximar uma função e algumas razões para isto são:

• erros experimentais nos dados serão incorporados ao polinômio interpolador (que, porconstrução, deve passar pelos pontos originais);

• em certos casos, embora sem conhecer a função que originou os dados, pela naturezado problema, é possível saber o tipo de função que estabelece a relação entre x e y.Por exemplo: sabe-se que os pontos da figura abaixo são oriundos de uma curvaexponencial.

x

y

Neste capítulo serão estudadas algumas formas de aproximação de funções, inicialmentepara casos discretos, em que a função é conhecida apenas para um conjunto de pontos e,em seguida, para o caso contínuo.

5.2 – Método dos Quadrados Mínimos

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

x

y

A questão é: "Qual é a melhor aproximação?"

Page 116: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 5 – Aproximação de Funções

108

Para responder a esta questão é preciso estabelecer um critério. Para isto, seja p(x) umafunção de aproximação para f(x) e vamos definir os resíduos como: ri = p(xi) - f(xi) = p(xi) -yi (i = 0,1, ..., n). Muitos critérios podem ser usados para comparar aproximações. Porexemplo:

• Min rii

n

=∑

0, ou seja: minimização da soma dos resíduos. Este não é um bom critério

porque resíduos positivos podem compensar resíduos negativos e ainda assim aaproximação ser ruim.

• Min | |rii

n

=∑

0 , ou seja, minimização da soma dos valores absolutos dos resíduos. Neste

caso, embora não exista a compensação de resíduos, a função "módulo" não é semprediferenciável e leva a dificuldades em achar o mínimo.

• Min rii

n2

0=∑ , ou seja, minimização da soma dos quadrados dos resíduos. Neste caso,

não há o risco de resíduos se anularem reciprocamente e a função "quadrado" éfacilmente diferenciável.

O método dos quadrados mínimos adota este último critério para determinar a melhoraproximação. A técnica de aproximação de funções pelo métodos dos quadrados mínimosé também conhecida como regressão ou suavização de dados.

Portanto, no método dos quadrados mínimos, dado um conjunto de pontos { (xi, yi), i = 0,1,..., n }, deseja-se determinar uma função de aproximação:

p x c x c x c xm m( ) ( ) ( ) ... ( )= + + +0 0 1 1φ φ φ

onde: φ φ φ0 1( ), ( ),..., ( )x x xm são funções escolhidas levando-se em conta a natureza dos

dados, e m10 c,,c,c L são constantes a serem determinadas de modo a minimizar o valor

de R:

R = rii

n2

0=∑ = ( ( ) ) ( ( ) ( ) ... ( ) )p x y c x c x c x yi

i

n

i i i m m i ii

n

= =∑ ∑− = + + + −

0

20 0 1 1

2

0φ φ φ ,

O valor de R como função de m10 c,,c,c L atinge um mínimo quando as (m+1) derivadas

parciais de R em função de jc (j = 0,1, ..., m) se anularem simultaneamente, ou seja:

∂∂

∂∂

R

cp x y

p x

cji

i

n

ii

j= − =

=∑2 0

0( ( ) )

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

Mas, como )x(c

)x(pij

j

i φ=∂

∂, podemos escrever:

0)x()y)x(p(2c

Riji

n

0ii

j=φ−=

∂∂

∑=

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

Observe que os valores de m10 c,,c,c L que anulam simultaneamente essas equações

levam mesmo a um ponto de mínimo, pois:

Page 117: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 5 – Aproximação de Funções

109

)]x(c

y)x(

c

)x(p[2

c

Rij

j

iij

n

0i j

i2

j

∂∂

−φ∂

∂=

∂∑=

e como: 0c

y

j

i =∂∂

0)]x([2)]x()x([2)]x(c

)x(p[2

c

R n

0i

2ijij

n

0iijij

n

0i j

i2

j

2

∑∑∑===

>φ=φφ=φ∂

∂=

Portanto o mínimo de R será obtido quando os valores de m10 c,,c,c L satisfazem as

equações:

2 00 0 1 10( ( ) ( ) ... ( ) ) ( )c x c x c x y xi i m m i i j i

i

nφ φ φ φ+ + + − =

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

ou seja:

( ( ) ( ) ... ( )) ( ) ( )c x c x c x x y xi i m m i j i i j ii

n

i

n

0 0 1 100

φ φ φ φ φ+ + + ===∑∑ (j = 0,1, ..., m)

Isto corresponde ao seguinte sistema de (m+1) equações lineares (j = 0,1, ..., m) com(m+1) incógnitas ( m10 c,,c,c L ), denominado sistema normal:

∑∑

∑∑∑

∑∑∑∑∑∑

φ

φφ

=

φφφφφφ

φφφφφφφφφφφφ

)x(y

)x(y

)x(y

c

c

c

)x()x()x()x()x()x(

)x()x()x()x()x()x(

)x()x()x()x()x()x(

imi

i1i

i0i

m

1

0

imimi1imi0im

imi1i1i1i0i1

imi0i1i0i0i0

LL

L

L

L

L

onde as somatórias correspondem a ∑=

n

0i)(L . A solução do sistema normal fornece os

valores dos coeficientes m10 c,,c,c L da melhor aproximação p(x) para a função yi = f(xi),

(i = 0,1, ..., n), segundo o critério dos quadrados mínimos.

Exemplo.

A tabela a seguir representa o desempenho de uma máquina em função de sua idade.Fazer uma projeção da produção que esta máquina terá aos 8 anos.

x (anos) 0.5 1.0 2.0 3.0 4.0 ... 8.0y (produção) 25 24 20 18 15 ... ?

Seja a aproximação de y = f(x) por uma reta p(x) = c0 + c1x (ou seja, escolhendo-se asfunções base como: φ0(x) = 1 e φ1(x) = x). Neste caso, o sistema normal será:

( ) ( ) ( )c c x x y xi j i i j iii

0 10

4

0

4+ =

==∑∑ φ φ (j = 0,1)

ou seja,

Page 118: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 5 – Aproximação de Funções

110

para j = 0, como φ j ix( ) = 1 ⇒ ( ). .c c x yi iii

0 10

4

0

41 1+ =

==∑∑

para j = 1, como φ j i ix x( ) = ⇒ ( ). .c c x x y xi i i iii

0 10

4

0

4+ =

==∑∑

ou, em notação matricial:

∑∑

∑∑∑∑

=ii

i

1

02ii

i

xy

y

c

c

xx

x1

onde, nas somatórias, i vai de 0 até 4. Portanto, substituindo os valores, tem-se:

5.190

0.102

c

c

25.3050.10

50.1000.5

1

0 =

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

tabela acima, segundo o critério dos quadrados mínimos, é:

p(x) = 26.47 - 2.89 x

Para estimar o valor da produção aos 8 anos, basta calcular p(8) = 3.34, ou seja, aos 8anos a máquina estará produzindo cerca de 3 peças.

O mesmo problema pode ser resolvido aproximando a função yi = f(xi) a um polinômio do2º 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 osistema normal será:

( ) ( ) ( )c c x c x x y xi i j i i j iii

0 1 22

0

4

0

4+ + =

==∑∑ φ φ (j = 0,1,2)

ou seja,

para j = 0, como φ j ix( ) = 1 ⇒ ( ). .c c x c x yi i iii

0 1 22

0

4

0

41 1+ + =

==∑∑

para j = 1, como φ j i ix x( ) = ⇒ ( ). .c c x c x x y xi i i i iii

0 1 22

0

4

0

4+ + =

==∑∑

para j = 2, como φ j i ix x( ) = 2 ⇒ ( ). .c c x c x x y xi i i i iii

0 1 22 2 2

0

4

0

4+ + =

==∑∑

ou, em notação matricial:

Page 119: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 5 – Aproximação de Funções

111

∑∑∑

∑∑∑∑∑∑∑∑∑

=2ii

ii

i

2

1

0

4i

3i

2i

3i

2ii

2ii

xy

xy

y

c

c

c

xxx

xxx

xx1

com i = 0 até 4, nas somatórias. Portanto, substituindo os valores, tem-se:

500 1050 30 25

1050 30 25 10013

30 25 10013 354 03

102 00

19050

512 25

0

1

2

. . .

. . .

. . .

.

.

.

c

c

c

=

Resolvendo o sistema: 0c = 26.875, c1 = -3.434 e c2 = 0.122, ou seja, o polinômio do 2º

grau que melhor aproxima a tabela acima, segundo o critério dos quadrados mínimos, é:

p2(x) = 26.875 - 3.434x + 0.122x2

Neste caso, a produção aos 8 anos é dada por: 2.7)8(p2 =

Uma forma de comparar estas duas aproximações é calculando-se o resíduo total, dadopor:

R p x yi ii

n= −

=∑( ( ) )

0

2

uma vez que boas aproximações devem corresponder a valores pequenos de R. Para oscasos acima, tem-se:

R p x yi ii

12 2 2 2 2 2

0

40 025 0 42 0 69 0 20 0 09= − = + + + + =

=∑( ( ) ) ( . ) ( . ) ( . ) ( . ) ( . ) 0.70

R p x yi ii

2 22 2 2 2 2 2

0

40184 0 437 0 495 0 329 0 091= − = + + + + =

=∑( ( ) ) ( . ) ( . ) ( . ) ( . ) ( . ) 0.57

Portanto, para a tabela acima, a aproximação por um polinômio do 2º grau é melhor.

Para o caso geral de ajustar um polinômio de grau m a uma tabela de pontos { (xi, yi), i =0,1,..., n }, pelo método dos quadrados mínimos (regressão polinomial), tem-se o seguintesistema normal:

∑∑

∑∑∑

∑∑∑∑∑∑

=

+

+

mii

ii

i

m

1

0

m2i

1mi

mi

1mi

2ii

mii

xy

...

xy

y

c

...

c

c

x...xx

...

x...xx

x...x1

onde as somatórias são todas com i = 0 até n. A solução deste sistema de equaçõeslineares irá fornecer os coeficientes do polinômio de grau m que melhor se ajusta (segundoo critério dos quadrados mínimos) à tabela de pontos dados.

Page 120: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 5 – Aproximação de Funções

112

Nem sempre um polinômio é a melhor função de aproximação para uma dada tabela depontos. Seja por exemplo, a tabela a seguir:

xi 1 2 4 6yi 10 5 2 1

Sejam as funções de aproximação:

(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

13 57 289

57 289 1569

18

34

98

0

1

2

c

c

c

=

cuja solução leva a: 2x51.0x27.531.14)x(p +−= , com resíduo total R = 1.22

Para o caso (b) tem-se o sistema normal:

4 00 192

192 134

18 00

13170

1

. .

. .

.

.

c

c=

cuja solução leva a: x

77.1066.0)x(q +−= , com resíduo total R = 0.11

Ou seja, para a tabela acima, a aproximação dada por q(x) é melhor que a aproximaçãodada por p(x).

5.3 – Aproximação de Funções Contínuas

Uma outra situação em que a aproximação de funções é importante ocorre quando y = f(x),mesmo sendo conhecida, é difícil e onerosa de ser calculada. Se o cálculo dessa funçãoocorre num processo iterativo, por exemplo, pode ser necessário avaliar a função umgrande número de vezes, com grande esforço computacional. Neste caso, pode servantajoso substituir f(x) por uma outra função p(x), mais simples de ser manipulada. Umamaneira de realizar tal aproximação é através do teorema de Taylor:

Teorema (Taylor). Seja f(x) uma função contínua sobre um intervalo [a, b] e seja x0 ∈ [a,b]. Então se f(x) for suficientemente diferenciável em [a, b] pode-se escrever:

f x f x x x f xx x

f xx x

nf x

x x

nf

nn

nn( ) ( ) ( ) '( )

( )

!"( ) ...

( )

!( )

( )

( )!( )( ) ( )= + − +

−+ +

−+

−+

++

0 0 00

2

00

00

11

2 1ξ

onde ξ ∈ (x0, x).

Então, se a série de Taylor for convergente e n for suficientemente grande, o polinômio:

p x f x x x f xx x

f xx x

nf x

nn( ) ( ) ( ) '( )

( )

!"( ) ...

( )

!( )( )= + − +

−+ +

−0 0 0

02

00

02

Page 121: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 5 – Aproximação de Funções

113

pode ser usado como uma aproximação de f(x) nas vizinhanças do ponto 0x .

Exemplo. Seja f(x) = ex e seja [0, 1] o intervalo de interesse. O polinômio de aproximaçãode grau 3, para 0x = 0, é dado por:

p x e x ex

ex

e xx x

30 0

20

30

2 30

0

2

0

61

2 6( ) ( )

( ) ( )= + − +

−+

−= + + +

O polinômio de aproximação de grau 4, para 0x = 0, será:

p x xx x x

4

2 3 41

2 6 24( ) = + + + +

A tabela a seguir ilustra estas aproximações para alguns valores do intervalo [0, 1]:

x ex p3(x) p4(x)

0.0 1.00000 1.00000 1.000000.2 1.22140 1.22133 1.221400.5 1.64872 1.64583 1.648431.0 2.71828 2.66667 2.70843

(observe que, como 0x = 0, à medida que x se afasta de 0x o erro torna-se cada vez

maior).

Para verificar o quão boa é a aproximação por série de Taylor, pode-se utilizar a funçãoerro En(x), que é dada por:

E x f x p xx x

nfn n

nn( ) ( ) ( )

( )

( )!( )( )= − =

−+

++0

11

O valor do erro não é possível calcular porque ξ é desconhecido, portanto, interessa saberum limite superior para En(x). Em geral os limites superiores são pessimistas, garantindoentretanto que o método seja usado com algum grau de confiança. Seja Mn+1 um valor talque:

f x M x a bnn

( )( ) [ , ]++< ∈1

1

Então:

E xx a

nf

x a

nMn

nn

n

n( )( )

( )!( )

( )

( )!( )=

−+

<−

+

++

+

+

11

1

11 1ξ

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

E xb a

nMn

n

n( )( )

( )!<

−+

+

+

1

11

Page 122: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 5 – Aproximação de Funções

114

Exemplo. Sejam as aproximações de ex em [0, 1] dadas pelos polinômios )x(p3 e )x(p4acima.

x)5()4( e)x(f)x(f == ⇒ Mn+1 = x

1x0eMax

≤≤ = e1 = 2.71828

Portanto:

E x

E x

3

4

1

242 71828 011326

1

1202 71828 0 02265

( ) . .

( ) . .

<

× =

<

× =

Na verdade o erro é bem menor do que estes valores (ver tabela anterior). Esta estimativade erro implica em utilizar mais termos da série do que o necessário para alcançar umacerta precisão, ou seja, o esforço computacional é maior, mas o resultado estará,garantidamente, dentro da precisão.

Exemplo. Calcular pn(0.5) com 5 casas decimais corretas. Qual deve ser o valor de n?

E xn

nn ( )( )!

. .<+

× < ⇒ =

1

12 71828 0 00001 8

Então: p x xx x x

p8

2 3 8

812 3 8

05 164872( )!

...!

( . ) .= + + + + + ⇒ = (com 5 casas decimais).

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

O método dos quadrados mínimos pode também ser usado para o caso de aproximação defunções contínuas. Para isto, é necessário definir a função residual:

r(x) = p(x) - f(x)

onde p(x) é a função de aproximação de f(x) no intervalo [a, b]. Agora, o critério dosquadrados mínimos será:

Min r x dx Min p x f x dxa

b

a

b( ( )) ( ( ) ( ))2 2∫ ∫= −

Portanto, se:p x c x c x c xm m( ) ( ) ( ) ... ( )= + + +0 0 1 1φ φ φ

onde: φ φ φ0 1( ), ( ),..., ( )x x xm são funções escolhidas convenientemente, e c0, c1, ..., cmsão constantes a serem determinadas de modo a minimizar o valor de:

R = ( ( ) ( )) ( ( ) ( ) ... ( ) ( ))p x f x dx c x c x c x f x dxa

b

a

b

m m∫ ∫− = + + + −20 0 1 1

2φ φ φ ,

Page 123: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 5 – Aproximação de Funções

115

Como no caso discreto, o valor mínimo de R como função de m10 c,,c,c L será obtido

quando as (m+1) derivadas parciais de R em função de cj (j = 0,1, ..., m) se anularemsimultaneamente, ou seja:

∂∂

∂∂

R

cp x f x

p x

cdx

j a

b

j= − =∫2 0( ( ) ( ))

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

Mas: ∂∂

φp x

cx

jj

( )( )= , e portanto o mínimo de R será obtido quando os valores de

m10 c,,c,c L satisfizerem as equações:

2 00 0 1 1( ( ) ( ) ... ( ) ( )) ( )c x c x c x f x x dxa

b

m m jφ φ φ φ∫ + + + − = (j = 0,1, ..., m)

ou seja:

( ( ) ( ) ... ( )) ( ) ( ) ( )a

b

m m j ja

bc x c x c x x dx f x x dx∫ ∫+ + + =0 0 1 1φ φ φ φ φ (j = 0,1, ..., m)

o que corresponde ao sistema normal de (m+1) equações lineares (j = 0,1, ..., m) com(m+1) incógnitas ( m10 c,,c,c L ). Novamente, a solução deste sistema irá fornecer os

valores dos coeficientes m10 c,,c,c L da melhor aproximação p(x) para a função f(x),

segundo o critério dos quadrados mínimos.

Exemplo. Aproximar a função f(x) = ex no intervalo [0, 1] a um polinômio do 2º grau, pelométodo dos quadrados mínimos.

Neste caso, p(x) = c0 + c1x + c2x2 e o sistema normal será dado por:

( ) ( ) ( )0

1

0 1 22

0

1∫ ∫+ + =c c x c x x dx x e dxj j

xφ φ (j = 0,1,2)

ou seja:

(j = 0 ⇒ φ0(x) = 1) ( )0

1

0 1 22

0

1∫ ∫+ + =c c x c x dx e dxx

(j = 1 ⇒ φ1(x) = x) ( )0

1

0 1 22

0

1∫ ∫+ + =c c x c x xdx xe dxx

(j = 2 ⇒ φ2(x) = x2) ( )0

1

0 1 22 2 2

0

1∫ ∫+ + =c c x c x x dx x e dxx

Portanto:

Page 124: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 5 – Aproximação de Funções

116

dxex

dxxe

dxe

c

c

c

dxxdxxdxx

dxxdxxdxx

dxxdxxdx1

x2

x

x

2

1

0

432

32

2

∫∫∫

∫∫∫∫∫∫∫∫∫

=

onde os limites de integração são 0 e 1. Pode-se notar que, no caso geral da função deaproximação ser um polinômio de grau m, os elementos da matriz A dos coeficientes sãotais que:

A x dxi ji j

a

b

, = +∫ (i = 0, 1, ..., m; j = 0, 1, ..., m)

ou seja:

Ax

i j

b a

i ji j

i j

a

b i j i j

, =+ +

=−

+ +

+ + + + + +1 1 1

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

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

Ai j i ji j

i j i j

, =−

+ +=

+ +

+ + + +1 0

1

1

1

1 1 (i = 0, 1, 2; j = 0, 1, 2)

ou seja:

A =1 1 2 1 3

1 2 1 3 1 4

1 3 1 4 1 5

/ /

/ / /

/ / /

O vetor dos termos independentes do sistema normal é tal que:

b x e dxii x= ∫

0

1 (i = 0, 1, 2)

e portanto:

[ ]b e dx e e e ex x0

0

1

0

11 0 1= = = − = −∫

[ ]b xe dx e x e ex x1

0

1

0

11 01 1 1 0 1 1= = − = − − − =∫ ( ) ( ) ( )

[ ]b x e dx e x x e e ex x2

2 2

0

1

0

11 2 0 22 2 1 2 1 2 0 2 0 2 2= = − + = − × + − − × + = −∫ ( ) ( ) ( )

Logo, o sistema normal será:

Page 125: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 5 – Aproximação de Funções

117

1 1 2 1 3

1 2 1 3 1 4

1 3 1 4 1 5

1

1

2

0

1

2

/ /

/ / /

/ / /

c

c

c

e

e

=−

−que resolvido resulta em:

p(x) = 1.013 + 0.851x + 0.839x2

A matriz A dada por Ai ji j, =+ +

1

1 (i,j = 0,1, ..., m) é conhecida como matriz de Hilbert.

Problemas que envolvem solução de sistemas de equações lineares onde a matriz doscoeficientes é uma matriz de Hilbert são problemas mal-condicionados. O mal-condicionamento torna-se mais pronunciado à medida que m aumenta.

5.4 – Polinômios Ortogonais

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

P x Q x dxab ( ) ( ) =∫ 0

O uso de polinômios ortogonais para o ajuste de funções leva a um sistema de equaçõesnormais cuja matriz dos coeficientes é diagonal, o que não apenas evita o mal-condicionamento das matrizes de Hilbert, como facilita a solução do sistema.

Os polinômios de Legendre podem ser escritos, recursivamente, como:

K,3,2n,)x(Ln

1n)x(L)x(

n

1n2)x(L

x)x(L1)x(L

2n1nn

1

0

=−

−−

=

==

−−

Tais polinômios são ortogonais no intervalo [-1, 1], ou seja:

∫− ≠=11 mn mn0dx)x(L)x(L

Além disto,

( ) K,1,0n1n2

2dx)x(L

11

2n =

+=∫−

Exemplo:

x)x(L1)x(L

1

0==

( )1x32

1

2

1xx

2

3)x(L

2

12)x(L)x(

2

122)x(L 2

012 −=−×=−

−−×

=

Verificando a ortogonalidade:

Page 126: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 5 – Aproximação de Funções

118

02

1

2

1

2

xxdxdx)x(L)x(L

1

1

11

211 10 =−=

==

−−− ∫∫

[ ] [ ] 0)11()11(2

1xx

2

1dx)1x3(

2

1dx)x(L)x(L

1

1

11

3211 20 =+−−−=−=−=

−−− ∫∫

02

1

4

1

2

1

4

1

2

1

2

x

4

x3

2

1dx)xx3(

2

1dx)x(L)x(L

1

1

11

2431

1 21 =

−−

−=

−=−=

−−− ∫∫

Considere, então, a aproximação por quadrados mínimos da forma:

p x c c x c x2 0 1 22( ) = + +

de uma função contínua f(x) definida no intervalo [-1, 1]. Do polinômio de Legendre de 2ºgrau tem-se:

( )1x32

1)x(L 2

2 −=

ou seja:

( ) ( ))x(L)x(L23

11)x(L2

3

1x 022

2 +=+=

Substituindo em p x2 ( ) tem-se:

( ) {{

)x(Lc3

2)x(Lc)x(L)c

3

1c()x(L)x(L2

3

1c)x(Lc)x(Lc)x(p 221102002211002

21

0 ββ

β

+++=+++=43421

Assim, para determinar os coeficientes do polinômio de ajuste pelo critério dos quadradosmínimos, deve-se minimizar:

∫ ∑−=

β−1

1

22

0iii dx)x(L)x(f

o que leva ao sistema de equações normais Aβ = b, onde:

2,1,0j,idx)x(L)x(LA11 jij,i == ∫−

2,1,0idx)x(L)x(fb11 ii == ∫−

Da ortogonalidade dos polinômios de Legendre vem que os elementos da matriz A são nãonulos apenas na diagonal principal (i = j). Portanto, a solução do sistema será:

Page 127: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 5 – Aproximação de Funções

119

)2,1,0i(dx)x(L)x(f2

1i2

1i2

2

dx)x(L)x(f 11 i

11 i

i =+

=

+

=β ∫∫

−−

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

c c

c

c

0 2 0

1 1

2 2

1

3

2

3

+ =

=

=

β

β

β

cuja solução é:

c0 0 21

2= −β β

c1 1= β

c2 23

2= β

Exemplo: Aproximar a função ex no intervalo [-1, 1].

Neste caso, tem-se:

( )111

x11 0

x0 ee

2

1dxe

2

1dx)x(Le

2

1 −−−

−===β ∫∫

111

x11 1

x1 e3dxxe

2

3dx)x(Le

2

3 −−− ∫∫ ===β

( ) ( )111

2x11 2

x2 e7e

2

5dx1x3

2

1e

2

5dx)x(Le

2

5 −−−

−=−==β ∫∫

Portanto:

( ) ( ) ( )c e e e e e e01 1 11

2

1

2

5

27

1

43 33 0 996= − − − = − + =− − − .

c e113 1104= =− .

( ) ( )c e e e e21 13

2

5

27

15

47 0537= − = − =− − .

ou seja, a função de aproximação por quadrados mínimos é dada por:

p x x x220 996 1104 0 537( ) . . .= + +

A tabela abaixo ilustra a aproximação obtida:

Page 128: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 5 – Aproximação de Funções

120

x p x2 ( ) ex

-1.0 0.429 0.3680.0 0.996 1.0000.5 1.682 1.6491.0 2.637 2.718

Portanto, o uso de polinômios ortogonais na aproximação de funções pelo método dosquadrados mínimos, do ponto de vista computacional, é muito vantajoso, tanto em tempode processamento (é necessário calcular apenas os elementos da diagonal principal damatriz dos coeficientes), como em espaço de memória (não é necessário espaço paraarmazenar a matriz dos coeficientes).

O uso dos polinômios de Legendre, no entanto, cria um problema: E se o intervalo onde sedeseja a aproximação não for [-1, 1]?. Neste caso, existem duas maneiras de resolver oproblema:

• Troca de variável. Basta substituir a variável x pela variável z:

x a b zx a b

b a∈ ⇒ =

− −−

∈ −[ , ] [ , ]2

1 1

• Processo de ortogonalização de Gram-Schmidt. Neste caso procura-se determinar uma

sequência de polinômios { }Q x ii ( ), , ,= 0 1 K com )x(Qi de grau i, que sejam

ortogonais em [a, b].

Para ilustrar, considere que deseja-se determinar os polinômios )x(Q),x(Q 10 e )x(Q2 ,

ortogonais em [a, b]. Pode-se, então, definir:

22221202

11101

000

xcxcc)x(Q

xcc)x(Qc)x(Q

++=

+==

A ortogonalidade destes polinômios implica em:

Q x Q x dxab

0 1 0( ) ( ) =∫

Q x Q x dxab

0 2 0( ) ( ) =∫

Q x Q x dxab

1 2 0( ) ( ) =∫

o que leva a um sistema de 3 equações com 6 incógnitas. Escolhendo, arbitrariamente,1ccc 020100 === , pode-se determinar os demais coeficientes.

Exemplo. Polinômios ortogonais em [0, 1].

( )Q x Q x dx c x dx x cx c

0 1 11 11

2

01

01

0

1111 1

21

20( ) ( ) = + = +

= + =∫∫

Page 129: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 5 – Aproximação de Funções

121

ou seja: 2c11 −= .

( )Q x Q x dx c x c x dx x cx

cx c c

0 2 21 222

21

2

22

3

01

01

0

121 221 1

2 31

2 30( ) ( ) = + + = + +

= + + =∫∫

( ) ( )Q x Q x dx x c x c x dx

x cx

c cx

cx

c c

1 2 01

01

21 222

21

2

22 21

3

22

4

21 22

1 2 1

22

23 2

1

6

1

60

( ) ( )

( ) ( )

= − + + =

= + − + − −

= − − =

∫∫

ou seja: 6c,6c 2221 =−= . Portanto, os seguintes polinômios são ortogonais em [0, 1]:

22

1

0

x6x61)x(Q

x21)x(Q1)x(Q

+−=

−==

Uma vez determinados os polinômios ortogonais )x(Qi , o sistema de equações normais

para o polinômio de aproximação de quadrados mínimos:

p x Q x Q x Q x2 0 0 1 1 2 2( ) ( ) ( ) ( )= + +β β β

é obtido de forma análoga ao caso dos polinômios de Legendre, ou seja:

( )βi

iab

iab

f x Q x dx

Q x dxi= =

( ) ( )

( ), ,2 0 1 K

Exemplo. Aproximar ex no intervalo [0, 1] a um polinômio do 2º grau.

Neste caso, tem-se:

( )β0

001

02

01

01

01 1= = = −

e Q x dx

Q x dx

e dx

dxe

x x( )

( )

( )β1

101

12

01

01

201

1 2

1 23 3= =

−= −

e Q x dx

Q x dx

e x dx

x dxe

x x( )

( )

( )

( )( )

( )β2

201

22

01

201

2 201

1 6 6

1 6 65 7 19= =

− +

− += −

e Q x dx

Q x dx

e x x dx

x x dxe

x x( )

( )

( )

( )( )

Portanto:

p x x x221013 0 851 0839( ) . . .= + +

Page 130: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 5 – Aproximação de Funções

122

Notar que este polinômio é o mesmo obtido anteriormente (ver seção 6.3).

No processo considerado acima, para determinar os polinômios ortogonais

{ }Q x ii ( ), , ,= 0 1 K escolheu-se (arbitrariamente) os coeficientes c ii0, 0 1( , , )= K como

sendo iguais a 1. Evidentemente, existem outras escolhas. Uma escolha possível é fixar ascondições de normalização, dadas por:

( )Q x dx iiab ( ) , ,∫ = =

21 0 1 K

Com as condições de normalização os polinômios obtidos são denominados ortonormais.

Se o processo de aproximação por quadrados mínimos for expresso em termos depolinômios ortonormais, a matriz dos coeficientes do sistema de equações normais será amatriz identidade. Portanto, neste caso, os coeficientes βi i( , , )= 0 1 K serão calculadosdiretamente por:

βi iab f x Q x dx i= =∫ ( ) ( ) , ,0 1 K

Exemplo. Polinômios ortonormais em [0, 1].

Sejam os polinômios:

22221202

11101

000

xcxcc)x(Q

xcc)x(Qc)x(Q

++=

+==

/Pela ortogonalidade tem-se:

( )Q x Q x dx c c c x dx c cc

0 1 00 10 1101

01

00 101102

0( ) ( ) = + = ⇒ +

=∫∫

( )Q x Q x dx c c c x c x dx c cc c

0 2 00 20 21 222

01

01

00 2021 2202 3

0( ) ( ) = + + = ⇒ + +

=∫∫

( ) ( )Q x Q x dx c c x c c x c x dx

c cc c

cc c c

1 2 10 11 20 21 222

01

01

10 2021 22

1120 21 22

0

2 3 2 3 40

( ) ( ) = + + + = ⇒

⇒ + +

+ + +

=

∫∫

Tem-se então:

cc

cc c

c cc c

cc c c

1011

2021 22

10 2021 22

1120 21 22

20

2 30

2 3 2 3 40

+ =

+ + =

+ +

+ + +

=

Page 131: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 5 – Aproximação de Funções

123

Pela normalização tem-se:

( ) ( )Q x dx c dx c02

002

01

01

001 1( ) = = ⇒ =∫∫

( ) ( )Q x dx c c x dx c c cc

12

10 112

01

01

102

10 11112

13

1( ) = + = ⇒ + + =∫∫

( ) ( )Q x dx c c x c x dx

c c c c cc c c c

22

20 21 222 2

01

01

202

20 21 20 22212

21 22 222

1

2

3 3 2 51

( ) = + + = ⇒

⇒ + + + + + =

∫∫

Tem-se então:

c

c c cc

c c c c cc c c c

00

102

10 11112

202

20 21 20 22212

21 22 222

1

31

2

3 3 2 51

=

+ + =

+ + + + + =

Resolvendo as seis equações chega-se aos seguintes valores:

c

c c

c c c

00

10 11

20 21 22

1

3 2 3

5 6 5 6 5

== = −= = − =

Portanto, os polinômios a seguir são ortonormais em [0, 1]:

22

1

0

x56x565)x(Q

x323)x(Q

1)x(Q

+−=

−==

Exercício. Verificar a ortonormalidade dos polinômios acima, no intervalo [0, 1].

Com os polinômios ortonormais pode-se facilmente determinar o polinômio de aproximaçãode quadrados mínimos:

p x Q x Q x Q x2 0 0 1 1 2 2( ) ( ) ( ) ( )= + +β β βou seja:

A Q x Q x dxse i j

se i ji ji j i j, ( ) ( ) , , ,= =

=

=∫01 0

10 1 2

Page 132: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 5 – Aproximação de Funções

124

b f x Q x dx ii i= =∫ ( ) ( ) , ,01 0 1 2

Portanto, como A é matriz identidade:

βi if x Q x dx i= =∫ ( ) ( ) , ,01 0 1 2

Exemplo. Aproximar ex no intervalo [0, 1] a um polinômio do 2º grau, usando polinômiosortonormais.

Neste caso, tem-se:

β0 001

01 1= = = −∫ ∫e Q x dx e dx ex x( )

β1 101

01 3 2 3 3 3= = − = −∫ ∫e Q x dx e x dx ex x( ) ( ) ( )

β2 201 2

01 5 6 5 6 5 5 7 19= = − + = −∫ ∫e Q x dx e x x dx ex x( ) ( ) ( )

Portanto:

p x x x221013 0 851 0839( ) . . .= + +

que é, evidentemente, o mesmo polinômio de aproximação obtido anteriormente (verexemplos anteriores).

5.5 – Método dos Quadrados Mínimos Generalizado

Embora existam teoremas, como o de Weierstrass, por exemplo (ver Capítulo 4) quegarantem que para um intervalo [a, b] é sempre possível determinar uma boa aproximaçãode uma função contínua f(x) por um polinômio pn(x), existem fenômenos que levam apensar em outros modelos de aproximação.

Por exemplo, sabe-se (pela natureza do problema) que a função f(x) é periódica em [-π, π].Neste caso é natural usar uma função de aproximação como uma combinação linear defunções periódicas.

Seja { }Φ = =φ i x i n( ), , , ,0 1 K um conjunto de funções linearmente independentes

denominadas funções-base. Seja a função de aproximação dada por:

L x x x x xn n i ii

n( , , ) ( ) ( ) ( ) ( )α α φ α φ α φ α φΦ = + + + =

=∑0 0 1 1

0K

Notar que a aproximação polinomial é um caso particular de L x( , , )α Φ onde as funções-

base φ i x i n( ) ( , , , )= 0 1 K correspondem aos monômios x i ni ( , , , )= 0 1 K ou a

polinômios ortogonais )x(Pi .

Pelo critério dos quadrados mínimos, uma vez escolhido o conjunto Φ, deve-se determinaros coeficientes α α α0 1, , ,K n que minimizam a função:

( )I f x L x dxab( ) ( ) ( , , )α α= −∫ Φ

2

Page 133: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 5 – Aproximação de Funções

125

ou, de uma forma generalizada, introduzindo uma função-peso w(x) para reduzir (oureforçar) o quadrado do erro em certos trechos do intervalo [a, b], que minimizam a função:

( )I f x L x w x dxab( ) ( ) ( , , ) ( )α α= −∫ Φ

2

Os coeficientes α α α0 1, , ,K n que minimizam esta função são tais que:

∂ α∂αI

j nj

( ), , ,= =0 0 1 K

ou seja:

∂ α∂α

α φ φI

f x x x w x dx j nj

i ii

n

ab

j( )

( ) ( ) ( ) ( ) , , ,= − −

= =

=∑∫2 0 0 1

0K

o que leva ao seguinte sistema de equações normais:

α φ φ φi i jab

Ai

n

jab

b

x x w x dx f x x w x dx j n

i j j

( ) ( ) ( ) ( ) ( ) ( ) , , ,

,

∫∑ ∫=

= =1 24444 34444 1 24444 34444

K0

0 1

Para o caso discreto as integrais devem ser substituídas por somatórias. Neste caso, tem-se:

A x x w i j ni j i k j k kk

m

, ( ) ( ) ( , , , , )= ==∑ φ φ

00 1 K

b f x x w j nj k j k kk

m= =

=∑ ( ) ( ) ( , , , )φ

00 1 K

Exemplo. Seja a tabela abaixo, representando uma função y = f(x):

xi 1.0 2.0 4.0 6.0

yi 10.0 5.0 2.0 1.0

a) Seja a função de aproximação L x a a x a x( ) = + +0 1 22

Neste caso, w kk = =1 0 1 2 3( , , , ) e φ φ φ0 1 221( ) ; ( ) ; ( )x x x x x= = = , ou seja:

φ iix x i( ) ( , , )= = 0 1 2 .

Portanto, para este caso, tem-se:

A x xk kkk

0,0 0 00

3

0

31 1 1 1 1 1 4= = × = + + + =

==∑∑ φ φ( ) ( )

A x x xk k kkk

0,1 0 10

3

0

31 1 2 4 6 13= = × = + + + =

==∑∑ φ φ( ) ( )

Page 134: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 5 – Aproximação de Funções

126

A x x xk k kkk

0,2 0 22 2 2 2 2

0

3

0

31 1 2 4 6 57= = × = + + + =

==∑∑ φ φ( ) ( )

M

b y x yk k kkk

0 00

3

0

31 10 5 2 1 18= = × = + + + =

==∑∑ φ ( )

M

Tem-se, então, o seguinte sistema normal:

4 13 57

13 57 289

57 289 1569

18

34

98

0

1

2

a

a

a

=

o que leva à função de aproximação:

L(x) = 14.312 - 5.266 x + 0.513 x2

Calculando a soma dos quadrados dos resíduos tem-se:

R = ( )f x L xk kk

( ) ( )− ==∑

0

3 2

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

b) Considere agora a função de aproximação L x cc

x( ) = +0

1

Neste caso, w kk = =1 0 1 2 3( , , , ) e φ φ0 111

( ) ; ( )x xx

= = .

Portanto, para este caso, tem-se:

A x xk kkk

0,0 0 00

3

0

31 1 1 1 1 1 4= = × = + + + =

==∑∑ φ φ( ) ( )

A x xxk k

kk0,1 0 1

0

3

0

3 11917= = =

==∑∑ φ φ( ) ( ) .

M

o que leva ao seguinte sistema normal:

4 000 1917

1917 1340

18 000

131670

1

. .

. .

.

.

c

c=

Page 135: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 5 – Aproximação de Funções

127

e à função de aproximação:

L(x) = − +0 65810 765

..

x

Neste caso, a soma dos quadrados dos resíduos será:

R = ( )f x L xk kk

( ) ( )− ==∑

0

3 2

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

Pelos valores do resíduo total R conclui-se, portanto, que a aproximação (b) é melhordo que a aproximação (a).

O processo de ortogonalização de Gram-Schmidt pode ser estendido para gerar uma

sequência de funções ortogonais a partir de um conjunto { }Φ = =φ i x i n( ), , , ,0 1 K de

funções-base linearmente independentes:

ψ φ

ψ φ ψ

0 0

0

11 2

( ) ( )

( ) ( ) ( ) , , ,

x x

x x c x i ni i ij jj

i

=

= − ==

−∑ K

Como as funções ψi x( ) são construídas recursivamente, para que no estágio i as funções

{ }ψk x k i( ), , , ,= 0 1 K formem um conjunto ortogonal, deve-se ter:

ψ ψ ψ φ ψk iab

k i ij jj

i

abx x w x dx x x c x w x dx( ) ( ) ( ) ( ) ( ) ( ) ( )= −

=∫ ∑∫

=

0

1

= − =∫ ∫ψ φ ψ ψk i ikab

k kabx x w x dx c x x w x dx( ) ( ) ( ) ( ) ( ) ( ) 0

ou seja:

cx x w x dx

x x w x dxik

k iab

k kab=∫

ψ φ

ψ ψ

( ) ( ) ( )

( ) ( ) ( )

Portanto, as funções ortogonais são obtidas por:

ψ φ

ψ φψ φ

ψ ψψ

0 0

0

11 2

( ) ( )

( ) ( )( ) ( ) ( )

( ) ( ) ( )( ) , , ,

x x

x xx x w x dx

x x w x dxx i ni i

j iab

j jab j

j

i

=

= − =∫

∫∑=

−K

Page 136: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 5 – Aproximação de Funções

128

Exemplo. Determinar funções ortogonais em [-1, 1] a partir do conjunto de funções-base

{ }φ iix x i( ) , , ,= = 0 1 K e função-peso w x

x( ) =

1

1 2.

1x)x()x( 000 ==φ=ψ

x1dx

x1

1

dxx1

x

x)x(dx)x(w)x()x(

dx)x(w)x()x()x()x(

11 2

11 2

011 00

11 10

11 =×

−−=ψ

ψψ

φψ−φ=ψ

ψ φψ φ

ψ ψψ

ψ φ

ψ ψψ2 2

0 211

0 011 0

1 211

1 111 1

2 1

2( ) ( )

( ) ( ) ( )

( ) ( ) ( )( )

( ) ( ) ( )

( ) ( ) ( )( )x x

x x w x dx

x x w x dxx

x x w x dx

x x w x dxx x= − − = −−

e assim por diante.

Os polinômios:

T x i x ii ( ) cos( cos ( )) , ,= =−1 0 1 K

são conhecidos como polinômios de Tchebyshev e também são ortogonais em [-1, 1] com

relação à função-peso w xx

( ) =−

1

1 2. É facil verificar isto, pois para i ≠ j:

T x T x w x dx i x j xx

dxi j( ) ( ) ( ) cos( cos ( )) cos( cos ( ))−−

−−∫ ∫=

−1

1 11

1 12

1

1Fazendo a mudança de variável:

u x= −cos ( )1

tem-se, para os limites de integração:

x u

x u

= − ⇒ =

= ⇒ =1

1 0

π

e também:

dux

dx= −−

1

1 2

Portanto:

T x T x w x dx i u j ux

x dui j( ) ( ) ( ) cos( ) cos( )−∫ ∫=−

− −

=1

1 02

21

11π

Page 137: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 5 – Aproximação de Funções

129

= =− + − + + − +

∫ cos( ) cos( )

sen( ) sen( ) sen( ) sen( )

( )i u j u du

i iu ju j iu ju i iu ju j iu ju

i j0 2 20

2

ππ

=− + − + − − −

−−

i i j j i j i i j j i j

i j

sen[ ( )] sen[ ( )] sen[ ( )] sen[ ( )]

( )

π π π π

2 2 2

i j i j

i j

sen[ ] sen[ ] sen[ ] sen[ ]

( )

0 0 0 0

20 0 02 2

+ + −

−= − =

Sabe-se também que:

cos[ cos ( )] cos[( ) cos ( )] cos[( ) cos ( )]cos[cos ( )] , ,i x i x i x x i− − − −+ − = − =1 1 1 12 2 1 0 1 K

ou seja:T x T x x T xi i i( ) ( ) ( )+ =− −2 12

Portanto, os polinômios de Tchebyshev podem ser escritos de forma recursiva, como:

T x x T x T x ii i i( ) ( ) ( ) , ,= − =− −2 2 31 2 K

Os polinômios obtidos desta forma, a menos de um fator, são os mesmos obtidos peloprocesso de ortogonalização de Gram-Schmidt.

Exemplo. Aproximar a função ex no intervalo [-1, 1] à uma função da forma:

p x T x T x T x T x3 0 0 1 1 2 2 3 3( ) ( ) ( ) ( ) ( )= + + +α α α α

onde Ti(x) (i = 0, ..., 3) são polinômios de Tchebyshev.

Do método dos quadrados mínimos generalizado, tem-se que o sistema de equaçõesnormais A bα = é tal que:

A T x T x w x dx i j ni j i jab

, ( ) ( ) ( ) , , , ,= =∫ 0 1 K

b f x T x w x dx j nj jab= =∫ ( ) ( ) ( ) , , ,0 1 K

e que para polinômios ortogonais o sistema de equações normais é diagonal. Portanto:

αiia

b

i iab

f x T x w x dx

T x T x w x dxi j n= =

( ) ( ) ( )

( ) ( ) ( ), , , ,0 1 K

Para o exemplo acima:

Page 138: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 5 – Aproximação de Funções

130

T x T xx

dx iu dupara i

para ii i( ) ( ) cos [ ]

1

1

0

21

211 2

0−

= ==

−∫ ∫π

π

π

Logo:

απ0

021

11

11266=

−=−∫

e T x

xdx

x ( ).

απ1

121

12

11130=

−=−∫

e T x

xdx

x ( ).

απ2

221

12

10 271=

−=−∫

e T x

xdx

x ( ).

απ3

321

12

10 044=

−=−∫

e T x

xdx

x ( ).

Dos polinômios de Tchebyshev tem-se:

T x x010 0 1( ) cos[ cos ( )] cos[ ]= = =−

T x x x111( ) cos[ cos ( )]= =−

T x x T x T x x x x2 1 022 2 1 2 1( ) ( ) ( )= − = − = −

T x x T x T x x x x x x3 2 12 32 2 2 1 4 3( ) ( ) ( ) ( )= − = − − = −

Portanto, a função de aproximação será:

p x x x x x32 31266 1 1130 0 271 2 1 0 044 4 3( ) . [ ] . [ ] . [ ] . [ ]= + + − + −

ou seja:

p x x x x32 30 995 0 998 0542 0176( ) . . . .= + + +

Portanto, usando polinômios de Tchebyshev a dificuldade está na avaliação das integraispara o cálculo dos coeficientes α i i n( , , , )= 0 1 K . Como calcular integrais numericamenteé o assunto do capítulo a seguir.

EXERCÍCIOS RESOLVIDOS

1. Aproximar a função y = f(x) conhecida apenas nos pontos da tabela a seguir a uma

função da forma y abx=2

utilizando o método dos quadrados mínimos.

Page 139: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 5 – Aproximação de Funções

131

x 1.00 1.20 1.40 1.60 1.80f(x) 0.24 0.19 0.14 0.11 0.08

Solução:

Aplicando logaritmo pode-se escrever: ln(y) = ln(a) + x2 ln(b). Fazendo z = ln(y), c0 =ln(a), c1 = ln(b), o problema reduz-se a a ajustar uma função z = c x c x0 0 1 1φ φ( ) ( )+ ,

com φ0 1( )x = e φ12( )x x= , à seguinte tabela de pontos:

x 1.00 1.20 1.40 1.60 1.80z -1.43 -1.66 -1.97 -2.21 -2.53

Portanto, o sistema normal será:

11

52

1

5

2

1

54

1

5

0

1

1

5

2

1

5i

ii

ii

ii

ii

i ii

x

x x

c

c

z

z x

= =

= =

=

=

∑ ∑

∑ ∑

∑× =

Substituindo os valores, tem-se:

50 10 2

10 2 239

9 8

215

097

0 49

0

1

0

1

. .

. .

.

. .

× =

−⇒ =

c

c

c

c

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

a = e ec0 0 97 0 38= =− . .b = e ec1 0 49 0 61= =− . .

Portanto a função de aproximação será: y = 0.38 × 0 612

. x .

EXERCÍCIOS PROPOSTOS

1. Aproximar a função y = f(x) conhecida apenas nos pontos da tabela a seguir a uma

função da forma y a bx= +1 2 utilizando o método dos quadrados mínimos.

x 0.0 1.0 2.0 3.0y 0.50 0.76 1.24 1.78

2. Dada a função f(x) conhecida apenas nos pontos tabelados:

x 1.00 1.20 1.40 1.60 1.80f(x) 0.2420 0.1942 0.1497 0.1109 0.0790

Page 140: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 5 – Aproximação de Funções

132

Aproxime f(x) a uma função da forma: c0ln(x) + c1e-x pelo método dos quadradosmínimos.

3. Encontre os polinômios de grau 1, 2 e 3 que melhor ajustam a tabela abaixo, no sentidodos quadrados mínimos. Qual deles fornece o menor resíduo?

x 0.00 0.15 0.31 0.50 0.60 0.75f(x) 1.000 1.004 1.031 1.117 1.223 1.422

4. A tabela abaixo fornece o número de habitantes do Brasil (em milhões) a partir de 1872.Obter uma estimativa para a população brasileira no ano 2000. Comente criticamente oresultado obtido.

ano 1872 1890 1900 1920 1940 1950 1960 1970 1980habitante

s9.9 14.3 17.4 30.6 41.2 51.9 70.9 93.1 130.0

5. O número y de bactérias por unidade de volume existente em uma cultura, após x

horas, é apresentado na tabela a seguir. Ajuste aos dados as curvas y abx= e y axb= .Qual delas parece ser a melhor aproximação?

x (horas) 0 1 2 3 4 5 6y (bactérias/volume) 32 47 65 92 132 190 275

6. Encontrar uma aproximação de quadrados mínimos linear para sen(x) no intervalo [0,π/2] pelos seguintes caminhos:

a) diretamente da definição, ou seja, resolvendo o sistema normal;b) usando polinômios ortogonais em [0, π/2];c) mapeando o intervalo em [-1,1] e usando polinômios de Legendre.

7. Escreva um programa para determinar uma aproximação de quadrados mínimos da

forma )xcos()xsen()x,(L 321 α+α+α=α para a função xey = no intervalo [-π, π] (ou

seja, o programa deve determinar os valores de 21, αα e 3α ).

EXERCÍCIOS DE PROGRAMAÇÃO

1. Dada uma tabela { (xi , yi ), i = 1, 2, ..., n }, que representa uma função yi = f(xi ), pode-

se determinar o polinômio p(x) = c c x c x c xmm

1 2 32

1+ + + + +... que melhor aproximaesta tabela, segundo o critério dos quadrados mínimos, montando e resolvendo osistema normal, dado por:

Page 141: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 5 – Aproximação de Funções

133

1 2

2 3 1

1 2 2

1

2

1

∑ ∑ ∑ ∑∑ ∑ ∑ ∑

∑ ∑ ∑ ∑

∑∑

+

+ ++

=

x x x

x x x x

x x x x

c

c

c

y

y x

y x

m

m

m m m mm

mM M M

onde as somatórias são todas com i = 1, ..., n. Fazer um programa que:

a) Lê o número de pontos (n) e a tabela { (xi , yi ), i = 1, 2, ..., n };b) Lê o grau do polinômio de aproximação (m);c) Constrói e mostra o sistema de equações normais;d) Resolve o sistema para determinar os coeficientes do polinômio que melhor

aproxima a tabela de pontos, pelo critério dos quadrados mínimos;e) Determina a soma total dos resíduos ao quadrado. Lembrar que, uma vez

determinados os coeficientes ci (i = 1, 2, ..., m+1), o valor do polinômio em umponto xs qualquer pode ser calculado como:

valor = cm+1para i = m, m-1, ..., 1 fazer:

valor = valor * xs + ci

2. Fazer um programa para expandir a função y = cos(x) em torno de um ponto x = x0 ,usando o teorema de Taylor, para encontrar um polinômio de aproximação. O grau dopolinômio deve ser tal que o erro de aproximação seja menor que ε. O programa deverámostrar o polinômio de aproximação encontrado e testar o resultado da aproximaçãopara valores de x em um intervalo [a, b] que contenha o ponto x0.

Confira o polinômio com o obtido pelo programa Mathematica, utilizando a função:

Series[Cos[x], {x, x0, n}]

onde n é o número de termos da série de Taylor a serem considerados.

Page 142: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 5 – Aproximação de Funções

134

Page 143: 34413174 Calculo Numerico en Portugues

135

Cálculo Numérico6. INTEGRAÇÃO NUMÉRICA

6.1 - Introdução

Neste capítulo estuda-se o problema de calcular, com uma precisão desejada, o valor de:

I f x dxa

b= ∫ ( )

Existem várias funções f(x) para as quais não é possível determinar o valor da integralanaliticamente. Por exemplo:

I e dxx= −∫2

0

1

Nestes casos, um método numérico (que calcula I de forma aproximada) é imprescindível.Mas, mesmo que exista uma forma analítica de calcular a integral, o cálculo de I pode sermuito trabalhoso e difícil, sendo preferível calcular I através de um método de integraçãonumérica (ou método de quadratura). Outras situações em que a integração numérica éimportante ocorrem quando:

− a função f(x) é conhecida apenas para um conjunto de pontos;− o problema aparece como um subproblema em um método numérico (como no caso de

regressão de funções contínuas, visto no capítulo anterior).

Os métodos de integração numérica realizam a seguinte aproximação:

I f x dx w f xa

b

i ii

n= ≅∫ ∑

=( ) ( )

0

onde os pontos xi ∈ [a, b] (i = 0,1, ..., n) e são tais que x0 < x1 < ... < xn. Os diversosmétodos de integração numérica conhecidos provêm das escolhas dos pesos wi e dospontos xi (i = 0,1, ..., n).

Exemplo: Determinar I e dxx=−∫1

1 pelos seguintes métodos numéricos:

a) [ ]1

31 4 0 1f f f( ) ( ) ( )− + +

b)1

95 3 5 8 0 5 3 5[ ( / ) ( ) ( / )]f f f− + +

Neste caso, tem-se:

Valor Correto Pela Regra (a) Pela Regra (b)2.35040 2.36205 2.35034

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

Page 144: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 6 – Integração Numérica

136

I f x dx R w f xa

b

i ii

n= =∫ ∑

=( ) ( )

0

Em geral, não é possível saber o valor de E, mas pode-se determinar um limite superiorpara o valor do erro, ou seja:

| E | ≤ M

para um valor M > 0. Diz-se que uma regra de quadratura tem precisão de grau m, se:

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

• E ≠ 0 para f(x) = xm+1

Exemplo.

I x dxx

i

i para i par

para i impar

ii

= =+

=

+

+

− −

∫1

1

1

1

1

1

2 1

0

/ ( ),

,

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

Integrando Correto Regra (a) Erro (a) Regra (b) Erro (b)1 2.00000 2.00000 0.0 2.00000 0.0x 0.00000 0.00000 0.0 0.00000 0.0

x2 0.66667 0.66667 0.0 0.66667 0.0

x3 0.00000 0.00000 0.0 0.00000 0.0

x4 0.40000 0.66667 -0.26667 0.40000 0.0

x5 0.00000 0.00000 0.0

x6 0.28571 0.24000 0.04571

Portanto: A regra (a) tem precisão de grau 3 e a regra (b) tem precisão de grau 5.

Uma regra de quadratura pode ser fixa ou adaptativa, dependendo da escolha dos pesoswi e dos pontos xi (i = 0,1, ..., n). Numa regra de quadratura fixa esta escolha não dependedo comportamento de f(x), mas apenas da regra a ser utilizada. Já na quadraturaadaptativa a escolha é feita de acordo com o comportamento de f(x), de modo que adensidade dos pontos xi seja maior onde a função varia mais intensamente, como ilustra afigura a seguir.

y

x

y = f(x)

Neste capítulo serão estudados os seguintes métodos de integração numérica:

Page 145: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 6 – Integração Numérica

137

Fórmulas de Newton-Cotes − os pontos ix (i = 0,1, ..., m) são igualmente

espaçados no intervalo [a, b] de integração, ouseja: x0 = a e hixx 0i += , com 1ii xxh −−= (i =

1,2, ..., m);− os pesos iw (i = 0,1, ..., m) são escolhidos a partir

do polinômio interpolador de grau m que passapelos pontos ix ;

− a regra é exata para polinômios de até grau m.Métodos de Extrapolação − são métodos que aceleram as fórmulas de

Newton-Cotes pela escolha de passos deintegração convenientes.

Fórmulas de Gauss − os pontos ix e os pesos iw (i = 0,1, ..., m) são

escolhidos de modo que a regra seja exata parapolinômios de até grau p = 2m+1;

− os pontos ix não são igualmente espaçados.

6.2 – Métodos de Newton-Cotes

A idéia básica dos métodos de Newton-Cotes é aproximar a função f(x) a um polinômio degrau m que passa por pontos ix (i = 0,1, ..., m) tais que a = x0 < x1 < ... < xm = b.

Dependendo do grau do polinômio, tem-se diversas regras de quadratura de Newton-Cotes.

O caso mais simples, quando o polinômio tem grau 0, é conhecido como regra dosretângulos.

REGRA DOS RETÂNGULOS

Nesta regra, para calcular I f x dxa

b= ∫ ( ) ,

y

xa b

I

y = f(x)

tem-se o seguinte procedimento:

Page 146: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 6 – Integração Numérica

138

• particionar o intervalo [a, b] em n subintervalos iguais tais que ax0 = , bx n = e

hxx 1ii =− − (constante);

• aproximar f(x), em cada subintervalo [xi, xi+1], a um polinômio de grau 0, ou seja, umaconstante, que pode ser:

a) ( )f xi (valor de f(x) no início do subintervalo),

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

c) fx xi i+ +

1

2 (valor de f(x) no meio do subintervalo)

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

(a)

y

x

a = x0 x3 = b

y = f(x)

x1 x2

(b)

y

x

a = x0 x3 = b

y = f(x)

x1 x2

Qualquer que seja o caso, o valor de I é aproximado à soma das áreas dos retângulos decada subintervalo, ou seja:

(a) I ≅ R = ( ) ( ) ( )x x f x hf xi i i ii

n

i

n

+=

=

−− = ∑∑ 1

0

1

0

1

(b) I ≅ R = ( ) ( ) ( )x x f x hf xi i i ii

n

i

n

+ + +=

=

−− = ∑∑ 1 1 1

0

1

0

1

(c) I ≅ R = ( ) ( ) ( )x x fx x

hfx x

i ii i i i

i

n

i

n

++ +

=

=

−−

+=

+∑∑ 1

1 1

0

1

0

1

2 2

Evidentemente, a escolha do passo h é importante na precisão do resultado, como ilustramas figuras a seguir:

y

x

a b

y = f(x)y

x

a b

y = f(x)

Page 147: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 6 – Integração Numérica

139

Ou seja, existe um compromisso entre esforço e precisão: quanto menor o passo h, maiorserá o esforço computacional, mas melhor será a aproximação.

REGRA DOS TRAPÉZIOS

A regra dos trapézios é uma extensão natural da regra dos retângulos, onde em cadasubintervalo considera-se um polinômio interpolador de grau 1, ou seja, uma reta. Portanto,na regra dos trapézios tem-se:

y

x

a b

y = f(x)

T1 T2 T3 T4

I f x dx Tii

n

a

b= ≅

=∑∫ ( )

1

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

Tx x

f x f xh

f x f xii i

i i i i=−

+ = +++ +

11 12 2

[ ( ) ( )] [ ( ) ( )]

Portanto:

Th

f x f xh

f x f xh

f x f xii

n

n n=

−∑ = + + + + + +1

0 1 1 2 12 2 2[ ( ) ( )] [ ( ) ( )] ... [ ( ) ( )]

ou seja:

Ih

f x f x f x f x f xn n≅ + + + + +−22 2 20 1 2 1[ ( ) ( ) ( ) ... ( ) ( )]

O erro de truncamento da regra dos trapézios é dado por:

| | | "( ) | ( , )Eb a

h f com a b=−

∈12

2 ξ ξ

Para estimar o valor do erro deve-se encontrar um valor M tal que | f"(x) | ≤ M, x ∈ [a, b]. Seisto for possível, pode-se escrever:

| |Eb a

h M≤−

122

Exemplo: Calcular I e dxx= ∫1

2, pela regra dos trapézios, tal que o erro de truncamento seja

menor que 310− .

Page 148: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 6 – Integração Numérica

140

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

xe)x(f = ⇒ xe)x(''f = . Logo, para x ∈ [1, 2], M = e2 = 7.39

Como:

| |.|

( ).E

b ah M h

E|

b a M≤

−⇒ ≤

−12

122

Portanto:

h ≤−

≅−12 10

2 1 7 390 04

3.( )

( ). ..

Assim, pela regra dos trapézios os seguintes pontos devem ser considerados:

x f(x) x f(x) x f(x) x f(x)1.00 2.7183 1.28 3.5966 1.56 4.7588 1.84 6.29651.04 2.8292 1.32 3.7434 1.60 4.9530 1.88 6.55351.08 2.9447 1.36 3.8962 1.64 5.1552 1.92 6.82101.12 3.0649 1.40 4.0552 1.68 5.3656 1.96 7.09931.16 3.1899 1.44 4.2207 1.72 5.5845 2.00 7.38911.20 3.3201 1.48 4.3929 1.76 5.81241.24 3.4556 1.52 4.5722 1.80 6.0496

Com estes pontos obtém-se os seguintes valores:

Valor Correto Regra dos Trapézios Erro4.6708 4.6714 0.0006

REGRA DE SIMPSON

Na regra de integração numérica de Simpson, aproxima-se a função f(x), a cada 3 pontos,a um polinômio de grau 2, ou seja:

y

xxi xi+1 xi+2

y = f(x)

Polinômio Interpolador P2(x)

Pelo polinômio de interpolação de Lagrange, tem-se:

p xx x x x

x x x xf x

x x x x

x x x xf x

x x x x

x x x xf xi i

i i i ii

i i

i i i ii

i i

i i i ii2

1 2

1 2

2

1 1 21

1

2 2 12( )

( )( )

( )( )( )

( )( )

( )( )( )

( )( )

( )(( )

)=

− −− −

+− −− −

+− −− −

+ +

+ +

+

+ + ++

+

+ + ++

Page 149: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 6 – Integração Numérica

141

e então:

f x dx p x dxx

x

x

x

i

i

i

i( ) ( )≅

++∫∫ 2

22

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

f x dxf x

h hx x x x dx

f x

h hx x x x dx

f x

h hx x x x dxi

i ix

x

h

x

xi

i ix

x

h

ii i

x

x

h

i

i

i

i

i

i

i

i( )

( )

( )( )( )( )

( )

( )( )( )( )

( )

( )( )( )( )≅

− −− − +

−− − + − −+ +

++

++

++ + +∫∫ ∫ ∫

2 21 2

2

3

12

4

3

21

2

3

2

3

2 2

3

2

31 244444 344444 1 24444 34444 1 24444 34444

ou seja:

f x dxh

f x f x f xx

x

i i ii

i( ) [ ( ) ( ) ( )]≅ + +

+∫ + +

2

34 1 2

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:

f x dxh

f x f x f xh

f x f x f xi

n

a

b

i i i i i ii

n( ) ( [ ( ) ( ) ( )]) [ ( ) ( ) ( )]

,2 ,2≅ + + = + + =

=+ + + +

=∑∫ ∑

01 2 1 2

034

34

= + + + + + + + + + =− −h

f x f x f xh

f x f x f xh

f x f x f xn n n34

34

340 1 2 2 3 4 2 1[ ( ) ( ) ( )] [ ( ) ( ) ( )] [ ( ) ( ) ( )]L

= + + + + + +− −h

f x f x f x f x f x f xn n n34 2 2 40 1 3 2 1[ ( ) ( ) ( ) ( ) ( ) ( )]L

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

| | | ( ) | ( , )Eb a

h f a biv≤−

∈180

4 ξ ξ

Exemplo: Resolver o problema anterior, usando o método de Simpson.

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

| |.|

( ).E

b ah M h

E|

b a M≤

−⇒ ≤

−180

1804 4

Portanto:

h ≤−

≅−180 10

2 1 7 390 4

34 .( )

( ). ..

Neste caso, o número de subintervalos é tal que:

nb a

h=

−=

−=

2 1

0 42 5

..

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

Page 150: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 6 – Integração Numérica

142

hb a

n=

−=

−=

2 1

40 25.

Assim, pela regra de Simpson, é suficiente considerar somente os seguintes pontos(comparar com os pontos necessários para a regra dos trapézios):

x f(x)1.00 2.71831.25 3.49031.50 4.48171.75 5.75462.00 7.3891

Com estes valores tem-se (comparar com os resultados obtidos pela regra dos trapézios):

Valor Correto Regra de Simpson Erro4.6708 4.6709 0.0001

FÓRMULA GERAL DAS QUADRATURAS NEWTONIANAS

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

f x dx p x dxxx

mxxm m( ) ( )

0 0∫ ∫≅

Do polinômio de interpolação de Gregory-Newton (ver Capítulo 4), tem-se:

p x y x xy

hx x x x

y

hx x x x x x

y

m hm m

m

m( ) ( ) ( )( ) ( )( ) ( )!

= + − + − − + + − − − −0 00

0 1

20

2 0 1 10

2

δ δ δL L

onde yi = f(xi). Seja zx x

h=

− 0 , com h = xi+1 - xi (i = 0,1, ..., m-1). Portanto, pode-se

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:

p x y hzy

hh z z

y

hh z z z m

y

m hm

mm

m( ) ( ) ( ) ( ( ))!

= + + − + + − − −00 2

20

201

21 1

δ δ δL L

ou seja:

p x yz

yz z

yz z z m

my a ym

mk

k

k

m( )

!

( )

!

( ) ( ( ))

!= + +

−+ +

− − −=

=∑0 0

20 0 0

01

1

2

1 1δ δ δ δL

L

Page 151: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 6 – Integração Numérica

143

onde:

az z z k

kk =− − −( ) ( ( ))

!

1 1L

Como zx x

h=

− 0 , então x = x0 + hz e portanto, dx = hdz. Além disto, nos limites de

integração tem-se:

• para x = x0 tem-se zx x

h=

−=0 0 0

• para x = xm tem-se zx x

h

x mh x

hmm=

−=

+ −=0 0 0

Portanto:

f x dx p x dx a y hdz h a y dzmx

x

x

x

kk

mmk

k

m

k

mk

mm

( ) ( ) ( )≅ = =∫∫ ∑∫ ∫∑= =00 00

000

0δ δ

onde o erro de truncamento Rm+1 é dado por:

R h a f hdz h f a dz com x xmm

mm m m

m

mm

m++

++ + +

+= = ∈∫∫11

11 2 1

100

0( ) ( )( )( ) ( ) ( , )ξ ξ ξ

Exemplo.

Seja m = 1. Neste caso, para o subintervalo [ 10 x,x ] tem-se:

f x dx h a y dz h a y dz a y dz h y dz y y zdzkkx

xk( ) [ ] [ ( ) ]≅ = + = + −∫∑∫ ∫ ∫ ∫ ∫

= 0

1

0

1

0 00

10

0 10

11

0 00

1

1 00

1

0

1

1δ δ δ

Mas:

1 10

1dz∫ =

zdzz

0

1 2

0

1

2

1

2

0

2

1

2∫ =

= − =

Logo:

f x dx h y y yh

y yh

f x f xx

x

( ) [ ( )] [ ] [ ( ) ( )]≅ + − = + = +∫0

1

0 1 0 0 1 0 11

2 2 2 (regra dos trapézios)

O erro de truncamento neste subintervalo é dado por:

E R h a f dz h fz z

dz0 1 23

20

13

0

1 1

2, "( ) "( )( )

= = =−∫ ∫ξ ξ

Mas:

Page 152: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 6 – Integração Numérica

144

z zdz z z dz

z z( )( )

−= − = −

= −∫ ∫1

2

1

2

1

2 3 2

1

120

12

0

1 3

0

1 2

0

1

ou seja:

Eh

f com x x0 1

3

0 112, "( ) ( , )= ∈ξ ξ

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

f x dxh

f x f xh

f x f xh

f x f xh

f x f xi

n

a

b

i i n n( ) [ ( ) ( )] [ ( ) ( )] [ ( ) ( )] ... [ ( ) ( )]≅ + = + + + + + +=

− −∑∫2 2 2 21

1 0 1 1 2 1

ou seja:

f x dxh

f x f x f x f x f xa

b

n n( ) [ ( ) ( ) ( ) ( ) ( )]≅ + + + + +∫ −22 2 20 1 2 1K

e o erro de truncamento total será dado por:

E Eh

f nh

fb a

h

hf

b ah fi i

i

n

i

n= = = =

−=

−−

= =∑ ∑1

1

3

1

3 32

12 12 12 12, "( ) "( ) "( ) "( )ξ ξ ξ ξ

Exemplo: Determinar o método de Simpson, fazendo m = 2 na fórmula geral dasquadraturas newtonianas.

Neste caso, tem-se:

f x dx h a y dzkk

kx

x

( ) = ∫∑∫=

δ 00

2

0

2

0

2

onde:

δ

δ δ δ

δ δ δ

00 0

10

01

00 1 0

20

11

10 2 1 1 0 2 1 02

y y

y y y y y

y y y y y y y y y y

=

= − = −

= − = − − − = − +( ) ( )

Logo:

{ {f x dx h y dz y y zdz y y y

z zdz

x

x

( ) ( ) ( )( )

= + − + − +−

∫ ∫ ∫∫ 00

2

2

1 00

2

2

2 1 00

2

1

3

1 21

20

2

1 24 34

= + − + − +

h y y y y y y2 2 21

3

2

3

1

30 1 0 2 1 0

Page 153: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 6 – Integração Numérica

145

[ ]=+ +

= + +hy y y h

y y y0 1 20 1 2

4

3 34 (Regra de Simpson)

Erro de Truncamento:

E R h f a dz h fz z z

dzT = = =− −

=∫ ∫34

30

24

0

2 1 2

3' ' ' ' ' '( ) ( )

( )( )

!ξ ξ

= − + = − +

=∫h f

z z z dzh f z

x z4

3 2

0

2 4 43 2

0

2

63 2

6 40

' ' ' ' ' '( )( )

( )ξ ξ

Portanto, o erro de truncamento para a regra de Simpson não depende de 3R , ou seja, é

exata para polinômios de até grau 3 (ver definição de precisão de uma regra dequadratura).

O erro na regra de Simpson, no intervalo [ 20 x,x ], é dado por:

E R h f a dzTiv= = ∫4

54

0

2( ) ( )ξ

Observar que o limite superior de integração é 2 (e não 3) porque se está considerando ointervalo [ 20 x,x ]. Portanto:

E h fz z z z

dzh f

z z z z dzTiv

iv

=− − −

= − + −∫ ∫5

0

2 54 3 2

0

21 2 3

4 246 11 6( )

( )

( )( )( )( )

!

( )( )ξ

ξ

Mas: ( )z z z z dzz z z z4 3 2

0

2 5 4 3 2

0

2

6 11 65

6

4

11

3

6

2

8

30− + − = − + −

=

−∫

Logo:

Eh f h

fT

iviv=

−= −

5 5

24

8

30 90

( )( )( )

( )ξ

ξ

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

f x dx f x dx f x dx f x dxx

x

a

b

x

x

x

x

m

m

( ) ( ) ( ) ( )= + + +∫∫ ∫ ∫−0

2

2

4

2

L

onde mb a

h=

−2

.

Logo:

Page 154: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 6 – Integração Numérica

146

f x dxh

y y yh

y y yh

y y ya

b

m m m( ) [ ] [ ] [ ]= + + + + + + + + +∫ − −34

34

340 1 2 2 3 4 2 1L

= + + + + + + + +− −h

y y y y y y y ym m m34 2 4 2 2 40 1 2 3 4 2 1[ ]L

com erro de truncamento:

E mRb a

h

hf

b ah f a bT

iv iv= =− −

= −

−≤ ≤4

54

2 90 180( ) ( )( )

( )( ) ( )ξ ξ ξ

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:

]yy3y3y2y2y3y3y2y3y3y[8

h3dx)x(f n1n2n3n6543210

b

a

+++++++++++= −−−∫ L

com h3

)ab(n

−= , e erro de truncamento dado por:

Eb a

h f a bTiv= −

−≤ ≤

( )( ) ( )( )

804 ξ ξ

6.3 – Métodos de Extrapolação

Os métodos de extrapolação (ou métodos de Richardson) baseiam-se em determinar o

valor de I f x dxa

b= ∫ ( ) através de aproximações T(h) tais que lim )

hT(h I

→=

0. O método de

Romberg aplica tal idéia à regra dos trapézios, utilizando o Teorema de Euler-MacLaurinpara expressar o erro de truncamento.

Teorema (Euler-MacLaurin). Se T(h) é aproximação de I f x dxa

b= ∫ ( ) com h

b a

m=

−, então o

erro de truncamento pode ser expresso como:

I T(h b h b h b hmm− = + + + +) ... ...1

22

4 2

onde:

[ ]bj

f a f bjj j j= −− −β2 2 1 2 1

2( )!( ) ( )( ) ( ) (j = 1,2, ..., m)

e os β2j (denominados números de Bernoulli) são tais que: β β01

1 0=

=

=−∑e

n

kk

n

n k ,

com n = 2,3, ...

Page 155: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 6 – Integração Numérica

147

Exemplo. Os primeiros números de Bernoulli são tais que:

n

kkk= ⇒

= ⇒

+

= ⇒ + = ⇒ = −

=− − −∑2

2

0

2

1

2

2

0 2 01

21

2

2 2 1 2 2 1 0 1β β β β β β

n

kkk= ⇒

= ⇒

+

+

= ⇒ + + = ⇒ =

=− − − −∑3

3

0

3

1

3

2

3

3

0 3 3 01

61

3

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

Pode-se observar que na expressão de Euler-MacLaurin, os b j (j = 1,2, ..., m) não

dependem de h. Seja então T j0, uma aproximação para I, obtida pela regra dos trapézios

com hb a

j j=−

2. Pelo teorema acima tem-se:

I T b h b h b hj j j j− = + + +0 12

24

36

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

Por outro lado, para hh

jj

+ =1 2, tem-se:

I T bh

bh

bh

jj j j

− =

+

+

++0 1 1

2

2

4

3

6

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

onde os bj (j = 0,1,2, ...) são os mesmos, pois independem de do valor de h. Portanto,pode-se escrever:

I T b h b h b hj j j j− = + + ++0 1 12

24

361

4

1

16

1

64, ... (j = 0,1,2, ...)

ou seja:

41

4

1

160 1 12

24

36( ) ...,I T b h b h b hj j j j− = + + ++ (j = 0,1,2, ...)

Subtraindo esta última expressão de (I - T j0, ) tem-se:

41

4

1

160 1 0 12

24

36( ) ( ) ( ...), ,I T I T b h b h b hj j j j j− − − = + + ++ - ( ...)b h b h b hj j j1

22

43

6+ + +

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

3 43

4

15

160, 1 0,2 4 3 6I T T

bh

bhj j j j− − = − − ++( ) L

Dividindo por 3:

IT T b

hb

hj j

c

j

c

j−−

=−

+−

++( )4

3

3

12

15

480, 1 0, 2 4 3 6

2 3

123 123L

ou seja:

IT T

c h c hj j

T

j j

j

−−

= + ++4

30, 1 0,

24

36

1,

1 244 344L

Page 156: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 6 – Integração Numérica

148

onde: cb

cb

22

333

12

15

48=

−=

−, , L (notar que como bi não depende de h, ci também

não depende de h). Portanto:

• T j0, e T j0 1, + são aproximações de I com erro da ordem de h j2

• T j1, , calculado como uma combinação linear de T j0, e T j0 1, + , é uma aproximação de I

com erro da ordem de h j4, ou seja, T j1, é uma aproximação melhor que qualquer uma

das aproximações anteriores T j0, ou T j0 1, + .

Em outras palavras, este esquema mostra como, a partir de duas aproximações de ordem

h j2 é possível determinar uma aproximação de ordem h j

4. Continuando este processo,

pode-se eliminar o termo em h j4 e construir uma aproximação de ordem h j

6.

Por exemplo:

I T c h c hj j j− = + +1 24

36

, L

I T ch

ch

c h c hjj j

j j− =

+

+ = + ++1 1 2

4

3

6

24

36

2 2

1

16

1

64, L L (j = 0,1,2, ...)

ou seja: 161

41 1 24

36( ),I T c h c hj j j− = + ++ L Subtraindo as duas expressões, tem-se:

161

41 1 1 24

36

24

36( ) ( ) ( ...) ( ...), ,I T I T c h c h c h c hj j j j j j− − − = + + − + ++

Portanto: IT T

d hj j

T

j

j

−−

= ++16

151 1 1

36

2

, ,

,

...1 244 344

com dc

333

4=

−, L

Em outras palavras, TT T

jj j

21 1 116

15,, ,

=−+

é uma aproximação de I com erro da ordem de

h j6.

Continuando desta maneira, pode-se eliminar termos h jk (k = 6,8, ...) e obter aproximações

cada vez melhores, que são calculadas sempre como combinações lineares deaproximações anteriores.

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

Dados T j0, (j = 0,1, ..., m), aproximações pela regra dos trapézios calculadas com passos

hb a

j=−

2, determinar novas aproximações por:

Page 157: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 6 – Integração Numérica

149

T T Ti j ii

i j i j, , ,( )=−

−− + −1

4 14 1 1 1

segundo o esquema:T T T

T T

T

0,0 1 2

0,1 11

0,2

,0 ,0

, M

M

M

Exemplo: Calcular I e dxx= ∫0

1 pelo método de Romberg, até que o erro seja menor do que

10 7− .

No método de Romberg o limitante do erro é dado por | E | ≤ | T Ti j i j+ −1, , |. Portanto, para

o caso acima tem-se:

i0 1 2 3

j h Ti, j0 1.000 1.7272219 1.7182841 1.7182818 1.71828181 0.500 1.7205186 1.7182819 1.71828182 0.250 1.7188411 1.71828183 0.125 1.7184216

6.4 – Quadratura de Gauss

Sejam I f x dx=−∫ ( )1

1 e )f(x w )f(x wG 2211 += . Considere a seguinte questão: "Quais

devem ser os pesos wi e os pontos xi de avaliação da função f(x) de forma que G seja umaaproximação com precisão de grau 3 para I (ou seja, de forma que G seja exata para

32 xe x x,1, f(x) = )?". Para responder esta questão, seja o seguinte sistema de equações

(não lineares):

f x w w dx( ) = ⇒ + = =−∫1 1 21 21

1

f x x w x w x xdx( ) = ⇒ + = =−∫1 1 2 21

10

f x x w x w x x dx( ) = ⇒ + = =−∫2

1 12

2 22 2

1

1 2

3

f x x w x w x x dx( ) = ⇒ + = =−∫3

1 13

2 23 3

1

10

Page 158: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 6 – Integração Numérica

150

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

3= − = − . Portanto, a regra de

quadratura:

G f f21

3

1

3= − +( ) ( )

é uma aproximação com precisão de grau 3 para I (quadratura de Gauss de 2 pontos).

Para uma regra de 3 pontos, tem-se:

)f(x w )f(x w )f(x w G 3322113 ++=

onde 321 w, w,w e 321 x, x,x são determinados de modo a se ter 3G exata para

5432 x, x, x, x x,1, f(x) = (ou seja, de modo a se ter uma regra com precisão de grau 5).

Neste caso, resolvendo-se o sistema de equações, tem-se:

w x

w x

w x

1 1

2 2

3 3

5

9

3

5

8

90

5

9

3

5

= = −

= =

= =

Portanto:

G f f f35

9

3

5

8

90

5

9

3

5= − + +( ) ( ) ( )

é uma regra de quadratura com precisão de grau 5 (quadratura de Gauss de 3 pontos).

Estas regras de quadratura são conhecidas como regras de Gauss-Legendre e procedendodesta forma pode-se determinar regras 4G (com precisão de grau 7), 5G (com precisão

de grau 9), e assim sucessivamente.

Como foi visto no Capítulo 4, os polinômios de Legendre podem ser definidosrecursivamente, como:

L xL x x

L xn

nxL x

n

nL x nn n n

01

1 2

1

2 1 12 3

( )( )

( ) ( ) ( ) , ,...

==

=−

−−

=− −

Exemplo. Polinômios de Legendre (x)L2 e (x)L3 :

n L x xL x L x x x x= ⇒ =−

−−

= − = −22 2 1

2

2 1

2

3

2

1

21

1

23 12 1 0

2( ).

( ) ( ) . . ( )

Page 159: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 6 – Integração Numérica

151

n L x xL x L x x x x x x= ⇒ =−

−−

= − − = −32 3 1

3

3 1

3

5

3

1

23 1

2

3

1

233 2 1

2 3( ).

( ) ( ) [ ( )] . (5 )

Pode-se notar que:

L x Raízes x x2 1 201

3

1

3( ) : ;= ⇒ = − =

L x Raízes x x x3 1 2 303

50

3

5( ) : ; ;= ⇒ = − = =

Teorema. Os pontos xi de avaliação de função para a regra de Gauss Gn são os zeros dopolinômio de Legendre de grau n. Além disto, os pesos wi são dados por:

wL x x

in i i

=−

1 2

12 2| ( ) |.' (i = 1,2, ..., n)

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

n L x x L x x

x x

w

w

= = − ⇒ =

= − =

= −− −

=−

= = =

=−

=−

= = =

21

23 1 3

1

3

1

3

1

31

3

2

11

3

1

3

2

11

3

1

3

22

3

1

33 1

1

31

3

2

11

3

1

3

2

11

3

1

3

22

3

1

33 1

22

2

1 2

12 2

22 2

( ) ( ) ( )

;

| . |.

( ). . .

| . |.

( ). . .

'

Exercício. Determinar a regra de Gauss de 3 pontos.

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

En

n nfn

nn=

+∈ −

+2

2 1 21 1

2 1 4

32

( )( )( !)

( )( !)( ) ( , )ξ ξ

Exemplo: Calcular I e dxx=−∫1

1 pela regra de Gauss de 4 pontos, dada por:

f(0.86113) 0.34785 f(0.33998) 0.65214 )f(-0.33998 0.65214 )f(-0.86113 0.34785 G4 +++=

Page 160: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 6 – Integração Numérica

152

Neste caso, tem-se:

3504021.20.861130.33998-0.33998-0.861134 e 0.34785 e 0.65214 e 0.65214 e 0.34785G =+++=

Por outro lado, analiticamente, tem-se:

[ ]I e dx e e ex x= = = − =− −

−∫1

1

1

1 1 1 2 3504023.

Pela expressão do erro de truncamento tem-se:

E f4

9 4

382 4

91 1= ∈ −

( !)

(8!)( ) ( , )( ) ξ ξ

Portanto, como f x ex( ) ( )8 = , f e( ) ( )8 1ξ ≤ . Com isto pode-se escrever:

E e4

9 4

31

8

142 4

9

1698 10

5899 102 718 0 0000007≤ =

×

×× =

( !)

(8!)

.

.. .

o que é coerente com os resultados acima.

Os pontos xi e os pesos w i (i = 1, 2, ..., n) para as regras de quadratura gaussiana sãoconhecidos e tabelados para vários valores de n. A tabela a seguir ilustra alguns destesvalores.

n xi w i

2 ±0.577350269189626 1.0000000000000003 0.000000000000000

±0.7745966692414830.8888888888888890.555555555555556

4 ±0.339981043584856±0.861136311594053

0.6521451543625460.347854854137454

5 0.000000000000000±0.538469310105683±0.906179745938664

0.5688888888888890.4786286704993650.236926885056189

6 ±0.238619186083197±0.661209386466265±0.932469514203152

0.4679139345726910.3607615730481390.171324492379170

7 0.000000000000000±0.405845151377397±0.741531185599394±0.949107912342759

0.4179591836734690.3818300505051190.2797053914892770.129484966168870

8 ±0.183434642495650±0.525532409916329±0.796666477413627±0.960289856497536

0.3626837833783620.3137066458778870.2223810344533740.101228536290376

Caso o intervalo de integração não seja o intervalo [-1, 1], será preciso fazer uma mudançade variável. Para um intervalo [a, b] a mudança necessária pode ser escrita como:

Page 161: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 6 – Integração Numérica

153

xb a

tb a

=−

++

2 2e consequentemente:

dxb a

dt=−2

Exemplo: Calcular I e dxx= ∫1

2 usando a regra de quadratura gaussiana de 4 pontos.

Neste caso, a mudança de variável necessária será:

x t t=−

+−

= +2 1

2

2 1

2

1

23( )

dx dt dt=−

=2 1

2

1

2

Portanto I e dx e dt e dtx t t

G

= = =∫ ∫ ∫+

+

−1

2 1

23

1

1 1

23

1

11

2

1

2

( ) ( )

1 24 34

O valor de G pode ser calculado como:

G e e e e= × + × + × + ×− + − + + +

0 34785 0 65214 0 65214 0 34785

1

20 86113 3

1

20 33998 3

1

20 33998 3

1

20 86113 3

. . . .( . ) ( . ) ( . ) ( . )

ou seja:

9.341448 2.397870 3.464242 2.465794 1.013542 e 0.34785 e 0.65214 e 0.65214 e 0.34785 G 1.9305651.669991.330011.069435

=+++=+++=

Assim, I G= = × =1

2

1

29 341448. 4.670724

Para comparar, analiticamente, sabe-se que: I e dx e ex= = − =∫1

22 1 4 670774.

Observação:

Existem outras regras de quadratura gaussiana, considerando os pontos x i (i = 1, 2, ..., n)como zeros de polinômios de Tchebyshev (quadratura de Gauss-Tchebyshev), depolinômios de Laguerre (quadratura de Gauss-Laguerre) ou de polinômios de Hermite(quadratura de Gauss-Hermite).

6.5 – Quadraturas Adaptativas

Seja f(x) uma função tal que no intervalo [ 10 x,x ] varia lentamente e no intervalo [ 21 x,x ]

varia rapidamente. Nos trechos em que esta função varia lentamente o espaçamento h

Page 162: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 6 – Integração Numérica

154

pode ser grande (sem comprometer a precisão), mas nos trechos em que a função variamuito, um espaçamento h grande pode levar a grandes erros.

A idéia 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 (eportanto um esforço computacional menor) onde o erro é pequeno.

Considere que deseja-se calcular uma aproximação S, pela regra de Simpson, para

I f x dxa

b= ∫ ( ) , de forma que:

a) I S− < εb) o número de avaliações de f(x) é o menor possível (notar que o número de avaliações

de f(x) depende de h).

Sejam h x xj j j= −+1 e I f x dxjx

x

j

j

=+

∫ ( )1

. Seja o valor de jI calculado pela regra de

Simpson com passo h denominado como S jh .

Assim, pela regra de Simpson com passo h j

2 tem-se:

[ ]Sh

f f fj

hj

j j j

j

21 2 16

4= + ++ +/

com erro de truncamento dado por:

I Sh

f x xj j

hj iv

j j

j

− = −

∈ +

25

11

90 2( ) ( ) [ , ]ξ ξ

Considere agora a aproximação obtida pela regra de Simpson com passo h j

4:

[ ]Sh

f f f f fj

hj

j j j j j

j

41 4 1 2 3 4 112

4 2 4= + + + ++ + + +/ / /

com erro de truncamento dado por:

I Sh

fh

fj j

hj iv

x x

j iv

x x

j

j j j j

− = −

∈ ∈+ + +

45

1

5

21

90 4

1

90 4

1 1 2 2 1 2 1

( )

[ , ]

( )

[ , ]

( ) ( )

/ /

ξ ξ

ξ ξ1 2444 3444 1 2444 3444

Seja f x M x x xivj j

( ) ( ) ( [ , ])≤ ∀ ∈ +1 . Então:

Page 163: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 6 – Integração Numérica

155

I S I Sh

Mh

Mh

Mj j

h

j j

hj j j

j j

− −

≤ −

− −

2 45 5 5

1

90 2

1

90 4

1

90 4

ou seja:

S Sh

Mh

Mh

Mj

h

j

hj j j

j j

4 25 5 5

32

90 4

2

90 4

30

90 4− = −

− −

= −

ou então:

= −

M hS S

jj

h

j

hj j

90 4

1

30

54 2

Portanto:

I SM h

S Sj j

hj

j

h

j

hj j j

− =−

= −

45

4 22

90 4

1

15

Para todo o intervalo [a, b] sejam os pontos: a x x x x bn n= =−1 2 1, , , ,L e seja:

I Sh

b aj nj j

hj

j

− ≤−

= −4 1 2 1ε

( )( , , , )L

onde ε corresponde à precisão desejada.

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

E I S I Sh

b a b ahT j j

h

j

n

j j

h

j

n j

j

n

jj

n

b a

j j

= −

≤ − ≤−

=−

==

=

=

=

∑ ∑ ∑ ∑4

1

14

1

1

1

1

1

1ε εε

( ) ( )

( )123

ou seja, se para cada intervalo h j, a aproximação obtida pela regra de Simpson com passo

h j

4 é tal que: I S

h

b aj j

hj

j

− ≤−

( ), então tem-se para o erro de truncamento total:

ET ≤ ε. Em outras palavras, para garantir que o erro de truncamento total esteja limitado

à precisão desejada, é necessário que:

1

154 2S S

h

b aj

h

j

hj

j j

≤−

ε

( )

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

Page 164: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 6 – Integração Numérica

156

Caso esta condição não seja satisfeita para algum subintervalo, divide-se este subintervaloao meio e assim sucessivamente.

Exemplo: Calcular Ix

dx= ∫ 1

1

9 com precisão ε = 0.001

Pelo gráfico a seguir:

1 2 3 4

x

2

4

6

8

y

pode-se notar que no trecho assinalado a função varia mais rapidamente, o que vai exigirum passo pequeno. Nos demais trechos, a função variando mais lentamente, poderáadmitir um passo maior.

No caso acima tem-se, inicialmente, )a - (b h 111 = = 9 - 1 = 8 e deve-se calcular:

Sh

f a f ah

f b

h

12 1

1 11

1

1

2

1

34

2

8

6

1

14

1

5

1

92 54815= + + +

= + +

=( ) ( ) ( ) .

Sh

f a f ah

f ah

f ah

f b

h

14 1

1 11

11

11

1

1

4

1

34

42

24

3

4= + + + + + + +

=( ) ( ) ( ) ( ) ( )

= + + + +

=8

12

1

14

1

32

1

54

1

7

1

92 27725.

Para verificar se esta aproximação satisfaz a precisão tem-se:

1

15

1

152 27725 2 54815 0 018061

412

1 1

S S

h h

− = − =. . .

h

b a1

1 10 001

εε

( ).

−= =

e portanto, como 1

15 14

12 1

1 1

1 1

S Sh

b a

h h

− >−ε

( ), a aproximação S1 não é satisfatória e o

intervalo [1, 9] deve ser dividido nos subintervalos [1, 5] e [5, 9].

Page 165: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 6 – Integração Numérica

157

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

S

h

222

4

6

1

54

1

7

1

9058836= + +

= .

S

h

242

4

12

1

54

1

62

1

74

1

8

1

90 58783= + + + +

= .

1

15

1

15058783 058836 0 0000353

4 0 001

9 50 0012

422 2

2 2

2 2

S Sh

b a

h h

− = − = <−

−=. . .

..

ε

Portanto:

Ix

dx= =∫ 1058783

5

9.

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

S

h

222

4

6

1

14

1

3

1

5168889= + +

= .

S

h

242

4

12

1

14

1

22

1

34

1

4

1

5162222= + + + +

= .

1

15

1

15162222 168889 0 004 0 0012

422 2

2 2

2 2

S Sh

b a

h h

− = − = >−

=. . . .ε

Portanto, o intervalo [1, 5] precisa ser dividido nos subintervalos [1, 3] e [3, 5] para atingir aprecisão desejada.

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

S

h

323

2

6

1

14

1

2

1

3111111= + +

= .

S

h

343

2

12

1

14

1

152

1

24

1

2 5

1

3110000= + + + +

=. .

.

1

15

1

15110000 111111 0 00074 0 0013

432 3

3 3

3 3

S Sh

b a

h h

− = − = <−

=. . . .ε

Page 166: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 6 – Integração Numérica

158

Portanto:

Ix

dx= =∫ 1110000

1

3.

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

S

h

323

2

6

1

34

1

4

1

5051111= + +

= .

S

h

343

2

12

1

34

1

352

1

44

1

4 5

1

5051084= + + + +

=. .

.

1

15

1

15051084 051111 0 000018 0 0013

432 3

3 3

3 3

S Sh

b a

h h

− = − = <−

=. . . .ε

Portanto:

Ix

dx= =∫ 1051084

3

5.

Logo:

Ix

dxx

dxx

dxx

dx= = + + = + + =∫ ∫ ∫ ∫1 1 1 1110000 051084 058783 219867

1

9

1

3

3

5

5

9. . . .

Para ilustrar, sabe-se que:

[ ]Ix

dx x= = =∫ 1219722

1

9

19

ln( ) .

EXERCÍCIOS RESOLVIDOS

1. Dada a função f(x) conhecida apenas para os pontos tabelados:

x 2.0 2.5 3.0 4.0 5.0 6.0 7.0 8.0 9.0 9.5f(x) 0.21 0.30 0.37 0.45 0.49 0.50 0.49 0.47 0.45 0.40

obter uma aproximação para a integral desta função no intervalo [2.0, 9.5], usando aregra de Simpson quando possível e a regra dos trapézios quando não for possívelaplicar a regra de Simpson.

Solução:

Para a aplicação da regra de Simpson é preciso ter um número par de subintervalos demesmo comprimento. Portanto pode-se aplicar a regra de Simpson para os intervalos:

[2.0, 3.0] com passo h = 0.5

Page 167: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 6 – Integração Numérica

159

[3.0, 9.0] com passo h = 1.0

Para o intervalo [9.0, 9.5] não é possível aplicar a regra de Simpson (S) devendo,portanto, ser usada a regra dos Trapézios (T), ou seja:

f x dx( )2.0

9.5∫ será calculada como: f x dx f x dx f x dx

S h S h T h

( ) ( ) ( ).

( . )

.

( . ( . )

2.0

3 0

0 5

3 0

9.0

10)

9.0

9.5

0 5

∫ ∫ ∫

= = =

+ +1 24 34 1 24 34 1 24 34

Assim:

[ ]f x dxh

f f f( ) ( . ) ( . ) ( . ).

[ . . . ] ..

2.0

3 0

32 0 4 2 5 3 0

05

30 21 4 0 30 0 37 0 30∫ = + + = + × + =

[ ]f x dxh

f f f f f f f( ) ( . ) ( . ) (5. ) ( . ) ( . ) (8. ) ( . ).3 0

9.0

330 4 4 0 2 0 4 6 0 2 7 0 4 0 9 0∫ = + + + + + + =

[ ]= + × + × + × + × + × + =10

30 37 4 0 45 2 0 49 4 050 2 0 49 4 0 47 0 45

.. . . . . . .

[ ]= + + + + + + =10

30 37 180 0 98 2 00 0 98 188 0 45 2 82

.. . . . . . . .

[ ]f x dxh

f f( ) ( . ) ( . ).

[ . . ] .9.0

9.5

39 0 9 5

0 5

30 45 0 40 014∫ = + = + =

Logo: f x dx( ) . . . .2.0

9.50 30 2 82 014 326∫ = + + =

2. Calcular I = e x dxx−∫0

πsen( ) usando o esquema de extrapolação de Romberg, de modo

que o erro absoluto entre duas aproximações sucessivas seja menor do que 0.01.

Solução:

O esquema de Romberg pode ser escrito como:

T T T

T T

T

0,0 1 2

0,1 11

0,2

,0 ,0

, M

M

Monde os valores de T j0, são obtidos através da regra dos trapézios com passos h =

b aj

2, e os demais valores de Ti j, são tais que: T T Ti j i

ii j i j, , ,[ ]=

−−− + −

1

4 14 1 1 1 .

Portanto, sendo f x e xx( ) sen( )= − ,

Page 168: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 6 – Integração Numérica

160

com h = π

π−

=0

20 , tem-se:

T f f0,0 20 15708 0 0 0= + = + =

ππ[ ( ) ( )] . [ ]

com h = π π−

=0

2 21 , tem-se:

T f f f0,1 40 2

20 7854 0 0 4158 0 0 3266= + + = + + =

π ππ[ ( ) ( ) ( )] . [ . ] .

por extrapolação, tem-se:

T T T1 0,1 0,01

4 14

1

34 0 3266 0 0 4354,0 [ ] [ . ] .=

−− = × − =

com h = π π−

=0

2 42 , tem-se:

T f f f f f0,2 80 2

42

22

3

40 3927 0 0 6448 0 4158 01340 0 0 4691= + + + + = + + + + =

π π π ππ[ ( ) ( ) ( ) ( ) ( )] . [ . . . ] .

por extrapolação, tem-se:

T T T11 0,2 0,11

4 14

1

34 0 4691 0 3266 05166, [ ] [ . . ] .=

−− = × − =

por extrapolação, tem-se:

T T T2 22

11 11

4 14

1

1516 0 5166 0 4354 05221,0 , ,0[ ] [ . . ] .=

−− = × − =

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.

EXERCÍCIOS PROPOSTOS

1. Dada a função f(x) conhecida apenas para os pontos tabelados:

x -0.20 -0.10 0.00 0.10 0.20 0.25 0.30 0.35 0.42 0.49f(x) 1.020 1.005 1.000 1.005 1.020 1.034 1.045 1.061 1.089 1.122

obter uma aproximação para a integral desta função no intervalo [-0.20, 0.49], usando aregra de Simpson quando possível e a regra dos trapézios quando não for possívelaplicar a regra de Simpson.

2. Dada a função f(x) conhecida apenas para os pontos tabelados:

x -0.20 -0.15 0.00 0.10 0.20 0.25 0.30 0.35 0.50 0.65f(x) 0.039 0.022 0.000 0.009 0.039 0.062 0.089 0.122 0.249 0.422

Page 169: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 6 – Integração Numérica

161

obter uma aproximação para a integral desta função no intervalo [-0.20, 0.65], usando aregra de Simpson quando possível e a regra dos trapézios quando não for possívelaplicar a regra de Simpson.

3. Determinar I = x x dx2

0

2π∫ sen( ) usando a regra de Simpson de modo que o erro seja

menor que 10 4− .

4. Calcular I = x x dx1

2∫ ln( ) usando a regra dos trapézios e o esquema de Romberg, de

modo a ter um resultado de ordem h6 .

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

6. Os métodos de integração numérica vistos podem ser usados também no cálculo deintegrais duplas. Considere, por exemplo, que deseja-se calcular:

I f x y dx dyR

= ∫∫ ( , )

onde R é a região de integração. Considere uma discretização da região R onde osvalores de x estão espaçados em m intervalos de tamanho h e os valores de y estãoespaçados em n intervalos de tamanho k. A figura a seguir ilustra esta discretizaçãopara m = 2 e n = 2.

x

y

R

x0 x1 x2

y0

y1

y2

h h

k

k

Nestas condições, I f x y dx dy f x y dy dxR

yy

xx= =

∫∫ ∫∫( , ) ( , )

02

02 . Seja então o método dos

trapézios. Tem-se então:

Page 170: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 6 – Integração Numérica

162

[ ]I f x y dy dxk

f x y f x y f x y dx

kf x y dx

kf x y dx

kf x y dx

yy

xx

xx

xx

xx

xx

=

≅ + +

=

= + +

∫∫ ∫

∫ ∫ ∫

( , ) ( , ) ( , ) ( , )

( , ) ( , ) ( , )

02

02

0 1 202

002

102

202

22

2

2

2 2

Mas:

[ ]

[ ]

[ ]

f x y dxh

f x y f x y f x y

f x y dxh

f x y f x y f x y

f x y dxh

f x y f x y f x y

xx

xx

xx

( , ) ( , ) ( , ) ( , )

( , ) ( , ) ( , ) ( , )

( , ) ( , ) ( , ) ( , )

002

0 0 1 0 2 0

102

0 1 1 1 2 1

202

0 2 1 2 2 2

22

22

22

= + +

= + +

= + +

Portanto, o valor de I, calculado pela regra dos trapézios, pode ser escrito como:

[ ]Ik h

f x y f x y f x y f x y f x y f x y f x y f x y f x y= + + + + + + + +2 2

2 2 4 2 20 0 1 0 2 0 0 1 1 1 2 1 0 2 1 2 2 2( , ) ( , ) ( , ) ( , ) ( , ) ( , ) ( , ) ( , ) ( , )

Empregando a abordagem acima, calcular:

a) I xy dx dy= ∫∫ 212

23

, com m = n = 3, pela regra dos trapézios.

b) I e dx dyx y= − −∫∫ 13

01

, com m = 4 e n = 2, pela regra de Simpson.

EXERCÍCIOS DE PROGRAMAÇÃO

1. A regra de Simpson para calcular I f x dxab= ∫ ( ) pode ser escrita como:

Ih

f x f x f x f x f x f x f x f xn n n= + + + + + + + +− −34 2 4 2 2 40 1 2 3 4 2 1[ ( ) ( ) ( ) ( ) ( ) ... ( ) ( ) ( )

com erro dado por: Eb a

h f iv=−

1804 ( )ξ , com ξ ∈ (a, b) e n

b a

h=

− deve ser um inteiro

par.

Fazer um programa para calcular I e sin x dxx= −∫ ( )0π

pelo metodo de Simpson, de

forma que o erro seja menor do que 0.0000001

2. Fazer um programa para resolver o problema do exercício anterior pelo método de

quadratura de Gauss, dada por: I w f xi ii

g=

=∑ ( )

1, onde g é a ordem do método. Para a

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

Abscissas Pesos-0.1834346424 0.3626837833-0.5255324099 0.3137066458

Page 171: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 6 – Integração Numérica

163

-0.7966664774 0.2223810344-0.9602898564 0.1012285362+0.1834346424 0.3626837833+0.5255324099 0.3137066458+0.7966664774 0.2223810344+0.9602898564 0.1012285362

Testar o resultado obtido com o programa Mathematica, usando as funções:

f[x_]=Exp[-x]*Sin[x]

NIntegrate[f[x], {x, 0, Pi}]

3. A regra dos trapézios com passo h para resolver o problema: I f x dxab= ∫ ( ) pode ser

escrita como:

Ih

f x f x f x f x f xn n≅ + + + + +−22 2 20 1 2 1[ ( ) ( ) ( ) ... ( ) ( )]

Implementar a regra dos trapézios na forma de uma função com os seguintesparâmetros:

I = TRAPEZIO(A,B,H)

onde: A e B são os limites de integração, H é o passo e I é o valor calculado para aintegral.

A seguir implementar o seguinte algoritmo para o cálculo de I com precisão ε:

1. Determinar a aproximação I1 para o valor da integral chamando a funçãoTRAPEZIO com passo h = b-a. Fazer T(1,1) = I1.

2. Fazer i = 1, j = 2 e k = j.3. Se i = 1 então determinar a aproximação I2 para o valor da integral chamando a

função TRAPEZIO com passo hb a

k=−−2 1 .

Caso contrário, determinar a aproximação I2 da seguinte maneira:

I T(i k T(i kii2

1

4 14 1 1 11

1=−

− + − −−−( , ) , )) .

4. Fazer T(i,k) = I2.5. Se | I2 - I1 | < ε então o valor I da integral é igual a I2 e o algoritmo termina.

Caso contrário, fazer:− I1 = I2− Se k = 1 então fazer i = 1, j = j + 1 e k = j. Caso contrário fazer i = i + 1 e k = k - 1.− Voltar ao passo 3.

Teste o programa na solução do seguinte problema:

== ∫π

− dx)x(sineI0

x 0.521607

4. A regra de Simpson para resolver o problema I f x dxa

b= ∫ ( ) pode ser escrita como:

Page 172: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 6 – Integração Numérica

164

I S hh

f f f f f fn n n≅ = + + + + + +− −( ) [ ]3

4 2 2 40 1 2 2 1L

onde:

• n é um inteiro par;• fi representa f(xi); e• S(h) indica a aproximação de Simpson com passo h.

Um relacionamento entre aproximações de Simpson e a precisão ε desejada para ovalor de I pode ser escrita como:

115

4 2[ ( / ) ( / )]S h S hh

b a− ≤

−ε

onde S(h/4) e S(h/2) são aproximações de Simpson com passo h/4 e h/2,respectivamente. Com esta relação pode-se estabelecer o seguinte algoritmo paradeterminar o valor de I:

1) Fazer inicialmente h = b-a2) Calcular as aproximações S(h/4) e S(h/2)3) Verificar se a relação acima está satisfeita. Caso esteja, o valor de S(h/4) é a

aproximação desejada para o valor de I. Se a relação não for satisfeita, dividir h aomeio e voltar ao passo 2.

Elaborar um programa que implemente este algoritmo. O cálculo das aproximações deSimpson deve ser feito por uma função, tendo o passo h como parâmetro. Mostrar ovalor de I e o valor do passo usado para obtê-lo.

Page 173: 34413174 Calculo Numerico en Portugues

165

Cálculo Numérico7. RESOLUÇÃO NUMÉRICA DE EQUAÇÕES DIFERENCIAIS ORDINÁRIAS

7.1 - Introdução

Muitos fenômenos físicos podem ser modelados através de equações diferenciais:equações que envolvem uma função e algumas de suas derivadas. Uma equação queenvolve derivadas de até ordem n é chamada equação diferencial de ordem n e pode serescrita como:

y x F x y x y x y x y x x a bn n( ) ( )( ) ( , ( ), ' ( ), "( ), ..., ( )) [ , ]= ∈−1 (7.1)

A solução desta equação é uma função y = f(x) definida em [a, b], com n derivadas e quesatisfaz a equação (7.1).

Exemplo. A solução da equação diferencial de 2ª ordem:

y '' = - y

é a função 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 função é de uma só variável (como no exemplo acima) tem-se uma equaçãodiferencial ordinária. Do contrário, tem-se uma equação diferencial parcial.

Exemplos:

a) 2 xy y' +=

b) 2y y' =c) 3 2x y' +=d) 17y 3y'- y" +=e) 0 xy' yy" =+

Em casos como o da equação (c), o problema se reduz a um problema de integração:

y ' = f(x) com f contínua em [a, b]cuja solução é dada por:

y f x dx c= +∫ ( )

integralindefinida

124 34

onde c é uma constante de integração. No caso (c), por exemplo, tem-se:

y x dx x x c= + = + +∫ ( )2 3 32

Portanto, como c pode ser uma constante qualquer, tem-se uma família de soluções, comoilustra a figura a seguir.

Page 174: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 7 – Resolução Numérica de Equações Diferenciais Ordinárias

166

-6 -4 -2 2

5

10

15

20

x

y

c = 1c = 3

c = 5

Se para a equação (c) for conhecido, por exemplo, que y(0) = 1 (condição inicial), então asolução da equação é unívoca, pois desta forma fica estabelecido o valor da constante c(no caso, c = 1). Em geral, para especificar uma das soluções de uma família de soluçõespara a equação (7.1) é preciso impor condições adicionais da forma:

y(a) = v1; y'(a) = v2; ...; y(n-1)(a) = vn (condições iniciais) (7.2)

A equação (7.1) com as condições (7.2) é denominada problema de valor inicial (PVI). Nasolução de um PVI, portanto, procura-se uma função y(x) que além de satisfazer a equaçãodiferencial para valores de x > a, atenda às condições iniciais pré-estabelecidas.

Outra categoria de problemas associada à equação (7.1) é a dos problemas de valor decontorno (PVC). Para um PVC, além de condições no início do fenômeno (ou seja,condições para x = a), tem-se também condições a serem satisfeitas no final do fenômenomodelado pela equação diferencial (ou seja, condições para x = b).

Infelizmente, dispõe-se de poucas técnicas matemáticas gerais que possibilitem soluçõesanalíticas de tais problemas. Por exemplo, para o problema de valor inicial:

22 y x y' += ; y(0) = 1

não se conhece uma técnica para obter uma solução analítica. Em casos assim, é precisoentão pensar em técnicas de aproximação. A solução aproximada do problema será umatabela de pontos: n} ..., 0,1, i ),y ,{(x ii = representando a função y = f(x) desconhecida.

Mesmo no caso de uma solução analítica ser possível, pode ser difícial avaliar f(x) para umdado valor de x. Por exemplo, o problema:

2xy 1 y' += ; y(0) = 0

tem como solução: y x e e dtx tx

( ) = −∫2 2

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

necessário usar uma regra de quadratura para avaliar a integral.

Neste capítulo serão estudados métodos numéricos de resolução de problemas de valorinicial e problemas de valor de contorno. Para problemas de valor inicial, osdesenvolvimentos e exemplos consideram apenas equações diferenciais de 1ª ordem.Deve-se, no entanto, observar que como uma equação diferencial de ordem n pode ser

Page 175: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 7 – Resolução Numérica de Equações Diferenciais Ordinárias

167

transformada facilmente em um sistema de n equações de 1ª ordem, utilizando mudançasde variáveis, tais desenvolvimentos podem ser facilmente estendidos a equações deordens mais altas.

Exemplo. Seja a equação: 1] [0, x 1, x y(x)e (x) xy' (x)''y' 2x ∈+++= , com as seguintes

condições iniciais:

1- (0)'y' 0 (0)y' 1 y(0) ===

Fazendo: y(x) (x)y1 = , (x)y' (x)y2 = e (x)'y' (x)y3 = tem-se o seguinte sistema:

1x)x(ye)x(xy)x('''y)x('y

)x(y)x(''y)x('y)x(y(x)y' (x)y'

21

x23

32

21

+++==

====

Portanto, a equação 1 x y(x)e (x) xy' (x)''y' 2x +++= , 1] [0, x ∈ , com as condições iniciais:

-1(0)'y' e 0(0)y' 1,y(0) === pode ser vista como um sistema de 3 equações de 1ª ordem:

1x)x(ye)x(xy)x('y

)x(y)x('y)x(y (x)y'

21

x23

32

21

+++=

==

com as condições iniciais: 1)0(y,0)0(y1,(0)y 321 −=== .

7.2 – Método de Euler

Seja a equação y)f(x, y' = com 00 y )y(x = e com passo de integração i1i x- xh += (i =

0,1, ...). Pelo Teorema de Taylor pode-se escrever:

y x y x h y x hy xh

y x xi i i i i i( ) ( ) ( ) ' ( ) "( ) ( , )+ += + = + + ∈1

2

12ξ ξ

Mas como ))y(x ,f(x )(xy' iii = e usando a notação: )y(x y jj = , tem-se:

)y ,h.f(x y y iii1i +≅+ (i = 0,1, ... )

Portanto, com esta expressão do método de Euler, conhecido o valor 0y (condição inicial)

é possível determinar outros valores yi (i = 1,2, ...) para a função y(x) nos pontos xi.Métodos como o de Euler em que os valores de yi podem ser obtidos diretamente sãodenominados métodos explícitos. Além disto, como yi é obtido através do pontoimediatamente precedente apenas, tal método é conhecido como de passo simples.

A interpretação gráfica do método de Euler é mostrada na figura a seguir:

Page 176: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 7 – Resolução Numérica de Equações Diferenciais Ordinárias

168

y

x

y = f(x)

xi xi+1

yi+1

yi

α

y x f x y tgy y

x x

y y

hy y hf x yi i i

i i

i i

i ii i i i' ( ) ( , ) ( , )= = =

−−

=−

⇒ = ++

+

++α 1

1

11

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 solução numérica pelo método 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 solução é dada pela seguinte tabela de pontos:

x y(x)1.0 1.001.1 1.501.2 2.021.3 2.561.4 3.121.5 3.70

Com h = 0.01, os valores obtidos serão mais precisos. A tabela a seguir mostra tais

valores, onde o valor correto é dado por: 3 -3x x 2 + .

x y(x) correto1.0 1.000 1.0001.1 1.509 1.5101.2 2.038 2.0401.3 2.587 2.5901.4 3.156 3.1601.5 3.747 3.750

Page 177: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 7 – Resolução Numérica de Equações Diferenciais Ordinárias

169

Para uma equação de ordem n, como comentado anteriormente, pode-se considerar umsistema de n equações diferenciais de 1ª ordem e aplicar o método de Euler a cada umadelas.

Exemplo. Seja o seguinte problema de valor inicial:

1- (0)y' 1; y(0) 0; x y; y" ==≥=

Fazendo a troca de variáveis: y' y y, y 2 1 == tem-se o seguinte sistema:

22111 y )y,y(x,f y' == (0)y1

12122 y)y,y(x,f y' == (0)y2

Considerando h = 0.2, pelo método de Euler tem-se:

1.00(0.0)y xy1.00(0.0)y xy

2)0(2

1)0(1−==

==

0.80)00.1(2.000.1))(x(y2.000.1))(xy),(xy,(xh.f xy(0.2)y xy

0.80)00.1(2.000.1))(x(y2.000.1))(xy),(xy,(xh.f xy(0.2)y xy

01

020102)0(22)1(2

02

020101)0(11)1(1

−=++−==+==

=−++==+==

−=

=

0.64)80.0(2.080.0))(x(y2.080.0))(xy),(xy,(xh.f xy(0.4)y xy

0.64)80.0(2.080.0))(x(y2.080.0))(xy),(xy,(xh.f xy(0.4)y xy

11

121112)1(22)2(2

12

121111)1(11)2(1

−=++−==+==

=−++==+==

−=

=

e assim sucessivamente.

Portanto, como y(x) y (x)1 = , os valores de )x(y i1 (i = 0,1, ...) representam aproximações

para a solução da equação diferencial. A tabela abaixo mostra estes valores para 4 casas

decimais, onde o valor correto é dado por: -xe

i ix )x(1 iy )x(2 iy correto

0 0.0 1.0000 -1.0000 1.00001 0.2 0.8000 -0.8000 0.81872 0.4 0.6400 -0.6400 0.67033 0.6 0.5120 -0.5120 0.54884 0.8 0.4096 -0.4096 0.44935 1.0 0.3277 -0.3277 0.3678

7.3 – Métodos Baseados na Série de Taylor

O método de Euler considera na série de Taylor apenas os termos até a derivada primeira.Outros métodos numéricos podem ser obtidos considerando-se mais termos da série. Sejay ' = f(x,y) com y x y( )0 0= , um problema de valor inicial com solução dada por y = F(x). Se

Page 178: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 7 – Resolução Numérica de Equações Diferenciais Ordinárias

170

a solução F(x) for suficientemente derivável, pode-se escrever a expansão de Taylor emtorno de x0 :

F x F xx x

F xx x

F xx x

nF x E

nn

T( ) ( )!

' ( )( )

!"( ) ...

( )

!( )( )= +

−+

−+ +

−+0

00

02

00

01 2

Mas:

''y)x(''y)x(''F'y)y,x(f)x('y)x('F

y)x(F

000

00000

00

=====

=

...

As derivadas y'', y''', ... não são conhecidas, uma vez que F(x) não é conhecida. Contudo,se f(x,y) for suficientemente derivável tais derivadas podem ser determinadas da seguintemaneira:

{ { {

{ {

y f x y x f

y f x y xf

y

dy

dx

f

xf f f

yf f

y

dy

dx

f f

x

f

y

dy

dx

f

xf f f f f f f f f

fy y f fx

y x

y

f

y x

f

xyy y xy x y xx

' ( , ( ))

" ' ( , ( )) .

( ).

( ).

'

( )

= =

= = + = +

= + + + = + + + +

=

∂∂

∂∂

∂∂∂

∂∂

3 2 2 2

e assim sucessivamente.

Exemplo: 2y x y' += com y(0) = 1.

Neste caso tem-se:

1 2yy' 1 )y 2y(x fff'y' 2xy +=++=+=

2y y'4y )2(y' 0 1.(2y) 2.0.y' y'(2y) )2(y' ''y' 2222 ++=++++=

Portanto, como 1 y(0) y0 == , tem-se:

1 1 0 )y ,f(x y' 2000 =+==

3 1 2.1.1 1 y'2y 'y' 000 =+=+=

8 2.1 .14.(1) 2.(1) 2y y')4(y )2(y' ''y' 2200

20

200 =++=++=

Logo:

Page 179: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 7 – Resolução Numérica de Equações Diferenciais Ordinárias

171

3232

T0

30

0

20

000

x3

4x

2

3x18.

6

)0x(3.

2

)0x(1).0x(1)x(y

E'''y!3

)xx(''y

!2

)xx('y)xx(y)x(y

+++=−

+−

+−+≅

+−

+−

+−+=

Exemplo: O problema de valor inicial 2y y' = ; x ∈ [0, 1]; y(0) = 0.25, tem como solução:

y xx

( ) =−1

4

Determinar o valor de y(0.2). Neste caso, pela série de Taylor pode-se escrever:

y x y xyx

yx

y( ) ' " ( )≅ + + +0 0

2

0

3

03

2 6Mas:

0.25 y0 =

0.0625 (0.25) )(y 'y 2200 ===

0.03125 0.0625)2.(0.25).( 0 y'2y f ff ''y 00xy0 ==+=+=

=++++=++++= 0 )0.(2y 2.0.y' y')(2y )2(y' f ff f2f ff ff '''y 0002

02

0xxyxxyy2

yy0 2

0.0234375 .(0.0625)0.25) (2. 2.(0.0625) 22 =+=

Portanto:

y(0.2) ≅ 0.25 + (0.2)(0.0625) + ( . )0 2

2

2

(0.03125) + ( . )0 2

6

3

(0.0234375) = 0.263156

O valor correto neste caso seria: y( . ).

.0 21

4 0 20 263157=

−=

7.4 – Métodos Baseados em Regras de Quadratura

Muitos métodos para solução de problemas de valor inicial podem ser obtidos a partir deregras de integração numérica, uma vez que para o problema:

y)f(x, (x)y' = com 00 y )y(x =pode-se escrever:

]y x dx y y x y x y yxi

xii i i

xi

xi

i' ( ) ( ) ( )= = − = −− −

−−∫

1 11

1

Por outro lado, pela regra dos trapézios tem-se:

Page 180: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 7 – Resolução Numérica de Equações Diferenciais Ordinárias

172

y x dxh

y x y x Exi

xi

i i T' ( ) [ ' ( ) ' ( )]= + +−

−∫2

11

Portanto: y yh

f x y f x yi i i i i i≅ + +− − −1 1 12[ ( , ) ( , )] é uma aproximação para o valor de y(x)

no ponto x = xi.

Deve-se notar que esta aproximação, baseada na regra dos trapézios, constitui umesquema de passo simples (o valor de yi depende de apenas um valor anterior yi-1).Entretanto este esquema é implícito, uma vez que o valor de yi depende do próprio valor yi.Portanto, neste caso, será necessário um processo iterativo para determinar o valor de yi (i= 1,2, ...).

Para que yi seja obtido iterativamente é necessário uma estimativa inicial yi[0]

. Muitas

escolhas são possíveis para a estimativa inicial. Alguns exemplos são:

• o valor anterior yi-1• o valor de yi obtido pelo método de Euler: )y ,h.f(x y 1-i1-i1-i +

Dado um valor para yi[0]

, tem-se o seguinte esquema iterativo:

y yh

f x y f x y nin

i i i i in[ ] [ ]

[ ( , ) ( , )] ( , ,...)= + + =− − −−

1 1 11

21 2

ou seja:

y y onde y yh

f x yh

f x yin

in

i i i i i i[ ] [ ]

( ) : ( ) ( , ) ( , )= = + +−− − −φ φ1

1 1 12 2independe de yi

1 24444 34444

Pelo teorema de convergência para a iteração funcional (ver Capítulo 2 - Método de PontoFixo), deve-se ter:

d

dy i

φ< 1

para que haja convergência do processo iterativo. Portanto, deve-se ter que:

d

dy

h f x y

yix x jy y j

φ ∂∂

= <==

21

( , )

ou seja, para garantir a convergência do processo iterativo, o passo h deverá ser tal que:

hf x y

y x x jy y j

<

==

2

∂∂( , )

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

Page 181: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 7 – Resolução Numérica de Equações Diferenciais Ordinárias

173

Neste caso: ∂∂

f

yy h

yh

y= ⇒ < ⇒ <2

2

2

1. Tomando y(0) como uma estimativa

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

0 254

.. Assim, a escolha h = 0.2 deve ser suficiente

para garantir a convergência do processo iterativo. Então:0.25 y0 =

)y,x(hfyy 000]0[

1 += (estimativa inicial pelo método de Euler) = 2625.0)25.0(2.025.0 2 =+

Seja ε = 0.00001

263176.0])263176.0()25.0[(2

2.025.0y

263176.0])263174.0()25.0[(2

2.025.0y

263174.0])263141.0()25.0[(2

2.025.0y

263141.0])2625.0()25.0[(2

2.025.0y

22]4[1

22]3[1

22]2[1

22]1[1

=++=

=++=

=++=

=++=

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

.0 21

4 0 20 263157=

−= ).

7.5 – Métodos de Runge-Kutta

Os métodos numéricos de resolução de equações diferenciais ordinárias vistos até aquitem pouca importância prática. O método de Euler requer um passo muito pequeno paraalcançar uma precisão razoável e o método baseado na série de Taylor (uma extensão dométodo de Euler) tem a desvantagem de requerer a forma algébrica de sucessivasderivadas de f(x,y). Já o método baseado na regra dos trapézios, por constituir umesquema implícito, requer um processo iterativo para determinar cada uma dasaproximações yi.

Os métodos de Runge-Kutta, ao contrário, são muito empregados na prática pois possuemas seguintes características:

• são auto-inicializáveis, ou seja, a partir da condição inicial é possível conhecer osdemais pontos da solução;

• não requerem o cálculo de derivadas;• permitem, facilmente, a alteração do tamanho do passo h;• utilizam n avaliações da função a cada passo, onde n é o grau do método.

Pela série de Taylor tem-se:

y y x y x h y x hy xh

y x Ei i i i i i T+ += = + = + + +1 1

2

2( ) ( ) ( ) ' ( ) "( )

Como y'(x) = f(x,y) tem-se:

Page 182: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 7 – Resolução Numérica de Equações Diferenciais Ordinárias

174

y y x hf x yh df x y

dxi i i ix xi

+=

≅ + +1

2

2( ) ( , )

( , )

Para calcular df x y

dx

( , ) seja o polinômio interpolador de 1º grau no intervalo [xi, xi+1]:

)]x(y)xx()x(y)xx[(h

1)x(y.

xx

xx)x(y.

xx

xx)x(p i1i1ii1i

h

i1i

ii

h

1ii

1i+++

+−

+

+ −−−=−

−+

−−

=4342143421

Portanto:

p xh

y x y xi i' ( ) [ ( ) ( )]= −+1

1

Usando este resultado, pode-se escrever:

)]y,x(f)y,x(f[h

1

dx

)y,x(dfii1i1i −≅ ++

Então:

y y x hf x yh

hf x y f x y y

hf x y

hf x yi i i i i i i i i i i i i+ + + + +≅ + + − = + +1

2

1 1 1 12

1

2 2( ) ( , ) . [ ( , ) ( , )] ( , ) ( , )

Mas, pelo método de Euler, tem-se: yi+1 = yi + hf(xi,yi) e portanto: f(xi+1,yi+1) = f(xi+1,hf(xi,yi)). Então:

y yh

f x y f x y hf x yi i i i i i i i+ += + + +1 12[ ( , ) ( , ( , ))]

Fazendo:

k hf x yk hf x y hf x y hf x y k

i i

i i i i i i

1

2 1 1 1

== + = ++ +

( , )( , ( , )) ( , )

tem-se:

y y k ki i+ = + +1 1 21

2[ ] (método 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 0.0 2.00000 -0.40000 -0.280001 0.2 1.66000 -0.29200 -0.193602 0.4 1.41720 -0.20344 -0.122753 0.6 1.25410 -0.13082 -0.064664 0.8 1.15636 -0.07127 -0.017025 1.0 1.11222 - -

Exemplo. Usar o método de Runge-Kutta de 2º grau para resolver o seguinte problema:

Page 183: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 7 – Resolução Numérica de Equações Diferenciais Ordinárias

175

2.0h0.0)0('y;0.1)0(y]1,0[x;yx''y ===∈+=

Como trata-se de um problema de 2ª ordem, devemos transformá-lo em um sistema de 2equações diferenciais de 1ª ordem. Para isso, pode-se usar a seguinte troca de variáveis:

'yyeyy 21 ==Com essa troca de variáveis, tem-se o seguinte sistema de equações:

0)0(y

1)0(y

yx)y,y,x(f'y

y)y,y,x(f'y

yx''y'y

y'y

2

1

12122

22111

12

21

==

+====

+===

Portanto, os próximos pontos da solução podem ser calculados como:

para x = 0.2 temos:

)k)0.0(y(2.0)k)0.0(y,k)0.0(y,h0.0(hfk

0)0.0(y2.0))0.0(y),0.0(y,0.0(hfk

)kk(2

1)0.0(y)2.0(y

212

212

1111

12

221111

12

1111

+=+++=

===

++=

)k)0.0(y2.0(2.0)k)0.0(y,k)0.0(y,h0.0(hfk

2.0)10(2.0))0.0(y0.0(2.0))0.0(y),0.0(y,0.0(hfk

)kk(2

1)0.0(y)2.0(y

111

212

1112

22

121221

22

2122

++=+++=

=+=+==

++=

Substituindo os valores conhecidos, tem-se:

02.1)04.00(2

11)kk(

2

1)0.0(y)2.0(y

04.0)2.00(2.0)k)0.0(y(2.0k

0k

12

1111

212

12

11

=++=++=

=+=+=

=

22.0)24.02.0(2

10)kk(

2

1)0.0(y)2.0(y

24.0)012.0(2.0)k)0.0(y2.0(2.0k

2.0k

22

2122

111

22

21

=++=++=

=++=++=

=

para x = 0.4 temos:

)k)2.0(y(2.0)k)2.0(y,k)2.0(y,h2.0(hfk

044.0)22.0(2.0)2.0(y2.0))2.0(y),2.0(y,2.0(hfk

)kk(2

1)2.0(y)4.0(y

212

212

1111

12

221111

12

1111

+=+++=

====

++=

Page 184: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 7 – Resolução Numérica de Equações Diferenciais Ordinárias

176

)k)2.0(y4.0(2.0)k)2.0(y,k)2.0(y,h2.0(hfk

244.0)02.12.0(2.0))2.0(y2.0(2.0))2.0(y),2.0(y,2.0(hfk

)kk(2

1)2.0(y)4.0(y

111

212

1112

22

121221

22

2122

++=+++=

=+=+==

++=

Substituindo os valores conhecidos, tem-se:

0884.1)0928.0044.0(2

102.1)kk(

2

1)2.0(y)4.0(y

0928.0)244.022.0(2.0)k)2.0(y(2.0k

044.0k

12

1111

212

12

11

=++=++=

=+=+=

=

4884.0)2928.0244.0(2

122.0)kk(

2

1)2.0(y)4.0(y

2928.0)044.002.14.0(2.0)k)2.0(y4.0(2.0k

244.0k

22

2122

111

22

21

=++=++=

=++=++=

=

e assim sucessivamente para os demais valores de x = 0.6, 0.8 e 1.0.

Ou seja, a solução pode ser resumida na seguinte tabela (observe que como yy1 = , a

solução numérica corresponde à coluna de )x(y i1 ):

i ix )x(y i1 )x(y i2 correto = ix xe i −

0 0.0 1.0000 0.0000 1.00001 0.2 1.0200 0.2200 1.02142 0.4 1.0884 0.4884 1.09183 0.64 0.85 1.0

Exercício. Completar a tabela acima.

De uma forma geral, os métodos de Runge-Kutta são estabelecidos como:

y y w ki i ii

n

i+=

= + ∑11

onde:

k hf x h y k i ni j i j i p pp

i= + + =

=

−∑( , ) ( , ,..., ),θ φ

1

11 2

e os coeficientes wi, θi e φ i p, (i = 1,2, ..., n; p = 1,2, ..., i-1) são escolhidos de modo que a

expansão de yi+1 pela série de Taylor considere até n termos.

Para n = 2 (método de Runge-Kutta de 2º grau) tem-se:

Page 185: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 7 – Resolução Numérica de Equações Diferenciais Ordinárias

177

y y w k y w k w ki i ii

i i+=

= + = + +∑11

2

1 1 2 2

com:1/2 w w 21 == ; 1 , 0 21 =θ=θ ; 1 2,1 =φ

{{

{{

{

y y hf x h y hf x h y k

y hf x y hf x y k

i i

w

i i

kw

i i p pp

k

i i i i i

+=

+

= + + + + + =

= + + +

∑1

11

12

22

1

2 1

2

12 1

1

1

20

1

21

1

2

1

21

( , ) ( , )

( , ) ( , )

,

,

θ θ

φ

φ

1 244 344 1 244444 344444

Para n = 3 (método de Runge-Kutta de 3º grau) tem-se:

y y w k y w k w k w ki i ii

i i+=

= + = + + +∑11

3

1 1 2 2 3 3

com:k hf x h yk hf x h y kk hf x h y k k

i i

i i

i i

1 1

2 2 2 1 1

3 3 3 1 1 3 2

= += + += + + +

( , )( , )( , )

,

, ,2

θθ φθ φ φ

onde:

w w w1 2 3

1 2 3

2 1 3 1 3

1

6

2

3

1

6

01

21

1

21 2

= = =

= = =

= = − =

θ θ θ

φ φ φ, , ,2

ou seja:

y y k k ki i+ = + + +1 1 2 31

64[ ]

com:k hf x y

k hf xh

yk

k hf x h y k k

i i

i i

i i

1

21

3 1 2

2 22

=

= + +

= + − +

( , )

( , )

( , )

Um dos métodos Runge-Kutta mais utilizados é o de 4º grau, dado por:

y y k k k ki i+ = + + + +1 1 2 3 41

62 2[ ]

com:k hf x y

k hf xh

yk

k hf xh

yk

k hf x h y k

i i

i i

i i

i i

1

21

32

4 3

2 2

2 2

=

= + +

= + +

= + +

( , )

( , )

( , )

( , )

Page 186: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 7 – Resolução Numérica de Equações Diferenciais Ordinárias

178

Observação:

Seja y' = f(x) (ou seja, o lado direito da equação diferencial é uma função que nãodepende de y(x)). Neste caso, para o método de Runge-Kutta de 3º grau tem-se:

k hf x k hf xh

k hf x hi i i1 2 32= = + = +( ) ( ) ( )

e portanto:

y yh

f x f xh

f x hi i i i i+ = + + + + +1 64

2[ ( ) ( ) ( )]

Por outro lado:

f x dx y x dx y yi ixi

xi

xi

xi( ) ' ( )= = −+

++∫∫ 1

11

Logo:

f x dxh

f x f xh

f x hxi

xi

i i i( ) [ ( ) ( ) ( )]= + + + ++∫

64

2

1

que corresponde à regra de quadratura de Simpson com passo h2

.

7.6 – Métodos de Passo Múltiplo

Os métodos de resolução de equações diferenciais ordinárias vistos anteriormente sãotodos de passo único, isto é, para calcular yi+1 leva-se em conta apenas os valores def(x,y) em torno do ponto anterior yi. Os métodos de passo múltiplo levam em conta nãoapenas o valor de yi como também pontos anteriores yi-1, yi-2, ..., yi-k+1 (método de k-passos).

A fórmula geral de um método de k-passos é dada por:

y y h f x yi j i jj

k

j i j i j

fi jj

k

+ − +=

− + − +

− +=

= +∑ ∑1 11

1 1

10

α β ( , )1 2444 3444

Dependendo do valor de β0 tem-se duas classes de métodos de passo múltiplo: métodosexplícitos e métodos implícitos.

Se β0 = 0 então:

y y h f y y y h f f fi j i jj

k

j i jj

k

i i k i k i i k i k+ − +=

− +=

− − + − − += + = + + + + + + +∑ ∑1 11

11

1 2 1 1 1 2 1 1α β α α α β β β( ... ) ( ... )

ou seja, para determinar o próximo ponto da solução, yi+1, são necessários os k valoresanteriores da solução: yi, yi-1, yi-2, ..., yi-k+1, além dos respectivos valores de f(xj, yj) (j = i,i-1, i-2, ..., i-k+1). Portanto, quando β0 = 0 tem-se um método explícito de passo múltiplo.

Se β0 ≠ 0 então, além destes pontos será necessário também o valor de fi+1. Neste caso,para calcular yi+1 será preciso um esquema iterativo levando, portanto, a um métodoimplícito de passo múltiplo.

Page 187: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 7 – Resolução Numérica de Equações Diferenciais Ordinárias

179

MÉTODOS EXPLÍCITOS DE PASSO MÚLTIPLO

Dada a equação y' = f(x,y(x)) pode-se obter por integração:

y x y x f x y x dxi ixi

xi( ) ( ) ( , ( ))+

+= + ∫1

1

Supondo já conhecidos os valores anteriores y j (j = i, i-1, ..., i-k+1), pode-se substituir

f(x,y(x)) por um polinômio interpolador que passa por estes pontos anteriores. Neste casotem-se uma família de métodos (dependendo da escolha do grau do polinômio) pararesolver a equação diferencial conhecidos como métodos de Adams-Bashforth.

Para k = 2, o polinômio é do 1º grau e tem-se um método de 2º grau:

y yx x

x xf

x x

x xf dx y

hf x x dx f x x dxi i

i

i ixi

xi

ii

i ii i i i i i

xi

xi

xi

xi

+−

+

−−

−− −

++= +

−−

+−−

= + − − −∫ ∫∫11

1

11

11 1

111[

( )

( ).

( )

( ). ] [ ( ) ( ) ]

Essas integrais podem ser calculadas facilmente. Por exemplo:

=−−−=−=− +−+

−+

++

∫ )xx(x2

x

2

xx.x

2

xdx)xx( i1i1i

2i

21ix

x1i

x

x

2x

xi

1i

i

1i

i

1i

i

=++−−−

=+−− −−+−+−++−+−+

2

xxxxxxxxxxxx

2

xx2xx2xx i1ii1i1i1i1i1iii1i1ii1i1i1i2i

21i

=−−

=−+−+− −++−−−++

2

hxhxhx2

2

)xx(x)xx(x)xx(x 1ii1i1ii1ii1ii1i1i1i

2

h3

2

)h(h)h2(h

2

)xx(h)xx(h

2

hxhxhxhx 2i1i1i1i1ii1i1i =

+=

−+−=

−−+ +−+−++

Assim:

y yh

hf

hf y

hf fi i i i i i i+ − −= + − = + −1

2 2

1 11 3

2 2 23[ ] [ ]

Notar que, considerando a forma geral vista anteriormente, o método de Adams-Bashforthde 2º grau pode ser escrito como:

y y y h f fi i i i i+ − −= + + +1 1 2 1 1 2 1α α β β[ ]

onde: α1 = 1 ; α2 = 0 ; β1 = 3/2 ; β2 = -1/2

Para k = 3, o polinômio é do 2º grau e tem-se o método de Adams-Bashforth de 3º grau:

y yh

f f fi i i i i+ − −= + − +1 1 21223 16 5[ ]

Page 188: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 7 – Resolução Numérica de Equações Diferenciais Ordinárias

180

Para k = 4, o polinômio é do 3º grau e tem-se o método de Adams-Bashforth de 4º grau:

y yh

f f f fi i i i i i+ − − −= + − + −1 1 2 32455 59 37 9[ ]

Para k = 5, o polinômio é do 4º grau e tem-se o método de Adams-Bashforth de 5º grau:

y yh

f f f f fi i i i i i i+ − − − −= + − + − +1 1 2 3 47201901 2774 2616 1274 251[ ]

Observações Importantes:

• Pode-se notar que, à medida que aumenta o grau do polinômio interpolador, aumentamos coeficientes de f j (j = i, i-1, i-2, ..., i-k+1) e portanto o método torna-se mais sensível

a erros de arredondamento.

• Os métodos de Adams-Bashforth não são auto-inicializáveis, porque necessitam de umconjunto de k pontos anteriores da solução para que possam ser aplicados (de início,tem-se apenas um ponto da solução: a condição inicial). Portanto, para aplicar ummétodo de Adams-Bashforth é preciso, primeiramente, obter este conjunto inicial de kpontos através de um método de passo único.

MÉTODOS IMPLÍCITOS DE PASSO MÚLTIPLO

Os métodos implícitos de passo múltiplo são obtidos da mesma forma que os métodosexplícitos, só que agora, β0 ≠ 0. Tais métodos são conhecidos como métodos de Adams-Moulton.

Para k = 2 (método de Adams-Moulton de 2º grau):

y yx x

x xf

x x

x xf dx y

hf x x dx f x x dxi i

i

i ii

i

i ii i

x i

xi

i i i ixi

xi

xi

xi

++

+ ++

+

+ +

++= +

−−

+−

−= + − − −∫ ∫∫1

1

1 11

1

1 1

111[

( )

( )

( )

( )] [ ( ) ( ) ]

ou seja:

y yh

f fi i i i+ += + +1 12[ ]

Para k = 3 (método de Adams-Moulton de 3º grau):

y yh

f f fi i i i i+ + −= + + −1 1 1125 8[ ]

Para k = 4 (método de Adams-Moulton de 4º grau):

y yh

f f f fi i i i i i+ + − −= + + − +1 1 1 2249 19 5[ ]

Para k = 5 (método de Adams-Moulton de 5º grau):

y yh

f f f f fi i i i i i i+ + − − −= + + − + −1 1 1 2 3720251 646 264 106 19[ ]

Page 189: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 7 – Resolução Numérica de Equações Diferenciais Ordinárias

181

Observação:

• Pode-se notar que as fórmulas implícitas são menos sensíveis a erros dearredondamento (pois os coeficientes são menores) do que as fórmulas explícitas, masnecessitam iteração.

7.7 – Métodos de Previsão e Correção

Os métodos de passo múltiplo possuem algumas características interessantes:

• Os métodos implícitos são menos sujeitos a erros de arredondamento e apresentamlimites de erro de truncamento menores que os métodos explícitos de mesmo grau.Entretanto, nos métodos implícitos o cálculo de yi+1 requer o valor de fi+1 e, portanto,um processo iterativo.

• Já os métodos explícitos tem a vantagem de poder calcular yi+1 somente com base emvalores anteriores da solução.

Pode-se, então, combinar estes dois tipos de métodos de modo a empregar as vantagensde cada um. Esta combinação é conhecida como método de previsão e correção, quecorresponde a:

• inicializar o processo por um método de passo único (por exemplo, Runge-Kutta);• calcular o valor de yi+1 pelo método de passo múltiplo explícito (valor previsto);• recalcular o valor de yi+1 usando o método de passo múltiplo implícito de mesmo grau

(valor corrigido).

Portanto, nos métodos de previsão e correção, o método explícito (método de Adams-Bashforth) é usado como fórmula previsora e o método implícito (método de Adams-Moulton) corresponde à fórmula corretora.

Exemplo: y ' = y2 ; y(0) = 0.25 ; x ∈ [0, 1] ; h = 0.2

(a) Inicialização: cálculo de y1 (Runge-Kutta de 2º grau)

y y k k

k hf x y

k hf x y k

Logo y

1 0 1 2

1 0 02

2 1 0 12

1

1

20 2 0 25 0 012500

0 2 0 25 0 012500 0 013781

0 251

20 012500 0 013781 0 263141

= + +

= = =

= + = + =

= + + =

[ ]

( , ) . ( . ) .

( , ) . ( . . ) .

: . [ . . ] .

(b) Previsão: cálculo de 2y (Adams-Bashforth de 2º grau)

y yh

f f2 1 1 02 2

23 0 263141

0 2

23 0 263141 0 25 0 277664= + − = + − =[ ] .

.[ .( . ) ( . ) ] .

(c) Correção: cálculo de 2y (Adams-Moulton de 2º grau)

y yh

f f2 1 2 12 2

20 263141

0 2

20 277664 0 263141 0 277775= + + = + + =[ ] .

.[( . ) ( . ) ] .

Page 190: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 7 – Resolução Numérica de Equações Diferenciais Ordinárias

182

Neste caso, o valor correto é: y y2 0 41

4 0 40 277778= =

−=( . )

..

Deve-se observar que o passo de correção pode ser executado várias vezes, até que seconsega um resultado considerado satisfatório.

7.8 – Método das Diferenças Finitas

No Capítulo 5 mostrou-se como obter aproximações de funções a partir dodesenvolvimento em série de Taylor. Basicamente, para uma função y(x) em torno doponto x = x i , pode-se escrever:

y x y x x x y xx x

y xi i ii

i( ) ( ) ( ) ' ( )( )

!"( ) ...= + − +

−+

2

2(7.3)

Portanto o valor de y(x) no ponto x = x i+1 = x i+ h, pode ser escrito como:

y x y x x x y xx x

y x

y x hy xh

y x

i i i i ii i

i

i i i

( ) ( ) ( ) ' ( )( )

!"( ) ...

( ) ' ( ) "( ) ...

+ ++

+

= + − +−

+

= + +

1 11

2

22

2ou seja:

y x y x

hy x

hy xi i

i i( ) ( )

' ( ) "( ) ...+ −= + +1

2

Tem-se, portanto:

y xy x y x

hii i' ( )

( ) ( )=

−++1 O(h)

onde O(h) (lido como ordem de h) indica que a magnitude dos termos restantes depende daordem de grandeza do valor de h.

Assim, pode-se escrever:

y xy x y x

hii i' ( )

( ) ( )≅

−+1

Diz-se, neste caso, que (x)y' é aproximada por uma diferença finita ascendente, com erro

da ordem de h.

Se na equação (7.3) substituirmos x por x i−1 tem-se:

y x y x x x y xx x

y x

y x hy xh

y x

i i i i ii i

i

i i i

( ) ( ) ( ) ' ( )( )

!"( ) ...

( ) ' ( ) "( ) ...

− −−

+

= + − +−

+

= − +

1 11

2

22

2

e portanto:

y xy x y x

hii i' ( )

( ) ( )≅

− −1

Page 191: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 7 – Resolução Numérica de Equações Diferenciais Ordinárias

183

e, neste caso, diz-se, que (x)y' é aproximada por uma diferença finita descendente, com

erro também da ordem de h.

Uma terceira aproximação para (x)y' pode ser obtida subtraindo-se a expressão para

y(x i−1) da expressão para y(x i+1), ou seja:

y x y x hy xi i i( ) ( ) ' ( )+ −− = +1 1 2 O(h3)

Portanto:

y xy x y x

hii i' ( )

( ) ( )=

−+ −1 1

2 + O(h2 )

Logo:

y xy x y x

hii i' ( )

( ) ( )≅

−+ −1 1

2

Neste caso, diz-se que (x)y' é aproximada por uma diferença finita central. Deve-se

observar, entretanto, que nesta aproximação o erro é da ordem de h2 (menor, portanto,que o erro das aproximações anteriores, se h < 1).

Pode-se obter uma aproximação para a derivada segunda, somando-se as expressõespara y(x i−1) e y(x i+1):

++=+ +− )x("yh)x(y2)x(y)x(y i2

i1i1i O(h4 )

ou seja:

y xy x y x y x

hi

i i i"( )( ) ( ) ( )

≅− +− +1 1

2

2

Esta expressão aproxima o valor de (x)'y' com erro da ordem de h2 . Aproximações para

derivadas de ordens mais altas podem ser obtidas de forma análoga.

O método das diferenças finitas para solução de equações diferenciais decorre dasubstituição, na equação, das derivadas da função pelas suas correspondentesaproximações por diferenças finitas. Considerando a notação y i para designar o valor dey(x i ), tem-se então:

Derivada Aproximação Ordem do Erro

yy y

hii i' ≅

−+1 h

Primeiray

y y

hii i' ≅

− −1 h

h2

yy'y 1i1ii

−+ −≅ 2h

Segunda2

1ii1ii

h

yy2y''y +− +−

≅ 2h

Page 192: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 7 – Resolução Numérica de Equações Diferenciais Ordinárias

184

Exemplo. Usando o método das diferenças finitas, obter uma solução aproximada para oseguinte problema de valor de contorno:

==

∈+=+−

71.2)0.1(y00.0)0.0(y

]1,0[x)1x(exy'y"y 2x

Para resolver o problema pelo método das diferenças finitas, deve-se inicialmentediscretizar o domínio. Para o caso acima, seja n = 5 o número de subintervalos do domínio[0, 1]. Neste caso:

hb a

n=

−=

−=

1 0

50 2.

onde:

71.2)0.1(y)x(yy00.0)0.0(y)x(yy

55

00======

Portanto, a solução aproximada consiste em determinar os valores de y i , i = 1, ..., 4, comoilustra a tabela a seguir:

i ix iy0 0.0 0.001 0.2 ?2 0.4 ?3 0.6 ?4 0.8 ?5 1.0 2.71

Substituindo, na equação diferencial, as derivadas pelas aproximações por diferençasfinitas (usando, para a derivada primeira, a diferença central, por ser mais exata) obtém-se:

y y y

h

y y

hx y e x ii i i i i

i ixi

i− + + −− +

−−

+ = + =1 12

1 1 22

21 1 2 3 4( ) , , ,

ou seja:

( ) ( ) ( ) ( ) , , ,2 2 4 2 2 1 1 2 3 412

12 2+ + − + − = + =− +h y h x y h y h e x ii i i i

xii

Tem-se então:

i h x y h y h e x h yx= ⇒ − + − = + − +1 2 4 2 2 1 221 1 2

2 112

0( ) ( ) ( ) ( )

i h y h x y h y h e xx= ⇒ + + − + − = +2 2 2 4 2 2 112

2 2 32 2

22( ) ( ) ( ) ( )

i h y h x y h y h e xx= ⇒ + + − + − = +3 2 2 4 2 2 122

3 3 42 3

32( ) ( ) ( ) ( )

i h x y h y h e x h yx= ⇒ − + − = + − −4 2 4 2 2 1 224 4 5

2 442

5( ) ( ) ( ) ( )

Page 193: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 7 – Resolução Numérica de Equações Diferenciais Ordinárias

185

Deve-se observar que os termos correspondentes a y0 e y5, por serem constantes, foramdeslocados para o segundo membro nas respectivas equações. Assim, substituindo-se osvalores obtém-se o seguinte sistema de equações lineares:

−−

× =

3984 18 0 0

2 2 3 968 18 0

0 2 2 3 952 18

0 0 2 2 3936

0102

0138

0198

4 601

1

2

3

4

. .

. . .

. . .

. .

.

.

.

.

y

y

y

y

Resolvendo o sistema, tem-se os valores correspondentes à solução aproximada. A tabelaa seguir compara os valores obtidos para a solução aproximada com os valores obtidos

através da solução analítica xe x y(x) = .

i x i y i aproximado y i exato

0 0.0 0.0000 0.00001 0.2 0.2434 0.24432 0.4 0.5954 0.59673 0.6 1.0917 1.09334 0.8 1.7791 1.78045 1.0 2.7183 2.7183

EXERCÍCIOS RESOLVIDOS

1. Resolver o problema de valor inicial:

yx y

x'= −

+3 2; x ∈ [1.00, 1.30]; y(1) = 1; h = 0.10

utilizando o método de previsão e correção de 2º grau. Para a inicialização utilizar ométodo de Runge-Kutta de 2º grau.

Solução:

A solução do problema é uma tabela da forma:

x x0 = 1.00 x1 = 1.10 x2 = 1.20 x3 = 1.30y y0 = 1.000 y1 y2 y3

Inicialização (cálculo de y1) com método de Runge-Kutta de 2º grau:

k hf x y f1 0 0 010 100 1000 0103 100 2 1000

1000500= = = −

× + ×= −( , ) . ( . , . ) . [

. .

.] .

k hf x y k f2 1 0 1 010 110 1000 0500 0103 110 2 0 500

1100 391= + = − = −

× + ×= −( , ) . ( . , . . ) . [

. ( . )

.] .

y y k k1 0 1 21

21000

1

20500 0 391 0 555= + + = + − − =[ ] . [ . . ] .

Page 194: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 7 – Resolução Numérica de Equações Diferenciais Ordinárias

186

Agora, como já se dispõe de dois valores de y, pode-se aplicar o método de previsão ecorreção para o cálculo dos demais valores de y.

Cálculo de y2

Previsão: y yh

f f f f2 1 1 023 0 555

010

23 110 0555 100 1000 0 204= + − = + − =[ ] .

.[ ( . , . ) ( . , . )] .

Correção: y yh

f f f f2 1 2 120555

010

2120 0 204 110 0555 0188= + + = + + =[ ] .

.[ ( . , . ) ( . , . )] .

Cálculo de y3

Previsão: y yh

f f f f3 2 2 123 0188

010

23 120 0188 110 0 555 0109= + − = + − = −[ ] .

.[ ( . , . ) ( . , . )] .

Correção: y yh

f f f f3 2 3 220188

010

2130 0109 120 0188 0119= + + = + − + = −[ ] .

.[ ( . , . ) ( . , . )] .

Logo, a solução do problema é a tabela:

x x0 = 1.00 x1 = 1.10 x2 = 1.20 x3 = 1.30y y0 = 1.000 y1 = 0.555 y2 = 0.188 y3 = -0.119

Para ilustrar, sabe-se que a solução exata do problema acima é conhecida:

y xx

x( ) = −22 . A tabela a seguir mostra os valores da solução exata, para efeitos de

comparação.

x x0 = 1.00 x1 = 1.10 x2 = 1.20 x3 = 1.30y y0 = 1.000 y1 = 0.553 y2 = 0.189 y3 = -0.117

2. Resolver o seguinte problema de valor de contorno utilizando o método das diferençasfinitas:

y '' + 2y ' + y = 30x; y(0) = 0, y(1) = 0; h = 0.25

Solução:

A solução do problema é uma tabela da forma:

x x0 = 0.00 x1 = 0.25 x2 = 0.50 x3 = 0.75 x4 = 1.00y y0 = 0.000 y1 y2 y3 y4 = 0.000

Para encontrar os valores de y y y1 2 3, , deve-se substituir as derivadas na equaçãodiferencial por suas aproximações por diferenças finitas, ou seja:

y y y

h

y y

hy x ii i i i i

i i− + + −− +

+−

+ = =1 12

1 122

230 1 2 3( , , )

Page 195: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 7 – Resolução Numérica de Equações Diferenciais Ordinárias

187

ou seja:

( ) ( ) ( ) ( , , )1 2 1 30 1 2 312

12− + − + + = =− +h y h y h y h x ii i i i

Tem-se, portanto, o seguinte sistema de equações lineares:

( ) ( )

( ) ( ) ( )

( ) ( )

h h

h h h

h h

y

y

y

h x

h x

h x

2

2

2

1

2

3

21

22

23

2 1 0

1 2 1

0 1 2

30

30

30

− +− − +

− −× =

Substituindo os valores, tem-se:

−−

−× = ⇒ =

−−−

194 125 0

0 75 194 125

0 0 75 194

0 47

0 94

141

1586

2 085

1533

1

2

3

1

2

3

. .

. . .

. .

.

.

.

.

.

.

y

y

y

y

y

y

Logo, a solução do problema é:

x x0 = 0.00 x1 = 0.25 x2 = 0.50 x3 = 0.75 x4 = 1.00y y0 = 0.000 y1 = -1.586 y2 = -2.085 y3 = -1.533 y4 = 0.000

EXERCÍCIOS PROPOSTOS

1. Dado o problema de valor inicial: xy' = x - y com y(2) = 2, obter uma aproximaçãopara y(2.4) pelo método de previsão e correção de 3º grau. Utilize h = 0.1 e o métodode Runge-Kutta de 3º grau para as inicializações necessárias. Para obter a soluçãoanalítica do problema e conferir os resultados, utilize as seguintes instruções doprograma Mathematica:

f[x_,y_] = (x – y)/xDSolve[y'[x] ==f[x,y[x]],y[x],x]

2. Resolver o seguinte problema de valor de contorno utilizando diferenças finitas centraispara a aproximação de derivadas:

d y

dx

dy

dxsin x x

2

2 + = − +( ( ) cos( )) ; y(0.0) = 2.00; y(1.2) = 0.66; h = 0.4

3. Usar o desenvolvimento em série de Taylor até os termos de 2ª ordem para obter uma

solução aproximada do problema de valor inicial y xx

y

xy'( ) = − −

12

2, com y(1) = -1,

para x ∈[1, 2] com passo h = 0.25

4. Calcular uma aproximação para y(0.6) pelo método de Runge-Kutta de 3º grau, compasso h = 0.2, sabendo que y ' = xy + 1 e y(0) = 1.

Page 196: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 7 – Resolução Numérica de Equações Diferenciais Ordinárias

188

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 equações ordinárias de 1ªordem e obter uma solução aproximada utilizando o método de Runge-Kutta de 2º grau.

6. Usar o método das diferenças finitas para encontrar soluções aproximadas para osseguintes problemas de valor de contorno:

a) 0y''y =+ , com: x ∈ (0, 1); y(0) = 0, y(1) = 1; h = 0.2

b) x2 e)x1(y2'y)1x(''y −−=−++ , com: x ∈ (0, 1); y(0) = 0, y(1) = 0; h = 0.2

EXERCÍCIOS DE PROGRAMAÇÃO

1. Implementar um método de previsão e correção de 4º grau para a solução de equaçõesdiferenciais ordinárias de 1ª ordem. Para a inicialização do método, utilizar a fórmula deRunge-Kutta de 4º grau, dada por:

y y k k k ki i+ = + + + +1 1 2 3 41

62 2[ ]

onde:k hf x y

k hf xh

yk

k hf xh

yk

k f x h y k

i i

i i

i i

i i

1

21

32

4 3

2 2

2 2

=

= + +

= + +

= + +

( , )

( , )

( , )

( , )

Para o cálculo do valor previsto utilizar a fórmula de Adams-Bashforth de 4º grau:

y yh

f f f fi i i i i i+ − − −= + − + −1 1 2 32455 59 37 9[ ]

Para o cálculo do valor corrigido utilizar a fórmula de Adams-Moulton de 4º grau, dadapor:

y yh

f f f fi i i i i i+ + − −= + + − +1 1 1 2249 19 5[ ]

Testar o programa na solução do seguinte problema:

yx y

x'= −

+3 2 com x ∈ [1, 2], y(1) = 1 e h = 0.05

Neste caso a solução exata do problema é conhecida: y xx

x( ) = −22 . Verificar quão

boa é a solução numérica.

2. Implementar um programa para resolver o problema de valor inicial a seguir,correspondente à convivência de coelhos e raposas:

Page 197: 34413174 Calculo Numerico en Portugues

Cálculo Numérico 7 – Resolução Numérica de Equações Diferenciais Ordinárias

189

r r rf

f f rfr f t

'

'( ) ; ( )

= −

= − +

= = ≤ ≤2 2

0 1 0 3 0 10

onde r(t) e f(t) denotam a densidade de coelhos e de raposas, respectivamente, emfunção do tempo.

Utilizar o programa Mathematica para visualizar os gráficos das funções r e f em funçãodo tempo t.

3. O problema de valor de contorno (PVC) a seguir:

y yy

xxe e

y

y e

x" '

( )

' ( )

− − = +

==

22

0 0

1

2

pode ser modelado por meio do método das diferenças finitas, usando diferença centralpara aproximação das derivadas. Elaborar um programa que construa o sistema deequações lineares resultante, para um dado valor do passo h, encontre a solução dosistema e apresente os resultados.

4. O PVC a seguir:

δ

δ

δ

δ

2

2

2

2 0

0 100 0 0 3 0 2 0

V

x

V

y

V y V x V y V x

+ =

= = = =

( , ) ; ( , ) ; ( , ) ; ( , )

descreve a distribuição de temperatura em uma placa plana de comprimento 3 e largura2. Este problema pode ser modelado por meio do método das diferenças finitas, usandodiferença central para aproximação das derivadas, considerando um passo h nahorizontal e um passo k na vertical. Elaborar um programa que construa o sistema deequações lineares resultante, para h = 0.5 e k = 0.25, encontre a solução do sistema eapresente os resultados.