You are on page 1of 609

Clculo Numrico

Um Livro Colaborativo

23 de agosto de 2016
Autores

Lista alfabtica de autores:

Dagoberto Adriano Rizzotto Justo - UFRGS

Esequia Sauter - UFRGS

Fabio Souto de Azevedo - UFRGS

Pedro Henrique de Almeida Konzen - UFRGS


Licena

Este trabalho est licenciado sob a Licena Creative Commons Atribui


CompartilhaIgual 3.0 No Adaptada. Para ver uma cpia desta
licena, visite http://creativecommons.org/licenses/by-sa/3.0/ ou
envie uma carta para Creative Commons, PO Box 1866, Mountain
View, CA 94042, USA.
Nota dos autores

Este livro vem sendo construdo de forma colaborativa desde 2011.


Nosso intuito melhor-lo, expandi-lo e adapt-lo s necessidades
de um curso de clculo numrico em nvel de graduao.
Caso queira colaborar, tenha encontrado erros, tenha sugestes ou
reclamaes, entre em contato conosco pelo endereo de e-mail:
livro_colaborativo@googlegroups.com
Alternativamente, abra um chamado no repositrio GitHub do pro-
jeto:
https://github.com/livroscolaborativos/CalculoNumerico
Prefcio

Este livro busca abordar os tpicos de um curso de introduo ao


clculo numrico moderno oferecido a estudantes de matemtica,
fsica, engenharias e outros. A nfase colocada na formulao de
problemas, implementao em computador da resoluo e interpre-
tao de resultados. Pressupe-se que o estudante domine conheci-
mentos e habilidades tpicas desenvolvidas em cursos de graduao
de clculo, lgebra linear e equaes diferenciais. Conhecimentos
prvios em linguagem de computadores fortemente recomendvel,
embora apenas tcnicas elementares de programao sejam real-
mente necessrias.
Ao longo do livro, fazemos nfase na utilizao do software livre
Scilab para a implementao dos mtodos numricos abordados.
Recomendamos que o leitor tenha sua disposio um computador
com o Scilab instalado. No necessrio estar familiarizado com a
linguagem Scilab, mas recomendamos a leitura do Apndice A, no
qual apresentamos uma rpida introduo a este pacote computa-
cional. Alternativamente, existem algumas solues em nuvem que
fornecem acesso ao Scilab via internet. Por exemplo, a plataforma
virtual rollApp (https://www.rollapp.com/app/scilab).
Captulo 1

Introduo

Clculo numrico a disciplina que estuda as tcnicas para a so-


luo aproximada de problemas matemticos. Estas tcnicas so
de natureza analtica e computacional. As principais preocupaes
normalmente envolvem exatido e perfrmance.
Aliado ao aumento contnuo da capacidade de computao dispo-
nvel, o desenvolvimento de mtodos numricos tornou a simula-
o computacional de modelos matemticos uma prtica usual nas
mais diversas reas cientficas e tecnolgicas. As ento chamadas
simulaes numricas so constitudas de um arranjo de vrios es-
quemas numricos dedicados a resolver problemas especficos como,
por exemplo: resolver equaes algbricas, resolver sistemas linea-
res, interpolar e ajustar pontos, calcular derivadas e integrais, re-
solver equaes diferenciais ordinrias, etc.. Neste livro, abordamos
o desenvolvimento, a implementao, utilizao e aspectos tericos
de mtodos numricos para a resoluo desses problemas.
Os problemas que discutiremos no formam apenas um conjunto de
mtodos fundamentais, mas so, tambm, problemas de interesse
na engenharia e na matemtica aplicada. A necessidade de aplicar
aproximaes numricas decorre do fato de que esses problemas po-
dem se mostrar intratveis se dispomos apenas de meios puramente
analticos, como aqueles estudados nos cursos de clculo e lgebra
linear. Por exemplo, o teorema de Abel-Ruffini nos garante que
no existe uma frmula algbrica, isto , envolvendo apenas opera-
es aritmticas e radicais, para calcular as razes de uma equao
polinomial de qualquer grau, mas apenas casos particulares:
Simplesmente isolar a incgnita para encontrar a raiz de uma
equao do primeiro grau;
Frmula de Bhaskara para encontrar razes de uma equao
do segundo grau;
Frmula de Cardano para encontrar razes de uma equao do
terceiro grau;
Existe expresso para equaes de quarto grau;
Casos simplificados de equaes de grau maior que 4 onde
alguns coeficientes so nulos tambm podem ser resolvidos.
Equaes no polinomiais podem ser ainda mais complicadas de
resolver exatamente, por exemplo:

cos(x) = x e xex = 10
Para resolver o problema de valor inicial
y 0 + xy = x,
y(0) = 2,
2 /2
podemos usar o mtodo de fator integrante e obtemos y = 1+ex .
J o clculo da soluo exata para o problema
y 0 + xy = ey ,
y(0) = 2,
no possvel.
Da mesma forma, resolvemos a integral
Z 2
2
xex dx
1

pelo mtodo da substituio e obtemos 12 (e1 e2 ). Porm a inte-


gral Z 2
2
ex dx
1
no pode ser resolvida analiticamente.
A maioria dos modelos de fenmenos reais chegam em problemas
matemticos onde a soluo analtica difcil (ou impossvel) de ser
encontrada, mesmo quando provamos que ela existe. Nesse curso
propomos calcular aproximaes numricas para esses problemas,
que apesar de, em geral, serem diferentes da soluo exata, mostra-
remos que elas podem ser bem prximas.
Para entender a construo de aproximaes necessrio estudar
um pouco como funciona a aritmtica de computador e erros de ar-
redondamento. Como computadores, em geral, usam uma base bi-
nria para representar nmeros, comearemos falando em mudana
de base.
Captulo 2

Aritmtica de mquina
2.1 Sistema de numerao e mudana
de base
Usualmente, utilizamos o sistema de numerao decimal para re-
presentar nmeros. Esse um sistema de numerao posicional
onde a posio do dgito indica a potncia de 10 que o dgito est
representando.

Exemplo 1. O nmero 293 decomposto como

293 = 2 centenas + 9 dezenas + 3 unidades


= 2 102 + 9 101 + 3 100 .

O sistema de numerao posicional tambm pode ser usado com


outras bases. Vejamos a seguinte definio.
Definio 1 (Sistema de numerao de base b). Dado
um nmero natural b > 1 e o conjunto de smbolos
{,,, , 0 , 1 , 2 , . . . , b 11}a , a sequncia de smbolos

(dn dn1 d1 d0 ,d1 d2 )b

representa o nmero positivo

dn bn + dn1 bn1 + + d0 b0 + d1 b1 + d2 b2 +

Para representar nmeros negativos usamos o smbolo a es-


querda do numeral.
a
Para b > 10, veja a Observao 1
Observao 1 (b 10). Para sistemas de numerao com base
b 10 usual utilizar as seguintes notaes:

No sistema de numerao decimal (b = 10), costumamos


representar o nmero sem os parnteses e o subndice, ou
seja,

dn dn1 . . . d1 d0 ,d1 d2 . . . := (dn dn1 . . . d1 d0 ,d1 d2 . . .)10

Se b > 10, usamos as letras A, B, C, para completar


os smbolos: A = 10, B = 11, C = 12, D = 13, E = 14,
F = 15.

Exemplo 2 (Sistema binrio). O sistema de numerao em base


dois chamado de binrio e os algarismos binrios so conhecidos
como bits, do ingls binary digits. Um bit pode assumir dois
valores distintos: 0 ou 1. Por exemplo:

x = (1001,101)2
= 1 23 + 0 22 + 0 21 + 1 20 + 1 21 + 0 22 + 1 23
= 8 + 0 + 0 + 1 + 0,5 + 0 + 0,125 = 9,625

Ou seja, (1001,101)2 igual a 9,625 no sistema decimal.

Exemplo 3 (Sistema quaternrio). No sistema quaternrio a base


b igual a 4. Por exemplo:

(301,2)4 = 3 42 + 0 41 + 1 40 + 2 41 = 49,5

Exemplo 4 (Sistema octal). No sistema octal a base b = 8 e


utilizamos os smbolos em {0, 1, 2, 3, 4, 5, 6, 7}. Por exemplo:

(1357,24)8 = 1 83 + 3 82 + 5 81 + 7 80 + 2 81 + 4 82
= 512 + 192 + 40 + 7 + 0,25 + 0,0625 = 751,3125
Exemplo 5 (Sistema hexadecimal). O sistema de numerao cuja
a base b = 16 chamado de sistema hexadecimal. O conjunto de
smbolos necessrios S = {,, , 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E
Convertendo o nmero (E2AC)16 para a base 10 temos

(E2AC)16 = 14 163 + 2 162 + 10 161 + 12 160


= 57344 + 512 + 160 + 12 = 58028

Exemplo 6 (Scilab). O Scilab oferece algumas funes para a


converso de nmeros inteiros em dada base para a base decimal.
Por exemplo, temos:
-->bin2dec('1001')
ans =
9.
-->hex2dec('451')
ans =
1105.
-->oct2dec('157')
ans =
111.
-->base2dec('BEBA',16)
ans =
48826.
A partir da Definio 1 acabamos de mostrar vrios exemplos de
converso de nmeros de uma sistema de numerao de base b para
o sistema decimal. Agora, vamos estudar como fazer o processo
inverso. Isto , dado um nmero decimal (X)10 queremos escrev-lo
em uma outra base b, i.e., queremos obter a seguinte representao:

(X)10 = (dn dn1 d0 ,d1 )b


= dn bn + dn1 bn1 + + d0 b0 + d1 b1 + d2 b2 +

Separando as partes inteira e fracionria de X, i.e. X = X i + X f ,


temos:
d1 d2
X i = dn bn + +dn1 bn1 +d1 b1 +d0 b0 e Xf = + 2 +
b1 b
Nosso objetivo determinar os algarismos {dn , dn1 , ...}.
Primeiramente, vejamos como tratar a parte inteira X i . Calculando
sua diviso por b, temos:

Xi d0
= + d1 + d2 b1 + dn1 bn2 + dn bn1 .
b b
Observe que d0 o resto da diviso de X i por b, pois d1 + d2 b1 +
dn1 bn2 + dn bn1 inteiro e db0 uma frao (lembramos que
d0 < b). Da mesma forma, o resto da diviso de d1 + d2 b1 + dn1
bn2 + dn bn1 por b d1 . Repetimos o processo at encontrar os
smbolos d0 , d1 , d2 , . . ..
Exemplo 7 (Converso da parte inteira). Vamos escrever o nmero
125 na base 6. Para tanto, fazemos sucessivas divises por 6 como
segue:

125 = 20 6 + 5 (125 dividido por 6 igual a 20 e resta 5)


= (3 6 + 2) 6 + 5 = 3 62 + 2 6 + 5,
logo 125 = (325)6 .
Estes clculos podem ser feitos no Scilab com o auxlio das funes
modulo e int. A primeira calcula o resto da diviso entre dois
nmeros, enquanto que a segunda retorna a parte inteira de um
nmero dado. No nosso exemplo, temos:
-->q = 125, d0 = modulo(q,6)
-->q = int(q/6), d1 = modulo(q,6)
-->q = int(q/6), d2 = modulo(q,6)
Verifique!
Exemplo 8 (Scilab). O Scilab oferece algumas funes para a
converso de nmeros inteiros em dada base para a base decimal.
Assim, temos:
-->bin2dec('1001')
ans =
9.
-->hex2dec('451')
ans =
1105.
-->oct2dec('157')
ans =
111.
-->base2dec('BEBA',16)
ans =
48826.
Vamos converter a parte fracionria de um nmero decimal em uma
dada base b. Usando a notao X = X i + X f para as partes inteira
e fracionria, respectivamente, temos:
d2 d3
bX f = d1 + + 2 +
b b
Observe que a parte inteira desse produto d1 e d2
b
+ db3
2 +
d2 d3
a parte fracionria. Quando multiplicamos b + b2 + por b
novamente, encontramos d2 . Repetimos o processo at encontrar
todos os smbolos.
Exemplo 9 (Converso da parte fracionria). Escrever o nmero
125,583 na base 6. Do exemplo anterior temos que 125 = (325)6 .
Assim, nos resta converter a parte fracionria. Para tanto, fazemos
sucessivas multiplicaes por 6 como segue:]

0,583 = 3,5 61 (0,583 multiplicado por 6 igual a 3,5)


= 3 61 + 0,5 61
= 3 61 + (3 61 ) 61
= 3 61 + 3 62 ,

logo 0,583 = (0,33)6 . As contas feitas aqui, tambm podem ser


feitas no Scilab. Voc sabe como?

Uma maneira de converter um nmero dado numa base b1 para uma


base b2 fazer em duas partes: primeiro converter o nmero dado
na base b2 para base decimal e depois converter para a base b1 .
Exerccios

E 2.1.1. Converta para base decimal cada um dos seguintes n-


meros:

a) (100)2 c) (100)b e) (AA)16 g) (3,12)5


b) (100)3 d) (12)5 f) (7,1)8

E 2.1.2. Escreva os nmeros abaixo na base decimal.

a) (25,13)8

b) (101,1)2

c) (12F,4)16

d) (11,2)3
E 2.1.3. Escreva cada nmero decimal na base b.
a) 7,6 na base b = 5
b) 29,16 na base b = 6

E 2.1.4. Escreva cada nmero dado para a base b.


a) (45,1)8 para a base b = 2
b) (21,2)8 para a base b = 16
c) (1001,101)2 para a base b = 8
d) (1001,101)2 para a base b = 16

E 2.1.5. Escreva o nmero x = 5,5 em base binria.

E 2.1.6. Escreva o nmero x = 17,109375 em base hexadecimal


(16).
E 2.1.7. Quantos algarismos so necessrios para representar o
nmero 937163832173947 em base binria? E em base 7? Dica:
Qual o menor e o maior inteiro que pode ser escrito em dada base
com N algarismos?

E 2.1.8. Escreva x = (12.4)8 em base decimal e binria.


2.2 Representao de nmeros
Os computadores, em geral, usam a base binria para representar os
nmeros, onde as posies, chamadas de bits, assume as condies
verdadeiro ou falso, ou seja, 0 ou 1. Cada computador tem um
nmero de bits fixo e, portanto, representa uma quantidade finita de
nmeros. Os demais nmeros so tomados por proximidade queles
conhecidos, gerando erros de arredondamento. Por exemplo, em
aritmtica de computador,
o nmero 2 tem representao 2exata,
2
logo 2 = 4, mas 3 no tem representao finita, logo ( 3) 6= 3.
Veja isso no Scilab:

-->2^2 == 4
ans =
T
-->sqrt(3)^2 == 3
ans =
F
2.2.1 Nmeros inteiros
Tipicamente um nmero inteiro armazenado num computador
como uma sequncia de dgitos binrios de comprimento fixo de-
nominado registro.
Representao sem sinal
Um registro com n bits da forma

dn1 dn2 d1 d0

representa o nmero (dn1 dn2 ...d1 d0 )2 .


Assim possvel representar nmeros inteiros entre

(111...111)2 = 2n1 + 2n2 + + 21 + 20 = 2n 1.


..
. =
(000...011)2 = (3)10
(000...010)2 = (2)10
(000...001)2 = (1)10
(000...000)2 = (0)10

Exemplo 10. No Scilab,


-->uint8( bin2dec('00000011') )
ans = 3
-->uint8( bin2dec('11111110') )
ans = 254
Representao com bit de sinal

O bit mais significativo (o primeiro esquerda) representa o sinal:


por conveno, 0 significa positivo e 1 significa negativo. Um regis-
tro com n bits da forma

s dn2 d1 d0

representa o nmero (1)s (dn2 ...d1 d0 )2 . Assim possvel represen-


tar nmeros inteiros entre 2n1 e 2n1 , com duas representaes
para o zero: (1000...000)2 e (00000...000)2 .
Exemplo 11. Em um registro com 8 bits, teremos os nmeros

(11111111)2 = (26 + + 2 + 1) = 127


..
.
(10000001)2 = 1
(10000000)2 = 0
(01111111)2 = 26 + + 2 + 1 = 127
..
.
(00000010)2 = 2
(00000001)2 = 1
(00000000)2 = 0
Representao complemento de dois
O bit mais significativo (o primeiro esquerda) representa o coefi-
ciente de 2n1 . Um registro com n bits da forma

dn1 dn2 d1 d0

representa o nmero dn1 2n1 + (dn2 ...d1 d0 )2 .


Note que todo registro comeando com 1 ser um nmero negativo.
Exemplo 12. O registro com 8 bits [01000011] representa o nmero

0(27 ) + (1000011)2 = 64 + 2 + 1 = 67.

O registro com 8 bits [10111101] representa o nmero

1(27 ) + (0111101)2 = 128 + 32 + 16 + 8 + 4 + 1 = 67.

Note que podemos obter a representao de 67 invertendo os d-


gitos de 67 em binrio e somando 1.
Exemplo 13. Em um registro com 8 bits, teremos os nmeros

(11111111)2 = 27 + 26 + + 2 + 1 = 1
..
.
(10000001)2 = 27 + 1 = 127
(10000000)2 = 27 = 128
(01111111)2 = 26 + + 2 + 1 = 127
..
.
(00000010)2 = 2
(00000001)2 = 1
(00000000)2 = 0

Exemplo 14. No Scilab,

-->int8( bin2dec('00000011') )
ans = 3
-->int8( bin2dec('11111110') )
ans = -2
2.2.2 Sistema de ponto fixo
O sistema de ponto fixo representa as partes inteira e fracionria do
nmero com uma quantidade fixas de dgitos.
Exemplo 15. Em um computador de 32 bits que usa o sistema de
ponto fixo, o registro

d31 d30 d29 d1 d0

pode representar o nmero


(1)d31 (d30 d29 d17 d16 , d15 d14 d1 d0 )2 se o sinal for repre-
sentado por um dgito. Observe que nesse caso o zero possui
duas representaes possveis:

10000000000000000000000000000000

e
00000000000000000000000000000000
(d30 d29 d17 d16 )2 d31 (215 216 ) + (0,d15 d14 d1 d0 )2 se o
sinal do nmero estiver representado por uma implementao
em complemento de um. Observe que o zero tambm possui
duas representaes possveis:

11111111111111111111111111111111

e
00000000000000000000000000000000

(d30 d29 d17 d16 )2 d31 215 + (0,d15 d14 d1 d0 )2 se o sinal do


nmero estiver representado por uma implementao em com-
plemento de dois. Nesse caso o zero unicamente representado
por
00000000000000000000000000000000

Observe que 16 dgitos so usados para representar a parte fraci-


onria, 15 so para representar a parte inteira e um dgito, o d31 ,
est relacionado ao sinal do nmero.
2.2.3 Normalizao

Os nmeros h = 6.626 1034 e NA = 6.0221 1023 no podem ser


armazenados na mquina em ponto fixo do exemplo anterior.
Entretanto, a constante

h = 6626 1037
h = 6.626 1034
h = 0.6626 1033
h = 0.006626 1031

pode ser escrita de vrias formas diferentes. Para termos uma


representao nica definimos como notao normalizada a se-
gunda opo (1 m < 10) que apresenta apenas um dgito diferente
de zero a esquerda do ponto decimal (m = 6.626).
Definio 2. Definimos que

x = (1)s (M )b bE ,

est na notao normalizadaa quando 1 (M )b < b, onde

s o sinal (0 para positivo e 1 para negativo),

E o expoente,

b a base (por ex. 2, 8, 10 ou 16),

(M )b o significando. O significando (tambm cha-


mado de mantissa ou coeficiente) contm os dgitos signi-
ficativos do nmero.
a
Em algumas referncias usado (0.1)b (M )b < 1.
Exemplo 16. Os nmeros abaixo esto em notao normalizada:
x1 = (1.011101)2 2(100)2
x2 = (2.325)10 101
Exemplo 17. Represente os nmeros 0,0051 e 1205,4154 em um
sistema de ponto fixo de 4 dgitos para a parte inteira e 4 dgitos
para a parte fracionria. Depois represente os mesmos nmeros
utilizando notao normalizada com 7 dgitos significativos.
Soluo. As representaes dos nmeros 0,0051 e 1205,4154 no sis-
tema de ponto fixo so 0,0051 e 1205,4154, respectivamente. Em no-
tao normalizada, as representaes so 5,151515103 e 1,205415
103 , respectivamente.

Observao 2. No Scilab, a representao em ponto flutuante


com n dgitos dada na forma d1 ,d2 d3 . . . dn 10E . Consulte
sobre o comando format!
2.2.4 Sistema de ponto flutuante
O sistema de ponto flutuante no possui quantidade fixa de dgitos
para as partes inteira e fracionria do nmero.
Podemos definir uma mquina F em ponto flutuante de dois modos:

F (,|M |,|E|,BIAS) ou F (,|M |,EM IN ,EM AX )

onde

a base (em geral 2 ou 10),

|M | o nmero de dgitos da mantissa,

|E| o nmero de dgitos do expoente,

BIAS um valor de deslocamento do expoente (veja a seguir),

EM IN o menor expoente,

EM AX o maior expoente.
Considere uma mquina com um registro de 64 bits e base = 2.
Pelo padro IEEE754, 1 bit usado para o sinal, 11 bits para o
expoente e 52 bits so usados para o significando tal que

s c10 c9 c0 m1 m2 m51 m52

represente o nmero (o BIAS = 1023 por definio)

x = (1)s M 2cBIAS ,

onde a caracterstica representada por

c = (c10 c9 c1 c0 )2 = c10 210 + + c1 21 + c0 20

e o significando por

M = (1.m1 m2 m51 m52 )2 .

Em base 2 no necessrio armazenar o primeiro dgito (por qu?).


Por exemplo, o registro

[0|100 0000 0000|1010 0000 0000...0000 0000]

representa o nmero

(1)0 (1 + 21 + 23 ) 210241023 = (1 + 0.5 + 0.125)2 = 3.25.


O expoente deslocado
Uma maneira de representar os expoentes inteiros deslocar todos
eles uma mesma quantidade. Desta forma permitimos a represen-
tao de nmeros negativos e a ordem deles continua crescente. O
expoente representado por um inteiro sem sinal do qual deslo-
cado o BIAS.
Tendo |E| dgitos para representar o expoente, geralmente o BIAS
predefinido de tal forma a dividir a tabela ao meio de tal forma
que o expoente um seja representado pelo sequncia [100...000].

Exemplo 18. Com 64 bits, pelo padro IEEE754, temos que


|E| := 11. Assim (100 0000 0000)2 = 210 = 1024. Como quere-
mos que esta sequncia represente o 1, definimos BIAS := 1023,
pois
1024 BIAS = 1.
Com 32 bits, temos |E| := 8 e BIAS := 127. E com 128 bits, temos
|E| := 15 e BIAS := 16383.
Com 11 bits temos

[111 1111 1111] = reservado


[111 1111 1110] = 2046 BIAS = 102310 = EM AX
..
.=
[100 0000 0001] = 210 + 1 BIAS = 210
[100 0000 0000] = 210 BIAS = 110
[011 1111 1111] = 1023 BIAS = 010
[011 1111 1110] = 1022 BIAS = 110
..
.=
[000 0000 0001] = 1 BIAS = 1022 = EM IN
[000 0000 0000] = reservado

O maior expoente dado por EM AX = 1023 e o menor expoente


dado por EM IN = 1022.
O menor nmero representvel positivo dado pelo registro

[0|000 0000 0001|0000 0000 0000...0000 0000]

quando s = 0, c = 1 e M = (1.000...000)2 , ou seja,

M IN R = (1 + 0)2 211023 0.2225 10307 .

O maior nmero representvel dado por

[0|111 1111 1110|1111 1111 ...1111 1111]

quando s = 0, c = 2046 e M = (1.1111 1111....1111)2 = 2 252 ,


ou seja,

M AXR = (2 252 ) 220461023 21024 0.17977 10309 .


Casos especiais
O zero um caso especial representado pelo registro

[0|000 0000 0000|0000 0000 0000...0000 0000]

Os expoentes reservados so usados para casos especiais:

c = [0000...0000] usado para representar o zero (se m = 0)


e os nmeros subnormais (se m 6= 0).

c = [1111...1111] usado para representar o infinito (se m = 0)


e NaN (se m 6= 0).

Os nmeros subnormais1 tem a forma

x = (1)s (0.m1 m2 m51 m52 )2 21BIAS .


1
Note que poderamos definir nmeros um pouco menores que o M IN R.
Observao 3. O menor nmero positivo, o maior nmero e o
menor nmero subnormal representveis no Scilab so:

-->MINR=number_properties('tiny')
-->MAXR=number_properties('huge')
-->number_properties('tiniest')

Outras informaes sobre a representao em ponto flutuante


podem ser obtidas com help number_properties.
2.2.5 A preciso e o epsilon de mquina
A preciso p de uma mquina o nmero de dgitos significativos
usado para representar um nmero. Note que p = |M | + 1 em
binrio e p = |M | para outras bases.
O epsilon de mquina, mach = , definido como o menor nmero
representvel tal que 1 +  seja diferente de 1.

Exemplo 19. Com 64 bits, temos que o epsilon ser dado por

1 (1.0000 0000....0000)2 20
 +(0.0000 0000....0001)2 20 = 252
(1.0000 0000....0001)2 20 6= 1

Assim  = 252 .
2.2.6 A distribuio dos nmeros

Utilizando uma mquina em ponto flutuante temos um nmero fi-


nito de nmeros que podemos representar.

Um nmero muito pequeno geralmente aproximado por zero (un-


derflow) e um nmero muito grande (overflow) geralmente faz o
clculo parar. Alm disso, os nmeros no esto uniformemente
espaados no eixo real. Nmeros pequenos esto bem prximos en-
quanto que nmeros com expoentes grandes esto bem distantes.

Se tentarmos armazenar um nmero que no representvel, deve-


mos utilizar o nmero mais prximo, gerando os erros de arredon-
damento.

Por simplicidade, a partir daqui ns adotaremos b = 10.


Observao 4. O chamado modo de exceo de ponto flutuante
controlado pela funo ieee. O padro do Scilab ieee(0).
Estude os seguintes resultados das seguintes operaes usando
os diferentes modos de exceo:

-->2*number_properties('huge'), 1/2^999, 1/0, 1/-0


Em geral, os nmeros no so representados de forma exata nos
computadores. Isto nos leva ao chamado erro de arredondamento.
Quando resolvemos problemas com tcnicas numricas estamos su-
jeitos a este e outros tipos de erros. Nas prximas sees, veremos
quais so estes erros e como control-los, quando possvel.
Exerccios

E 2.2.1. Explique a diferena entre o sistema de ponto fixo e ponto


flutuante.
2.3 Tipos de Erros
Quando fazemos aproximaes numricas, os erros so gerados de
vrias formas, sendo as principais delas as seguintes:
1. Preciso dos dados: equipamentos de medio possuem
preciso finita, acarretando erros nas medidas fsicas.
2. Erros de Arredondamento: so aqueles relacionados com
as limitaes que existem na forma representar nmeros de
mquina.
3. Erros de Truncamento: ocorrem quando aproximamos um
procedimento formado por uma sequncia infinita de passos
atravs de um outro procedimento finito. Por exemplo, a de-
finio de integral dada por uma soma infinita e, como ve-
remos na terceira rea, aproximarmo-la por um soma finita.
Esse um assunto que discutiremos vrias vezes no curso, pois
o tratamento do erro de truncamento feito para cada mtodo
numrico.
Uma questo fundamental a quantificao dos erros que estamos
sujeitos ao computar a soluo de um dado problema. Para tanto,
precisamos definir medidas de erros (ou de exatido). As medidas
de erro mais utilizadas so o erro absoluto e o erro relativo.

Definio 3 (Erro absoluto e relativo). Seja x um nmero real


e x sua aproximao. O erro absoluto da aproximao x
definido como
|x x|.
O erro relativo da aproximao x definido como

|x x|
, x 6= 0.
|x|
Observao 5. Observe que o erro relativo adimensional e,
muitas vezes, dado em porcentagem. Mais precisamente, o
erro relativo em porcentagem da aproximao x dado por

|x x|
100%.
|x|

Exemplo 20. Sejam x = 123456,789 e sua aproximao x = 123000.


O erro absoluto
|x x| = |123456,789 123000| = 456,789
e o erro relativo
|x x| 456,789
= 0,00369999 ou 0,36%
|x| 123456,789
Exemplo 21. Sejam y = 1,23456789 e y = 1,13. O erro absoluto
|y y| = |1,23456789 1,13| = 0,10456789
que parece pequeno se compararmos com o exemplo anterior. En-
tretanto o erro relativo
|y y| 0,10456789
= 0,08469999 ou 8,4%
|y| 1,23456789
Note que o erro relativo leva em considerao a escala do problema.
Exemplo 22. Observe os erros absolutos e relativos em cada caso

x x erro absoluto erro relativo


0,3103
0,3 102 0,3 102 0,3 103 0,3102
= 101 = 10%
0,3101
0,3 0,3 0,3 101 0,3
= 101 = 10%
0,3101
0,3 102 0,3 102 0,3 101 0,3102
= 101 = 10%

Outra forma de medir a exatido de uma aproximao numrica


contar o nmero de dgitos significativos corretos em relao
ao valor exato.
Definio 4 (Nmero de dgitos significativos corretos). A
aproximao x de um nmero x tem s dgitos significativos
corretos quandoa

|x x|
< 5 10s .
|x|
a
Esta definio apresentada em [3]. No existe uma definio nica na
literatura para o conceito de dgitos significativos corretos, embora no pre-
cisamente equivalentes, elas transmitem o mesmo conceito. Uma maneira
de interpretar essa regra : calcula-se o erro relativo na forma normalizada
e a partir da ordem do expoente temos o nmero de dgitos significativos
corretos. Como queremos o expoente, podemos estimar s por

|x x|
DIGSE(x,x) = s int log10
.
|x|

Exemplo 23. Vejamos os seguintes casos:


a) A aproximao de x = 0,333333 por x = 0,333 tem 3 dgitos
significativos corretos, pois
|x x| 0,000333
= 0,000999 5 1033 .
|x| 0,333333

b) Considere as aproximaes x1 = 0,666 e x2 = 0,667 de x =


0,666888. Os erros relativos so
|x x1 | |0,666888 0,666|
= 0,00133... < 5 103 .
|x| 0,666888
|x x2 | |0,666888 0,667|
= 0,000167... < 5 104 .
|x| 0,666888
Note que x1 possui 3 dgitos significativos corretos e x2 possui
4 dgitos significativos (o quarto dgito o dgito 0 que no
aparece a direita, i.e, x2 = 0.6670. Isto tambm leva a conclu-
so que x2 aproxima melhor o valor de x do que x1 pois est
mais prximo de x.
c) x = 9,999 aproxima x = 10 com 4 dgitos significativos corre-
tos, pois

|x x| |10 9,999|
= 0,0000999... < 5 104 .
|x| 10

d) Considere as aproximaes x1 = 1,49 e x2 = 1,5 de x =


1. Da definio, temos que 1,49 aproxima 1 com um dgito
significativo correto (verifique), equanto 1,5 tem zero dgito
significativo correto, pois:

|1 1,5|
= 5 101 < 5 100 .
|1|
2.3.1 Erros de arredondamento
Os erros de arredondamento so aqueles gerados quando aproxima-
mos um nmero real por um nmero com representao finita.
Existem vrias formas de arredondar

x = d0 ,d1 d2 . . . dk1 dk dk+1 . . . dn 10e

usando k dgitos significativos. As duas principais so as seguintes:

1. Arredondamento por truncamento (ou corte): aproxima-


mos x por
x = d0 ,d1 d2 . . . dk 10e
simplesmente descartando os dgitos dj com j > k.

2. Arredondamento por proximidade: se dk+1 < 5 aproxi-


mamos x por
x = d0 ,d1 d2 . . . dk 10e
seno aproximamos x por2

x = (d0 ,d1 d2 . . . dk + 10k ) 10e

Observao 6. Observe que o arredondamento pode mudar to-


dos os dgitos e o expoente da representao em ponto flutuante
de um nmero dado.

Exemplo 24. Represente os nmeros x1 = 0,567, x2 = 0,233, x3 =


0,675 e x4 = 0,314159265 . . . 101 com dois dgitos significativos
por truncamento e arredondamento.
Soluo. Vejamos cada caso:
2
Note que essas duas opes so equivalentes a somar 5 no dgito a direita
do corte e depois arredondar por corte, ou seja, arredondar por corte

(d0 ,d1 d2 . . . dk dk+1 + 5 10(k+1) ) 10e


Por truncamento:

x1 = 0,56, x2 = 0,23, x3 = 0,67 e x4 = 3,1.

No Scilab, podemos obter a representao de x3 = 0,675


fazendo (verifique):

-->format('e',8)
-->int(-0.675*1e2)/1e2

Por arredondamento:

x1 = 0,57; x2 = 0,23; x3 = 0,68 e x4 = 3,1.

No Scilab, a representao de nmeros por arredondamento


o padro. Assim, para obtermos a representao desejada
de x3 = 0,675 fazemos: podemos obter a representao de
x3 = 0,675 fazemos (verifique):
-->format('e',8)
-->-0.675

Exemplo 25. O arredondamento de 0,9999 101 com 3 dgitos


significativos 0,1 100 .
Exerccios

E 2.3.1. Calcule os erros absoluto e relativo das aproximaes x


para x.
a) x = = 3,14159265358979 e x = 3,141

b) x = 1,00001 e x = 1

c) x = 100001 e x = 100000

E 2.3.2. Arredonde os seguintes nmeros para cinco algarismos


significativos corretos:

a) 1,7888544 d) 0,004596632 f) 2,1754999


1010
b) 1788,8544
e) 2,1754999
c) 0,0017888544 1010
E 2.3.3. Verifique quantos so os dgitos significativos corretos em
cada aproximao x para x.

a) x = 2,5834 e x = 2,6

b) x = 100 e x = 99

E 2.3.4. Represente os nmeros 3276; 42,55 e 0,00003331 com trs


dgitos significativos por truncamento e arredondamento.

E 2.3.5. Resolva a equao 0,1x 0,01 = 12 usando arredonda-


mento com trs dgitos significativos em cada passo e compare com
o resultado analtico
E 2.3.6. Calcule o erro relativo e absoluto envolvido nas seguintes
aproximaes e expresse as respostas com trs algarismos significa-
tivos corretos.

a) x = 3,1415926535898 e x = 3,141593
b) x = 1
7
e x = 1,43 101
2.4 Erros nas operaes elementares
O erro presente relativo nas operaes elementares de adio, sub-
trao, multiplicao e diviso da ordem do epsilon de mquina.
Se estivermos usando uma mquina com 64 bits, temos que  =
252 2,22E16.
Este erro bem pequeno! Assumindo que x e y so representados
com todos dgitos corretos, temos aproximadamente 15 dgitos sig-
nificativos corretos quando fizemos uma das operaes x + y, x y,
x y ou x/y.
Mesmo que fizssemos, por exemplo, 1000 operaes elementares em
ponto flutuante sucessivas, teramos no pior dos casos acumulado
todos esses erros e perdido 3 casas decimais (1000 1015 1012 ).
Entretanto, quando subtramos nmeros muito prximos, os proble-
mas aumentam.
2.5 Cancelamento catastrfico
Quando fazemos subtraes com nmeros muito prximos entre si
ocorre o cancelamento catastrfico, onde podemos perder vrios d-
gitos de preciso em uma nica subtrao.
Exemplo 26. Efetue a operao
0,987624687925 0,987624 = 0,687925 106
usando arredondamento com seis dgitos significativos e observe a
diferena se comparado com resultado sem arredondamento.
Soluo. Os nmeros arredondados com seis dgitos para a man-
tissa resultam na seguinte diferena
0,987625 0,987624 = 0,100000 105
Observe que os erros relativos entre os nmeros exatos e aproxima-
dos no lado esquerdo so bem pequenos,
|0,987624687925 0,987625|
= 0,00003159
|0,987624687925|
e
|0,987624 0,987624|
= 0%,
|0,987624|
enquanto no lado direito o erro relativo enorme:

|0,100000 105 0,687925 106 |


= 45,36%.
0,687925 106

Exemplo 27. Considere o problema de encontrar as razes da equa-


o de segundo grau

x2 + 300x 0,014 = 0,

usando seis dgitos significativos.


Aplicando a frmula de Bhaskara com a = 0,100000 101 , b =
0,300000 103 e c = 0,140000 101 , temos o discriminante:

= b2 4 a c
= 0,300000 103 0,300000 103
+ 0,400000 101 0,100000 101 0,140000 101
= 0,900000 105 + 0,560000 101
= 0,900001 105

e as razes:

0,300000 103
x1 ,x2 =
0,200000 101

0,300000 103 0,900001 105
=
0,200000 101
0,300000 103 0,300000 103
=
0,200000 101
Ento, as duas razes so:

0,300000 103 0,300000 103


x1 =
0,200000 101
0,600000 103
= = 0,300000 103
0,200000 101

0,300000 103 + 0,300000 103


x2 = = 0,000000 100
0,200000 101

Agora, os valores das razes com seis dgitos significativos deveriam


ser
x1 = 0,300000 103 e x2 = 0,466667 104 .

Observe que um raiz saiu com seis dgitos significativos corretos,


mas a outra no possui nenhum dgito significativo correto.
Observao 7. 2
No exemplo anterior b muito maior que 4ac,
ou seja, b b2 4ac, logo a diferena

b + b2 4ac

estar prxima de zero. Uma maneira padro de evitar o can-


celamento catastrfico usar procedimentos analticos para eli-
minar essa diferena. Abaixo veremos alguns exemplos.

Exemplo 28. Para eliminar o cancelamento catastrfico do exem-


plo anterior, usamos a seguinte expanso em srie de Taylor em
torno da origem

1
1 x = 1 x + O(x2 ).
2
Substituindo na frmula de Bhaskara, temos:


b b2 4ac
x =
2a
q
b b 1 4ac
b2
=
2a
 
4ac
b b 1 2b2

2a

Observe que 4ac


b2
um nmero pequeno e por isso a expanso faz
sentido. Voltamos no exemplo anterior e calculamos as duas razes
com o nova expresso
b b + 4ac
2b b c
x1 = = +
2a a b
0,300000 103 0,140000 101
=
0,100000 101 0,300000 103
= 0,300000 103 0,466667 104
= 0,300000 103

b + b 4ac
2b
x2 =
2a
4ac
=
4ab
c 0,140000 101
= = = 0,466667 104
b 0,300000 103

Observe que o efeito catastrfico foi eliminado.


2.6 Condicionamento de um problema
Geralmente podemos pensar um problema como um mapeamento
f onde a partir de valores de entrada x devemos encontrar a sada,
a soluo y, ou seja, f : x y, ou simplesmente

y = f (x) (2.1)

Entretanto, a entrada do problema x normalmente ter erros (por


exemplo, erros na coleta dos dados ou erros na representao dos
dados devido a arredondamentos). Assim, ao invs de usar x esta-
mos usando x para resolver o problema e encontrar a soluo y ,
ou seja, estamos resolvendo

y = f (x ) (2.2)

Estamos interessados em saber se os erros cometidos na entrada


x = x x influenciaram na sada do problema y = y y .
No caso mais simples, temos que x R e y R. Assumindo que f
seja diferencivel, a partir da srie de Taylor

f (x + x) f (x) + f 0 (x)x (2.3)

obtemos (subtraindo f (x) dos dois lados)

y = f (x + x) f (x) f 0 (x)x (2.4)

Para relacionarmos os erros relativos, dividimos o lado esquerdo por


y, o lado direito por f (x) = y e obtemos

y f 0 (x) xx
(2.5)
y f (x) x

sugerindo a definio de nmero de condicionamento de um pro-


blema.
Definio 5. Seja f uma funo diferencivel. O nmero de
condicionamento de um problema definido como
xf 0 (x)

f (x) :=


(2.6)
f (x)

e fornece
uma estimativa de quanto os erros relativos na entrada
x sero amplificados na sada y .
x y

De modo geral, quando f depende de vrias variveis, podemos


obter

n

f
X
f = |f (x1 ,x2 ,...,xn ) f (x1 , x2 ,...,xn )| (x1 , x2 ,...,xn ) xi
xi
i=1

Uma matriz de nmeros de condicionamento tambm poderia ser


obtida como em [5].

Exemplo 29. Considere o problema de calcular x em x = 2. Se
usarmos x = 1,999, quanto ser o erro relativo na sada? O erro
relativo na entrada

x 2 1,999

= = 0,0005 (2.7)


x 2

O nmero de condicionamento do problema calcular a raiz



xf 0 (x)
1
x
2 x

1
f (x) := = = (2.8)


f (x)
x 2

Ou seja, os erros
na entrada sero diminudos
pela metade. De fato,
usando y = 2 = 1,4142136... e y = 1,999 = 1,41386..., obtemos

y 2 1,999
= 0,000250031... (2.9)
y 2
Exemplo 30. Considere a funo f (x) = 10
1x2
e x = 0,9995 com
um erro absoluto na entrada de 0,0001.
Calculando y = f (x ) temos
10
y = 10002,500625157739705173 (2.10)
1 (0,9995)2
Mas qual a estimativa de erro nessa resposta? Quantos dgitos
significativos temos nessa resposta?
Sabendo que f 0 (x) = 10/(1 x2 )2 , o nmero de condicionamento

xf 0 (x)

2x2
f (x) := = (2.11)

1 x2

f (x)

o que nos fornece para x = 0,9995,

f (0,9995) 1998,5 (2.12)

Como o erro relativo na entrada



x 0,0001



=


0,00010005... (2.13)
x 0,9995
temos que o erro na sada ser aproximadamente

y x
f (x) 1998,5 0,00010005... 0,1999 (2.14)


y x

ou seja um erro relativo de aproximadamente 19,99%.


Note que se usarmos x1 = 0,9994 e x2 = 0,9996 (ambos no intervalo
do erro absoluto da entrada) encontramos
y1 8335,83 (2.15)
y2 12520,50 (2.16)
confirmando a estimativa de 19,99%.
Exemplo 31. O nmero 31 = 0,3 possui um representao infinita
tanto na base decimal quanto na base binria. Logo, quando repre-
sentamos ele no computador geramos um erro de arredondamento
que denotaremos por . Agora considere a seguinte sequncia:

1

x0 = 3
.
xn+1 = 4xn 1, nN


Observe que x0 = 13 , x1 = 4 13 1 = 13 , x2 = 13 , ou seja, temos uma
sequncia constante igual a 13 . Se calcularmos no computador essa
sequncia, temos que incluir os erros de arredondamento, ou seja,
1
x0 = +
3
1 1
 
x1 = 4x0 1 = 4 +  1 = + 4
3 3
1 1
 
x2 = 4x1 1 = 4 + 4 1 = + 42 
3 3
..
.
1
xn = + 4n 
3
Portanto o limite da sequncia diverge,
lim |xn | =
x

Qual o nmero de condicionamento desse problema?


Faa o teste no Scilab, colocando:
-->x = 1/3
e itere algumas vezes a linha de comando:
-->x = 4*x-1
Exemplo 32. Seja f (x) = x exp(x). Calcule o erro absoluto em se
calcular f (x) sabendo que x = 2 0,05.
Soluo. Temos que x 2 com erro absoluto de x = 0,05. Neste
caso, calculamos f , i.e. o erro absoluto em se calcular f (x), por:

f = |f 0 (x)|x .

Como f 0 (x) = (1 + x)ex , temos:

f = |(1 + x)ex | x
= |3e2 | 0,05 = 1,1084.

Portanto, o erro absoluto em se calcular f (x) quando x = 2 0,05


de 1,084.
2
Exemplo 33. Calcule o erro relativo ao medir f (x,y) = x x+12 e
2y

sabendo que x 3 conhecido com 10% de erro e y 2 conhecido


com 3% de erro.

Soluo. Calculamos as derivadas parciais de f :

f 2x3 (2x3 + 2x) 2y 2e2y


= e =
x x4 x3
e
f x2 + 1 2y
=2 e
y x2
Calculamos o erro absoluto em termos do erro relativo:
x
= 0,1 x = 3 0,1 = 0,3
|x|

y
= 0,03 y = 2 0,03 = 0,06
|y|
Aplicando a expresso para estimar o erro em f temos

f f
f = + y

x x

y
2e4 9+1 4
= 0,3 + 2 e 0,06 = 8,493045557
27 9
Portanto, o erro relativo ao calcular f estimado por
f 8,493045557
= 9+1 4 = 14%
|f | 9
e

Exemplo 34. No exemplo anterior, reduza o erro relativo em x


pela metade e calcule o erro relativo em f . Depois, repita o processo
reduzindo o erro relativo em y pela metade.

Soluo. Na primeira situao temos x = 3 com erro relativo de


5% e x = 0,05 3 = 0,15. Calculamos f = 7,886399450 e o erro
relativo em f de 13%. Na segunda situao, temos y = 2 com erro
de 1,5% e y = 2 0,015 = 0,03. Calculamos f = 4,853168892 e o
erro relativo em f de 8%. Observe que mesma o erro relativo em x
sendo maior, o erro em y mais significante na funo.
Exemplo 35. Considere um tringulo retngulo onde a hipotenusa
e um dos catetos so conhecidos a menos de um erro: hipotenusa
a = 3 0,01 metros e cateto b = 2 0,01 metros. Calcule o erro
absoluto ao calcular a rea dessa tringulo.
Soluo. Primeiro vamos encontrar a expresso para a rea em
funo da hipotenusa a e um cateto b. A tamanho de segundo
2 2 2
cateto
c dado pelo teorema de Pitgoras, a = b + c , ou seja,
c = a b . Portanto a rea
2 2

bc b a2 b 2
A= = .
2 2
Agora calculamos as derivadas
A ab
= 2 ,
a 2 a b2

A a2 b 2 b2
= 2 ,
b 2 2 a b2
e substituindo na estimativa para o erro A em termos de a = 0,01
e b = 0,01:

A A
A +

a a b b


3 5 5
0,01 + 0,01 = 0,01565247584
5 10
0,01
Em termos do erro relativo temos erro na hipotenusa de 3

0,333%, erro no cateto de 0,01
2
= 0,5% e erro na rea de

0,01565247584

2 32 22
= 0,7%
2


Exerccios

E 2.6.1. Considere que a varivel x 2 conhecida com um erro


relativo de 1% e a varivel y 10 com um erro relativo de 10%.
Calcule o erro relativo associado a z quando:
y4 x
z= e .
1 + y4
Suponha que voc precise conhecer o valor de z com um erro de
0,5%. Como engenheiro, voc prope uma melhoria na medio da
varivel x ou y? Explique.

E 2.6.2. A corrente I em ampres e a tenso V em volts em uma


lmpada se relacionam conforme a seguinte expresso:
V
 
I= ,
V0
onde um nmero entre 0 e 1 e V0 tenso nominal em volts.
Sabendo que V0 = 220 3% e = ,8 4%, calcule a corrente e o
erro relativo associado quando a tenso vale 220 1%.
Obs:. Este problema pode ser resolvido de duas formas distintas:
usando a expresso aproximada para a propagao de erro e ins-
pecionando os valores mximos e mnimos que a expresso pode
assumir. Pratique os dois mtodos.

E 2.6.3. A corrente I em ampres e a tenso V em volts em uma


lmpada se relacionam conforme a seguinte expresso:


V

I=
V0

Onde um nmero entre 0 e 1 e V0 a tenso nominal em volts.


Sabendo que V0 = 220 3% e = 0,8 4% Calcule a corrente
e o erro relativo associado quando a tenso vale 220 1%. Dica:
lembre que x = e ln(x)

E 2.6.4. Obtenha os valores de Id no problema 3.2.8. Lembre que


existem duas expresses disponveis:
vd
   
Id = IR exp 1
vt
e
v vd
Id =
R
Faa o estudo da propagao do erro e decida qual a melhor expres-
so em cada caso.
2.7 Mais exemplos

Exemplo 36. Observe a seguinte identidade

(1 + x) 1
f (x) = =1
x

Calcule o valor da expresso esquerda para x = 1012 , x = 1013 ,


x = 1014 , x = 1015 , x = 1016 e x = 1017 . Observe que quando
x se aproxima do  de mquina a expresso perde o significado. Veja
abaixo o grfico de f (x) em escala logartmica.
Exemplo 37. Neste exemplo, estamos interessados em compreen-
der mais detalhadamente o comportamento da expresso
1 n
 
1+ (2.17)
n
quando n um nmero grande ao comput-la em sistemas de nu-
meral de ponto flutuante com acurcia finita. Um resultado bem
conhecido do clculo nos diz que o limite de (2.17) quando n tende
a infinito o nmero de Euler:

n
1

lim 1+ = e = 2,718281828459... (2.18)
n n

Sabemos tambm que a sequncia produzida por (2.17) crescente,


isto :
1 2 3
1 1 1
  
1+ < 1+ < 1+ <
1 2 3

No entanto, quando calculamos essa expresso no Scilab, nos de-


frontamos com o seguinte resultado:

 n  n
1 1
n 1+ n
n 1+ n

1 2,0000000000000 102 2,7048138294215


2 2,2500000000000 104 2,7181459268249
3 2,3703703703704 106 2,7182804690957
4 2,4414062500000 108 2,7182817983391
5 2,4883200000000 1010 2,7182820532348
6 2,5216263717421 1012 2,7185234960372
7 2,5464996970407 1014 2,7161100340870
8 2,5657845139503 1016 1,0000000000000
9 2,5811747917132 1018 1,0000000000000
 n
1
Podemos resumir esses dados no seguinte grfico de 1 + n
em
funo de n:

Observe que quando x se torna grande, da ordem de 1015 , o gr-


fico da funo deixa de se crescente e apresenta oscilaes. Observe
tambm que a expresso se torna identicamente igual a 1 depois
de um certo limiar. Tais fenmenos no so intrnsecos da funo
f (x) = (1 + 1/x)x , mas oriundas de erros de arredondamento,
isto , so resultados numricos esprios. A fim de pr o compor-
tamento numrico de tal expresso, apresentamos abaixo o grfico
da mesma funo, porm restrito regio entre 1014 e 1016 .

Para compreendermos melhor por que existe um limiar N que,


quando atingido torna a expresso do exemplo acima identicamente
igual a 1, observamos a sequncia de operaes realizadas pelo com-
putador:
x 1/x 1 + 1/x (1 + 1/x)x (2.19)
Devido ao limite de preciso da representao de nmeros em ponto
flutuante, existe um menor nmero representvel que maior do
que 1. Este nmero 1+eps, onde eps chamado de psilon de
mquina e o menor nmero que somado a 1 produz um resul-
tado superior a 1 no sistema de numerao usado. O psilon de
mquina no sistema de numerao double vale aproximadamente
2,22 1016 . No Scilab, o epsilon de mquina a constante eps.
Observe que:
-->1+%eps
ans =
1.0000000000000002220446
Quando somamos a 1 um nmero positivo inferior ao psilon de
mquina, obtemos o nmero 1. Dessa forma, o resultado obtido
pela operao de ponto flutuante 1 + x para 0 < x < 2,22 1016
1.
Portanto, quando realizamos a sequncia de operaes dada em
(2.19), toda informao contida no nmero x perdida na soma
com 1 quando 1/x menor que o psilon de mquina, o que ocorre
quando x > 5 1015 . Assim (1 + 1/x) aproximado para 1 e a
ltima operao se resume a 1x , o que igual a 1 mesmo quando x
grande.
Um erro comum acreditar que o perda de significncia se deve
ao fato de 1/x ser muito pequeno para ser representado e aproxi-
mando para 0. Isto falso, o sistema de ponto de flutuante permite
representar nmeros de magnitude muito inferior ao psilon de m-
quina. O problema surge da limitao no tamanho da mantissa.
Observe como a seguinte sequncia de operaes no perde signi-
ficncia para nmeros positivos x muito menores que o psilon de
mquina:
x 1/x 1/(1/x) (2.20)
compare o desempenho numrico desta sequncia de operaes para
valores pequenos de x com o da seguinte sequncia:

x 1 + x (1 + x) 1. (2.21)
 n
Finalmente, notamos que quando tentamos calcular 1 + n1 para
n grande, existe perda de significncia no clculo de 1 + 1/n. Para
entendermos isso melhor, vejamos o que acontece no Scilab quando
n = 7 1013 :
-->n=7e13
n =
7.000000000000000000D+13

-->1/n
ans =
1.428571428571428435D-14

-->y=1+1/n
y =
1.000000000000014211D+00
Observe a perda de informao ao deslocar a mantissa de 1/n. Para
evidenciar o fenmenos, observamos o que acontece quando tenta-
mos recalcular n subtraindo 1 de 1 + 1/n e invertendo o resultado:
-->y-1
ans =
1.421085471520200372D-14

-->1/(y-1)
ans =
7.036874417766400000D+13
Exemplo 38 (Analogia da balana). Observe a seguinte compa-
rao interessante que pode ser feita para ilustrar os sistemas de
numerao com ponto fixo e flutuante: o sistema de ponto fixo
como uma balana cujas marcas esto igualmente espaadas; o sis-
tema de ponto flutuante como uma balana cuja distncia entre
as marcas proporcional massa medida. Assim, podemos ter
uma balana de ponto fixo cujas marcas esto sempre distanciadas
de 100g (100g, 200g, 300g, ..., 1Kg, 1,1Kg,...) e outra balana de
ponto flutuante cujas marcas esto distanciadas sempre de aproxi-
madamente um dcimo do valor lido (100g, 110g, 121g, 133g, ...,
1Kg, 1,1Kg, 1,21Kg, ...) A balana de ponto fixo apresenta uma
resoluo baixa para pequenas medidas, porm uma resoluo alta
para grandes medidas. A balana de ponto flutuante distribui a
resoluo de forma proporcional ao longo da escala.
Seguindo nesta analogia, o fenmeno de perda de significncia pode
ser interpretado como a seguir: imagine que voc deseje obter o
peso de um gato (aproximadamente 4Kg). Dois processos esto dis-
ponveis: colocar o gato diretamente na balana ou medir seu peso
com o gato e, depois, sem o gato. Na balana de ponto flutuante,
a incerteza associada na medida do peso do gato (sozinho) apro-
ximadamente 10% de 4Kg, isto , 400g. J a incerteza associada
medida da uma pessoa (aproximadamente 70Kg) com o gato de
10% do peso total, isto , aproximadamente 7Kg. Esta incerteza
da mesma ordem de grandeza da medida a ser realizada, tornado o
processo impossvel de ser realizado, j que teramos uma incerteza
da ordem de 14Kg (devido dupla medio) sobre uma grandeza
de 4Kg.
Exerccios

E 2.7.1. Considere as expresses:

exp(1/)
1 + exp(1/)
e
1
exp(1/) + 1
com > 0. Verifique que elas so idnticas como funes reais.
Teste no computador cada uma delas para = 0,1, = 0,01 e
= 0,001. Qual dessas expresses mais adequada quando um
nmero pequeno? Por qu?

E 2.7.2. Encontre expresses alternativas para calcular o valor das


seguintes funes quando x prximo de zero.
1cos(x)
a) f (x) = x2

b) g(x) = 1+x1

c) h(x) = x + 106 103

d) i(x) = 1 + ex 2 Dica: Faa y = ex 1

E 2.7.3. Use uma identidade trigonomtrica adequada para mos-


trar que:
!2
1 cos(x) 1 sin(x/2)
= .
x2 2 x/2
Analise o desempenho destas duas expresses no computador quando
x vale 105 , 106 , 107 , 108 , 109 , 10200 e 0. Discuta o resultado.
Dica: Para |x| < 105 , f (x) pode ser aproximada por 1/2 x2 /24
com erro de truncamento inferior a 1022 .
E 2.7.4. Reescreva as expresses:

e2x + 1 ex e e2x + x2 ex
de modo que seja possvel calcular seus valores para x = 100 utili-
zando a aritmtica de ponto flutuante ("Double") no computador.

E 2.7.5. Na teoria da relatividade restrita, a energia cintica de


uma partcula e sua velocidade se relacionam pela seguinte frmula:

1
E = mc2 q 1 ,
1 (v/c)2

onde E a energia cintica da partcula, m a massa de repouso,


v o mdulo da velocidade e c a velocidade da luz no vcuo dada
por c = 299792458m/s. Considere que a massa de repouso m =
9,10938291 1031 Kg do eltron seja conhecida com erro relativo
de 109 . Qual o valor da energia e o erro relativo associado a essa
grandeza quando v = 0,1c, v = 0,5c, v = 0,99c e v = 0,999c sendo
que a incerteza relativa na medida da velocidade 105 ?

E 2.7.6. Deseja-se medir a concentrao de dois diferentes oxi-


dantes no ar. Trs sensores eletroqumicos esto disponveis para a
medida e apresentam a seguintes respostas:

v1 = 270[A] + 30[B], v2 = 140[A] + 20[B] e v3 = 15[A] + 200[B]

as tenses v1 , v2 e v3 so dadas em mV e as concentraes em


milimol/l.
a) Encontre uma expresso para os valores de [A] e [B] em termos
de v1 e v2 e, depois, em termos de v1 e v3 . Dica: Se ad 6= bc,
ento a matriz A dada por

a b
A=

c d

inversvel e sua inversa dada por



1 d b
A1 = .
ad bc c a

b) Sabendo que incerteza relativa associada s sensibilidades dos
sensores 1 e 2 de 2% e que a incerteza relativa associada
s sensibilidades do sensor 3 10%, verifique a incerteza as-
sociada medida feita com o par 1 2 e o par 1 3. Use
[A] = [B] = 10milimol/l. Dica: Voc deve diferenciar as
grandezas [A] e [B] em relao aos valores das tenses.

]
Captulo 3

Soluo de equaes de
uma varivel

Neste captulo buscaremos aproximaes numricas para razes de


funes de uma varivel que so continuamente diferenciveis.
3.1 Existncia de razes reais
Podemos utilizar o teorema do valor intermedirio para determinar
a existncia de raiz real em um intervalo.
Teorema 1 (Teorema do Valor Intermedirio). Se f : [a,b]
R um funo contnua e K for um nmero entre f (a) e f (b),
ento existe c (a,b) para o qual f (c) = K.

Em particular, se f (a) > 0 e f (b) < 0, ento 0 [f (b),f (a)] e


podemos garantir a existncia de c (a,b) tal que f (c) = 0, i.e.
existe uma raiz no intervalo (a,b). A mesma afirmao vlida se
f (a) < 0 e f (b) > 0. Em outras palavras, o Teorema do Valor
Intermedirio afirma que uma funo contnua no pode mudar de
sinal sem passar por zero.
Exemplo 39. Mostre que existe pelo menos uma soluo da equa-
o ex = x + 2 no intervalo (2,0).
De fato, se tomarmos f (x) = ex x 2, ento f (0) = 1 2 < 0
e f (2) = e2 + 2 2 > 0. Pelo teorema do valor intermedirio,
Figura 3.1: Teorema do valor intermedirio

existe c (2,0) tal que f (c) = 0, ou seja, existe pelo menos uma
soluo nesse intervalo.

Quando procuramos aproximaes para razes de funes, precisa-


mos inicialmente isolar cada raiz em um intervalo onde a raiz
nica. Ou seja, precisamos garantir a existncia e a unicidade da
raiz dentro daquele intervalo.
Para garantirmos que exista uma nica raiz num intervalo neces-
srio que a funo troque de sinal e seja montona neste intervalo.

Teorema 2. Se f : [a,b] R um funo diferencivel, f (a)


f (b) < 0 e f 0 (x) > 0 (ou f 0 (x) < 0) para x (a,b), ento existe
uma nica raiz c em (a,b).

Em outras palavras, se a funo corta o eixo x e sempre crescente


(ou sempre decrescente), ento a raiz nica.

Exemplo 40. Observamos que existe uma nica soluo da equao


ex = x + 2 no intervalo (2, 0). A existncia foi estabelecida no
exemplo anterior. Para garantir a unicidade, observe que f 0 (x) =
ex 1 e, portanto, f 0 (x) < 0 para x (2, 0). Logo a raiz nica.
Podemos inspecionar o comportamento da funo f (x) = ex x
2 e de sua derivada fazendo seus grficos no Scilab. Para tanto,
podemos fazer o seguinte teste:
-->x = linspace(-2,0,50);
-->deff('y = f(x)','y=exp(x)-x-2') // define f
-->plot(x,f(x)) // grafico de f
-->deff('y = fl(x)','y=exp(x)-1') // a derivada
-->plot(x,fl(x)) // grafico de f'
Exerccios

E 3.1.1. Mostre que a equao


1
ln(x) + x3 = 10
x
possui uma nica soluo positiva. Faa o grfico e observe.

E 3.1.2. Use o teorema do valor intermedirio para mostrar que o


erro absoluto ao aproximar a raiz da funo f (x) = ex x 2 por
x = 1,841 menor que 103 .

E 3.1.3. Aplique o teorema do valor intermedirio a um intervalo


adequado e mostre que o erro absoluto associado aproximao
1,962 para a soluo exata x de:

ex + sin(x) + x = 10

inferior a 104 .
E 3.1.4. Mostre que a equao
1
ln(x) + x =v
x
possui uma soluo para cada v real e que esta soluo nica.
3.2 Mtodo da bisseo

Suponha que a funo f : [a,b] R seja contnua e que f (a)


f (b) < 0, ou seja, f possui uma raiz no intervalo. Uma primeira
aproximao para a raiz pode ser o ponto mdio p = a+b
2
.
Se f (p)f (a) < 0, ento a raiz est a esquerda de p, seno, a raiz est
a direita de p (veja Fig. 3.2). Depois de escolher o intervalo correto,
fazemos uma nova aproximao para a raiz tomando o ponto mdio
do novo intervalo.
Em outras palavras, seja (a(0) ,b(0) ) = (a,b) o intervalo inicial e
(0) (0)
p(0) = a +b 2
a aproximao inicial. Se f (p(0) ) f (a(0) ) < 0, ento
(a(1) , b(1) ) = (a(0) , p(0) ), caso contrrio, (a(1) , b(1) ) = (p(0) , b(0) ). A
(1) (1)
nova aproximao para a raiz p(1) = a +b 2
. Esse procedimento
produz uma sequncia p(n) que converge para a raiz.

Exemplo 41. Faa 5 iteraes do mtodo da bisseo para encon-


Figura 3.2: Mtodo da bisseo.

trar a raiz de f (x) = x3 + 5x2 12 utilizando a(0) = 1 e b(0) = 2.

n a(n) b(n) p(n) f (a(n) ) f (b(n) ) f (p


0 a(0) = 1 b(0) = 2 p(0) = 1,5 6 16 2,6
1 a(1) = 1 b(1) = p1 = 1,5 p(1) = 1,25 6 2,625 2,23
2 a(2) = 1,25 b(2) = 1,5 p(2) = 1,375
No console do Scilab, temos:

-->deff('y=f(x)','y = x^3 + 5*x^2 - 12')


-->//iteracao 0
-->a=1; b=2; p=(a+b)/2;
-->[a,b,p,f(a),f(b),f(p)]
ans =
1. 2. 1.5 - 6. 16. 2.625
-->//iteracao 1
-->b = p; p = (a+b)/2;
-->[a,b,p,f(a),f(b),f(p)]
ans =
1. 1.5 1.25 - 6. 2.625 - 2.234375

Observe que a distncia entre p(0) e a raiz p no pode exceder


metade do intervalo, ou seja |p(0) p | ba
2
. Da mesma forma,
(1) 1
o erro absoluto entre p e p menor que 4 do intervalo, isto ,
|p(1) p | ba
22
. De modo geral, o erro absoluto na iterao n
estimado por
ba
|p(n) p | , n 1.
2n+1
Tambm, se n := |p(n) p |, ento vale:
1
n+1 (n )1
2
e, por isso, dizemos que o mtodo da bisseo possui taxa de con-
vergncia linear. Um mtodo com taxa de convergncia super-linear
satisfaz
n+1 C (n )m ,
onde m > 1 e C uma constante.
Exemplo 42. Determine quantas iteraes so necessrias para
encontrar a raiz de f (x) = x3 + 5x2 12 com uma preciso de 103 ,
utilizando a(0) = 1 e b(0) = 2.
Observe que precisamos da seguinte desigualdade
ba 1
|p(n) p | n+1
= n+1 103 .
2 2
Assim,
log2 2(n+1) log2 103
ou seja,

(n+1) log2 2 3 log2 (10) n+1 3 log2 (10) 9,97 n 8,97

Portanto, n 9.
3.2.1 Cdigo Scilab: mtodo da bisseo
O seguinte cdigo uma implementao no Scilab do algoritmo da
bisseo. As variveis de entrada so:

f - funo objetivo

a - extremo esquerdo do intervalo de inspeo [a, b]

b - extremo direito do intervalo de inspeo [a, b]

TOL - tolerncia (critrio de parada)

N - nmero mximo de iteraes

A varivel de sada :

p - aproximao da raiz de f, i.e. f (p) 0.

function [p] = bissecao(f, a, b, TOL, N)


i = 1
fa = f(a)
while (i <= N)
//iteracao da bissecao
p = a + (b-a)/2
fp = f(p)
//condicao de parada
if ((fp == 0) | ((b-a)/2 < TOL)) then
return p
end
//bissecta o intervalo
i = i+1
if (fa * fp > 0) then
a = p
fa = fp
else
b = p
end
end
error ('Num. max. de iter. excedido!')
endfunction
Exerccios

E 3.2.1. Mostre que a equao do problema 3.1.4 possui uma


soluo no intervalo [1, v + 1] para todo v positivo. Dica: defina
f (x) = ln(x) + x x1 v e considere a seguinte estimativa:
Z v+1 Z v+1
f (v + 1) = f (1) + f 0 (x)dx v + dx = 0.
1 1

Use esta estimativa para iniciar o mtodo de bisseo e obtenha o


valor da raiz com pelo menos 6 algarismos significativos para v =
1, 2, 3, 4 e 5.

E 3.2.2. Trace o grfico e isole as trs primeiras razes positivas


da funo:
x
 
f (x) = 5 sin(x2 ) exp
10
em intervalos de comprimento 0,1.

E 3.2.3. Utilize o mtodo da bisseo na equao x = cos(x)
para encontrar p(4) em [a,b] = [0, 1].

E 3.2.4. Considere o seguinte problema fsico: uma plataforma


est fixa a uma parede atravs de uma dobradia cujo momento
dado por:
= k,
onde angulo da plataforma com a horizontal e k uma constante
positiva. A plataforma feita de material homogneo, seu peso
P e sua largura l. Modele a relao entre o ngulo e o peso P
prprio da plataforma. Encontre o valor de quando l = 1 m, P =
200 N, k = 50 Nm/rad, sabendo que o sistema est em equilbrio.
Use o mtodo da bisseo e expresse o resultado com 4 algarismos
significativos.

E 3.2.5. Interprete a equao cos(x) = kx como o problema de


encontrar a interseco da curva y = cos(x) com y = kx. Encontre
o valor positivo k para o qual essa equao admite exatamente duas
razes positivas distintas.

E 3.2.6. Considere a equao de Lambert dada por:

xex = t,

onde t um nmero real positivo. Mostre que esta equao pos-


sui uma nica soluo x que pertence ao intervalo [0, t]. Usando
esta estimativa como intervalo inicial, quantos passos so necessrio
para obter o valor numrico de x com erro absoluto inferior a 106
quando t = 1, t = 10 e t = 100 atravs do mtodo da bisseo?
Obtenha esses valores.
4 2
O polinmio f (x) = x 4x + 4 possui razes duplas em
E 3.2.7.

2 e 2. O mtodo da bisseo pode ser aplicados a f ? Explique.

E 3.2.8. O desenho abaixo mostra um circuito no linear envol-


vendo uma fonte de tenso constante, um diodo retificador e um
resistor. Sabendo que a relao entre a corrente (Id ) e a tenso (vd )
no diodo dada pela seguinte expresso:

vd
   
Id = IR exp 1 ,
vt

onde IR a corrente de conduo reversa e vt , a tenso trmica dada


por vt = kTq
com k, a constante de Boltzmann, T a temperatura
de operao e q, a carga do eltron. Aqui IR = 1pA = 1012 A,
T = 300 K. Escreva o problema como uma equao na incgnita
vd e, usando o mtodo da bisseo, resolva este problema com 3
algarismos significativos para os seguintes casos:
a) V = 30 V e R = 1 k.

b) V = 3 V e R = 1 k.

c) V = 3 V e R = 10 k.

d) V = 300 mV e R = 1 k.

e) V = 300 mV e R = 1 k.

f) V = 30 V e R = 1 k.

g) V = 30 V e R = 10 k.
Dica: V = RId + vd .
3.3 Iterao de Ponto Fixo
Vamos analisar o mtodo babilnico para extrao da raiz quadrada
de um nmero positivo A usando operaes de soma, subtrao,
diviso e multiplicao.
Seja r > 0 uma aproximao para A. Temos trs possibilidades:
A

A

r> A = r
< A = A r
,r
A

r= A = r
= A
A
 
r< A = r
> A = A r, Ar

Ou seja, uma aproximao melhor para A est no intervalo entre
r e Ar que pode ser aproximada como

A
r+ r
x=
2
Aplicando esse mtodo repetidas vezes, podemos construir a itera-
o

x(1) = r
x(n) A
x(n+1) = + (n) , n = 1,2,3,...
2 2x

Exemplo 43. Para obter uma aproximao para 5, podemos ini-
ciar com a aproximao inicial r = 2 e A = 5.
Temos que

x(1) = 2

e a partir da iterao

x(n) 2,5
x(n+1) = + (n)
2 x
obtemos
2 2,5
x(2) = + = 1 + 1,25 = 2,25
2 2
2,25 2,5
x(3) = + = 2,2361111
2 2,25
2,2361111 2,5
x(4) = + = 2,236068
2 2,2361111
2,236068 2,5
x(5) = + = 2,236068
2 2,236068

Exemplo 44. Para obter uma aproximao para 10, podemos
iniciar com r = 1 e A = 10.
Assim
x(1) = 1
e a partir de
x(n) 5
x(n+1) = + (n)
2 x
obtemos
1 5
x(2) = + = 0,5 + 5 = 5,5
2 1
5,5 5
x(3) = + = 3,6590909
2 5,5
3,6590909 5
x(4) = + = 3,1960051
2 3,6590909
3,1960051 5
x(5) = + = 3,1624556
2 3,1960051
3,1624556 5
x(6) = + = 3,1622777
2 3,1624556
3,1622777 5
x(7) = + = 3,1622777
2 3,1622777

A experimentao numrica sugere que o mtodo funciona, mas


surgem trs perguntas:

1. Ser que a sequncia convergente?



2. Caso seja
convergente, ser que o limite x = limn xn
igual a A?

3. Caso seja convergente, quo rpida a convergncia?

A segunda pergunta a mais fcil de ser respondida.


Supondo que o limite de xn exista, basta substituir x na iterao:

x(n) A
lim x(n+1) = lim + n
lim
n n 2 2x(n)

x A
x = +
2 2x
x A
=
2 2x
A
x =
x
(x )2 = A

x = A
Portanto, sempre que esse mtodo converge, temos a garantia de
que o limite A. (Independente do valor inicial!)
De fato, podemos provar que o mtodo convergente para qualquer
valor inicial positivo x. E, ainda, que a convergncia rpida (ainda
precisamos definir isso).
Para responder essas perguntas, devemos formalizar o conceito de
ponto fixo. Antes disso, analisemos mais um exemplo:
Exemplo 45. Queremos resolver a equao
xex = 10.
Observe que este problema equivalente a resolver
10
 
x = ln
x
ou
x = 10ex .
A partir dessas duas equaes podemos propor dois processos ite-
rativos diferentes:
10
 
(n+1)
a) x = ln (n)
x

(n)
b) x(n+1) = 10ex

Supondo que x(1) = 1 uma aproximao inicial para a soluo


deste problema, iterando a primeira equao temos

x(1) = 1
x(2) = ln (10) = 2,3025851
!
(3) 10
x = ln = 1,4685526
2,3025851
!
10
x(4) = ln = 1,9183078
1,4685526
!
10
x(5) = ln = 1,6511417
1,9183078
..
.
x(11) = 1,7421335
x(21) = 1,7455151
x(31) = 1,745528
x(32) = 1,745528
Iterando a segunda equao obtemos a sequncia

x(1) = 1
x(2) = 10e1 = 3,6787944
x(3) = 10e3,6787944 = 0,2525340
x(4) = 10e0,2525340 = 7,7682979
x(5) = 10e7,7682979 = 0,0042293
x(6) = 10e0,0042293 = 9,9577961

O experimento numrico sugere que a iterao a converge para


1,745528... e a iterao b no convergente.
Note que queramos resolver a equao f (x) = xex 10 = 0. Ao in-
vs disso, transformamos essa equao em uma equao de iterao
do tipo
x(n+1) = g(x(n) )
e iteramos at encontrar p tal que g(p) = p.
3.3.1 O mtodo do ponto fixo

Definio 6. Dizemos que p um ponto fixo de uma funo


g se g(p) = p.

Definio 7. Uma contrao uma funo real g : [a,b]


[a,b] tal que

|g(x) g(y)| |x y|, 0 < 1.

Observao 8. A desigualdade |g(x) g(y)| |x y| implica


que g contnua.
Assim, g uma contrao em [a,b] se |g 0 (x)| < 1 para a < x < b.
Teorema 3. Se g : [a,b] [a,b] uma contrao, ento existe
um nico ponto fixo p [a,b] tal que g(p) = p.
Alm disso, a sequncia

x(n+1) = g(x(n) )

convergente para qualquer x1 [a,b] e

lim x(n) = p.
n

Demonstrao. Comeamos demonstrando que existe pelo menos


um ponto fixo. Para tal definimos a funo f (x) = x g(x) e
observamos que

f (a) = a g(a) a a = 0

e
f (b) = b g(b) b b = 0
Se f (a) = a ou f (b) = b, ento o ponto fixo existe. Caso contrrio,
as desigualdade so estritas e a funo muda de sinal no intervalo.
Como a funo contnua, pelo teorema do valor intermedirio,
existe um ponto x no intervalo (a,b) tal que f (x ) = 0, ou seja,
x g(x ) = 0. Observe que x um ponto fixo de g, pois g(x ) = x .
Para provar que o ponto fixo nico, observamos que se x e x
so pontos fixos, eles devem ser iguais, pois:
|x x | = |g(x ) g(x )| |x x |
A desigualdade |x x | |x x | com < 1 implica |x x | =
0.

Para demonstrar a convergncia da sequncia, observamos a relao


|x(n+1) x | = |g(x(n) ) x | = |g(x(n) ) g(x )| |x(n) x |.
Agora observamos que
|x(n) x | |x(n1) x | 2 |x(n2) x | n |x(0) x |.
Portanto
lim |x(n) x | = 0
n
e
lim x(n) = x
n

Observaes:

A condio |g(x) g(y)| |x y| satisfeita sempre que


|g 0 (x)| < 1 em todo o intervalo pois
Z y Z y
g 0 (s) |g 0 (s)| ds

|g(x) g(y)| = ds
Z xy x

ds = |x y|, x < y.
x

A desigualdade estrita < 1 necessria.

A condio f ([a,b]) [a,b] necessria.


3.3.2 Teste de convergncia
Seja g : [a,b] uma funo C 0 [a,b] e x (a,b) um ponto fixo de g.
Ento x dito estvel se existe uma regio (x ,x + ) chamada
bacia de atrao tal que x(n+1) = g(x(n) ) convergente sempre que
x(0) (x ,x + ).

Teorema 4. Se g C 1 [a,b] e |g 0 (x )| < 1, ento x estvel.


Se |g 0 (x )| > 1 instvel e o teste inconclusivo se |g 0 (x )| = 1.

Exemplo 46. Considere o problema de encontrar a soluo da


equao algbrica
cos(x) = x
vendo-a como o ponto fixo da funo

f (x) = cos(x).

Mostraremos que o teorema do ponto fixo se aplica a esta funo


com [a,b] = [1/2,1].
Precisamos provar:
1. f ([1/2,1]) [1/2,1];

2. |f 0 (x)| < , < 1, x [1/2,1].


Para provar o item 1, observamos que f (x) decrescente no inter-
valo, pelo que temos:

0,54 < cos(1) cos(x) cos(1/2) < 0,88

Como [0,54, 0,88] [0,5, 1], temos o item a.


Para provar o item 2, observamos que

f 0 (x) = sin(x)

Da mesma forma, temos a estimativa:

0,85 < sin(1) sin(x) sin(1/2) < 0,47

Assim, |f 0 (x)| < 0,85 temos a desigualdade com = 0,85 < 1.


Agora, observamos o comportamento numrico da sequncia:



x(n+1) = cos(x(n) ), n 0
x(0) = 1

Os primeiros termos podem ser calculados numericamente e so


dados por:
x(1) = cos(x0 ) = cos(1) = 0,5403023
x(2) = cos(x1 ) = cos(0,5403023) = 0,8575532
x(3) = cos(x2 ) = cos(0,8575532) = 0,6542898
x(4) = cos(x3 ) = cos(0,6542898) = 0,7934804
x(5) = cos(x4 ) = cos(0,7934804) = 0,7013688
x(6) = cos(x5 ) = cos(0,7013688) = 0,7639597
x(7) = cos(x6 ) = cos(0,7639597) = 0,7221024
x(8) = cos(x7 ) = cos(0,7221024) = 0,7504178
x(9) = cos(x8 ) = cos(0,7504178) = 0,7314040
x(10) = cos(x9 ) = cos(0,7314040) = 0,7442374
x(11) = cos(x10 ) = cos(0,7442374) = 0,7356047
x(12) = cos(x11 ) = cos(0,7356047) = 0,7414251
x(13) = cos(x12 ) = cos(0,7414251) = 0,7375069
..
.
(41)
3.3.3 Estabilidade e convergncia
A fim de compreendermos melhor os conceitos de estabilidade e
convergncia, considere uma funo (x) com um ponto fixo x =
g(x ) e analisemos o seguinte processo iterativo:
 
x(n+1) = g x(n)
x(0) = x

Vamos supor que a funo g(x) pode ser aproximada por seu po-
linmio de Taylor em torno do ponto fixo:
 
g(x) = g(x ) + (x x )g 0 (x ) + O (x x )2 , n 0
 
= x + (x x )g 0 (x ) + O (x x )2
x + (x x )g 0 (x )

Substituindo na relao de recorrncia, temos


 
x(n+1) = g x(n) x + (x(n) x )g 0 (x )
Ou seja:  
x(n+1) x (x(n) x )g 0 (x )
Tomando mdulos, temos:

x x(n) x |g 0 (x )| ,
(n+1)
x

| {z } | {z }
n+1 n

onde n = x(n) x .

Concluses:
Se |g 0 (x )| < 1, ento, a distncia de x(n) at o ponto fixo x
est diminuindo a cada passo.
Se |g 0 (x )| > 1, ento, a distncia de x(n) at o ponto fixo x
est aumentando a cada passo.
Se |g 0 (x )| = 1, ento, nossa aproximao de primeiro or-
dem no suficiente para compreender o comportamento da
sequncia.
Fixaremos, portanto, nos casos quando |g 0 (x )| < 1.
3.3.4 Erro absoluto e tolerncia

Na prtica, quando se aplica uma iterao como esta, no se


conhece
de antemo o valor do ponto fixo x . Assim, o erro n = x(n) x
precisa ser estimado com base nos valores calculados x(n) . Uma
abordagem frequente analisar a evoluo da diferena entre dois
elementos da sequncia:


n = x(n+1) x(n)


A pergunta natural : Ser que o erro n = x(n) x pequeno

quando n = x(n+1) x(n) for pequeno?

Para responder a esta pergunta, observamos que

x = lim x(n)
n
portanto:
    
x x(N ) = x(N +1) x(N ) + x(N +2) x(N +1) + x(N +3) x(N +
 
x(N +k+1) x(N +k)
X
=
k=0

Usamos tambm as expresses:

x(n+1) x + (x(n) x )g 0 (x )
x(n) x + (x(n1) x )g 0 (x )

Subtraindo uma da outra, temos:

x(n+1) x(n) (x(n) x(n1) )g 0 (x )

Portanto:
k
x(N +k+1) x(N +k) (x(N +1) x(N ) ) (g 0 (x ))
E temos:
 
x x(N ) = x(N +k+1) x(N +k)
X

k=0

k
(x(N +1) x(N ) ) (g 0 (x ))
X

k=0
1
= (x(N +1) x(N ) ) , |g 0 (x )| < 1
1 g 0 (x )

Tomando mdulo, temos:




1
x x(N ) x(N +1) x(N )

1 g 0 (x )
N
N
1 g 0 (x )

Concluses: Tendo em mente a relao x(n+1) x(n) (x(n)


x(n1) )g 0 (x ), conclumos:
Quando g 0 (x ) < 0, o esquema alternante e o erro N pode
ser estimado diretamente da diferena N .

Quando g 0 (x ) > 0, o esquema montono e 1g10 (x ) > 1, pelo


que o erro N maior que a diferena N . A relao ser to
mais importante quando mais prximo da unidade for g 0 (x ),
ou seja, quando mais lenta for a convergncia.
x(n+1) x(n)
Como g 0 (x ) x(n) x(n1)
, temos

n
|g 0 (x )|
n1
e portanto
N
N .
1 n1
n

Observao 9. Deve-se exigir que n < n1


Exerccios

E 3.3.1. Mostre que a equao:

cos(x) = x

possui uma nica soluo no intervalo [0, 1]. Encontre uma aproxi-
mao para esta soluo com 4 dgitos significativos.

E 3.3.2. Verifique (analiticamente) que a nica soluo real da


equao:
xex = 10
ponto fixo das seguintes funes:
 
10
a) g(x) = ln x

xex 10
b) g(x) = x 15
xex 10
c) g(x) = x 10+ex
Implemente o processo iterativo x(n+1) = g(x(n) ) para n 0 e com-
pare o comportamento. Discuta os resultados com base na teoria
estudada.

E 3.3.3. Verifique (analiticamente) que a nica soluo real da


equao:
cos(x) = x
ponto fixo das seguintes funes:

a) g(x) = cos(x)

b) g(x) = 0,4x + 0,6 cos(x)


cos(x)x
c) g(x) = x + 1+sin(x)

Implemente o processo iterativo x(n+1) = g(x(n) ) para n 0 e com-


pare o comportamento.Discuta os resultados com base na teoria
estudada.
E 3.3.4. Encontre a soluo de cada equao com erro absoluto
inferior a 106 .

a) ex = x + 2 no intervalo (2,0).

b) x3 + 5x2 12 = 0 no intervalo (1,2).



c) x = cos(x) no intervalo (0,1).

E 3.3.5. Encontre numericamente as trs primeiras razes positivas


da equao dada por:
x
cos(x) =
10 + x2

com erro absoluto inferior a 106 .


2
E 3.3.6. Calcule uma equao da reta tangente a curva y = e(x1)
que passa pelo ponto (3, 1/2).
E 3.3.7. Resolva numericamente a inequao:
2
ex < 2x

E 3.3.8. Considere os seguintes processos iterativos:




x(n+1) = cos(x(n) )
a
x(1) = .5

e (3.1)


x(n+1) = .4x(n) + .6 cos(x(n) )
b
x(1) = .5

Use o teorema do ponto fixo para verificar que cada um desses pro-
cessos converge para a soluo da equao x de cos(x) = x. Ob-
serve o comportamento numrico dessas sequncias. Qual estabiliza
mais rpido com cinco casas decimais? Discuta.
Dica: Verifique que cos([0.5,1]) [0.5,1] e depois a mesma identi-
dade para a funo f (x) = .4x + .6 cos(x).

E 3.3.9. Use o teorema do ponto fixo aplicado a um intervalo


adequado para mostrar que a funo g(x) = ln(100 x) possui um
ponto fixo estvel.

E 3.3.10. Na hidrulica, o fator de atrito de Darcy dado pela


implicitamente pela equao de Colebrook-White:
!
1 2.51
= 2 log10 +
f 14.8Rh Re f
onde f o fator de atrito, a rugosidade do tubo em metros,
Rh o raio hidrulico em metros e Re o nmero de Reynolds.
Considere = 2mm, Rh = 5cm e Re = 10000 e obtenha o valor de
f pela iterao:
!
(n+1) 2.51x(n)
x = 2 log10 +
14.8Rh Re
E 3.3.11. Encontre uma soluo aproximada para equao alg-
brica
180 100x = 0.052 sinh1 (1013 x)

com erro absoluto inferior a 103 usando um mtodo iterativo. Es-


time o erro associado ao valor de v = 180100x = 0.052 sinh1 (1013 x),
usando cada uma dessas expresses. Discuta sucintamente o resul-
tado obtido. Dica: Este caso semelhante ao problema 3.2.8.

E 3.3.12. Considere que xn satisfaz a seguinte relao de recor-


rncia:
xn+1 = xn (xn x )

onde e x so constantes. Prove que

xn x = (1 )n1 (x1 x ).

Conclua que xn x quando |1 | < 1.


E 3.3.13. Considere o seguinte esquema iterativo:


x(n+1) = xn + q n
x(0) = 0

onde q = 1 106 .
a) Calcule o limite
lim x(n)
x = n
analiticamente.

b) Considere que o problema de obter o limite da sequncia nu-


mericamente usando como critrio de parada que |x(n+1)
x(n) | < 105 . Qual o valor produzido pelo esquema num-
rico? Qual o desvio entre o valor obtido pelo esquema num-
rico e o valor do limite obtido no item a? Discuta. (Dica:
Voc no deve implementar o esquema iterativo, obtendo o
valor de x(n) analiticamente)
c) Qual deve ser a tolerncia especificada para obter o resultado
com erro relativo inferior a 102 ?

E 3.3.14. Considere o seguinte esquema iterativo:

x(n+1) = x(n) [x(n) ]3 , x(n) 0

com x(0) = 102 . Prove que {x(n) } sequncia de nmero reais


positivos convergindo para zero. Verifique que so necessrios mais
de mil passos para que x(n) se torne menor que 0.9x(0) .

E 3.3.15.

a) Use o teorema do ponto fixo para mostrar que a funo g(x) =


1
1sin(x) possui um nico ponto fixo estvel o intervalo [ 10 ,1].
(n+1) (n)
Construa um mtodo iterativo x = g(x ) para encontrar
esse ponto fixo. Use o Scilab para encontrar o valor numrico
do ponto fixo.
b) Verifique que funo (x) = 12 [x + 1 sin(x)] possui um ponto
fixo x que tambm o ponto fixo da funo g do item a. Use
o Scilab para encontrar o valor numrico do ponto fixo atravs
da iterao x(n+1) = (x(n) ). Qual mtodo mais rpido?

E 3.3.16. (Esquemas oscilantes)


a) Considere a funo g(x) e funo composta (x) = g g =
g (g(x)). Verifique todo ponto fixo de g tambm ponto fixo
de .
b) Considere a funo
g(x) = 10 exp(x)
e funo composta (x) = g g = g (g(x)). Mostre que
possui dois pontos fixos que no so pontos fixos de g.
c) No problema anterior, o que acontece quando o processo ite-
rativo x(n+1) = g(x(n) ) inicializado com um ponto fixo de
que no ponto fixo de g?
E 3.3.17. Mostre que se f (x) possui uma raiz x ento a x um
ponto fixo de (x) = x + (x)f (x). Encontre uma condio em (x)
para que o ponto fixo x de seja estvel. Encontre uma condio
em (x) para que 0 (x ) = 0.

E 3.3.18. Considere que x(n) satisfaz a seguinte relao de recor-


rncia:
x(n+1) = x(n) f (x(n) )
onde uma constante. Suponha que f (x) possui um zero em x .
Aproxime a funo f (x) em torno de x por
 
f (x) = f (x ) + f 0 (x )(x x ) + O (x x )2 .

Em vista do problema anterior, qual valor de voc escolheria para


que a sequncia x(n) convirja rapidamente para x . Que relao
voc encontra com o mtodo de Newton?
E 3.3.19. Considere o problema da questo 3.2.8 e dois seguintes
esquemas iterativos.
h  i
1 I (n)

I (n+1) = R
V vt ln 1 + IR
,n > 0
A
I (0) = 0

e
h   i
V RI (n)

I (n+1) = IR exp vt
1 ,n > 0
B
I (0) = 0

Verifique numericamente que apenas o processo A convergente


para a, b e c; enquanto apenas o processo B convergente para os
outros itens.
3.4 Mtodo de Newton-Raphson
Consideremos o problema de encontrar as razes da equao
f (x) = 0
onde f (x) C 1 atravs do mtodo do ponto fixo. Para tal, obser-
vamos que um nmero real x raiz de f (x) se e somente se x
um ponto fixo da funo
(x) = x + (x)f (x), (x) 6= 0
Aqui (x) uma funo que ser escolhida com base nos critrios
de convergncia do processo iterativo.
A derivada de (x) vale
0 (x) = 1 + (x)f 0 (x) + 0 (x)f (x)
no ponto x , temos
0 (x ) = 1 + (x )f 0 (x ) + 0 (x )f (x )
como f (x ) = 0, temos

0 (x ) = 1 + (x )f 0 (x )

Sabemos que o processo iterativo converge to mais rpido quanto


menor for 0 (x) nas vizinhanas de x , portanto, supomos que f 0 (x ) 6=
0 e escolhemos (x ) de forma que

0 (x ) = 0,

ou seja
1
(x ) = .
f 0 (x )
Observe que x raiz de f (x) se, e somente se x ponto fixo de
f (x)
(x) = x
f 0 (x)
e 0 (x ) = 0 < 1. Portanto, o teorema do ponto fixo garante que
se x(0) for suficientemente prximo a x , ento o processo iterativo
dado por
f (x(n) )
x(n+1) = x(n)
f 0 (x(n) )
converge para x , desde que f 0 (x(n) ) 6= 0 para todo n N.
3.4.1 Interpretao Geomtrica
Considere o problema de calcular a raiz uma funo f , conforme
esboo na figura abaixo

Queremos obter x(1) a partir de x(0) sabendo que x(1) a interseco


da reta tangente em x(0) com o eixo x. A inclinao da reta tangente
dada por (a variao em y sobre a variao em x)
f (x(0) ) 0
f 0 (x(0) ) =
x(0) x(1)
onde isolando x(1) obtemos
f (x(0) ) 0
x(0) x(1) =
f 0 (x(0) )

Portanto
f (x(0) )
x(1) = x(0)
f 0 (x(0) )
que uma iterao do mtodo de Newton. Repetimos o processo
para calcular x(2) , x(3) ,.... De modo geral, temos

(n+1) (n) f (x(n) )


x =x 0 (n) .
f (x )
3.4.2 Anlise de convergncia
Seja f (x) um funo com derivada e derivada segunda contnuas tal
que f (x ) = 0 e f 0 (x ) 6= 0. Seja tambm a funo (x) definida
como
f (x)
(x) = x 0
f (x)
Expandimos em srie de Taylor em torno de x e obtemos

00 (x )  
(x) = (x ) + (x x )0 (x ) + (x x )2 + O (x x )3
2

Sabemos que

f (x )
(x ) = x = x
f 0 (x )
f 0 (x )f 0 (x ) f (x )f 00 (x )
0 (x ) = 1 =11=0
(f 0 (x ))2
Portanto:
00 (x )  
(x) = x + (x x )2 + O (x x )3
2
00
(x )
x + (x x )2 .
2
Logo,
x(n+1) = (x(n) )
00
(n) 2 (x )
x + (x x )
2
  00 (x )
x(n+1) x (x(n) x )2
2

Observao 10. Pode-se mostrar facilmente que

f 00 (x )
00 (x ) =
f 0 (x )
Exerccios

E 3.4.1. Considere o problema de calcular as solues positivas da


equao:
tg (x) = 2x2 .
a) Use o mtodo grfico para isolar as duas primeiras razes po-
sitivas em pequenos intervalos. Use a teoria estudada em aula
para argumentar quanto existncia e unicidade das razes
dentro intervalos escolhidos.

b) Calcule o nmero de iteraes necessrias para que o mtodo


da bisseo aproxime cada uma das razes com erro absoluto
inferior a 108 . Calcule as razes por este mtodo usando este
nmero de passos.

c) Calcule cada uma das razes pelo mtodo de Newton com


oito dgitos significativos e discuta a convergncia comparando
com o item b).
Obs: Alguns alunos encontraram como soluo x1 1,5707963 e
x2 4,7123890. O que eles fizeram de errado?

E 3.4.2. Considere a equao


2
ex = x

trace o grfico com auxlio do Scilab e verifique que ela possui uma
raiz positiva. Encontre uma aproximao para esta razo pelo gr-
fico e use este valor para inicializar o mtodo de Newton e obtenha
uma aproximao para a raiz com 8 dgitos significativos. (Use o
comando format('v',16) para alterar a visualizao no Scilab.)

E 3.4.3. Isole e encontre as cinco primeiras razes positivas da


equao com 6 dgitos corretos atravs de traado de grfico e do
mtodo de Newton.
cos(10x) = ex .
Dica: a primeira raiz positiva est no intervalo (0,0.02). Fique
atento.
E 3.4.4. Encontre as razes do polinmio f (x) = x4 4x2 + 4
atravs do mtodo de Newton. O que voc observa em relao ao
erro obtido? Compare com a situao do problema 3.2.7.

5
x
E 3.4.5. Encontre as razes reais do polinmio f (x) = 100 + x4 +
3x + 1 isolando-as pelo mtodo do grfico e depois usando o mtodo
de Newton. Expresse a soluo com 7 dgitos significativos.

E 3.4.6. Considere o mtodo de Newton aplicado para encontrar a


raiz de f (x) = x3 2x+2. O que acontece quando x(0) = 0? Escolha
um valor adequado para inicializar o mtodo e obter a nica raiz
real desta equao.

E 3.4.7. Justifique a construo do processo iterativo do Mtodo


de Newton atravs do conceito de estabilidade de ponto fixo e con-
vergncia do mtodo da iterao. Dica: Considere os problemas
3.3.17 e 3.3.18.
E 3.4.8. Entenda a interpretao geomtrica ao mtodo de New-
ton. Encontre uma valor para iniciar o mtodo de Newton aplicado
ao problema f (x) = xex = 0 tal que o esquema iterativo divirja.

E 3.4.9. Aplique o mtodo de Newton funo f (x) = x1 u e


construa um esquema computacional para calcular a inversa de u
com base em operaes de multiplicao e soma/subtrao.

E 3.4.10. Aplique o mtodo de Newton funo f (x) = xn A e


n
construa um esquema computacional para calcular A para A > 0
com base em operaes de multiplicao e soma/subtrao.

E 3.4.11. Considere a funo dada por

(x) = ln (15 ln(x))

definida para x > 0


a) (1.5) Use o teorema do ponto fixo para provar que se x0 per-
tence ao intervalo [1,3], ento a sequncia dada iterativamente
por
x(n+1) = (x(n) ),n 0
converge para o nico ponto fixo, x , de . Construa a ite-
rao x(n+1) = (x(n) ) e obtenha numericamente o valor do
ponto fixo x . Expresse a resposta com 5 algarismos signifi-
cativos corretos.

b) (1.0) Construa a iterao do mtodo de Newton para encon-


trar x , explicitando a relao de recorrncia e iniciando com
x0 = 2. Use o Scilab para obter a raiz e expresse a resposta
com oito dgitos significativos corretos.
3.5 Mtodo das Secantes
O Mtodo das Secantes semelhante ao Mtodo de Newton. Neste
mtodo a derivada f 0 (x) aproximada pela declividade de um reta
secante curva:
f (x + x) f (x)
f 0 (x)
x
Assim, em cada passo do mtodo, calcula-se uma nova aproximao
com base em duas aproximaes anteriores:

(n+1) (n) f (x(n) ) f (x(n) ) f (x(n1) )


x =x , m=
m x(n) x(n1)
Exemplo 47. Encontre as razes de f (x) = cos(x) x.

Da inspeo do grfico das funes y = cos(x) e y = x, sabemos


que esta equao possui uma raiz em torno de x = 0,8. Iniciamos o
mtodo com x0 = 0,7 e x1 = 0,8.
x(n1) x(n) m x(n+1)
f (0,8)f (0,7) f (0,8)
0,80,7
= 0,8 1,6813548
=
0,7 0,8 1,6813548 0,7385654
0,8 0,7385654 1,6955107 0,7390784
0,7385654 0,7390784 1,6734174 0,7390851
0,7390784 0,7390851 1,6736095 0,7390851
3.5.1 Anlise de convergncia
Seja f (x) C 2 um funo tal que f (x ) = 0 e f 0 (x ) 6= 0. Considere
o processo iterativo do mtodo das secantes:

f (x(n) )
x(n+1) = x(n) (x(n) x(n1) )
f (x(n) ) f (x(n1) )

Esta expresso pode ser escrita como:

f (x(n) )(x(n) x(n1) )


x(n+1) = x(n)
f (x(n) ) f (x(n1) )
 
x(n) f (x(n) ) f (x(n1) ) f (x(n) )(x(n) x(n1) )
=
f (x(n) ) f (x(n1) )
x(n) f (x(n1) ) x(n1) f (x(n) )
=
f (x(n) ) f (x(n1) )
Subtraindo x de ambos os lados temos:
x(n) f (x(n1) ) x(n1) f (x(n) )
x(n+1) x = x
f (x(n) ) f (x(n1) )

x(n) f (x(n1) ) x(n1) f (x(n) ) x f (x(n) ) f (x(n1
=
f (x(n) ) f (x(n1) )
(x(n) x )f (x(n1) ) (x(n1) x )f (x(n) )
=
f (x(n) ) f (x(n1) )
Definimos n = xn x , equivalente a xn = x + n
n f (x + n1 ) n1 f (x + n )
n+1 =
f (x + n ) f (x + n1 )
Aproximamos a funo f (x) no numerador por
f 00 (x )
f (x + ) f (x ) + f 0 (x ) + 2
2
f 00 (x )
f (x + ) f 0 (x ) + 2
2
00 (x ) 00 (x )
h i h i
n n1 f 0 (x ) + 2n1 f 2
n1 n f 0 (x ) + 2n f 2
n+1
f (x + n ) f (x + n1 )
f 00 (x )
 
2
n 2n1 n1 2n
=
f (x + n ) f (x + n1 )
1 f 00 (x )n n1 (n1 n )
=
2 f (x + n ) f (x + n1 )
Observamos, agora, que
f (x + n ) f (x + n1 ) [f (x ) + f 0 (x )n ] [f (x ) + f 0 (x )n1 ]
= f 0 (x )(n n1 )
(3.2)

Portanto:
1 f 00 (x )
n+1 n n1 (3.3)
2 f 0 (x )
ou, equivalentemente:

1 f 00 (x )  (n)  
x(n+1) x x x
x (n1)
x
(3.4)
2 f 0 (x )

Pode-se mostrar que

|x(n+1) x | M |x(n) x | , n grande (3.5)



5+1
com = 2
1,618 e M uma constante.

Observao 11. O erro na tabela sempre se refere ao erro ab-


soluto esperado. Nos trs ltimos mtodos, comum que se
exija como critrio de parada que a condio seja satisfeita por
alguns poucos passos consecutivos. Outros critrios podem ser
usados. No mtodos das secantes, deve-se ter o cuidado de
evitar divises por zero quando xn+1 xn muito pequeno em
relao resoluo do sistema de numerao.
Exerccios

E 3.5.1. Refaa as questes 3.4.2, 3.4.3, 3.4.4 e 3.4.5, usando o


mtodo das secantes.
E 3.5.2. D uma interpretao geomtrica ao mtodo das secan-
tes. Qual a vantagem do mtodo das secantes sobre o mtodo de
Newton?
E 3.5.3. Aplique o mtodo das secantes para resolver a equao
2
ex = 2x

E 3.5.4. Refaa o problema 3.2.8 usando o mtodo de Newton e


das secantes.
Exerccios finais

E 3.5.5. A equao
cos(x) = e2x
tem infinitas razes. Usando mtodos numricos encontre as pri-
meiras razes dessa equao. Verifique a j-sima raiz (zj ) pode ser
aproximada por j 1/2 para j grande. Use o mtodo de Newton
para encontrar uma aproximao melhor para zj .

E 3.5.6. A corrente eltrica, I, em Ampres em uma lmpada em


funo da tenso eltrica, V , dada por
0.8
V

I=
150
Qual a potncia da lmpada quando ligada em srie com uma re-
sistncia de valor R a uma fonte de 150V quando. (procure erro
inferior a 1%)
a) R = 0
b) R = 10
c) R = 50
d) R = 100
E) R = 500

E 3.5.7. (Bioqumica) A concentrao sangunea de um medica-


mente modelado pela seguinte expresso
c(t) = Atet
onde t > 0 o tempo em minutos decorrido desde a administra-
o da droga. A a quantidade administrada em mg/ml e a
constante de tempo em min1 . Responda:
a) Sendo = 1/3, em que instantes de tempo a concentrao
metade do valor mximo. Calcule com preciso de segundos.
b) Sendo = 1/3 e A = 100mg/ml, durante quanto tempo a
concentrao permanece maior que 10mg/ml.

E 3.5.8. Considere o seguinte modelo para crescimento populaci-


onal em um pas:
P (t) = A + Bet .
onde t dado em anos. Use t em anos e t = 0 para 1960. Encontre
os parmetros A, B e com base nos anos de 1960, 1970 e 1991
conforme tabela:

Ano populao
1960 70992343
1970 94508583
1980 121150573
1991 146917459
Use esses parmetros para calcular a populao em 1980 e compare
com o valor do censo.

E 3.5.9. Uma boia esfrica flutua na gua. Sabendo que a boia


tem 10` de volume e 2Kg de massa. Calcule a altura da poro
molhada da boia.

E 3.5.10. Uma boia cilndrica tem seco transversal circular de


raio 10cm e comprimento 2m e pesa 10Kg. Sabendo que a boia flu-
tua sobre gua com o eixo do cilindro na posio horizontal, calcule
a altura da parte molhada da boia.

E 3.5.11. Encontre com 6 casas decimais o ponto da curva y = ln x


mais prximo da origem.

E 3.5.12. Um computador vendido pelo valor a vista de


R$2.000,00 ou em 1+15 prestaes de R$200,00. Calcule a taxa
de juros associada venda a prazo.
E 3.5.13. O valor de R$110.000,00 financiado conforme a
seguinte programa de pagamentos:
Ms pagamento
1 20.000,00
2 20.000,00
3 20.000,00
4 19.000,00
5 18.000,00
6 17.000,00
7 16.000,00
Calcule a taxa de juros envolvida. A data do emprstimo o ms
zero.

E 3.5.14. Depois de acionado um sistema de aquecedores, a


temperatura em um forno evolui conforme a seguinte equao

T (t) = 500 800et + 600et/3 .

onde T a temperatura em Kelvin e t tempo em horas.

a) Obtenha analiticamente o valor de limt T (t).

b) Obtenha analiticamente o valor mximo de T (t) e o instante


de tempo quando o mximo acontece

c) Obtenha numericamente com preciso de minutos o tempo


decorrido at que a temperatura passe pela primeira vez pelo
valor de equilbrio obtido no item a.

c) Obtenha numericamente com preciso de minutos a durao


do perodo durante o qual a temperatura permanece pelo me-
nos 20% superior ao valor de equilbrio.
x2
E 3.5.15. Encontre os pontos onde a elipse que satisfaz 3
+ y2 = 1
intersepta a parbola y = x2 2.

E 3.5.16. Encontre a rea do maior retngulo que possvel


2
inscrever entre a curva ex (1 + cos(x)) e o eixo y = 0.

E 3.5.17. Uma indstria consome energia eltrica de duas usinas


fornecedoras. O custo de fornecimento em reais por hora como fun-
o da potncia consumida em kW dada pelas seguintes funes

C1 (x) = 500 + .27x + 4.1 105 x2 + 2.1 107 x3 + 4.2 1010 x4


C2 (x) = 1000 + .22x + 6.3 105 x2 + 8.5 107 x3

Onde C1 (x) e C2 (x) so os custos de fornecimento das usinas 1 e 2,


respectivamente. Calcule o custo mnimo da energia eltrica quando
a potncia total consumida 1500kW .

E 3.5.18. A presso de saturao (em bar) de um dado hidrocar-


boneto pelo ser modelada pela equao de Antoine:
  B
ln P sat = A
T +C

onde T a temperatura e A, B e C so constantes dadas conforme


a seguir:
Hidrocarboneto A B C
N-pentano 9.2131 2477.07 -39.94
N-heptano 9.2535 2911.32 -56.51

a) Calcule a temperatura de bolha de uma mistura de N-pentano


e N-heptano presso de 1.2bar quando as fraes molares dos
gases so z1 = z2 = 0.5. Para tal utilize a seguinte equao:

zi Pisat
X
P =
i
b) Calcule a temperatura de orvalho de uma mistura de N-pentano
e N-heptano presso de 1.2bar quando as fraes molares dos
gases so z1 = z2 = 0.5. Para tal utilize a seguinte equao:
1 X zi
= sat
P i Pi

E 3.5.19. Encontre os trs primeiros pontos de mnimo da funo

f (x) = ex/11 + x cos(2x)

para x > 0 com erro inferior a 107 .


Tabela 3.1: Quadro comparativo.
Mtodo Convergncia Erro Critrio de par
Linear 1 bn an
Bisseo n+1 =  < er
(p = 1) 2 2

|n |
Iterao Linear < err
n+1 | (x )|n0 1 n
n1
linear (p = 1) n < n1

Quadrtica 1 f 00 (x )

Newton n+1 0 2n |n | < erro
(p = 2) 2 f (x )


f 00 (x )

5+1 n+1 0 n n1
p = f (x )
Secante 2 |n | < erro
1,618 M n
Captulo 4

Soluo de sistemas lineares

Neste parte de nosso curso, estamos interessados em tcnicas para


resoluo de sistemas de equaes algbricas lineares.

Trataremos de sistemas de equaes algbricas lineares da seguinte


forma:

a11 x1 + a12 x2 + + a1n xn = y1


a21 x1 + a22 x2 + + a2n xn = y2
..
.
am1 x1 + am2 x2 + + amn xn = ym

Observe que m o nmero de equaes e n o nmero de incgnitas.


Podemos escrever este problema na forma matricial

Ax = y
onde

a11 a12 a1n x1 y1

a21

a22 a2n
x2

y2

A=
. .. .. ..
x= .
y= .

.. .. ..

. . .

am1 am2 amn xn ym

Daremos mais ateno ao caso m = n, isto , quando a matriz A


que envolvia no sistema linear quadrada.
4.1 Eliminao gaussiana com pivotea-
mento parcial
Lembramos que algumas operaes feitas nas linhas de um sistema
no alteram a soluo:

1. Multiplicao de um linha por um nmero

2. Troca de uma linha por ela mesma somada a um mltiplo de


outra.

3. Troca de duas linhas.

O processo que transforma um sistema em outro com mesma solu-


o, mas que apresenta uma forma triangular chamado eliminao
Gaussiana. A soluo do sistema pode ser obtida fazendo substitui-
o regressiva.

Exemplo 48 (Eliminao Gaussiana sem pivotamento parcial).


Resolva o sistema:
x+y+z =1






2x + y z = 0




2x + 2y + z = 1
Soluo. Escrevemos a matriz completa do sistema:

1 1 1 1 1 1 1 1


2 1 1 0 0 1 3 2



2 2 1 1 0 0 1 1
Encontramos z = 1, ou seja, z = 1. Substitumos na segunda
equao e temos y 3z = 2, ou seja, y = 1 e, finalmente
x + y + z = 1, resultando em x = 1.
A Eliminao Gaussiana com pivotamento parcial consiste em fazer
uma permutao de linhas de forma a escolher o maior piv (em
mdulo) a cada passo.
Exemplo 49 (Eliminao Gaussiana com pivotamento parcial).
Resolva o sistema:


x+y+z =1






2x + y z = 0




2x + 2z + z = 1
Soluo. Escrevemos a matriz completa do sistema:

1 1 1 1 2 1 1 0


2 1 1 0


1 1 1 1



2 2 1 1 2 2 1 1

2 1 1 0


0 1/2 3/2 1



0 1 2 1

2 1 1 0

0 1 2 1




0 1/2 3/2 1

2 1 1 0

0 1 2 1




Encontramos 1/2z = 1/2, ou seja, z = 1. Substitumos na segunda
equao e temos y+2z = 1, ou seja, y = 1 e, finalmente 2x+yz =
0, resultando em x = 1.

Exemplo 50. Resolva o seguinte sistema por eliminao gaussiana


com pivotamento parcial.


0 2 2 x 8






=
1 2 1 y 9





1 1 1 z 6
Soluo. Construmos a matriz completa:

0 2 2 8 1 2 1 9


1 2 1 9


0 2 2 8



1 1 1 6 1 1 1 6

1 2 1 9


0 2 2 8



0 1 0 3

1 2 1 9

0 2 2 8




0 0 1 1

1 2 0 8

0 2 0 6




Portanto x = 2, y = 3 e z = 1.
Exemplo 51 (Problema com elementos com grande diferena de
escala).
2 x 4
=


1 y 3
Executamos a eliminao gaussiana sem pivotamento parcial para
6= 0 e || << 1:

2 4 2 4



2 4
1 3 0
3

Temos
3 4/
y=
2/
e
4 2y
x=

Observe que a expresso obtida para y se aproximada de 2 quando
pequeno:

3 4/ 3 4 4
y= = 2 = 2, quando 0.
2/ 2 2

J expresso obtida para x depende justamente da diferena 2 y:

4 2y 2
x= = (2 y)

Assim, quando pequeno, a primeira expresso, implementado


em um sistema de ponto flutuante de acurcia finita, produz y = 2
e, consequentemente, a expresso para x produz x = 0. Isto ,
estamos diante um problema de cancelamento catastrfico.
Agora, quando usamos a Eliminao Gaussiana com pivotamento
parcial, fazemos uma permutao de linhas de forma a escolher o
maior piv a cada passo:

2 4 1 3 1 3



2
1 3 2 4 0 2 4 3
Continuando o procedimento, temos:
4 4
y=
2 2
e
x = 3 y

Observe que tais expresses so analiticamente idnticas s ante-


riores, no entanto, so mais estveis numericamente. Quando
converge a zero, y converge a 2, como no caso anterior. No entanto,
mesmo que y = 2, a segunda expresso produz x = 3 y, isto , a
aproximao x 3 no depende mais de obter 2 y com preciso.
Exerccios

E 4.1.1. Resolva o seguinte sistema de equaes lineares


x+y+z = 0
x + 10z = 48
10y + z = 25
Usando eliminao gaussiana com pivoteamento parcial (no use o
computador para resolver essa questo).

E 4.1.2. Resolva o seguinte sistema de equaes lineares


x+y+z = 0
x + 10z = 48
10y + z = 25
Usando eliminao gaussiana com pivotamento parcial (no use o
computador para resolver essa questo).
E 4.1.3. Calcule a inversa da matriz

1 2 1

A= 1 2 0




2 1 1

usando eliminao Gaussiana com pivotamento parcial.

E 4.1.4. Demonstre que se ad 6= bc, ento a matriz A dada por:



a b
A=


c d
inversvel e sua inversa dada por:

1 d b
A1 = .
ad bc c a

E 4.1.5. Considere as matrizes

0 0 1

A=
0 1 0



1 0 0

e
1 1 1

E= 1 1 1




1 1 1
e o vetor
2

v=
3



4
a) Resolva o sistema Ax = v sem usar o computador.

b) Sem usar o computador e atravs da tcnica algbrica de sua


preferncia, resolva o sistema (A + E)x = v considerando
|| << 1 e obtenha a soluo exata em funo do parmetro
.

c) Usando a expresso analtica obtida acima, calcule o limite


lim0 x .

d) Resolva o sistema (A + E)x = v no Scilab usando pivo-


tamento parcial e depois sem usar pivotamento parcial para
valores muito pequenos de como 1010 , 1015 , . . .. O que
voc observa?
E 4.1.6. Resolva o seguinte sistema de 5 equaes lineares

x1 x2 = 0
(i3)2
xi1 + 2.5xi xi+1 = e 20 , 2i4
2x5 x4 = 0

representando-o como um problema do tipo Ax = b no Scilab e


usando o comando de contra-barra para resolv-lo. Repita usando
a rotina que implementa eliminao gaussiana.

E 4.1.7. Encontre a inversa da matriz



1 1 1

1 1 2




1 1 4

a) Usando Eliminao Gaussiana com pivotamento parcial mo.


b) Usando a rotina gausspp().

c) Usando a rotina inv() do Scilab.


4.2 Condicionamento de sistemas line-
ares
Quando lidamos com matrizes no corpo do nmeros reais (ou com-
plexos), existem apenas duas alternativas: i) a matriz inversvel;
ii) a matriz no inversvel e, neste caso, chamada de matriz sin-
gular. Ao lidarmos em aritmtica de preciso finita, encontramos
uma situao mais sutil: alguns problema lineares so mais difceis
de serem resolvidos, pois os erros de arredondamento se propagam
de forma mais significativa que em outros problemas. Neste caso fa-
lamos de problemas bem-condicionados e mal-condicionados. Intui-
tivamente falando, um problema bem-condicionado um problema
em que os erros de arredondamento se propagam de forma menos
importante; enquanto problemas mal-condicionados so problemas
em que os erros se propagam de forma mais relevante.
Um caso tpico de sistema mal-condicionado aquele cujos coefici-
ente esto muito prximos ao de um problema singular. Considere
o seguinte exemplo:
Exemplo 52. Observe que o problema


71x + 41y = 100
x + 30y = 70

impossvel quando = 7130


41
51,95122.
Agora, verifique o que acontece quando resolvemos os seguintes sis-
temas lineares:


71x + 41y = 100
71x + 41y = 100
e
52x + 30y = 70 51x + 30y = 70

A soluo do primeiro problema x = 65 e y = 115. J para o


segundo problema x = 103
e y = 10
3
.
Igualmente, observe os seguintes dois problemas:


71x + 41y = 100
71x + 41y = 100,4
e
52x + 30y = 70 52x + 30y = 69,3



A soluo do primeiro problema x = 65 e y = 115 e do segundo
problema x = 85,35 e y = 150,25.
Observe que pequenas variaes nos coeficientes das matrizes fazem
as solues ficarem bem distintas, isto , pequenas variaes nos
dados de entrada acarretaram em grandes variaes na soluo do
sistema. Quando isso acontece, dizemos que o problema mal-
condicionados.

Para introduzir essa ideia formalmente, precisamos definir o nmero


de condicionamento. Informalmente falando, o nmero de condici-
onamento mede o quanto a soluo de um problema em funo de
alteraes nos dados de entrada. Para construir matematicamente
este conceito, precisamos de uma medida destas variaes. Como
tanto os dados de entrada como os dados de sada so expressos
na forma vetorial, precisaremos do conceito de norma vetorial. Por
isso, faremos uma breve interrupo de nossa discusso para in-
troduzir as definies de norma de vetores e matrizes na prxima
seo.
4.2.1 Norma Lp de vetores
Definimos a norma Lp ou Lp de um vetor em Rn para p 1 como

kvkp = (|v1 |p + |v2 |p + |vn |p )1/p

E a norma L ou L como

n
kvk = max |vj |
j=1

Propriedades: Se um real (ou complexo) e u e v so vetores,


temos:

kvk = 0 v = 0
kvk = ||kvk
ku + vk kuk + kvk (desigualdade do tringulo)
lim kukp
p
= kuk
Exemplo: Calcule a norma L1 , L2 e L de

1


2

v=




3


0

kvk1 = 1 + 2 + 3 + 0 = 6

kvk2 = 1 + 22 + 32 + 02 = 14
kvk = max{1,2,3,0} = 3
4.2.2 Norma matricial
Definimos a norma operacional em Lp de uma matriz A : Rn Rn
da seguinte forma:
kAkp = sup kAvkp
kvkp =1

ou seja, a norma p de uma matriz o mximo valor assumido pela


norma de Av entre todos os vetores de norma unitria.
Temos as seguintes propriedades, se A e B so matrizes, I a matriz
identidade, v um vetor e um real (ou complexo):

kAkp = 0 A = 0
kAkp = ||kAkp
kA + Bkp kAkp + kBkp (desigualdade do tringulo)
kAvkp kAkp kvkp
kABkp kAkp kBkp
kIkp = 1
1 = kIkp = kAA1 kp kAkp kA1 kp (se A inversvel)
Casos especiais:

n
n X
kAk1 = max |Aij |
j=1
i=1
q
kAk2 = max{|| : (AA )}
n
n X
kAk = max |Aij |
i=1
j=1

onde (M ) o conjunto de autovalores da matriz M .


Exemplo: Calcule as normas 1, 2 e da seguinte matriz:


3 5 7

A= 1 2 4




8 1 7
Soluo

kAk1 = max{12,8,18} = 18
kAk = max{15,7,16} = 16
q
kAk2 = max{0,5865124; 21,789128; 195,62436} = 13,986578
4.2.3 Nmero de condicionamento
O condicionamento de um sistema linear um conceito relacionado
forma como os erros se propagam dos dados de entrada para os
dados de sada, ou seja, se o sistema

Ax = y

possui uma soluo x para o vetor y, quando varia a soluo x


quando o dado de entrado y varia. Consideramos, ento, o problema

A(x + x ) = y + y

Aqui x representa a variao em x e y representa a respectiva


variao em y. Temos:

Ax + Ax = y + y

e, portanto,
Ax = y .
Queremos avaliar a magnitude do erro relativo em y, representado
por ky k/kyk em funo da magnitude do erro relativo kx k/kxk.

kx k/kxk kx k kyk
=
ky k/kyk kxk ky k
kA1 y k kAxk
=
kxk ky k
kA1 kky k kAkkxk

kxk ky k
1
= kAkkA k

Assim, definimos o nmero de condicionamento de uma matriz in-


versvel A como
kp (A) = kAkp kA1 kp
O nmero de condicionamento, ento, mede o quo instvel resol-
ver o problema Ax = y frente a erros no vetor de entrada x.
Obs: O nmero de condicionamento depende da norma escolhida.
Obs: O nmero de condicionamento da matriz identidade 1.
Obs: O nmero de condicionamento de qualquer matriz inversvel
igual ou maior que 1.
Exerccios

E 4.2.1. Calcule o valor de para o qual o problema




71x + 41y = 10
x + 30y = 4

impossvel, depois calcule os nmeros de condicionamento com


norma 1,2 e quando = 51 e = 52.

E 4.2.2. Calcule o nmero de condicionamento da matriz



3 5 7

A= 1 2 4




8 1 7

nas normas 1, 2 e .
E 4.2.3. Calcule o nmero de condicionamento das matrizes

71 41

52 30
e
1 2 3

2 3 4




4 5 5
usando as normas 1,2 e .

E 4.2.4. Usando a norma 1, calcule o nmero de condicionameto


da matriz
1 2
A=


2+ 4
em funo de quando 0 < < 1. Interprete o limite 0.
E 4.2.5. Considere os sistemas:

100000x 9999.99y = 10
100000x 9999.
e
9999.99x + 1000.1y = 1 9999.99x + 1000.

Encontre a soluo de cada um e discuta.

E 4.2.6. Considere os vetores de 10 entradas dados por

(j/10)3
xj = sin(j/10), yj = j/10 zj = j/10 , j = 1, . . . ,10
6
Use o Scilab para construir os seguintes vetores de erro:

|xj yj | |xj zj |
ej = fj =
|xj | xj

Calcule as normas 1, 2 e de e e f
4.3 Mtodos iterativos para sistemas li-
neares
4.3.1 Mtodo de Jacobi
Considere o problema Ax = y, ou seja,
a11 x1 + a12 x2 + + a1n xn = y1
a21 x1 + a22 x2 + + a2n xn = y2
.. .. .
. . = ..
an1 x1 + an2 x2 + + ann xn = yn
Os elementos xj so calculados iterativamente conforme:
 
(k)
(k+1)
y1 a12 x2 + + a1n x(k)
n
x1 =
a11
 
(k)
(k+1)
y2 a21 x1 + + a2n x(k)
n
x2 =
a22
..
.  
(k) (k)
y2 an1 x1 + + an(n1) xn1
xn(k+1) =
ann
Em notao mais compacta, o mtodo de Jacobi consiste na itera-
o:

x(0) = aprox. inicial


n
X (k)
yi aij xj
j=1
(k) j6=i
xi =
aii

Exemplo: Resolva o sistema



10x + y = 23
x + 8y = 26


usando o mtodo de Jacobi iniciando com x(0) = y (0) = 0.

23 y (k)
x(k+1) =
10
26 x(k)
y (k+1) =
8
23 y (0)
x(1) = = 2,3
10
26 x(0)
y (1) = = 3,25
8
23 y (1)
x(2) = = 1,975
10
26 x(1)
y (2) = = 2,9625
8
Cdigo Scilab: Jacobi
4.3.2 Mtodo de Gauss-Seidel
Considere o problema Ax = y, ou seja,
a11 x1 + a12 x2 + + a1n xn = y1
a21 x1 + a22 x2 + + a2n xn = y2
.. .. .
. . = ..
an1 x1 + a22 x2 + + ann xn = yn
Os elementos xj so calculados iterativamente conforme:
 
(k)
(k+1)
y1 a12 x2 + + a1n x(k)
n
x1 =
a11
 
(k+1)
(k+1)
y2 a11 x1 + + a1n x(k)
n
x2 =
a22
..
.  
(k+1) (k+1)
y2 an1 x1 + + an(n1) xn1
x(k+1)
n =
Ann
Em notao mais compacta, o mtodo de Gauss-Seidel consiste na
iterao:

x(0) = aprox. inicial


i1 n
X (k+1) X (k)
yi aij xj aij xj
(k) j=1 j=i+1
xi =
aii

Exemplo: Resolva o sistema



10x + y = 23
x + 8y = 26


usando o mtodo de Guass-Seidel iniciando com x(0) = y (0) = 0.

23 y (k)
x(k+1) =
10
26 x(k+1)
y (k+1) =
8
23 y (0)
x(1) = = 2,3
10
26 x(1)
y (1) = = 2,9625
8
23 y (1)
x(2) = = 2,00375
10
26 x(2)
y (2) = = 2,9995312
8
Cdigo Scilab: Gauss-Seidel
4.4 Anlise de convergncia
Uma condio suficiente porm no necessria para que os mtodos
de Gauss-Seidel e Jacobi convirjam a que a matriz seja diagonal
dominante estrita. Veja [3].
Exerccios

E 4.4.1. Considere o problema de 5 incgnitas e cinco equaes


dado por

x1 x2 = 1
x1 + 2x2 x3 = 1
x2 + (2 + )x3 x4 = 1
x3 + 2x4 x5 = 1
x4 x5 = 1

a) Escreva na forma Ax = b e resolva usando Eliminao Gaus-


siana para = 103 no Scilab.

b) Obtenha o vetor incgnita x com = 103 usando o comando


A\b.
c) Obtenha o vetor incgnita x com = 103 usando Jacobi com
tolerncia 102 . Compare o resultado com o resultado obtido
no item d.

d) Obtenha o vetor incgnita x com = 103 usando Gauss-


Seidel com tolerncia 102 . Compare o resultado com o resul-
tado obtido no item d.

e) Discuta com base na relao esperada entre tolerncia e exa-


tido conforme estudado na primeira rea para problemas de
uma varivel.

E 4.4.2. Resolva o seguinte sistema pelo mtodo de Jacobi e Gauss-


Seidel:
5x1 + x2 + x3 = 50






x1 + 3x2 x3 = 10


x1 + 2x2 + 10x3 = 30



Use como critrio de paragem tolerncia inferior a 103 e inicialize
com x0 = y 0 = z 0 = 0.

E 4.4.3. Refaa a questo 4.1.6 construindo um algoritmo que


implemente os mtodos de Jacobi e Gauss-Seidel.

E 4.4.4. Considere o seguinte sistema de equaes lineares:

x1 x2 = 0
xj1 + 5xj xj+1 = cos(j/10), 2 j 10
x11 = x10 /2 (4.1)

Construa a iterao para encontrar a soluo deste problema pelos


mtodos de Gauss-Seidel e Jacobi. Usando esses mtodos, encontre
uma soluo aproximada com erro absoluto inferior a 105 .

E 4.4.5. Resolva o problema 4.5.5 pelos mtodos de Jacobi e


Gauss-Seidel.
E 4.4.6. Faa uma permutao de linhas no sistema abaixo e
resolva pelos mtodos de Jacobi e Gauss-Seidel:

x1 + 10x2 + 3x3 = 27
4x1 + x3 = 6
2x1 + x2 + 4x3 = 12
4.5 Mtodo da potncia para clculo de
autovalores
Consideremos uma matriz A Rn,n diagonalizvel, isto , existe um
conjunto {vj }nj=1 de autovetores de A tais que qualquer elemento
x Rn pode ser escrito como uma combinao linear dos vj . Sejam
{j }nj=1 o conjunto de autovalores associados aos autovetores tal que
um deles seja dominante, ou seja,

|1 | > |2 | |3 | |n | > 0

Como os autovetores so LI, todo vetor x Rn , x = (x1 ,x2 ,...,xn ),


pode ser escrito com combinao linear dos autovetores da seguinte
forma: n X
x= j vj . (4.2)
j=1

O mtodo da potncia permite o clculo do autovetor dominante


com base no comportamento assinttico (i.e. "no infinito") da sequn-
cia
x, Ax, A2 x, A3 x, . . .
.
Por questes de convergncia, consideramos a seguinte sequncia
semelhante anterior, porm normalizada:

x Ax A2 x A3 x
, , , ,...,
kxk kAxk kA2 xk kA3 xk
que pode ser obtida pelo seguinte processo iterativo:

Ak x
x(k+1) =
kAk xk

Observamos que se x est na forma (4.2), ento Ak x pode ser escrito


como
!k
n n n
j j
Ak x = j Ak vj = j kj vj = 1 k1 v1 +
X X X
vj
j=1 j=1 j=2 1 1

Como 1j < 1 para todo j 2, temos
n
!k
X j j
vj 0.
j=2 1 1
Assim k
Ak x 1 k1
2
= v1 + O ) (4.3)
kAk xk kAk xk 1

Ak x
Como a norma de kAk xk
igual a um, temos

k
1 1
v 1

kAk xk 1

e, portanto,
k 1
1 1

kAk xk kv1 k

1 k1
Ou seja, se definimos (k) = kAk xk
, ento

|(k) | 1
Retornando a (4.3), temos:

Ak x
(k) v1 0
kAk xk
Observe que um mltiplo de autovetor tambm um autovetor e,
portanto,
Ak x
kAk xk
um esquema que oscila entre os autovetores ou converge para o
autovetor v1 .
Uma vez que temos o autovetor v1 de A, podemos calcular 1 da
seguinte forma:

v1T Av1
Av1 = 1 v1 = v1T Av1 = v1T 1 v1 = 1 =
v1T v1

Observe que a ltima identidade vlida, pois kv1 k = 1 por cons-


truo.
Exerccios

E 4.5.1. Calcule o autovalor dominante e o autovetor associado da


matriz
4 41 78

48 28 21




26 13 11

Expresse sua resposta com seis dgitos significativos

E 4.5.2. Calcule o autovalor dominante e o autovetor associado da


matriz
3 4

2 1

usando o mtodo da potncia inciando com o vetor x = [1 1]T


E 4.5.3. A norma L2 de um matriz A dada pela raiz quadrada
do autovalor dominante da matriz A A, isto :

q
kAk2 = max{|| : (A A)} :

Use o mtodo da potncia para obter a norma L2 da seguinte matriz:


69 84 88

A=
15 40 11



70 41 20

Expresse sua resposta com seis dgitos significativos

E 4.5.4. Os autovalores de uma matriz triangular so os elementos


da diagonal principal. Verifique o mtodo da potncia aplicada
seguinte matriz:
2 3 1

0 3 1 .




0 0 1
Exerccios finais

E 4.5.5.

1. O circuito linear da figura 1 pode ser modelado pelo sistema


(4.4). Escreva esse sistema na forma matricial sendo as ten-
ses V1 , V2 , V3 , V4 e V5 as cinco incgnitas. Resolva esse
problema quando V = 127 e

a) R1 = R2 = R3 = R4 = 2 e R5 = R6 = R7 = 100 e
R8 = 50

b) R1 = R2 = R3 = R4 = 2 e R5 = 50 e R6 = R7 = R8 =
100
V1 = V (4.4a)
V1 V2 V3 V2 V2
+ = 0 (4.4b)
R1 R2 R5
V2 V3 V4 V3 V3
+ = 0 (4.4c)
R2 R3 R6
V3 V4 V5 V4 V4
+ = 0 (4.4d)
R3 R4 R7
V4 V5 V5
= 0 (4.4e)
R4 R8
Complete a tabela abaixo representado a soluo com 4 al-
garismos significativos:

Caso V1 V2 V3 V4 V5
a
b
Ento, refaa este problema reduzindo o sistema para apenas
4 incgnitas (V2 , V3 , V4 e V5 ).

E 4.5.6. Resolva os seguintes problemas:

a) Encontre o polinmio P (x) = ax2 + bx + c que passa pelos


pontos (1, 3), (1, 1) e (2,9).

b) Encontre os coeficientes A e B da funo f (x) = A sin(x) +


B cos(x) tais que f (1) = 1.4 e f (2) = 2.8.
c) Encontre a funo g(x) = A1 sin(x) + B1 cos(x) + A2 sin(2x) +
B2 cos(2x) tais que f (1) = 1, f (2) = 2, f (3) = 3 e f (4) = 4.
Captulo 5

Soluo de sistemas de
equaes no lineares

O mtodo de Newton aplicado a encontrar a raiz x da funo


y = f (x) estudado na primeira rea de nossa disciplina consiste
em um processo iterativo. Em cada passo deste processo, dispomos
de uma aproximao x(k) para x e construmos uma aproximao
x(k+1) . Cada passo do mtodo de Newton envolve os seguintes pro-
cedimentos:

Linearizao da funo f (x) no ponto x(k) :


 
f (x) = f (x(k) ) + (x x(k) )f 0 (x(k) ) + O |x x(k) |2

A aproximao x(k+1) definida como o valor de x em que a


linearizao f (x(k) ) + (x x(k) )f 0 (x(k) ) passa por zero.

Observao: y = f (x(k) ) + (x x(k) )f 0 (x(k) ) a equao da reta


que tangencia a curva y = f (x) no ponto (x(k) ,f (x(k) )).
Queremos, agora, generalizar o mtodo de Newton a fim de resolver
problemas de vrias equaes e vrias incgnitas, ou seja, encontrar
x1 ,x2 , . . . xn que satisfazem as seguinte equaes:
f1 (x1 ,x2 , . . . ,xn ) = 0
f2 (x1 ,x2 , . . . ,xn ) = 0
..
.
fn (x1 ,x2 , . . . ,xn ) = 0

Podemos escrever este problema na forma vetorial definindo o vetor


x = [x1 ,x2 , . . . ,xn ]T e a funo vetorial

f1 (x1 ,x2 , . . . ,xn )

f2 (x1 ,x2 , . . . ,xn )

F (x) =

..



.


fn (x1 ,x2 , . . . ,xn )

Exemplo 53. Suponha que queiramos resolver numericamente os


seguinte sistema de duas equaes e duas incgnitas:

x21
+ x22 = 1
3
x2
x21 + 2 = 1
4
Ento definimos

x21
3
+ x22 1

F (x) =



x22

x21 + 4
1

Neste momento, dispomos de um problema na forma F (x) = 0 e


precisamos desenvolver uma tcnica para linearizar a funo F (x).
Para tal, precisamos de alguns conceitos do Clculo II.
Observe que F (x) F (x(0) ) pode ser escrito como

(0) (0)
(0)
f1 (x1 ,x2 , . . . ,xn ) f1 (x1 ,x2 , . . . ,xn )

(0) (0)
f2 (x1 ,x2 , . . . ,xn ) f2 (x1 ,x2 , . . . ,x(0)
n )

(0)

F (x) F (x ) =

..



.


(0) (0)
fn (x1 ,x2 , . . . ,xn ) fn (x1 ,x2 , . . . ,x(0)
n )

Usamos a regra da cadeia


n
fi fi fi X fi
dfi = dx1 + dx2 + + dxn = dxj
x1 x2 xn j=1 xj

e aproximamos as diferenas por derivadas parciais:


n
(0) (0) fi  (0)

fi (x1 ,x2 , . . . ,x(0)
X
fi (x1 ,x2 , . . . ,xn ) n ) x j xj
j=1 xj
Portanto,


f1 f1 f1
x1 x2
xn

(0)

x1 x1






f2 f2 f2

x1 x2
xn



(0)



x2 x2

F (x) F (x(0) )
.. .. ... ..



(5.1)
. . .

..



.




fn fn fn



x1 x2 xn
xn x(0)

n
Definimos ento a matriz jacobiana por

f1 f1 f1
x1 x2
xn





f2 f2 f2

x1 x2
xn




(f1 ,f2 , . . . ,fn )
JF = =
.. .. ... ..


(x1 ,x2 , . . . ,xn )
. . .







fn fn fn



x1 x2 xn

A matriz jacobiana de uma funo ou simplesmente, o Jacobiano de


uma funo F (x) a matriz formada pelas suas derivadas parciais:
fi
(JF )ij =
xj
Nestes termos podemos reescrever (5.1) como

F (x) F (x(0) ) + JF (x(0) )(x x(0) )

Esta expresso chama de linearizao de F (x) no ponto x(0) e ge-


neraliza a linearizao em uma dimenso dada por f (x) f (x(0) ) +
f 0 (x(0) )(x x(0) )
5.1 O mtodo de Newton para sistemas
Vamos agora construir o mtodo de Newton-Raphson, ou seja, o
mtodo de Newton generalizado para sistemas. Assumimos, por-
tanto, que a funo F (x) diferencivel e que existe um ponto x
tal que F (x ) = 0. Seja x(k) uma aproximao para x , queremos
construir uma nova aproximao x(k+1) atravs da linearizao de
F (x) no ponto x(k) .

Linearizao da funo F (x) no ponto x(k) :


    
F (x) = F (x(k) ) + JF x(k) x x(k) + O kx x(k) k2

A aproximao x(k) definida


  como o ponto x em que a line-
(k) (k)
arizao F (x ) + JF x x x(k) nula, ou seja:
  
F (x(k) ) + JF x(k) x(k+1) x(k) = 0
Supondo que a matriz jacobina seja inversvel no ponto x(k) , temos:

  
JF x(k) x(k+1) x(k) = F (x(k) )
 
x(k+1) x(k) = JF1 x(k) F (x(k) )
 
x(k+1) = x(k) JF1 x(k) F (x(k) )

Desta forma, o mtodo iterativo de Newton-Raphson para encontrar


as razes de F (x) = 0 dado por:

 

x(k+1) = x(k) JF1 x(k) F (x(k) ), n 0
x(0) = dado inicial


Observao 12. Usamos subndices para indicar o elemento de
um vetor e super-ndices para indicar o passo da iterao. Assim
(k)
x(k) se refere iterao k e xi se refere componente i no vetor
x(k) .

 
Observao 13. A notao JF1 x(k) enfatiza que a jacobiana
deve ser calculada a cada passo.
Observao 14. Podemos definir o passo (k) como

(k) = x(k+1) x(k)


 
Assim, (k) = JF1 x(k) F (x(k) ), ou seja, (k) resolve o pro-
blema linear:  
JF x(k) (k) = F (x(k) )
Em geral, menos custoso resolver o sistema acima do que
calcular o inverso da jacobiana e multiplicar pelo vetor F (x(k) ).

Exemplo 54. Retornamos ao nosso exemplo inicial, isto , resolver


numericamente os seguinte sistema no-linear:

x21
+ x22 = 1
3
x2
x21 + 2 = 1
4
Para tal, definimos a funo F (x):

x21

+ x22 1
3

F (x) =

2

x
x21 + 2 1
4
cuja jacobiana :
2x1
2x 2
JF = 3


2x1 x22
Faremos a implementao numrica no Scilab. Para tal definimos
as funes que implementaro F (x) e a JF (x)

function y=F(x)
y(1)=x(1)^2/3+x(2)^2-1
y(2)=x(1)^2+x(2)^2/4-1
endfunction
function y=JF(x)
y(1,1)=2*x(1)/3
y(1,2)=2*x(2)
y(2,1)=2*x(1)
y(2,2)=x(2)/2
endfunction

Alternativamente, estas funes poderiam ser escritas como

function y=F(x)
y=[x(1)^2/3+x(2)^2-1; x(1)^2+x(2)^2/4-1]
endfunction

function y=JF(x)
y=[2*x(1)/3 2*x(2); 2*x(1) x(2)/2]
endfunction

Desta forma, se x uma aproximao para a raiz, pode-se calcular


a prxima aproximao atravs dos comandos:
delta=-JF(x)\F(x)
x=x+delta

Ou simplesmente

x=x-JF(x)\F(x)
 q q 
9 8
Observe que as solues exatas desse sistema so 11
, 11
.

Exemplo 55. Encontre uma aproximao para a soluo do sis-


tema

x21 = cos(x1 x2 ) + 1
sin(x2 ) = 2 cos(x1 )

que fica prxima ao ponto x1 = 1.5 e x2 = .5.


Resp: (1,3468109, 0,4603195).
Soluo. Vamos, aqui, dar as principais ideias para se obter a so-
luo. Comeamos definindo a funo F (x) por:

2
x1 cos(x1 x2 ) 1
F (x) =
sin(x2 ) 2 cos(x1 )

cuja jacobiana :

2x1 + x2 sin(x1 x2 ) x1 sin(x1 x2 )
JF (x) =

2 sin(x1 ) cos(x2 )

No Scilab, podemos implement-las com o seguinte cdigo:


function y=F(x)
y(1) = x(1)^2-cos(x(1)*x(2))-1
y(2) = sin(x(2))-2*cos(x(1))
endfunction
function y=JF(x)
y(1,1) = 2*x(1)+x(2)*sin(x(1)*x(2))
y(1,2) = x(1)*sin(x(1)*x(2))

y(2,1) = 2*sin(x(1))
y(2,2) = cos(x(2))
endfunction
E agora, basta iterar:
x=[1.5; .5]
x=x-JF(x)\F(x) (5 vezes)

5.1.1 Cdigo Scilab: Newton para Sistemas
function [x] = newton(F,JF,x0,TOL,N)
x = x0
k = 1
//iteracoes
while (k <= N)
//iteracao de Newton
delta = -inv(JF(x))*F(x)
x = x + delta
//criterio de parada
if (norm(delta,'inf')<TOL) then
return x
end
k = k+1
end
error('Num. de iter. max. atingido!')
endfunction
Exerccios

E 5.1.1. Encontre uma aproximao numrica para o seguinte


problema no-linear de trs equaes e trs incgnitas:

2x1 x2 = cos(x1 )
x1 + 2x2 x3 = cos(x2 )
x2 + x3 = cos(x3 )

Partindo das seguintes aproximaes iniciais:

a) x(0) = [1, 1, 1]T

b) x(0) = [0,5, 2, 3]T

c) x(0) = [2, 3, 4]T

d) x(0) = [0, 0, 0]T


5.2 Linearizao de uma funo de v-
rias variveis
5.2.1 O gradiente
Considere primeiramente uma funo f : Rn R, ou seja, uma
funo que mapeia n variveis reais em um nico real, por exemplo:

f (x) = x21 + x22 /4

Para construirmos a linearizao, fixemos uma direo no espao


Rn , ou seja um vetor v:

v = [v1 , v2 , , vn ]T

Queremos estudar como a funo f (x) varia quando andamos na


direo v a partir do ponto x(0) . Para tal, inserimos um parmetro
real pequeno h, dizemos que

x = x(0) + hv

e definimos a funo auxiliar

g(h) = f (x0 + hv).


Observamos que a funo g(h) uma funo de R em R.
A linearizao de g(h) em torno de h = 0 dada por

g(h) = g(0) + hg 0 (0) + O(h2 )


Observamos que g(h) = f (x(0) + hv) e g(0) = f (x(0) ). Precisamos
calcular g 0 (0):

d d
g 0 (h) = g(h) = f (x(0) + hv)
dh dh
Pela regra da cadeia temos:
n
d (0)
X f dxj
f (x + hv) =
dh j=1 xj dh

(0)
Observamos que xj = xj + hvj , portanto
dxj
= vj
dh
Assim:
n
d f
f (x(0) + hv) =
X
vj
dh j=1 xj

Observamos que esta expresso pode ser vista como o produto in-
terno entre o gradiente de f e o vetor v:

f
x1 v1

f
v2

x2
f = .
v= .

.. ..


f
xn
vn

Na notao clculo vetorial escrevemos este produto interno como


f v = v f na notao de produto matricial, escrevemos
(f )T v = v T f . Esta quantidade conhecida como derivada di-
recional de f no ponto x(0) na direo v, sobretudo quando kvk = 1.
Podemos escrever a linearizao g(h) = g(0) + hg 0 (0) + O(h2 ) como

f (x(0) + hv) = f (x(0) ) + hTf (x(0) ) v + O(h2 )

Finalmente, escrevemos x = x(0) + hv, ou seja, hv = x x(0)

f (x) = f (x(0) ) + Tf (x(0) ) (x x(0) ) + O(kx x(0) k2 )

Observao 15. Observe a semelhana com a linearizao no


caso em uma dimenso. A notao Tf (x(0) ) o transposto do
vetor gradiente associado funo f (x) no ponto x(0) :
     
f x(0) f x(0) f x(0)
T f (x(0) ) = , , ,
x1 x2 xn
5.2.2 A matriz jacobiana

Interessamo-nos, agora, pela linearizao da funo F : Rn Rn .


Lembramos que F (x) pode ser escrita como um vetor de funes
fj : Rn R:


f1 (x)

f2 (x)

F (x) = .

..


fn (x)
Linearizando cada uma das funes fj , temos:

   
(0) T (0) (0) (0) 2
f1 x + f1 (x ) x x + O(kx x k )



   


f2 x(0) + Tf2 (x(0) ) x x(0) + O(kx x(0) k2 )


F (x) =




..

.





   
fn x(0) + Tfn (x(0) ) x x(0) + O(kx x(0) k2 )
| {z }
Vetor coluna
ou, equivalentemente:
 
(0) T (0)
f1 x f1 (x )



 


f2 x(0)

Tf2 (x(0) )

 
F (x) =
+



x x(0) +O(kx x(0

.. .. | {z }

.


.
Vetor coluna




 
fn x(0) Tfn (x(0) )
| {z } | {z }
Vetor coluna Matriz jacobiana

Podemos escrever a linearizao de F (x) na seguinte forma mais


enxuta:
 
(0) 2
   
(0) (0) (0)
F (x) = F x + JF (x ) x x + O x x

A matriz jacobiana JF matriz cujas linhas so os gradientes trans-
postos de fj , ou seja:


f1 f1 f1
x1 x2
xn





f2 f2 f2

x1 x2
xn




(f1 ,f2 , . . . ,fn )
JF = =

(x1 ,x2 , . . . ,xn )
.. .. .. ..

. . . .







fn fn fn



x1 x2 xn

A matriz jacobiana de uma funo ou simplesmente, o Jacobiano de


uma funo F (x) a matriz formada pelas suas derivadas parciais:

fi
(JF )ij =
xj

Exemplo 56. Calcule a matriz jacobiana da funo



x21
3
+ x22 1

F (x) =



x22

x21 + 4
1

f1 f1 2x1
x1 x2 3
2x2

JF = =




f2 f2 x2
x1 x2
2x1 2
Captulo 6

Aproximao de funes

O problema geral da interpolao pode ser definido da seguinte


forma:
Seja F uma famlia de funes f : D E e {(xi ,yi )}N
i=1 um conjunto
de pares ordenados tais que xi D e yi E, encontrar uma funo
f da famlia dada tal que f (xi ) = yi para cada 1 i N .
Exemplo 57. Encontrar uma funo f (x) da forma f (x) = aebx
onde a e b so constantes tal que f (1) = 1 e f (2) = 5. Este problema
equivale a resolver o seguinte sistema de equaes:

aeb = 1
ae2b = 5

Dividindo a segunda equao pela primeira, temos eb = 5, logo,


b = ln(5). Substituindo este valor em qualquer das equaes, temos
a = 15 . Assim
1 1
f (x) = eln(5)x = 5x = 5x1 .
5 5

Exemplo 58. Encontrar a funo polinomial do tipo f (x) = a +


bx + cx2 que passe pelos pontos (1,2), (0,1), (1,6). Observamos
que podemos encontrar os coeficientes a, b e c atravs do seguinte
sistema linear:

ab+c = 2
a = 1
a+b+c = 6

cuja soluo dada por a = 1, b = 2 e c = 3. Portanto

f (x) = 1 + 2x + 3x2 .
6.1 Interpolao polinomial
Interpolao polinomial o caso particular do problema geral de in-
terpolao quando a famlia de funes constituda de polinmios.

Teorema 5. Seja {(xi ,yi )}ni=0 um conjunto de n + 1 pares or-


denados de nmeros reais tais que

i 6= j = xi 6= xj (i.e. as abscissas so distintas)

ento existe um nico polinmio P (x) de grau igual ou inferior


a n que passa por todos os pontos dados.

Demonstrao. Observamos que o problema de encontrar os coefi-


cientes a0 , a1 ,. . . , an do polinmio
n
P (x) = a0 + a1 x + a2 x2 + an xn = ak xk
X

k=0
tal que P (xi ) = yi equivalente ao seguinte sistema linear de n + 1
equaes e n + 1 incgnitas:

a0 + a1 x0 + a2 x20 + + an xn0 = y0
a0 + a1 x2 + a2 x21 + + an xn1 = y1
..
.
2 n
a0 + a1 x n + a2 x n + + an x n = y n

que pode ser escrito na forma matricial como



1 x0 x20 xn0 a0 y0

1 x1 x21 xn1 a1 y1





1 x2 x22 xn2
a2
=
y2

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

. ..


. . .
.


.


1 xn x2n xnn an yn
A matriz envolvida uma matriz de Vandermonde de ordem n + 1
cujo determinante dado por
Y
(xj xi )
0i<jn

fcil ver que se as abscissas so diferentes dois a dois, ento o


determinante no-nulo. Disto decorre que o sistema possui um a
soluo e que esta soluo nica.
Exemplo 59. Encontre o polinmio da forma P (x) = a0 + a1 x +
a2 x2 + a3 x3 que passa pelos pontos
(0,1),(1,2),(2,4),(3,8)
Este problema equivalente ao seguinte sistema linear:
a0 = 1
a0 + a1 + a2 + a3 = 2
a0 + 2a1 + 4a2 + 8a3 = 4
a0 + 3a1 + 9a2 + 27a3 = 8
cuja soluo a0 = 1, a1 = 56 , a2 = 0 e a3 = 61 . Portanto
5 1
P (x) = 1 + x + x3
6 6
Exemplo 60. Encontre o polinmio da forma P (x) = a0 + a1 x +
a2 x2 + a3 x3 que passa pelos pontos

(0,0),(1,1),(2,4),(3,9)

Este problema equivalente ao seguinte sistema linear:

a0 = 0
a0 + a1 + a2 + a3 = 1
a0 + 2a1 + 4a2 + 8a3 = 4
a0 + 3a1 + 9a2 + 27a3 = 9

cuja soluo a0 = 0, a1 = 0, a2 = 1 e a3 = 0. Portanto

P (x) = x2
Esta abordagem direta que fizemos ao calcular os coeficientes do po-
linmio na base cannica se mostra ineficiente quando o nmero de
pontos grande e quando existe grande discrepncia nas abscissas.
Neste caso a matriz de Vandermonde mal-condicionada (ver [6]),
acarretando um aumento dos erros de arredondamento na soluo
do sistema.
Uma maneira de resolver este problema escrever o polinmio em
uma base que produza um sistema mais bem-condicionado.
6.2 Diferenas divididas de Newton
O mtodo das diferenas divididas de Newton consistem em cons-
truir o polinmio interpolador da seguinte forma:

P (x) = a0 + a1 (x x0 ) + a2 (x x0 )(x x1 ) +
+ an (x x0 )(x x1 ) (x xn1 ).

Assim, o problema de calcular os coeficientes a0 , a1 , . . . , an equi-


valente ao seguinte sistema linear:

a
a0 + a1 (x1 x
a0 + a1 (x2 x0 ) + a2 (x2 x0 )(x2 x

a0 + a1 (xn x0 ) + a2 (xn x0 )(xn x1 ) + + an (xn x0 ) (xn xn


. O qual equivalente sua forma matricial:

1 0 0 0 a0

1
(x1 x0 ) 0 0 a
1

1 (x2 x0 ) (x2 x0 )(x2 x1 ) 0 a2 =


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


1 (xn x0 ) (xn x0 )(xn x1 ) (xn x0 ) (xn xn1 ) an

Este um sistema triangular inferior que pode ser facilmente resol-


vido conforme:

a0 = y0
y1 a0 y1 y0
a1 = =
x1 x0 x1 x0
y2 y1 y1 y0
y2 a1 (x2 x0 ) a0 (x2 x1 )
(x1 x0 )
a2 = =
(x2 x0 )(x2 x1 ) (x2 x0 )
...
A soluo deste sistema pode ser escrita em termos das Diferenas
Divididas de Newton, definidas recursivamente conforme:

f [xj ] = yj
f [xj+1 ] f [xj ]
f [xj ,xj+1 ] =
xj+1 xj
f [xj+1 ,xj+2 ] f [xj ,xj+1 ]
f [xj ,xj+1 ,xj+2 ] =
xj+2 xj
..
.

Nesta notao, temos ak = f [x0 ,x1 ,x2 , . . . ,xk ]


Podemos esquematizar o mtodo na seguinte tabela:
j xj f [xj ] f [xj1 ,xj ] f [xj2 ,xj1 ,xj ]

0 x0 f [x0 ]

f [x1 ]f [x0 ]
f [x0 ,x1 ] = x1 x0

f [x1 ,x2 ]f [x0 ,x1 ]


1 x1 f [x1 ] f [x0 ,x1 ,x2 ] = x2 x0

f [x2 ]f [x1 ]
f [x1 ,x2 ] = x2 x1

2 x2 f [x2 ]
Exemplo 61. Encontrar o polinmio que passe pelos seguintes pon-
tos

(1,3),(0,1),(1,3),(3,43)
j xj f [xj ] f [xj1 ,xj ] f [xj2 ,xj1 ,xj ] f [xj3 ,xj2 ,xj1 ,xj ]

0 1 3

13
0(1)
= 2

2(2)
1 0 1 1(1)
=2

31 62
10
=2 3(1)
=1

202
2 1 3 30
=6
Portanto

P (x) = 3 2(x + 1) + 2(x + 1)x + (x + 1)x(x 1)


= x3 + 2x2 x + 1
Exerccios

E 6.2.1. Considere o seguinte conjunto de pontos:

(2, 47),(0, 3),(1,4)(2,41)

. Encontre o polinmio interpolador usando os mtodos vistos.

E 6.2.2. No Scilab, faa um grfico com os pontos e o polinmio


interpolador do Exerccio 6.2.1.
6.3 Polinmios de Lagrange
Outra maneira clssica de resolver o problema da interpolao poli-
nomial atravs do polinmios de Lagrange. Dado um conjunto de
pontos {xj }nj=1 distintos dois a dois, definimos os polinmios de La-
grange como os polinmios de grau n1 que satisfazem as seguintes
condies:


1, k = j
Lk (xj ) =
0, k 6= j

Assim, a soluo do problema de encontrar os polinmios de grau


n 1 tais P (xj ) = yj ,j = 1, ,n dado por

n
X
P (x) = y1 L1 (x) + y2 L2 (x) + + yn Ln (x) = yj Lj (x)
j=1

Para construir os polinmios de Lagrange, basta olhar para sua


forma fatorada, ou seja:
Y
Lk (x) = Ck (x xj )
1j6=kn

onde o coeficiente Ck obtido da condio Lk (xk ) = 1:

Y 1
Lk (xk ) = Ck (xk xj ) = Ck = Q
1j6=kn 1j6=kn (xk xj )

Portanto,
Y (x xj )
Lk (x) =
1j6=kn (xk xj )

Observao 16. O problema de interpolao quando escrito


usando como base os polinmios de Lagrange produz um sis-
tema linear diagonal.
Exemplo 62. Encontre o polinmio da forma P (x) = a0 + a1 x +
a2 x2 + a3 x3 que passa pelos pontos

(0,0),(1,1),(2,4),(3,9)

Escrevemos:
(x 1)(x 2)(x 3) 1 11
L1 (x) = = x 3 + x2 x + 1
(0 1)(0 2)(0 3) 6 6
x(x 2)(x 3) 1 5
L2 (x) = = x3 x2 + 3x
1(1 2)(1 3) 2 2
x(x 1)(x 3) 1 3
L3 (x) = = x3 + 2x2 x
2(2 1)(2 3) 2 2
x(x 1)(x 2) 1 1 1
L4 (x) = = x3 x2 + x
3(3 1)(3 2) 6 2 3
Assim temos:

P (x) = 0 L1 (x) + 1 L2 (x) + 4 L3 (x) + 9 L4 (x) = x2


Exemplo 63. Encontre o polinmio da forma P (x) = a0 + a1 x +
a2 x2 + a3 x3 que passa pelos pontos

(0,0),(1,1),(2,0),(3,1)

Como as abscissas so as mesmas do exemplo anterior, podemos


utilizar os mesmos polinmios de Lagrange, assim temos:
2 10
P (x) = 0 L1 (x) + 1 L2 (x) + 0 L3 (x) + 1 L4 (x) = x3 3x2 + x
3 3
6.4 Aproximao de funes reais por
polinmios interpoladores

Teorema 6. Dados n + 1 pontos distintos, x0 , x1 , , xn ,


dentro de um intervalo [a,b] e uma funo f com n+1 derivadas
contnuas nesse intervalo (f C n+1 [a,b]), ento para cada x em
[a,b], existe um nmero (x) em (a,b) tal que

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

onde P (x) o polinmio interpolador. Em especial, pode-se


dizer que
M
|f (x) P (x)| |(x x0 )(x x1 ) (x xn )| ,
(n + 1)!

onde
M = max |f (n+1) ((x))|
Exemplo 64. Considere a funo f (x) = cos(x) e o polinmio P (x)
de grau 2 tal que P (0) = cos(0) = 1, P ( 12 ) = cos( 12 ) e P (1) = cos(1).
Use a frmula de Lagrange para encontrar P (x). Encontre o erro
mximo que se assume ao aproximar o valor de cos(x) pelo de P (x)
no intervalo [0,1]. Trace os grficos de f (x) e P (x) no intervalo [0,1]
no mesmo plano cartesiano e, depois, trace o grfico da diferena
cos(x) P (x). Encontre o erro efetivo mximo | cos(x) P (x)|.

(x 12 )(x 1) 1 (x 0)(x 1) (x 0)(


 
P (x) = 1 1 + cos 1 1 + cos(1)
(0 2 )(0 1) 2 ( 2 0)( 2 1) (1 0)(
1 0,0299720583066x 0,4297256358252x2

L1=poly([.5 1],'x');L1=L1/horner(L1,0)
L2=poly([0 1],'x');L2=L2/horner(L2,0.5)
L3=poly([0 .5],'x');L3=L3/horner(L3,1)
P=L1+cos(.5)*L2+cos(1)*L3
x=[0:.05:1]
plot(x,cos)
plot(x,horner(P,x),'red')
plot(x,horner(P,x)-cos(x))

Para encontrar o erro mximo, precisamos estimar |f 000 (x)| = | sin(x)|


sin(1) < 0,85 e
1
 

max x x
(x 1)
x[0,1] 2
 
1
O polinmio de grau trs Q(x) = x x 2
(x 1) tem um mnimo

3+ 3 3 3
(negativo) em x1 = 6
e um mximo (positivo) em x2 = 6
.
Logo:
1
 

max x x (x 1) max{|Q(x1 )|, |Q(x2 )|} 0,0481125.
x[0,1] 2

Portanto:
0,85
|f (x) P (x)| < 0,0481125 0,0068159 < 7 103
3!
Para encontrar o erro efetivo mximo, basta encontrar o mximo de
|P (x) cos(x)|. O mnimo (negativo) de P (x) cos(x) acontece em
x1 = 4,29 103 e o mximo (positivo) acontece em x2 = 3,29 103 .
Portanto, o erro mximo efetivo 4,29 103 .

Exemplo 65. Considere o problema de aproximar o valor da inte-


gral 01 f (x)dx pelo valor da integral do polinmio P (x) que coincide
R

com f (x) nos pontos x0 = 0, x1 = 12 e x2 = 1. Use a frmula de


Lagrange para encontrar P (x). Obtenha o valor de 01 f (x)dx e
R

encontre uma expresso para o erro de truncamento.

O polinmio interpolador de f (x)

(x 12 )(x 1) 1 (x 0)(x 1) (x 0)(


 
P (x) = f (0) 1 +f 1 1 + f (1)
(0 2 )(0 1) 2 ( 2 0)( 2 1) (1 0)(
1
 
= f (0)(2x2 3x + 1) + f (4x2 + 4x) + f (1)(2x2 x)
2
e a integral de P (x) :

1 1
Z 1
2 3 3 2 1 4
      
P (x)dx = f (0) x x +x + f x3 + 2x2
0 3 2 0 2 3 0
1
2 3 1 2
 
+ f (1) x x
3 2 0
2 3 1 4 2 1
      
= f (0) +1 +f + 2 + f (1)
3 2  2 3 3 2
1 2 1 1
= f (0) + f + f (1)
6 3 2 6
Para fazer a estimativa de erro usando o teorema (6), e temos

Z 1 Z 1 Z 1


f (x)dx P (x)dx =
f (x) P (x)dx
0 0 0
Z 1
|f (x) P (x)|dx
0
M Z 1 1
 

x x (x 1) dx
6 "0 2
M Z 1/2 1
 
= x x (x 1)dx
6 0 2
#
Z 1
1
 
x x (x 1)dx
1/2 2
M 1 1 M
  
= = .
6 64 64 192

Lembramos que M = maxx[0,1] |f 000 (x)|.


Observao 17. Existem estimativas melhores para o erro de
truncamento para este esquema de integrao numrica. Vere-
mos com mais detalhes tais esquemas na teoria de integrao
numrica.

Exemplo 66. Use o resultado do exemplo anterior para aproximar


o valor das seguintes integrais:
Z 1
a) ln(x + 1)dx
0
Z 1
2
b) ex dx
0

Soluo. Usando a frmula obtida, temos que


Z 1
1
ln(x + 1)dx 0,39
0 96
Z 1
2 3,87
ex dx 0,75
0 192

Exerccios

E 6.4.1. Use as mesmas tcnicas usadas o resultado do Exem-


plo (65) para obter uma aproximao do valor de:
Z 1
f (x)dx
0

atravs do polinmio interpolador que coincide com f (x) nos pontos


x = 0 e x = 1.
6.5 Ajuste de curvas pelo mtodo dos
mnimos quadrados
No problema de interpolao, desejamos encontrar uma funo f (x)
tal que
f (xj ) = yj
para um conjunto de pontos dados.
Existem diversas situaes em que desejamos encontrar uma funo
que se aproxime desses pontos.
No problema de ajuste de curvas, busca-se a funo f (x) de famlia
de funes dadas que melhor se aproxima de um conjunto de pontos
dados. O critrio mais usado para o ajuste critrio dos mnimos
quadrados, ou seja, buscamos a funo f (x) da famlia que minimiza
a soma dos erros elevados ao quadrado:
n
Eq = [f (x1 ) y1 ]2 +[f (x2 ) y2 ]2 + +[f (xn ) yn ]2 =
X
[f (xj ) yj
j=1
Figura 6.1: Conjunto de 15 pontos e a reta que melhor se ajuste a
eles pelo critrio do mnimos quadrados.
Exemplo 67. Encontre a funo do tipo f (x) = ax que melhor se
aproxima dos seguintes pontos:

(0, 0,1), (1, 2), (2, 3,7) e (3, 7).

Soluo. Defina

Eq = [f (x1 ) y1 ]2 + [f (x2 ) y2 ]2 + [f (x3 ) y3 ]2 + [f (x4 ) y4 ]2

temos que

Eq = [f (0) + 0,1]2 + [f (1) 2]2 + [f (2) 3,7]2 + [f (3) 7]2


= [0,1]2 + [a 2]2 + [2a 3,7]2 + [3a 7]2

Devemos encontrar o parmetro a que minimiza o erro, portanto,


calculamos:
Eq
= 2[a 2] + 4[2a 3,7] + 6[3a 7] = 28a 60,8
a
60,8
Portanto o valor de a que minimiza o erro a = 28
.
x=[0 1 2 3]'
y=[-.1 2 3.7 7]'
plot2d(x,y,style=-4)

Exemplo 68. Encontre a funo do tipo f (x) = bx + a que melhor
aproxima os pontos:
(0, 0,1), (1, 2), (2, 3,7) e (3, 7).
Soluo.
Eq = [f (0) + 0,1]2 + [f (1) 2]2 + [f (2) 3,7]2 + [f (3) 7]2
= [a + 0,1]2 + [a + b 2]2 + [a + 2b 3,7]2 + [a + 3b 7]2
Devemos encontrar os parmetros a b que minimizam o erro, por
isso, calculamos as derivadas parciais:
Eq
= 2[a + 0,1] + 2[a + b 2] + 2[a + 2b 3,7] + 2[a + 3b 7]
a
Eq
= 2[a + b 2] + 4[a + 2b 3,7] + 6[a + 3b 7]
b
O erro mnimo acontece quando as derivadas so nulas, ou seja:

8a + 12b = 25,2
12a + 28b = 60,8

Cuja soluo dada por a = 0,3 e b = 2,3. Portanto a funo que


procuramos f (x) = 0,3 + 2,3x.
6.6 O caso linear
6.6.1 O mtodo dos mnimos quadrados
Considere o sistema linear dado por Ax = b onde A uma matriz
nm e b um vetor de n linhas. Assumimos as seguintes hipteses:

n m. O nmero de linhas igual ou superior ao nmero de


colunas. (Mais equaes que incgnitas)

O posto de A m, i.e., existem m linhas L.I. Isso implica que


Av = 0 apenas quando v = 0

Neste caso, no seremos necessariamente capazes de encontrar um


vetor x que satisfaa exatamente a equao Ax = b, pelo que es-
tamos interessamos no problema de encontrar o vetor x (ordem m)
que minimiza o erro quadrtico dado por:

n
[zi bi ]2
X
E := (6.1)
i=1
onde z = Ax e zi linha i do vetor z, dado por:
m
X
zi = (Ax)i = aij xj , i = 1, ,n (6.2)
j=1

onde aij o elemento de A na linha i e coluna j. Substituindo (6.2)


em (6.1)
2
n
X m
X
E := aij xj bi (6.3)
i=1 j=1

Esta uma funo diferencivel nos coeficientes xj e portanto todo


ponto de mnimo acontece quando E = 0, ou seja, quando

E = 0,1 l m
xl
O que implica a seguinte condio

n m
X X
0= E= 2 aij xj bi ail , l = 1, , m
xl i=1 j=1
Equivalente a
n X
X m n
X
ail xj aij = ail bi , l = 1, , m
i=1 j=1 i=1

que pode ser reescrito na forma vetorial como:



Pn Pm n P
i=1 j=1 ai1 xj aij i=1 ai1 bi
Pn Pm
Pn
j=1 ai2 xj aij i=1 ai2 bi

i=1
=


.. ..

(6.4)

. .


P P
n Pm n
i=1 j=1 aim xj aij i=1 aim bi

Observamos agora que a expresso (6.4) equivalente ao seguinte


problema matricial:

AT Ax = AT b (6.5)
Teorema 7. A matriz M = AT A quadrada de ordem m e
invertvel sempre que o posto da matriz A igual a nmero de
colunas m.

Demonstrao. Para provar que M invertvel precisamos mostrar


que M v = 0 implica v = 0:
M v = 0 = AT Av = 0
tomando o produto interno da expresso 0 = AT Av com v, temos:
D E
0 = AT Av,v = hAv,Avi = kAvk2
Ento se M v = 0 Av = 0, como o posto de A igual ao nmero de
colunas, v = 0.
Outra propriedade importante que M simtrica, ou seja, M =
M T . Isso facilmente provado pelo seguinte argumento:
M T = (AT A)T = (A)T (AT )T = AT A = M
6.6.2 Ajuste linear de curvas
Seja f1 (x), f2 (x), . . . , fm (x) um conjunto de m funes e (x1 ,y1 ), (x2 ,y2 )
um conjunto de n pontos. Procuram-se os coeficientes a1 ,a2 , . . . , am
tais que a funo dada por

f (x) = a1 f1 (x) + a2 f2 (x) + . . . + am fm (x)

minimiza o erro dado por


n
[f (xi ) yi ]2
X
Eq =
i=1
Pm
como f (x) = j=1 aj fj (x), temos
2
n
X m
X
Eq = aj fj (xi ) yi
i=1 j=1

Este problema equivalente a resolver pelo mtodos dos mnimos


quadrados o seguinte sistema linear:


f1 (x1 ) f2 (x1 ) fm (x1 ) y1

a1

f1 (x2 ) f2 (x2 ) fm (x2 ) y2


a2


f1 (x3 ) f2 (x3 ) fm (x3 )
.
= y3
..

.. .. .. .. ..

.

. . . .
am


f1 (xn ) f2 (xn ) fm (xn ) yn

Exemplo 69. Encontre a reta que melhor aproxima o seguinte con-


junto de dados:
xi yi
0,01 1,99
1,02 4,55
2,04 7,20
2,95 9,51
3,55 10,82

Soluo. Desejamos ento encontrar os valores de a e b tais que a


funo f (x) = ax + b melhor se ajusta aos pontos da tabela. Afim
de usar o critrio dos mnimos quadrados, escrevemos o problema
na forma matricial dada por:


0,01 1 1,99

1,02 1 4,55





a




2,04 1
=
7,2




b




2,95 1


9,51


3,55 1 10,82

Multiplicamos agora ambos os lados pela transposta:


0,01 1,02 2,04 2,95 3,55

1 1 1 1 1
o que fornece:


0,01 1

1,02 1


0,01 1,02 2,04 2,95 3,55


a
2,04 1 =



1 1 1 1 1

b


2,95 1


3,55 1

1,99

4,55


0,01 1,02 2,04 2,95 3,55



7,2



1 1 1 1 1




9,51


10,82

26,5071 9,57 a 85,8144
=


9,57 5 b 34,07
A soluo desse sistema a = 2,5157653 e b = 1,9988251
A tabela abaixo mostra os valores dados e os valores ajustados:

xi yi axi + b axi + b yi
0,01 1,99 2,0239828 0,0339828
1,02 4,55 4,5649057 0,0149057
2,04 7,2 7,1309863 0,0690137
2,95 9,51 9,4203327 0,0896673
3,55 10,82 10,929792 0,1097919

Exerccios

E 6.6.1. Encontrar a parbola y = ax2 +bx+c que melhor aproxima


o seguinte conjunto de dados:

xi yi
0,01 1,99
1,02 4,55
2,04 7,2
2,95 9,51
3,55 10,82

e complete a tabela:
xi yi ax2i + bxi + c ax2i + bxi + c yi
0,01 1,99
1,02 4,55
2,04 7,20
2,95 9,51
3,55 10,82
E 6.6.2. Dado o seguinte conjunto de dados
xi yi
0,0 31
0,1 35
0,2 37
0,3 33
0,4 28
0,5 20
0,6 16
0,7 15
0,8 18
0,9 23
1,0 31
Encontre a funo do tipo f (x) = a + b sin(2x) + c cos(2x)
que melhor aproxima os valores dados.

Encontre a funo do tipo f (x) = a + bx + cx2 + dx3 que


melhor aproxima os valores dados.
6.7 Aproximando problemas no linea-
res por problemas lineares
Eventualmente, problemas de ajuste de curvas podem recair num
sistema no linear. Por exemplo, se desejamos ajustar a funo
y = Aebx ao conjunto de pontos (x0 ,y0 ), (x1 ,y1 ) e (x2 ,y2 ), temos que
minimizar o funcional
Eq = (Aex0 b y0 )2 + (Aex1 b y1 )2 + (Aex2 b y2 )2
ou seja, resolver o sistema
Eq
= 2(Aex0 b y0 )ex0 b + 2(Aex1 b y1 )ex1 b + 2(Aex2 b y2 )ex2 b = 0
A
Eq
= 2Ax0 (Aex0 b y0 )ex0 b + 2Ax1 (Aex1 b y1 )ex1 b
b
+ 2x2 A(Aex2 b y2 )ex2 b = 0
que no linear em A e b. Esse sistema pode ser resolvido pelo m-
todo de Newton-Raphson, o que pode se tornar custoso, ou mesmo
invivel quando no dispomos de uma boa aproximao da soluo
para inicializar o mtodo.
Felizmente, algumas famlias de curvas admitem uma transformao
que nos leva a um problema linear. No caso da curva y = Aebx ,
observe que ln y = ln A + bx. Assim, em vez de ajustar a curva
original y = Aebx a tabela de pontos, ajustamos a curva submetida
a transformao logartmica

z = ln A + bx := B + bx.

Usamos os trs pontos (x0 , ln y0 ) := (x0 , y0 ), (x1 , ln y1 ) := (x1 ,y1 ) e


(x2 , ln y2 ) := (x2 ,y2 ) e resolvemos o sistema linear


y0
B
AT A
=A
T
y1

,
b


y2
onde
1 x0

A=
1 x1



1 x2

Exemplo 70. Encontre uma curva da forma y = Aex que melhor


ajusta os pontos (1,2), (2,3) e (3,5).

Temos
1 1

A=
1 2



1 3

e a soluo do sistema leva em B = 0,217442 e b = 0,458145.


Portanto, A = e0,217442 = 1,24289.
Observao 18. Os coeficientes obtidos a partir dessa lineari-
zao so aproximados, ou seja, so diferentes daqueles ob-
tidos quando aplicamos mnimos Xquadrados no linear. Ob-
serve que estamos minimizando [ln yi ln(f (xi ))]2 em vez de
i
[yi f (xi )]2 . No exemplo resolvido, a soluo do sistema no
X

i
linear original seria A = 1,19789 e B = 0,474348

Observao 19. Mesmo quando se deseja resolver o sistema no


linear, a soluo do problema linearizado pode ser usada para
construir condies iniciais.

A prxima tabela apresenta algumas curvas e transformaes que


linearizam o problema de ajuste.

curva transformao problema linearizado


y = aebx Y = ln y Y = ln a + bx
y = axb Y = ln y Y = ln a + b ln x
y = axb ecx Y = ln y Y = ln a + b ln x + cx
2
y = ae(b+cx) Y = ln y Y = ln a + b2 + bcx + c2 x2
a 1 b
y= b+x
Y = y
Y = a
+ a1 x
y = A cos(x + ) y = a cos(x) b sin(x),

conhecido a = A cos(), b = A sin()

Exemplo 71. Encontre a funo f da forma y = f (x) = A cos(2x+


) que ajusta a tabela de pontos

xi yi
0,0 9,12
0,1 1,42
0,2 - 7,76
0,3 - 11,13
0,4 - 11,6
0,5 - 6,44
0,6 1,41
0,7 11,01
0,8 14,73
0,9 13,22
1,0 9,93
Soluo. Usando o fato que y = A cos(2x + ) = a cos(2x)
b sin(2x), onde a = A cos() e b = A sin(), z = [ a b ]T soluo
do problema

B T Bz = B T y,
onde

1. 0.

0,8090170 0,5877853





0,3090170 0,9510565



0,3090170 0,9510565
cos(2x0 ) sin(2x0 )


0,8090170 0,5877853



cos(2x1 ) sin(2x1 )



B =
..
=
1,0000000 0,0000000 .

.
0,8090170

0,5877853
cos(2x10 ) sin(2x10 )



0,3090170 0,9510565




0,3090170 0,9510565


0,8090170 0,5877853




1,0000000 0,0000000
Assim, a = 7,9614704 e b = 11,405721 e obtemos o seguinte sistema:


A cos() = 7,9614704
.
A sin() = 11,405721

Observe que
A2 = 7,96147042 + 11,4057212
e, escolhendo A > 0, A = 13,909546 e
11,405721
sin() = = 0,8199923
13,909546
Assim, como cos tambm positivo, um ngulo do primeiro
quadrante:
= 0,9613976
Portanto f (x) = 13,909546 cos(2x+0,9613976). Observe que nesse
exemplo a soluo do problema linear a mesma do problema no
linear.
a
Exemplo 72. Encontre a funo f da forma y = f (x) = b+x
que
ajusta a tabela de pontos

xi yi
0,0 101
0,2 85
0,4 75
0,6 66
0,8 60
1,0 55

usando uma das transformaes tabeladas.


b
Soluo. Usando o fato que Y = y1 = a
+ a1 x, z = [ b
a
1
a
]T
soluo do problema
AT Az = AT Y,
onde



1 x1
1 0,0


1 x2


1 0,2



1 x3 1 0,4
A= =


1 x4 1 0,6





1 x5


1 0,8


1 x6 1 1,0
e

1/y1
0,0099010

1/y 0,0117647
2


1/y3 0,0133333
Y = =


1/y4 0,0151515





1/y5


0,0166667


1/y6 0,0181818

Assim, a1 = 0,0082755 e ab = 0,0100288 e, ento, a = 120,83924 e


120,83924
b = 1,2118696, ou seja, f (x) = 1,2118696+x .
6.8 Interpolao linear segmentada
Considere o conjunto (xi ,yi )nj=1 de n pontos. Assumiremos que
xi+1 > xi , ou seja, as abscissas so distintas e esto em ordem
crescente. A funo linear que interpola os pontos xi e xi+1 no
intervalo i dada por

(xi+1 x) (x xi )
Pi (x) = yi + yi+1
(xi+1 xi ) (xi+1 xi )

O resultado da interpolao linear segmentada a seguinte funo


contnua definida por partes no intervalo [x1 ,xn ]:

f (x) = Pi (x), x [xi ,xi+1 ]

Exemplo 73. Construa uma funo linear por partes que interpola
os pontos (0,0), (1,4), (2,3), (3,0), (4,2), (5,0).
A funo procurada pode ser construda da seguinte forma:

0 x1 + 1 x0 ,0 x < 1


01 10




f (x) =
4 x2
12
+ 3 x1
21
,1 x < 2


3 x3 + 0 x2 ,2 x 3



23 32

Simplificando, obtemos:

x ,0 x < 1






f (x) = x + 5 ,1 x < 2



3x + 9 , 2 x 3


A Figura 6.2 um esboo da funo f (x) obtida. Ela foi gerada no


Scilab usando os comandos:
//pontos fornecidos
xi = [0;1;2;3;4;5]
yi = [0;4;3;0;2;0]
//numero de pontos
n = 6
//funcao interpoladora
function [y] = f(x)
for i=1:n-2
if ((x>=xi(i)) & (x<xi(i+1))) then
y = yi(i)*(x-xi(i+1))/(xi(i) - xi(i+1)) ...
+ yi(i+1)*(x-xi(i))/(xi(i+1) - xi(i));
end
end

if ((x>=xi(n-1)) & (x<=xi(n))) then


y = yi(n-1)*(x-xi(n))/(xi(n-1) - xi(n)) ...
+ yi(n)*(x-xi(n-1))/(xi(n) - xi(n-1));
end
endfunction
//graficando
xx = linspace(xi(1),xi(n),500)';
clear yy
for i=1:max(size(xx))
yy(i) = f(xx(i))
end
plot(xi,yi,'r.',xx,yy,'b-')
Figura 6.2: Interpolao linear segmentada.
6.9 Interpolao cbica segmentada - spli
Dado um conjunto de n pontos (xj ,yj )nj=1 tais que xj+1 > xj , ou
seja, as abscissas so distintas e esto em ordem crescente; um spline
cbico que interpola estes pontos uma funo s(x) com as seguintes
propriedades:

i Em cada segmento [xj ,xj+1 ], j = 1,2, . . . n 1 s(x) um po-


linmio cbico.

ii para cada ponto, s(xj ) = yj , i.e., o spline interpola os pontos


dados.

iii s(x) C 2 , i.e., funo duas vezes continuamente diferenci-


vel.

Da primeira hiptese, escrevemos

s(x) = sj (x),x [xj ,xj+1 ], j = 1, . . . , n 1


com
sj (x) = aj + bj (x xj ) + cj (x xj )2 + dj (x xj )3
O problema agora consiste em obter os 4 coeficientes de cada um
desses n 1 polinmios cbicos.
Veremos que a simples definio de spline produz 4n 6 equaes
linearmente independentes:

sj (xj ) = yj , j = 1, . . . , n 1
sj (xj+1 ) = yj+1 , j = 1, . . . , n 1
s0j (xj+1 ) = s0j+1 (xj+1 ), j = 1, . . . , n 2
s00j (xj+1 ) = s00j+1 (xj+1 ), j = 1, . . . , n 2
Como
s0j (x) = bj + 2cj (x xj ) + 3dj (x xj )2 (6.6)
e
s00j (x) = 2cj + 6dj (x xj ), (6.7)
temos, para j = 1, . . . , n 1, as seguintes equaes

aj = y j ,
aj + bj (xj+1 xj ) + cj (xj+1 xj )2 + dj (xj+1 xj )3 = yj+1 ,
bj + 2cj (xj+1 xj ) + 3dj (xj+1 xj )2 = bj+1 ,
cj + 3dj (xj+1 xj ) = cj+1 ,

Por simplicidade, definimos

hj = xj+1 xj

e temos
aj = y j ,
aj + bj hj + cj h2j + dj h3j = yj+1 ,
bj + 2cj hj + 3dj h2j = bj+1 ,
cj + 3dj hj = cj+1 ,
que podem ser escrita da seguinte maneira

aj = y j , (6.8)

cj+1 cj
dj = , (6.9)
3hj

cj+1 cj 3
yj+1 yj cj h2j 3hj
hj
bj = ,
hj
3yj+1 3yj 3cj h2j cj+1 h2j + cj h2j
=
3hj
3yj+1 3yj 2cj h2j cj+1 h2j
= (6.10)
3hj

Trocando o ndice j por j1 na terceira equao (6.8), j = 2, . . . , n


1
bj1 + 2cj1 hj1 + 3dj1 h2j1 = bj (6.11)
e, portanto,
3yj 3yj1 2cj1 h2j1 cj h2j1
+ 2cj1 hj1 + cj hj1 cj1 hj1
3hj1
3yj+1 3yj 2cj h2j cj+1 h2j
= .
3hj
(6.12)
Fazendo as simplificaes, obtemos:
yj+1 yj yj yj1
cj1 hj1 + cj (2hj + 2hj1 ) + cj+1 hj = 3 3 .
hj hj1
(6.13)
costumeiro acrescentar a incgnita cn ao sistema. A incgnita
cn no est relacionada a nenhum dos polinmios interpoladores.
Ela uma construo artificial que facilita o clculo dos coeficientes
do spline. Portanto, a equao acima pode ser resolvida para j =
2, . . . , n 1.
Para determinar unicamente os n coeficientes cn precisamos acres-
centar duas equaes linearmente independentes s n 2 equaes
dadas por (6.13). Essas duas equaes adicionais definem o tipo de
spline usado.
6.9.1 Spline natural
Uma forma de definir as duas equaes adicionais para completar
o sistema (6.13) impor condies de fronteira livres (ou naturais),
ou seja,
S 00 (x1 ) = S 00 (xn ) = 0. (6.14)
Substituindo na equao (6.7)

s001 (x1 ) = 2c1 + 6d1 (x1 x1 ) = 0 = c1 = 0.

e
s00n1 (xn ) = 2cn1 + 6dn1 (xn xn1 ) = 0.
Usando o fato que

cn1 + 3dn1 hn1 = cn

temos que

cn = 3dn1 (xn xn1 ) + 3dn1 hn1 = 0.


Essa duas equaes para c1 e cn juntamente com as equaes (6.13)
formam um sistema de n equaes Ac = z, onde



1 0 0 0 0 0


h1 2h2 + 2h1 h2 0 0 0



0 h2 2h3 + 2h2 h3 0 0
A=

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

. . . . . . .




0 0 0 hn2 2hn2 + 2hn1 hn1


0 0 0 0 0 1
(6.15)


0

3 y3hy 3 y2hy

c1
2
2
1
1


3 y4hy 3 y3hy


c2
3
3
2
2
c= e z= (6.16)

.. ..


. .



yn2 yn3
3 yn1hn2 3 yn2hn3

cn




0

Observe que a matriz A diagonal dominante estrita e, portanto,


o sistema Ac = z possui soluo nica. Calculado c, os valores dos
an , bn e dn so obtidos diretamente pelas expresses (6.8), (6.10) e
(6.9), respectivamente.

Exemplo 74. Construa um spline cbico natural que passe pelos


pontos (2, 4,5), (5, 1,9), (9, 0,5) e (12, 0,5).

Soluo. O spline desejado uma funo definida por partes da


forma:


a1 + b1 (x 2) + c1 (x 2)2 + d1 (x 2)3 , 2 x < 5






f (x) =
a2 + b2 (x 5) + c2 (x 5)2 + d2 (x 5)3 , 5 x < 9 .


a3 + b3 (x 9) + c3 (x 9)2 + d3 (x 9)3 , 9 x 12



(6.17)
Os coeficientes c1 , c2 e c3 resolvem o sistema Ac = z, onde


1 0 0 0 1 0 0 0

3 23+24 4 0 3 14 4 0


A=


=




0 4 24+23 3


0 4 14 3


0 0 0 1 0 0 0 1

c1 0 0

0,5(1,9) (1,9)4,5

c2


3 4
3 3

8,2

c= e z= =
0,50,5 0,5(1,9)


c3


3 3 3 4



2,8


c4 0 0

Observe que c4 um coeficiente artificial para o problema. A soluo


c1 = 0, c2 = 0,7, c3 = 0,4 e c4 = 0. Calculamos os demais
coeficientes usando as expresses (6.8), (6.10) e (6.9):

a1 = y1 = 4,5
a2 = y2 = 1,9
a3 = y3 = 0,5
c2 c1 0,7 0
d1 = = = 0,0777778
3h1 33
c3 c2 0,4 0,7
d2 = = = 0,0916667
3h2 34
c4 c3 0 + 0,4
d3 = = = 0,0444444
3h3 33
y2 y1 h1
b1 = (2c1 + c2 )
h1 3
1,9 4,5 3
= (2 0 0,7) = 2,8333333
3 3
y3 y2 h2
b2 = (2c2 + c3 )
h2 3
0,5 (1,9) 4
= (2 0,7 + 0,4) = 0,7333333
4 3
y4 y3 h3
b3 = (2c3 + c4 )
h3 3
0,5 0,5 3
= (2 (0,4) + 0) = 0,4666667
3 3
Portanto:




4,5 2,833(x 2) + 0,078(x 2)3 ,2 x < 5

f (x) =
1,9 0,733(x 5) + 0,7(x 5)2 0,092(x 5)3 , 5 x < 9


0,5 + 0,467(x 9) 0,4(x 9)2 + 0,044(x 9)3

, 9 x 12
No Scilab, podemos utilizar:

X = [2 5 9 12]'
Y = [4.5 -1.9 0.5 -0.5]'
h = X(2:4)-X(1:3)
A = [1 0 0 0;h(1) 2*h(1)+2*h(2) h(2) 0; ...
0 h(2) 2*h(2)+2*h(3) h(3);0 0 0 1 ]
z = [0, 3*(Y(3)-Y(2))/h(2)-3*(Y(2)-Y(1))/h(1), ...
3*(Y(4)-Y(3))/h(3)-3*(Y(3)-Y(2))/h(2), 0]'
c = A\z
for i=1:3
a(i) = Y(i)
d(i) = (c(i+1)-c(i))/(3*h(i))
b(i) = (Y(i+1)-Y(i))/h(i)-h(i)/3*(2*c(i)+c(i+1))
end

for i=1:3
P(i) = poly([a(i) b(i) c(i) d(i)],'x','coeff')
z = [X(i):.01:X(i+1)]
plot(z,horner(P(i),z-X(i)))
end

6.9.2 Spline fixado
Alternativamente, para completar o sistema (6.13), podemos impor
condies de contorno fixadas, ou seja,

S 0 (x1 ) = f 0 (x1 )
S 0 (xn ) = f 0 (xn ).

Substituindo na equao (6.6)

s01 (x1 ) = b1 + 2c1 (x1 x1 ) + 3dj (x1 x1 )2 = f 0 (x1 ) = b1 = f 0 (x1 )


(6.18)
e
s0n1 (xn ) = bn1 + 2cn1 (xn xn1 ) + 3dj (xn xn1 )2
(6.19)
= bn1 + 2cn1 hn1 + 3dn1 h2n1 = f 0 (xn )

Usando as equaes (6.9) e (6.10) para j = 1 e j = n 1, temos:


y2 y1
2c1 h1 + c2 h1 = 3 3f 0 (x1 ) (6.20)
h1
e
yn yn1
cn1 hn1 + cn hn1 = 3f 0 (xn ) 3 (6.21)
hn1

Essas duas equaes juntamente com as equaes (6.13) formam um


sistema de n equaes Ac = z, onde



2h1 h1 0 0 0 0


h1 2h2 + 2h1 h2 0 0 0



0 h2 2h3 + 2h2 h3 0 0
A=

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

. . . . . . .



0 0 0 hn2 2hn2 + 2hn1 hn1

0 0 0 0 hn1 2hn1


3 y2hy
1
1
3f 0 (x1 )

3 y3hy 3 y2hy

c1
2
2
1
1


3 y4hy 3 y3hy


c2
3
3
2
2
c= e z=

.. ..


. .



yn2 yn3
3 yn1hn2 3 yn2hn3

cn




3f 0 (xn ) 3 ynhy
n1
n1

Observe que a matriz A diagonal dominante estrita e, portanto,


o sistema Ac = z possui soluo nica. Calculado c, os valores dos
an , bn e dn so obtidos diretamente pelas expresses (6.8), (6.10) e
(6.9), respectivamente.
Exemplo 75. Construa um spline cbico com fronteira fixada que
interpola a funo y = sin(x) nos pontos x = 0, x = 2 , x = ,
x = 3
2
e x = 2.
O spline desejado passa pelos pontos (0,0), (/2,1), (,0), (3/2,1)
e (2,0) e tem a forma:





a1 + b 1 x + c 1 x 2 + d 1 x 3 ,0 x < 2


a2 + b2 (x 2 ) + c2 (x 2 )2 + d2 (x 2 )3 , 2 x <



f (x) =
3
a3 + b3 (x ) + c3 (x )2 + d3 (x )3 , x <


2





3 3 2 3 3
a4 + b4 (x ) + c4 (x ) + d4 (x ) , 3 x 2


2 2 2 2

Observe que ele satisfaz as condio de contorno f 0 (0) = cos(0) = 1


e f 0 (2) = cos(2) = 1.
Os coeficientes c1 , c2 , c3 e c4 resolvem o sistema Ac = z, onde:

/2 0 0 0

/2 2 /2 0 0




A=
0 /2 2 /2 0




0 0 /2 2 /2


0 0 0 /2

c1 3 10
/2
31 6/ 3

01 10
c2 3 /2 3 /2 12/




c= e z= 10 01 =

c3


3 /2 3 /2

0


3 0(1) (1)0


c4


/2
3 /2



12/


c5 3 1 3 0(1)
/2
3 6/
Aqui c5 um coeficiente artificial para o problema. A soluo
c1 = 0,0491874, c2 = 0,5956302, c3 = 0, c4 = 0,5956302 e c5 =
0,0491874. Calculamos os demais coeficientes usando as expresses
(6.8), (6.10) e (6.9):

a1 = y1 =0
a2 = y2 =1
a3 = y3 =0
a4 = y3 = 1
c2 c1 0,5956302 (0,0491874)
d1 = = = 0,1159588
3h1 3 /2
c3 c2 0 (0,5956302)
d2 = = = 0,1263967
3h2 3 /2
c4 c3 0,5956302 0
d3 = = = 0,1263967
3h3 3 /2
c5 c4 0,0491874 0,5956302
d4 = = = 0,1159588
3h4 3 /2
y2 y1 h1
b1 = (2c1 + c2 )
h1 3
1 0 /2
= (2 (0,0491874) 0,5956302) = 1
/2 3
y3 y2 h2
b2 = (2c2 + c3 )
h2 3
0 1 /2
= (2 (0,5956302) + 0) = 0,0128772
/2 3
y4 y3 h3
b3 = (2c3 + c4 )
h3 3
1 0 /2
= (2 0 + 0,5956302) = 0,9484910
/2 3
y5 y4 h4
b4 = (2c4 + c5 )
h4 3
0 (1) /2
= (2 0,5956302 + 0,0491874) = 0,0128772
/2 3
Portanto,




x 0,049x2 0,12x3 ,0 x < 2


1 + 0,01(x ) 0,6(x )2 + 0,13(x )3 , 2 x <


2 2 2
f (x) =
3



0,95(x ) + 0,13(x )3 , x < 2


1 0,01(x 3 ) + 0,6(x 3 )2 0,12(x 3 )3 , 3
2 x2

2 2 2

No Scilab, podemos resolver este problema fazendo:

//limpa memoria
clear A, B, a, b, c, d
//pontos fornecidos
xi = [0; %pi/2; %pi; 3*%pi/2; 2*%pi]
yi = sin(xi)
//numero de pontos
n = 5
disp('Pontos fornecidos:')
disp([xi, yi])
//vetor h
h = xi(2:n) - xi(1:n-1);
//matriz A
for i=1:n
for j=1:n
if ((j==1) & (i==1)) then
A(i,j) = 2*h(1);
elseif (j == i-1) then
A(i,j) = h(i-1);
elseif ((i>1) & (i<n) & (i==j)) then
A(i,j) = 2*(h(i) + h(i-1));
elseif (j==i+1) then
A(i,j) = h(i);
elseif ((j==n) & (i==n)) then
A(i,j) = 2*h(n-1);
else
A(i,j) = 0;
end
end
end
disp('Matriz A:')
disp(A)
//vetor z
for i=1:n
if ((i==1)) then
z(i) = 3*(yi(2)-yi(1))/h(1) - 3*cos(xi(1));
elseif ((i>1) & (i < n)) then
z(i) = 3*(yi(i+1)-yi(i))/h(i) ...
- 3*(yi(i) - yi(i-1))/h(i-1);
elseif (i == n) then
z(i) = 3*cos(xi(n)) - 3*(yi(n) - yi(n-1))/h(n-1);
end
end
disp('Vetor z:')
disp(z)
//coeficientes c
c = inv(A)*z
disp('Coeficientes c:')
disp(c)
//coeficientes a
a = yi(1:n-1);
disp('Coeficientes a:')
disp(a)
//coeficientes b
for j=1:n-1
b(j) = (3*yi(j+1) - 3*yi(j) - 2*c(j)*h(j)^2 ...
- c(j+1)*h(j)^2)/(3*h(j));
end
disp('Coeficientes b:')
disp(b)
//coeficientes d
for j=1:n-1
d(j) = (c(j+1) - c(j))/(3*h(j));
end
disp('Coeficientes d:')
disp(d)
//spline cubico obtido
function [y] = s(x)
for i=1:n-2
if ((x>=xi(i)) & (x<xi(i+1))) then
y = a(i) + b(i)*(x-xi(i)) ...
+ c(i)*(x-xi(i))^2 + d(i)*(x-xi(i))^3;
end
end
if ((x>=xi(n-1)) & (x<=xi(n))) then
y = a(n-1) + b(n-1)*(x-xi(n-1)) ...
+ c(n-1)*(x-xi(n-1))^2 + d(n-1)*(x-xi(n-1))^3;
end
endfunction
Resumo sobre Splines

Dado um conjunto de pontos (xi ,yi ), i = 1,2, . . . ,n, um spline cbico


a seguinte funo definida por partes:




a1 +b1 (xx1 )+c1 (xx1 )2 +d1 (xx1 )3 , x1 x <


a2 +b2 (xx2 )+c2 (xx2 )2 +d2 (xx2 )3


, x2 x <
s(x) = .. ..
. .






an1 +bn1 (xxn1 )+cn1 (xxn1 )2 +dn1 (xxn1 )3 , xn1 x

Definindo-se hj = xj+1 xj , os coeficientes cj , j = 1,2, . . . ,n, so


soluo do sistema linear Ac = z, onde:

Spline Natural Spline Fixado


s001 (x1 ) = 0 e s00n1 (xn ) = 0 s01 (x1 ) = f 0 (x1 ) e s0n1 (xn ) =




1 ,j = i = 1


2h1 ,j = i



hi1 , j = i 1, i < n hi1 ,j = i










2(hi + hi1 ) , j = i, 1 < i < n 2(hi + hi1 ) , j = i,



ai,j = ai,j =



hi , j = i + 1, i > 1


hi ,j = i







1 ,j = i = n


2hn1 ,j = i



0 , caso contrrio. 0 , caso c





0 ,i = 1


3 y2hy
1
1
3f 0 (x1 ) ,

yi+1 yi
zi =
3 hi 3 yihy i1
i1
,1 < i < n zi =

y y y y
3 i+1hi i 3 ihi1i1 ,

3f 0 (x ) 3 yn yn1

0 ,i = n ,

n hn1
os coeficientes aj , bj e dj , j = 1,2, . . . ,n1, so calculados conforme
segue:

aj = y j
3yj+1 3yj 2cj h2j cj+1 h2j
bj =
3hj
cj+1 cj
dj =
3hj
Captulo 7

Derivao e integrao
numrica
7.1 Derivao Numrica
 
dy
Dado um conjunto de pontos (xi ,yi )ni=1 , a derivada dx pode ser
i
calculada de vrias formas. Na prxima seo trabalharemos com
diferenas finitas, que mais adequada quando as abcissas esto
prximas e os dados no sofrem perturbaes significativas. Na
seo subsequente trataremos os casos quando os dados oscilam via
ajuste ou interpolaes de curvas.
7.1.1 Aproximao da derivada por diferenas
finitas
A derivada f 0 (x0 ) de uma funo f (x) no ponto x0
f (x0 + h) f (x0 )
f 0 (x0 ) = lim .
h0 h
Da definio, se h 6= 0 pequeno (no muito pequeno para evitar o
cancelamento catastrfico), esperado que uma aproximao para
a derivada no ponto x0 seja dada por:
f (x0 + h) f (x0 )
f 0 (x0 ) . (7.1)
h
Exemplo 76. Calcule a derivada numrica da funo f (x) = cos(x)
no ponto x = 1 usando h = 0,1, h = 0,01, h = 0,001 e h = 0,0001.
Soluo. Usando a frmula de diferenas dada pela Equao (7.1),
devemos calcular:
cos(1 + h) cos(1)
f 0 (x)
h
para cada valor de h solicitado. Fazendo isso, obtemos a seguinte
tabela:

f (1 + h) f (1)
h
h

0,4535961 0,5403023
0,1 = 0,8670618
0,1

0,5318607 0,5403023
0,01 = 0,8441584
0,01

0,5403023 0,5403023
0,001 = 0,841741
0,001

0,5403023 0,5403023
0,0001 = 0,841498
0,0001
No Scilab, podemos calcular a aproximao da derivada f 0 (1) com
h = 0,1 usando as seguintes linhas de cdigo:

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


x0 = 1
h = 0.1
dp = (f(x0+h) - f(x0))/h

E, similarmente, para outros valores de x0 e h.

Observe que, no exemplo anterior, quanto menor h, melhor a


aproximao, visto que o valor exato para a derivada f 0 (1) =
sin(1) = 0,8414710. Porm, quando h = 1013 , a derivada nu-
mrica 0,8404388 (usando aritmtica double), resultado pior
que aquele para h = 0,0001. Alm disso, na mesma aritmtica,
quando h = 1016 a derivada numrica calculada zero (cancela-
mento catastrfico). Isso nos motiva a pensar qual o melhor h.
Essa aproximao para a derivada denominada diferenas progres-
sivas. A derivada numrica tambm pode ser aproximada usando
definies equivalentes:

f (x0 ) f (x0 h) yi yi1


f 0 (x0 ) =
h h

que denominada diferenas regressivas ou

f (x0 + h) f (x0 h) yi+1 yi1


f 0 (x0 ) =
2h 2h

que denominada diferenas centrais.

Exemplo 77. Calcule a derivada numrica da funo f (x) = cos(x)


no ponto x = 1 usando diferenas progressivas, diferenas regressi-
vas e diferenas centrais com h = 0,1, h = 0,01 e h = 0,001.

Soluo. A tabela abaixo mostra a derivada numrica para cada


valor de h.
Diferenas h=0,1
Progressivas 0,8670618
cos(1) cos(0,9)
Regressivas = 0,8130766
0,1
cos(1,1) cos(0,9)
Centrais = 0,8400692
0,2
Diferenas h=0,01
Progressivas 0,8441584
cos(1) cos(0,99)
Regressivas = 0,8387555
0,01
cos(1,01) cos(0,99)
Centrais = 0,8414570
0,02
Diferenas h=0,01
Progressivas 0,841741
cos(1) cos(0,999)
Regressivas = 0,8412007
0,001

7.1.2 Erros de truncamento

Seja D+,h f (x0 ) a aproximao da derivada de f em x0 por diferenas


progressivas, D,h f (x0 ) a aproximao por diferenas regressivas e
D0,h f (x0 ) a aproximao por diferenas centrais, ento

f (x0 + h) f (x0 )
D+,h f (x0 ) f 0 (x0 ) = f 0 (x0 )
h
2
f (x0 ) + hf 0 (x0 ) + h2 f 00 (x0 ) + O(h3 ) f (x0 )
=
h
h 00
= f (x0 ) + O(h2 ) = O(h).
2
Analogamente:
f (x0 ) f (x0 h)
D,h f (x0 ) f 0 (x0 ) = f 0 (x0 )
h

h2 00
f (x0 ) f (x0 ) hf 0 (x0 ) + 2
f (x0 ) + O(h3
=
h
h 00
= f (x0 ) + O(h2 ) = O(h).
2

Tambm:
f (x0 + h) f (x0 h)
D0,h f (x0 ) f 0 (x0 ) = f 0 (x0 )
2h
2
f (x0 ) + hf 0 (x0 ) + h2 f 00 (x0 ) + O(h3 )
=
2h
2
f (x0 ) hf (x0 ) + h2 f 00 (x0 ) + O(h3 )
0
f 0 (x0 )
2h
= O(h2 ).
Exemplo 78. Calcule a derivada numrica e o erro de truncamento
de f (x) = ex em x = 1,5 pela frmula de diferena progressiva para
h = 0,1, h = 0,01 e h = 0,001.

Soluo. Como |f 00 (x)| = |ex | < 1, ento |f+0 (x0 ) f 0 (x0 )| < h2 .

h
h diferenas progressivas erro = 2

0,1 0,2123364 0,05


0,01 0,2220182 0,005
0,001 0,2230186 0,0005

O valor exato da derivada f 0 (1,5) = 0,2231302.


7.1.3 Erros de arredondamento
Para entender como os erros de arredondamento se propagam ao
calcular as derivadas numricas vamos considerar o operador de
diferenas finitas progressivas
f (x + h) f (x)
D+,h f (x) = .
h
Nesse contexto temos o valor exato f 0 (x) para a derivada, a sua
aproximao numrica D+,h f (x) e a representao em nmero de
mquina do operador D+,h f (x) que denotaremos por D+,h f (x).
Seja (x,h) o erro de arredondamento ao calcularmos a derivada
e consideremos
f (x + h) f (x)
D+,h f (x) = D+,h f (x)(1 + (x,h)) = (1 + (x,h)).
h
Tambm, consideremos

|f (x + h) f (x + h)| = (x,h)
e

|f (x) f (x)| = (x,0) ,

onde f (x + h) e f (x) so as representao em ponto flutuante dos


nmeros f (x + h) e f (x), respectivamente. A diferena do valor da
derivada e sua aproximao representada em ponto flutuante pode
ser estimada da seguinte forma:


0

0 f (x + h) f (x)
f (x) D+,h f (x) = f (x) (1 + (x,h))

h


0 f (x + h) f (x) f (x + h) f (x +
= f (x) +
h h
!
f (x) f (x)
+ (1 + )
h


0 f (x + h) f (x) f (x + h) f (x +
= f (x) +
h h
!
f (x) f (x)
+ (1 + )
h


0 f (x + h) f (x) f (x + h) f (x +
f (x) +

h h
!
f (x) f (x) f (x + h) f (x)
+ |1 + | +


h h
!

0
onde
1
max |f 00 (y)|
M=
2 xyx+h
est relacionado com o erro de truncamento.
Esta estimativa mostra que se o valor de h for muito pequeno o
erro ao calcular a aproximao numrica cresce. Isso nos motiva a
procurar o valor timo de h que minimiza o erro.
2
Exemplo 79. Estude o comportamento da derivada de f (x) = ex
no ponto x = 1,5 quando h fica pequeno.
Soluo. Segue a tabela com os valores da derivada para vrios
valores de h.
h 102 104 106 107 108 109
D+,h f (1,5) 0,3125246 0,3161608 0,3161973 0,3161976 0,3161977 0,3161977

h 1010 1011 1012 1013 1014 1015


D+,h f (1,5) 0,3161976 0,3161971 0,3162332 0,3158585 0,3178013 0,3747003

h 102 104 106 107 108 109


D+,h f (1,5) 0,3125246 0,3161608 0,3161973 0,3161976 0,3161977 0,3161977
Observe que o valor exato 0,3161977 e o h timo algo entre
108 e 109 .
7.1.4 Aproximaes de alta ordem

Para aproximar a derivada de uma funo f (x) em x0 , x1 ou x2


usaremos os trs pontos vizinhos (x0 ,f (x0 )), (x1 ,f (x1 )) e (x2 ,f (x2 )).
Uma interpolao usando polinmios de Lagrange para esses trs
pontos da forma:

(x x1 )(x x2 ) (x x0 )(x x2 )
f (x) = f (x0 ) + f (x1 )
(x0 x1 )(x0 x2 ) (x1 x0 )(x1 x2 )
000
(x x0 )(x x1 ) f ((x))
+ f (x2 ) + (x x0 )(x x1 )(x x2 ).
(x2 x0 )(x2 x1 ) 6
A derivada de f (x)

2x x1 x2 2x x0 x2
f 0 (x) = f (x0 ) + f (x1 )
(x0 x1 )(x0 x2 ) (x1 x0 )(x1 x2 )
2x x0 x1
+ f (x2 )
(x2 x0 )(x2 x1 )
000
f ((x))
+ ((x x1 )(x x2 ) + (x x0 )(2x x1 x2 ))
6
f 000 ((x))
!
+ Dx (x x0 )(x x1 )(x x2 ).
6
(7.2)
Trocando x por x0 , temos
2x0 x1 x2 2x0 x0 x2
f 0 (x0 ) = f (x0 ) + f (x1 )
(x0 x1 )(x0 x2 ) (x1 x0 )(x1 x2 )
2x0 x0 x1
+ f (x2 )
(x2 x0 )(x2 x1 )
000
f ((x0 ))
+ ((x0 x1 )(x0 x2 ) + (x0 x0 )(2x0 x1 x2 ))
6
f 000 ((x0 ))
!
+ Dx (x0 x0 )(x0 x1 )(x0 x2 ).
6
Considerando uma malha equiespaada onde x1 = x0 + h e x2 =
x0 + 2h, temos:
3h 2h
f 0 (x0 ) = f (x0 ) + f (x1 )
(h)(2h) (h)(h)
000
h f ((x0 ))
+ f (x2 ) + ((h)(2h))
(2h)(h) 6
1 3 1 f 000 ((x0 ))
 
= f (x0 ) + 2f (x1 ) f (x2 ) + h2
h 2 2 3
Similarmente, trocando x por x1 ou trocando x por x2 na expresso
(7.2), temos outras duas expresses

1 1 1 f 000 ((x1 ))
 
0
f (x1 ) = f (x0 ) + f (x2 ) + h2
h 2 2 6
1 1 3 f 000 ((x2 ))
 
f 0 (x2 ) = f (x0 ) 2f (x1 ) + f (x2 ) + h2
h 2 2 3

Podemos reescrever as trs frmulas da seguinte forma:

1 3 1 f 000 (
 
0
f (x0 ) = f (x0 ) + 2f (x0 + h) f (x0 + 2h) + h2
h 2 2 3
000
1 1 1 f ((x + h))
 
0
f 0 (x0 + h) = f (x0 ) + f (x0 + 2h) + h2
h 2 2 6
1 1 3 f 000 ((x
 
f 0 (x0 + 2h) = f (x0 ) 2f (x0 + h) + f (x0 + 2h) + h2
h 2 2
ou ainda
1 f 000 ((x0 ))
f 0 (x0 ) = [3f (x0 ) + 4f (x0 + h) f (x0 + 2h)] + h2 (7.3)
2h 3
1 f 000 ((x0 ))
f 0 (x0 ) = [f (x0 + h) f (x0 h)] + h2 (7.4)
2h 6
1 f 000 ((x0 ))
f 0 (x0 ) = [f (x0 2h) 4f (x0 h) + 3f (x0 )] + h2 (7.5)
2h 3
Observe que uma das frmulas exatamente as diferenas centrais
obtida anteriormente.
Analogamente, para construir as frmulas de cinco pontos toma-
mos o polinmio de Lagrange para cinco pontos e chegamos a cinco
frmulas, sendo uma delas a seguinte:

1 h
f 0 (x0 ) = [f (x0 2h) 8f (x0 h) + 8f (x0 + h) f (x0 + 2h)]+
12h 3
(7.6)
2
Exemplo 80. Calcule a derivada numrica de f (x) = ex em
x = 1,5 pela frmula de trs e cinco pontos para h = 0,1, h = 0,01
e h = 0,001.

Soluo. A tabela mostra os resultados:

h h = 0,1 h = 0,01 h = 0,
diferenas progressivas 0,2809448 0,3125246 0,3158
diferenas regressivas 0,3545920 0,3199024 0,3165
trs pontos usando (7.3) 0,3127746 0,3161657 0,3161
trs pontos usando (7.4) 0,3177684 0,3162135 0,3161
trs pontos usando (7.5) 0,3135824 0,3161665 0,3161
cinco pontos usando (7.6) 0,3162384 0,316197677 0,3161976

O valor exato da derivada f 0 (1,5) = 0,3161976736856.


7.1.5 Aproximao para a segunda derivada
Para aproximar a derivada segunda, considere as expanses em srie
de Taylor
h2 00 h3
f (x0 + h) = f (x0 ) + hf 0 (x0 ) + f (x0 ) + f 000 (x0 ) + O(h4 )
2 6
2
h h3
f (x0 h) = f (x0 ) hf 0 (x0 ) + f 00 (x0 ) f 000 (x0 ) + O(h4 ).
2 6
Somando as duas expresses, temos:
f (x0 + h) + f (x0 h) = 2f (x0 ) + h2 f 00 (x0 ) + O(h4 )
ou seja, uma aproximao de segunda ordem para a derivada se-
gunda em x0
f (x0 + h) 2f (x0 ) + f (x0 h)
f 00 (x0 ) = +O(h2 ) := D0,h
2
f (x0 )+O(h2
h2
onde
2 f (x0 + h) 2f (x0 ) + f (x0 h)
D0,h f (x0 ) = .
h2
2
Exemplo 81. Calcule a derivada segunda numrica de f (x) = ex
em x = 1,5 para h = 0,1, h = 0,01 e h = 0,001.

Soluo. A tabela mostra os resultados:

h h = 0,1 h = 0,01 h = 0,001


2
D0,h f (1,5) 0,7364712 0,7377814 0,7377944
2
Observe que f 00 (x) = (4x2 2)ex e f 00 (1,5) = 0,7377946.
7.1.6 Derivada via ajuste ou interpolao
N
  os valores de uma funo em pontos {(xi ,yi )}i=1 , as derivadas
Dado
dy
dx i
podem ser obtidas atravs da derivada de uma curva que me-
lhor ajusta ou interpola os pontos. Esse tipo de tcnica necessrio
quando os pontos so muito espaados entre si ou quando a funo
oscila muito. Por exemplo, dado os pontos (0,1), (1,2), (2,5), (3,9),
a parbola que melhor ajusta os pontos

Q(x) = 0,95 + 0,45x + 0,75x2 .

Usando esse ajuste para calcular as derivadas, temos:

Q0 (x) = 0,45 + 1,5x

y 0 (x1 ) Q0 (x1 ) = 0,45, y 0 (x2 ) Q0 (x2 ) = 1,95,


y 0 (x3 ) Q0 (x3 ) = 3,45 e y 0 (x4 ) Q0 (x4 ) = 4,95
Agora olhe o grfico da seguinte tabela de pontos.
x y
0 1,95
1 1,67
2 3,71
3 3,37
4 5,12
5 5,79
6 7,50
7 7,55
8 9,33
9 9,41
Observe que as derivadas calculadas por diferenas finitas oscilam
entre um valor pequeno e um grande em cada intervalo e alm disso,
a frmula progressiva difere da regressiva significantemente. Por
exemplo, por diferenas regressivas f 0 (7) (7,557,50)
1
= 0,05 e por
0 (9,337,55)
diferenas progressivas f (7) 1
= 1,78. A melhor forma
de calcular a derivada aqui fazer um ajuste de curva. A reta
que melhor ajusta os dados da tabela y = f (x) = 1,2522727 +
0,9655455x. Usando esse ajuste, temos f 0 (7) 0,9655455.
Exerccios

E 7.1.1. Expanda a funo suave f (x) em um polinmio de Taylor


adequado para obter as seguintes aproximaes:
f (x+h)f (x)
a) f 0 (x) = h
+ O(h)
f (x)f (xh)
b) f 0 (x) = h
+ O(h)
f (x+h)f (xh)
c) f 0 (x) = 2h
+ O(h2 )
f (x+h)2f (x)+f (xh)
d) f 00 (x) = h2
+ O(h2 )

E 7.1.2. Use os esquemas numricos do exerccio 7.1.1 para apro-


ximar as seguintes derivadas:
a) f 0 (x) onde f (x) = sin(x) e x = 2.

b) f 0 (x) onde f (x) = ex e x = 1.


c) f 00 (x) onde f (x) = ex e x = 1.

Use h = 102 e h = 103 e compare com os valores obtidos atravs


da avaliao numrica das derivadas exatas.

E 7.1.3. Use a expanso da funo f (x) em torno de x = 0 em


polinmios de Taylor para encontrar os coeficientes a1 , a2 e a3 tais
que

a) f 0 (0) = a1 f (0) + a2 f (h) + a3 f (2h) + O(h2 )

b) f 0 (0) = a1 f (0) + a2 f (h) + a3 f (2h) + O(h2 )

c) f 0 (0) = a1 f (h1 )+a2 f (0)+a3 f (h2 )+O(h2 ), |h1 |, |h2 | = O(h)

d) f 00 (0) = a1 f (0) + a2 f (h) + a3 f (2h) + O(h)

e) f 00 (0) = a1 f (0) + a2 f (h) + a3 f (2h) + O(h)


E 7.1.4. As tenses na entrada, vi , e sada, vo , de um amplificador
foram medidas em regime estacionrio conforme tabela abaixo.

0. 0.5 1. 1.5 2. 2.5 3. 3.5 4. 4.5 5.


0. 1.05 1.83 2.69 3.83 4.56 5.49 6.56 6.11 7.06 8.29

onde a primeira linha a tenso de entrada em volts e a segunda


linha tenso de sada em volts. Sabendo que o ganho definido
como
vo
.
vi
Calcule o ganho quando vi = 1 e vi = 4.5 usando as seguintes
tcnicas:
a) Derivada primeira numrica de primeira ordem usando o pr-
prio ponto e o prximo.
b) Derivada primeira numrica de primeira ordem usando o pr-
prio ponto e o anterior.
c) Derivada primeira numrica de segunda ordem usando o ponto
anterior e o prximo.

d) Derivada primeira analtica da funo do tipo v0 = a1 vi + a3 vi3


que melhor se ajusta aos pontos pelo critrio dos mnimos
quadrados.

Caso a b c d
vi = 1
vi = 4.5
Dica:

y=[0 1.05 1.83 2.69 3.83 4.56 5.49 6.56 6.11 7.06 8.29]
7.2 Problemas de valor contorno
Nesta seo usaremos a aproximao numrica da derivada para
resolver problemas de valor de contorno da forma

uxx = f (x,u), a < x < b.






u(a) = ua




u(b) = ub

Resolver numericamente o problema acima exige uma discretizao


do domnio [a,b], ou seja, dividir o domnio em N partes iguais,
definindo
ba
h=
N
O conjunto de abcissas xi , i = 1,...,N + 1 formam uma malha para
o problema discreto. Nosso objetivo encontrar as ordenadas ui =
u(xi ) que satisfazem a verso discreta:

ui+1 2ui +ui1
= f (xi ,ui ), 2 i N.


h2




u1 = ua




uN +1 = ub

O vetor soluo (ui )N +1


i=1 do problema soluo do sistema acima,
que linear se f for linear em u e no linear caso contrrio.
Exemplo 82. Encontre uma soluo numrica para o problema de
contorno:
uxx + u = ex , 0 < x < 1.





u(0) = 1




u(1) = 2
Soluo. Observe que
1
h=
N
e a verso discreta da equao


ui+1 2ui +ui1
+ ui = exi , 2 i N.


h2




u1 = 1




uN +1 = 2

ou seja,


u1 = 1






ui+1 + (2 + h2 )ui ui1 = h2 exi , 2 i N.




uN +1 = 2
que um sistema linear. A sua forma matricial :

1 0 0 0 0 0 u1
1

1 2 + h2 1 0 0 0

u2


h2 ex2

1 2 + h2 h2 ex3

0 0 0 0 u3
=

.. .. .. ..

. .
.



.

0 0 0 1 2 + h2 1
uN


h2 exN

0 0 0 0 0 1 uN +1 2
Para N = 10, temos a seguinte soluo:

1,000000

1,0735083





1,1487032




1,2271979


1,3105564





1,4003172




1,4980159



1,6052067




1,7234836


1,8545022




2,000000

Exerccios

E 7.2.1. Considere o seguinte problema de valor de contorno para


a equao de calor no estado estacionrio:


uxx = 32, 0 < x < 1.






u(0) = 5




u(1) = 10

Defina uj = u(xj ) onde xj = (j 1)h e j = 1, . . . ,5. Aproxime a


derivada segunda por um esquema de segunda ordem e transforme
a equao diferencial em um sistema de equaes lineares. Escreva
este sistema linear na forma matricial e resolva-o. Faa o mesmo
com o dobro de subintervalos, isto , com malha de 9 pontos.
E 7.2.2. Considere o seguinte problema de valor de contorno para
a equao de calor no estado estacionrio:


2
uxx = 200e(x1) , 0 < x < 2.






u(0) = 120




u(2) = 100

Defina uj = u(xj ) onde xj = (j 1)h e j = 1, . . . ,21. Aproxime a


derivada segunda por um esquema de segunda ordem e transforme
a equao diferencial em um sistema de equaes lineares. Resolva
o sistema linear obtido.
E 7.2.3. Considere o seguinte problema de valor de contorno para
a equao de calor no estado estacionrio:


2
uxx = 200e(x1) , 0 < x < 2.






u0 (0) = 0




u(2) = 100

Defina uj = u(xj ) onde xj = (j 1)h e j = 1, . . . ,21. Aproxime


a derivada segunda por um esquema de segunda ordem, a derivada
primeira na fronteira por um esquema de primeira ordem e trans-
forme a equao diferencial em um sistema de equaes lineares.
Resolva o sistema linear obtido.

E 7.2.4. Considere o seguinte problema de valor de contorno para


a equao de calor no estado estacionrio com um termo no-linear
de radiao:


u4
uxx = 100 , 0 < x < 2.


10000




u(0) = 0




u(2) = 10

Defina uj = u(xj ) onde xj = (j 1)h e j = 1, . . . ,21. Aproxime a


derivada segunda por um esquema de segunda ordem e transforme
a equao diferencial em um sistema de equaes no lineares. Re-
solva o sistema obtido. Expresse a soluo com dois algarismos
depois do separador decimal. Dica: Veja problema 38 da lista 2,
seo de sistemas no lineares.

E 7.2.5. Considere o seguinte problema de valor de contorno para


a equao de calor no estado estacionrio com um termo no-linear
de radiao e um termo de conveco:


u4
uxx + 3ux = 100 , 0 < x < 2.


10000




u0 (0) = 0




u(2) = 10

Defina uj = u(xj ) onde xj = (j 1)h e j = 1, . . . ,21. Aproxime


a derivada segunda por um esquema de segunda ordem, a derivada
primeira na fronteira por um esquema de primeira ordem, a de-
rivada primeira no interior por um esquema de segunda ordem e
transforme a equao diferencial em um sistema de equaes no
lineares. Resolva o sistema obtido.
E 7.2.6. Considere o seguinte problema de valor de contorno:

u2
u00 + 2u0 = ex , 1 < x < 4.


100




u0 (1) + u(1) = 2


u0 (4) = 1


Defina uj = u(xj ) onde xj = 1 + (j 1)h e j = 1, . . . ,101. Apro-


xime a derivada segunda por um esquema de segunda ordem, a
derivada primeira na fronteira por um esquema de primeira ordem,
a derivada primeira no interior por um esquema de segunda ordem
e transforme a equao diferencial em um sistema de equaes no
lineares. Resolva o sistema obtido.
7.3 Integrao numrica
Considere o problema de calcular a rea entre uma funo positiva, o
eixo x e as retas x = a e x = b. O valor exato dessa rea calculada
fazendo uma aproximao por retngulos com bases iguais e depois
tomando o limite quando o nmero de retngulos tende ao infinito:
n
X
A = n
lim f (xi )hn ,
i=1

onde hn = ban
o tamanho da base dos retngulo e f (xi ), 1 i n,
a + (i 1)h xi a + ih, a altura dos retngulos. Essa definio
generalizada para clculo de integrais num intervalo [a,b]:
Z b n
X
f (x)dx = lim f (xi )hn .
a n
i=1

A figura abaixo mostra um exemplo quando f (x) = x2 + 1, 0


x 2. Temos a aproximao por um retngulo com base h1 = 2,
depois com dois retngulos de base h2 = 1 e, finalmente com quatro
retngulo de bases h3 = 0,5.
Os valores aproximados para a integral so dados na tabela:

h1 = 2 h2 = 1 h3 = 0,5 h4
R2
0 (x2 + 1)dx h1 f (1) = 4 h2 f (0,5) + h2 f (1,5) = 4,5 4,625 4,

Observe que
" #2
Z 2
2 x3 8
(x + 1)dx = +x = + 2 = 4,6666667
0 3 0
3
7.3.1 Regras de Newton-Cotes
A integral de uma funo num intervalo [a,b], tambm chamada de
quadratura numrica, aproximada pela soma
Z b n
X
f (x)dx ai f (xi ),
a i=1

onde xi , 1 i n, Rso pontos distintos do intervalo [a,b]. Nessa


definio, a integral 02 (x2 + 1)dx (dada na seo ??) usando uma
aproximao por retngulo usa apenas um ponto, o ponto mdio do
intervalo (x1 = 1), e a soma se reduz a uma parcela ((2 0)f (1)).
A frmula geral para essa caso, chamado de regra do ponto mdio
: Z b !
a+b
f (x)dx (b a)f := hf (x1 ). (7.7)
a 2
Regra do ponto mdio

A regra do ponto mdio (7.7) pode ser deduzida mais formalmente


usando a expanso de Taylor

f 00 ((x))
f (x) = f (x1 ) + f 0 (x1 )(x x1 ) + (x x1 )2
2

que leva a integral

Z b Z b Z b Z b
f 00 ((x))
f (x)dx = f (x1 )dx+f 0 (x1 ) (xx1 )dx+ (xx1 )2 dx
a a a a 2
Usando o teorema do valor mdio para integrais e que h = b a e
x1 = (a + b)/2, temos:
Z b Z b Z b
0 00 1
f (x)dx = hf (x1 ) + f (x1 ) (x x1 )dx + f () (x x1 )2 dx
a a a 2
2 b b
" #
(x x1 ) 1

0 00
= hf (x1 ) + f (x1 ) + f () (x x1 )3
2 a
6 a
" #
(b x1 )2 (a x1 )2
= hf (x1 ) + f 0 (x1 )
2 2
1 1
 
+ f 00 () (b x1 )3 (a x1 )3
6 6
h3 f 00 ()
= hf (x1 ) + .
3
para a b.
Exemplo 83. Use a regra do ponto mdio para aproximar a integral
Z 1
2
ex dx.
0
Depois divida a integral em duas
Z 1/2 Z 1
2 2
ex dx + ex dx.
0 1/2

e aplique a regra do ponto mdio em cada uma delas. Finalmente,


repita o processo dividindo em quatro integrais.
Usando o intervalo [0,1], temos h = 1 e x1 = 1/2. A regra do ponto
mdio resulta em
Z 1
2
ex dx 1 e1/4 = 0,7788008
0

Usando dois intervalos, [0,1/2] e [1/2,1] e usando a regra do ponto


mdio em cada um dos intervalos, temos:
Z 1
2
ex dx 0,5e1/16 +0,5e9/16 ) = 0,4697065+0,2848914 = 0,75459
0

Agora, usando quatro intervalos, temos


Z 1
2
ex dx 0,25e1/64 +0,25e9/64 +0,25e25/64 +0,25e49/64 = 0,74
0
Observe que o valor da integral
Z 1
2
ex dx = 0,7468241330.
0

A forma natural de obter as regras de integrao usar o polinmio


de Lagrange que passa pelo pontos {(xi ,f (xi ))}ni=1
n n
X f (n+1) ((x)) Y
f (x) = Pn (x)+termo de erro = f (xi )Li (x)+ (xxi )
i=1 i=1 (n + 1)!

e integramos
n n
Z b " Z b #
1 Z bY
(xxi )f (n+1) ((x)
X
f (x)dx = f (xi ) Li (x)dx +
a i=1 a (n + 1)! a i=1

A frmula de quadratura ento


Z b n
X
f (x)dx ai f (xi ),
a i=1
onde Z b
ai = Li (x)dx
a
Regra do Trapzio

A regra do trapzio consiste em aproximar a integral por um trap-


zio em vez de um retngulo, como fizemos. Para isso, o polinmio
de Lagrange deve ser uma reta, como mostra a figura.
O polinmio de Lagrange de primeira ordem que passa por (x0 ,f (x0 )) :
(a,f (a)) e (x1 ,f (x1 )) := (b,f (b)) dado por

(x x0 ) (x x1 ) (x x0 ) (x
P1 (x) = f (x0 ) +f (x1 ) = f (x0 ) f (x1 )
(x1 x0 ) (x0 x1 ) h h

onde h = x1 x0 . Podemos integrar a funo f (x) aproximando-a


por esse polinmio:

Z b Z b
(x x0 ) Z b
(x x1 )
f (x)dx = f (x0 ) dx f (x1 ) dx
a a h a h
1 Zb
+ (x x0 )(x x1 )f 00 ((x))dx.
2! a
Rb
Pelo Rteorema do valor mdio, existe a b tal que a f ((x))g(x)dx
f () ab g(x)dx e, portanto,
" #x1 " #x1
Z b
(x x0 )2 (x x1 )2
f (x)dx = f (x0 ) f (x1 )
a 2h x0
2h x0
# x1
f 00 () x3 x2
"
+ (x1 + x0 ) + x0 x1 x
2 3 2 x0
2 2
(x1 x0 ) (x0 x1 )
= f (x0 ) + f (x1 )
2h 2h
00 3 2
f () x1 x1 x 3 x2
+ (x1 + x0 ) + x0 x1 x1 0 + 0 (x1 + x0 )
2 3 2 3 2
2 2
h h
= f (x0 ) + f (x1 )
2h 2h
f 00 () 2x31 3x21 (x1 + x0 ) + 6x21 x0 2x30 + 3x20 (x1 + x0 )
+
2 6
h f 00 ()  3 
= (f (x0 ) + f (x1 )) + x0 3x20 x1 + 3x21 x0 x31
2 12
h h3 f 00 ()
= (f (x ) + f (x ))
Exemplo 84. Use a regra do trapzio para aproximar a integral
Z 1
2
ex dx.
0

Depois divida a integral em duas


Z 1/2 Z 1
x2 2
e dx + ex dx.
0 1/2

e aplica a regra do trapzio em cada uma delas. Finalmente, repita


o processo dividindo em quatro integrais.

Usando o intervalo [0,1], temos h = 1, x0 = 0 e x1 = 1. A regra do


trapzio resulta em
Z 1
2 1
ex dx (e0 + e1 ) = 0,6839397
0 2
Usando dois intervalos, [0,1/2] e [1/2,1] e usando a regra do trapzio
em cada um dos intervalos, temos:
Z 1
2 0,5  0  0,5  1/4 
ex dx e + e1/4 + e + e1
0 2 2
= 0,4447002 + 0,2866701 = 0,7313703.

Agora, usando quatro intervalos, temos


Z 1
2 0,25  0  0,25  1/16 
ex dx e + e1/16 + e + e1/4
0 2 2
0,25  1/4 9/16
 0,25  9/16 
+ e +e + e + e1
2 2
= 0,7429841
Regra de Simpson
A regra de Simpson consiste em aproximar a integral usando trs
pontos do intervalo:
a+b
x0 = a, x1 := = x0 + h e x2 := b = x1 + h.
2
com h = (b a)/2. Para isso, o polinmio de Lagrange deve ser
uma parbola:
(x x1 )(x x2 ) (x x0 )(x x2 )
P2 (x) = f (x0 ) + f (x1 )
(x0 x1 )(x0 x2 ) (x1 x0 )(x1 x2 )
(x x0 )(x x1 )
+ f (x2 ) .
(x2 x0 )(x2 x1 )
Se usarmos o mesma metodologia da regra dos trapzios, calculare-
mos
Z b Z b Z b
(x x0 )(x x1 )(x x2 ) 000
f (x)dx = P2 (x)dx + f ((x))dx
a a a 6
e obteremos o frmula de Simpson com um erro de quarta ordem.
O fato que a regra de Simpson tem ordem cinco e, para isso,
usaremos uma abordagem alternativa. Considere o polinmio de
Taylor

f 00 (x1 ) f 000 (x1 ) f (4) (


f (x) = f (x1 )+f 0 (x1 )(xx1 )+ (xx1 )2 + (xx1 )3 +
2 6 24

onde x0 (x) x2 e integre no intervalo [a,b] = [x0 ,x2 ]:

(x x1 )2 f 00 (x1 )
Z b "
f (x)dx = f (x1 )(x x1 ) + f 0 (x1 ) + (x x1 )3
a 2 6
#x
f 000 (x1 ) 4
2

+ (x x1 )
24 x0
1 Z x2 (4)
+ f ((x))(x x1 )4 dx,
24 x0
Pelo teorema do valor mdio, existe x0 x2 tal que
(x x1 )2 f 00 (x1 )
Z b "
f (x)dx = f (x1 )(x x1 ) + f 0 (x1 ) + (x x1 )3
a 2 6
#x2
f 000 (x1 )
+ (x x1 )4
24 x0
(4)
f () Z x2
+ (x x1 )4 dx
24 x0
(x x1 )2 f 00 (x1 )
"
= f (x1 )(x x1 ) + f 0 (x1 ) + (x x1 )3
2 6
#x2
f 000 (x1 ) 4
+ (x x1 )
24 x0
f (4) () h ix2
+ (x x1 )5
120 x0

Usando o fato que


(x2 x1 )3 (x0 x1 )3 = 2h3 ,
(x2 x1 )4 (x0 x1 )4 = 0
e
(x2 x1 )5 (x0 x1 )5 = 2h5 ,
temos Z b
h3 00 h5 f (4) ()
f (x)dx = 2hf (x1 ) +
f (x1 ) + .
a 3 60
Usando a diferenas finitas centrais para a derivada segunda:
f (x0 ) 2f (x1 ) + f (x2 ) h2 (4)
f 00 (x1 ) = + f (1 ),
h2 12
x0 1 x2 , temos
!
Z b
h3 f (x0 ) 2f (x1 ) + f (x2 ) h2 (4)
f (x)dx = 2hf (x1 ) + + f (1 )
a 3 h2 12
h5 f (4) ()
+
60
h h5 1 (4) 1

= (f (x0 ) + 4f (x1 ) + f (x2 )) f (1 ) f (4) (
3 12 3 5
Pode-se mostrar que possvel escolher 2 que substitua e 1 com
a seguinte estimativa
Z b
h h5
f (x)dx = (f (x0 ) + 4f (x1 ) + f (x2 )) f (4) (2 ).
a 3 90
Exemplo 85. Use a regra de Simpson para aproximar a integral
Z 1
2
ex dx.
0

Depois divida a integral em duas


Z 1/2 Z 1
x2 2
e dx + ex dx.
0 1/2

e aplica a regra de Simpson em cada uma delas.


Usando o intervalo [0,1], temos h = 1/2, x0 = 0, x1 = 1/2 e x2 = 1.
A regra de Simpson resulta em
Z 1
2 0,5 0
ex dx (e + 4e1/4 + e1 ) = 0,7471804
0 3
Usando dois intervalos, [0,1/2] e [1/2,1] e usando a regra do trapzio
em cada um dos intervalos, temos:
Z 1
2 0,25 0 0,25 1/4
ex dx (e +4e1/16 +e1/4 )+ (e +4e9/16 +e1 ) = 0,7
0 3 3
7.3.2 Regras compostas
Vimos que em todas as estimativas de erro que derivamos, o erro
depende do tamanho do intervalo de integrao. Uma estratgia
para reduzir o erro consiste em particionar o intervalo de integrao
em diversos subintervalos menores:
Z b n Z xi+1
X
f (x)dx = f (x)dx
a i=1 xi

onde xi = a + (i 1)h, h = (b a)/n e i = 1,2, . . . ,n + 1, sendo


n o nmero de subintervalos da partio do intervalo de integra-
o. Depois, aplica-se um mtodo simples de integrao em cada
subintervalo.
Mtodo composto dos trapzios
A regra composta dos trapzios assume a seguinte forma:
Z b n Z xi+1
X
f (x)dx = f (x) dx
a i=1 xi
n
X xi+1 xi
[f (xi ) + f (xi+1 )]
i=1 2

Como h = xi+1 xi , temos:


Z b Ni
hX
f (x) dx [f (xk ) + f (xk+1 )]
a 2 k=1
h
= [f (x1 ) + 2f (x2 ) + 2f (x3 ) + + 2f (xNi ) + f (xNi +1 )]
2
Ni
h X
= [f (x1 ) + f (xNi +1 )] + h f (xi )
2 i=2
Cdigo Scilab: Trapzio Composto
O cdigo Scilab abaixo uma implementao do mtodo do trapzio
composto para calcular:
Z b n
h
f (xi ) + O(h3 ),
X
f (x) dx = [f (x1 ) + f (xn+1 )] + h
a 2 i=2

onde h = (b a)/n e xi = a + (i 1)h, i = 1,2, . . . ,n + 1. Os


parmetros de entrada so: f o integrando definido como uma fun-
o no Scilab, a o limite inferior de integrao, b o limite superior
de integrao, n o nmero de subintervalos desejado.R A varivel de
sada y e corresponde a aproximao calculada de ab f (x) dx.

function [y] = trap_comp(f,a,b,n)


h = (b-a)/n
x = linspace(a,b,n+1)
y = h*(f(x(1)) + f(x(n+1)))/2
for i = 2:n
y = y + h*f(x(i))
end
endfunction
Mtodo composto de Simpson
J a regra composta de Simpson assume a seguinte forma:
Z b n Z xk+1
X
f (x) dx = f (x)dx
a k=1 xk
n
xx+1 xk xk+1 + xk
X    
f (xk ) + 4f + f (xk+1 )
k=1 6 2

onde, como anteriormente, xk = a + (k 1)h, h = (b a)/n e


i = 1,2, . . . ,n + 1, sendo n o nmero de subintervalos da partio
do intervalo de integrao. Podemos simplificar o somatrio acima,
escrevendo:
n1 n
Z b " #
h X X
f (x) dx f (x1 ) + 2 f (x2i+1 ) + 4 f (x2i ) + f (x2n+1 ) +O(
a 3 i=1 i=1

onde, agora, h = (b a)/(2n), xi = a + (i 1)h, i = 1,2, . . . ,2n + 1.


Cdigo Scilab: Simpson Composto
O cdigo Scilab abaixo uma implementao do mtodo de Simpson
composto para calcular:
n1 n
Z b " #
h X X
f (x) dx = f (x1 ) + 2 f (x2i+1 ) + 4 f (x2i ) + f (x2n+1 ) +O(h
a 3 i=1 i=1

onde h = (b a)/(2n) e xi = a + (i 1)h, i = 1,2, . . . ,2n + 1.


Os parmetros de entrada so: f o integrando definido como uma
funo no Scilab, a o limite inferior de integrao, b o limite superior
de integrao, n o nmero de subintervalos desejado.R A varivel de
sada y e corresponde a aproximao calculada de ab f (x) dx.
Exemplo 86. Calcule numericamente a integral
Z 2
2
x2 ex dx
0
pelas regras compostas do ponto mdio, trapzio e Simpson vari-
ando o nmero de intervalos
Ni = 1, 2, 3, 6, 12, 24, 48, 96.
n ponto mdio Trapzios Simpson
1 5,4365637 218,3926 76,421909
2 21,668412 111,91458 51,750469
3 31,678746 80,272022 47,876505
6 41,755985 55,975384 46,495785
12 45,137529 48,865685 46,380248
24 46,057757 47,001607 46,372373
48 46,292964 46,529682 46,37187
96 46,352096 46,411323 46,371838
7.3.3 O mtodo de Romberg
O mtodo de Romberg um mtodo simplificado para construir
quadraturas de alta ordem.
Considere o mtodo de trapzios composto aplicado integral
Z b
f (x)dx
a
Defina I(h) a aproximao desta integral pelo mtodo dos trapzios
composto com malha de largura constante igual a h. Aqui h = baNi
para algum Ni inteiro, i.e.:

Ni
h X ba
I(h) = f (a) + 2 f (xj ) + f (b) , Ni =
2 j=2 h

Teorema 8. Se f (x) uma funo analtica no intervalo (a,b),


ento a funo I(h) admite uma representao na forma

I(h) = I0 + I2 h2 + I4 h4 + I6 h6 + . . .
Para um demonstrao, veja [4]. Em especial observamos que
Z b
f (x)dx = lim I(h) = I0
a h0

Ou seja, o valor exato da integral procurada dado pelo coeficiente


I0 .
A ideia central do mtodo de Romberg, agora, consiste em usar a
extrapolao de Richardson para construir mtodos de maior ordem
a partir do mtodos dos trapzios para o intervalo (a,b)
Exemplo 87. Construo do mtodo de quarta ordem.
I(h) = I0 + I2 h2 + I4 h4 + I6 h6 + . . .
!
h h2 h4 h6
I = I0 + I2 + I4 + I6 + . . .
2 4 16 64

Usamos agora uma eliminao gaussiana para obter o termo I0 :


4I(h/2) I(h) 1 5
= I0 I4 h4 I6 h6 + . . .
3 4 16
Vamos agora aplicar a frmula para h = b a,

h
I(h) = [f (a) + f (b)]
2
h a+b
I(h/2) = [f (a) + 2f (c) + f (b)] , c =
4 2

4I(h/2) I(h) h h
= [f (a) + 2f (c) + f (b)] [f (a) + f (b)]
3 3 6
h
= [f (a) + 4f (c) + f (b)]
6

Observe que esquema coincide com o mtodo de Simpson.


A partir de agora, usaremos a seguinte notao
R1,1 = I(h)
R2,1 = I(h/2)
R3,1 = I(h/4)
..
.
Rn,1 = I(h/2n1 )
Observamos que os pontos envolvidos na quadratura Rk,1 so os
mesmos pontos envolvidos na quadratura R(k 1,1) acrescidos dos
pontos centrais, assim, temos a seguinte frmula de recorrncia:
k2
h 2X
!
1 h
Rk,1 = Rk1,1 + k1 f a + (2i 1) k1
2 2 i=1 2
Definimos Rk,2 para k 2 como o esquema de ordem quatro obtido
da frmula do exemplo 87:
4Rk,1 Rk1,1
Rk,2 =
3
Os valores Rk,2 representam ento os valores obtidos pelo mtodo
de Simpson composto aplicado a uma malha composta de 2k1 + 1
pontos.
Similarmente os valores de Rk,j so os valores obtidos pela quadra-
tura de ordem 2j obtida via extrapolao de Richardson. Pode-se
mostrar que
Rk,j1 Rk1,j1
Rk,j = Rk,j1 + .
4j1 1
Exemplo 88. Construa o esquema de Romberg para aproximar o
R 2 x2
valor de 0 e dx com erro de ordem 8.
O que nos fornece os seguintes resultados:

55,59815 0,000000 0,000000 0,000000


30,517357 22,157092 0,000000 0,000000
20,644559 17,353626 17,033395 0,000000
17,565086 16,538595 16,484259 16,475543
Ou seja, temos:
Z 2
2
ex dx 16,475543
0

usando uma aproximao de ordem 8.

Exemplo 89. Construa o esquema de Romberg para aproximar o


R 2 2 x2
valor de 0 x e dx com erro de ordem 12.
O que nos fornece:

218,3926
111,91458 76,421909
66,791497 51,750469 50,105706
51,892538 46,926218 46,604601 46,549028
47,782846 46,412949 46,378731 46,375146 46,374464
46,72661 46,374531 46,37197 46,371863 46,37185 46,371847
Ou seja, temos: Z 2
2
x2 ex dx 46,371847
0
com uma aproximao de ordem 12.
7.3.4 Ordem de preciso

Todos os mtodos de quadratura que vimos at o momento so da


forma
Z b N
X
f (x)dx wj f (xj )
a j=1

Exemplo 90. (a) Mtodo do trapzio

Z b
ba
f (x)dx [f (a) + f (b)]
a 2
ba ba
= f (a) + f (b)
2 2
2
X
:= w1 f (x1 ) + w2 f (x2 ) = wj f (xj )
j=1
(b) Mtodo do trapzio com dois intervalos
" ! #
Z b
a+b ba
f (x)dx f (a) + 2f + f (b)
a 2 4
!
ba ba a+b ba
= f (a) + f + f (b)
4 2 2 4
3
X
:= w1 f (x1 ) + w2 f (x2 ) + w3 f (x3 ) = wj f (xj )
j=1

(c) Mtodo de Simpson


" ! #
Z b
a+b ba
f (x)dx f (a) + 4f + f (b)
a 2 6
!
ba 2(b a) a+b ba
= f (a) + f + f (b)
6 3 2 6
3
X
:= wj f (xj )
j=1
(d) Mtodo de Simpson com dois intervalos
Z b " ! !
3a + b a+b
f (x)dx f (a) + 4f + 2f
a 4 2
! #
a + 3b ba
+ 4f + f (b)
4 12
!
ba ba 3a + b ba a+b
= f (a) + f + f
12 3 4 6 2
!
ba a + 3b ba
+ f + f (b)
3 4 12
5
X
:= wj f (xj )
j=1

A principal tcnica que temos usado para desenvolver os mtodos


numricos o polinmio de Taylor:

f (x) = a0 + a1 x + a2 x2 + . . . + an xn + Rn (x)
Integrando termo a termo, temos:

Z b Z b Z b Z b
f (x)dx = a0 dx + a1 xdx + a2 x2 dx + . . . +
a a a a
Z b Z b
an xn dx + Rn (x)dx
a a
b a2
2
b 3 a3
= a0 (b a) + a1 + a2 + ... +
2 3
bn+1 an+1 Z b
an + Rn (x)dx
n+1 a

Neste momento, natural investigar o desempenho de um esquema


numrico aplicado a funes do tipo f (x) = xn .
Definio 8. A ordem de preciso ou ordem de exatido
de um esquema de quadratura numrica como o maior inteiro
positivo n para o qual o esquema exato para todas as funes
do tipo xk com 0 k n, ou seja, Um esquema dito de
ordem n se
n Z b
f (x) = xk , k = 0,1, . . . n
X
wj f (xj ) = f (x)dx,
j=1 a

ou, equivalentemente:
n Z b
bk+1 ak+1
wj xkj = xk dx =
X
, k = 0,1, . . . n
j=1 a k+1
Observao 20. Se o mtodo tem ordem 0 ou mais, ento
n
X
wj = b a
j=1

Exemplo 91. A ordem de preciso do esquema de trapzios 1:

2
Z b
ba X
f (x)dx [f (a) + f (b)] = wj f (xj )
a 2 j=1
ba
onde wj = 2
, x1 = a e x2 = b.

n
X
(k = 0) : wj = b a
j=1
n
X ba b 2 a2
(k = 1) : wj xj = (a + b) =
j=1 2 2
n
ba b 3 a3
wj x2j 2 2
X
(k = 2) : = (a + b ) 6 =
j=1 2 3

Exemplo 92. A ordem de preciso do esquema de Simpson 3:

3
" ! #
Z b
a+b ba X
f (x)dx f (a) + 4f + f (b) = wj f (xj )
a 2 6 j=1
ba
onde w1 = w3 = 6
,w2 = 4 ba
6
, x1 = a, x2 = a+b
2
e x3 = b
n
X ba
(k = 0) : wj = (1 + 4 + 1) =ba
j=1 6
n
X a+b ba ba b2 a
(k = 1) : wj xj = (a + 4 + b) = (a + b) =
j=1 2 6 2 2
n
!2
a+b ba b3 a3
wj x2j 2 2
X
(k = 2) : = (a + 4 +b ) =
j=1 2 6 3
n
!3
a+b ba b4 a4
wj x3j 3
+ b3 )
X
(k = 3) : = (a + 4 =
j=1 2 6 4
n
!4
a+b ba b5 a5
wj x4j = (a4 + 4 + b4 )
X
(k = 4) : 6=
j=1 2 6 4
Exemplo 93. Encontre os pesos wj e as abscissas xj tais que o
esquema de dois pontos
Z 1
f (x)dx = w1 f (x1 ) + w2 f (x2 )
1
de ordem 3.

Soluo. Temos um sistema de quatro equaes e quatro incgni-


tas dado por:

w1 + w2 = 2
x1 w 1 + x2 w 2 = 0
2
x21 w1 + x22 w2 =
3
3 3
x1 w 1 + x2 w 2 = 0

Da segunda e quarta equao, temos:

w1 x2 x3
= = 23
w2 x1 x1

Como x1 6= x2 , temos x1 = x2 e w1 = w2 . Da primeira equao,



temos w1 = w2 = 1. Da terceira equao, temos x1 = x2 = 33 .
Esse esquema de ordem de preciso trs e dois pontos chama-se
quadratura de Gauss-Legendre com dois pontos:

! !
Z 1
3 3
f (x)dx = f +f
1 3 3


Exemplo 94. Comparao
f (x) Exato Trapzio Simpson Gauss-L


e1 + 4e0 + e1
e e1 e1 + e e 3
ex 3
2,35040 3,08616 2,36205 2,

16 4

2
p
9 9 2
x 3 + x3 3,41421 1,13807 1,
1,14924

3
ee1
x2 e x 3 0,78347 3,08616 1,02872 0,
7.3.5 Quadratura de Gauss-Legendre
A quadratura de Gauss-Legendre de n pontos o esquema numrico
Z 1 n
X
f (x)dx = wj f (xj )
1 j=1

cuja ordem de exatido 2n 1.


O problema de encontrar os n pesos e n abscissas equivalente
a um sistema no linear com 2n equaes e 2n incgnitas.
Pode-se mostrar que este problema sempre tem soluo e que
a soluo nica se x1 < x2 < . . . < xn
As abscissas so das pelos zeros do ensimo polinmio de Le-
gendre, Pn (x).
Os pesos so dados por
2
wj =   .
1 x2j [Pn0 (xj )]2
Estes dados so tabelados e facilmente encontrados.
n xj wj

1 0 2


3
2 3
1

8
0 9

3
q
3 5
5 9
Exemplo 95. Aproximar
Z 1
1 + x2 dx
1

pelo mtodo de Gauss-Legendre com 3 pontos.

Soluo.
s s
5 3 8 5 3
I3 = f + f (0) + f 2,2943456
9 5 9 9 5

No Scilab:

Exemplo 96. Aproximar


Z 1
1 + x2 dx
1

pelo mtodo de Gauss-Legendre com 4 pontos.


Soluo. I4=f(x4(1))*w4(1)+f(-x4(1))*w4(1)+f(x4(2))*w4(2)+

Exemplo 97. Aproximar
Z 1
1 + x2 dx
0

pelo mtodo de Gauss-Legendre com 3, 4 e 5 pontos.


Soluo. Para tanto, fazemos a mudana de variveis u = 2x 1:
s
Z 1 2
1Z 1 u+1

1 + x2 dx = 1+ du
0 2 1 2
E, ento aplicamos a quadratura gaussiana nesta ltima integral.
deff('y=f(u)','y=sqrt(1+(u+1)^2/4)/2')
I3=f(0)*w3(1)+f(x3(2))*w3(2)+f(-x3(2))*w3(2)
I4=f(x4(1))*w4(1)+f(-x4(1))*w4(1)+f(x4(2))*w4(2)+f(-x4(2))
I5=f(0)*w5(1)+f(x5(2))*w5(2)+f(-x5(2))*w5(2)+f(x5(3))*w5(3
+f(-x5(3))*w5(3)

Exerccios

E 7.3.1. Calcule numericamente as seguintes integrais usando os


mtodos simples do Ponto mdio, Trapzio e Simpson. Calcule tam-
bm o valor exato usando seus conhecimentos de Clculo I. Com-
plete a tabela abaixo conforme modelo:
exato Ponto mdio Trapzi

R 1 x 1+e1
e dx
0 1 e1 0.6321206 e1/2 0.6065307 2
0.68

R1 2
x dx
0

R1 3
x dx
0

R1 2
0 xex dx

R1 1
0 x2 +1 dx

R1 x
0 x2 +1 dx
E 7.3.2. Dados os valores da funo f (x), f (2) = 2, f (3) = 4 e
f (4) = 8, calcule o valor aproximado de
Z 4
f (x)dx
2

pelos mtodos simples de ponto mdio, trapzio e Simpson.

E 7.3.3. D a interpretao geomtrica dos mtodos do ponto


mdio, trapzio e Simpson. A partir desta construo geomtrica,
deduza as frmulas para aproximar
Z b
f (x)dx.
a

Verifique o mtodo de Simpson pode ser entendido como uma mdia


aritmtica ponderada entre os mtodos de trapzio e ponto mdio.
Encontre os pesos envolvidos. Explique o que so os mtodos com-
postos.
2
E 7.3.4. Calcule numericamente o valor de 25 e4x dx usando os
R

mtodos compostos do ponto mdio, trapzio e Simpson. Obtenha


os resultados utilizando, em cada quadratura, o nmero de pontos
indicado.

n Ponto mdio Trapzios Simpson


3
5
7
9

E 7.3.5. Use as rotinas construdas em aula e calcule numerica-


mente o valor das seguintes integrais usando o mtodo composto
dos trapzios para os seguintes nmeros de pontos:
R 1 4x2 R1 1 R1 4 R1
n h 0 e dx 0 1+x2 dx 0x (1 x)4 dx 0 e
17 0.4409931
33 0.4410288
65 0.4410377
129 0.4410400
257 0.4410405
513 0.4410406
1025 0.4410407 0.7853981 1.5873015873016 103 4.6191723

Para cada integrando encontre o funo I(h) = a0 + a1 h + a2 h2 +


1
a3 h3 + a4 h4 que melhor se ajusta aos dados, onde h = n1 . Dis-
cuta os resultados com base no teorema envolvido na construo do
mtodo de Romberg.
E 7.3.6. RCalcule os valores da quadratura de Romberg de R1,1 at
R4,4 para 0 sin(x)dx. No use rotinas prontas neste problema.

E 7.3.7. Sem usar rotinas prontas, use o mtodo de integrao de


Romberg para obter a aproximao R3,3 das seguintes integrais:
R 1 x2
a) 0 e dx
R2q
b) 0 2 cos(x)dx
R2
c) 0
1
dx
2cos(x)
E 7.3.8. Encontre uma expresso para R2,2 em termos de f (x)
e verifique o mtodo de Romberg R2,2 equivalente ao mtodo de
Simpson.

E 7.3.9. Considere o problema de aproximar numericamente o


valor de Z 100 
1

e 2 cos(x) 1 dx
0

pelo mtodo de Romberg. Usando rotinas prontas, faa o que se


pede.

Calcule R(6,k), k = 1, . . . ,6 e observe os valores obtidos.

Calcule R(7,k), k = 1, . . . ,6 e observe os valores obtidos.

Calcule R(8,k), k = 1, . . . ,6 e observe os valores obtidos.

Discuta os resultados anteriores e proponha uma estratgia


mais eficiente para calcular o valor da integral.
E 7.3.10. Encontre os pesos w1 , w2 e w3 tais que o esquema de
quadratura dado por
Z 1
f (x)dx w1 f (0) + w2 f (1/2) + w3 f (1)
0

apresente mxima ordem de exatido. Qual a ordem obtida?

E 7.3.11. Encontre a ordem de exatido do seguinte mtodo de


integrao:
" ! !#
Z 1
2 2 2
f (x)dx f + f (0) + f
1 3 2 2

E 7.3.12. Encontre a ordem de exatido do seguinte mtodo de


integrao:
Z 1
1 0 136 62 136 1
f (x)dx = f (1)+ f (1/2) f (0)+ f (1/2)+ f
1 210 105 105 105 210
E 7.3.13. Encontre os pesos w1 , w2 e w3 tal que o mtodo de
integrao
Z 1
f (x)dx w1 f (1/3) + w2 f (1/2) + w3 f (2/3)
0

tenha ordem de exatido mxima. Qual ordem obtida?

E 7.3.14. Explique por qu quando um mtodo simples tem esti-


mativa de erro de truncamento local de ordem hn , ento o mtodo
composto associado tem estimativa de erro de ordem hn1 .

E 7.3.15. Quantos pontos so envolvidos no esquema de quadra-


tura R3,2 ? Qual a ordem do erro deste esquema de quadratura?
Qual a ordem de exatido desta quadradura?

E 7.3.16. Encontre os pesos w1 e w2 e as abcissas x1 e x2 tais que


Z 1
f (x) = w1 f (x1 ) + w2 f (x2 )
1
quando f (x) = xk , k = 0,1,2,3, isto o mtodo apresente mxima
ordem de exatido possvel com dois pontos.
Use esse mtodo para avaliar o valor da integral das seguintes in-
tegrais e compare com os valores obtidos para Simpson e trapzio,
bom como com o valor exato.
R1
a) 1 (2 + x 5x2 + x3 ) dx
R1
b) 1 ex dx
R1
c) dx
1 x2 +1

E 7.3.17. Encontre os pesos w1 , w2 e w3 tal que o mtodo de


integrao
! !
Z 1
3 3
f (x)dx w1 f + w2 f (0) + w3 f
1 3 3

tenha ordem de exatido mxima. Qual ordem obtida?


E 7.3.18. Encontre aproximaes para a seguinte integral via
Gauss-Legendre com 2, 3, 4, 5, 6 e 7 pontos e compare com o valor
exato Z 1 5
x4 ex dx.
1

E 7.3.19. Encontre aproximaes para as seguintes integrais via


Gauss-Legendre com 4 e 5 pontos:
R 1 x4
a) 0 e dx
R4
b) 1 log(x + ex )dx
R 1 x2
c) 0 e dx

E 7.3.20. Calcule numericamente o valor das seguintes integrais


usando a quadratura de Gauss-Legendre para os seguintes valores
de n:
R 1 4x2 R1 1 R1 4 R 1 21
n 0 e dx 0 1+x2 dx 0 x (1 x)4 dx 0 ex +1 dx
2
3
4
5
8
10
12
14
16 0.4410407 0.7853982 0.0015873 0.4619172
Exerccios finais

E 7.3.21. O valor exato da integral imprpria 01 x ln(x)dx dado


R

por ! 1
Z 1
x2 x2
x ln(x)dx = ln x = 1/4
0 2 4 0
Aproxime o valor desta integral usando a regra de Simpson para
n = 3, n = 5 e n = 7. Como voc avalia a qualidade do resultado
obtido? Por que isso acontece.
R x2
E 7.3.22.

O valor exato da integral imprpria 0 e dx dado

por 2 . Escreva esta integral como
Z 1 Z 1 Z 1 
x2 2 1/u2 2 2
I= e dx + u e du = ex + x2 e1/x dx
0 0 0

e aproxime seu valor usando o esquema de trapzios e Simpson para


n = 5, n = 7 e n = 9.
E 7.3.23. Estamos interessados em avaliar numericamente a se-
guinte integral: Z 1
ln(x) sin(x)dx
0
cujo valor com 10 casas decimais corretas .2398117420.

a) Aproxime esta integral via Gauss-Legendre com n = 2,n = 3,


n = 4, n = 5, n = 6 e n = 7.

b) Use a identidade
Z 1 Z 1 Z 1
ln(x) sin(x)dx = ln(x)xdx + ln(x) [sin(x) x] dx
0 0 0
2 1
!
x2 x Z 1
= ln x + ln(x) [sin(x) x]
2 4 0 0
1 Z1
= + ln(x) [sin(x) x] dx
4 0
R1
e aproxime a integral 0 ln(x) [sin(x) x] dx numericamente
via Gauss-Legendre com n = 2, n = 3, n = 4, n = 5, n = 6 e
n = 7.

c) Compare os resultados e discuta levando em considerao as


respostas s seguintes perguntas: 1)Qual funo mais bem-
comportada na origem? 2)Na segunda formulao, qual por-
o da soluo foi obtida analiticamente e, portanto, sem erro
de truncamento?

E 7.3.24. R Considere o problema de calcular numericamente a in-


1
tegral I = 1 f (x)dx quando f (x) = cos(x)
.
|x|

a) O que acontece quando se aplica diretamente a quadratura


gaussiana com um nmero impar de abscissas?

b) Calcule o valor aproximado por quadratura gaussiana com


n = 2, n = 4, n = 6 e n = 8.
c) Calcule o valor aproximado da integral removendo a singula-
ridade
Z 1
cos(x) Z 1
cos(x) 1 Z 1
1
I = q dx = q dx + q dx
1 |x| 1 |x| 1 |x|
Z 1
cos(x) 1 Z 1
1 Z 1
cos(x) 1
= q dx + 2 dx = q dx + 4
1 |x| 0 x 1 |x|
e aplicando quadratura gaussiana com n = 2, n = 4, n = 6 e
n = 8.
d) Calcule o valor aproximado da integral removendo a singula-
ridade, considerando a paridade da funo
Z 1
cos(x) 1 Z 1
cos(x) 1
I = 4+ q dx = 4 + 2 dx = 4 + 2
1 |x| 0 x

e aplicando quadratura gaussiana com n = 2, n = 4, n = 6 e


n = 8.
e) Expandindo a funo cos(x) em srie de Taylor, truncando a
srie depois do n-simo termos no nulo e integrando analiti-
camente.

f) Aproximando a funo cos(x) pelo polinmio de Taylor de


grau 4 dado por
x 2 x4
P4 (x) = 1 +
2 24
e escrevendo
Z 1
cos(x) Z 1
cos(x) P4 (x) Z 1
P4 (x)
I = q dx = q dx + q dx
1 |x| 1 |x| 1 |x|
!
Z 1
cos(x) P4 (x) Z 1
1/2 x3/2 x7/2
= 2 dx +2 x + d
0 x 0 2 24
| {z } | {z
Resolver numericamente Resolver analiticamente
E 7.3.25. Calcule numericamente o valor das seguintes integrais
com um erro relativo inferior a 104 .
Z 1
sin(x)
a) dx
0 x
Z 1
sin(x)
b) dx
0 x(1 x)
 

Z 1 sin 2
x
c) q dx
0 x(1 x)
Z 1
d) ln(x) cos(x)dx
0

x R 1 ex
E 7.3.26. Calcule as integrais 01 |x|e1/4 dx e
R
0 |x|4/5 dx usando pro-
cedimentos analticos e numricos.
E 7.3.27. Use a tcnica de integrao por partes para obter a
seguinte identidade envolvendo integrais imprprias:
Z Z
cos(x) sin(x)
I= dx = dx.
0 1+x 0 (1 + x)2
Aplique as tcnicas estudadas para aproximar o valor de I e explique
por que a integral da direita mais bem comportada.

E 7.3.28. Resolva a equao


Z x
2
x+ ey dy = 5
0

com 5 dgitos significativos.

E 7.3.29. O calor especfico (molar) de um slido pode ser apro-


ximado pela teoria de Debye usando a seguinte expresso
3 Z T /T
T y 4 ey

D
CV = 9N kB dy
TD 0 (ey 1)2
onde N a constante de Avogrado dado por N = 6.022 1023 e
kB a constante de Boltzmann dada por kB = 1.38 1023 . TD
temperatura de Debye do slido.
a) Calcule o calor especfico do ferro em quando T = 200K,
T = 300K e T = 400K supondo TD = 470K.

b) Calcule a temperatura de Debye de um slido cujo calor espe-


cfico a temperatura de 300K 24J/K/mol. Dica: aproxime
a integral por um esquema numrico com um nmero fixo de
pontos.

c) Melhore sua cultura geral: A lei de Dulong-Petit para o calor


especfico dos slidos precede a teoria de Debye. Verifique que
a equao de Debye consistente com Dulong-Petit, ou seja:

lim Cv = 3N kB .
T

Dica: use ey 1 + y quando y 0


Captulo 8

Problemas de valor inicial

Neste captulo, desenvolveremos tcnicas numrica para aproximar


a soluo de problemas de valor inical da forma

y 0 (t) = f (y(t),t) (8.1a)


y(t0 ) = y0 (condio inicial). (8.1b)
A inggnita de um problema de valor inicial uma funo que
satisfaz a equao diferencial (8.1a) e a condio inicial (8.1b).
Exemplo 98. Considere o seguinte problema de valor inicial
y 0 (t) = 2y(t), (8.2a)
y(t0 ) = 1. (8.2b)
A soluo desta equao dada pela funo y(t) = e2y pois y 0 (t) =
2e2t = 2y(t) e y(0) = e0 = 1.
Muito problemas de valor inicial da forma (8.1) no podem ser re-
solvidos exatamente, ou seja, sabe-se que a soluo existe e nica,
porm no podemos express-la em termos de funes elementares.
Por isso necessrio calcular aproximaes numricas. Diversos
mtodos completamente diferentes esto disponveis para aproxi-
mar uma funo real.
Aqui nos limitaremos a estudar mtodos que se fundamentam em
tentar calcular y(t) em um conjunto finito de valores de t. Esse con-
junto de valores para t ser denotado por {ti }N
i=1 , isto {t1 , t2 , t3 , . . . , tN
e calculamos o valor aproximado da funo soluo y(ti ) em cada
ponto da malha usando esquemas numricos.
8.1 Mtodo de Euler
Retornemos ao problema de valor inicial (8.1) dado por:

y 0 (t) = f (y(t),t) (8.3a)


y(0) = y0 (condio inicial) (8.3b)

O Mtodo de Euler aplicado soluo desse problema consiste em


aproximar a derivada y 0 (t) por um esquema de primeira ordem do
tipo
y(t + h) y(t)
y 0 (t) = + O(h), h > 0.
h
Aqui h o passo do mtodo, que consideraremos uma constante.
Assim temos (8.3) se transforma em:

y(t + h) y(t)
= f (y(t),t) + O(h)
h
y(t + h) = y(t) + hf (y(t),t) + O(h2 ).
Definimos,
  ento, t(k) = (k 1)h e y (k) como a aproximao para
y t(k) produzida pelo Mtodo de Euler. Assim, obtemos
y (k+1) = y (k) + hf (y (k) ,t(k) ) (aproximao da EDO), (8.4)
y (1) = y0 (condio inicial). (8.5)
O problema (8.4) consiste em um esquema iterativo, isto , y (1)
a condio inicial; y (2) pode ser obtido de y (2) ; y (3) , de y (4) e assim
por diante, calculamos o termo y (n) apartir do anterior y (n1) .
Exemplo 99. Retornemos ao o problema de valor inicial do exem-
plo (8.2):
y 0 (t) = 2y(t)
y(0) = 1
Cuja soluo y(t) = e2t . O mtodo de Euler aplicado a este
problema produz o seguinte esquema:
y (k+1) = y (k) + 2hy (k) = (1 + 2h)y (k)
y (1) = 1,
cuja soluo dada por
y (k) = (1 + 2h)k1 .
Como t = (k 1)h, a soluo aproximada pelo Mtodo de Euler
t
y(t) y(t) = (1 + 2h) h .
Observe que y(t) 6= y(t), mas se h pequeno, a aproximao boa,
pois
t
lim (1 + 2h) h = e2t .
h0+
Vamos agora, analisar o desempenho do Mtodo de Euler usando
um exemplo mais complicado, porm ainda simples suficiente para
que possamos obter a soluo exata:
Exemplo 100. Considere o problema de valor inicial relacionado
equao logstica:
y 0 (t) = y(t)(1 y(t))
y(0) = 1/2
Podemos obter a soluo exata desta equao usando o mtodo de
separao de variveis e o mtodo das fraes parciais.
dy(t)
= dt
y(t)(1 y(t))
!
1 1
+ dy = dt
y 1y
ln(y) ln(1 y) = t+C
!
y
ln = t+C
1y
y
= et+C
1y
y= et+C (1 y)
t+C
y(1 + e ) = et+C
et+C
y = .
1 + et+C
Basta, agora, encontrar a constante C a partir da condio inicial
y(0) = 1/2:
eC
y(0) = = 1/2,
1 + eC

o que implica eC = 1 e, portanto, C = 0. Assim, a soluo exata


et
dada por y(t) = 1+e t

Vejamos, agora, o esquema iterativo produzido pelo mtodo de Eu-


ler:

y (k+1) = y (k) + hy (k) (1 y (k) ), (8.6a)


y (1) = 1/2. (8.6b)

Para fins de comparao, calculamos a soluo de (100) e de (8.6)


para alguns valores de t e de passo h e resumimos na tabela (8.1).
No exemplo a seguir, apresentamos um problema envolvendo uma
equao no-autnoma, isto , quando a funo f (y,t) depende ex-
plicitamente do tempo.
Figura 8.1: Tabela comparativa enter Mtodo de Euler e soluo
exata para problema 100.

t Exato Euler h = 0,1 Euler h = 0,01


0 1/2 0,5 0,5
e1/2
1/2 1+e1/2
0,6224593 0,6231476 0,6225316
e
1 1+e
0,7310586 0,7334030 0,7312946
e2
2 1+e2
0,8807971 0,8854273 0,8812533
e3
3 1+e3
0,9525741 0,9564754 0,9529609
Exemplo 101. Resolva o problema de valor inicial
y 0 = y + t
y(0) = 1,
cuja soluo exata y(t) = 2et + t 1.
O esquema recursivo de Euler fica:
y (k+1) = y(k) hy(k) + ht(k)
y(0) = 1
Comparao

t Exato Euler h = 0,1 Euler h = 0,01


0 1 1 1
1 2e1 0,7357589 0,6973569 0,7320647
2 2e2 + 1 1,2706706 1,2431533 1,2679593
3 2e3 + 2 2,0995741 2,0847823 2,0980818
No exemplo 102, mostramos como o Mtodo de Euler pode ser facil-
mente estendido para problemas envolvendo sistemas de equaes
diferenciais..

Exemplo 102. Escreva o processo iterativo de Euler para resolver


numericamente o seguinte sistema de equaes diferenciais

x0 = y
y0 = x
x(0) = 1
y(0) = 0,

cuja soluo exata x(t) = cos(t) e y(t) = sin(t).

Par aplicar o Mtodo de Euler a um sistema, devemos encarar as


diversas incgnitas do sistema como formando um vetor, neste caso,
encrevemos:
x(t)
z(t) = .
y(t)
O sistema igualmente escrito na forma vetorial:

(k+1) (k) (k)
x x y
= + h .


y (k+1) y (k) x(k)
Observe que este processo iterativo equivalente a:
x(k+1) = x(k) hy (k)
y (k+1) = y (k) + hx(k) .
Exemplo 103. Escreva o problema de valor inicial de segunda or-
dem dado por
y 00 + y 0 + y = cos(t),
y(0) = 1,
y 0 (0) = 0,
como um problema envolvendo um sistema de primeira ordem.

A fim de transformar a equao diferencial dada em um sistema de


equaes de primeira ordem, introduzimos a substituio w = y 0 ,
de forma que obtermos o sistema:

y0 = w
w0 = w y + cos(t)
y(0) = 1
w(0) = 0

Portanto, o Mtodo de Euler produz o seguinte processo iterativo:

y (k+1) = y (k) + hw(k) ,


w(k+1) = w(k) hw(k) hy (k) + h cos(t(k) ),
y (1) = 1,
w(1) = 0.
Exerccios

E 8.1.1. Resolva o problema de valor inicial dado por



y 0 = 2y + y
y(0) = 1

com passo h = 0.1 e h = 0.1 para obter aproximaes para y(1).


Compare com a soluo exata dada por y(t) = (1 + 2et + e2t ) /4

E 8.1.2. Resolva o problema de valor inicial dado por



y0 = 2y + z
z0 = z + y
y(0) = 0
z(0) = 2
com passo h = 0.2, h = 0.2, h = 0.02 e h = 0.002 para obter
aproximaes para y(2) e z(2).

E 8.1.3. Resolva o problema de valor inicial dado por

y 0 = cos(ty(t))
y(0) = 1

com passo h = 0.1, h = 0.01, h = 0.001, h = 0.0001 e 0.00001 para


obter aproximaes para y(2).
8.2 Mtodo de Euler melhorado
O mtodo de Euler foi o primeiro mtodo que estudamos e sua
principal virtude a simplicidade. Outros mtodos, no entanto,
podem apresentar resultados superiores. Vamos apresentar agora
uma pequena modificao ao Mtodo de Euler, dando origem a um
novo mtodo chamado de Mtodo de Euler Modificado ou Mtodo
de Euler Melhorado.
No mtodo de Euler, usamos a seguinte iterao:

y (k+1) = y (k) + hf (y (k) ,t(k) )


y (1) = y0 (condio inicial)

A ideia do mtodo de Euler Melhorado substituir a declividade


f (y (k) ,t(k) ) pela mdia aritmtica entre f (y (k) ,t(k) ) e f (y (k+1) ,t(k+1) ),
isto , as declividades avaliadas no incio e no fim do intervalo
[t(k) ,t(k+1) ].
No entanto, no dispomos do valor de y (k+1) antes de executar o
passo. Assim aproximamos esta grandeza pelo valor produzido pelo
Mtodo de Euler original:
y (k+1) = y (k) + hf (y (k) ,t(k) ).
De posse desta aproximao, calculamos a mdia aritmtica e com
esta mdia realizamos o passo do Mtodo de Euler Melhorado. O
processo iterativo de Euler Melhorado , portanto, dado por:
y (k+1) = y (k) + hf (y (k) ,t(k) )
h h (k) (k) i
y (k+1) = y (k) + f (y ,t ) + f (y (k+1) ,t(k+1) )
2
(1)
y = y0 (condio inicial)
Podemos reescrever este mesmo processo iterativo da seguinte forma:
k1 = hf (y (k) ,t(k) ),
k2 = hf (y (k) + k1 ,t(k+1) ),
k1 + k2
y (k+1) = y (k) + ,
2
y (1) = y0 (condio inicial).
Aqui k1 e k2 so variveis auxiliares que representam as inclinaes
e devem ser calculadas a cada passo.
Exerccios

E 8.2.1. Use o Mtodo de Euler melhorado para obter uma apro-


ximao numrica do valor de y(1) quando y(t) satisfaz o seguinte
problema de valor inicial
y 0 (t) = y(t) + ey(t) ,
y(0) = 0,
usando passos h = 0,1 e h = 0,01.

E 8.2.2. Use o Mtodo de Euler e o Mtodo de Euler melhorado


para obter aproximaes numricas para a soluo do seguinte pro-
blema de valor inicial para t [0,1]:
y 0 (t) = y(t) y(t)2 ,
y(0) = 1,
usando passo h = 0,1. Complete a tabela abaixo com os valores
obtidos e compare com o valores obtidos da soluo exata dada por
y(t) = 2et11 , complete tambm com o erro absoluto obtido em cada
mtodo:
t Exato Euler Euler Melhorado Erro Euler Erro Euler Melhorado
0.0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1.0
8.2.1 Ordem de preciso
Considere o problema de valor inicial dado por

y 0 (t) = f (y(t),t)
y(0) = yi

No mtodo de Euler, aproximamos a derivada y 0 (t) por um esquema


de primeira ordem do tipo

y(t + h) y(t)
y 0 (t) = + O(h), h > 0
h

de forma que tnhamos

y(t + h) = y(t) + hf (y(t),t) + O(h2 )


Se fixarmos um instante de tempo t = N h, temos:
h i h i
y(t) = y(0) + hf (y(0),0) + O(h2 ) + y(h) + hf (y(h),h) + O(h2 )
h i
+ . . . y(t h) + hf (y(t h),t h) + O(h2 )
N 1
= yk + O(h2 ) = y k + O(h)
X

j=0

Por isso, o mtodo de Euler dito ter ordem global de preciso h.


8.3 Mtodos de Runge-Kutta
Os mtodos de Runge-Kutta consistem em iteraes do tipo:

y (k+1) = y (k) + w1 k1 + . . . + wn kn

onde

k1 = hf (y (k) ,t(k) )
k2 = hf (y (k) + 2,1 k1 ,t(k) + 2 h)
k3 = hf (y (k) + 3,1 k1 + 3,2 k2 ,t(k) + 3 h)
..
.
kn = hf (y (k) + n,1 k1 + n,2 k2 + . . . n,n1 kn1 ,t(k) + n h)

Os coeficientes so escolhidos de forma que a expanso em Taylor


de y (k+1) e y (k) + w1 k1 + . . . + wn kn coincidam at ordem n + 1.
Exemplo 104. O mtodo de Euler melhorado um exemplo de
Runge-Kutta de segunda ordem
k1 + k2
y (n+1) = y (n) +
2
onde k1 = hf (y (n) ,t(n) ) e k2 = hf (y (n) + k1 ,t(n) + h)
8.3.1 Mtodos de Runge-Kutta - Quarta ordem

k1 + 2k2 + 2k3 + k4
y (n+1) = y (n) +
6

onde

k1 = hf (y (n) ,t(n) )
k2 = hf (y (n) + k1 /2,t(n) + h/2)
k3 = hf (y (n) + k2 /2,t(n) + h/2)
k4 = hf (y (n) + k3 ,t(n) + h)

Este mtodo tem ordem de truncamento local de quarta ordem.


Uma discusso heurstica usando mtodo de Simpson pode ajudar
a compreender os estranhos coeficientes:
Z t(n+1)
y(t(n+1) ) y(t(n) ) = f (y(s),s)ds
t(n)
h h  (n) (n)  
f y(t ),t + 4f y(t(n) + h/2),t(n) + h/
6 i
+ f y(t(n) + h),t(n) + h
k1 + 4( k2 +k
2
3
) + k4

6
onde k1 e k4 representam as inclinaes nos extremos e k2 e k3 so
duas aproximaes diferentes para a inclinao no meio do intervalo.
8.4 Mtodos de passo mltiplo - Adams-
Bashforth
O mtodo de Adams-Bashforth consiste de um esquema recursivo
do tipo:
k
y (n+1) = y (n) + wj f (y (nj) ,t(nj) )
X

j=0

Exemplo 105. Adams-Bashforth de segunda ordem

h h  (n) (n)   i
y (n+1) = y (n) + 3f y ,t f y (n1) ,t(n1)
2

Exemplo 106. Adams-Bashforth de terceira ordem

h h     
y (n+1) = y (n) + 23f y (n) ,t(n) 16f y (n1) ,t(n1) + 5f y (n2) ,t(n
12
Exemplo 107. Adams-Bashforth de quarta ordem
h h    
y (n+1) = y (n) + 55f y (n) ,t(n) 59f y (n1) ,t(n1)
 24   i
+ 37f y (n2) ,t(n2) 9f y (n3) ,t(n3)

Os mtodos de passo mltiplo evitam os mltiplos estgios do mto-


dos de Runge-Kutta, mas exigem ser "iniciados"com suas condies
iniciais.
8.5 Mtodos de passo mltiplo - Adams-
Moulton
O mtodo de Adams-Moulton consiste de um esquema recursivo do
tipo:
k
y (n+1) = y (n) + wj f (y (nj) ,t(nj) )
X

j=1

Exemplo 108. Adams-Moulton de quarta ordem


h h  (n+1) (n+1)   
y (n+1) = y (n) + 9f y ,t + 19f y (n) ,t(n)
 24   i
5f y (n1) ,t(n1) + f y (n2) ,t(n2)

O mtodo de Adams-Moulton implcito, ou seja, exige que a cada


passo, uma equao em y (n+1) seja resolvida.
8.6 Estabilidade
Consideremos o seguinte problema de teste:


y 0 = y
y(0) = 1

cuja soluo exata dada por y(t) = et .


Considere agora o mtodo de Euler aplicado a este problema com
passa h:

y (k+1) = y (k) hy (k)
y (1) = 1

A soluo exata do esquema de Euler dada por


y (k+1) = (1 h)k
e, portanto,
y(t) = y (k+1) = (1 h)t/h
Fixamos um > 0, de forma que y(t) 0. Mas observamos que
y(t) 0 somente quando |1 h| < 1 e soluo positivas somente
quando h < 1.
Concluso: Se o passo h for muito grande, o mtodo pode se tornar
instvel, produzindo soluo esprias.
Exerccios

E 8.6.1. Resolva o problema 1 pelos diversos mtodos e verifique


heuristicamente a estabilidade para diversos valores de h.
Exerccios finais

E 8.6.2. Considere o seguinte modelo para o crescimento de uma


colnia de bactrias:
dy
= y(A y)
dt
onde y indica a densidade de bactrias em unidades arbitrrias na
colnia e e A so constantes positivas. Pergunta-se:
a) Qual a soluo quando a condio inicial y(0) igual a 0 ou
A?
b) O que acontece quando a condio inicial y(0) um nmero
entre 0 e A?
c) O que acontece quando a condio inicial y(0) um nmero
negativo?
d) O que acontece quando a condio inicial y(0) um nmero
positivo maior que A?
e) Se A = 10 e = 1 e y(0) = 1, use mtodos numricos para
obter tempo necessrio para que a populao dobre?
f) Se A = 10 e = 1 e y(0) = 4, use mtodos numricos para
obter tempo necessrio para que a populao dobre?

E 8.6.3. Considere o seguinte modelo para a evoluo da veloci-


dade de um objeto em queda (unidades no SI):

v 0 = g v 2

Sabendo que g = 9,8 e = 102 e v(0) = 0. Pede-se a velocidade


ao tocar o solo, sabendo que a altura inicial era 100.

E 8.6.4. Considere o seguinte modelo para o oscilador no-linear


de Van der Pol:

y 00 (t) (A y(t)2 )y 0 (t) + w02 y(t) = 0

onde A, e w0 so constantes positivas.


Encontre a frequncia e a amplitude de oscilaes quando
w0 = 1, = .1 e A = 10. (Teste diversas condies inici-
ais)
Estude a dependncia da frequncia e da amplitude com os
parmetros A, e w0 . (Teste diversas condies iniciais)
Que diferenas existem entre esse oscilador no-linear e o os-
cilador linear?

E 8.6.5. Considere o seguinte modelo para um oscilador no-linear:


y 00 (t) (A z(t))y 0 (t) + w02 y(t) = 0
Cz 0 (t) + z(t) = y(t)2
onde A, , w0 e C so constantes positivas.
Encontre a frequncia e a amplitude de oscilaes quando
w0 = 1, = .1, A = 10 e C = 10. (Teste diversas condi-
es iniciais)
Estude a dependncia da frequncia e da amplitude com os
parmetros A, , w0 e C. (Teste diversas condies iniciais)

E 8.6.6. Considere o seguinte modelo para o controle de tempera-


tura em um processo qumico:

CT 0 (t) + T (t) = P (t) + Text


P 0 (t) = (Tset T (t))

onde C, e so constantes positivas e P (t) indica o potncia do


aquecedor. Sabendo que Tset a temperatura desejada, interprete
o funcionamento esse sistema de controle.
Calcule a soluo quando a temperatura externa Text = 0,
Tset = 1000, C = 10, = .1 e = .1. Considere condies
iniciais nulas.

Quanto tempo demora o sistema para atingir a temperatura


900K?
Refaa os dois primeiros itens com = 0.2 e = 1

Faa testes para verificar a influncia de Text , e na tem-


peratura final.

E 8.6.7. Considere a equao do pndulo dada por:

d2 (t) g
+ sin((t)) = 0
dt2 l
onde g o mdulo da acelerao da gravidade e l o comprimento
da haste.

Mostre analiticamente que a energia total do sistema dada por


!2
1 d(t) g
cos((t))
2 dt l

mantida constante.
Resolva numericamente esta equao para g = 9,8m/s2 e l =
1m e as seguintes condies iniciais:

(0) = 0.5 e 0 (0) = 0.

(0) = 1.0 e 0 (0) = 0.

(0) = 1.5 e 0 (0) = 0.

(0) = 2.0 e 0 (0) = 0.

(0) = 2.5 e 0 (0) = 0.

(0) = 3.0 e 0 (0) = 0.

Em todos os casos, verifique se o mtodo numrico reproduz a lei


de conservao de energia e calcule perodo e amplitude.

E 8.6.8. Considere o modelo simplificado de FitzHugh-Nagumo


para o potencial eltrico sobre a membrana de um neurnio:
dV
= V V 3 /3 W + I
dt
dW
= 0.08(V + 0.7 0.8W )
dt
onde I a corrente de excitao.

Encontre o nico estado estacionrio (V0 ,W0 ) com I = 0.

Resolva numericamente o sistema com condies iniciais dadas


por (V0 ,W0 ) e
I=0
I = 0.2
I = 0.4
I = 0.8
I = et/200
E 8.6.9. Considere o problema de valor inicial dado por

du(t)
= u(t) + et
dt
u(0) = 0

Resolva analiticamente este problema usando as tcnicas elementa-


res de equaes diferenciais ordinrias. A seguir encontre aproxi-
maes numricas usando os mtodos de Euler, Euler modificado,
Runge-Kutta Clssico e Adams-Bashforth de ordem 4 conforme pe-
dido nos itens.

a) Construa uma tabela apresentando valores com 7 algarismos


significativos para comparar a soluo analtica com as aproxi-
maes numricas produzidas pelos mtodos sugeridos. Cons-
trua tambm uma tabela para o erro absoluto obtido por cada
mtodo numrico em relao soluo analtica. Nesta ltima
tabela, expresse o erro com 2 algarismos significativos em for-
mato cientfico. Dica: f ormat(0 e0 ,8) para a segunda tabela.
0.5 1.0 1.5 2.0 2.5
Analtico
Euler
Euler modificado
Runge-Kutta Clssico
Adams-Bashforth ordem 4

0.5 1.0 1.5 2.0 2.5


Euler
Euler modificado
Runge-Kutta Clssico
Adams-Bashforth ordem 4
b) Calcule o valor produzido por cada um desses mtodo para
u(1) com passo h = 0.1, h = 0.05, h = 0.01, h = 0.005 e
h = 0.001. Complete a tabela com os valores para o erro
absoluto encontrado.

0.1 0.05 0.01 0.005 0.001


Euler
Euler modificado
Runge-Kutta Clssico
Adams-Bashforth ordem 4
Apndice A

Rpida Introduo ao
Scilab
A.1 Sobre o Scilab
Scilab uma linguagem de programao associada com uma rica
coleo de algoritmos numricos que cobrem muitos aspectos de
problemas de computao cientfica. Do ponto de vista de software,
Scilab uma linguagem interpretada. A linguagem Scilab permite
a compilao dinmica e lincagem com outras linguagens como For-
tran e C. Do ponto de vista de licena, Scilab um software gratuito
no sentido que o usurio no paga por ele. Alm disso, Scilab um
software de cdigo aberto disponvel sobre a licena Cecill [1]. Sci-
lab esta disponvel para Linux, Mac Os e Windows. Ajuda online
esta disponvel em portugus e muitas outras lnguas. Do ponto de
vista cientfico, Scilab comeou focado em solues computacionais
para problemas de lgebra linear, mas, rapidamente, o nmero de
aplicaes se estendeu para muitas reas da computao cientfica.
As informaes deste apndice foram adaptadas do tutorial Intro-
duction to Scilab [2], veja-o para maiores informaes. Alm disso,
recomendamos visitar o stio oficial do Scilab:
www.scilab.org

O manual oficial do Scilab em portugus pode ser obtido em:

http://help.scilab.org/docs/5.5.2/pt_BR/index.html
A.1.1 Instalao e Execuo
O Scilab pode ser executado normalmente nos sistemas operaci-
onais Linux, Mac Os e Windows. Muitas distribuies de Linux
(Linux Mint, Ubuntu, etc.) tm o Scilab no seu sistema de pacotes
(incluindo binrio e documentao em vrias lnguas). Alternati-
vamente, no stio de internet oficial do Scilab pode-se obter mais
verses de binrios e documentao para instalao em sistemas Li-
nux. Para a instalao em sistemas Mac Os e Windows, visite stio
de internet oficial do Scilab.
A.1.2 Usando o Scilab
O uso do Scilab pode ser feito de trs formas bsicas:

usando o console de modo iterativo;

usando a funo exec para executar um cdigo Scilab digitado


em um arquivo externo;

usando processamento bash.

Exemplo 109. Considere o seguinte pseudocdigo:

s = "Ol Mundo!". (Sem imprimir na tela o resultado.)


sada(s). (Imprime na tela.)

Implemente este pseudocdigo no Scilab: a) usando somente o con-


sole do Scilab; b) usando o editor do Scilab e executando o cdigo
com a funo exec; c) usando processamento bash.

Soluo. Seguem as solues de cada item:


a) No console temos:

-->s = "Ol Mundo!";


-->disp(s)

b) Para abrir o editor do Scilab pode-se digitar no prompt:

-->editor()

ou, alternativamente:

-->scinotes

Ento, digita-se no editor o cdigo:

s = "Ol Mundo!"
disp(s)
salva-se em um arquivo de sua preferncia (por exemplo, ~/foo.s
e executa-se o cdigo clicando no boto play disponvel na
barra de botes do Scinotes.
c) Para executar o cdigo em processamento bash, digita-se em
um editor o cdigo:

s = "Ol Mundo!"
disp(s)

salva-se em um arquivo de sua preferncia (por exemplo, ~/foo.s


e executa-se em um console do sistema usando a linha de co-
mando:

$ scilab -nw -f ~/foo.sce

Digite, ento, quit para voltar ao prompt do sistema.



A.2 Elementos da linguagem
Scilab uma linguagem interpretada em que todas as variveis so
matrizes. Uma varivel criada quando um valor atribudo a ela.
Por exemplo:

-->x=1
x =
1.
-->y = x * 2
y =
2.

a varivel x recebe o valor double 1 e, logo aps, na segunda linha


de comando, a varivel y recebe o valor double 2. Observamos que
o smbolo = significa o operador de atribuio no o de igualdade.
O operador lgico de igualdade no Scilab ==.
Comentrios e continuao de linha de comando so usados como
no seguinte exemplo:
-->//Isto um comentrio
-->x = 1 ..
-->+ 2
x =
3.
A.2.1 Operaes matemticas elementares
No Scilab, os operadores matemticos elementares so os seguintes:

+ adio
- subtrao
* multiplicao
/ diviso
^ potenciao (igual a **)
' transposto conjugado
A.2.2 Funes e constantes elementares
Vrias funes e constantes elementares j esto pr-definidas no
Scilab. Por exemplo:
-->cos(%pi) //cosseno de pi
ans =
- 1.

-->exp(1) == %e //nmero de Euler


ans =
T

-->log(1) //logartmo natual de 1


ans =
0.
Para mais informaes sobre quais as funes e constantes pr-
definidas no Scilab, consulte o manual, sees Funes elemen-
tares e o carcter especial %".
A.2.3 Operadores lgicos
No Scilab, o valor lgico verdadeiro escrito como %T e o valor lgico
falso como %F. Temos os seguintes operadores lgicos disponveis:

& e lgico
| ou lgico
~ negao
== igualdade
~= diferente
< menor que
> maior que
<= menor ou igual que
>= maior ou igual que

Exemplo 110. Se x = 2, ento x maior ou igual a 1 e menor que


3?

Soluo. No Scilab, temos:


-->x=2;

-->(x >= 1) & (x < 3)


ans =

T

A.3 Matrizes
No Scilab, matriz o tipo bsico de dados, a qual definida por seu
nmero de linhas, colunas e tipo de dado (real, inteiro, lgico, etc.).
Uma matriz A = [ai,j ]m,n
i,j=1 no Scilab definida usando-se a seguinte
sintaxe:

A = [ a11 , a12 , ... , a1n ; ...; am1 , am2 , ... , amn ]

Exemplo 111. Defina a matriz:



1 2 3
A=

4 5 6

Soluo. No Scilab, digitamos:


-->A = [1 , 2 , 3 ; 4 , 5 , 6]
A =
1. 2. 3.
4. 5. 6.

A seguinte lista contm uma srie de funes que geram matrizes
particulares:

eye matrix identidade


linspace vetor de elementos linearmente espaados
ones matriz cheia de uns
zeros matriz nula
A.3.1 O operador :
O operador : cria um vetor linha de elementos. A sintaxe:
v = i:s:j
cria um vetor linha:
v = [i, i + s, i + 2s, . . . , i + ns]
onde n o maior inteiro tal que i + ns < j.
Exemplo 112. Veja as seguintes linhas de comando:
-->v = 10:-2:3
v =

10. 8. 6. 4.

-->u = 2:6
u =
2. 3. 4. 5. 6.
A.3.2 Obtendo dados de uma matriz
A funo size retorna o tamanho de uma matriz, por exemplo:
-->A = ones(3,2)
A =

1. 1.
1. 1.
1. 1.

-->[nl, nc] = size(A)


nc =

2.
nl =

3.
informando que a matriz A tem trs linhas e duas colunas.
Existem vrios mtodos para se acessar os elementos de uma matriz
dada A:

a matriz inteira acessa-se com a sintaxe:

o elemento da i-sima linha e j-sima coluna acessa-se usando


a sintaxe:

A(i,j)

o bloco formado pelas linhas i1 , i2 e pelas colunas j1 , j2 obtm-


se usando a sintaxe:

A(i1:i2, j1:j2)

Exemplo 113. Veja as seguintes linhas de comando:


-->A = rand(3,4) //gera uma matriz randmica
A =

0.2113249 0.3303271 0.8497452 0.0683740


0.7560439 0.6653811 0.6857310 0.5608486
0.0002211 0.6283918 0.8782165 0.6623569

-->A //mostra toda a matriz A


ans =

0.2113249 0.3303271 0.8497452 0.0683740


0.7560439 0.6653811 0.6857310 0.5608486
0.0002211 0.6283918 0.8782165 0.6623569

-->A(2,3) //acessa o elemento a23


ans =

0.6857310
-->A(2:3,2:4) //acessa um bloco de A
ans =

0.6653811 0.6857310 0.5608486


0.6283918 0.8782165 0.6623569

Definida uma matriz A no Scilab, as seguintes sintaxes so bastante


teis:

A(:,:) toda a matriz


A(i:j,k) os elementos das linhas i at j (inclusive) da k-
A(i,j:k) os elementos da i-sina linha das colunas j at k
A(i,:) a i-sima linha da matriz
A(:,j) a j-sima coluna da matriz
A(i,$) o elemento da i-sima linha e da ltima coluna
A($,j) o elemento da ltima linha e da j-sima coluna

Exemplo 114. Veja as seguintes linhas de comando:


-->B = rand(4,4)
B =

0.2113249 0.6653811 0.8782165 0.7263507


0.7560439 0.6283918 0.0683740 0.1985144
0.0002211 0.8497452 0.5608486 0.5442573
0.3303271 0.6857310 0.6623569 0.2320748

-->aux = B(:,2); B(:,2) = B(:,3); B(:,3) = aux


B =

0.2113249 0.8782165 0.6653811 0.7263507


0.7560439 0.0683740 0.6283918 0.1985144
0.0002211 0.5608486 0.8497452 0.5442573
0.3303271 0.6623569 0.6857310 0.2320748
A.3.3 Operaes matriciais e elemento-a-elemento
As operaes matriciais elementares seguem a mesma sintaxe que
as operaes elementares de nmeros. Agora, no Scilab, tambm
podemos fazer operaes elemento-a-elemento colocando um ponto
. antes da operao desejada.
Aqui, temos as sintaxes anlogas entre operaes matriciais e ope-
raes elemento-a-elemento:
+ adio .+ adio elemento-a-elemento
- subtrao .- subtrao elemento-a-elemento
* multiplicao .* multiplicao elemento-a-element
./ diviso elemento-a-elemento
^ potenciao .^ potenciao elemento-a-elemento
' transposta conjugada .' transposta (no conjugada)
Exemplo 115. Veja as seguintes linhas de comando:
-->A = ones (2 ,2)
A =
1. 1.
1. 1.

-->B = 2 * ones (2 ,2)


B =

2. 2.
2. 2.

-->A * B
ans =

4. 4.
4. 4.

-->A .* B
ans =
2. 2.
2. 2.
A.4 Estruturas de ramificao e repeti-
o
O Scilab contm estruturas de repetio e ramificao padres de
linguagens estruturadas.
A.4.1 A instruo de ramificao if
A instruo if permite executar um pedao do cdigo somente se
uma dada condio for satisfeita.

Exemplo 116. Veja o seguinte cdigo Scilab:

i = 2
if ( i == 1 ) then
disp ( " Hello ! " )
elseif ( i == 2 ) then
disp ( " Goodbye ! " )
elseif ( i == 3 ) then
disp ( " Tchau ! " )
else
disp ( " Au Revoir ! " )
end

Qual a sada apresentada no console do Scilab? Porqu?


A.4.2 A instruo de repetio for
A instruo for permite que um pedao de cdigo seja executado
repetidamente.

Exemplo 117. Veja o seguinte cdigo:

for i = 1:5
disp(i)
end

O que mostrado no console do Scilab?

Exemplo 118. Veja o seguinte cdigo:

for j = 1:2:8
disp(j)
end

O que mostrado no console do Scilab?


Exemplo 119. Veja o seguinte cdigo:

for k = 10:-3:1
disp(k)
end

O que mostrado no console do Scilab?

Exemplo 120. Veja o seguinte cdigo:

for i = 1:3
for j = 1:3
disp([i,j])
end
end

O que mostrado no console do Scilab?


A.4.3 A instruo de repetio while
A instruo while permite que um pedao de cdigo seja executado
repetidamente at que uma dada condio seja satisfeita.

Exemplo 121. Veja o seguinte cdigo Scilab:

s = 0
i = 1
while ( i <= 10 )
s = s + i
i = i + 1
end

Qual o valor de s ao final da execuo? Porqu?


A.5 Funes
Alm das muitas funes j pr-definidas no Scilab, o usurio po-
demos definir nossas prprias funes. Para tanto, existem duas
instrues no Scilab:
deff
function
A instruo deff apropriada para definirmos funes com poucas
computaes. Quando a funo exige um grande quantidade de c-
digo para ser definida, a melhor opo usar a instruo function.
Veja os seguintes exemplos:
Exemplo 122. O seguinte cdigo:
-->deff('y = f(x)', 'y = x + sin(x)')
define, no Scilab, a funo f (x) = x + sen x.
Observe que f () = . Confirme isso computando:
-->f(%pi)

no Scilab.
Alternativamente, definimos a mesma funo com o cdigo:

function [y] = f(x)


y = x + sin(x)
endfunction

Verifique!

Exemplo 123. O seguinte cdigo Scilab:

function [z] = h(x,y)


if (x < y) then
z = y - x
else
z = x - y
end
endfunction
define a funo:


y x ,x < y
h(x,y) =
x y ,x y

Exemplo 124. O seguinte cdigo:


function [y] = J(x)
y(1,1) = 2*x(1)
y(1,2) = 2*x(2)

y(2,1) = -x(2)*sin(x(1)*x(2))
y(2,2) = -x(1)*sin(x(1)*x(2))
endfunction
(f1 ,f2 )
define a matriz jacobiana J(x1 ,x2 ) := (x1 ,x2 )
da funo:

f (x1 ,x2 ) = (x21 + x22 , cos(x1 x2 )).


A.6 Grficos
Para criar um esboo do grfico de uma funo de uma varivel
real y = f (x), podemos usar a funo plot. Esta funo faz uma
representao grfica de pontos (xi , yi ) fornecidos. O Scilab oferece
uma srie de opes para esta funo de forma que o usurio pode
ajustar vrias questes de visualizao. Consulte sobre a funo
plot no manual do Scilab.

Exemplo 125. Veja as seguintes linhas de cdigo:

-->deff('y = f(x)','y = x .^ 3 + 1')


-->x = linspace(-2, 2, 100);
-->plot(x, f(x)); xgrid
Resposta dos Exerccios

Recomendamos ao leitor o uso criterioso das respostas aqui apre-


sentadas. Devido a ainda muito constante atualizao do livro, as
respostas podem conter imprecises e erros.
E 2.1.1. a) 4; b) 9; c) b2 ; d) 7; e) 170; f) 7,125; g) 3,28

E 2.1.5. (101,1)2

E 2.1.6. (11,1C)16
E 2.1.7. 50; 18

E 2.1.8. 10,5; (1010,1)2

E 2.3.2. a) 1,7889; b) 1788,9; c) 0,0017889; d) 0,0045966; e) 2,1755 1010 ; f) 2,1755 1010

E 2.3.6. a) abs = 3,46 107 , rel = 1,10 107 ; b) abs = 1,43 104 , rel = 1,00 103

E 2.6.1. 2%

E 2.6.2. 3,2% pela aproximao ou 3,4% pela segundo mtodo (0,96758 I 1,0342).

E 2.6.4. a) 0,0294; b) 2.44e 3; c) 2.50e 4; d) 1.09 107 ; e) 1012 ; f) 1012 ; g) 1012

E 2.7.1. Quando pequeno, e1/mu um nmero grande. A primeira expresso produz um overflow

(nmero maior que o mximo representvel) quando pequeno. A segunda expresso, no entanto, reproduz

o limite 1 quando 0+.

2
E 2.7.2. a) 1
2
+ x4! + O(x4 ); b) x/2 + O(x2 ); c) 5 104 x + O(x2 ); d) 4
2
y + O(y 2 ) = 4
2
x + O(x2 )
E 2.7.5. 4,12451228 1016 J; 0,002%; 0,26654956 1014 J; 0,002%; 4,98497440 1013 J; 0,057%;

1,74927914 1012 J; 0,522%.

E 2.7.6. Em ambos casos, temos a seguinte estrutura:

    
S11 S12 [A] v1
=
S21 S22 [B] v2

De forma que

   1     
[A] S11 S12 v1 1 S22 S12 v1
= =
[B] S21 S22 v2 S11 S22 S12 S21 S21 S11 v2

Portanto

S22 v1 S12 v2
[A] =
S11 S22 S12 S21
S21 v1 + S11 v2
[B] =
S11 S22 S12 S21

Usando derivao logartmica, temos


1 [A] S22
=
[A] S11 S11 S22 S12 S21
1 [A] v2 S21 [A] S22
= + =
[A] S12 S22 v1 S12 v2 S11 S22 S12 S21 [B] S11 S22 S12 S21
1 [A] S12
=
[A] S21 S11 S22 S12 S21
1 [A] v1 S11 [A] S12
= =
[A] S22 S22 v1 S12 v2 S11 S22 S12 S21 [B] S11 S22 S12 S21

1 [B] v2 S22 [B] S21


= =
[B] S11 S21 v1 + S11 v2 S11 S22 S12 S21 [A] S11 S22 S12 S21
1 [B] S21
=
[B] S12 S11 S22 S12 S21
1 [B] v1 S21 [B] S11
= + =
[B] S21 S21 v1 + S11 v2 S11 S22 S12 S21 [A] S11 S22 S12 S21
1 [B] S11
=
[B] S22 S11 S22 S12 S21

E o erro associado s medidas pode ser aproximado por



1
[A] =
1 [A] + 1 [A] + 1 [A] + 1 [A]
[A]
[A] S11 S11 [A] S12 S12 [A] S21 S21 [A] S22 S22
h i
1 [A] [A]
= S22 S11 + S22 S12 + S12 S21 + S12 S22
|det S| [B] [B]
Analogamente, temos:

h i
1 1 [B] [B]
[B] = S21 S11 + S21 S11 + S11 S21 + S11 S22
[B] |det S| [A] [A]

onde no se indicou |Sij | nem |[.]| pois so todos positivos.


Fazemos agora a aplicao numrica:
Caso do par 1-2:

270 30
det S = = 1200
140 20

1 1
[A] = [20 270 2% + 20 30 2% + 30 140 2% + 30 20 2%]
[A] 1200
216
= = 0.18 = 18%
1200
1 1
[B] = [140 270 2% + 140 30 2% + 270 140 2% + 270 20 2%]
[B] 1200
426
= = 0.355 = 35.5%
1200

Caso do par 1-3:



270 30
det S = = 53550
15 200
1 1
[A] = [200 270 2% + 200 30 2% + 30 15 10% + 30 200 10%]
[A] 53550
1804,6
= 0.0337 = 3.37%
52550
1 1
[B] = [15 270 2% + 15 30 2% + 270 15 10% + 270 200 10%]
[B] 53550
5895
= 0.11 = 11%
53550

Concluso, apesar de o sensor 3 apresentar uma incerteza cinco vezes maior na sensibilidade, a escolha do

sensor 3 para fazer par ao sensor 1 parece mais adequada.

E 3.2.1. 1,390054; 1,8913954; 2,4895673; 3,1641544; 3,8965468

E 3.2.2. A primeira raiz se encontra no intervalo (0,4, 0,5). A segunda raiz no intervalo (1,7, 1,8). A

terceira raiz se encontra no intervalo (2,5, 2,6).

E 3.2.4. k = lP
2
cos() com (0, /2); 1,030.

E 3.2.5. k 0,161228

E 3.2.6. 19; 23; 26; 0,567143; 1,745528; 3,385630


E 3.2.8. a) 0,623; b) 0,559; c) 0,500; d) 0,300; e) 0,3; f) 30; g) 30

E 3.3.1. 0,7391

E 3.3.7. x > a com a 0,4193648.

E 3.3.10. 0.0431266
E 3.4.1.

a) Primeiramente, deve-se observar que a funo tg (x) no est definida quando x um mltiplo
mpar de
2
, pelo que devemos cuidado nas singularidades. Traamos o grfico da funo f (x) =
tg (x) 2x2 no Scilab usando os seguintes comandos:

-->deff('y=f(x)','y=tan(x)-2*x^2')
-->plot([0:.01:1.3],f)

Observamos facilmente uma raiz no intervalo (0,5, 0,6) e outra no intervalo (1,2, 1,3). Como a
funo f (x) contnua fora dos pontos de singularidade da tangente, fcil verificar que existe
pelo menos uma soluo nos intervalos dados pelo teorema do valor intermedirio:

f (0,5) 0,046302 > 0


f (0,6) 0,035863 < 0
f (1,2) 0,30784e 1 < 0
f (1,3) 0,22210e 1 > 0
Para provar a unicidade da soluo em cada intervalo, precisamos mostra que a funo montona,
ou seja, a derivada no muda de sinal em cada intervalo:

0 2 1 1
f (x) = sec (x) 4x = 4x 4 0,5 < 0, x [0,5, 0,6]
cos2 (x) cos2 (0,6)
0 2 1 1
f (x) = sec (x) 4x = 4x 4 1,3 > 0, x [1,2, 1,3]
cos2 (x) cos2 (1,2)

b) J isolamos as razes em intervalos de comprimento 101 e a preciso requerida exige que as


isolemos em intervalos de comprimento 2 108 . Como cada passo da bisseo, confina a raiz
em um intervalo com comprimento igual metade do comprimento do intervalo anterior, temos a
seguinte condio para o nmero de passos Np :

101 8
2 10
2N
p

isso equivalente a

101 107 7
Np log2 = log2 = 7 log2 10 1 = 1 22.22
2 108 2 log1 02

Como Np inteiro, o menor Np que satisfaz a condio 23.


As razes obtidas so 0.55970415 e 1.2703426.

c) Para recalcular as razes pelo mtodo de Newton, basta executar a interao

(n+1) (n) f (x(n) )


x =x
f 0 (x(n)
Em relao observao, o erro se deveu falta de cuidado em compreender o problema antes de tentar

resolv-lo, em especial, falta de observar que a funo descontnua em mltiplos mpares de


2
. Nestes

pontos, a funo f (x) troca de sinal, mas no passa por zero.

E 3.4.2. 0,65291864

E 3.4.3. 0.0198679; 0.533890; 0.735412; 1.13237; 1.38851

E 3.4.5. - 99.99970, - 0.3376513; -1.314006

E 3.4.8. x0 > 1.

z1 0.3252768, z2 1.5153738, z3 2.497846, z4 3.5002901,


E 3.5.5.
2j+1
zj j 1/2 (1)j e , j > 4

E 3.5.6. 150W, 133W, 87W, 55W, 6.5W

E 3.5.7. a) 42s e 8min2s, b) 14min56s.


118940992
E 3.5.8.

7.7cm
E 3.5.9.

E 3.5.10. 4.32cm

E 3.5.11. (0.652919,0.426303)

E 3.5.12. 7.19% ao ms

E 3.5.13. 4.54% ao ms.

E 3.5.14. 500K, 700K em t = 3 ln(2), 26min, 4h27min.

E 3.5.15. (1.1101388, .7675919), (1.5602111,0.4342585)

E 3.5.16. 1.5318075

E 3.5.17. Aproximadamente 2500 reais por hora.


E 3.5.18. a) 332.74K b), 359.33K

E 3.5.19. 1.72285751 ,4.76770758, 7.88704085

E 4.1.1. Escrevemos o sistema na forma matricial e resolvemos:

" # " # " #


1 1 1 0 1 1 1 0 1 1 1 0
1 0 10 48 0 1 9 48 0 10 1 25
0 10 1 25 0 10 1 25 0 1 9 48
" # " #
1 1 1 0 1 1 1 0
0 10 1 25 0 10 1 25
0 0 9.1 45.5 0 0 1 5
" # " #
1 1 0 5 1 1 0 5
0 10 0 30 0 1 0 3
0 0 1 5 0 0 1 5
" #
1 0 0 2
0 1 0 3
0 0 1 5

Portanto x = 2, y = 3, z = 5

E 4.1.5.
a) x = [4 3 2]T

b) O sistema equivalente a

x1 + x2 + (1 + )x3 = 2
x1 + (1 + )x2 + x3 = 3
(1 + )x1 + x2 + x3 = 4

Somando as trs equaes temos

9
(1 + 3)(x1 + x2 + x3 ) = 9 = x1 + x2 + x3 =
1 + 3

Subtramos (x1 + x2 + x3 ) da cada equao do sistema original e temos:

9
x3 = 2 1+3

9
x2 = 3 1+3

9
x1 = 4 1+3

Assim temos:
T 9 T
x = [4 3 2] [1 1 1]
1 + 3
E 4.1.6. x = [1.6890368 1.6890368 1.5823257 1.2667776 0.6333888]T

E 4.1.7.
" #
1 1/2 1/2
1/3 1/2 1/6
1/3 0 1/3

E 4.2.1. = 7130
41
51.95122, para = 51: k1 = k = 350.4, k2 = 262.1. Para = 52: k1 = k =

6888, k2 = 5163.

E 4.2.2. k1 (A) = 36, k2 (A) = 18,26, K (A) = 20,8.


E 4.2.3. k1 = k = 6888, k2 = 26656567 e k1 = 180, k2 = 128,40972
e k = 210
18
E 4.2.4.

+ 3. Quando 0+, a matriz converge para uma matriz
singular e o nmero de condicionamento diverge para +.

E 4.2.5.As solues so [0.0000990 0.0000098]T e [0.0098029 0.0990294


A grande variao na soluo em funo de pequena variao nos da-
dos devido ao mau condicionamento da matriz (k1 1186274.3).
Exemplo de implementao:

A=[1e5 -1e4+1e-2; -1e4+1e-2 1000.1]


b1=[-10 1]'
b2=[-9.999 1.01]'
A\b1
A\b2

0,695; 0,292; 0,188; 0,0237; 0,0123; 0,00967


E 4.2.6.

Exemplo de implementao:

J=[1:1:10]
x=sin(J/10)
y=J/10
z=y-y.^3/6
e=abs(x-y)./x
f=abs(x-z)./x
norm(e,1)
norm(e,2)
norm(e,'inf')
norm(f,1)
norm(f,2)
norm(f,'inf')

E 4.4.1.

epsilon=1e-3;

A=[1 -1 0 0 0; -1 2 -1 0 0; 0 -1 (2+epsilon) -1 0; 0 0 -1

v=[1 1 1 1 1]'
xgauss=gauss([A v])

function x=q_Jacobi()
x0=[0 0 0 0 0]'

i=0
controle=0
while controle<3 & i<1000
i=i+1

x(1)=1+x0(2)
x(2)=(1+x0(3)+x0(1))/2
x(3)=(1+x0(2)+x0(4))/(2+epsilon)
x(4)=(1+x0(3)+x0(5))/2
x(5)=x0(4)-1

delta=norm(x-x0,2)
if delta<1e-6 then
controle=controle+1
else
controle=0
end
mprintf('i=%d, x1=%f, x5=%f, tol=%.12f\n',i,x(1),x(5),
x0=x;
end

endfunction

function x=q_Gauss_Seidel()
x0=[0 0 0 0 0]'

i=0
controle=0
while controle<3 & i<15000
i=i+1

x(1)=1+x0(2)
x(2)=(1+x0(3)+x(1))/2
x(3)=(1+x(2)+x0(4))/(2+epsilon)
x(4)=(1+x(3)+x0(5))/2
x(5)=x(4)-1

delta=norm(x-x0,2)
if delta<1e-2 then
controle=controle+1
else
controle=0
end
mprintf('i=%d, x1=%f, x5=%f, tol=%.12f\n',i,x(1),x(5),
x0=x;
end

endfunction

0.324295, 0.324295, 0.317115, 0.305943, 0.291539, 0.274169,


E 4.4.4.

0.253971, 0.230846, 0.203551, 0.165301, 0.082650


Exemplos de rotinas:
function x=jacobi()
x0=zeros(11,1)
k=0;
controle=0;
while controle<3 & k<1000
k=k+1
x(1)=x0(2)
for j=2:10
x(j)=(cos(j/10)+x0(j-1)+x0(j+1))/5
end
x(11)=x0(10)/2

delta=norm(x-x0) //norma 2
if delta<1e-5 then
controle=controle+1
else
controle=0;
end
mprintf('k=%d, x=[%f,%f,%f], tol=%.12f\n',k,x(1),x
x0=x;
end

endfunction

function x=gs()
x0=zeros(11,1)
k=0;
controle=0;
while controle<3 & k<1000
k=k+1
x(1)=x0(2)
for j=2:10
x(j)=(cos(j/10)+x(j-1)+x0(j+1))/5
end
x(11)=x0(10)/2

delta=norm(x-x0) //norma 2
if delta<1e-5 then
controle=controle+1
else
controle=0;
end
mprintf('k=%d, x=[%f,%f,%f], tol=%.12f\n',k,x(1),x
x0=x;
end
endfunction

E 4.4.6. Permute as linhas 1 e 2.

= 86.1785 associado ao autovetor dado por v1 = [0.65968 0.668


E 4.5.1.

E 4.5.3. 158,726
a)V5 = 98.44V b) V5 = 103.4V
E 4.5.5.

O problema com cinco incgnitas pode ser escrito na forma matricial


conforme a seguir:

1 0 0 0

 
1 1 1 1 1

R1 R1
+ R2
+ R5 R2
0

 
1 1 1 1 1
0 + +

R2 R2 R3 R6 R3

 
1 1 1 1
0 0 + +

R3 R3 R4 R7


1
0 0 0 R4

Este problema pode ser implementado no Scilab (para o item a)


com o seguinte cdigo:
R1=2, R2=2, R3=2, R4=2, R5=100, R6=100, R7=100, R8=50, V=1

A=[1 0 0 0
1/R1 -(1/R1+1/R2+1/R5) 1/R2 0
0 1/R2 -(1/R2+1/R3+1/R6) 1/R3
0 0 1/R3 -(1/R3+1/R4+
0 0 0 1/R4
v=[V; 0; 0; 0; 0]
y=A\v

O problema com quatro incgnitas pode ser escrito na forma ma-


tricial conforme a seguir:

 
1 1 1 1
R1
+ R2
+ R5 R2
0 0

 
1 1 1 1 1
+ + 0

R2 R2 R3 R6 R3

 
1 1 1 1 1
0 + +

R3 R3 R4 R7 R4


1 1
0 0 R4
R4
+

Cuja implementao pode ser feita conforme

A=[ -(1/R1+1/R2+1/R5) 1/R2 0


1/R2 -(1/R2+1/R3+1/R6) 1/R3
0 1/R3 -(1/R3+1/R4+1/R
0 0 1/R4
v=[-V/R1; 0; 0; 0]
y=A\v

Dica: P (1) = 3, P (1) = 1 e P (2) = 9 produzem trs


E 4.5.6.

equaes lineares para os coeficientes a, b e c. Resp: a) P (x) =


3x2 + x 5, b) A 2.49 e B 1.29 c)A1 1.2872058, A2
4.3033034, B1 2.051533 e B2 0.9046921.
E 6.2.1. 5x3 + 2x 3

R1 f (0)+f (1)
E 6.4.1. P (x)dx = 2
1
, 12 maxx[0,1] |f 00 (x)|
0

E 6.6.1. y = 0,0407898x2 + 2,6613293x + 1,9364598

xi yi ax2
i + bxi + c ax2
i + bxi + c yi
0,01 1,99 1,963069 -0,0269310
1,02 4,55 4,6085779 0,0585779
2,04 7,2 7,1958206 -0,0041794
2,95 9,51 9,4324077 -0,0775923
3,55 10,82 10,870125 0,0501249
E 6.6.2. a = 25,638625, b = 9,8591874, c = 4,9751219 e a = 31,475524, b = 65,691531, c = 272,84382,

d = 208,23621.

E 7.1.3.

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


a) f 0 (0) = 2h
+ O(h2 )

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


b) f 0 (0) = 2h
+ O(h2 )

 h h2 h
 h

c) f 0 (0) = h +h
1 l h2 f (h1 ) + h1
h1 f (0) + h1 f (h2 )
1 2 1 2 2

f (0)2f (h)+f (2h)


d) f 00 (0) = + O(h)
h2

f (0)2f (h)+f (2h)


e) f 00 (0) = + O(h)
h2

E 7.1.4.
Caso a b c d
vi = 1 1.72 1.56 1.64 1.86
vi = 4.5 2.46 1.90 2.18 1.14
E 7.2.1.
1 0 0 0 0
u1
5

1 2 1 0 0 u2 2
0 1 2 1 0 u3 = 2

0 0 1 2 1 u4 2
0 0 0 0 1 u5 10

Soluo: [5, 9.25, 11.5, 11.75, 10]


1 0 0 0 0 0 0 0 0
u1
5

1 2 1 0 0 0 0 0 0 u2 0.5
0 1 2 1 0 0 0 0 0 u3 0.5

0 0 1 2 1 0 0 0 0 u4 0.5
=
0 0 0 1 2 1 0 0 0 u5 0.5
0 0 0 0 1 2 1 0 0 u6 0.5


0 0 0 0 0 1 2 1 0 u7 0.5

0 0 0 0 0 0 1 2 1 u8 0.5
0 0 0 0 0 0 0 0 1 u9 10

Soluo: [5, 7.375, 9.25, 10.625, 11.5, 11.875, 11.75, 1.125, 10]

E 7.2.2. 120. 133.56 146.22 157.83 168.22 177.21 184.65 190.38 194.28 196.26 196.26 194.26 190.28 184.38

176.65 167.21 156.22 143.83 130.22 115.56 100.

E 7.2.3. 391.13 391.13 390.24 388.29 385.12 380.56 374.44 366.61 356.95 345.38 331.82 316.27 298.73 279.27

257.99 234.99 210.45 184.5 157.34 129.11 100.


E 7.2.4. 0., 6.57, 12.14, 16.73, 20.4, 23.24, 25.38, 26.93 , 28, 28.7, 29.06, 29.15, 28.95, 28.46, 27.62 , 26.36,

24.59, 22.18, 19.02, 14.98, 10.

E 7.2.5. u(0)=31.62, u(1)=31.50, u(1.9)=18.17

E 7.2.6. u(1)=1.900362, u(2.5)=1.943681, u(4)=1.456517

E 7.3.1.

exato Ponto mdio Trapzio Simp


1+e1 1+4e1/2 +e
R1 x 1 1/2
e dx 1e 0.6321206 e 0.6065307 2
0.6839397 6
0
R1
x2 dx 1/3 0.3333333 0.25 0.5 0.333
0
R1
x3 dx 1/4 = 0.25 0.125 0.5 0.2
0
R1 2

xex dx 1
2
1e 1
0.3160603 0.3894004 0.1839397 0.320
0
R1 1 dx tan1 (1) 0.7853982 0.8 0.75 0.783
0 x2 +1
R1 x dx 1 ln(2) 0.3465736 0.4 0.25 0.3
0 x2 +1 2
R1 1 dx ln(2) 0.6931472 0.6666667 0.75 0.694
0 x+1
E 7.3.2. Resp: 8, 10 e 8.666667.

E 7.3.3.
1 2
ISimpson = IT rap + IP M
3 3

E 7.3.4.

n Ponto mdio Trapzios Simpson


3 0.1056606 0.7503919 0.5005225
5 0.1726140 0.3964724 0.2784992
7 0.1973663 0.3062023 0.2393551
9 0.2084204 0.2721145 0.2306618

E 7.3.5.

1 12 2 2 7 3 3 4
a)I(h) = 4.41041 10 8.49372 10 h 1.22104 10 h 1.22376 10 h + 8.14294 10 h

1 11 2 2 7 3 6 4
b)I(h) = 7.85398 10 1.46294 10 h 4.16667 10 h 2.16110 10 h + 4.65117 10 h
3 10 7 2 5 3 4 4
c)I(h) = 1.58730 10 9.68958 10 h + 2.03315 10 h 1.38695 10 h + 2.97262 10 h
1 12 2 2 8 3 4 4
d)I(h) = 4.61917 10 + 3.83229 10 h + 2.52721 10 h + 5.48935 10 h + 5.25326 10 h
E 7.3.6.

1.5707963 2.0943951
1.8961189 2.0045598 1.9985707
1.9742316 2.0002692 1.9999831 2.0000055

E 7.3.7. 0.7468337,2.4606311, 1.6595275.

E 7.3.9. R(6,6) = 10.772065, R(7,7) = 5.2677002, R(8,8) = 6.1884951, R(9,9) = 6.0554327, R(10,10) =

6.0574643. O valor desta integral com oito dgitos corretos aproximado por 6.0574613.

E 7.3.10. w1 = 1/6, w2 = 2/3, w3 = 1/6. O esquema construdo o de Simpson e a ordem de exatido

3.

E 7.3.11. 3

E 7.3.12. 5

R1 3 f (1/3) 2f (1/2) + 3 f (2/3) com ordem 3.


E 7.3.13. f (x)dx 2 2
0
E 7.3.15. 5, 4, 3

R1  
E 7.3.16. f (x)dx = f 33 +f 3
3
1

E 7.3.17. w1 = w3 = 1 e w2 = 0 com ordem 3.

E 7.3.21. -0.2310491, -0.2452073, - 0.2478649.

E 7.3.23. a)-0.2472261, -0.2416451, -0.2404596, -0.2400968, -0.2399563, -0.2398928. b)-0.2393727, -

0.2397994, -0.2398104, -0.2398115, -0.2398117, -0.2398117.

E 7.3.24.

n b c d e f
2 2.205508 3.5733599 3.6191866 3.6185185 3.618146
4 2.5973554 3.6107456 3.6181465 3.6180970 3.6180970
6 2.7732372 3.6153069 3.6181044 3.6180970 3.6180970
8 2.880694 3.6166953 3.6180989 3.6180970 3.6180970

Soluo do item e: Como



x2n
X
n
cos(x) = 1 + (1)
(2n)!
n=1
temos

1 cos(x) x2n1/2
X
n
= (1) , x0
x (2n)!
n=1

Logo, podemos integrar

Z 1 Z 1
cos(x) 1 x2n1/2
X
n
I = 4+2 p dx = 4 2 (1) dx
(2n)!
0 |x| 0
n=1

1
X
n
= 42 (1)
(2n)!(2n + 1/2)
n=1

Soluo do item f)

Z 1
x3/2 x7/2
  
1/2 1 1 977
2 x + dx = 2 2 + =
2 24 5 54 270
0

Z 1 Z 1 1+u
 1+u

cos(x) P4 (x) cos 2
P4 2
2 dx = 2 du
x 1+u
0 1
E 7.3.28. 4.1138

E 7.3.29. a)19.2, 22.1, 23.3 b)513.67K

E 8.1.1.0.4496 com h = .1 e 0.4660 com h = .01. A soluo exata vale


2
1+2e1 +e2 1+e1

y(1) = 4
= 2
0.4678

y(2) 0.430202 e z(2) = 0.617294 com h = 0.2, y(2)


E 8.1.2.

0.435506 e z(2) = 0.645776 com h = 0.02, y(2) 0.435805 e z(2) =


0.648638 com h = 0.002 e y(2) 0.435832 e z(2) = 0.648925 com
h = 0.0002.
y(2) 1.161793 com h = 0.1, y(2) 1.139573 com h = 0.01,
E 8.1.3.

y(2) 1.137448 com h = 0.001, y(2) 1.137237 com h = 0.0001,


y(2) 1.137216 com h = 0.00001

E 8.2.1. y(1) 1.317078 quando h = 0,1 e y(1) 1.317045.


E 8.2.2.

t Exato Euler Euler Melhorado Erro Euler Erro Euler Melhorado


0.0 1. 1. 1. 0. 0.
0.1 0.826213 0.8 0.828 0.026213 0.001787
0.2 0.693094 0.656 0.695597 0.037094 0.002502
0.3 0.588333 0.547366 0.591057 0.040967 0.002724
0.4 0.504121 0.462669 0.506835 0.041453 0.002714
0.5 0.435267 0.394996 0.437861 0.040271 0.002594
0.6 0.378181 0.339894 0.380609 0.038287 0.002428
0.7 0.330305 0.294352 0.332551 0.035953 0.002246
0.8 0.289764 0.256252 0.291828 0.033512 0.002064
0.9 0.255154 0.224061 0.257043 0.031093 0.001889
1.0 0.225400 0.196634 0.227126 0.028766 0.001726

No Scilab, esta tabela pode ser produzida com o cdigo:

deff('dy=f(y,t)','dy=-y-y^2')
sol_Euler=Euler(f,0,1,10,1)'
sol_Euler_mod=Euler_mod(f,0,1,10,1)'
deff('y=y_exata(t)','y=1/(2*exp(t)-1)')
t=[0:.1:1]'
sol_exata=feval(t,y_exata)
tabela=[t sol_exata sol_Euler sol_Euler_mod abs(sol_exata-sol_Euler) abs(sol_exata-sol_Euler_mod)]
1 ln 9
 1 ln (6)
E 8.6.2. Os valores exatos para os itens e e f so: 10 4
e 10

q   p 
g
E 8.6.3. O valor exato
1 e200 em t = 1
g
tanh1 1 e200

E 8.6.9.

0.5 1.0 1.5 2.0 2.5


Analtico 0.3032653 0.3678794 0.3346952 0.2706706 0.2052125
Euler 0.3315955 0.3969266 0.3563684 0.2844209 0.2128243
Euler modificado 0.3025634 0.3671929 0.3342207 0.2704083 0.2051058
Runge-Kutta Clssico 0.3032649 0.3678790 0.3346949 0.2706703 0.2052124
Adams-Bashforth ordem 4 0.3032421 0.3678319 0.3346486 0.2706329 0.2051848

0.5 1.0 1.5 2.0 2.5


Euler 2.8D-02 2.9D-02 2.2D-02 1.4D-02 7.6D-03
Euler modificado 7.0D-04 6.9D-04 4.7D-04 2.6D-04 1.1D-04
Runge-Kutta Clssico 4.6D-07 4.7D-07 3.5D-07 2.2D-07 1.2D-07
Adams-Bashforth ordem 4 2.3D-05 4.8D-05 4.7D-05 3.8D-05 2.8D-05

0.1 0.05 0.01 0.005 0.001


Euler 2.9D-02 5.6D-03 2.8D-03 5.5D-04 2.8D-04
Euler modificado 6.9D-04 2.5D-05 6.2D-06 2.5D-07 6.1D-08
Runge-Kutta Clssico 4.7D-07 6.9D-10 4.3D-11 6.8D-14 4.4D-15
Adams-Bashforth ordem 4 4.8D-05 9.0D-08 5.7D-09 9.2D-12 5.8D-13
Referncias Bibliogrficas

[1] Cecill and free sofware. http://www.cecill.info. Acessado


em 30 de julho de 2015.

[2] M. Baudin. Introduction to scilab. http://forge.scilab.org/


index.php/p/docintrotoscilab/. Acessado em 30 de julho de
2015.

[3] R.L. Burden and J.D. Faires. Anlise Numrica. Cengage Lear-
ning, 8 edition, 2013.
[4] J. P. Demailly. Analyse Numrique et quations Differentielles.
EDP Sciences, Grenoble, nouvelle dition edition, 2006.

[5] W Gautschi. Numerical analysis: An introduction birkhauser.


Barton, Mass, USA, 1997.

[6] Walter Gautschi and Gabriele Inglese. Lower bounds for the
condition number of vandermonde matrices. Numerische Mathe-
matik, 52(3):241250, 1987/1988.

[7] L.F. Guidi. Notas da disciplina clculo numrico.


http://www.mat.ufrgs.br/~guidi/grad/MAT01169/
calculo_numerico.pdf. Acessado em julho de 2016.

[8] R. Rannacher. Einfhrung in die numerische mathematik (nu-


merik 0). http://numerik.uni-hd.de/~lehre/notes/num0/
numerik0.pdf. Acessado em 10.08.2014.
ndice Remissivo

ajuste derivao numrica, 369


derivao, 393 diferenas divididas de Newton,
ajuste de curvas, 300 278
aproximao
de funes, 270 eliminao gaussiana
por polinmios, 291 com pivoteamento parcial, 187
aritmtica equo diferencial
de mquina, 6 no autnoma, 493
autovalores, 230 equao
logstica, 491
cancelamento catastrfico, 61 equaes
de uma varivel, 101 mtodo composto
erro de Simpson, 439
absoluto, 47 dos trapzios, 436
relativo, 47 mtodo de Romberg, 442
erros, 46 ordem de preciso, 449
absoluto, 140 regra de Simpson, 429
arredondamento, 380 regra do ponto mdio, 418
de arredondamento, 53 regra do trapzio, 423
truncamento, 377 regras compostas, 435
estabilidade, 515 regras de Newton-Cotes, 417
interpolao
frmula de diferenas finitas, 370
cbica segmentada, 338
alta ordem, 385
derivao, 393
central, 391
funo linear segmentada, 333
raiz, 102 polinomial, 273
zero, 102 iterao
do ponto fixo, 121
integrao numrica, 413 iterao do ponto fixo
convergncia, 138 Gauss-Seidel, 221
estabilidade, 138 Jacobi, 217
mtodo de Newton
mtodo para sistemas, 249
da bisseo, 108 mtodo de Newton-Raphson, 155
de Euler, 489 convergncia, 160
de Euler melhorado, 501 mtodo de passo mltiplo
de passo mltiplo Adams-Moulton, 514
Adams-Bashforth, 512 mtodos iterativos
de Runge-Kutta, 508 sistemas lineares, 216
de quarta ordem, 510 convergncia, 225
de separao de variveis, 492 matriz
dos mnimos quadrados, 300 condicionamento, 202
mtodo da potncia, 230 jacobiana, 265
mtodo das fraes parciais, 492 norma, 207
mtodo das secantes, 167 medida
convergncia, 169 de erro, 47
mtodo de de exatido, 47
mudana de base, 7 inteiros
bit de sinal, 24
nmero de condicionamento, 210 complemento de dois, 26
ordem de preciso, 506 sem sinal, 22

polinmios Scilab, 528


de Lagrange, 286 elementos da linguagem, 535
ponto fixo, 130 funes, 557
problema de valor de contorno, funes e constantes, 538
401 grficos, 560
problema de valor inicial, 486 instalao e execuo, 531
matrizes, 541
quadratura numrica
operaes matemticas, 537
Gauss-Legendre, 460
operador :, 543
representao operadores lgicos, 539
de nmeros, 20 ramificao e repetio, 552
nmeros inteiros, 21 sobre, 529
representao de nmeros usando, 532
simulao tolerncia, 140
computacional, 2
numrica, 2 vetor
sistema de equaes norma, 205
no lineares, 241
sistema de numerao, 7
sistema linear, 184
condicionamento, 202
sistema numrico
de ponto fixo, 29
de ponto flutuante, 34
ponto fixo
normalizao, 31
sistemas
de equaes diferenciais, 496
spline, 338
fixado, 353
natural, 344