Академический Документы
Профессиональный Документы
Культура Документы
Um Livro Colaborativo
23 de agosto de 2016
Autores
Introduo
cos(x) = x e xex = 10
Para resolver o problema de valor inicial
y 0 + xy = x,
y(0) = 2,
2 /2
podemos usar o mtodo de fator integrante e obtemos y = 1+ex .
J o clculo da soluo exata para o problema
y 0 + xy = ey ,
y(0) = 2,
no possvel.
Da mesma forma, resolvemos a integral
Z 2
2
xex dx
1
Aritmtica de mquina
2.1 Sistema de numerao e mudana
de base
Usualmente, utilizamos o sistema de numerao decimal para re-
presentar nmeros. Esse um sistema de numerao posicional
onde a posio do dgito indica a potncia de 10 que o dgito est
representando.
dn bn + dn1 bn1 + + d0 b0 + d1 b1 + d2 b2 +
x = (1001,101)2
= 1 23 + 0 22 + 0 21 + 1 20 + 1 21 + 0 22 + 1 23
= 8 + 0 + 0 + 1 + 0,5 + 0 + 0,125 = 9,625
(301,2)4 = 3 42 + 0 41 + 1 40 + 2 41 = 49,5
(1357,24)8 = 1 83 + 3 82 + 5 81 + 7 80 + 2 81 + 4 82
= 512 + 192 + 40 + 7 + 0,25 + 0,0625 = 751,3125
Exemplo 5 (Sistema hexadecimal). O sistema de numerao cuja
a base b = 16 chamado de sistema hexadecimal. O conjunto de
smbolos necessrios S = {,, , 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E
Convertendo o nmero (E2AC)16 para a base 10 temos
Xi d0
= + d1 + d2 b1 + dn1 bn2 + dn bn1 .
b b
Observe que d0 o resto da diviso de X i por b, pois d1 + d2 b1 +
dn1 bn2 + dn bn1 inteiro e db0 uma frao (lembramos que
d0 < b). Da mesma forma, o resto da diviso de d1 + d2 b1 + dn1
bn2 + dn bn1 por b d1 . Repetimos o processo at encontrar os
smbolos d0 , d1 , d2 , . . ..
Exemplo 7 (Converso da parte inteira). Vamos escrever o nmero
125 na base 6. Para tanto, fazemos sucessivas divises por 6 como
segue:
a) (25,13)8
b) (101,1)2
c) (12F,4)16
d) (11,2)3
E 2.1.3. Escreva cada nmero decimal na base b.
a) 7,6 na base b = 5
b) 29,16 na base b = 6
-->2^2 == 4
ans =
T
-->sqrt(3)^2 == 3
ans =
F
2.2.1 Nmeros inteiros
Tipicamente um nmero inteiro armazenado num computador
como uma sequncia de dgitos binrios de comprimento fixo de-
nominado registro.
Representao sem sinal
Um registro com n bits da forma
dn1 dn2 d1 d0
s dn2 d1 d0
dn1 dn2 d1 d0
(11111111)2 = 27 + 26 + + 2 + 1 = 1
..
.
(10000001)2 = 27 + 1 = 127
(10000000)2 = 27 = 128
(01111111)2 = 26 + + 2 + 1 = 127
..
.
(00000010)2 = 2
(00000001)2 = 1
(00000000)2 = 0
-->int8( bin2dec('00000011') )
ans = 3
-->int8( bin2dec('11111110') )
ans = -2
2.2.2 Sistema de ponto fixo
O sistema de ponto fixo representa as partes inteira e fracionria do
nmero com uma quantidade fixas de dgitos.
Exemplo 15. Em um computador de 32 bits que usa o sistema de
ponto fixo, o registro
10000000000000000000000000000000
e
00000000000000000000000000000000
(d30 d29 d17 d16 )2 d31 (215 216 ) + (0,d15 d14 d1 d0 )2 se o
sinal do nmero estiver representado por uma implementao
em complemento de um. Observe que o zero tambm possui
duas representaes possveis:
11111111111111111111111111111111
e
00000000000000000000000000000000
h = 6626 1037
h = 6.626 1034
h = 0.6626 1033
h = 0.006626 1031
x = (1)s (M )b bE ,
E o expoente,
onde
EM IN o menor expoente,
EM AX o maior expoente.
Considere uma mquina com um registro de 64 bits e base = 2.
Pelo padro IEEE754, 1 bit usado para o sinal, 11 bits para o
expoente e 52 bits so usados para o significando tal que
x = (1)s M 2cBIAS ,
e o significando por
representa o nmero
-->MINR=number_properties('tiny')
-->MAXR=number_properties('huge')
-->number_properties('tiniest')
Exemplo 19. Com 64 bits, temos que o epsilon ser dado por
1 (1.0000 0000....0000)2 20
+(0.0000 0000....0001)2 20 = 252
(1.0000 0000....0001)2 20 6= 1
Assim = 252 .
2.2.6 A distribuio dos nmeros
|x x|
, x 6= 0.
|x|
Observao 5. Observe que o erro relativo adimensional e,
muitas vezes, dado em porcentagem. Mais precisamente, o
erro relativo em porcentagem da aproximao x dado por
|x x|
100%.
|x|
|x x|
< 5 10s .
|x|
a
Esta definio apresentada em [3]. No existe uma definio nica na
literatura para o conceito de dgitos significativos corretos, embora no pre-
cisamente equivalentes, elas transmitem o mesmo conceito. Uma maneira
de interpretar essa regra : calcula-se o erro relativo na forma normalizada
e a partir da ordem do expoente temos o nmero de dgitos significativos
corretos. Como queremos o expoente, podemos estimar s por
|x x|
DIGSE(x,x) = s int log10
.
|x|
|x x| |10 9,999|
= 0,0000999... < 5 104 .
|x| 10
|1 1,5|
= 5 101 < 5 100 .
|1|
2.3.1 Erros de arredondamento
Os erros de arredondamento so aqueles gerados quando aproxima-
mos um nmero real por um nmero com representao finita.
Existem vrias formas de arredondar
-->format('e',8)
-->int(-0.675*1e2)/1e2
Por arredondamento:
b) x = 1,00001 e x = 1
c) x = 100001 e x = 100000
a) x = 2,5834 e x = 2,6
b) x = 100 e x = 99
a) x = 3,1415926535898 e x = 3,141593
b) x = 1
7
e x = 1,43 101
2.4 Erros nas operaes elementares
O erro presente relativo nas operaes elementares de adio, sub-
trao, multiplicao e diviso da ordem do epsilon de mquina.
Se estivermos usando uma mquina com 64 bits, temos que =
252 2,22E16.
Este erro bem pequeno! Assumindo que x e y so representados
com todos dgitos corretos, temos aproximadamente 15 dgitos sig-
nificativos corretos quando fizemos uma das operaes x + y, x y,
x y ou x/y.
Mesmo que fizssemos, por exemplo, 1000 operaes elementares em
ponto flutuante sucessivas, teramos no pior dos casos acumulado
todos esses erros e perdido 3 casas decimais (1000 1015 1012 ).
Entretanto, quando subtramos nmeros muito prximos, os proble-
mas aumentam.
2.5 Cancelamento catastrfico
Quando fazemos subtraes com nmeros muito prximos entre si
ocorre o cancelamento catastrfico, onde podemos perder vrios d-
gitos de preciso em uma nica subtrao.
Exemplo 26. Efetue a operao
0,987624687925 0,987624 = 0,687925 106
usando arredondamento com seis dgitos significativos e observe a
diferena se comparado com resultado sem arredondamento.
Soluo. Os nmeros arredondados com seis dgitos para a man-
tissa resultam na seguinte diferena
0,987625 0,987624 = 0,100000 105
Observe que os erros relativos entre os nmeros exatos e aproxima-
dos no lado esquerdo so bem pequenos,
|0,987624687925 0,987625|
= 0,00003159
|0,987624687925|
e
|0,987624 0,987624|
= 0%,
|0,987624|
enquanto no lado direito o erro relativo enorme:
x2 + 300x 0,014 = 0,
= b2 4 a c
= 0,300000 103 0,300000 103
+ 0,400000 101 0,100000 101 0,140000 101
= 0,900000 105 + 0,560000 101
= 0,900001 105
e as razes:
0,300000 103
x1 ,x2 =
0,200000 101
0,300000 103 0,900001 105
=
0,200000 101
0,300000 103 0,300000 103
=
0,200000 101
Ento, as duas razes so:
1
1 x = 1 x + O(x2 ).
2
Substituindo na frmula de Bhaskara, temos:
b b2 4ac
x =
2a
q
b b 1 4ac
b2
=
2a
4ac
b b 1 2b2
2a
b + b 4ac
2b
x2 =
2a
4ac
=
4ab
c 0,140000 101
= = = 0,466667 104
b 0,300000 103
y = f (x) (2.1)
y = f (x ) (2.2)
y f 0 (x) xx
(2.5)
y f (x) x
e fornece
uma estimativa de quanto os erros relativos na entrada
x sero amplificados na sada y .
x y
n
f
X
f = |f (x1 ,x2 ,...,xn ) f (x1 , x2 ,...,xn )| (x1 , x2 ,...,xn ) xi
xi
i=1
Ou seja, os erros
na entrada sero diminudos
pela metade. De fato,
usando y = 2 = 1,4142136... e y = 1,999 = 1,41386..., obtemos
y 2 1,999
= 0,000250031... (2.9)
y 2
Exemplo 30. Considere a funo f (x) = 10
1x2
e x = 0,9995 com
um erro absoluto na entrada de 0,0001.
Calculando y = f (x ) temos
10
y = 10002,500625157739705173 (2.10)
1 (0,9995)2
Mas qual a estimativa de erro nessa resposta? Quantos dgitos
significativos temos nessa resposta?
Sabendo que f 0 (x) = 10/(1 x2 )2 , o nmero de condicionamento
xf 0 (x)
2x2
f (x) := = (2.11)
1 x2
f (x)
f = |f 0 (x)|x .
f = |(1 + x)ex | x
= |3e2 | 0,05 = 1,1084.
y
= 0,03 y = 2 0,03 = 0,06
|y|
Aplicando a expresso para estimar o erro em f temos
f f
f = + y
x x
y
2e4 9+1 4
= 0,3 + 2 e 0,06 = 8,493045557
27 9
Portanto, o erro relativo ao calcular f estimado por
f 8,493045557
= 9+1 4 = 14%
|f | 9
e
0,01565247584
2 32 22
= 0,7%
2
Exerccios
V
I=
V0
(1 + x) 1
f (x) = =1
x
n
1
lim 1+ = e = 2,718281828459... (2.18)
n n
n n
1 1
n 1+ n
n 1+ n
x 1 + x (1 + x) 1. (2.21)
n
Finalmente, notamos que quando tentamos calcular 1 + n1 para
n grande, existe perda de significncia no clculo de 1 + 1/n. Para
entendermos isso melhor, vejamos o que acontece no Scilab quando
n = 7 1013 :
-->n=7e13
n =
7.000000000000000000D+13
-->1/n
ans =
1.428571428571428435D-14
-->y=1+1/n
y =
1.000000000000014211D+00
Observe a perda de informao ao deslocar a mantissa de 1/n. Para
evidenciar o fenmenos, observamos o que acontece quando tenta-
mos recalcular n subtraindo 1 de 1 + 1/n e invertendo o resultado:
-->y-1
ans =
1.421085471520200372D-14
-->1/(y-1)
ans =
7.036874417766400000D+13
Exemplo 38 (Analogia da balana). Observe a seguinte compa-
rao interessante que pode ser feita para ilustrar os sistemas de
numerao com ponto fixo e flutuante: o sistema de ponto fixo
como uma balana cujas marcas esto igualmente espaadas; o sis-
tema de ponto flutuante como uma balana cuja distncia entre
as marcas proporcional massa medida. Assim, podemos ter
uma balana de ponto fixo cujas marcas esto sempre distanciadas
de 100g (100g, 200g, 300g, ..., 1Kg, 1,1Kg,...) e outra balana de
ponto flutuante cujas marcas esto distanciadas sempre de aproxi-
madamente um dcimo do valor lido (100g, 110g, 121g, 133g, ...,
1Kg, 1,1Kg, 1,21Kg, ...) A balana de ponto fixo apresenta uma
resoluo baixa para pequenas medidas, porm uma resoluo alta
para grandes medidas. A balana de ponto flutuante distribui a
resoluo de forma proporcional ao longo da escala.
Seguindo nesta analogia, o fenmeno de perda de significncia pode
ser interpretado como a seguir: imagine que voc deseje obter o
peso de um gato (aproximadamente 4Kg). Dois processos esto dis-
ponveis: colocar o gato diretamente na balana ou medir seu peso
com o gato e, depois, sem o gato. Na balana de ponto flutuante,
a incerteza associada na medida do peso do gato (sozinho) apro-
ximadamente 10% de 4Kg, isto , 400g. J a incerteza associada
medida da uma pessoa (aproximadamente 70Kg) com o gato de
10% do peso total, isto , aproximadamente 7Kg. Esta incerteza
da mesma ordem de grandeza da medida a ser realizada, tornado o
processo impossvel de ser realizado, j que teramos uma incerteza
da ordem de 14Kg (devido dupla medio) sobre uma grandeza
de 4Kg.
Exerccios
exp(1/)
1 + exp(1/)
e
1
exp(1/) + 1
com > 0. Verifique que elas so idnticas como funes reais.
Teste no computador cada uma delas para = 0,1, = 0,01 e
= 0,001. Qual dessas expresses mais adequada quando um
nmero pequeno? Por qu?
]
Captulo 3
Soluo de equaes de
uma varivel
existe c (2,0) tal que f (c) = 0, ou seja, existe pelo menos uma
soluo nesse intervalo.
ex + sin(x) + x = 10
inferior a 104 .
E 3.1.4. Mostre que a equao
1
ln(x) + x =v
x
possui uma soluo para cada v real e que esta soluo nica.
3.2 Mtodo da bisseo
Portanto, n 9.
3.2.1 Cdigo Scilab: mtodo da bisseo
O seguinte cdigo uma implementao no Scilab do algoritmo da
bisseo. As variveis de entrada so:
f - funo objetivo
A varivel de sada :
xex = t,
vd
Id = IR exp 1 ,
vt
b) V = 3 V e R = 1 k.
c) V = 3 V e R = 10 k.
d) V = 300 mV e R = 1 k.
e) V = 300 mV e R = 1 k.
f) V = 30 V e R = 1 k.
g) V = 30 V e R = 10 k.
Dica: V = RId + vd .
3.3 Iterao de Ponto Fixo
Vamos analisar o mtodo babilnico para extrao da raiz quadrada
de um nmero positivo A usando operaes de soma, subtrao,
diviso e multiplicao.
Seja r > 0 uma aproximao para A. Temos trs possibilidades:
A
A
r> A = r
< A = A r
,r
A
r= A = r
= A
A
r< A = r
> A = A r, Ar
Ou seja, uma aproximao melhor para A est no intervalo entre
r e Ar que pode ser aproximada como
A
r+ r
x=
2
Aplicando esse mtodo repetidas vezes, podemos construir a itera-
o
x(1) = r
x(n) A
x(n+1) = + (n) , n = 1,2,3,...
2 2x
Exemplo 43. Para obter uma aproximao para 5, podemos ini-
ciar com a aproximao inicial r = 2 e A = 5.
Temos que
x(1) = 2
e a partir da iterao
x(n) 2,5
x(n+1) = + (n)
2 x
obtemos
2 2,5
x(2) = + = 1 + 1,25 = 2,25
2 2
2,25 2,5
x(3) = + = 2,2361111
2 2,25
2,2361111 2,5
x(4) = + = 2,236068
2 2,2361111
2,236068 2,5
x(5) = + = 2,236068
2 2,236068
Exemplo 44. Para obter uma aproximao para 10, podemos
iniciar com r = 1 e A = 10.
Assim
x(1) = 1
e a partir de
x(n) 5
x(n+1) = + (n)
2 x
obtemos
1 5
x(2) = + = 0,5 + 5 = 5,5
2 1
5,5 5
x(3) = + = 3,6590909
2 5,5
3,6590909 5
x(4) = + = 3,1960051
2 3,6590909
3,1960051 5
x(5) = + = 3,1624556
2 3,1960051
3,1624556 5
x(6) = + = 3,1622777
2 3,1624556
3,1622777 5
x(7) = + = 3,1622777
2 3,1622777
x(n) A
lim x(n+1) = lim + n
lim
n n 2 2x(n)
x A
x = +
2 2x
x A
=
2 2x
A
x =
x
(x )2 = A
x = A
Portanto, sempre que esse mtodo converge, temos a garantia de
que o limite A. (Independente do valor inicial!)
De fato, podemos provar que o mtodo convergente para qualquer
valor inicial positivo x. E, ainda, que a convergncia rpida (ainda
precisamos definir isso).
Para responder essas perguntas, devemos formalizar o conceito de
ponto fixo. Antes disso, analisemos mais um exemplo:
Exemplo 45. Queremos resolver a equao
xex = 10.
Observe que este problema equivalente a resolver
10
x = ln
x
ou
x = 10ex .
A partir dessas duas equaes podemos propor dois processos ite-
rativos diferentes:
10
(n+1)
a) x = ln (n)
x
(n)
b) x(n+1) = 10ex
x(1) = 1
x(2) = ln (10) = 2,3025851
!
(3) 10
x = ln = 1,4685526
2,3025851
!
10
x(4) = ln = 1,9183078
1,4685526
!
10
x(5) = ln = 1,6511417
1,9183078
..
.
x(11) = 1,7421335
x(21) = 1,7455151
x(31) = 1,745528
x(32) = 1,745528
Iterando a segunda equao obtemos a sequncia
x(1) = 1
x(2) = 10e1 = 3,6787944
x(3) = 10e3,6787944 = 0,2525340
x(4) = 10e0,2525340 = 7,7682979
x(5) = 10e7,7682979 = 0,0042293
x(6) = 10e0,0042293 = 9,9577961
x(n+1) = g(x(n) )
lim x(n) = p.
n
f (a) = a g(a) a a = 0
e
f (b) = b g(b) b b = 0
Se f (a) = a ou f (b) = b, ento o ponto fixo existe. Caso contrrio,
as desigualdade so estritas e a funo muda de sinal no intervalo.
Como a funo contnua, pelo teorema do valor intermedirio,
existe um ponto x no intervalo (a,b) tal que f (x ) = 0, ou seja,
x g(x ) = 0. Observe que x um ponto fixo de g, pois g(x ) = x .
Para provar que o ponto fixo nico, observamos que se x e x
so pontos fixos, eles devem ser iguais, pois:
|x x | = |g(x ) g(x )| |x x |
A desigualdade |x x | |x x | com < 1 implica |x x | =
0.
Observaes:
ds = |x y|, x < y.
x
f (x) = cos(x).
f 0 (x) = sin(x)
x(n+1) = cos(x(n) ), n 0
x(0) = 1
Vamos supor que a funo g(x) pode ser aproximada por seu po-
linmio de Taylor em torno do ponto fixo:
g(x) = g(x ) + (x x )g 0 (x ) + O (x x )2 , n 0
= x + (x x )g 0 (x ) + O (x x )2
x + (x x )g 0 (x )
Concluses:
Se |g 0 (x )| < 1, ento, a distncia de x(n) at o ponto fixo x
est diminuindo a cada passo.
Se |g 0 (x )| > 1, ento, a distncia de x(n) at o ponto fixo x
est aumentando a cada passo.
Se |g 0 (x )| = 1, ento, nossa aproximao de primeiro or-
dem no suficiente para compreender o comportamento da
sequncia.
Fixaremos, portanto, nos casos quando |g 0 (x )| < 1.
3.3.4 Erro absoluto e tolerncia
n = x(n+1) x(n)
A pergunta natural : Ser que o erro n = x(n) x pequeno
quando n = x(n+1) x(n) for pequeno?
x = lim x(n)
n
portanto:
x x(N ) = x(N +1) x(N ) + x(N +2) x(N +1) + x(N +3) x(N +
x(N +k+1) x(N +k)
X
=
k=0
x(n+1) x + (x(n) x )g 0 (x )
x(n) x + (x(n1) x )g 0 (x )
Portanto:
k
x(N +k+1) x(N +k) (x(N +1) x(N ) ) (g 0 (x ))
E temos:
x x(N ) = x(N +k+1) x(N +k)
X
k=0
k
(x(N +1) x(N ) ) (g 0 (x ))
X
k=0
1
= (x(N +1) x(N ) ) , |g 0 (x )| < 1
1 g 0 (x )
n
|g 0 (x )|
n1
e portanto
N
N .
1 n1
n
cos(x) = x
possui uma nica soluo no intervalo [0, 1]. Encontre uma aproxi-
mao para esta soluo com 4 dgitos significativos.
xex 10
b) g(x) = x 15
xex 10
c) g(x) = x 10+ex
Implemente o processo iterativo x(n+1) = g(x(n) ) para n 0 e com-
pare o comportamento. Discuta os resultados com base na teoria
estudada.
a) g(x) = cos(x)
a) ex = x + 2 no intervalo (2,0).
e (3.1)
x(n+1) = .4x(n) + .6 cos(x(n) )
b
x(1) = .5
Use o teorema do ponto fixo para verificar que cada um desses pro-
cessos converge para a soluo da equao x de cos(x) = x. Ob-
serve o comportamento numrico dessas sequncias. Qual estabiliza
mais rpido com cinco casas decimais? Discuta.
Dica: Verifique que cos([0.5,1]) [0.5,1] e depois a mesma identi-
dade para a funo f (x) = .4x + .6 cos(x).
xn x = (1 )n1 (x1 x ).
onde q = 1 106 .
a) Calcule o limite
lim x(n)
x = n
analiticamente.
E 3.3.15.
e
h i
V RI (n)
I (n+1) = IR exp vt
1 ,n > 0
B
I (0) = 0
0 (x ) = 1 + (x )f 0 (x )
0 (x ) = 0,
ou seja
1
(x ) = .
f 0 (x )
Observe que x raiz de f (x) se, e somente se x ponto fixo de
f (x)
(x) = x
f 0 (x)
e 0 (x ) = 0 < 1. Portanto, o teorema do ponto fixo garante que
se x(0) for suficientemente prximo a x , ento o processo iterativo
dado por
f (x(n) )
x(n+1) = x(n)
f 0 (x(n) )
converge para x , desde que f 0 (x(n) ) 6= 0 para todo n N.
3.4.1 Interpretao Geomtrica
Considere o problema de calcular a raiz uma funo f , conforme
esboo na figura abaixo
Portanto
f (x(0) )
x(1) = x(0)
f 0 (x(0) )
que uma iterao do mtodo de Newton. Repetimos o processo
para calcular x(2) , x(3) ,.... De modo geral, temos
00 (x )
(x) = (x ) + (x x )0 (x ) + (x x )2 + O (x x )3
2
Sabemos que
f (x )
(x ) = x = x
f 0 (x )
f 0 (x )f 0 (x ) f (x )f 00 (x )
0 (x ) = 1 =11=0
(f 0 (x ))2
Portanto:
00 (x )
(x) = x + (x x )2 + O (x x )3
2
00
(x )
x + (x x )2 .
2
Logo,
x(n+1) = (x(n) )
00
(n) 2 (x )
x + (x x )
2
00 (x )
x(n+1) x (x(n) x )2
2
f 00 (x )
00 (x ) =
f 0 (x )
Exerccios
trace o grfico com auxlio do Scilab e verifique que ela possui uma
raiz positiva. Encontre uma aproximao para esta razo pelo gr-
fico e use este valor para inicializar o mtodo de Newton e obtenha
uma aproximao para a raiz com 8 dgitos significativos. (Use o
comando format('v',16) para alterar a visualizao no Scilab.)
5
x
E 3.4.5. Encontre as razes reais do polinmio f (x) = 100 + x4 +
3x + 1 isolando-as pelo mtodo do grfico e depois usando o mtodo
de Newton. Expresse a soluo com 7 dgitos significativos.
f (x(n) )
x(n+1) = x(n) (x(n) x(n1) )
f (x(n) ) f (x(n1) )
Portanto:
1 f 00 (x )
n+1 n n1 (3.3)
2 f 0 (x )
ou, equivalentemente:
1 f 00 (x ) (n)
x(n+1) x x x
x (n1)
x
(3.4)
2 f 0 (x )
E 3.5.5. A equao
cos(x) = e2x
tem infinitas razes. Usando mtodos numricos encontre as pri-
meiras razes dessa equao. Verifique a j-sima raiz (zj ) pode ser
aproximada por j 1/2 para j grande. Use o mtodo de Newton
para encontrar uma aproximao melhor para zj .
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.
zi Pisat
X
P =
i
b) Calcule a temperatura de orvalho de uma mistura de N-pentano
e N-heptano presso de 1.2bar quando as fraes molares dos
gases so z1 = z2 = 0.5. Para tal utilize a seguinte equao:
1 X zi
= sat
P i Pi
|n |
Iterao Linear < err
n+1 | (x )|n0 1 n
n1
linear (p = 1) n < n1
Quadrtica 1 f 00 (x )
Newton n+1 0 2n |n | < erro
(p = 2) 2 f (x )
f 00 (x )
5+1 n+1 0 n n1
p = f (x )
Secante 2 |n | < erro
1,618 M n
Captulo 4
Ax = y
onde
a11 a12 a1n x1 y1
a21
a22 a2n
x2
y2
A=
. .. .. ..
x= .
y= .
.. .. ..
. . .
am1 am2 amn xn ym
x+y+z =1
2x + y z = 0
2x + 2z + z = 1
Soluo. Escrevemos a matriz completa do sistema:
1 1 1 1 2 1 1 0
2 1 1 0
1 1 1 1
2 2 1 1 2 2 1 1
2 1 1 0
0 1/2 3/2 1
0 1 2 1
2 1 1 0
0 1 2 1
0 1/2 3/2 1
2 1 1 0
0 1 2 1
Encontramos 1/2z = 1/2, ou seja, z = 1. Substitumos na segunda
equao e temos y+2z = 1, ou seja, y = 1 e, finalmente 2x+yz =
0, resultando em x = 1.
0 2 2 x 8
=
1 2 1 y 9
1 1 1 z 6
Soluo. Construmos a matriz completa:
0 2 2 8 1 2 1 9
1 2 1 9
0 2 2 8
1 1 1 6 1 1 1 6
1 2 1 9
0 2 2 8
0 1 0 3
1 2 1 9
0 2 2 8
0 0 1 1
1 2 0 8
0 2 0 6
Portanto x = 2, y = 3 e z = 1.
Exemplo 51 (Problema com elementos com grande diferena de
escala).
2 x 4
=
1 y 3
Executamos a eliminao gaussiana sem pivotamento parcial para
6= 0 e || << 1:
2 4 2 4
2 4
1 3 0
3
Temos
3 4/
y=
2/
e
4 2y
x=
Observe que a expresso obtida para y se aproximada de 2 quando
pequeno:
3 4/ 3 4 4
y= = 2 = 2, quando 0.
2/ 2 2
4 2y 2
x= = (2 y)
e
1 1 1
E= 1 1 1
1 1 1
e o vetor
2
v=
3
4
a) Resolva o sistema Ax = v sem usar o computador.
x1 x2 = 0
(i3)2
xi1 + 2.5xi xi+1 = e 20 , 2i4
2x5 x4 = 0
E a norma L ou L como
n
kvk = max |vj |
j=1
kvk = 0 v = 0
kvk = ||kvk
ku + vk kuk + kvk (desigualdade do tringulo)
lim kukp
p
= kuk
Exemplo: Calcule a norma L1 , L2 e L de
1
2
v=
3
0
kvk1 = 1 + 2 + 3 + 0 = 6
kvk2 = 1 + 22 + 32 + 02 = 14
kvk = max{1,2,3,0} = 3
4.2.2 Norma matricial
Definimos a norma operacional em Lp de uma matriz A : Rn Rn
da seguinte forma:
kAkp = sup kAvkp
kvkp =1
kAkp = 0 A = 0
kAkp = ||kAkp
kA + Bkp kAkp + kBkp (desigualdade do tringulo)
kAvkp kAkp kvkp
kABkp kAkp kBkp
kIkp = 1
1 = kIkp = kAA1 kp kAkp kA1 kp (se A inversvel)
Casos especiais:
n
n X
kAk1 = max |Aij |
j=1
i=1
q
kAk2 = max{|| : (AA )}
n
n X
kAk = max |Aij |
i=1
j=1
3 5 7
A= 1 2 4
8 1 7
Soluo
kAk1 = max{12,8,18} = 18
kAk = max{15,7,16} = 16
q
kAk2 = max{0,5865124; 21,789128; 195,62436} = 13,986578
4.2.3 Nmero de condicionamento
O condicionamento de um sistema linear um conceito relacionado
forma como os erros se propagam dos dados de entrada para os
dados de sada, ou seja, se o sistema
Ax = y
A(x + x ) = y + y
Ax + Ax = y + y
e, portanto,
Ax = y .
Queremos avaliar a magnitude do erro relativo em y, representado
por ky k/kyk em funo da magnitude do erro relativo kx k/kxk.
kx k/kxk kx k kyk
=
ky k/kyk kxk ky k
kA1 y k kAxk
=
kxk ky k
kA1 kky k kAkkxk
kxk ky k
1
= kAkkA k
nas normas 1, 2 e .
E 4.2.3. Calcule o nmero de condicionamento das matrizes
71 41
52 30
e
1 2 3
2 3 4
4 5 5
usando as normas 1,2 e .
100000x 9999.99y = 10
100000x 9999.
e
9999.99x + 1000.1y = 1 9999.99x + 1000.
(j/10)3
xj = sin(j/10), yj = j/10 zj = j/10 , j = 1, . . . ,10
6
Use o Scilab para construir os seguintes vetores de erro:
|xj yj | |xj zj |
ej = fj =
|xj | xj
Calcule as normas 1, 2 e de e e f
4.3 Mtodos iterativos para sistemas li-
neares
4.3.1 Mtodo de Jacobi
Considere o problema Ax = y, ou seja,
a11 x1 + a12 x2 + + a1n xn = y1
a21 x1 + a22 x2 + + a2n xn = y2
.. .. .
. . = ..
an1 x1 + an2 x2 + + ann xn = yn
Os elementos xj so calculados iterativamente conforme:
(k)
(k+1)
y1 a12 x2 + + a1n x(k)
n
x1 =
a11
(k)
(k+1)
y2 a21 x1 + + a2n x(k)
n
x2 =
a22
..
.
(k) (k)
y2 an1 x1 + + an(n1) xn1
xn(k+1) =
ann
Em notao mais compacta, o mtodo de Jacobi consiste na itera-
o:
10x + y = 23
x + 8y = 26
usando o mtodo de Jacobi iniciando com x(0) = y (0) = 0.
23 y (k)
x(k+1) =
10
26 x(k)
y (k+1) =
8
23 y (0)
x(1) = = 2,3
10
26 x(0)
y (1) = = 3,25
8
23 y (1)
x(2) = = 1,975
10
26 x(1)
y (2) = = 2,9625
8
Cdigo Scilab: Jacobi
4.3.2 Mtodo de Gauss-Seidel
Considere o problema Ax = y, ou seja,
a11 x1 + a12 x2 + + a1n xn = y1
a21 x1 + a22 x2 + + a2n xn = y2
.. .. .
. . = ..
an1 x1 + a22 x2 + + ann xn = yn
Os elementos xj so calculados iterativamente conforme:
(k)
(k+1)
y1 a12 x2 + + a1n x(k)
n
x1 =
a11
(k+1)
(k+1)
y2 a11 x1 + + a1n x(k)
n
x2 =
a22
..
.
(k+1) (k+1)
y2 an1 x1 + + an(n1) xn1
x(k+1)
n =
Ann
Em notao mais compacta, o mtodo de Gauss-Seidel consiste na
iterao:
10x + y = 23
x + 8y = 26
usando o mtodo de Guass-Seidel iniciando com x(0) = y (0) = 0.
23 y (k)
x(k+1) =
10
26 x(k+1)
y (k+1) =
8
23 y (0)
x(1) = = 2,3
10
26 x(1)
y (1) = = 2,9625
8
23 y (1)
x(2) = = 2,00375
10
26 x(2)
y (2) = = 2,9995312
8
Cdigo Scilab: Gauss-Seidel
4.4 Anlise de convergncia
Uma condio suficiente porm no necessria para que os mtodos
de Gauss-Seidel e Jacobi convirjam a que a matriz seja diagonal
dominante estrita. Veja [3].
Exerccios
x1 x2 = 1
x1 + 2x2 x3 = 1
x2 + (2 + )x3 x4 = 1
x3 + 2x4 x5 = 1
x4 x5 = 1
x1 x2 = 0
xj1 + 5xj xj+1 = cos(j/10), 2 j 10
x11 = x10 /2 (4.1)
x1 + 10x2 + 3x3 = 27
4x1 + x3 = 6
2x1 + x2 + 4x3 = 12
4.5 Mtodo da potncia para clculo de
autovalores
Consideremos uma matriz A Rn,n diagonalizvel, isto , existe um
conjunto {vj }nj=1 de autovetores de A tais que qualquer elemento
x Rn pode ser escrito como uma combinao linear dos vj . Sejam
{j }nj=1 o conjunto de autovalores associados aos autovetores tal que
um deles seja dominante, ou seja,
|1 | > |2 | |3 | |n | > 0
x Ax A2 x A3 x
, , , ,...,
kxk kAxk kA2 xk kA3 xk
que pode ser obtida pelo seguinte processo iterativo:
Ak x
x(k+1) =
kAk xk
Ak x
Como a norma de kAk xk
igual a um, temos
k
1 1
v 1
kAk xk 1
e, portanto,
k 1
1 1
kAk xk kv1 k
1 k1
Ou seja, se definimos (k) = kAk xk
, ento
|(k) | 1
Retornando a (4.3), temos:
Ak x
(k) v1 0
kAk xk
Observe que um mltiplo de autovetor tambm um autovetor e,
portanto,
Ak x
kAk xk
um esquema que oscila entre os autovetores ou converge para o
autovetor v1 .
Uma vez que temos o autovetor v1 de A, podemos calcular 1 da
seguinte forma:
v1T Av1
Av1 = 1 v1 = v1T Av1 = v1T 1 v1 = 1 =
v1T v1
q
kAk2 = max{|| : (A A)} :
69 84 88
A=
15 40 11
70 41 20
E 4.5.5.
a) R1 = R2 = R3 = R4 = 2 e R5 = R6 = R7 = 100 e
R8 = 50
b) R1 = R2 = R3 = R4 = 2 e R5 = 50 e R6 = R7 = R8 =
100
V1 = V (4.4a)
V1 V2 V3 V2 V2
+ = 0 (4.4b)
R1 R2 R5
V2 V3 V4 V3 V3
+ = 0 (4.4c)
R2 R3 R6
V3 V4 V5 V4 V4
+ = 0 (4.4d)
R3 R4 R7
V4 V5 V5
= 0 (4.4e)
R4 R8
Complete a tabela abaixo representado a soluo com 4 al-
garismos significativos:
Caso V1 V2 V3 V4 V5
a
b
Ento, refaa este problema reduzindo o sistema para apenas
4 incgnitas (V2 , V3 , V4 e V5 ).
Soluo de sistemas de
equaes no lineares
x21
+ x22 = 1
3
x2
x21 + 2 = 1
4
Ento definimos
x21
3
+ x22 1
F (x) =
x22
x21 + 4
1
f1 f1 f1
x1 x2
xn
(0)
x1 x1
f2 f2 f2
x1 x2
xn
(0)
x2 x2
F (x) F (x(0) )
.. .. ... ..
(5.1)
. . .
..
.
fn fn fn
x1 x2 xn
xn x(0)
n
Definimos ento a matriz jacobiana por
f1 f1 f1
x1 x2
xn
f2 f2 f2
x1 x2
xn
(f1 ,f2 , . . . ,fn )
JF = =
.. .. ... ..
(x1 ,x2 , . . . ,xn )
. . .
fn fn fn
x1 x2 xn
JF x(k) x(k+1) x(k) = F (x(k) )
x(k+1) x(k) = JF1 x(k) F (x(k) )
x(k+1) = x(k) JF1 x(k) F (x(k) )
x(k+1) = x(k) JF1 x(k) F (x(k) ), n 0
x(0) = dado inicial
Observao 12. Usamos subndices para indicar o elemento de
um vetor e super-ndices para indicar o passo da iterao. Assim
(k)
x(k) se refere iterao k e xi se refere componente i no vetor
x(k) .
Observao 13. A notao JF1 x(k) enfatiza que a jacobiana
deve ser calculada a cada passo.
Observao 14. Podemos definir o passo (k) como
x21
+ x22 = 1
3
x2
x21 + 2 = 1
4
Para tal, definimos a funo F (x):
x21
+ x22 1
3
F (x) =
2
x
x21 + 2 1
4
cuja jacobiana :
2x1
2x 2
JF = 3
2x1 x22
Faremos a implementao numrica no Scilab. Para tal definimos
as funes que implementaro F (x) e a JF (x)
function y=F(x)
y(1)=x(1)^2/3+x(2)^2-1
y(2)=x(1)^2+x(2)^2/4-1
endfunction
function y=JF(x)
y(1,1)=2*x(1)/3
y(1,2)=2*x(2)
y(2,1)=2*x(1)
y(2,2)=x(2)/2
endfunction
function y=F(x)
y=[x(1)^2/3+x(2)^2-1; x(1)^2+x(2)^2/4-1]
endfunction
function y=JF(x)
y=[2*x(1)/3 2*x(2); 2*x(1) x(2)/2]
endfunction
Ou simplesmente
x=x-JF(x)\F(x)
q q
9 8
Observe que as solues exatas desse sistema so 11
, 11
.
x21 = cos(x1 x2 ) + 1
sin(x2 ) = 2 cos(x1 )
cuja jacobiana :
2x1 + x2 sin(x1 x2 ) x1 sin(x1 x2 )
JF (x) =
2 sin(x1 ) cos(x2 )
y(2,1) = 2*sin(x(1))
y(2,2) = cos(x(2))
endfunction
E agora, basta iterar:
x=[1.5; .5]
x=x-JF(x)\F(x) (5 vezes)
5.1.1 Cdigo Scilab: Newton para Sistemas
function [x] = newton(F,JF,x0,TOL,N)
x = x0
k = 1
//iteracoes
while (k <= N)
//iteracao de Newton
delta = -inv(JF(x))*F(x)
x = x + delta
//criterio de parada
if (norm(delta,'inf')<TOL) then
return x
end
k = k+1
end
error('Num. de iter. max. atingido!')
endfunction
Exerccios
2x1 x2 = cos(x1 )
x1 + 2x2 x3 = cos(x2 )
x2 + x3 = cos(x3 )
v = [v1 , v2 , , vn ]T
x = x(0) + hv
d d
g 0 (h) = g(h) = f (x(0) + hv)
dh dh
Pela regra da cadeia temos:
n
d (0)
X f dxj
f (x + hv) =
dh j=1 xj dh
(0)
Observamos que xj = xj + hvj , portanto
dxj
= vj
dh
Assim:
n
d f
f (x(0) + hv) =
X
vj
dh j=1 xj
Observamos que esta expresso pode ser vista como o produto in-
terno entre o gradiente de f e o vetor v:
f
x1 v1
f
v2
x2
f = .
v= .
.. ..
f
xn
vn
f1 (x)
f2 (x)
F (x) = .
..
fn (x)
Linearizando cada uma das funes fj , temos:
(0) T (0) (0) (0) 2
f1 x + f1 (x ) x x + O(kx x k )
f2 x(0) + Tf2 (x(0) ) x x(0) + O(kx x(0) k2 )
F (x) =
..
.
fn x(0) + Tfn (x(0) ) x x(0) + O(kx x(0) k2 )
| {z }
Vetor coluna
ou, equivalentemente:
(0) T (0)
f1 x f1 (x )
f2 x(0)
Tf2 (x(0) )
F (x) =
+
x x(0) +O(kx x(0
.. .. | {z }
.
.
Vetor coluna
fn x(0) Tfn (x(0) )
| {z } | {z }
Vetor coluna Matriz jacobiana
f1 f1 f1
x1 x2
xn
f2 f2 f2
x1 x2
xn
(f1 ,f2 , . . . ,fn )
JF = =
(x1 ,x2 , . . . ,xn )
.. .. .. ..
. . . .
fn fn fn
x1 x2 xn
fi
(JF )ij =
xj
Aproximao de funes
aeb = 1
ae2b = 5
ab+c = 2
a = 1
a+b+c = 6
f (x) = 1 + 2x + 3x2 .
6.1 Interpolao polinomial
Interpolao polinomial o caso particular do problema geral de in-
terpolao quando a famlia de funes constituda de polinmios.
k=0
tal que P (xi ) = yi equivalente ao seguinte sistema linear de n + 1
equaes e n + 1 incgnitas:
a0 + a1 x0 + a2 x20 + + an xn0 = y0
a0 + a1 x2 + a2 x21 + + an xn1 = y1
..
.
2 n
a0 + a1 x n + a2 x n + + an x n = y n
(0,0),(1,1),(2,4),(3,9)
a0 = 0
a0 + a1 + a2 + a3 = 1
a0 + 2a1 + 4a2 + 8a3 = 4
a0 + 3a1 + 9a2 + 27a3 = 9
P (x) = x2
Esta abordagem direta que fizemos ao calcular os coeficientes do po-
linmio na base cannica se mostra ineficiente quando o nmero de
pontos grande e quando existe grande discrepncia nas abscissas.
Neste caso a matriz de Vandermonde mal-condicionada (ver [6]),
acarretando um aumento dos erros de arredondamento na soluo
do sistema.
Uma maneira de resolver este problema escrever o polinmio em
uma base que produza um sistema mais bem-condicionado.
6.2 Diferenas divididas de Newton
O mtodo das diferenas divididas de Newton consistem em cons-
truir o polinmio interpolador da seguinte forma:
P (x) = a0 + a1 (x x0 ) + a2 (x x0 )(x x1 ) +
+ an (x x0 )(x x1 ) (x xn1 ).
a
a0 + a1 (x1 x
a0 + a1 (x2 x0 ) + a2 (x2 x0 )(x2 x
a0 = y0
y1 a0 y1 y0
a1 = =
x1 x0 x1 x0
y2 y1 y1 y0
y2 a1 (x2 x0 ) a0 (x2 x1 )
(x1 x0 )
a2 = =
(x2 x0 )(x2 x1 ) (x2 x0 )
...
A soluo deste sistema pode ser escrita em termos das Diferenas
Divididas de Newton, definidas recursivamente conforme:
f [xj ] = yj
f [xj+1 ] f [xj ]
f [xj ,xj+1 ] =
xj+1 xj
f [xj+1 ,xj+2 ] f [xj ,xj+1 ]
f [xj ,xj+1 ,xj+2 ] =
xj+2 xj
..
.
0 x0 f [x0 ]
f [x1 ]f [x0 ]
f [x0 ,x1 ] = x1 x0
f [x2 ]f [x1 ]
f [x1 ,x2 ] = x2 x1
2 x2 f [x2 ]
Exemplo 61. Encontrar o polinmio que passe pelos seguintes pon-
tos
(1,3),(0,1),(1,3),(3,43)
j xj f [xj ] f [xj1 ,xj ] f [xj2 ,xj1 ,xj ] f [xj3 ,xj2 ,xj1 ,xj ]
0 1 3
13
0(1)
= 2
2(2)
1 0 1 1(1)
=2
31 62
10
=2 3(1)
=1
202
2 1 3 30
=6
Portanto
n
X
P (x) = y1 L1 (x) + y2 L2 (x) + + yn Ln (x) = yj Lj (x)
j=1
Y 1
Lk (xk ) = Ck (xk xj ) = Ck = Q
1j6=kn 1j6=kn (xk xj )
Portanto,
Y (x xj )
Lk (x) =
1j6=kn (xk xj )
(0,0),(1,1),(2,4),(3,9)
Escrevemos:
(x 1)(x 2)(x 3) 1 11
L1 (x) = = x 3 + x2 x + 1
(0 1)(0 2)(0 3) 6 6
x(x 2)(x 3) 1 5
L2 (x) = = x3 x2 + 3x
1(1 2)(1 3) 2 2
x(x 1)(x 3) 1 3
L3 (x) = = x3 + 2x2 x
2(2 1)(2 3) 2 2
x(x 1)(x 2) 1 1 1
L4 (x) = = x3 x2 + x
3(3 1)(3 2) 6 2 3
Assim temos:
(0,0),(1,1),(2,0),(3,1)
f (n+1) ((x))
f (x) = P (x) + (x x0 )(x x1 ) (x xn ),
(n + 1)!
onde
M = max |f (n+1) ((x))|
Exemplo 64. Considere a funo f (x) = cos(x) e o polinmio P (x)
de grau 2 tal que P (0) = cos(0) = 1, P ( 12 ) = cos( 12 ) e P (1) = cos(1).
Use a frmula de Lagrange para encontrar P (x). Encontre o erro
mximo que se assume ao aproximar o valor de cos(x) pelo de P (x)
no intervalo [0,1]. Trace os grficos de f (x) e P (x) no intervalo [0,1]
no mesmo plano cartesiano e, depois, trace o grfico da diferena
cos(x) P (x). Encontre o erro efetivo mximo | cos(x) P (x)|.
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))
Portanto:
0,85
|f (x) P (x)| < 0,0481125 0,0068159 < 7 103
3!
Para encontrar o erro efetivo mximo, basta encontrar o mximo de
|P (x) cos(x)|. O mnimo (negativo) de P (x) cos(x) acontece em
x1 = 4,29 103 e o mximo (positivo) acontece em x2 = 3,29 103 .
Portanto, o erro mximo efetivo 4,29 103 .
1 1
Z 1
2 3 3 2 1 4
P (x)dx = f (0) x x +x + f x3 + 2x2
0 3 2 0 2 3 0
1
2 3 1 2
+ f (1) x x
3 2 0
2 3 1 4 2 1
= f (0) +1 +f + 2 + f (1)
3 2 2 3 3 2
1 2 1 1
= f (0) + f + f (1)
6 3 2 6
Para fazer a estimativa de erro usando o teorema (6), e temos
Z 1 Z 1 Z 1
f (x)dx P (x)dx =
f (x) P (x)dx
0 0 0
Z 1
|f (x) P (x)|dx
0
M Z 1 1
x x (x 1) dx
6 "0 2
M Z 1/2 1
= x x (x 1)dx
6 0 2
#
Z 1
1
x x (x 1)dx
1/2 2
M 1 1 M
= = .
6 64 64 192
Soluo. Defina
temos que
8a + 12b = 25,2
12a + 28b = 60,8
n
[zi bi ]2
X
E := (6.1)
i=1
onde z = Ax e zi linha i do vetor z, dado por:
m
X
zi = (Ax)i = aij xj , i = 1, ,n (6.2)
j=1
AT Ax = AT b (6.5)
Teorema 7. A matriz M = AT A quadrada de ordem m e
invertvel sempre que o posto da matriz A igual a nmero de
colunas m.
f1 (x1 ) f2 (x1 ) fm (x1 ) y1
a1
f1 (x2 ) f2 (x2 ) fm (x2 ) y2
a2
f1 (x3 ) f2 (x3 ) fm (x3 )
.
= y3
..
.. .. .. .. ..
.
. . . .
am
f1 (xn ) f2 (xn ) fm (xn ) yn
0,01 1 1,99
1,02 1 4,55
a
2,04 1
=
7,2
b
2,95 1
9,51
3,55 1 10,82
0,01 1,02 2,04 2,95 3,55
1 1 1 1 1
o que fornece:
0,01 1
1,02 1
0,01 1,02 2,04 2,95 3,55
a
2,04 1 =
1 1 1 1 1
b
2,95 1
3,55 1
1,99
4,55
0,01 1,02 2,04 2,95 3,55
7,2
1 1 1 1 1
9,51
10,82
26,5071 9,57 a 85,8144
=
9,57 5 b 34,07
A soluo desse sistema a = 2,5157653 e b = 1,9988251
A tabela abaixo mostra os valores dados e os valores ajustados:
xi yi axi + b axi + b yi
0,01 1,99 2,0239828 0,0339828
1,02 4,55 4,5649057 0,0149057
2,04 7,2 7,1309863 0,0690137
2,95 9,51 9,4203327 0,0896673
3,55 10,82 10,929792 0,1097919
Exerccios
xi yi
0,01 1,99
1,02 4,55
2,04 7,2
2,95 9,51
3,55 10,82
e complete a tabela:
xi yi ax2i + bxi + c ax2i + bxi + c yi
0,01 1,99
1,02 4,55
2,04 7,20
2,95 9,51
3,55 10,82
E 6.6.2. Dado o seguinte conjunto de dados
xi yi
0,0 31
0,1 35
0,2 37
0,3 33
0,4 28
0,5 20
0,6 16
0,7 15
0,8 18
0,9 23
1,0 31
Encontre a funo do tipo f (x) = a + b sin(2x) + c cos(2x)
que melhor aproxima os valores dados.
z = ln A + bx := B + bx.
Temos
1 1
A=
1 2
1 3
i
linear original seria A = 1,19789 e B = 0,474348
xi yi
0,0 9,12
0,1 1,42
0,2 - 7,76
0,3 - 11,13
0,4 - 11,6
0,5 - 6,44
0,6 1,41
0,7 11,01
0,8 14,73
0,9 13,22
1,0 9,93
Soluo. Usando o fato que y = A cos(2x + ) = a cos(2x)
b sin(2x), onde a = A cos() e b = A sin(), z = [ a b ]T soluo
do problema
B T Bz = B T y,
onde
1. 0.
0,8090170 0,5877853
0,3090170 0,9510565
0,3090170 0,9510565
cos(2x0 ) sin(2x0 )
0,8090170 0,5877853
cos(2x1 ) sin(2x1 )
B =
..
=
1,0000000 0,0000000 .
.
0,8090170
0,5877853
cos(2x10 ) sin(2x10 )
0,3090170 0,9510565
0,3090170 0,9510565
0,8090170 0,5877853
1,0000000 0,0000000
Assim, a = 7,9614704 e b = 11,405721 e obtemos o seguinte sistema:
A cos() = 7,9614704
.
A sin() = 11,405721
Observe que
A2 = 7,96147042 + 11,4057212
e, escolhendo A > 0, A = 13,909546 e
11,405721
sin() = = 0,8199923
13,909546
Assim, como cos tambm positivo, um ngulo do primeiro
quadrante:
= 0,9613976
Portanto f (x) = 13,909546 cos(2x+0,9613976). Observe que nesse
exemplo a soluo do problema linear a mesma do problema no
linear.
a
Exemplo 72. Encontre a funo f da forma y = f (x) = b+x
que
ajusta a tabela de pontos
xi yi
0,0 101
0,2 85
0,4 75
0,6 66
0,8 60
1,0 55
1 x1
1 0,0
1 x2
1 0,2
1 x3 1 0,4
A= =
1 x4 1 0,6
1 x5
1 0,8
1 x6 1 1,0
e
1/y1
0,0099010
1/y 0,0117647
2
1/y3 0,0133333
Y = =
1/y4 0,0151515
1/y5
0,0166667
1/y6 0,0181818
(xi+1 x) (x xi )
Pi (x) = yi + yi+1
(xi+1 xi ) (xi+1 xi )
Exemplo 73. Construa uma funo linear por partes que interpola
os pontos (0,0), (1,4), (2,3), (3,0), (4,2), (5,0).
A funo procurada pode ser construda da seguinte forma:
0 x1 + 1 x0 ,0 x < 1
01 10
f (x) =
4 x2
12
+ 3 x1
21
,1 x < 2
3 x3 + 0 x2 ,2 x 3
23 32
Simplificando, obtemos:
x ,0 x < 1
f (x) = x + 5 ,1 x < 2
3x + 9 , 2 x 3
sj (xj ) = yj , j = 1, . . . , n 1
sj (xj+1 ) = yj+1 , j = 1, . . . , n 1
s0j (xj+1 ) = s0j+1 (xj+1 ), j = 1, . . . , n 2
s00j (xj+1 ) = s00j+1 (xj+1 ), j = 1, . . . , n 2
Como
s0j (x) = bj + 2cj (x xj ) + 3dj (x xj )2 (6.6)
e
s00j (x) = 2cj + 6dj (x xj ), (6.7)
temos, para j = 1, . . . , n 1, as seguintes equaes
aj = y j ,
aj + bj (xj+1 xj ) + cj (xj+1 xj )2 + dj (xj+1 xj )3 = yj+1 ,
bj + 2cj (xj+1 xj ) + 3dj (xj+1 xj )2 = bj+1 ,
cj + 3dj (xj+1 xj ) = cj+1 ,
hj = xj+1 xj
e temos
aj = y j ,
aj + bj hj + cj h2j + dj h3j = yj+1 ,
bj + 2cj hj + 3dj h2j = bj+1 ,
cj + 3dj hj = cj+1 ,
que podem ser escrita da seguinte maneira
aj = y j , (6.8)
cj+1 cj
dj = , (6.9)
3hj
cj+1 cj 3
yj+1 yj cj h2j 3hj
hj
bj = ,
hj
3yj+1 3yj 3cj h2j cj+1 h2j + cj h2j
=
3hj
3yj+1 3yj 2cj h2j cj+1 h2j
= (6.10)
3hj
e
s00n1 (xn ) = 2cn1 + 6dn1 (xn xn1 ) = 0.
Usando o fato que
temos que
1 0 0 0 0 0
h1 2h2 + 2h1 h2 0 0 0
0 h2 2h3 + 2h2 h3 0 0
A=
.. .. .. .. .. .. ..
. . . . . . .
0 0 0 hn2 2hn2 + 2hn1 hn1
0 0 0 0 0 1
(6.15)
0
3 y3hy 3 y2hy
c1
2
2
1
1
3 y4hy 3 y3hy
c2
3
3
2
2
c= e z= (6.16)
.. ..
. .
yn2 yn3
3 yn1hn2 3 yn2hn3
cn
0
a1 + b1 (x 2) + c1 (x 2)2 + d1 (x 2)3 , 2 x < 5
f (x) =
a2 + b2 (x 5) + c2 (x 5)2 + d2 (x 5)3 , 5 x < 9 .
a3 + b3 (x 9) + c3 (x 9)2 + d3 (x 9)3 , 9 x 12
(6.17)
Os coeficientes c1 , c2 e c3 resolvem o sistema Ac = z, onde
1 0 0 0 1 0 0 0
3 23+24 4 0 3 14 4 0
A=
=
0 4 24+23 3
0 4 14 3
0 0 0 1 0 0 0 1
c1 0 0
0,5(1,9) (1,9)4,5
c2
3 4
3 3
8,2
c= e z= =
0,50,5 0,5(1,9)
c3
3 3 3 4
2,8
c4 0 0
a1 = y1 = 4,5
a2 = y2 = 1,9
a3 = y3 = 0,5
c2 c1 0,7 0
d1 = = = 0,0777778
3h1 33
c3 c2 0,4 0,7
d2 = = = 0,0916667
3h2 34
c4 c3 0 + 0,4
d3 = = = 0,0444444
3h3 33
y2 y1 h1
b1 = (2c1 + c2 )
h1 3
1,9 4,5 3
= (2 0 0,7) = 2,8333333
3 3
y3 y2 h2
b2 = (2c2 + c3 )
h2 3
0,5 (1,9) 4
= (2 0,7 + 0,4) = 0,7333333
4 3
y4 y3 h3
b3 = (2c3 + c4 )
h3 3
0,5 0,5 3
= (2 (0,4) + 0) = 0,4666667
3 3
Portanto:
4,5 2,833(x 2) + 0,078(x 2)3 ,2 x < 5
f (x) =
1,9 0,733(x 5) + 0,7(x 5)2 0,092(x 5)3 , 5 x < 9
0,5 + 0,467(x 9) 0,4(x 9)2 + 0,044(x 9)3
, 9 x 12
No Scilab, podemos utilizar:
X = [2 5 9 12]'
Y = [4.5 -1.9 0.5 -0.5]'
h = X(2:4)-X(1:3)
A = [1 0 0 0;h(1) 2*h(1)+2*h(2) h(2) 0; ...
0 h(2) 2*h(2)+2*h(3) h(3);0 0 0 1 ]
z = [0, 3*(Y(3)-Y(2))/h(2)-3*(Y(2)-Y(1))/h(1), ...
3*(Y(4)-Y(3))/h(3)-3*(Y(3)-Y(2))/h(2), 0]'
c = A\z
for i=1:3
a(i) = Y(i)
d(i) = (c(i+1)-c(i))/(3*h(i))
b(i) = (Y(i+1)-Y(i))/h(i)-h(i)/3*(2*c(i)+c(i+1))
end
for i=1:3
P(i) = poly([a(i) b(i) c(i) d(i)],'x','coeff')
z = [X(i):.01:X(i+1)]
plot(z,horner(P(i),z-X(i)))
end
6.9.2 Spline fixado
Alternativamente, para completar o sistema (6.13), podemos impor
condies de contorno fixadas, ou seja,
S 0 (x1 ) = f 0 (x1 )
S 0 (xn ) = f 0 (xn ).
2h1 h1 0 0 0 0
h1 2h2 + 2h1 h2 0 0 0
0 h2 2h3 + 2h2 h3 0 0
A=
.. .. .. .. .. .. ..
. . . . . . .
0 0 0 hn2 2hn2 + 2hn1 hn1
0 0 0 0 hn1 2hn1
3 y2hy
1
1
3f 0 (x1 )
3 y3hy 3 y2hy
c1
2
2
1
1
3 y4hy 3 y3hy
c2
3
3
2
2
c= e z=
.. ..
. .
yn2 yn3
3 yn1hn2 3 yn2hn3
cn
3f 0 (xn ) 3 ynhy
n1
n1
a1 = y1 =0
a2 = y2 =1
a3 = y3 =0
a4 = y3 = 1
c2 c1 0,5956302 (0,0491874)
d1 = = = 0,1159588
3h1 3 /2
c3 c2 0 (0,5956302)
d2 = = = 0,1263967
3h2 3 /2
c4 c3 0,5956302 0
d3 = = = 0,1263967
3h3 3 /2
c5 c4 0,0491874 0,5956302
d4 = = = 0,1159588
3h4 3 /2
y2 y1 h1
b1 = (2c1 + c2 )
h1 3
1 0 /2
= (2 (0,0491874) 0,5956302) = 1
/2 3
y3 y2 h2
b2 = (2c2 + c3 )
h2 3
0 1 /2
= (2 (0,5956302) + 0) = 0,0128772
/2 3
y4 y3 h3
b3 = (2c3 + c4 )
h3 3
1 0 /2
= (2 0 + 0,5956302) = 0,9484910
/2 3
y5 y4 h4
b4 = (2c4 + c5 )
h4 3
0 (1) /2
= (2 0,5956302 + 0,0491874) = 0,0128772
/2 3
Portanto,
x 0,049x2 0,12x3 ,0 x < 2
1 + 0,01(x ) 0,6(x )2 + 0,13(x )3 , 2 x <
2 2 2
f (x) =
3
0,95(x ) + 0,13(x )3 , x < 2
1 0,01(x 3 ) + 0,6(x 3 )2 0,12(x 3 )3 , 3
2 x2
2 2 2
//limpa memoria
clear A, B, a, b, c, d
//pontos fornecidos
xi = [0; %pi/2; %pi; 3*%pi/2; 2*%pi]
yi = sin(xi)
//numero de pontos
n = 5
disp('Pontos fornecidos:')
disp([xi, yi])
//vetor h
h = xi(2:n) - xi(1:n-1);
//matriz A
for i=1:n
for j=1:n
if ((j==1) & (i==1)) then
A(i,j) = 2*h(1);
elseif (j == i-1) then
A(i,j) = h(i-1);
elseif ((i>1) & (i<n) & (i==j)) then
A(i,j) = 2*(h(i) + h(i-1));
elseif (j==i+1) then
A(i,j) = h(i);
elseif ((j==n) & (i==n)) then
A(i,j) = 2*h(n-1);
else
A(i,j) = 0;
end
end
end
disp('Matriz A:')
disp(A)
//vetor z
for i=1:n
if ((i==1)) then
z(i) = 3*(yi(2)-yi(1))/h(1) - 3*cos(xi(1));
elseif ((i>1) & (i < n)) then
z(i) = 3*(yi(i+1)-yi(i))/h(i) ...
- 3*(yi(i) - yi(i-1))/h(i-1);
elseif (i == n) then
z(i) = 3*cos(xi(n)) - 3*(yi(n) - yi(n-1))/h(n-1);
end
end
disp('Vetor z:')
disp(z)
//coeficientes c
c = inv(A)*z
disp('Coeficientes c:')
disp(c)
//coeficientes a
a = yi(1:n-1);
disp('Coeficientes a:')
disp(a)
//coeficientes b
for j=1:n-1
b(j) = (3*yi(j+1) - 3*yi(j) - 2*c(j)*h(j)^2 ...
- c(j+1)*h(j)^2)/(3*h(j));
end
disp('Coeficientes b:')
disp(b)
//coeficientes d
for j=1:n-1
d(j) = (c(j+1) - c(j))/(3*h(j));
end
disp('Coeficientes d:')
disp(d)
//spline cubico obtido
function [y] = s(x)
for i=1:n-2
if ((x>=xi(i)) & (x<xi(i+1))) then
y = a(i) + b(i)*(x-xi(i)) ...
+ c(i)*(x-xi(i))^2 + d(i)*(x-xi(i))^3;
end
end
if ((x>=xi(n-1)) & (x<=xi(n))) then
y = a(n-1) + b(n-1)*(x-xi(n-1)) ...
+ c(n-1)*(x-xi(n-1))^2 + d(n-1)*(x-xi(n-1))^3;
end
endfunction
Resumo sobre Splines
a1 +b1 (xx1 )+c1 (xx1 )2 +d1 (xx1 )3 , x1 x <
a2 +b2 (xx2 )+c2 (xx2 )2 +d2 (xx2 )3
, x2 x <
s(x) = .. ..
. .
an1 +bn1 (xxn1 )+cn1 (xxn1 )2 +dn1 (xxn1 )3 , xn1 x
0 ,i = 1
3 y2hy
1
1
3f 0 (x1 ) ,
yi+1 yi
zi =
3 hi 3 yihy i1
i1
,1 < i < n zi =
y y y y
3 i+1hi i 3 ihi1i1 ,
3f 0 (x ) 3 yn yn1
0 ,i = n ,
n hn1
os coeficientes aj , bj e dj , j = 1,2, . . . ,n1, so calculados conforme
segue:
aj = y j
3yj+1 3yj 2cj h2j cj+1 h2j
bj =
3hj
cj+1 cj
dj =
3hj
Captulo 7
Derivao e integrao
numrica
7.1 Derivao Numrica
dy
Dado um conjunto de pontos (xi ,yi )ni=1 , a derivada dx pode ser
i
calculada de vrias formas. Na prxima seo trabalharemos com
diferenas finitas, que mais adequada quando as abcissas esto
prximas e os dados no sofrem perturbaes significativas. Na
seo subsequente trataremos os casos quando os dados oscilam via
ajuste ou interpolaes de curvas.
7.1.1 Aproximao da derivada por diferenas
finitas
A derivada f 0 (x0 ) de uma funo f (x) no ponto x0
f (x0 + h) f (x0 )
f 0 (x0 ) = lim .
h0 h
Da definio, se h 6= 0 pequeno (no muito pequeno para evitar o
cancelamento catastrfico), esperado que uma aproximao para
a derivada no ponto x0 seja dada por:
f (x0 + h) f (x0 )
f 0 (x0 ) . (7.1)
h
Exemplo 76. Calcule a derivada numrica da funo f (x) = cos(x)
no ponto x = 1 usando h = 0,1, h = 0,01, h = 0,001 e h = 0,0001.
Soluo. Usando a frmula de diferenas dada pela Equao (7.1),
devemos calcular:
cos(1 + h) cos(1)
f 0 (x)
h
para cada valor de h solicitado. Fazendo isso, obtemos a seguinte
tabela:
f (1 + h) f (1)
h
h
0,4535961 0,5403023
0,1 = 0,8670618
0,1
0,5318607 0,5403023
0,01 = 0,8441584
0,01
0,5403023 0,5403023
0,001 = 0,841741
0,001
0,5403023 0,5403023
0,0001 = 0,841498
0,0001
No Scilab, podemos calcular a aproximao da derivada f 0 (1) com
h = 0,1 usando as seguintes linhas de cdigo:
f (x0 + h) f (x0 )
D+,h f (x0 ) f 0 (x0 ) = f 0 (x0 )
h
2
f (x0 ) + hf 0 (x0 ) + h2 f 00 (x0 ) + O(h3 ) f (x0 )
=
h
h 00
= f (x0 ) + O(h2 ) = O(h).
2
Analogamente:
f (x0 ) f (x0 h)
D,h f (x0 ) f 0 (x0 ) = f 0 (x0 )
h
h2 00
f (x0 ) f (x0 ) hf 0 (x0 ) + 2
f (x0 ) + O(h3
=
h
h 00
= f (x0 ) + O(h2 ) = O(h).
2
Tambm:
f (x0 + h) f (x0 h)
D0,h f (x0 ) f 0 (x0 ) = f 0 (x0 )
2h
2
f (x0 ) + hf 0 (x0 ) + h2 f 00 (x0 ) + O(h3 )
=
2h
2
f (x0 ) hf (x0 ) + h2 f 00 (x0 ) + O(h3 )
0
f 0 (x0 )
2h
= O(h2 ).
Exemplo 78. Calcule a derivada numrica e o erro de truncamento
de f (x) = ex em x = 1,5 pela frmula de diferena progressiva para
h = 0,1, h = 0,01 e h = 0,001.
Soluo. Como |f 00 (x)| = |ex | < 1, ento |f+0 (x0 ) f 0 (x0 )| < h2 .
h
h diferenas progressivas erro = 2
|f (x + h) f (x + h)| = (x,h)
e
(x x1 )(x x2 ) (x x0 )(x x2 )
f (x) = f (x0 ) + f (x1 )
(x0 x1 )(x0 x2 ) (x1 x0 )(x1 x2 )
000
(x x0 )(x x1 ) f ((x))
+ f (x2 ) + (x x0 )(x x1 )(x x2 ).
(x2 x0 )(x2 x1 ) 6
A derivada de f (x)
2x x1 x2 2x x0 x2
f 0 (x) = f (x0 ) + f (x1 )
(x0 x1 )(x0 x2 ) (x1 x0 )(x1 x2 )
2x x0 x1
+ f (x2 )
(x2 x0 )(x2 x1 )
000
f ((x))
+ ((x x1 )(x x2 ) + (x x0 )(2x x1 x2 ))
6
f 000 ((x))
!
+ Dx (x x0 )(x x1 )(x x2 ).
6
(7.2)
Trocando x por x0 , temos
2x0 x1 x2 2x0 x0 x2
f 0 (x0 ) = f (x0 ) + f (x1 )
(x0 x1 )(x0 x2 ) (x1 x0 )(x1 x2 )
2x0 x0 x1
+ f (x2 )
(x2 x0 )(x2 x1 )
000
f ((x0 ))
+ ((x0 x1 )(x0 x2 ) + (x0 x0 )(2x0 x1 x2 ))
6
f 000 ((x0 ))
!
+ Dx (x0 x0 )(x0 x1 )(x0 x2 ).
6
Considerando uma malha equiespaada onde x1 = x0 + h e x2 =
x0 + 2h, temos:
3h 2h
f 0 (x0 ) = f (x0 ) + f (x1 )
(h)(2h) (h)(h)
000
h f ((x0 ))
+ f (x2 ) + ((h)(2h))
(2h)(h) 6
1 3 1 f 000 ((x0 ))
= f (x0 ) + 2f (x1 ) f (x2 ) + h2
h 2 2 3
Similarmente, trocando x por x1 ou trocando x por x2 na expresso
(7.2), temos outras duas expresses
1 1 1 f 000 ((x1 ))
0
f (x1 ) = f (x0 ) + f (x2 ) + h2
h 2 2 6
1 1 3 f 000 ((x2 ))
f 0 (x2 ) = f (x0 ) 2f (x1 ) + f (x2 ) + h2
h 2 2 3
1 3 1 f 000 (
0
f (x0 ) = f (x0 ) + 2f (x0 + h) f (x0 + 2h) + h2
h 2 2 3
000
1 1 1 f ((x + h))
0
f 0 (x0 + h) = f (x0 ) + f (x0 + 2h) + h2
h 2 2 6
1 1 3 f 000 ((x
f 0 (x0 + 2h) = f (x0 ) 2f (x0 + h) + f (x0 + 2h) + h2
h 2 2
ou ainda
1 f 000 ((x0 ))
f 0 (x0 ) = [3f (x0 ) + 4f (x0 + h) f (x0 + 2h)] + h2 (7.3)
2h 3
1 f 000 ((x0 ))
f 0 (x0 ) = [f (x0 + h) f (x0 h)] + h2 (7.4)
2h 6
1 f 000 ((x0 ))
f 0 (x0 ) = [f (x0 2h) 4f (x0 h) + 3f (x0 )] + h2 (7.5)
2h 3
Observe que uma das frmulas exatamente as diferenas centrais
obtida anteriormente.
Analogamente, para construir as frmulas de cinco pontos toma-
mos o polinmio de Lagrange para cinco pontos e chegamos a cinco
frmulas, sendo uma delas a seguinte:
1 h
f 0 (x0 ) = [f (x0 2h) 8f (x0 h) + 8f (x0 + h) f (x0 + 2h)]+
12h 3
(7.6)
2
Exemplo 80. Calcule a derivada numrica de f (x) = ex em
x = 1,5 pela frmula de trs e cinco pontos para h = 0,1, h = 0,01
e h = 0,001.
h h = 0,1 h = 0,01 h = 0,
diferenas progressivas 0,2809448 0,3125246 0,3158
diferenas regressivas 0,3545920 0,3199024 0,3165
trs pontos usando (7.3) 0,3127746 0,3161657 0,3161
trs pontos usando (7.4) 0,3177684 0,3162135 0,3161
trs pontos usando (7.5) 0,3135824 0,3161665 0,3161
cinco pontos usando (7.6) 0,3162384 0,316197677 0,3161976
Caso a b c d
vi = 1
vi = 4.5
Dica:
y=[0 1.05 1.83 2.69 3.83 4.56 5.49 6.56 6.11 7.06 8.29]
7.2 Problemas de valor contorno
Nesta seo usaremos a aproximao numrica da derivada para
resolver problemas de valor de contorno da forma
uxx = f (x,u), a < x < b.
u(a) = ua
u(b) = ub
ui+1 2ui +ui1
+ ui = exi , 2 i N.
h2
u1 = 1
uN +1 = 2
ou seja,
u1 = 1
ui+1 + (2 + h2 )ui ui1 = h2 exi , 2 i N.
uN +1 = 2
que um sistema linear. A sua forma matricial :
1 0 0 0 0 0 u1
1
1 2 + h2 1 0 0 0
u2
h2 ex2
1 2 + h2 h2 ex3
0 0 0 0 u3
=
.. .. .. ..
. .
.
.
0 0 0 1 2 + h2 1
uN
h2 exN
0 0 0 0 0 1 uN +1 2
Para N = 10, temos a seguinte soluo:
1,000000
1,0735083
1,1487032
1,2271979
1,3105564
1,4003172
1,4980159
1,6052067
1,7234836
1,8545022
2,000000
Exerccios
uxx = 32, 0 < x < 1.
u(0) = 5
u(1) = 10
2
uxx = 200e(x1) , 0 < x < 2.
u(0) = 120
u(2) = 100
2
uxx = 200e(x1) , 0 < x < 2.
u0 (0) = 0
u(2) = 100
u4
uxx = 100 , 0 < x < 2.
10000
u(0) = 0
u(2) = 10
u4
uxx + 3ux = 100 , 0 < x < 2.
10000
u0 (0) = 0
u(2) = 10
onde hn = ban
o tamanho da base dos retngulo e f (xi ), 1 i n,
a + (i 1)h xi a + ih, a altura dos retngulos. Essa definio
generalizada para clculo de integrais num intervalo [a,b]:
Z b n
X
f (x)dx = lim f (xi )hn .
a n
i=1
h1 = 2 h2 = 1 h3 = 0,5 h4
R2
0 (x2 + 1)dx h1 f (1) = 4 h2 f (0,5) + h2 f (1,5) = 4,5 4,625 4,
Observe que
" #2
Z 2
2 x3 8
(x + 1)dx = +x = + 2 = 4,6666667
0 3 0
3
7.3.1 Regras de Newton-Cotes
A integral de uma funo num intervalo [a,b], tambm chamada de
quadratura numrica, aproximada pela soma
Z b n
X
f (x)dx ai f (xi ),
a i=1
f 00 ((x))
f (x) = f (x1 ) + f 0 (x1 )(x x1 ) + (x x1 )2
2
Z b Z b Z b Z b
f 00 ((x))
f (x)dx = f (x1 )dx+f 0 (x1 ) (xx1 )dx+ (xx1 )2 dx
a a a a 2
Usando o teorema do valor mdio para integrais e que h = b a e
x1 = (a + b)/2, temos:
Z b Z b Z b
0 00 1
f (x)dx = hf (x1 ) + f (x1 ) (x x1 )dx + f () (x x1 )2 dx
a a a 2
2 b b
" #
(x x1 ) 1
0 00
= hf (x1 ) + f (x1 ) + f () (x x1 )3
2 a
6 a
" #
(b x1 )2 (a x1 )2
= hf (x1 ) + f 0 (x1 )
2 2
1 1
+ f 00 () (b x1 )3 (a x1 )3
6 6
h3 f 00 ()
= hf (x1 ) + .
3
para a b.
Exemplo 83. Use a regra do ponto mdio para aproximar a integral
Z 1
2
ex dx.
0
Depois divida a integral em duas
Z 1/2 Z 1
2 2
ex dx + ex dx.
0 1/2
e integramos
n n
Z b " Z b #
1 Z bY
(xxi )f (n+1) ((x)
X
f (x)dx = f (xi ) Li (x)dx +
a i=1 a (n + 1)! a i=1
(x x0 ) (x x1 ) (x x0 ) (x
P1 (x) = f (x0 ) +f (x1 ) = f (x0 ) f (x1 )
(x1 x0 ) (x0 x1 ) h h
Z b Z b
(x x0 ) Z b
(x x1 )
f (x)dx = f (x0 ) dx f (x1 ) dx
a a h a h
1 Zb
+ (x x0 )(x x1 )f 00 ((x))dx.
2! a
Rb
Pelo Rteorema do valor mdio, existe a b tal que a f ((x))g(x)dx
f () ab g(x)dx e, portanto,
" #x1 " #x1
Z b
(x x0 )2 (x x1 )2
f (x)dx = f (x0 ) f (x1 )
a 2h x0
2h x0
# x1
f 00 () x3 x2
"
+ (x1 + x0 ) + x0 x1 x
2 3 2 x0
2 2
(x1 x0 ) (x0 x1 )
= f (x0 ) + f (x1 )
2h 2h
00 3 2
f () x1 x1 x 3 x2
+ (x1 + x0 ) + x0 x1 x1 0 + 0 (x1 + x0 )
2 3 2 3 2
2 2
h h
= f (x0 ) + f (x1 )
2h 2h
f 00 () 2x31 3x21 (x1 + x0 ) + 6x21 x0 2x30 + 3x20 (x1 + x0 )
+
2 6
h f 00 () 3
= (f (x0 ) + f (x1 )) + x0 3x20 x1 + 3x21 x0 x31
2 12
h h3 f 00 ()
= (f (x ) + f (x ))
Exemplo 84. Use a regra do trapzio para aproximar a integral
Z 1
2
ex dx.
0
(x x1 )2 f 00 (x1 )
Z b "
f (x)dx = f (x1 )(x x1 ) + f 0 (x1 ) + (x x1 )3
a 2 6
#x
f 000 (x1 ) 4
2
+ (x x1 )
24 x0
1 Z x2 (4)
+ f ((x))(x x1 )4 dx,
24 x0
Pelo teorema do valor mdio, existe x0 x2 tal que
(x x1 )2 f 00 (x1 )
Z b "
f (x)dx = f (x1 )(x x1 ) + f 0 (x1 ) + (x x1 )3
a 2 6
#x2
f 000 (x1 )
+ (x x1 )4
24 x0
(4)
f () Z x2
+ (x x1 )4 dx
24 x0
(x x1 )2 f 00 (x1 )
"
= f (x1 )(x x1 ) + f 0 (x1 ) + (x x1 )3
2 6
#x2
f 000 (x1 ) 4
+ (x x1 )
24 x0
f (4) () h ix2
+ (x x1 )5
120 x0
I(h) = I0 + I2 h2 + I4 h4 + I6 h6 + . . .
Para um demonstrao, veja [4]. Em especial observamos que
Z b
f (x)dx = lim I(h) = I0
a h0
h
I(h) = [f (a) + f (b)]
2
h a+b
I(h/2) = [f (a) + 2f (c) + f (b)] , c =
4 2
4I(h/2) I(h) h h
= [f (a) + 2f (c) + f (b)] [f (a) + f (b)]
3 3 6
h
= [f (a) + 4f (c) + f (b)]
6
218,3926
111,91458 76,421909
66,791497 51,750469 50,105706
51,892538 46,926218 46,604601 46,549028
47,782846 46,412949 46,378731 46,375146 46,374464
46,72661 46,374531 46,37197 46,371863 46,37185 46,371847
Ou seja, temos: Z 2
2
x2 ex dx 46,371847
0
com uma aproximao de ordem 12.
7.3.4 Ordem de preciso
Z b
ba
f (x)dx [f (a) + f (b)]
a 2
ba ba
= f (a) + f (b)
2 2
2
X
:= w1 f (x1 ) + w2 f (x2 ) = wj f (xj )
j=1
(b) Mtodo do trapzio com dois intervalos
" ! #
Z b
a+b ba
f (x)dx f (a) + 2f + f (b)
a 2 4
!
ba ba a+b ba
= f (a) + f + f (b)
4 2 2 4
3
X
:= w1 f (x1 ) + w2 f (x2 ) + w3 f (x3 ) = wj f (xj )
j=1
f (x) = a0 + a1 x + a2 x2 + . . . + an xn + Rn (x)
Integrando termo a termo, temos:
Z b Z b Z b Z b
f (x)dx = a0 dx + a1 xdx + a2 x2 dx + . . . +
a a a a
Z b Z b
an xn dx + Rn (x)dx
a a
b a2
2
b 3 a3
= a0 (b a) + a1 + a2 + ... +
2 3
bn+1 an+1 Z b
an + Rn (x)dx
n+1 a
ou, equivalentemente:
n Z b
bk+1 ak+1
wj xkj = xk dx =
X
, k = 0,1, . . . n
j=1 a k+1
Observao 20. Se o mtodo tem ordem 0 ou mais, ento
n
X
wj = b a
j=1
2
Z b
ba X
f (x)dx [f (a) + f (b)] = wj f (xj )
a 2 j=1
ba
onde wj = 2
, x1 = a e x2 = b.
n
X
(k = 0) : wj = b a
j=1
n
X ba b 2 a2
(k = 1) : wj xj = (a + b) =
j=1 2 2
n
ba b 3 a3
wj x2j 2 2
X
(k = 2) : = (a + b ) 6 =
j=1 2 3
3
" ! #
Z b
a+b ba X
f (x)dx f (a) + 4f + f (b) = wj f (xj )
a 2 6 j=1
ba
onde w1 = w3 = 6
,w2 = 4 ba
6
, x1 = a, x2 = a+b
2
e x3 = b
n
X ba
(k = 0) : wj = (1 + 4 + 1) =ba
j=1 6
n
X a+b ba ba b2 a
(k = 1) : wj xj = (a + 4 + b) = (a + b) =
j=1 2 6 2 2
n
!2
a+b ba b3 a3
wj x2j 2 2
X
(k = 2) : = (a + 4 +b ) =
j=1 2 6 3
n
!3
a+b ba b4 a4
wj x3j 3
+ b3 )
X
(k = 3) : = (a + 4 =
j=1 2 6 4
n
!4
a+b ba b5 a5
wj x4j = (a4 + 4 + b4 )
X
(k = 4) : 6=
j=1 2 6 4
Exemplo 93. Encontre os pesos wj e as abscissas xj tais que o
esquema de dois pontos
Z 1
f (x)dx = w1 f (x1 ) + w2 f (x2 )
1
de ordem 3.
w1 + w2 = 2
x1 w 1 + x2 w 2 = 0
2
x21 w1 + x22 w2 =
3
3 3
x1 w 1 + x2 w 2 = 0
w1 x2 x3
= = 23
w2 x1 x1
! !
Z 1
3 3
f (x)dx = f +f
1 3 3
Exemplo 94. Comparao
f (x) Exato Trapzio Simpson Gauss-L
e1 + 4e0 + e1
e e1 e1 + e e 3
ex 3
2,35040 3,08616 2,36205 2,
16 4
2
p
9 9 2
x 3 + x3 3,41421 1,13807 1,
1,14924
3
ee1
x2 e x 3 0,78347 3,08616 1,02872 0,
7.3.5 Quadratura de Gauss-Legendre
A quadratura de Gauss-Legendre de n pontos o esquema numrico
Z 1 n
X
f (x)dx = wj f (xj )
1 j=1
1 0 2
3
2 3
1
8
0 9
3
q
3 5
5 9
Exemplo 95. Aproximar
Z 1
1 + x2 dx
1
Soluo.
s s
5 3 8 5 3
I3 = f + f (0) + f 2,2943456
9 5 9 9 5
No Scilab:
R 1 x 1+e1
e dx
0 1 e1 0.6321206 e1/2 0.6065307 2
0.68
R1 2
x dx
0
R1 3
x dx
0
R1 2
0 xex dx
R1 1
0 x2 +1 dx
R1 x
0 x2 +1 dx
E 7.3.2. Dados os valores da funo f (x), f (2) = 2, f (3) = 4 e
f (4) = 8, calcule o valor aproximado de
Z 4
f (x)dx
2
por !1
Z 1
x2 x2
x ln(x)dx = ln x = 1/4
0 2 4 0
Aproxime o valor desta integral usando a regra de Simpson para
n = 3, n = 5 e n = 7. Como voc avalia a qualidade do resultado
obtido? Por que isso acontece.
R x2
E 7.3.22.
O valor exato da integral imprpria 0 e dx dado
por 2 . Escreva esta integral como
Z 1 Z 1 Z 1
x2 2 1/u2 2 2
I= e dx + u e du = ex + x2 e1/x dx
0 0 0
b) Use a identidade
Z 1 Z 1 Z 1
ln(x) sin(x)dx = ln(x)xdx + ln(x) [sin(x) x] dx
0 0 0
2 1
!
x2 x Z 1
= ln x + ln(x) [sin(x) x]
2 4 0 0
1 Z1
= + ln(x) [sin(x) x] dx
4 0
R1
e aproxime a integral 0 ln(x) [sin(x) x] dx numericamente
via Gauss-Legendre com n = 2, n = 3, n = 4, n = 5, n = 6 e
n = 7.
x R 1 ex
E 7.3.26. Calcule as integrais 01 |x|e1/4 dx e
R
0 |x|4/5 dx usando pro-
cedimentos analticos e numricos.
E 7.3.27. Use a tcnica de integrao por partes para obter a
seguinte identidade envolvendo integrais imprprias:
Z Z
cos(x) sin(x)
I= dx = dx.
0 1+x 0 (1 + x)2
Aplique as tcnicas estudadas para aproximar o valor de I e explique
por que a integral da direita mais bem comportada.
lim Cv = 3N kB .
T
y(t + h) y(t)
= f (y(t),t) + O(h)
h
y(t + h) = y(t) + hf (y(t),t) + O(h2 ).
Definimos,
ento, t(k) = (k 1)h e y (k) como a aproximao para
y t(k) produzida pelo Mtodo de Euler. Assim, obtemos
y (k+1) = y (k) + hf (y (k) ,t(k) ) (aproximao da EDO), (8.4)
y (1) = y0 (condio inicial). (8.5)
O problema (8.4) consiste em um esquema iterativo, isto , y (1)
a condio inicial; y (2) pode ser obtido de y (2) ; y (3) , de y (4) e assim
por diante, calculamos o termo y (n) apartir do anterior y (n1) .
Exemplo 99. Retornemos ao o problema de valor inicial do exem-
plo (8.2):
y 0 (t) = 2y(t)
y(0) = 1
Cuja soluo y(t) = e2t . O mtodo de Euler aplicado a este
problema produz o seguinte esquema:
y (k+1) = y (k) + 2hy (k) = (1 + 2h)y (k)
y (1) = 1,
cuja soluo dada por
y (k) = (1 + 2h)k1 .
Como t = (k 1)h, a soluo aproximada pelo Mtodo de Euler
t
y(t) y(t) = (1 + 2h) h .
Observe que y(t) 6= y(t), mas se h pequeno, a aproximao boa,
pois
t
lim (1 + 2h) h = e2t .
h0+
Vamos agora, analisar o desempenho do Mtodo de Euler usando
um exemplo mais complicado, porm ainda simples suficiente para
que possamos obter a soluo exata:
Exemplo 100. Considere o problema de valor inicial relacionado
equao logstica:
y 0 (t) = y(t)(1 y(t))
y(0) = 1/2
Podemos obter a soluo exata desta equao usando o mtodo de
separao de variveis e o mtodo das fraes parciais.
dy(t)
= dt
y(t)(1 y(t))
!
1 1
+ dy = dt
y 1y
ln(y) ln(1 y) = t+C
!
y
ln = t+C
1y
y
= et+C
1y
y= et+C (1 y)
t+C
y(1 + e ) = et+C
et+C
y = .
1 + et+C
Basta, agora, encontrar a constante C a partir da condio inicial
y(0) = 1/2:
eC
y(0) = = 1/2,
1 + eC
x0 = y
y0 = x
x(0) = 1
y(0) = 0,
y0 = w
w0 = w y + cos(t)
y(0) = 1
w(0) = 0
y 0 = cos(ty(t))
y(0) = 1
y 0 (t) = f (y(t),t)
y(0) = yi
y(t + h) y(t)
y 0 (t) = + O(h), h > 0
h
j=0
y (k+1) = y (k) + w1 k1 + . . . + wn kn
onde
k1 = hf (y (k) ,t(k) )
k2 = hf (y (k) + 2,1 k1 ,t(k) + 2 h)
k3 = hf (y (k) + 3,1 k1 + 3,2 k2 ,t(k) + 3 h)
..
.
kn = hf (y (k) + n,1 k1 + n,2 k2 + . . . n,n1 kn1 ,t(k) + n h)
k1 + 2k2 + 2k3 + k4
y (n+1) = y (n) +
6
onde
k1 = hf (y (n) ,t(n) )
k2 = hf (y (n) + k1 /2,t(n) + h/2)
k3 = hf (y (n) + k2 /2,t(n) + h/2)
k4 = hf (y (n) + k3 ,t(n) + h)
j=0
h h (n) (n) i
y (n+1) = y (n) + 3f y ,t f y (n1) ,t(n1)
2
h h
y (n+1) = y (n) + 23f y (n) ,t(n) 16f y (n1) ,t(n1) + 5f y (n2) ,t(n
12
Exemplo 107. Adams-Bashforth de quarta ordem
h h
y (n+1) = y (n) + 55f y (n) ,t(n) 59f y (n1) ,t(n1)
24 i
+ 37f y (n2) ,t(n2) 9f y (n3) ,t(n3)
j=1
v 0 = g v 2
d2 (t) g
+ sin((t)) = 0
dt2 l
onde g o mdulo da acelerao da gravidade e l o comprimento
da haste.
mantida constante.
Resolva numericamente esta equao para g = 9,8m/s2 e l =
1m e as seguintes condies iniciais:
du(t)
= u(t) + et
dt
u(0) = 0
Rpida Introduo ao
Scilab
A.1 Sobre o Scilab
Scilab uma linguagem de programao associada com uma rica
coleo de algoritmos numricos que cobrem muitos aspectos de
problemas de computao cientfica. Do ponto de vista de software,
Scilab uma linguagem interpretada. A linguagem Scilab permite
a compilao dinmica e lincagem com outras linguagens como For-
tran e C. Do ponto de vista de licena, Scilab um software gratuito
no sentido que o usurio no paga por ele. Alm disso, Scilab um
software de cdigo aberto disponvel sobre a licena Cecill [1]. Sci-
lab esta disponvel para Linux, Mac Os e Windows. Ajuda online
esta disponvel em portugus e muitas outras lnguas. Do ponto de
vista cientfico, Scilab comeou focado em solues computacionais
para problemas de lgebra linear, mas, rapidamente, o nmero de
aplicaes se estendeu para muitas reas da computao cientfica.
As informaes deste apndice foram adaptadas do tutorial Intro-
duction to Scilab [2], veja-o para maiores informaes. Alm disso,
recomendamos visitar o stio oficial do Scilab:
www.scilab.org
http://help.scilab.org/docs/5.5.2/pt_BR/index.html
A.1.1 Instalao e Execuo
O Scilab pode ser executado normalmente nos sistemas operaci-
onais Linux, Mac Os e Windows. Muitas distribuies de Linux
(Linux Mint, Ubuntu, etc.) tm o Scilab no seu sistema de pacotes
(incluindo binrio e documentao em vrias lnguas). Alternati-
vamente, no stio de internet oficial do Scilab pode-se obter mais
verses de binrios e documentao para instalao em sistemas Li-
nux. Para a instalao em sistemas Mac Os e Windows, visite stio
de internet oficial do Scilab.
A.1.2 Usando o Scilab
O uso do Scilab pode ser feito de trs formas bsicas:
-->editor()
ou, alternativamente:
-->scinotes
s = "Ol Mundo!"
disp(s)
salva-se em um arquivo de sua preferncia (por exemplo, ~/foo.s
e executa-se o cdigo clicando no boto play disponvel na
barra de botes do Scinotes.
c) Para executar o cdigo em processamento bash, digita-se em
um editor o cdigo:
s = "Ol Mundo!"
disp(s)
-->x=1
x =
1.
-->y = x * 2
y =
2.
+ adio
- subtrao
* multiplicao
/ diviso
^ potenciao (igual a **)
' transposto conjugado
A.2.2 Funes e constantes elementares
Vrias funes e constantes elementares j esto pr-definidas no
Scilab. Por exemplo:
-->cos(%pi) //cosseno de pi
ans =
- 1.
& e lgico
| ou lgico
~ negao
== igualdade
~= diferente
< menor que
> maior que
<= menor ou igual que
>= maior ou igual que
T
A.3 Matrizes
No Scilab, matriz o tipo bsico de dados, a qual definida por seu
nmero de linhas, colunas e tipo de dado (real, inteiro, lgico, etc.).
Uma matriz A = [ai,j ]m,n
i,j=1 no Scilab definida usando-se a seguinte
sintaxe:
10. 8. 6. 4.
-->u = 2:6
u =
2. 3. 4. 5. 6.
A.3.2 Obtendo dados de uma matriz
A funo size retorna o tamanho de uma matriz, por exemplo:
-->A = ones(3,2)
A =
1. 1.
1. 1.
1. 1.
2.
nl =
3.
informando que a matriz A tem trs linhas e duas colunas.
Existem vrios mtodos para se acessar os elementos de uma matriz
dada A:
A(i,j)
A(i1:i2, j1:j2)
0.6857310
-->A(2:3,2:4) //acessa um bloco de A
ans =
2. 2.
2. 2.
-->A * B
ans =
4. 4.
4. 4.
-->A .* B
ans =
2. 2.
2. 2.
A.4 Estruturas de ramificao e repeti-
o
O Scilab contm estruturas de repetio e ramificao padres de
linguagens estruturadas.
A.4.1 A instruo de ramificao if
A instruo if permite executar um pedao do cdigo somente se
uma dada condio for satisfeita.
i = 2
if ( i == 1 ) then
disp ( " Hello ! " )
elseif ( i == 2 ) then
disp ( " Goodbye ! " )
elseif ( i == 3 ) then
disp ( " Tchau ! " )
else
disp ( " Au Revoir ! " )
end
for i = 1:5
disp(i)
end
for j = 1:2:8
disp(j)
end
for k = 10:-3:1
disp(k)
end
for i = 1:3
for j = 1:3
disp([i,j])
end
end
s = 0
i = 1
while ( i <= 10 )
s = s + i
i = i + 1
end
no Scilab.
Alternativamente, definimos a mesma funo com o cdigo:
Verifique!
y(2,1) = -x(2)*sin(x(1)*x(2))
y(2,2) = -x(1)*sin(x(1)*x(2))
endfunction
(f1 ,f2 )
define a matriz jacobiana J(x1 ,x2 ) := (x1 ,x2 )
da funo:
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).
E 2.7.1. Quando pequeno, e1/mu um nmero grande. A primeira expresso produz um overflow
(nmero maior que o mximo representvel) quando pequeno. A segunda expresso, no entanto, reproduz
2
E 2.7.2. a) 1
2
+ x4! + O(x4 ); b) x/2 + O(x2 ); c) 5 104 x + O(x2 ); d) 4
2
y + O(y 2 ) = 4
2
x + O(x2 )
E 2.7.5. 4,12451228 1016 J; 0,002%; 0,26654956 1014 J; 0,002%; 4,98497440 1013 J; 0,057%;
S11 S12 [A] v1
=
S21 S22 [B] v2
De forma que
1
[A] S11 S12 v1 1 S22 S12 v1
= =
[B] S21 S22 v2 S11 S22 S12 S21 S21 S11 v2
Portanto
S22 v1 S12 v2
[A] =
S11 S22 S12 S21
S21 v1 + S11 v2
[B] =
S11 S22 S12 S21
h i
1 1 [B] [B]
[B] = S21 S11 + S21 S11 + S11 S21 + S11 S22
[B] |det S| [A] [A]
1 1
[A] = [20 270 2% + 20 30 2% + 30 140 2% + 30 20 2%]
[A] 1200
216
= = 0.18 = 18%
1200
1 1
[B] = [140 270 2% + 140 30 2% + 270 140 2% + 270 20 2%]
[B] 1200
426
= = 0.355 = 35.5%
1200
Concluso, apesar de o sensor 3 apresentar uma incerteza cinco vezes maior na sensibilidade, a escolha do
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
E 3.2.4. k = lP
2
cos() com (0, /2); 1,030.
E 3.2.5. k 0,161228
E 3.3.1. 0,7391
E 3.3.10. 0.0431266
E 3.4.1.
a) Primeiramente, deve-se observar que a funo tg (x) no est definida quando x um mltiplo
mpar de
2
, pelo que devemos cuidado nas singularidades. Traamos o grfico da funo f (x) =
tg (x) 2x2 no Scilab usando os seguintes comandos:
-->deff('y=f(x)','y=tan(x)-2*x^2')
-->plot([0:.01:1.3],f)
Observamos facilmente uma raiz no intervalo (0,5, 0,6) e outra no intervalo (1,2, 1,3). Como a
funo f (x) contnua fora dos pontos de singularidade da tangente, fcil verificar que existe
pelo menos uma soluo nos intervalos dados pelo teorema do valor intermedirio:
0 2 1 1
f (x) = sec (x) 4x = 4x 4 0,5 < 0, x [0,5, 0,6]
cos2 (x) cos2 (0,6)
0 2 1 1
f (x) = sec (x) 4x = 4x 4 1,3 > 0, x [1,2, 1,3]
cos2 (x) cos2 (1,2)
101 8
2 10
2N
p
isso equivalente a
101 107 7
Np log2 = log2 = 7 log2 10 1 = 1 22.22
2 108 2 log1 02
E 3.4.2. 0,65291864
E 3.4.8. x0 > 1.
7.7cm
E 3.5.9.
E 3.5.10. 4.32cm
E 3.5.11. (0.652919,0.426303)
E 3.5.12. 7.19% ao ms
E 3.5.16. 1.5318075
Portanto x = 2, y = 3, z = 5
E 4.1.5.
a) x = [4 3 2]T
b) O sistema equivalente a
x1 + x2 + (1 + )x3 = 2
x1 + (1 + )x2 + x3 = 3
(1 + )x1 + x2 + x3 = 4
9
(1 + 3)(x1 + x2 + x3 ) = 9 = x1 + x2 + x3 =
1 + 3
9
x3 = 2 1+3
9
x2 = 3 1+3
9
x1 = 4 1+3
Assim temos:
T 9 T
x = [4 3 2] [1 1 1]
1 + 3
E 4.1.6. x = [1.6890368 1.6890368 1.5823257 1.2667776 0.6333888]T
E 4.1.7.
" #
1 1/2 1/2
1/3 1/2 1/6
1/3 0 1/3
E 4.2.1. = 7130
41
51.95122, para = 51: k1 = k = 350.4, k2 = 262.1. Para = 52: k1 = k =
6888, k2 = 5163.
E 4.2.3. k1 = k = 6888, k2 = 26656567 e k1 = 180, k2 = 128,40972
e k = 210
18
E 4.2.4.
+ 3. Quando 0+, a matriz converge para uma matriz
singular e o nmero de condicionamento diverge para +.
Exemplo de implementao:
J=[1:1:10]
x=sin(J/10)
y=J/10
z=y-y.^3/6
e=abs(x-y)./x
f=abs(x-z)./x
norm(e,1)
norm(e,2)
norm(e,'inf')
norm(f,1)
norm(f,2)
norm(f,'inf')
E 4.4.1.
epsilon=1e-3;
A=[1 -1 0 0 0; -1 2 -1 0 0; 0 -1 (2+epsilon) -1 0; 0 0 -1
v=[1 1 1 1 1]'
xgauss=gauss([A v])
function x=q_Jacobi()
x0=[0 0 0 0 0]'
i=0
controle=0
while controle<3 & i<1000
i=i+1
x(1)=1+x0(2)
x(2)=(1+x0(3)+x0(1))/2
x(3)=(1+x0(2)+x0(4))/(2+epsilon)
x(4)=(1+x0(3)+x0(5))/2
x(5)=x0(4)-1
delta=norm(x-x0,2)
if delta<1e-6 then
controle=controle+1
else
controle=0
end
mprintf('i=%d, x1=%f, x5=%f, tol=%.12f\n',i,x(1),x(5),
x0=x;
end
endfunction
function x=q_Gauss_Seidel()
x0=[0 0 0 0 0]'
i=0
controle=0
while controle<3 & i<15000
i=i+1
x(1)=1+x0(2)
x(2)=(1+x0(3)+x(1))/2
x(3)=(1+x(2)+x0(4))/(2+epsilon)
x(4)=(1+x(3)+x0(5))/2
x(5)=x(4)-1
delta=norm(x-x0,2)
if delta<1e-2 then
controle=controle+1
else
controle=0
end
mprintf('i=%d, x1=%f, x5=%f, tol=%.12f\n',i,x(1),x(5),
x0=x;
end
endfunction
delta=norm(x-x0) //norma 2
if delta<1e-5 then
controle=controle+1
else
controle=0;
end
mprintf('k=%d, x=[%f,%f,%f], tol=%.12f\n',k,x(1),x
x0=x;
end
endfunction
function x=gs()
x0=zeros(11,1)
k=0;
controle=0;
while controle<3 & k<1000
k=k+1
x(1)=x0(2)
for j=2:10
x(j)=(cos(j/10)+x(j-1)+x0(j+1))/5
end
x(11)=x0(10)/2
delta=norm(x-x0) //norma 2
if delta<1e-5 then
controle=controle+1
else
controle=0;
end
mprintf('k=%d, x=[%f,%f,%f], tol=%.12f\n',k,x(1),x
x0=x;
end
endfunction
E 4.5.3. 158,726
a)V5 = 98.44V b) V5 = 103.4V
E 4.5.5.
1 0 0 0
1 1 1 1 1
R1 R1
+ R2
+ R5 R2
0
1 1 1 1 1
0 + +
R2 R2 R3 R6 R3
1 1 1 1
0 0 + +
R3 R3 R4 R7
1
0 0 0 R4
A=[1 0 0 0
1/R1 -(1/R1+1/R2+1/R5) 1/R2 0
0 1/R2 -(1/R2+1/R3+1/R6) 1/R3
0 0 1/R3 -(1/R3+1/R4+
0 0 0 1/R4
v=[V; 0; 0; 0; 0]
y=A\v
1 1 1 1
R1
+ R2
+ R5 R2
0 0
1 1 1 1 1
+ + 0
R2 R2 R3 R6 R3
1 1 1 1 1
0 + +
R3 R3 R4 R7 R4
1 1
0 0 R4
R4
+
R1 f (0)+f (1)
E 6.4.1. P (x)dx = 2
1
, 12 maxx[0,1] |f 00 (x)|
0
xi yi ax2
i + bxi + c ax2
i + bxi + c yi
0,01 1,99 1,963069 -0,0269310
1,02 4,55 4,6085779 0,0585779
2,04 7,2 7,1958206 -0,0041794
2,95 9,51 9,4324077 -0,0775923
3,55 10,82 10,870125 0,0501249
E 6.6.2. a = 25,638625, b = 9,8591874, c = 4,9751219 e a = 31,475524, b = 65,691531, c = 272,84382,
d = 208,23621.
E 7.1.3.
h h2 h
h
c) f 0 (0) = h +h
1 l h2 f (h1 ) + h1
h1 f (0) + h1 f (h2 )
1 2 1 2 2
E 7.1.4.
Caso a b c d
vi = 1 1.72 1.56 1.64 1.86
vi = 4.5 2.46 1.90 2.18 1.14
E 7.2.1.
1 0 0 0 0
u1
5
1 2 1 0 0 u2 2
0 1 2 1 0 u3 = 2
0 0 1 2 1 u4 2
0 0 0 0 1 u5 10
Soluo: [5, 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
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
E 7.3.1.
E 7.3.3.
1 2
ISimpson = IT rap + IP M
3 3
E 7.3.4.
E 7.3.5.
1 12 2 2 7 3 3 4
a)I(h) = 4.41041 10 8.49372 10 h 1.22104 10 h 1.22376 10 h + 8.14294 10 h
1 11 2 2 7 3 6 4
b)I(h) = 7.85398 10 1.46294 10 h 4.16667 10 h 2.16110 10 h + 4.65117 10 h
3 10 7 2 5 3 4 4
c)I(h) = 1.58730 10 9.68958 10 h + 2.03315 10 h 1.38695 10 h + 2.97262 10 h
1 12 2 2 8 3 4 4
d)I(h) = 4.61917 10 + 3.83229 10 h + 2.52721 10 h + 5.48935 10 h + 5.25326 10 h
E 7.3.6.
1.5707963 2.0943951
1.8961189 2.0045598 1.9985707
1.9742316 2.0002692 1.9999831 2.0000055
E 7.3.9. R(6,6) = 10.772065, R(7,7) = 5.2677002, R(8,8) = 6.1884951, R(9,9) = 6.0554327, R(10,10) =
6.0574643. O valor desta integral com oito dgitos corretos aproximado por 6.0574613.
3.
E 7.3.11. 3
E 7.3.12. 5
R1
E 7.3.16. f (x)dx = f 33 +f 3
3
1
E 7.3.24.
n b c d e f
2 2.205508 3.5733599 3.6191866 3.6185185 3.618146
4 2.5973554 3.6107456 3.6181465 3.6180970 3.6180970
6 2.7732372 3.6153069 3.6181044 3.6180970 3.6180970
8 2.880694 3.6166953 3.6180989 3.6180970 3.6180970
Z 1 Z 1
cos(x) 1 x2n1/2
X
n
I = 4+2 p dx = 4 2 (1) dx
(2n)!
0 |x| 0
n=1
1
X
n
= 42 (1)
(2n)!(2n + 1/2)
n=1
Soluo do item f)
Z 1
x3/2 x7/2
1/2 1 1 977
2 x + dx = 2 2 + =
2 24 5 54 270
0
Z 1 Z 1 1+u
1+u
cos(x) P4 (x) cos 2
P4 2
2 dx = 2 du
x 1+u
0 1
E 7.3.28. 4.1138
deff('dy=f(y,t)','dy=-y-y^2')
sol_Euler=Euler(f,0,1,10,1)'
sol_Euler_mod=Euler_mod(f,0,1,10,1)'
deff('y=y_exata(t)','y=1/(2*exp(t)-1)')
t=[0:.1:1]'
sol_exata=feval(t,y_exata)
tabela=[t sol_exata sol_Euler sol_Euler_mod abs(sol_exata-sol_Euler) abs(sol_exata-sol_Euler_mod)]
1 ln 9
1 ln (6)
E 8.6.2. Os valores exatos para os itens e e f so: 10 4
e 10
q p
g
E 8.6.3. O valor exato
1 e200 em t = 1
g
tanh1 1 e200
E 8.6.9.
[3] R.L. Burden and J.D. Faires. Anlise Numrica. Cengage Lear-
ning, 8 edition, 2013.
[4] J. P. Demailly. Analyse Numrique et quations Differentielles.
EDP Sciences, Grenoble, nouvelle dition edition, 2006.
[6] Walter Gautschi and Gabriele Inglese. Lower bounds for the
condition number of vandermonde matrices. Numerische Mathe-
matik, 52(3):241250, 1987/1988.