Professional Documents
Culture Documents
Um Livro Colaborativo
10 de agosto de 2016
Clculo Numrico
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 AtribuioCompartilhaIgual 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.
Clculo Numrico
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 resoluo de problemas,
implementao em computador e interpretao de resultados. Pressupe-se
que o estudante domine conhecimentos 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 realmente 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 a 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 computacional. 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).
Clculo Numrico
Sumrio
Autores
ii
Licena
iii
iv
Prefcio
1 Introduo
2 Aritmtica de mquina
2.1 Sistema de numerao e mudana de base
2.2 Representao de nmeros . . . . . . . . .
2.2.1 Nmeros inteiros . . . . . . . . . .
2.2.2 Sistema de ponto fixo . . . . . . . .
2.2.3 Normalizao . . . . . . . . . . . .
2.2.4 Sistema de ponto flutuante . . . . .
2.2.5 A preciso e o epsilon de mquina .
2.2.6 A distribuio dos nmeros . . . .
2.3 Tipos de Erros . . . . . . . . . . . . . . .
2.3.1 Erros de arredondamento . . . . . .
2.4 Erros nas operaes elementares . . . . . .
2.5 Cancelamento catastrfico . . . . . . . . .
2.6 Propagao de erros . . . . . . . . . . . .
2.7 Mais exemplos . . . . . . . . . . . . . . . .
3 Soluo de equaes de uma varivel
3.1 Condio de existncia de razes reais . . .
3.2 Mtodo da bisseo . . . . . . . . . . . . .
3.2.1 Cdigo Scilab: mtodo da bisseo
3.3 Iterao de Ponto Fixo . . . . . . . . . . .
3.3.1 Exemplo Histrico . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3
3
8
8
11
12
13
16
16
17
20
22
23
25
30
.
.
.
.
.
37
37
39
41
44
44
SUMRIO
3.4
3.5
vii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
47
48
49
51
52
58
59
60
63
64
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
71
72
78
79
80
81
83
83
84
86
87
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
92
95
98
99
99
101
6 Aproximao de funes
6.1 Interpolao polinomial . . . . . . . . . . . . . . . . . . . . .
6.2 Diferenas divididas de Newton . . . . . . . . . . . . . . . .
6.3 Polinmios de Lagrange . . . . . . . . . . . . . . . . . . . .
6.4 Aproximao de funes reais por polinmios interpoladores
6.5 Ajuste de curvas pelo mtodo dos mnimos quadrados . . . .
6.6 O caso linear . . . . . . . . . . . . . . . . . . . . . . . . . .
6.6.1 O mtodo dos mnimos quadrados . . . . . . . . . . .
6.6.2 Ajuste linear de curvas . . . . . . . . . . . . . . . . .
6.7 Aproximando problemas no lineares por problemas lineares
6.8 Interpolao linear segmentada . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
103
104
105
109
110
113
115
115
117
120
125
.
.
.
.
.
viii
Clculo Numrico
6.9
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
139
. 139
. 139
. 141
. 142
. 144
. 146
. 147
. 150
. 154
. 156
. 162
. 165
. 167
. 172
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
184
184
190
190
191
192
192
193
193
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
199
199
199
200
201
202
202
202
203
204
204
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
SUMRIO
ix
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
206
207
207
208
209
209
210
211
Referncias Bibliogrficas
226
ndice Remissivo
227
Captulo 1
Introduo
Clculo numrico uma disciplina que compreende o estudo de mtodos
para a computao eficiente da soluo de problemas matemticos. Aliado ao avano tecnolgico dos computadores, o desenvolvimento de mtodos
numricos tornou a simulao computacional de modelos matemticos uma
prtica cotidiana nas mais diversas reas cientficas e tecnolgicas. As ento chamadas simulaes numricas so constitudas de um arranjo de vrios
esquemas numricos dedicados a resolver problemas especficos como, por
exemplo: resolver equaes algbricas, resolver sistemas lineares, interpolar
e ajustar pontos, calcular derivadas e integrais, resolver 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. Estes podem 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 operaes
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;
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
Clculo Numrico
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.
xex = 10
2 /2
. J o
y 0 + xy = ey ,
y(0) = 2,
no possvel.
Da mesma forma, resolvemos a integral
Z 2
xex dx
ex dx
Captulo 2
Aritmtica de mquina
2.1
Clculo Numrico
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.
-->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:
X i = dn bn + + dn1 bn1 +d1 b1 + d0 b0
Xf =
d1 d2
+ 2 +
b1
b
Clculo Numrico
d2 d3
+ 2 +
b
b
Exerccios
E 2.1.1. Converta para base decimal cada um dos seguintes nmeros:
a) (100)2
c) (100)b
e) (AA)16
b) (100)3
d) (12)5
f) (7,1)8
g) (3,12)5
Clculo Numrico
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).
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
2
tem representao
exata,
logo
2
=
4,
mas
3 no tem representao finita,
2
logo ( 3) 6= 3.
Veja isso no Scilab:
-->2^2 == 4
ans =
T
-->sqrt(3)^2 == 3
ans =
F
2.2.1
Nmeros inteiros
d1 d0
d1 d0
representa o nmero (1)s (dn2 ...d1 d0 )2 . Assim possvel representar nmeros inteiros entre 2n1 e 2n1 , com duas representaes para o zero:
(1000...000)2 e (00000...000)2 .
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
10
Clculo Numrico
d1 d0
11
2.2.2
bin2dec('00000011') )
3
bin2dec('11111110') )
-2
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
12
Clculo Numrico
(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 complemento de dois.
Nesse caso o zero unicamente representado por
00000000000000000000000000000000
2.2.3
Normalizao
13
2.2.4
14
Clculo Numrico
EM IN o menor expoente,
EM AX o maior expoente.
c0 m1 m2
m51 m52
15
16
Clculo Numrico
c = [1111...1111] usado para representar o infinito (se m = 0) e NaN
(se m 6= 0).
Os nmeros subnormais3 tem a forma
x = (1)s (0.m1 m2 m51 m52 )2 21BIAS .
2.2.5
2.2.6
17
Exerccios
E 2.2.1. Explique a diferena entre o sistema de ponto fixo e ponto
flutuante.
2.3
Tipos de Erros
18
Clculo Numrico
x 6= 0.
19
erro absoluto
erro relativo
0,3 103
0,3103
0,3102
= 101 = 10%
= 101 = 10%
0,3
0,3
0,3 101
0,3101
0,3
0,3 102
0,3 102
0,3 101
0,3101
0,3102
= 101 = 10%
Esta definio apresentada em [3]. No existe uma definio nica na literatura para
o conceito de dgitos significativos corretos, embora no precisamente 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|
20
Clculo Numrico
c) x = 9,999 aproxima x = 10 com 4 dgitos significativos corretos, 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
21
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
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
22
Clculo Numrico
c) 0,0017888544
e) 2,1754999 1010
b) 1788,8544
d) 0,004596632
f) 2,1754999 1010
2.4
1
7
e x = 1,43 101
O erro presente nas operaes elementares de adio, subtrao, 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 significativos 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 problemas
aumentam.
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
2.5
23
Cancelamento catastrfico
|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
24
Clculo Numrico
e as razes:
0,300000 103
x1 ,x2 =
0,200000 101
x1 =
e
x2 =
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. No exemplo anterior b2 muito maior que 4ac, ou seja, b
b2 4ac
estar prxima de zero. Uma maneira padro de evitar o cancelamento catastrfico usar procedimentos analticos para eliminar essa diferena. Abaixo
veremos alguns exemplos.
Exemplo 28. Para eliminar o cancelamento catastrfico do exemplo anterior, usamos a seguinte expanso em srie de Taylor em torno da origem
1
1 x = 1 x + O(x2 ).
2
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
25
b b2 4ac
x =
2a
q
b b 1 4ac
b2
=
2a
b b 1 4ac
2b2
2a
um nmero pequeno e por isso a expanso faz sentido. VolObserve que 4ac
b2
tamos no exemplo anterior e calculamos as duas razes com o nova expresso
x1 =
=
=
=
x2
b b + 4ac
b c
2b
= +
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
=
2a
4ac
=
4ab
0,140000 101
c
= 0,466667 104
= =
b
0,300000 103
2.6
Propagao de erros
26
Clculo Numrico
Se f 0 (x) no varia muito rpido nesse intervalo e supondo x pequeno, aproximamos M |f 0 (x)| e temos:
|f (x) f (
x)| |f 0 (x)||x x|,
ou
f |f 0 (x)|x .
De modo geral, quando f depende de vrias variveis, a seguinte estimativa
vale:
f = |f (x1 ,x2 ,...,xn ) f (
x1 , x2 ,...,
xn )|
n
X
f
(x1 , x2 ,...,xn ) xi
xi
i=1
x0 =
xn+1 = 4xn 1,
1
3
.
nN
1
+
3
1
1
+ 1 = + 4
3
3
1
1
= 4x1 1 = 4
+ 4 1 = + 42
3
3
..
.
1
=
+ 4n
3
x1 = 4x0 1 = 4
x2
xn
27
2y
sabendo que
Exemplo 31. Calcule o erro relativo ao medir f (x,y) = x x+1
2 e
x 3 conhecido com 10% de erro e y 2 conhecido com 3% de erro.
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
x x
f
+ y
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
=
= 14%
9+1 4
|f |
e
9
28
Clculo Numrico
2
2
2
2
teorema de Pitgoras, a = b + c , ou seja, c = a b2 . Portanto a rea
bc
b a2 b 2
A=
=
.
2
2
Agora calculamos as derivadas
A
ab
= 2
,
a
2 a b2
b2
A
a2 b 2
=
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
Em termos do erro relativo temos erro na hipotenusa de
no cateto de 0,01
= 0,5% e erro na rea de
2
0,01565247584
2 32 22
2
0,01
3
0,333%, erro
= 0,7%
29
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:
z=
y4 x
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
I=
V
V0
30
Clculo Numrico
2.7
Mais exemplos
(1 + x) 1
=1
x
1+
1
n
n
(2.1)
lim
1
1+
n
n
= e = 2,718281828459...
(2.2)
1
1+
1
1
1
< 1+
2
2
1
< 1+
3
3
<
31
No entanto, quando calculamos essa expresso no Scilab, nos defrontamos com o seguinte resultado:
n
1+
1
n
n
1+
1
n
n
2,0000000000000
102
2,7048138294215
2,2500000000000
104
2,7181459268249
2,3703703703704
106
2,7182804690957
2,4414062500000
108
2,7182817983391
2,4883200000000
1010 2,7182820532348
2,5216263717421
1012 2,7185234960372
2,5464996970407
1014 2,7161100340870
2,5657845139503
1016 1,0000000000000
2,5811747917132
1018 1,0000000000000
10 2,5937424601000
1020 1,0000000000000
1
n
n
em funo de
32
Clculo Numrico
(2.3)
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 resultado 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.3),
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
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
33
(2.4)
(2.5)
n
34
Clculo Numrico
ans
=
7.036874417766400000D+13
Exemplo 36 (Analogia da balana). Observe a seguinte comparao 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 sistema 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 aproximadamente 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 disponveis: 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) aproximadamente 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. Qual dessas
expresses mais adequada quando um nmero pequeno. Teste no
computador para = 0,1, = 0,01 e = 0,001.
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
35
E 2.7.2. Encontre expresses alternativas para calcular o valor das seguintes funes quando x prximo de zero.
a) f (x) =
1cos(x)
x2
1+x1
d) i(x) = 1 + ex 2
b) g(x) =
Dica: Faa y = ex 1
sin(x/2)
x/2
!2
1 cos(x)
x2
x0
Reescreva as expresses:
e2x + 1 ex
e
e2x + x2 ex
de modo que seja possvel calcular seus valores para x = 100 utilizando a
aritmtica de ponto flutuante ("Double") no computador.
E 2.7.6. Na teoria da relatividade restrita, a energia cintica de uma
partcula e sua velocidade se relacionam pela seguinte frmula:
E = mc q
1
1
(v/c)2
1 ,
36
Clculo Numrico
A=
a b
c d
A1 =
ad bc c
b
a
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
38
Clculo Numrico
Exerccios
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
39
1
= 10
x
1
=v
x
possui uma soluo para cada v real e que esta soluo nica.
3.2
Mtodo da bisseo
Suponha que a funo contnua f : [a,b] R tal que f (a) f (b) < 0, ou
seja, f possui uma raiz no intervalo. Suponha tambm que a raiz nica.
Uma primeira aproximao para a raiz pode ser o ponto mdio p = a+b
. Se
2
f (p) f (a) < 0, ento a raiz est a esquerda de p, se no, 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 p(0) =
(0)
a +b(0)
a aproximao inicial. Se f (p(0) ) f (a(0) ) < 0, ento (a(1) ,b(1) ) =
2
(a(0) ,p(0) ), caso contrrio, (a(1) ,b(1) ) = (p(0) ,b(0) ). A nova aproximao para
(1)
(1)
a raiz p(1) = a +b
. Esse procedimento produz uma sequncia p(n) que
2
converge para a raiz.
Exemplo 39. Faa 5 iteraes do mtodo da bisseo para encontrar a raiz
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
40
Clculo Numrico
a(n)
b(n)
p(n)
a(0) = 1
b(0) = 2
p(0) = 1,5
16
2,625
a(1) = 1
b(1) = p1 = 1,5
p(1) = 1,25
2,625
2,234375
b(2) = 1,5
p(2) = 1,375
2 a(2) = 1,25
f (a(n) ) f (b(n) )
f (p(n) )
3
4
5
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
. Da mesma forma, o erro absoluto entre
intervalo, ou seja |p(0) p | ba
2
p(1) e p menor que 14 do intervalo, isto , |p(1) p | ba
. De modo geral,
22
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
41
ba
,
2n+1
n 1.
1
(n )1
2
ba
1
= n+1 103 .
n+1
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
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)
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
42
Clculo Numrico
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:
f (v + 1) = f (1) +
Z v+1
1
f 0 (x)dx v +
Z v+1
dx = 0.
43
4
2
E 3.2.7. O polinmio f (x) = x 4x + 4 possui razes duplas em 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 envolvendo
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
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
44
Clculo Numrico
3.3
3.3.1
Exemplo Histrico
A =
A
x
<
A =
A
x
A =
A
x
>
A = A Ax ,x
A = A x, Ax
45
y=
x+
2
A dada por
A
x
x(n+1) =
x(0)
x(n+1) =
x(0)
x(0) = 2
2 2,5
x(1) =
+
= 1 + 1,25 = 2,25
2
2
2,5
2,25
+
= 2,2361111
x(2) =
2
2,25
2,2361111
2,5
+
= 2,236068
x(3) =
2
2,2361111
2,236068
2,5
x(4) =
+
= 2,236068
2
2,236068
Exemplo 42. A=10, x=1
x(n)
5
+ (n)
2
x
= 1
x(n+1) =
x(0)
46
Clculo Numrico
x(0) = 1
1 5
x(1) =
+ = 0,5 + 5 = 5,5
2 1
5
5,5
+
= 3,6590909
x(2) =
2
5,5
3,6590909
5
x(3) =
+
2
3,6590909
3,1960051
5
x(4) =
+
2
3,1960051
3,1624556
5
x(5) =
+
2
3,1624556
3,1622777
5
x(6) =
+
2
3,1622777
= 3,1960051
= 3,1624556
= 3,1622777
= 3,1622777
A experimentao numrica sugere que o mtodo funciona, mas trs perguntas devem ser respondidas:
1. Ser que a sequncia convergente?
2. Caso seja convergente, ser que o limite x = limn xn igual a
A?
x
A
=
+
2
2x
A
=
2x
A
=
x
= A
=
A
lim x(n+1) =
n
x
x
2
x
(x )2
x
lim
n
Portanto,
sempre que esse mtodo converge, temos a garantia de que o limite
3.3.2
47
Outro Exemplo
x = ln
10
x
ou:
x = 10ex
Para tanto, vamos propor os seguintes processos iterativos:
x(n+1) = ln
x(0) = 1
x(n+1) = 10ex , n 0
x(0) = 1
a)
10
x(n)
, n0
e
b)
(n)
48
Clculo Numrico
O processo b) produz a seguinte sequncia:
x(0)
x(1)
x(2)
x(3)
x(4)
x(5)
=
=
=
=
=
=
1
10e1 = 3,6787944
10e3,6787944 = 0,2525340
10e0,2525340 = 7,7682979
10e7,7682979 = 0,0042293
10e0,0042293 = 9,9577961
3.3.3
Ponto fixo
49
e
lim x(n) = x
Observaes:
A condio |(x) (y)| |x y| satisfeita sempre que |0 (x)|
< 1 em todo o intervalo pois
Z y
0 (s)ds
|(x)(y)| =
Z y
|0 (s)|ds
Z y
ds = |xy|, x < y.
3.3.4
Teste de convergncia
50
Clculo Numrico
x(n+1) = cos(x(n) ), n 0
x(0) = 1
51
por:
x(1)
x(2)
x(3)
x(4)
x(5)
x(6)
x(7)
x(8)
x(9)
x(10)
x(11)
x(12)
x(13)
x(41)
x(42)
x(43)
3.3.5
=
=
=
=
=
=
=
=
=
=
=
=
=
..
.
=
=
=
Estabilidade e convergncia
A fim de compreendermos melhor os conceitos de estabilidade e convergncia, considere uma funo (x) com um ponto fixo x = (x ) e analisemos o seguinte processo iterativo:
x(n+1) = x(n)
x(0) = x
Vamos supor que a funo (x) pode ser aproximada por seu polinmio de
Taylor em torno do ponto fixo:
(x) = (x ) + (x x )0 (x ) + O (x x )2 , n 0
= x + (x x )0 (x ) + O (x x )2
x + (x x )0 (x )
Substituindo na relao de recorrncia, temos
52
Clculo Numrico
Ou seja:
x(n+1) x (x(n) x )0 (x )
n+1
x(n) x |0 (x )| ,
{z
n
onde n = x(n) x .
Concluses:
Se |0 (x )| < 1, ento, a distncia de x(n) at o ponto fixo x est
diminuindo a cada passo.
Se |0 (x )| > 1, ento, a distncia de x(n) at o ponto fixo x est
aumentando a cada passo.
Se |0 (x )| = 1, ento, nossa aproximao de primeiro ordem no
suficiente para compreender o comportamento da sequncia.
Fixaremos, portanto, nos casos quando |0 (x )| < 1.
3.3.6
n = x(n+1) x(n)
portanto:
x x(N ) =
=
x(N +1) x(N ) + x(N +2) x(N +1) + x(N +3) x(N +2) + . . .
X
k=0
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
53
x x
(N )
X
k=0
k=0
1
, |0 (x )| < 1
1 0 (x )
1
1 0 (x )
N
1 0 (x )
x(n+1) x(n)
,
x(n) x(n1)
temos
|0 (x )|
n
n1
e portanto
N
N
.
n
1 n1
54
Clculo Numrico
Exerccios
E 3.3.1. Mostre que a equao:
cos(x) = x
possui uma nica soluo no intervalo [0, 1]. Encontre uma aproximao 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:
a) (x) = ln
10
x
b) (x) = x
xex 10
15
c) (x) = x
xex 10
10+ex
cos(x)x
1+sin(x)
55
ex < 2x
E 3.3.8. Considere os seguintes processos iterativos:
x(n+1) = cos(x(n) )
x(1) = .5
(3.1)
Use o teorema do ponto fixo para verificar que cada um desses processos
converge para a soluo da equao x de cos(x) = x. Observe 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 identidade
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 (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
+
14.8Rh Re f
f
56
Clculo Numrico
(n+1)
= 2 log10
2.51x(n)
+
14.8Rh
Re
x(n+1) = xn + q n
x(0) = 0
onde q = 1 106 .
a) Calcule o limite
x = lim x(n)
n
analiticamente.
b) Considere que o problema de obter o limite da sequncia numericamente
usando como critrio de parada que |x(n+1) x(n) | < 105 . Qual o valor
produzido pelo esquema numrico? Qual o desvio entre o valor obtido
pelo esquema numrico 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)
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
57
c) Qual deve ser a tolerncia especificada para obter o resultado com erro
relativo inferior a 102 ?
E 3.3.14.
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 (x) = 1sin(x)
1
possui um nico ponto fixo estvel o intervalo [ 10
,1]. Construa um
(n+1)
(n)
mtodo iterativo x
= (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 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 (x) e funo composta (x) = = ((x)).
Verifique todo ponto fixo de tambm ponto fixo de .
b) Considere a funo
(x) = 10 exp(x)
e funo composta (x) = = ((x)). Mostre que possui dois
pontos fixos que no so pontos fixos de .
c) No problema anterior, o que acontece quando o processo iterativo x(n+1) =
(x(n) ) inicializado com um ponto fixo de que no ponto fixo de
?
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.
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
58
Clculo Numrico
E 3.3.18. Considere que x(n) satisfaz a seguinte relao de recorrncia:
x(n+1) = x(n) f (x(n) )
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.
A
I (n+1) =
I (0) = 0
1
R
i
V vt ln 1 +
I (n)
IR
1 ,n > 0
,n > 0
e
B
I (n+1) = IR exp
I (0) = 0
V RI (n)
vt
3.4
Mtodo de Newton-Raphson
59
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
(x ) =
1
f 0 (x )
f (x)
f 0 (x)
f (x(n) )
f 0 (x(n) )
3.4.1
Interpretao Geomtrica
60
Clculo Numrico
f (x(0) )
f 0 (x(0) )
3.4.2
f (x(n) )
.
f 0 (x(n) )
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
(x) = x
f (x)
f 0 (x)
00 (x )
+ O (x x )3
2
Sabemos que
f (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
(x ) = x
Portanto:
00
2 (x )
(x) = x + (x x )
+ O (x x )3
2
00
(x
)
x + (x x )2
.
2
61
Logo,
x(n+1) = (x(n) )
x + (x(n) x )2
x(n+1) x
00 (x )
2
(x(n) x )2
00 (x )
2
f 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 positivas 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?
Exerccios
E 3.4.2. Considere a equao
2
ex = x
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
62
Clculo Numrico
trace o grfico com auxlio do Scilab e verifique que ela possui uma raiz
positiva. Encontre uma aproximao para esta razo pelo grfico 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
+ x4 + 3x + 1
E 3.4.5. Encontre as razes reais do polinmio f (x) = 100
isolando-as pelo mtodo do grfico e depois usando o mtodo de Newton.
Expresse a soluo com 7 dgitos significativos.
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))
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
63
3.5
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:
f (x(n) )
f (x(n) ) f (x(n1) )
,
m=
m
x(n) x(n1)
Exemplo 44. Encontre as razes de f (x) = cos(x) x.
x(n+1) = x(n)
x(n)
x(n+1)
m
f (0,8)f (0,7)
0,80,7
= 0,8
f (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
64
Clculo Numrico
3.5.1
Anlise de convergncia
f (x(n) )
(x(n) x(n1) )
f (x(n) ) f (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+1) x =
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+1 =
n f (x + n1 ) n1 f (x + n )
f (x + n ) f (x + n1 )
2f
f (x + ) f (x ) + f (x ) +
f (x + ) f 0 (x ) + 2
00
(x )
2
f 00 (x )
2
n+1
n n1 f 0 (x ) + 2n1 f
65
00 (x )
n1 n f 0 (x ) + 2n f
00 (x )
f (x + n ) f (x + n1 )
f 00 (x )
2
f (x +
n ) f (x + n1 )
1 f 00 (x )
n n1
2 f 0 (x )
(3.3)
ou, equivalentemente:
x(n+1) x
1 f 00 (x ) (n)
(n1)
x
x
x
2 f 0 (x )
(3.4)
com =
5+1
2
(3.5)
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.
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
66
Clculo Numrico
Convergncia
Erro
Critrio de parada
Linear
1
n+1 =
2
bn an
< erro
2
(p = 1)
Iterao
linear
Newton
Linear
n+1 | (x )|n
(p = 1)
Quadrtica
1 f 00 (x )
0 2n
2 f (x )
n+1
5+1
p =
2
1,618
|n |
1 n
< erro
n1
n < n1
(p = 2)
Secante
n+1
00
f (x )
0 n n1
f (x )
|n | < erro
|n | < erro
M n
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 primeiras razes
dessa equao. Verifique a j-sima raiz (zj ) pode ser aproximada por j 1/2
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
67
0.8
68
Clculo Numrico
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 flutua 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
20.000,00
20.000,00
19.000,00
18.000,00
17.000,00
7
16.000,00
Calcule a taxa de juros envolvida. A data do emprstimo o ms zero.
E 3.5.14.
69
x2
3
+ y2 = 1
ln P sat = A
B
T +C
70
Clculo Numrico
Hidrocarboneto
N-pentano
N-heptano
a) Calcule a temperatura de bolha de uma mistura de N-pentano e Nheptano presso de 1.2bar quando as fraes molares dos gases so
z1 = z2 = 0.5. Para tal utilize a seguinte equao:
P =
zi Pisat
b) Calcule a temperatura de orvalho de uma mistura de N-pentano e Nheptano presso de 1.2bar quando as fraes molares dos gases so
z1 = z2 = 0.5. Para tal utilize a seguinte equao:
X zi
1
=
sat
P
i Pi
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
a21
A=
.
..
a12
a22
..
.
..
.
am1 am2
a1n
a2n
..
.
amn
x1
x2
x= .
..
xn
y1
y2
y= .
..
ym
72
Clculo Numrico
4.1
x+y+z =1
2x + y z = 0
2x + 2y + z = 1
1 1
2 1 1 0
2 2
0 1 3 2
0 0 1 1
x+y+z =1
2x + y z = 0
2x + 2z + z = 1
1 1
2 1 1 0
2 2
2 1 1 0
1 1
2 2
1 0
0 1/2 3/2 1
0 1
2 1
1 0
1
1
0 1/2 3/2 1
2 1 1
0 1
0 0 1/2 1/2
Exemplo 47. Resolva o seguinte sistema por eliminao gaussiana com pivotamento parcial.
0 2 2 x
1 2 1
1 1 1
y
z
74
Clculo Numrico
0 2 2 8
1 2 1 9
1 1 1 6
1 2 1 9
0 2 2 8
1 1 1 6
1 2 1 9
0 2 2 8
0 0 1 1
1 2 0 8
0 2 0 6
0 0 1 1
0 1 0 3
1 0 0 2
0 2 0 6
0 0 1 1
Portanto x = 2, y = 3 e z = 1.
2 x
2
4
2 4
1 3
0 2 3 4
Temos
y=
3 4/
2/
4 2y
= 2, quando 0.
2/
2
2
y=
4 2y
2
= (2 y)
2 4
1 3
1 3
2 4
0 2
4 3
4 4
2 2
e
x = 3 y
Observe que tais expresses so analiticamente idnticas s anteriores,
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
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
76
Clculo Numrico
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
2 1
1 1
A=
1 2
A=
a b
c d
A1 =
1
d b
.
ad bc c a
0 0 1
A=
0 1 0
1 0 0
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
E=
e o vetor
1 1 1
1 1 1
1 1 1
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 pivotamento 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
xi1 + 2.5xi xi+1 = e
2x5 x4 = 0
(i3)2
20
2i4
1 1 2
1 1 4
78
Clculo Numrico
b) Usando a rotina gausspp().
c) Usando a rotina inv() do Scilab.
4.2
x + 30y = 70
51,95122.
impossvel quando = 7130
41
Agora, verifique o que acontece quando resolvemos os seguintes sistemas
lineares:
52x + 30y = 70
51x + 30y = 70
A soluo do primeiro problema x = 65 e y = 115. J para o segundo
e y = 10
.
problema x = 10
3
3
Igualmente, observe os seguintes dois problemas:
52x + 30y = 70
79
4.2.1
Norma Lp de vetores
=
=
0 v = 0
||kvk
kuk + kvk (desigualdade do tringulo)
kuk
v=
3
0
80
Clculo Numrico
kvk1 = 1 + 2 + 3 + 0 = 6
kvk2 =
1 + 22 + 32 + 02 = 14
kvk = max{1,2,3,0} = 3
4.2.2
Norma matricial
=
=
=
=
0 A = 0
||kAkp
kAkp + kBkp (desigualdade do tringulo)
kAkp kvkp
kAkp kBkp
1
kIkp = kAA1 kp kAkp kA1 kp (se A inversvel)
Casos especiais:
n
kAk1 = max
n
X
j=1
kAk2 =
|Aij |
i=1
max{|| : (AA )}
kAk = max
i=1
n
X
|Aij |
j=1
A= 1
81
Soluo
kAk1 = max{12,8,18} = 18
kAk = max{15,7,16} = 16
kAk2 =
4.2.3
Nmero de condicionamento
kxk
ky k
1
= kAkkA k
Assim, definimos o nmero de condicionamento de uma matriz inversvel
A como
kp (A) = kAkp kA1 kp
O nmero de condicionamento, ento, mede o quo instvel resolver o
problema Ax = y frente a erros no vetor de entrada x.
Obs: O nmero de condicionamento depende da norma escolhida.
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
82
Clculo Numrico
Exerccios
E 4.2.1. Calcule o valor de para o qual o problema
71x + 41y = 10
x + 30y = 4
A=
nas normas 1, 2 e .
E 4.2.3. Calcule o nmero de condicionamento das matrizes
71 41
52 30
1 2 3
2 3 4
4 5 5
1
2
A=
2+ 4
em funo de quando 0 < < 1. Interprete o limite 0.
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
83
100000x 9999.99y = 10
9999.99x + 1000.1y
= 1
= 1.01
xj = sin(j/10), yj = j/10
|xj yj |
|xj |
fj =
|xj zj |
xj
Calcule as normas 1, 2 e de e e f
4.3
4.3.1
x1
(k+1)
x2
=
=
(k)
(k)
a21 x1
a11
+ + a2n x(k)
n
a22
..
.
x(k+1)
=
n
(k)
(k)
ann
84
Clculo Numrico
Em notao mais compacta, o mtodo de Jacobi consiste na iterao:
x(0) = aprox. inicial
yi
(k)
xi
n
X
(k)
aij xj
j=1
j6=i
aii
10x + y = 23
x + 8y = 26
x(k+1) =
y (k+1)
23 y (0)
= 2,3
10
26 x(0)
=
= 3,25
8
x(1) =
y (1)
23 y (1)
= 1,975
10
26 x(1)
=
= 2,9625
8
x(2) =
y (2)
4.3.2
Mtodo de Gauss-Seidel
85
x1
(k+1)
y2
x2
(k)
a11
(k+1)
a11 x1
+
+ a1n xn(k)
a22
..
.
(k+1)
y2 an1 x1
x(k+1)
=
n
(k+1)
+ + an(n1) xn1
Ann
xi
i1
X
(k+1)
aij xj
j=1
n
X
(k)
aij xj
j=i+1
aii
10x + y = 23
x + 8y = 26
(k+1)
y (k+1)
23 y (k)
=
10
26 x(k+1)
=
8
23 y (0)
= 2,3
10
26 x(1)
= 2,9625
=
8
x(1) =
y (1)
23 y (1)
= 2,00375
10
26 x(2)
=
= 2,9995312
8
x(2) =
y (2)
86
Clculo Numrico
4.4
Anlise de convergncia
Exerccios
E 4.4.1. Considere o problema de 5 incgnitas e cinco equaes dado
por
x1 x2
x1 + 2x2 x3
x2 + (2 + )x3 x4
x3 + 2x4 x5
x4 x5
=
=
=
=
=
1
1
1
1
1
5x1 + x2 + x3
= 50
x1 + 3x2 x3
= 10
x1 + 2x2 + 10x3 = 30
(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 GaussSeidel.
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
n
X
j vj .
j=1
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
(4.2)
88
Clculo Numrico
(k+1)
Ak x
=
kAk xk
Observamos que se x est na forma (4.2), ento Ak x pode ser escrito como
n
X
n
X
n
X
j
j kj vj = 1 k1 v1 +
j Ak vj =
Ak x =
j=2 1
j=1
j=1
j
1
!k
vj
j
j=2 1
Assim
j
1
!k
vj 0.
Ak x
1 k1
2
)
=
v
+
O
1
1
kAk xk
kAk xk
Como a norma de
Ak x
kAk xk
k
1 1
kAk xk
1
kv1 k
e, portanto,
1 k1
,
kAk xk
ento
|(k) | 1
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
(4.3)
Exerccios
E 4.5.1.
matriz
41 78
48 28 21
26 13 11
2 1
max{|| : (A A)} :
90
Clculo Numrico
A=
69
84
88
15 40 11
70 41 20
2 3
.
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 tenses 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 V2 V3 V2
+
R1
R2
V2 V3 V4 V3
+
R2
R3
V3 V4 V5 V4
+
R3
R4
V4 V5
R4
V1
V2
R5
V3
R6
V4
R7
V5
R8
= V
(4.4a)
= 0
(4.4b)
= 0
(4.4c)
= 0
(4.4d)
= 0
(4.4e)
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.
Clculo Numrico
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 procedimentos:
Linearizao da funo f (x) no ponto x(k) :
93
Podemos escrever este problema na forma vetorial definindo o vetor x =
[x1 ,x2 , . . . ,xn ]T e a funo vetorial
F (x) =
..
.
fn (x1 ,x2 , . . . ,xn )
F (x) =
x21
3
+ x22 1
x21 +
x22
4
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)
(0)
f1 (x1 ,x2 , . . . ,xn ) f1 (x1 ,x2 , . . . ,xn )
(0) (0)
F (x) F (x ) =
.
..
(0)
n
X
fi
fi
fi
fi
dx1 +
dx2 + +
dxn =
dxj
x1
x2
xn
j=1 xj
94
Clculo Numrico
(0) (0)
fi (x1 ,x2 , . . . ,x(0)
n )
n
X
fi
(0)
xj xj
j=1 xj
Portanto,
F (x) F (x(0) )
f1
x1
f1
x2
f1
xn
f2
x1
f2
x2
f2
xn
..
.
..
.
..
..
.
fn
x1
fn
x2
fn
xn
(0)
x 1 x1
(0)
x 2 x2
..
(5.1)
xn x(0)
n
JF =
f1
x1
f1
x2
f2
x1
f2
x2
f2
xn
..
.
..
.
..
..
.
fn
x1
fn
x2
f1
xn
fn
xn
fi
xj
5.1
95
x x(k) + O kx x(k) k2
(k)
A aproximao
x definida
como o ponto x em que a linearizao
(k)
(k)
(k)
F (x ) + JF x
xx
nula, ou seja:
F (x(k) ) + JF x(k)
x(k+1) x(k) = 0
JF x(k)
x(k+1) x(k)
= F (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 problema linear:
96
Clculo Numrico
Exemplo 51. 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) =
x22
2
1
x1 +
4
cuja jacobiana :
2x1
2x
2
JF =
3
2x1 x22
97
9
,
11
8
11
F (x) =
x21
cos(x1 x2 ) 1
sin(x2 ) 2 cos(x1 )
cuja jacobiana :
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
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
98
Clculo Numrico
E agora, basta iterar:
x=[1.5; .5]
x=x-JF(x)\F(x) (5 vezes)
5.1.1
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
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
5.2
5.2.1
g 0 (h) =
d
d
g(h) =
f (x(0) + hv)
dh
dh
100
Clculo Numrico
(0)
Observamos que esta expresso pode ser vista como o produto interno entre
o gradiente de f e o vetor v:
f =
f
x2
.
..
f
x1
v1
v=
f
xn
v2
.
..
vn
T f (x(0) ) =
f x(0)
x1
f x(0)
x2
, ,
f x(0)
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:
F (x) =
f1 (x)
f2 (x)
.
..
fn (x)
(0)
+ Tf1 (x(0) ) x x(0) + O(kx x(0) k2 )
f1 x
F (x) =
{z
Vetor coluna
ou, equivalentemente:
F (x) =
f1 x
(0)
f2 x(0)
..
fn x(0)
{z
Vetor coluna
(0)
f1 (x )
Tf2 (x(0) )
..
.
Tfn (x(0) )
{z
x x(0)
{z
+O(kx x(0) k2 )
Vetor coluna
Matriz jacobiana
F (x) = F x
(0)
(0)
+ JF (x ) x x
(0)
(0)
2
+ O
x x
102
Clculo Numrico
JF =
f1
x1
f1
x2
f2
x1
f2
x2
f2
xn
..
.
..
.
...
..
.
fn
x1
fn
x2
fn
xn
f1
xn
fi
xj
F (x) =
JF =
f1
x1
f2
x1
x21
3
x22
x21 +
x22
4
f1
x2
f2
x2
1
1
2x1
3
2x1
2x2
x2
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 54. 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 = 51 . Assim
1
1
f (x) = eln(5)x = 5x = 5x1 .
5
5
Exemplo 55. 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 .
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
104
6.1
Clculo Numrico
Interpolao polinomial
Interpolao polinomial o caso particular do problema geral de interpolao quando a famlia de funes constituda de polinmios.
Teorema 3. Seja {(xi ,yi )}ni=0 um conjunto de n + 1 pares ordenados de
nmeros reais tais que
i 6= j = xi 6= xj
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 coeficientes a0 ,
a1 ,. . . , an do polinmio
P (x) = a0 + a1 x + a2 x2 + an xn =
n
X
ak x k
k=0
2
1 x0 x0
1 x1 x21
xn0 a0
a1
xn1
1 x2 x22 xn2
a2 =
..
.. ..
.. . .
..
.
. .
.
. .
1 xn x2n
xnn
an
y0
y1
y2
..
.
yn
105
=
=
=
=
1
2
4
8
=
=
=
=
0
1
4
9
6.2
106
Clculo Numrico
.
..
(x1 x0 )
(x2 x0 )(x2 x1 )
..
..
.
.
0
..
.
(x2 x0 )
..
.
a0
y0
a y
1 1
a 2 = y2
. .
.. ..
an
yn
a1
a2
=
...
y0
y1 a0
y1 y0
=
x1 x0
x1 x0
y2 a1 (x2 x0 ) a0
=
(x2 x0 )(x2 x1 )
y2 y1
(x2 x1 )
y1 y0
(x1 x0 )
(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 ]
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
107
j xj f [xj ]
f [xj1 ,xj ]
0 x0 f [x0 ]
f [x0 ,x1 ] =
f [x1 ]f [x0 ]
x1 x0
1 x1 f [x1 ]
f [x1 ,x2 ] =
f [x2 ]f [x1 ]
x2 x1
2 x2 f [x2 ]
(1,3),(0,1),(1,3),(3,43)
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
108
Clculo Numrico
f [xj ]
xj
0 1
f [xj1 ,xj ]
13
0(1)
2(2)
1(1)
=2
62
3(1)
=2
202
30
433
31
= 2
31
10
=1
=6
= 20
43
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.
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
6.3
109
Polinmios de Lagrange
1, k = j
0, k 6= j
n
X
yj Lj (x)
j=1
1
1j6=kn (xk xj )
(xk xj ) = Ck = Q
1j6=kn
Portanto,
Lk (x) =
(x xj )
1j6=kn (xk xj )
Y
L1 (x) =
110
Clculo Numrico
Assim temos:
P (x) = 0 L1 (x) + 1 L2 (x) + 4 L3 (x) + 9 L4 (x) = x2
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,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
f (n+1) ((x))
(x x0 )(x x1 ) (x xn ),
(n + 1)!
M
|(x x0 )(x x1 ) (x xn )| ,
(n + 1)!
P (x) = 1
1 0,0299720583066x 0,4297256358252x2
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
111
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
(x 1)
max x x
x[0,1]
2
3+ 3
6
1
2
e um mximo (positivo) em x2 =
3 3
.
6
Logo:
1
max x x
(x 1) max{|Q(x1 )|, |Q(x2 )|} 0,0481125.
x[0,1]
2
Portanto:
|f (x) P (x)| <
0,85
0,0481125 0,0068159 < 7 103
3!
112
Clculo Numrico
e a integral de P (x) :
Z 1
0
1
1
1
2
3
4
+ f
P (x)dx = f (0) x3 x2 + x
x3 + 2x2
3
2
2
3
0
0
2 3 1 2 1
+ 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
Z 1
f (x) P (x)dx
0
Z 1
|f (x) P (x)|dx
1
M Z 1
(x 1) dx
x x
6 "0
2
1
M Z 1/2
x x
=
(x 1)dx
6 0
2
#
Z 1
1
x x
(x 1)dx
2
1/2
1
M
M 1
=
.
=
6 64
64
192
Z 1
ln(x + 1)dx
b)
Z 1
ex dx
1
96
ex dx 0,75
113
3,87
192
Exerccios
E 6.4.1. Use as mesmas tcnicas usadas o resultado do Exemplo (62)
para obter uma aproximao do valor de:
Z 1
f (x)dx
6.5
n
X
[f (xj ) yj ]2
j=1
114
Clculo Numrico
Figura 6.1: Conjunto de 15 pontos e a reta que melhor se ajuste a eles pelo
critrio do mnimos quadrados.
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
Portanto o valor de a que minimiza o erro a =
60,8
.
28
x=[0 1 2 3]'
y=[-.1 2 3.7 7]'
plot2d(x,y,style=-4)
115
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
6.6.1
O caso linear
O mtodo dos mnimos quadrados
n
X
[zi bi ]2
(6.1)
i=1
m
X
aij xj , i = 1, ,n
j=1
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
(6.2)
116
Clculo Numrico
n
m
X
X
aij xj
i=1
bi
(6.3)
j=1
E = 0,1 l m
xl
O que implica a seguinte condio
n
m
X
X
0=
E=
2 aij xj bi ail ,
xl
i=1
j=1
l = 1, , m
Equivalente a
m
n X
X
ail xj aij =
n
X
ail bi , l = 1, , m
i=1
i=1 j=1
n
i=1 ai1 bi
i=1
j=1 ai1 xj aij
Pn Pm
Pn
i=1 ai2 bi
i=1
j=1 ai2 xj aij
=
..
..
.
.
Pn
P
n
i=1
Pm
Pm
j=1
aim xj aij
P
n
i=1
aim bi
(6.4)
(6.5)
117
6.6.2
Seja f1 (x), f2 (x), . . . , fm (x) um conjunto de m funes e (x1 ,y1 ), (x2 ,y2 ), . . . , (xn ,yn )
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
Eq =
n
X
[f (xi ) yi ]2
i=1
como f (x) =
Pm
j=1
aj fj (x), temos
Eq =
2
n
m
X
X
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
fm (x2 )
a2
..
..
..
..
...
.
.
.
am
f1 (xn ) f2 (xn ) fm (xn )
f1 (x2 ) f2 (x2 )
y2
y3
..
.
yn
yi
0,01
1,99
1,02
4,55
2,04
7,20
2,95
9,51
3,55 10,82
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
118
Clculo Numrico
0,01 1
4,55
1,02 1
2,04 1 = 7,2
2,95 1
9,51
3,55 1
10,82
o que fornece:
0,01 1
1,02 1
a
=
2,04 1
2,95 1
3,55 1
9,57
1,99
4,55
7,2
9,51
10,82
26,5071 9,57 a
85,8144
34,07
119
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
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
0,01
1,99
1,02
4,55
2,04
7,20
2,95
9,51
3,55
10,82
120
Clculo Numrico
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
121
AT A
onde
A=
T
A
y0
,
y1
y2
1 x0
1 x1
1 x2
Exemplo 67. 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 linearizao so aproximados, ou seja, so diferentes daqueles obtidos quando aplicamos
X mnimos quadrados no linear. Observe que estamos minimizando
[ln yi
i
122
Clculo Numrico
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
Y = ln y
Y = ln a + b2 + bcx + c2 x2
(b+cx)2
y = ae
y=
a
b+x
y = A cos(x + )
Y =
1
y
Y =
b
a
+ a1 x
y = a cos(x) b sin(x),
conhecido
a = A cos(), b = A sin()
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
123
B =
cos(2x0 )
sin(2x0 )
cos(2x1 )
..
.
sin(2x1 )
cos(2x10 ) sin(2x10 )
1.
0.
0,8090170
0,5877853
0,3090170
0,9510565
0,3090170 0,9510565
0,8090170 0,5877853
1,0000000
0,0000000
0,8090170
0,5877853
0,3090170
0,9510565
0,3090170
0,9510565
0,8090170
0,5877853
1,0000000
0,0000000
A cos() = 7,9614704
A sin() = 11,405721
Observe que
A2 = 7,96147042 + 11,4057212
e, escolhendo A > 0, A = 13,909546 e
sin() =
11,405721
= 0,8199923
13,909546
124
Clculo Numrico
a
b+x
que ajusta a
yi
0,0 101
0,2
85
0,4
75
0,6
66
0,8
60
1,0
55
b
a
1
a
]T soluo do
onde
x3
x4
x5
1 0,0
1 0,2
1 x1
1 x
2
A=
1
1
1
1 x6
1 0,4
1 0,6
1 0,8
1 1,0
1/y3
1/y4
1/y5
1/y1
1/y
2
Y =
1/y6
0,0099010
0,0117647
0,0133333
0,0151515
0,0166667
0,0181818
6.8
125
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
Pi (x) = yi
(x xi )
(xi+1 x)
+ 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 70. 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:
f (x) =
0 x1
+ 1 x0
,0 x < 1
01
10
3 x3
+ 0 x2
,2 x 3
23
32
+ 3 x1
,1 x < 2
4 x2
12
21
Simplificando, obtemos:
3x + 9 , 2 x 3
f (x) = x + 5
,0 x < 1
,1 x < 2
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
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
126
Clculo Numrico
6.9
127
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 polinmio
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 diferencivel.
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
j = 1, . . . , n 2
j = 1, . . . , n 2
Como
s0j (x) = bj + 2cj (x xj ) + 3dj (x xj )2
(6.6)
(6.7)
e
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 ,
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
128
Clculo Numrico
bj =
(6.8)
cj+1 cj
,
3hj
yj+1 yj cj h2j
(6.9)
cj+1 cj 3
hj
3hj
,
hj
3yj+1 3yj 3cj h2j cj+1 h2j + cj h2j
=
3hj
3yj+1 3yj 2cj h2j cj+1 h2j
=
3hj
(6.10)
(6.11)
e, portanto,
3yj 3yj1 2cj1 h2j1 cj h2j1
+ 2cj1 hj1 + cj hj1 cj1 hj1
3hj1
(6.12)
3yj+1 3yj 2cj h2j cj+1 h2j
=
.
3hj
Fazendo as simplificaes, obtemos:
cj1 hj1 + cj (2hj + 2hj1 ) + cj+1 hj = 3
yj+1 yj
yj yj1
3
.
hj
hj1
(6.13)
129
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)
1
0
h 2h + 2h
1
2
1
A=
h2
...
0
..
.
0
..
.
h2
..
.
2h3 + 2h2
..
.
h3
..
.
..
hn1
(6.15)
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
130
Clculo Numrico
c=
c1
c2
..
.
cn
z=
0
2
3 y3hy
2
1
3 y2hy
1
3
2
3 y4hy
3 y3hy
3
2
..
.
yn2
yn3
3 yn1hn2
3 yn2hn3
(6.16)
f (x) =
a3 + b3 (x 9) + c3 (x 9)2 + d3 (x 9)3 , 9 x 12
. (6.17)
0
1
3 23+24
A=
0
4
24+23 3
c
3
c=
c4
z=
1 0
3 14
0
4
14 3
0,5(1,9)
0,50,5
3 3
3
c1
c2
0
3 0,5(1,9)
4
3 (1,9)4,5
3
0
8,2
2,8
0
c2 c1
0,7 0
=
= 0,0777778
3h1
33
c3 c2
0,4 0,7
=
=
= 0,0916667
3h2
34
c4 c3
0 + 0,4
=
=
= 0,0444444
3h3
33
d1 =
d2
d3
b1 =
=
b2 =
=
b3 =
=
y2 y1 h1
(2c1 + c2 )
h1
3
1,9 4,5 3
(2 0 0,7) = 2,8333333
3
3
y3 y2 h2
(2c2 + c3 )
h2
3
0,5 (1,9) 4
(2 0,7 + 0,4) = 0,7333333
4
3
y4 y3 h3
(2c3 + c4 )
h3
3
0,5 0,5 3
(2 (0,4) + 0) = 0,4666667
3
3
Portanto:
f (x) =
,2 x < 5
= [2 5 9 12]'
= [4.5 -1.9 0.5 -0.5]'
= X(2:4)-X(1:3)
= [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 ]
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
131
132
Clculo Numrico
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
= bn1 + 2cn1 hn1 + 3dn1 h2n1 = f 0 (xn )
(6.19)
y2 y1
3f 0 (x1 )
h1
e
cn1 hn1 + cn hn1 = 3f 0 (xn ) 3
yn yn1
hn1
(6.20)
(6.21)
133
Essas duas equaes juntamente com as equaes (6.13) formam um sistema de n equaes Ac = z, onde
2h1
h1
h
1 2h2 + 2h1
A=
h2
..
.
0
..
.
0
..
.
h2
..
.
2h3 + 2h2
..
.
h3
..
.
c=
c1
c2
..
.
cn
z=
1
3 y2hy
1
2
3 y3hy
2
3f (x1 )
1
3 y2hy
1
3
2
3 y4hy
3 y3hy
3
2
..
.
yn3
yn2
3 yn2hn3
3 yn1hn2
n1
3f 0 (xn ) 3 ynhy
n1
..
hn1
2hn1
hn1
0
f (x) =
a1 + b 1 x + c 1 x 2 + d 1 x 3
,0 x <
a2 + b2 (x 2 ) + c2 (x 2 )2 + d2 (x 2 )3
, 2 x <
, x <
3 3
)
2
, 3
x 2
2
a3 + b3 (x ) + c3 (x ) + d3 (x )
a4 + b4 (x
3
)
2
+ c4 (x
3 2
)
2
+ d4 (x
3
2
134
Clculo Numrico
A=
c=
/2
/2
/2
/2
/2
/2
/2
c1
c2
c3
c4
z=
c5
/2
01
10
3 /2 3 /2
10
01
3 /2 3 /2
(1)0
3
3 0(1)
/2
/2
3 10
/2
31
3 1 3 0(1)
/2
6/ 3
12/
0
12/
3 6/
c2 c1
3h1
c3 c2
=
3h2
c4 c3
=
3h3
c5 c4
=
3h4
d1 =
d2
d3
d4
=
=
=
=
y1
y2
y3
y3
=0
=1
=0
= 1
0,5956302 (0,0491874)
= 0,1159588
3 /2
0 (0,5956302)
=
= 0,1263967
3 /2
0,5956302 0
=
= 0,1263967
3 /2
0,0491874 0,5956302
=
= 0,1159588
3 /2
=
135
y2 y1 h1
(2c1 + c2 )
h1
3
1 0 /2
(2 (0,0491874) 0,5956302) = 1
/2
3
y3 y2 h2
(2c2 + c3 )
h2
3
0 1 /2
(2 (0,5956302) + 0) = 0,0128772
/2
3
y4 y3 h3
(2c3 + c4 )
h3
3
1 0 /2
(2 0 + 0,5956302) = 0,9484910
/2
3
y5 y4 h4
(2c4 + c5 )
h4
3
0 (1) /2
Portanto,
f (x) =
x 0,049x2 0,12x3
,0 x <
0,95(x ) + 0,13(x )3
, x <
, 2 x <
3
2
, 3
2 x 2
136
Clculo Numrico
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
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
137
s(x) =
..
.
, x1 x < x2
, x2 x < x3
..
.
138
Clculo Numrico
Spline Fixado
ai,j =
hi1
,j = i = 1
, j = i 1, i < n
hi
zi =
3 yi+1hiyi
ai,j =
, j = i + 1, i > 1
, caso contrrio.
,i = 1
,1 < i < n
,i = n
zi =
,j = i = 1
,j = i 1
hi
2hn1
,j = i = n
i1
3 yihy
i1
2h1
hi1
,j = i + 1
,j = i = n
, caso contrrio.
3 y2hy
3f 0 (x1 )
,i = 1
,i = n
3 yi+1hiyi
i1
3 yihy
i1
n1
3f 0 (xn ) 3 ynhy
n1
,1 < i < n
Captulo 7
Derivao e integrao
numrica
7.1
Derivao Numrica
dy
pode ser calDado um conjunto de pontos (xi ,yi )ni=1 , a derivada dx
i
culada 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
f 0 (x0 ) = lim
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 0 (x0 )
f (x0 + h) f (x0 )
.
h
(7.1)
140
Clculo Numrico
f (1 + h) f (1)
h
0,1
0,4535961 0,5403023
= 0,8670618
0,1
0,01
0,5318607 0,5403023
= 0,8441584
0,01
0,001
0,5403023 0,5403023
= 0,841741
0,001
0,0001
0,5403023 0,5403023
= 0,841498
0,0001
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 numrica 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
(cancelamento catastrfico). Isso nos motiva a pensar qual o melhor h.
Essa aproximao para a derivada denominada diferenas progressivas.
A derivada numrica tambm pode ser aproximada usando definies equivalentes:
yi yi1
f (x0 ) f (x0 h)
=
f 0 (x0 )
h
h
que denominada diferenas regressivas ou
f 0 (x0 )
f (x0 + h) f (x0 h)
yi+1 yi1
=
2h
2h
141
h=0,1
0,8670618
cos(1) cos(0,9)
= 0,8130766
0,1
cos(1,1) cos(0,9)
= 0,8400692
0,2
h=0,01
0,8441584
cos(1) cos(0,99)
= 0,8387555
0,01
cos(1,01) cos(0,99)
= 0,8414570
0,02
h=0,01
0,841741
cos(1) cos(0,999)
= 0,8412007
0,001
cos(1,001) cos(0,999)
= 0,8414708
0,002
7.1.2
Erros de truncamento
142
Clculo Numrico
Analogamente:
D,h f (x0 ) f 0 (x0 ) =
=
f (x0 ) f (x0 h)
f 0 (x0 )
h
f (x0 ) f (x0 ) hf 0 (x0 ) +
h2 00
f (x0 )
2
+ O(h3 )
f 0 (x0 )
h
= f 00 (x0 ) + O(h2 ) = O(h).
2
Tambm:
f (x0 + h) f (x0 h)
f 0 (x0 )
2h
2
f (x0 ) + hf 0 (x0 ) + h2 f 00 (x0 ) + O(h3 )
=
2h
2
0
f (x0 ) hf (x0 ) + h2 f 00 (x0 ) + O(h3 )
f 0 (x0 )
2h
= O(h2 ).
h
2
0,1
0,2123364
0,05
0,01
0,2220182
0,005
0,001
0,2230186
0,0005
7.1.3
Erros de arredondamento
143
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
D+,h f (x) = D+,h f (x)(1 + (x,h)) =
f (x + h) f (x)
(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
f (x) D+,h f (x)
0
f (x)
0
f (x)
f (x + h) f (x)
(1 + (x,h))
h
f (x + h) f (x) f (x + h) f (x + h)
+
h
h
!
f (x) f (x)
(1 + )
+
h
=
0
f (x) +
f (x + h) f (x) f (x + h) f (x + h)
h
h
!
f (x) f (x)
+
(1 + )
h
f (x + h) f (x + h)
f (x + h) f (x)
0
f (x)
+
h
h
!
f (x) f (x)
f (x + h) f (x)
|1 + | +
h
h
!
M h + + |1 + | + |f 0 (x)|
h h
!
Mh +
2
|1 + | + |f 0 (x)|
h
onde
M=
1
max |f 00 (y)|
2 xyx+h
144
Clculo Numrico
102
104
106
107
108
109
D+,h f (1,5)
0,3125246
0,3161608
0,3161973
0,3161976
0,3161977
0,3161977
1010
1011
1012
1013
1014
1015
D+,h f (1,5)
0,3161976
0,3161971
0,3162332
0,3158585
0,3178013
0,3747003
102
104
106
107
108
109
D+,h f (1,5)
0,3125246
0,3161608
0,3161973
0,3161976
0,3161977
0,3161977
7.1.4
f (x) = f (x0 )
A derivada de f (x)
2x x1 x2
2x x0 x2
+ 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
f 0 (x) = f (x0 )
(7.2)
145
f 0 (x0 ) = f (x0 )
1
1
3
f 000 ((x0 ))
f (x0 ) =
f (x0 ) + 2f (x0 + h) f (x0 + 2h) + h2
h
2
2
3
000
1
1
1
f
((x
+
h))
0
f (x0 ) + f (x0 + 2h) + h2
f 0 (x0 + h) =
h
2
2
6
f 000 ((x0 + 2h))
1 1
3
0
f (x0 + 2h) =
f (x0 ) 2f (x0 + h) + f (x0 + 2h) + h2
h 2
2
3
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
0
146
Clculo Numrico
1
h4
[f (x0 2h) 8f (x0 h) + 8f (x0 + h) f (x0 + 2h)]+ f (5) ((x0 ))
12h
30
(7.6)
2
h = 0,1
h = 0,01
h = 0,001
diferenas progressivas
0,2809448
0,3125246
0,3158289
diferenas regressivas
0,3545920
0,3199024
0,3165667
0,3127746
0,3161657
0,3161974
0,3177684
0,3162135
0,3161978
0,3135824
0,3161665
0,3161974
7.1.5
h2 00
h3
f (x0 ) + f 000 (x0 ) + O(h4 )
2
6
h2 00
h3
f (x0 ) f 000 (x0 ) + O(h4 ).
2
6
147
f 00 (x0 ) =
onde
2
f (x0 ) =
D0,h
h = 0,1
h = 0,01
h = 0,001
2
f (1,5) 0,7364712 0,7377814 0,7377944
D0,h
2
7.1.6
dy
Dado os valores de uma funo em pontos {(xi ,yi )}N
i=1 , as derivadas dx i
podem ser obtidas atravs da derivada de uma curva que melhor 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
148
Clculo Numrico
1,95
1,67
3,71
3,37
5,12
5,79
7,50
7,55
9,33
9,41
10 11,48
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
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
149
Exerccios
E 7.1.1. Expanda a funo suave f (x) em um polinmio de Taylor
adequado para obter as seguintes aproximaes:
a) f 0 (x) =
f (x+h)f (x)
h
+ O(h)
b) f 0 (x) =
f (x)f (xh)
h
+ O(h)
c) f 0 (x) =
f (x+h)f (xh)
2h
d) f 00 (x) =
+ O(h2 )
+ O(h2 )
150
Clculo Numrico
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 prprio ponto
e o prximo.
b) Derivada primeira numrica de primeira ordem usando o prprio 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
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
u(b) = ub
u(a) = ua
151
Resolver numericamente o problema acima exige uma discretizao do domnio [a,b], ou seja, dividir o domnio em N partes iguais, definindo
h=
ba
N
i +ui1
= f (xi ,ui ), 2 i N.
ui+1 2u
h2
u1 = ua
uN +1 = ub
+1
O vetor soluo (ui )N
i=1 do problema soluo do sistema acima, que linear
se f for linear em u e no linear caso contrrio.
1
N
i +ui1
ui+1 2u
+ ui = exi , 2 i N.
h2
u1 = 1
uN +1 = 2
ou seja,
u1 = 1
uN +1 = 2
152
Clculo Numrico
1
0
1 2 + h2
0
1
2 + h2
0
..
.
0
...
u1
u3
..
.
1 2 + h2 1
0
u2
uN
uN +1
1
2 x2
he
h2 ex3
..
.
h2 exN
2
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:
u(1) = 10
u(0) = 5
153
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:
u(2) = 100
u(0) = 120
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:
u(2) = 100
u0 (0) = 0
uxx = 100
u4
,
10000
0 < x < 2.
u(0) = 0
u(2) = 10
154
Clculo Numrico
u(2) = 10
u4
,
10000
0 < x < 2.
u0 (0) = 0
u00 + 2u0 = ex
u2
,
100
1 < x < 4.
u0 (1) + u(1) = 2
u0 (4) = 1
7.3
Integrao numrica
n
X
f (xi )hn ,
i=1
155
onde hn = ba
o tamanho da base dos retngulo e f (xi ), 1 i n,
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
f (x)dx = lim
n
X
f (xi )hn .
i=1
h2 = 1
h3 = 0,5 h4 = 0,25
4,625
Observe que
Z 2
0
"
x3
(x + 1)dx =
+x
3
#2
=
0
8
+ 2 = 4,6666667
3
4,65625
156
Clculo Numrico
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
f (x)dx
n
X
ai f (xi ),
i=1
f (x)dx (b a)f
a+b
2
:= hf (x1 ).
(7.7)
f 00 ((x))
(x x1 )2
2
f (x)dx =
Z b
a
Z b
a
(x x1 )dx +
Z b
a
f 00 ((x))
(x x1 )2 dx.
2
Z b
a
"
00
(x x1 )dx + f ()
#
2 b
(x x1 )
= hf (x1 ) + f (x1 )
2
0
"
Z b
a
1
(x x1 )2 dx
2
1
+ f () (x x1 )3
6
a
00
(b x1 )2 (a x1 )2
2
2
1
1
+ f 00 () (b x1 )3 (a x1 )3
6
6
h3 f 00 ()
= hf (x1 ) +
.
3
= hf (x1 ) + f 0 (x1 )
para a b.
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
b
a
157
ex dx.
x2
Z 1
dx +
ex dx.
1/2
ex dx = 0,7468241330.
n
Y
(x xi )
i=1
i=1
f (n+1) ((x))
.
(n + 1)!
e integramos
Z b
f (x)dx =
n
X
i=1
"
f (xi )
Z b
a
Z bY
n
1
Li (x)dx +
(x xi )f (n+1) ((x))dx.
(n + 1)! a i=1
#
f (x)dx
n
X
ai f (xi ),
i=1
onde
ai =
Z b
a
Li (x)dx
158
Clculo Numrico
Regra do Trapzio
A regra do trapzio consiste em aproximar a integral por um trapzio em
vez de um retngulo, como fizemos. Para isso, o polinmio de Lagrange deve
ser uma reta, como mostra a figura.
P1 (x) = f (x0 )
(x x1 )
(x x0 )
(x x1 )
(x x0 )
+ f (x1 )
= f (x0 )
f (x1 )
,
(x1 x0 )
(x0 x1 )
h
h
f (x)dx = f (x0 )
Z b
a
Z b
(x x0 )
(x x1 )
dx f (x1 )
dx
h
h
a
1 Zb
+
(x x0 )(x x1 )f 00 ((x))dx.
2! a
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
159
"
(x x0 )2
f (x)dx = f (x0 )
2h
00
"
# x1
"
(x x1 )2
f (x1 )
2h
x0
f () x
x
(x1 + x0 ) + x0 x1 x
2
3
2
Rb
a
f ((x))g(x)dx =
# x1
x0
#x1
x0
(x1 x0 )2
(x0 x1 )2
= f (x0 )
+ f (x1 )
2h
2h
!
x30 x20
f 00 () x31 x21
(x1 + x0 ) + x0 x1 x1
+ (x1 + x0 ) x0 x1 x0
+
2
3
2
3
2
2
2
h
h
= f (x0 ) + f (x1 )
2h
2h
3
2
00
f () 2x1 3x1 (x1 + x0 ) + 6x21 x0 2x30 + 3x20 (x1 + x0 ) 6x1 x20
+
2
6
h
f 00 () 3
= (f (x0 ) + f (x1 )) +
x0 3x20 x1 + 3x21 x0 x31
2
12
3 00
h f ()
h
= (f (x0 ) + f (x1 ))
2
12
Exemplo 81. Use a regra do trapzio para aproximar a integral
Z 1
ex dx.
x2
dx +
Z 1
ex dx.
1/2
1
2
ex dx (e0 + e1 ) = 0,6839397
2
0,5 0
0,5 1/4
e + e1/4 +
e
+ e1
2
2
= 0,4447002 + 0,2866701 = 0,7313703.
ex dx
160
Clculo Numrico
0,25 0
0,25 1/16
e + e1/16 +
e
+ e1/4
2
2
0,25 1/4
0,25 9/16
9/16
+
e
+e
+
e
+ e1
2
2
= 0,7429841
ex dx
Regra de Simpson
A regra de Simpson consiste em aproximar a integral usando trs pontos
do intervalo:
x0 = a,
x1 :=
a+b
= x0 + h
2
x2 := b = x1 + h.
com h = (ba)/2. Para isso, o polinmio de Lagrange deve ser uma parbola:
(x x1 )(x x2 )
(x x0 )(x x2 )
+ f (x1 )
(x0 x1 )(x0 x2 )
(x1 x0 )(x1 x2 )
(x x0 )(x x1 )
.
+ f (x2 )
(x2 x0 )(x2 x1 )
P2 (x) = f (x0 )
f (x)dx =
Z b
a
P2 (x)dx +
Z b
a
f 00 (x1 )
f 000 (x1 )
f (4) ((x))
(xx1 )2 +
(xx1 )3 +
(xx1 )4 ,
2
6
24
"
(x x1 )2 f 00 (x1 )
+
(x x1 )3
2
6
#x
2
f 000 (x1 )
4
+
(x x1 )
24
x0
1 Z x2 (4)
+
f ((x))(x x1 )4 dx,
24 x0
161
"
#x2
x0
f (4) () Z x2
(x x1 )4 dx
+
24
x0
"
= f (x1 )(x x1 ) + f 0 (x1 )
f 000 (x1 )
+
(x x1 )4
24
+
(4)
(x x1 )2 f 00 (x1 )
+
(x x1 )3
2
6
#x2
()
(x x1 )5
120
h
(x x1 )2 f 00 (x1 )
+
(x x1 )3
2
6
x0
ix2
x0
h5 f (4) ()
h3 00
f (x1 ) +
.
3
60
a
Usando a diferenas finitas centrais para a derivada segunda:
Z b
Z b
a
h3
f (x)dx = 2hf (x1 ) +
3
h5 f (4) ()
60
h
h5 1 (4)
1 (4)
=
(f (x0 ) + 4f (x1 ) + f (x2 ))
f (1 ) f () .
3
12 3
5
+
f (x)dx =
h
h5
(f (x0 ) + 4f (x1 ) + f (x2 )) f (4) (2 ).
3
90
162
Clculo Numrico
ex dx.
ex dx +
Z 1
ex dx.
1/2
ex dx
0,5 0
(e + 4e1/4 + e1 ) = 0,7471804
3
ex dx
7.3.2
0,25 0
0,25 1/4
(e +4e1/16 +e1/4 )+
(e
+4e9/16 +e1 ) = 0,7468554
3
3
Regras compostas
f (x)dx =
xi+1
f (x)dx
i=1 xi
f (x)dx =
n Z xi+1
X
f (x) dx
i=1 xi
n
X
xi+1
i=1
xi
[f (xi ) + f (xi+1 )]
2
163
Ni
hX
f (x) dx
[f (xk ) + f (xk+1 )]
2 k=1
h
= [f (x1 ) + 2f (x2 ) + 2f (x3 ) + + 2f (xNi ) + f (xNi +1 )]
2
Ni
X
h
= [f (x1 ) + f (xNi +1 )] + h
f (xi )
2
i=2
f (x) dx =
n
X
h
[f (x1 ) + f (xn+1 )] + h
f (xi ) + O(h3 ),
2
i=2
f (x) dx =
n Z xk+1
X
k=1 xk
n
X
xx+1
k=1
f (x)dx
xk+1 + xk
xk
f (xk ) + 4f
+ f (xk+1 )
6
2
164
Clculo Numrico
n1
n
X
X
h
f (x) dx
f (x1 ) + 2
f (x2i+1 ) + 4
f (x2i ) + f (x2n+1 ) + O(h5 )
3
i=1
i=1
"
n1
n
X
X
h
f (x1 ) + 2
f (x2i+1 ) + 4
f (x2i ) + f (x2n+1 ) + O(h3 ),
f (x) dx =
3
i=1
i=1
"
x2 ex dx
pelas regras compostas do ponto mdio, trapzio e Simpson variando o nmero de intervalos
Ni = 1, 2, 3, 6, 12, 24, 48, 96.
n
Simpson
5,4365637
218,3926
76,421909
21,668412
111,91458 51,750469
31,678746
80,272022 47,876505
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
96
46,352096
46,411323 46,371838
46,37187
7.3.3
165
O mtodo de Romberg
f (x)dx
Defina I(h) a aproximao desta integral pelo mtodo dos trapzios composto
com malha de largura constante igual a h. Aqui h = ba
para algum Ni
Ni
inteiro, i.e.:
I(h) =
Ni
X
ba
h
f (a) + 2
f (xj ) + f (b) , Ni =
2
h
j=2
h
2
= I0 + I2
h2
h4
h6
+ I4 + I6 + . . .
4
16
64
166
Clculo Numrico
h
h
4I(h/2) I(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:
Rk,1
k2
1
h 2X
h
= Rk1,1 + k1
f a + (2i 1) k1
2
2
2
i=1
4Rk,1 Rk1,1
3
Rk,j1 Rk1,j1
.
4j1 1
167
Exemplo
85. Construa o esquema de Romberg para aproximar o valor de
R 2 x2
e
dx
com
erro de ordem 8.
0
O que nos fornece os seguintes resultados:
55,59815
0,000000
0,000000
0,000000
30,517357 22,157092
0,000000
0,000000
0,000000
ex dx 16,475543
46,374531
46,37197
46,371863
46,37185
46,371847
Ou seja, temos:
Z 2
x2 ex dx 46,371847
7.3.4
Ordem de preciso
f (x)dx
N
X
wj f (xj )
j=1
168
Clculo Numrico
Exemplo 87.
ba
2
ba
ba
f (a) +
f (b)
2
2
:= w1 f (x1 ) + w2 f (x2 ) =
2
X
wj f (xj )
j=1
"
f (x)dx
ba
a+b
+ f (b)
f (a) + 2f
2
4
!
ba
ba
a+b
ba
f (a) +
f
f (b)
+
4
2
2
4
3
X
wj f (xj )
j=1
"
a+b
ba
f (a) + 4f
+ f (b)
2
6
!
ba
2(b a)
ba
a+b
f (a) +
f
+
f (b)
6
3
2
6
f (x)dx
=
:=
3
X
wj f (xj )
j=1
"
f (x)dx
+
=
+
:=
3a + b
a+b
f (a) + 4f
+ 2f
4
2
!
#
a + 3b
ba
4f
+ f (b)
4
12
!
ba
ba
ba
3a + b
f (a) +
f
+
f
12
3
4
6
!
ba
a + 3b
ba
f
+
f (b)
3
4
12
5
X
wj f (xj )
j=1
a+b
2
169
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
f (x)dx =
Z b
a
Z b
a
a0 dx +
Z b
a
an xn dx +
a1 xdx +
Z b
= a0 (b a) + a1
an
a
2
Z b
a
a2 x2 dx + . . . +
Rn (x)dx
b a2
b 3 a3
+ a2
+ ... +
2
3
bn+1 an+1 Z b
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 5. 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
X
wj f (xj ) =
Z b
j=1
f (x)dx,
f (x) = xk , k = 0,1, . . . n
ou, equivalentemente:
n
X
wj xkj
j=1
Z b
xk dx =
bk+1 ak+1
,
k+1
k = 0,1, . . . n
wj = b a
j=1
2
ba X
=
wj f (xj )
2
j=1
170
Clculo Numrico
onde wj =
ba
,
2
x1 = a e x2 = b.
n
X
(k = 0) :
wj = b a
j=1
n
X
b 2 a2
ba
=
wj xj = (a + b)
2
2
j=1
(k = 1) :
n
X
(k = 2) :
wj x2j
j=1
b 3 a3
ba
6
=
= (a + b )
2
3
2
f (x)dx f (a) + 4f
onde w1 = w3 =
(k = 0) :
(k = 1) :
ba
,w2
6
n
X
j=1
n
X
(k = 3) :
wj = (1 + 4 + 1)
wj xj = (a + 4
!2
n
X
a+b
= (a + 4
2
!3
wj x3j
a+b
= (a + 4
2
!4
wj x4j
(k = 4) :
j=1
e x3 = b
a+b
ba
ba
b 2 a2
+ b)
= (a + b)
=
2
6
2
2
a+b
wj x2j = (a2 + 4
2
j=1
n
X
a+b
2
ba
=ba
6
n
X
j=1
= 4 ba
, x1 = a, x2 =
6
j=1
(k = 2) :
3
ba X
a+b
wj f (xj )
+ f (b)
=
2
6
j=1
"
+ b2 )
ba
b 3 a3
=
6
3
+ b3 )
ba
b 4 a4
=
6
4
+ b4 )
ba
b 5 a5
6=
6
4
de ordem 3.
Soluo. Temos um sistema de quatro equaes e quatro incgnitas dado
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
171
por:
w1 + w2 = 2
x 1 w 1 + x2 w 2 = 0
2
x21 w1 + x22 w2 =
3
3
3
x 1 w 1 + x2 w 2 = 0
Da segunda e quarta equao, temos:
w1
x2
x3
= = 32
w2
x1
x1
Como x1 6= x2 , temos x1 = x2 e w1 = w2 . Da primeira
equao, temos
Exato
Trapzio
e e1
ex
3+
x3
16
9
4
9
Gauss-Legendre (2)
3
3
3,08616
e1 + 4e0 + e1
3
2,36205
3,41421
1,13807
1,15411
3,08616
1,02872
0,67905
e1 + e
2,35040
Simpson
+e
2,34270
1,14924
x2 e x
ee1
3
0,78347
3
3
172
7.3.5
Clculo Numrico
Quadratura de Gauss-Legendre
Z 1
f (x)dx =
n
X
wj f (xj )
j=1
Pode-se mostrar que este problema sempre tem soluo e que a soluo
nica se x1 < x2 < . . . < xn
wj =
2
1
x2j
173
xj
wj
3
3
8
9
0
3
s
3
5
5
9
18+ 30
36
18 30
36
3 2 6/5 /7
s
3 + 2 6/5 /7
1 + x2 dx
5
3 8
5
3
+ f (0) + f
2,2943456
I3 = f
9
5
9
9
5
No Scilab:
1 + x2 dx
1
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
174
Clculo Numrico
1 + x2 dx
1Z 1
2
1 + x dx =
2 1
u+1
1+
2
2
du
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))*w4(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 tambm o valor
exato usando seus conhecimentos de Clculo I. Complete a tabela abaixo
conforme modelo:
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
exato
R 1 x
e dx
0
175
Ponto mdio
Trapzio
1+e1
2
0.6839397
R1 2
x dx
0
R1 3
x dx
0
R1
0
xex dx
R1
1
0 x2 +1 dx
R1
x
0 x2 +1 dx
R1 1
0 x+1 dx
f (x)dx
f (x)dx.
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 compostos.
2
E 7.3.4. Calcule numericamente o valor de 25 e4x dx usando os mtodos compostos do ponto mdio, trapzio e Simpson. Obtenha os resultados
R
Simpson
1+4e1/2 +e1
6
0.632333
176
Clculo Numrico
Simpson
3
5
7
9
E 7.3.5. Use as rotinas construdas em aula e calcule numericamente o
valor das seguintes integrais usando o mtodo composto dos trapzios para
os seguintes nmeros de pontos:
n
R 1 4x2
e
dx
0
R1
1
0 1+x2 dx
R1 4
x (1 x)4 dx
0
R 1 21
x +1
0
dx
17
0.4409931
33
0.4410288
65
0.4410377
129
0.4410400
257
0.4410405
513
0.4410406
1025
Para cada integrando encontre o funo I(h) = a0 +a1 h+a2 h2 +a3 h3 +a4 h4
1
que melhor se ajusta aos dados, onde h = n1
. Discuta os resultados com
base no teorema envolvido na construo do mtodo de Romberg.
ER7.3.6. Calcule os valores da quadratura de Romberg de R1,1 at R4,4
para 0 sin(x)dx. No use rotinas prontas neste problema.
177
E 7.3.7. Sem usar rotinas prontas, use o mtodo de integrao de Romberg para obter a aproximao R3,3 das seguintes integrais:
a)
R 1 x2
e dx
b)
R2q
c)
R2
2 cos(x)dx
1
dx
2cos(x)
e 2 cos(x) 1 dx
178
Clculo Numrico
f (x)dx =
136
62
136
1 0
1 0
f (1) +
f (1/2)
f (0) +
f (1/2) +
f (1)
210
105
105
105
210
R1
(2 + x 5x2 + x3 ) dx
b)
R1
ex dx
c)
R1
dx
x2 +1
1
1
1
179
E 7.3.18. Encontre aproximaes para a seguinte integral via GaussLegendre com 2, 3, 4, 5, 6 e 7 pontos e compare com o valor exato
Z 1
x4 ex dx.
E 7.3.19. Encontre aproximaes para as seguintes integrais via GaussLegendre com 4 e 5 pontos:
a)
R 1 x4
e dx
b)
R4
c)
R 1 x2
e dx
log(x + ex )dx
R 1 4x2
e
dx
R1
1
0 1+x2 dx
R1 4
x (1 x)4 dx
0.4410407
0.7853982
0.0015873
R 1 21
x +1
0
dx
2
3
4
5
8
10
12
14
16
0.4619172
Exerccios finais
E 7.3.21. O valor exato da integral imprpria
Z 1
0
x ln(x)dx =
x2
x2
ln x
2
4
!1
R1
0
= 1/4
180
Clculo Numrico
Z 1
ex dx +
Z 1
u2 e1/u du =
Z 1
R x2
e dx
0
dado por
2
ex + x2 e1/x
.
2
dx
ln(x) sin(x)dx
ln(x) sin(x)dx =
Z 1
ln(x)xdx +
ln(x) [sin(x) x] dx
0
!
2 1
Z 1
Z 1
x
x2
=
ln x
+
ln(x) [sin(x) x] dx
2
4 0
0
1 Z1
ln(x) [sin(x) x] dx
= +
4
0
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 poro da soluo foi obtida
analiticamente e, portanto, sem erro de truncamento?
ER 7.3.24. Considere o problema de calcular numericamente a integral
1
.
I = 1
f (x)dx quando f (x) = cos(x)
|x|
181
I =
cos(x)
q
Z 1
|x|
dx =
cos(x) 1
q
cos(x) 1
q
|x|
Z 1
dx + 2
Z 1
0
|x|
dx +
Z 1
1
|x|
dx
Z 1
1
cos(x) 1
q
dx =
dx + 4
x
1
|x|
Z 1
I = 4+
|x|
dx = 4 + 2
Z 1
0
Z 1
cos(x)
q
= 2
Z 1
0
|x|
dx =
Z 1
cos(x) P4 (x)
q
|x|
dx +
Z 1
1
P4 (x)
q
|x|
dx
!
Z 1
cos(x) P4 (x)
x3/2 x7/2
dx +2
x1/2
+
dx
x
2
24
0
{z
Resolver numericamente
{z
Resolver analiticamente
Z 1
0
1
Z 1 cos 1+u
cos(x) 1
2
du
dx = 4 + 2
x
1
1+u
sin(x)
dx
x
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
182
b)
Clculo Numrico
Z 1
0
c)
Z 1
0
d)
Z 1
sin(x)
dx
x(1 x)
sin
q
x
2
x(1 x)
dx
ln(x) cos(x)dx
R 1 ex
0 |x|1/4 dx
R 1 ex
0 |x|4/5 dx
usando procedi-
Z
0
Z
cos(x)
sin(x)
dx =
dx.
1+x
(1 + x)2
0
Z x
ey dy = 5
CV = 9N kB
T
TD
3 Z TD /T
0
y 4 ey
dy
(ey 1)2
183
Clculo Numrico
Captulo 8
Problema de valor inicial
Muitos problemas de valor inicial da forma
y 0 (t) = f (y(t),t)
y(t0 ) = y0 condio inicial
no podem ser resolvidos 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 solues numricas. Para esse propsito,
construmos uma malha de pontos no eixo t, {ti }N
i=1 e calculamos o valor aproximado da funo soluo y(ti ) em cada ponto da malha usando esquemas
numricos.
8.1
Mtodo de Euler
y(t + h) y(t)
+ O(h), h > 0
h
assim temos
y(t + h) y(t)
= f (y(t),t) + O(h)
h
y(t + h) = y(t) + hf (y(t),t) + O(h2 )
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
185
Definindo y (k) como uma aproximao para y ((k 1)h) e t(k) = (k 1)h,
temos
y (k+1) = y (k) + hf (y (k) ,t(k) )
y (1) = y0 condio inicial
Exemplo 95. Considere o problema de valor inicial:
y 0 (t) = 2y(t)
y(0) = 1
Sabemos da teoria de equao diferenciais ordinrias, que a soluo exata
deste problema nica e dada por
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
t
186
Clculo Numrico
dy(t)
y(t)(1 y(t))
!
1
1
+
dy
y 1y
ln(y) ln(1 y)
!
y
ln
1y
y
1y
y
t+C
y(1 + e )
= dt
= dt
= t+C
= t+C
= et+C
= et+C (1 y)
= et+C
et+C
y =
1 + et+C
ainda y(0) =
eC
1+eC
et
1+et
187
Comparao
t
Exato
1/2
0,5
0,5
0,6231476
0,6225316
1/2
e1/2
1+e1/2
e
1+e
0,7310586
0,7334030
0,7312946
e2
1+e2
0,8807971
0,8854273
0,8812533
e3
1+e3
0,9525741
0,9564754
0,9529609
0,6224593
188
Clculo Numrico
Comparao
t
Exato
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
189
y
x
1
0,
=
=
=
=
x(t)
z(t) =
y(t)
e temos
(k+1)
(k)
(k)
x
=
+ h
y (k+1)
y (k)
x(k)
Equivalente a
x(k+1) = x(k) hy (k)
y (k+1) = y (k) + hx(k)
=
=
=
=
w
w y + cos(t)
1
0
190
Clculo Numrico
y (k+1)
w(k+1)
y (1)
w(1)
8.1.1
=
=
=
=
y (k) + hw(k)
w(k) hw(k) hy (k) + h cos(t(k) )
1
0
Exerccios
E 8.1.1. Refaa o exemplo 96 via mtodo de Euler melhorado.
8.1.2
Ordem de preciso
y(t + h) y(t)
+ O(h), h > 0
h
191
N
1
X
O(h2 ) = y k + O(h)
j=0
8.2
Mtodos de Runge-Kutta
192
8.2.1
Clculo Numrico
k1 + 2k2 + 2k3 + k4
6
onde
k1
k2
k3
k4
=
=
=
=
hf (y (n) ,t(n) )
hf (y (n) + k1 /2,t(n) + h/2)
hf (y (n) + k2 /2,t(n) + h/2)
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:
y(t(n+1) ) y(t(n) ) =
Z t(n+1)
t(n)
f (y(s),s)ds
h h (n) (n)
f y(t ),t
+ 4f y(t(n) + h/2),t(n) + h/2
6
i
+ f y(t(n) + h),t(n) + h
3
) + k4
k1 + 4( k2 +k
2
8.3
k
X
wj f (y (nj) ,t(nj) )
j=0
y (n+1) = y (n) +
y (n+1) = y (n) +
i
h h
23f y (n) ,t(n) 16f y (n1) ,t(n1) + 5f y (n2) ,t(n2)
12
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
193
y (n+1) = y (n) +
8.4
k
X
wj f (y (nj) ,t(nj) )
j=1
y (n+1) = y (n) +
8.5
Estabilidade
y 0 = y
y(0) = 1
y (1) = 1
194
Clculo Numrico
Exerccios
E 8.5.1. Resolva o problema 1 pelos diversos mtodos e verifique heuristicamente a estabilidade para diversos valores de h.
Exerccios finais
E 8.5.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?
8.5. ESTABILIDADE
195
196
Clculo Numrico
d(t)
dt
!2
g
cos((t))
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.5.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.
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
8.5. ESTABILIDADE
197
198
Clculo Numrico
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
A.1.1
Instalao e Execuo
O Scilab pode ser executado normalmente nos sistemas operacionais Linux, Mac Os e Windows. Muitas distribuies de Linux (Linux Mint, Ubuntu,
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
200
Clculo Numrico
etc.) tm o Scilab no seu sistema de pacotes (incluindo binrio e documentao em vrias lnguas). Alternativamente, no stio de internet oficial do
Scilab pode-se obter mais verses de binrios e documentao para instalao em sistemas Linux. Para a instalao em sistemas Mac Os e Windows,
visite stio de internet oficial do Scilab.
A.1.2
Usando o Scilab
201
s = "Ol Mundo!"
disp(s)
salva-se em um arquivo de sua preferncia (por exemplo, ~/foo.sce)
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.sce)
e executa-se em um console do sistema usando a linha de comando:
$ 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.
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
202
Clculo Numrico
A.2.1
adio
subtrao
multiplicao
diviso
potenciao (igual a **)
transposto conjugado
A.2.2
A.2.3
Operadores lgicos
e lgico
ou lgico
negao
igualdade
diferente
menor que
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
A.3. MATRIZES
203
A.3
Matrizes
A=
1 2 3
4 5 6
2.
5.
3.
6.
A seguinte lista contm uma srie de funes que geram matrizes particulares:
eye
linspace
ones
zeros
matrix identidade
vetor de elementos linearmente espaados
matriz cheia de uns
matriz nula
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
204
Clculo Numrico
A.3.1
O operador :
8.
6.
-->u = 2:6
u =
2.
3.
A.3.2
4.
4.
5.
6.
1.
1.
1.
A.3. MATRIZES
205
0.3303271
0.6653811
0.6283918
0.8497452
0.6857310
0.8782165
0.0683740
0.5608486
0.6623569
0.8497452
0.6857310
0.8782165
0.0683740
0.5608486
0.6623569
0.3303271
0.6653811
0.6283918
0.6857310
0.8782165
0.5608486
0.6623569
206
Clculo Numrico
A(:,:)
A(i:j,k)
A(i,j:k)
A(i,:)
A(:,j)
A(i,$)
A($,j)
toda a matriz
os elementos das linhas i at j (inclusive) da k-sima coluna
os elementos da i-sina linha das colunas j at k (inclusive)
a i-sima linha da matriz
a j-sima coluna da matriz
o elemento da i-sima linha e da ltima coluna
o elemento da ltima linha e da j-sima coluna
0.6653811
0.6283918
0.8497452
0.6857310
0.8782165
0.0683740
0.5608486
0.6623569
0.7263507
0.1985144
0.5442573
0.2320748
A.3.3
0.8782165
0.0683740
0.5608486
0.6623569
0.6653811
0.6283918
0.8497452
0.6857310
0.7263507
0.1985144
0.5442573
0.2320748
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 operaes
elemento-a-elemento:
+ adio
- subtrao
* multiplicao
.+
..*
./
^ potenciao
.^
' transposta conjugada .'
adio elemento-a-elemento
subtrao elemento-a-elemento
multiplicao elemento-a-elemento
diviso elemento-a-elemento
potenciao elemento-a-elemento
transposta (no conjugada)
207
1.
1.
2.
2.
-->A * B
ans =
4.
4.
4.
4.
-->A .* B
ans =
2.
2.
A.4
2.
2.
A.4.1
A instruo de ramificao if
208
Clculo Numrico
elseif ( i == 3 ) then
disp ( " Tchau ! " )
else
disp ( " Au Revoir ! " )
end
Qual a sada apresentada no console do Scilab? Porqu?
A.4.2
A.5. FUNES
A.4.3
209
A instruo while permite que um pedao de cdigo seja executado repetidamente at que uma dada condio seja satisfeita.
Exemplo 117. 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
210
Clculo Numrico
Verifique!
Exemplo 119. 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:
h(x,y) =
y x ,x < y
x y ,x y
(f1 ,f2 )
(x1 ,x2 )
da funo:
A.6
Grficos
E 2.1.5. (101,1)2
E 2.1.6. (11,1C)16
E 2.1.7. 50; 18
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).
2
E 2.7.2. a) 1
+ x4! + O(x4 ); b) x/2 + O(x2 ); c) 5 104 x + O(x2 ); d)
2
2
y
4
+ O(y 2 ) =
2
x
4
+ O(x2 )
E 2.7.6. 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.7. Em ambos casos, temos a seguinte estrutura:
S11
S12
S21
S22
[A]
=
v1
v2
[B]
De forma que
[A]
[B]
=
S11
S12
S21
S22
1
v1
v2
=
1
S11 S22 S12 S21
S22
S12
S21
S11
v1
v2
212
Clculo Numrico
Portanto
[A]
[B]
S22 v1 S12 v2
S11 S22 S12 S21
S21 v1 + S11 v2
S11 S22 S12 S21
[A]
[A] S11
1
[A]
[A] S12
1
[A]
[A] S21
1
[A]
[A] S22
S22
S11 S22 S12 S21
v2
S22 v1 S12 v2
S21
S11 S22 S12 S21
[A]
[B]
S22
S11 S22 S12 S21
S12
S22 v1 S12 v2
S11
[A]
[B]
S12
S11 S22 S12 S21
e
1 [B]
[B] S11
1 [B]
[B] S12
1 [B]
[B] S21
1 [B]
[B] S22
v2
S21 v1 + S11 v2
S22
S11 S22 S12 S21
S21
[B]
S21
v1
S21 v1 + S11 v2
S21
S11 S22 S12 S21
[B]
S11
S11
S11 S22 S12 S21
[A]
1 [A] + 1 [A] + 1 [A] + 1 [A]
[A] S11 S11 [A] S12 S12 [A] S21 S21 [A] S22 S22
h
i
1
|det S|
S22 S11 +
[A]
[B]
[A]
[B]
S12 S22
Analogamente, temos:
1
[B]
[B]
1
|det S|
[B]
[A]
[B]
[A]
1
[A]
[A]
=
=
1
[B]
[B]
=
=
1
1200
216
1200
1
1200
426
1200
270
30
140
20
= 1200
270
30
15
200
= 53550
A.6. GRFICOS
1
[A]
[A]
=
=
1
[B]
[B]
=
=
213
1
53550
1804,6
52550
1
53550
5895
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
cos() com (0, /2); 1,030.
2
E 3.2.5. k 0,161228
E 3.3.1. 0,7391
E 3.3.10.
0.0431266
E 3.4.1.
, pelo
a) Primeiramente, deve-se observar que a funo tg (x) no est definida quando x um mltiplo mpar de
2
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
1
cos2 (x)
1
cos2 (x)
4x
4x
1
cos2 (0,6)
1
cos2 (1,2)
4 0,5 < 0,
x [0,5, 0,6]
4 1,3 > 0,
x [1,2, 1,3]
214
Clculo Numrico
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
2N
p
2 10
isso equivalente a
Np log2
101
2 108
= log2
107
2
= 7 log2 10 1 =
7
log1 02
1 22.22
(n+1)
=x
(n)
f (x(n) )
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
. Nestes pontos, a funo f (x) troca
2
de sinal, mas no passa por zero.
E 3.4.2. 0,65291864
E 3.4.3.
E 3.4.5.
E 3.4.8.
x0 > 1.
E 3.5.6.
E 3.5.7.
E 3.5.8.
118940992
E 3.5.9.
7.7cm
E 3.5.10.
4.32cm
E 3.5.11.
(0.652919,0.426303)
E 3.5.12.
7.19% ao ms
A.6. GRFICOS
215
E 3.5.13.
4.54% ao ms.
E 3.5.14.
E 3.5.15.
E 3.5.16.
1.5318075
E 3.5.17.
E 3.5.18.
E 3.5.19.
"
10
48
10
25
"
"
"
"
48
10
25
0
0
"
10
25
9.1
45.5
10
30
"
10
25
48
"
10
25
E 4.1.5.
a) x = [4 3 2]T
b) O sistema equivalente a
x1
x2
(1 + )x3
x1
(1 + )x2
x3
(1 + )x1
x2
x3
9
1 + 3
9
x2 = 3 1+3
9
x1 = 4 1+3
x = [4 3 2]
9
1 + 3
Portanto x = 2, y = 3, z = 5
Assim temos:
0
0
[1 1 1]
216
Clculo Numrico
E 4.1.7.
"
1/2
1/2
1/3
1/2
1/6
1/3
1/3
k1 = k = 6888, k2 =
= 210
E 4.2.3.
18
+3.
E 4.2.6.
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)
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
A.6. GRFICOS
217
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 2 -1; 0 0 0 1 -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),delta)
x0=x;
end
endfunction
function x=q_Gauss_Seidel()
x0=[0 0 0 0 0]'
218
Clculo Numrico
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),delta)
x0=x;
end
endfunction
0.324295, 0.324295, 0.317115, 0.305943, 0.291539, 0.274169, 0.253971,
0.230846, 0.203551, 0.165301, 0.082650
Exemplos de rotinas:
E 4.4.4.
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
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
A.6. GRFICOS
219
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(2),x(3),delta)
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(2),x(3),delta)
x0=x;
end
endfunction
E 4.4.6.
E 4.5.1.
Permute as linhas 1 e 2.
E 4.5.3.
158,726
220
Clculo Numrico
R1
1
R1
1
R2
1
R5
1
R2
1
R2
1
R2
1
R3
1
R3
1
R3
1
R6
1
R3
1
R4
1
R7
1
R4
1
R4
1
R4
V2
V3
v4
R8
V1
V5
0
0
1/R2
0
-(1/R2+1/R3+1/R6)
1/R3
1/R3
-(1/R3+1/R4+1/R7)
0
1/R4
0;
0;
0;
1/R4;
-(1/R4+1/R8)
O problema com quatro incgnitas pode ser escrito na forma matricial conforme a seguir:
1
R1
1
R2
1
R2
1
R5
1
R2
1
R2
1
R3
1
R3
0
+
1
R6
1
R3
1
R3
1
R4
0
+
1
R7
1
R4
1
R4
1
R4
V3
v4
V
2
R8
V5
V
R1
0
0
0
A.6. GRFICOS
221
-(1/R1+1/R2+1/R5)
1/R2
0
0
1/R2
0
-(1/R2+1/R3+1/R6)
1/R3
1/R3
-(1/R3+1/R4+1/R7)
0
1/R4
0;
0;
1/R4;
-(1/R4+1/R8)]
v=[-V/R1; 0; 0; 0]
y=A\v
Dica: P (1) = 3, P (1) = 1 e P (2) = 9 produzem trs 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 4.5.6.
E 6.2.1. 5x3 + 2x 3
E 6.4.1.
R1
0
P (x)dx =
f (0)+f (1)
1
, 12
2
maxx[0,1] |f 00 (x)|
E 6.6.2.
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
d = 208,23621.
E 7.1.3.
a) f 0 (0) =
b) f 0 (0) =
+ O(h2 )
+ O(h2 )
1
c) f 0 (0) = h +h
l h2 f (h1 ) +
1
2
1
d) f 00 (0) =
e) f 00 (0) =
h2
h1
h1
2
f (0) + h1 f (h2 )
2
+ O(h)
+ O(h)
222
Clculo Numrico
E 7.1.4.
Caso
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.
u1
u2
u3
u4
2
2
u5
10
u1
u2
u3
u4
u5
u6
u7
u8
0.5
0.5
0.5
0.5
0.5
0.5
0.5
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.3.1.
exato
R1
0
R1
0
R1
0
R1
0
0.6321206
Ponto mdio
e
1/2
0.6065307
Trapzio
1+e1
2
0.6839397
Simpson
1+4e1/2 +e1
6
0.6323337
x2 dx
1/3 0.3333333
0.25
0.5
0.3333333
x3 dx
1/4 = 0.25
0.125
0.5
0.25
0.3894004
0.1839397
0.3209135
0.8
0.75
0.7833333
0.4
0.25
0.35
0.6666667
0.75
0.6944444
xex dx
R1
1
dx
0 x2 +1
R1
x dx
0 x2 +1
R1
1e
dx
1 dx
0 x+1
1
2
1e
1
0.3160603
ln(2) 0.3465736
ln(2) 0.6931472
A.6. GRFICOS
223
E 7.3.3.
ISimpson =
1
3
IT rap +
2
3
IP M
E 7.3.4.
Ponto mdio
Trapzios
Simpson
0.1056606
0.7503919
0.5005225
0.1726140
0.3964724
0.2784992
0.1973663
0.3062023
0.2393551
0.2084204
0.2721145
0.2306618
E 7.3.5.
1
8.49372 10
1.46294 10
a)I(h) = 4.41041 10
b)I(h) = 7.85398 10
c)I(h) = 1.58730 10
d)I(h) = 4.61917 10
12
h 1.22104 10
11
h 4.16667 10
9.68958 10
10
+ 3.83229 10
12
h + 2.03315 10
2 2
7 3
h 1.22376 10
h + 8.14294 10
3 4
2 2
7 3
6 4
7 2
5 3
4 4
2 2
8 3
4 4
h + 2.52721 10
h 2.16110 10
h + 4.65117 10
h 1.38695 10
h + 2.97262 10
h + 5.48935 10
h + 5.25326 10
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.9.
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
E 7.3.13.
R1
0
E 7.3.15. 5, 4, 3
E 7.3.16.
R1
1
f (x)dx = f
33
+f
3
3
224
Clculo Numrico
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.
2.205508
3.5733599
3.6191866
3.6185185
3.618146
2.5973554
3.6107456
3.6181465
3.6180970
3.6180970
2.7732372
3.6153069
3.6181044
3.6180970
3.6180970
2.880694
3.6166953
3.6180989
3.6180970
3.6180970
(1)
x2n
(2n)!
n=1
temos
1 cos(x)
=
(1)
x2n1/2
(2n)!
, x0
n=1
Z
I
4+2
cos(x) 1
42
|x|
dx = 4 2
x2n1/2
(2n)!
dx
n=1
(1)
Z
n
(1)
(2n)!(2n + 1/2)
n=1
Soluo do item f)
Z 1
1/2
x3/2
2
x7/2
24
dx = 2
1
5
1
54
977
270
cos(x) P4 (x)
dx = 2
cos
1+u
2
P4
1+u
1+u
2
du
E 7.3.28. 4.1138
1 ln
E 8.5.2. Os valores exatos para os itens e e f so: 10
q
g
1 e200
9
4
1 ln (6)
e 10
em t = 1
tanh1
g
p
1 e200
E 8.5.9.
A.6. GRFICOS
225
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
Clculo Numrico
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 Learning, 8
edition, 2013.
[4] J. P. Demailly. Analyse Numrique et quations Differentielles. EDP
Sciences, Grenoble, nouvelle dition edition, 2006.
[5] Walter Gautschi and Gabriele Inglese. Lower bounds for the condition
number of vandermonde matrices. Numerische Mathematik, 52(3):241
250, 1987/1988.
[6] L.F. Guidi. Notas da disciplina clculo numrico. http://www.mat.
ufrgs.br/~guidi/grad/MAT01169/calculo_numerico.pdf. Acessado
em julho de 2016.
[7] R. Rannacher. Einfhrung in die numerische mathematik (numerik
0). http://numerik.uni-hd.de/~lehre/notes/num0/numerik0.pdf.
Acessado em 10.08.2014.
ndice Remissivo
ajuste
derivao, 147
ajuste de curvas, 113
aproximao
de funes, 103
por polinmios, 110
aritmtica
de mquina, 3
autovalores, 87
cancelamento catastrfico, 23
derivao numrica, 139
diferenas divididas de Newton, 105
eliminao gaussiana
com pivoteamento parcial, 72
equaes
de uma varivel, 37
erro
absoluto, 18
relativo, 18
erros, 17
absoluto, 52
arredondamento, 142
de arredondamento, 20
propagao, 25
truncamento, 141
estabilidade, 193
frmula de diferenas finitas, 139
alta ordem, 144
central, 146
funo
raiz, 37
zero, 37
integrao numrica, 154
mtodo composto
de Simpson, 163
dos trapzios, 162
mtodo de Romberg, 165
ordem de preciso, 167
regra de Simpson, 160
regra do ponto mdio, 156
regra do trapzio, 158
regras compostas, 162
regras de Newton-Cotes, 156
interpolao
cbica segmentada, 127
derivao, 147
linear segmentada, 125
polinomial, 104
iterao
do ponto fixo, 44
iterao do ponto fixo
convergncia, 51
estabilidade, 51
mtodo
da bisseo, 39
de Euler, 184
de Euler melhorado, 190
de passo mltiplo
Adams-Bashforth, 192
de Runge-Kutta, 191
de quarta ordem, 192
dos mnimos quadrados, 113
228
Clculo Numrico
mtodo da potncia, 87
mtodo das secantes, 63
convergncia, 64
mtodo de
Gauss-Seidel, 84
Jacobi, 83
mtodo de Newton
para sistemas, 95
mtodo de Newton-Raphson, 58
convergncia, 60
mtodo de passo mltiplo
Adams-Moulton, 193
mtodos iterativos
sistemas lineares, 83
convergncia, 86
matriz
condicionamento, 78
jacobiana, 101
norma, 80
medida
de erro, 18
de exatido, 18
mudana de base, 3
nmero de condicionamento, 81
ordem de preciso, 190
polinmios
de Lagrange, 109
ponto fixo, 48
problema de valor de contorno, 150
problema de valor inicial, 184
quadratura numrica
Gauss-Legendre, 172
representao
de nmeros, 8
nmeros inteiros, 8
representao de nmeros
inteiros
bit de sinal, 9
complemento de dois, 10
sem sinal, 9
Scilab, 199
elementos da linguagem, 201
funes, 209
funes e constantes, 202
grficos, 210
instalao e execuo, 199
matrizes, 203
operaes matemticas, 202
operador :, 204
operadores lgicos, 202
ramificao e repetio, 207
sobre, 199
usando, 200
simulao
computacional, 1
numrica, 1
sistema de equaes
no lineares, 92
sistema de numerao, 3
sistema linear, 71
condicionamento, 78
sistema numrico
de ponto fixo, 11
de ponto flutuante, 13
ponto fixo
normalizao, 12
spline, 127
fixado, 132
natural, 129
tolerncia, 52
vetor
norma, 79