Professional Documents
Culture Documents
Um Livro Colaborativo
Verso Scilab
14 de dezembro de 2017
ii
Licena
iii
Nota dos organizadores
https://www.ufrgs.br/numerico
iv
Prefcio
v
Sumrio
Capa i
Organizadores ii
Licena iii
Prefcio v
Sumrio x
1 Introduo 1
vi
SUMRIO vii
6 Interpolao 166
6.1 Interpolao polinomial . . . . . . . . . . . . . . . . . . . . . . . . . 167
6.2 Diferenas divididas de Newton . . . . . . . . . . . . . . . . . . . . 172
6.3 Polinmios de Lagrange . . . . . . . . . . . . . . . . . . . . . . . . 174
6.4 Aproximao de funes reais por polinmios interpoladores . . . . 175
6.5 Interpolao linear segmentada . . . . . . . . . . . . . . . . . . . . 179
6.6 Interpolao cbica segmentada - spline . . . . . . . . . . . . . . . . 180
6.6.1 Spline natural . . . . . . . . . . . . . . . . . . . . . . . . . . 183
6.6.2 Spline fixado . . . . . . . . . . . . . . . . . . . . . . . . . . 186
6.6.3 Spline not-a-knot . . . . . . . . . . . . . . . . . . . . . . . . 187
6.6.4 Spline peridico . . . . . . . . . . . . . . . . . . . . . . . . . 188
Colaboradores 375
Introduo
1
2 Clculo Numrico
y 0 + xy = x,
y(0) = 2,
y 0 + xy = ey ,
.
y(0) = 2,
Representao de nmeros e
aritmtica de mquina
3
4 Clculo Numrico
Verifique no computador!
Exemplo 2.1.4 (Sistema octal). No sistema octal a base b = 8. Por exemplo:
(1357,24)8 = 1 83 + 3 82 + 5 81 + 7 80 + 2 81 + 4 82
(2.7)
= 512 + 192 + 40 + 7 + 0,25 + 0,0625 = 751,3125.
Verifique no computador!
2
O uso do smbolo + opcional na representao de nmeros positivos.
Verifique no computador!
-->bin2dec('1001')
ans =
9.
-->hex2dec('451')
ans =
1105.
-->oct2dec('157')
ans =
111.
-->base2dec('BEBA',16)
ans =
48826.
e
d1 d2
Xf =
+ 2 + (2.11)
b1 b
Nosso objetivo determinar os algarismos {dn , dn1 , ...}.
Xi d0
= + d1 + d2 b1 + + dn1 bn2 + dn bn1 . (2.12)
b b
9 = 42+1
= (2 2 + 0) 2 + 1
= 23 + 1.
Ou seja, temos que 9 = (1001)2 . No Scilab, podemos usar os comandos fix (trun-
camento) e modulo (resto da diviso) para computar esta converso da seguinte
forma
-->x = 9
x =
9.
-->d0 = modulo(x,2), x = fix(x/2)
d0 =
1.
x =
4.
-->d1 = modulo(x,2), x = fix(x/2)
d1 =
1.
x =
2.
-->d2 = modulo(x,2), x = fix(x/2)
d2 =
1.
x =
1.
-->d3 = modulo(x,2), x = fix(x/2)
d3 =
1.
x =
0.
Converso da parte fracionria. Para converter a parte fracionria, fazemos
sucessivas multiplicaes por b = 2 obtendo
Ou seja, temos que 0,625 = (0,101)2 . No Scilab, podemos computar esta conver-
so da parte fracionria da seguinte forma
-->x = 0.625
x =
0.625
-->d = fix(2*x), x = 2*x - d
d =
1.
x =
0.25
-->d = fix(2*x), x = 2*x - d
d =
0.
x =
0.5
-->d = fix(2*x), x = 2*x - d
d =
1.
x =
0.
Concluso. Da converso das partes inteira e fracionria de 9,625, obtemos
9 = (1001)2 e 0,625 = (0,101)2 . Logo, conclumos que 9,625 = (1001,101)2 .
Observao 2.1.3. O Scilab oferece algumas funes para a converso de n-
meros inteiros em base decimal para uma dada base. Por exemplo, temos:
-->dec2base(9,2)
ans =
1001
-->dec2base(111,8)
ans =
157
-->dec2base(48826,16)
ans =
BEBA
Observao 2.1.4. Uma maneira de converter um nmero dado em uma base b1
para uma base b2 fazer em duas partes: primeiro converter o nmero dado na
base b2 para base decimal e depois converter para a base b1 .
Exerccios resolvidos
Esta seo carece de exerccios resolvidos. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
logo 0,583 = (0,33)6 . As contas feitas aqui, tambm podem ser computadas no
Scilab. Voc sabe como?
Ento, convertemos 5,25 para a base 4. Para sua parte inteira, temos
5 = 1 4 + 1 = (11)4 . (2.18)
Exerccios
a) (100)2
b) (100)3
c) (100)b
d) (12)5
e) (AA)16
f) (7,1)8
g) (3,12)5
a) (25,13)8
b) (101,1)2
c) (12F,4)16
d) (11,2)3
a) 7,6 na base b = 5
b) 29,16 na base b = 6
x = (1)s (M )b bE , (2.23)
-->-%pi
ans =
- 3.14159D+00
Podemos controlar a impresso de nmeros com o comando format. Por exemplo:
-->format('v',12); -%pi
ans =
- 3.141592654
-->format('e',12); -%pi
ans =
- 3.14159D+00
Observamos que, no primeiro caso, obtemos a representao em ponto flutuante
decimal com 10 dgitos (2 posies so reservadas para o sinal e o ponto), enquanto
que na segunda obtemos a representao em notao cientfica normalizada com 6
dgitos (6 posies so reservadas para o sinal, ponto, smbolo D := 10 e expoente).
Alternativamente, podemos usar o comando printf, por exemplo:
-->printf('%1.5f',-%pi)
-3.14159
-->printf('%1.5e',-%pi)
-3.14159e+00
Exerccios resolvidos
Esta seo carece de exerccios resolvidos. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
Exerccios
Esta seo carece de exerccios. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
x = d0 ,d1 d2 . . . dk 10e
x = d0 ,d1 d2 . . . dk 10e
5
caso x 6= 0.
6
com desempate infinito.
Exerccios resolvidos
Esta seo carece de exerccios resolvidos. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
Exerccios
(a) 1,159
(b) 7,399
(c) 5,901
(a) 1,151
(b) 1,15
(c) 2,45
(d) 2,45
Agora:
-->2^2 == 4
ans =
T
-->sqrt(3)^2 == 3
ans =
F
dn1 dn2 d1 d0
-->uint8( bin2dec('00000011') )
ans = 3
-->uint8( bin2dec('11111110') )
ans = 254
s dn2 d1 d0
dn1 dn2 d1 d0
Observao 2.4.1. Note que todo registro comeando com 1 ser um nmero
negativo.
[11111111] = 27 + 26 + + 2 + 1 = 1
..
.
[10000001] = 27 + 1 = 127
[10000000] = 27 = 128
[01111111] = 26 + + 2 + 1 = 127 (2.34)
..
.
[00000010] = 2
[00000001] = 1
[00000000] = 0
[10000000000000000000000000000000] (2.35)
e
[00000000000000000000000000000000] (2.36)
(d30 d29 d17 d16 )2 d31 (215 216 ) + (0,d15 d14 d1 d0 )2 se o sinal do n-
mero estiver representado por uma implementao em complemento de um.
Observe que o zero tambm possui duas representaes possveis:
[11111111111111111111111111111111] (2.37)
e
[00000000000000000000000000000000] (2.38)
(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.39)
onde
a base (em geral 2 ou 10),
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
e o significando por
M = (1.m1 m2 m51 m52 )2 . (2.43)
representa o nmero
O expoente deslocado
Exemplo 2.4.7. Com 64 bits, pelo padro IEEE754, temos que |E| := 11. As-
sim, (100 0000 0000)2 = 210 = 1024. Como queremos que esta sequncia represente
o 1, definimos BIAS := 1023, pois
Com 32 bits, temos |E| := 8 e BIAS := 127. E com 128 bits, temos |E| := 15
e BIAS := 16383.
-->MINR=number_properties('tiny')
-->MAXR=number_properties('huge')
-->number_properties('tiniest')
Casos especiais
O zero um caso especial representado pelo registro
Assim, = 252 .
Observao 2.4.4. No Scilab, o psilon de mquina representado pela cons-
tante %eps. Observe os seguintes resultados:
-->1 + 1e-16 == 1
ans =
T
-->1 + %eps == 1
ans =
F
8
Note que poderamos definir nmeros um pouco menores que o M IN R.
Exerccios
a) [01100010].
b) [00011101].
c) [10000000].
d) [11100011].
e) [11111111]
a) [0110001001100010].
b) [0001110100011101].
c) [1110001011100011].
d) [1111111111111111].
Explique se esta rotina finaliza em tempo finito, em caso afirmativo calcule a ordem
de grandeza do tempo de execuo supondo que cada passo do lao demore 107 s.
Justifique sua reposta.
|x x|
< 5 10s .
|x|
|x x| 0,000333
= 0,000999 5 1033 . (2.55)
|x| 0,333333
|x x2 | |0,666888 0,667|
= 0,000167... < 5 104 .
|x| 0,666888
Note que x1 possui 3 dgitos significativos corretos e x2 possui 4 dgitos
significativos (o quarto dgito o dgito 0 que no aparece a direita, i.e,
x2 = 0.6670. Isto tambm leva a concluso que x2 aproxima melhor o valor
de x do que x1 pois est mais prximo de x.
|x x| |10 9,999|
= 0,0000999... < 5 104 . (2.56)
|x| 10
9
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 . (2.54)
|x|
|1 1,5|
= 5 101 < 5 100 . (2.57)
|1|
Exerccios
a) x = = 3,14159265358979 . . . e x = 3,141
b) x = 1,00001 e x = 1
c) x = 100001 e x = 100000
a) 1,7888544
b) 1788,8544
c) 0,0017888544
d) 0,004596632
e) 2,1754999 1010
f) 2,1754999 1010
a) 3276.
b) 42,55.
c) 0,00003331.
a) x = 2,5834 e x = 2,6
b) x = 100 e x = 99
= 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
e
0,300000 103 + 0,300000 103
x2 = = 0,000000 100 (2.64)
0,200000 101
No entanto, os valores das razes com seis dgitos significativos livres de erros de
arredondamento, so:
Observe que a primeira raiz apresenta seis dgitos significativos corretos, mas a
segunda no possui nenhum dgito significativo correto.
Observe que isto acontece porque b muito maior que 4ac, ou seja, b
2
b b + 4ac b c
x1 = 2b
= +
2a a b
0,300000 103 0,140000 101
=
0,100000 101 0,300000 103
= 0,300000 10 0,466667 104
3
= 0,300000 103
b + b 4ac
x2 = 2b
2a
4ac
=
4ab
c 0,140000 101
= = = 0,466667 104
b 0,300000 103
e fornece uma estimativa de quanto os erros relativos na entrada x sero am-
x
plificados na sada y .
y
Ou seja,
os erros na entradasero diminudos pela metade. De fato, usando
y = 2 = 1,4142136... e y = 1,999 = 1,41386..., obtemos
y 2 1,999
= 0,000250031... (2.73)
y 2
Exemplo 2.8.2. 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.74)
1 (0,9995)2
Mas qual a estimativa de erro nessa resposta? Quantos dgitos significativos
temos nessa resposta?
Sabendo que f 0 (x) = 20x/(1 x2 )2 , o nmero de condicionamento
xf 0 (x) 2x2
f (x) :=
=
(2.75)
f (x) 1 x2
Exemplo 2.8.3. Seja f (x) = x exp(x). Calcule o erro absoluto ao calcular f (x)
sabendo que x = 2 0,05.
Soluo. Temos que x 2 com erro absoluto de x = 0,05. Neste caso, calculamos
f , isto , o erro absoluto ao calcular f (x), por:
f = |f 0 (x)|x . (2.79)
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 + y y
x x
f
2e4
= 27
0,3 + 2 9+1
9
e4 0,06 = 8,493045557
A ab
= 2 ,
a 2 a b2
A a2 b2 b2
= 2 ,
b 2 2 a b2
e substituindo na estimativa para o erro A em termos de a = 0,01 e b = 0,01:
A A
A +
a a b b
3 5 5
0,01 + 0,01 = 0,01565247584
5 10
0,01565247584
2 32 22
= 0,7%
2
Exerccios
-->x = 1/3
-->x = 4*x-1
Para compreender o que acontece, devemos levar em considerao que o nmero
1
3
= 0,3 possui um representao infinita tanto na base decimal quanto na base
binria. Logo, sua representao de mquina inclui um erro de arredondamento.
Seja a diferena entre o valor exato de 31 e sua representao de mquina, isto ,
x(1) = 13 + . A sequncia efetivamente calculada no computador :
1
x(1) = +
3
1 1
x(2) = 4x(1) 1 = 4 + 1 = + 4
3 3
1 1
x(3) = 4x(2) 1 = 4 + 4 1 = + 42
3 3
..
.
1
x(n) = + 4(n1)
3
Portanto o limite da sequncia diverge,
n
Figura 2.2: Grfico de 1 + n1 em funo de n em escala linear-logartmica vari-
ando de 100 at 1018 . Veja o Exemplo 2.9.3.
1 1 1
1 2 3
1+ < 1+ < 1+ < (2.85)
1 2 3
No entanto, quando calculamos essa expresso no Scilab, nos defrontamos
com o seguinte resultado:
n n
n 1+ 1
n
n 1+ 1
n
-->1+%eps
ans =
1.0000000000000002220446
n 1 + n (1 + n) 1. (2.88)
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
-->y-1
ans =
1.421085471520200372D-14
-->1/(y-1)
ans =
7.036874417766400000D+13
Exerccios resolvidos
ER 2.9.1. Deseja-se medir a concentrao de dois diferentes oxidantes no ar. Trs
sensores eletroqumicos esto disponveis para a medida e apresentam a seguintes
respostas:
v1 = 270[A] + 30[B], v2 = 140[A] + 20[B] e v3 = 15[A] + 200[B] (2.89)
as tenses v1 , v2 e v3 so dadas em mV e as concentraes em milimol/l.
a) Encontre uma expresso para os valores de [A] e [B] em termos de v1 e v2 e,
depois, em termos de v1 e v3 . Dica: Se ad 6= bc, ento a matriz A dada por
a b
A= (2.90)
c d
De forma que
1
[A] S11 S12 v1 1 S22 S12 v1
= =
S11 S22 S12 S21 S21
[B] S21 S22 v2 S11 v2
Portanto
S22 v1 S12 v2
[A] =
S11 S22 S12 S21
S21 v1 + S11 v2
[B] =
S11 S22 S12 S21
1 [A] S22
=
[A] S11 S11 S22 S12 S21
1 [A] v2 S21 [A] S22
= + =
[A] S12 S22 v1 S12 v2 S11 S22 S12 S21 [B] S11 S22 S12 S21
1 [A] S12
=
[A] S21 S11 S22 S12 S21
1 [A] v1 S11 [A] S12
= =
[A] S22 S22 v1 S12 v2 S11 S22 S12 S21 [B] S11 S22 S12 S21
e
1 [B] v2 S22 [B] S21
= =
[B] S11 S21 v1 + S11 v2 S11 S22 S12 S21 [A] S11 S22 S12 S21
1 [B] S21
=
[B] S12 S11 S22 S12 S21
1 [B] v1 S21 [B] S11
= + =
[B] S21 S21 v1 + S11 v2 S11 S22 S12 S21 [A] S11 S22 S12 S21
1 [B] S11
=
[B] S22 S11 S22 S12 S21
Analogamente, temos:
1 1 [B] [B]
" #
[B] = S21 S11 + S21 S11 + S11 S21 + S11 S22
[B] |det S| [A] [A]
1 1
[A] = [200 270 2% + 200 30 2% + 30 15 10% + 30 200 10%]
[A] 53550
1804,6
= 0.0337 = 3.37%
52550
1 1
[B] = [15 270 2% + 15 30 2% + 270 15 10% + 270 200 10%]
[B] 53550
5895
= 0.11 = 11%
53550
Concluso, apesar de o sensor 3 apresentar uma incerteza cinco vezes maior na
sensibilidade, a escolha do sensor 3 para fazer par ao sensor 1 parece mais ade-
quada.
Exerccios
exp(1/)
(2.94)
1 + exp(1/)
e
1
(2.95)
exp(1/) + 1
com > 0. Verifique que elas so idnticas como funes reais. Teste no compu-
tador cada uma delas para = 0,1, = 0,01 e = 0,001. Qual dessas expresses
mais adequada quando um nmero pequeno? Por qu?
a) f (x) = 1cos(x)
x2
b) g(x) = 1+x1
c) h(x) = x + 106 103
d) i(x) = 1 + ex 2 Dica: Faa y = ex 1
de modo que seja possvel calcular seus valores para x = 100 utilizando a aritmtica
de ponto flutuante ("Double") no computador.
47
48 Clculo Numrico
f(a)
x b
a x
f(b)
f (x), tal que f (a) < f (b) (ou f (b) < f (a)), ento para qualquer d (f (a), f (b))
(ou k (f (b), f (a))) existe x (a, b) tal que f (x ) = k. Ou seja, nestas notaes,
se f (a) f (b) < 0, ento f (a) < 0 < f (b) (ou f (b) < 0 < f (a)). Logo, tomando
k = 0, temos que existe x (a, b) tal que f (x ) = k = 0.
Em outras palavras, se f (x) uma funo contnua em um dado intervalo no
qual ela troca de sinal, ento ela tem pelo menos um zero neste intervalo (veja a
Figura 3.1).
Exemplo 3.1.1. Mostre que existe pelo menos uma soluo da equao ex = x+2
no intervalo (2,0).
Soluo. Primeiramente, observamos que resolver a equao ex = x + 2 equi-
valente a resolver f (x) = 0 com f (x) = ex x 2. Agora, como f (2) = e2 > 0
e f (0) = 2 < 0, temos do teorema de Bolzano que existe pelo menos um zero de
f (x) no intervalo (2, 0). E, portanto, existe pelo menos uma soluo da equao
dada no intervalo (2, 0).
Podemos usar o Scilab para estudarmos esta funo. Por exemplo, podemos
definir a funo f (x) e comput-la nos extremos do intervalo dado com os seguintes
comandos:
-->deff('y=f(x)','y=exp(x)-x-2')
-->f(-2),f(0)
ans =
0.1353353
ans =
- 1.
-->sign(f(-2)),sign(f(0))
ans =
1.
ans =
- 1.
Em outras palavras, para garantirmos que exista um nico zero de uma dada
funo diferencivel em um intervalo, suficiente que ela troque de sinal e seja
montona neste intervalo.
Exemplo 3.1.2. No Exemplo 3.1.1, mostramos que existe pelo menos um zero de
f (x) = ex x 2 no intervalo (2,0), pois f (x) contnua e f (2) f (0) < 0.
Agora, observamos que, alm disso, f 0 (x) = ex 1 e, portanto, f 0 (x) < 0 para
todo x (2,0). Logo, da Proposio 3.1.1, temos garantida a existncia de um
nico zero no intervalo dado.
Podemos inspecionar o comportamento da funo f (x) = ex x 2 e de sua
derivada fazendo seus grficos no Scilab. Para tanto, podemos fazer o seguinte
teste:
-->x = linspace(-2,0,50);
-->deff('y = f(x)','y=exp(x)-x-2') // define f
-->plot(x,f(x));xgrid // grafico de f
-->deff('y = fl(x)','y=exp(x)-1') // a derivada
-->plot(x,fl(x));xgrid // grafico de f'
Exerccios
E 3.1.2. Mostre que cos x = x tem uma nica soluo no intervalo [0, /2].
f (b)
a x(0)
x(1) b x
f (x(0) )
f (a)
segunda aproximao do zero de f (x) o ponto mdio do intervalo [a, x(0) ], isto ,
x(1) = (a + x(0) )/2. No outro caso, temos f (x(0) ) f (b) < 0 e, ento, tomamos
x(1) = (x(0) + b)/2. Repetimos este procedimento at obtermos a aproximao
desejada (veja Figura 3.2).
De forma mais precisa, suponha que queiramos calcular uma aproximao com
uma certa preciso T OL para um zero x de uma dada funo contnua f : [a, b]
R tal que f (a) f (b) < 0. Iniciamos, tomando n = 0 e:
a(n) + b(n)
a(n) = a, b(n) = b e x(n) = . (3.5)
2
Verificamos o critrio de parada, isto , se f (x(n) ) = 0 ou:
|b(n) a(n) |
< T OL, (3.6)
2
ento x(n) a aproximao desejada. Caso contrrio, preparamos a prxima itera-
o n + 1 da seguinte forma: se f (a(n) ) f (x(n) ) < 0, ento definimos a(n+1) = a(n)
e b(n+1) = x(n) ; no outro caso, se f (x(n) ) f (b(n) ) < 0, ento definimos a(n+1) = x(n)
e b(n+1) = b(n) . Trocando n por n + 1, temos a nova aproximao do zero de f (x)
dada por:
a(n+1) + b(n+1)
x(n+1) = . (3.7)
2
Voltamos a verificar o critrio de parada acima e, caso no satisfeito, iteramos
novamente. Iteramos at obtermos a aproximao desejada ou o nmero mximo
de iteraes ter sido atingido.
Exemplo 3.2.1. Use o mtodo da bisseo para calcular uma soluo de ex = x+2
no intervalo [2, 0] com preciso T OL = 101 .
ba
|x(n) x | < , n 0, (3.9)
2n+1
isto , x(n) x quando n .
f - funo objetivo
A varivel de sada :
end
end
error ('Num. max. de iter. excedido!')
endfunction
Exerccios
E 3.2.1. Considere a equao x = cos(x). Use o mtodo da bisseo com
intervalo inicial [a, b] = [0, 1] e x(1) = (a + b)/2 para calcular a aproximao x(4)
da soluo desta equao.
E 3.2.4. O polinmio f (x) = x4 4x2 + 4 possui razes duplas em 2 e 2.
O mtodo da bisseo pode ser aplicados a f ? Explique.
Use esta estimativa para iniciar o mtodo de bisseo e obtenha o valor da raiz
com pelo menos 6 algarismos significativos para v = 1, 2, 3, 4 e 5.
xex = t, (3.19)
onde t um nmero real positivo. Mostre que esta equao possui uma nica
soluo x que pertence ao intervalo [0, t]. Usando esta estimativa como intervalo
inicial, quantos passos so necessrio para obter o valor numrico de x com erro
absoluto inferior a 106 quando t = 1, t = 10 e t = 100 atravs do mtodo da
bisseo? Obtenha esses valores.
vd
Id = IR exp 1 , (3.20)
vt
a) V = 30 V e R = 1 k.
b) V = 3 V e R = 1 k.
c) V = 3 V e R = 10 k.
d) V = 300 mV e R = 1 k.
e) V = 300 mV e R = 1 k.
f) V = 30 V e R = 1 k.
g) V = 30 V e R = 10 k.
Dica: V = RId + vd .
y
y=x
y = g(x)
x x
r+ A
x= r
. (3.25)
2
4
Heron de Alexandria, 10 d.C. - 70 d.C., matemtico grego.
Aplicando esse mtodo repetidas vezes, podemos construir a iterao (de ponto
fixo):
x(1) = r
x(n) A
x(n+1) = + (n) , n = 1,2,3,...
2 2x
Por exemplo, para obter uma aproximao para 5, podemos iniciar com a
aproximao inicial r = 2 e A = 5. Ento, tomamos x(1) = 2 e da seguem as
aproximaes:
2 2,5
x(2) = + = 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
O mtodo babilnico sugere que a iterao do ponto fixo pode ser uma abor-
dagem eficiente para a soluo de equaes. Ficam, entretanto, as seguintes per-
guntas:
Notamos que o ponto fixo destas duas funes coincide com o zero de f (x). Cons-
truindo as iteraes do ponto fixo:
(n+1) (n) (n+1) (n)
x1 = g1 (x1 ) e x2 = g2 (x2 ), (3.29)
(1) (1)
tomando x1 = x2 = 1,7, obtemos os resultados apresentados na Tabela 3.2.
Observamos que, enquanto, a iterao do ponto fixo com a funo g1 (x) ( = 0,5)
parece divergir, a iterao com a funo g2 (x) ( = 0,05) parece convergir.
No Scilab, podemos computar as iteraes do ponto fixo x(n+1) = g1 (x(n) ) com
o seguinte cdigo:
Definio 3.3.1. Uma contrao uma funo real g : [a, b] [a, b] tal que:
Se |g 0 (x)| < k, 0 < k < 1, para todo x [a, b], ento g(x) uma contrao.
e
f (b) = b g(b) b b = 0 (3.33)
Se f (a) = a ou f (b) = b, ento o ponto fixo existe. Caso contrrio, as desigualdades
so estritas e a f (x) muda de sinal no intervalo. Como esta funo contnua, pelo
teorema de Bolzano 3.1.1, existe um ponto x no intervalo (a, b) tal que f (x ) = 0,
ou seja, g(x ) = x . Isto mostra a existncia.
Para provar que o ponto fixo nico, observamos que se x e x so pontos
fixos, eles devem ser iguais, pois:
Da, temos:
lim |x(n) x | = 0,
n
(3.37)
0,85 < sen (1) sen (x) sen (1/2) < 0,47. (3.41)
x(1) = 0,7
x(n+1) = cos(x(n) ), n 1.
n x(n) n := |x(n) x |
1 0,70000 3,9E02
2 0,76484 2,6E02
3 0,72149 1,8E02
4 0,75082 1,2E02
5 0,73113 8,0E03
6 0,74442 5,3E03
7 0,73548 3,6E03
#aprox. inicial
x0 = 0.7
eps = abs(x0-xe)
disp([x0, eps])
for i=2:7
x = g(x0)
eps = abs(x-xe)
disp([x, eps])
x0 = x
end
Exemplo 3.3.5. No Exemplo 3.3.3, observamos que a funo g1 (x) nos forne-
ceu uma iterao divergente, enquanto que a funo g2 (x) forneceu uma iterao
convergente (veja a Figura 3.5. Estes comportamentos so explicados pelo teste
da convergncia. Com efeito, sabemos que o ponto fixo destas funes est no
intervalo [1,6, 1,8] e temos:
|g10 (x)| = |1 0,5(x + 1)ex | > 4,8, x [1,6, 1,8], (3.42)
2.0 1.80
y = g2 (x) y=x
1.9 y = g1 (x)
1.75 x(2)
(1)
1.8 x x(1) x
x
1.7 1.70
1.6
y=x 1.65
1.5 x (2)
1.4 1.60
1.60 1.65 1.70 1.75 1.80 1.60 1.65 1.70 1.75 1.80
Figura 3.5: Ilustrao das iteraes do ponto fixo para: (esquerda) y = g1 (x) e
(direita) y = g2 (x). Veja Exemplo 3.3.5.
enquanto:
|g20 (x)| = |1 0,05(x + 1)ex | < 0,962, x [1,6, 1,8]. (3.43)
com base nos valores calculados x(n) . Uma abordagem frequente analisar a evo-
luo da diferena entre dois elementos da sequncia:
n = x(n+1) x(n) (3.44)
A pergunta natural : Ser que o erro n = x(n) x pequeno quando
n = x(n+1) x(n) for pequeno?
portanto:
x x(N ) = x(N +1) x(N ) + x(N +2) x(N +1) + x(N +3) x(N +2) + . . .
= 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 )
Exerccios
xex 10
b) g(x) = x 15
xex 10
c) g(x) = x 10+ex
a) g(x) = cos(x)
c) g(x) = x + cos(x)x
1+sen (x)
a) ex = x + 2 no intervalo (2,0).
Use o teorema do ponto fixo para verificar que cada um desses processos con-
verge para a soluo da equao x de cos(x) = x. Observe o comportamento
numrico dessas sequncias. Qual estabiliza mais rpido com cinco casas deci-
mais? Discuta.
Dica: Verifique que cos([0.5,1]) [0.5,1] e depois a mesma identidade para a
funo f (x) = 0,4x + 0,6 cos(x).
1 2.51
!
= 2 log10 + (3.54)
f 14.8Rh Re f
2.51x(n)
!
x(n+1) = 2 log10 + (3.55)
14.8Rh Re
com erro absoluto inferior a 103 usando um mtodo iterativo. Estime o erro
associado ao valor de v = 180 100x = 0.052 senh 1 (1013 x), usando cada uma
dessas expresses. Discuta sucintamente o resultado obtido. Dica: Este caso
semelhante ao Problema 3.2.8.
E 3.3.12. Considere que xn satisfaz a seguinte relao de recorrncia:
x(n+1) = xn + q n ,
x(0) = 0,
onde q = 1 106 .
a) Calcule o limite
x = lim x(n) (3.59)
n
analiticamente.
c) Qual deve ser a tolerncia especificada para obter o resultado com erro rela-
tivo inferior a 102 ?
com x(0) = 102 . Prove que {x(n) } sequncia de nmero reais positivos conver-
gindo para zero. Verifique que so necessrios mais de mil passos para que x(n) se
torne menor que 0.9x(0) .
a) Use o teorema do ponto fixo para mostrar que a funo g(x) = 1 sen (x)
possui um nico ponto fixo estvel o intervalo [ 10
1
,1]. Construa um mtodo
iterativo x(n+1) = g(x(n) ) para encontrar esse ponto fixo. Use o computador
para encontrar o valor numrico do ponto fixo.
b) Considere a funo
g(x) = 10 exp(x) (3.61)
e funo composta (x) = g g = g (g(x)). Mostre que possui dois pontos
fixos que no so pontos fixos de g.
Em vista do problema anterior, qual valor de voc escolheria para que a sequncia
x(n) convirja rapidamente para x .
e
h i
V RI (n)
I (n+1) = IR exp vt
1 ,n > 0
B
I (0) = 0
onde (x) uma funo arbitrria, a qual escolheremos de forma que a iterao
do ponto fixo tenha tima taxa de convergncia.
Do teorema do ponto fixo, a taxa de convergncia dada em funo do
valor absoluto da derivada de g(x). Calculando a derivada temos:
No ponto x = x , temos:
g 0 (x ) = 1 + (x )f 0 (x ) + 0 (x )f (x ). (3.66)
Como f (x ) = 0, temos:
g 0 (x ) = 1 + (x )f 0 (x ). (3.67)
Sabemos que o processo iterativo converge to mais rpido quanto menor for
|g 0 (x)| nas vizinhanas de x . Isto nos leva a escolher:
g 0 (x ) = 0, (3.68)
e, ento, temos:
1
(x ) = , (3.69)
f 0 (x )
se f 0 (x ) 6= 0.
A discusso acima nos motiva a introduzir o mtodo de Newton, cujas iteraes
so dada por:
(n)
f x
x(n+1) = x(n) 0 n , n 1, (3.70)
f (x )
sendo x(1) uma aproximao inicial dada.
f (x(1) )
x(2) = x(1) . (3.71)
f 0 (x(1) )
f(x(1) )
f(x(2) )
x
x(3) x(2) x(1) x
Assim, a interseo desta reta com o eixo das abscissas (y = 0) ocorre quando:
f (x(1) )
f 0 (x(1) )(x x(1) ) + f (x(1) ) = 0 x = x(1) . (3.73)
f 0 (x(1) )
g(x ) = x
f 0 (x )f 0 (x ) f (x )f 00 (x )
g 0 (x ) = 1 =0
(f 0 (x ))2
Portanto:
g 00 (x )
g(x) = x + (x x )2 + O (x x )3 (3.76)
2
Com isso, temos:
g 00 (x ) (n)
x(n+1) = g(x(n) ) = x + (x x )2 + O (x x )3 , (3.77)
2
ou seja: 2
x C x(n) x , (3.78)
(n+1)
x
com constante C = |g 00 (x )/2|. Isto mostra que o mtodo de Newton tem taxa de
convergncia quadrtica. Mais precisamente, temos o seguinte teorema.
Teorema 3.4.1 (Mtodo de Newton). Sejam f C 2 ([a, b]) com x (a, b) tal
que f (x ) = 0 e:
f (x(n) )
x (n+1)
=x (n)
0 (n) , (3.82)
f (x )
fornece uma sequncia x(n) que converge para x , isto , x(n) x quando n .
Alm disso, temos a seguinte estimativa de erro a priori:
2m (2n1 )
|x(n) x | q , n 2, (3.83)
M
e a seguinte estimativa de erro a posteriori:
M (n)
|x(n) x | |x x(n1) |2 , n 2. (3.84)
2m
Demonstrao. Para n N, n 2, temos:
f (x(n) ) 1 h i
xn+1 x = x(n) x
= f (x (n)
) + (x
x (n)
)f (x
0 (n)
. (3.85)
f 0 (x(n) ) f (x(n) )
Agora, para estimar o lado direito desta equao, usamos o polinmio de Taylor
de grau 1 da funo f (x) em torno de x = x(n) , isto :
Z x
f (x ) = f (x(n) ) + (x x(n) )f 0 (x(n) ) + f 00 (t)(x t) dt. (3.86)
x(n)
Exerccios
a) Use o mtodo grfico para isolar as duas primeiras razes positivas em peque-
nos intervalos. Use a teoria para argumentar quanto existncia e unicidade
das razes dentro intervalos escolhidos.
b) Calcule cada uma das razes pelo mtodo de Newton com oito dgitos signi-
ficativos e discuta a convergncia comparando com o item b).
trace o grfico com auxlio do computador 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.)
a) Use o teorema do ponto fixo para provar que se x(0) pertence ao intervalo
[1,3], ento a sequncia dada iterativamente por
f (x) f (x0 )
f 0 (x) , x x0 . (3.102)
x x0
Mais precisamente, o mtodo de Newton uma iterao de ponto fixo da forma:
onde x(1) uma aproximao inicial dada e (x(n) ) = 1/f 0 (x(n) ). Usando a apro-
ximao da derivada acima, com x = x(n) e x0 = x(n1) , temos:
1 x(n) x(n1)
(x(n) ) = . (3.104)
f 0 (x(n) ) f (x(n) ) f (x(n1) )
Isto nos motiva a introduzir a iterao do mtodo das secantes dada por:
x(n) x(n1)
x (n+1)
=x (n)
f (x (n)
) , n 2. (3.105)
f (x(n) ) f (x(n1) )
y
f(x (1) )
f(x (2) )
f(x (3) )
x
x (4)x (3) x (2)x (1) x
Sejam f (x) e as aproximaes x(1) e x(2) do zero x desta funo (veja Fi-
gura 3.7). A iterao do mtodo das secantes fornece:
x(2) x(1)
x(3) = x(2) f (x(2) ) . (3.106)
f (x(2) ) f (x(1) )
De fato, x(3) o ponto de interseo da reta secante ao grfico de f (x) pelos pontos
x(1) e x(2) com o eixo das abscissas. Com efeito, a equao desta reta secante :
f (x(2) ) f (x(1) )
y= (x x(2) ) + f (x(2) ). (3.107)
x(2) x(1)
Esta reta intercepta o eixo das abscissas no ponto x tal que y = 0, isto :
Teorema 3.5.1 (Mtodo das secantes). Seja f C 2 ([a, b]) uma funo com x
(a, b) tal que f (x ) = 0. Sejam, tambm:
= 0 f (x + r(x(n1) x(n) )) dr
R 1 0 (n)
Logo, temos:
f (x(n) ) f (x(n1) ) f (x(n) ) f (x )
=
x(n) x(n1) x(n) x (3.118)
Z 1h i
f (x
0 (n)
+ r(x (n1)
x (n)
)) f (x
0 (n)
+ r(x x
(n)
)) dr.
0
7
Leonardo Fibonacci, c. 1170 - c. 1250, matemtico italiano.
8
A sequncia de Fibonacci {n }nN definida por 0 = 1 = 1 e n+1 = n n1 , n 1.
n+1
lim = 1 , (3.129)
n
n
onde 1 = (1 + 5)/2 1,618 a poro urea.
Demonstrao. A sequncia de Fibonacci {n }nN definida por 0 = 1 = 1 e
n+1 = n + n1 , n 1. Logo, satisfaz a seguinte equao de diferenas:
n+2 n+1 n = 0, n N. (3.130)
Tomando n = n , 6= 0 temos:
1 5
n 2 1 = 0 2 1 = 0 1,2 = . (3.131)
2
Portanto, n = c1 n1 + c2 n2 . Como 0 = 1 = 1, as constantes satisfazem:
c1 + c2 = 1 1+ 5 1 5
c1 = , c 2 = . (3.132)
c1 1 + c2 2 = 1 2 5 2 5
2m 11 (21 )n1 /5
lim
n q = 0.
M
Isto mostra que o mtodo das secantes (nestas hipteses) tem taxa de convergncia
superlinear (1 1,6).
|n |
Iterao Linear < erro
0
n+1 | (x )|n 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
condio seja satisfeita por alguns poucos passos consecutivos. Outros critrios
podem ser usados. No mtodos das secantes, deve-se ter o cuidado de evitar
divises por zero quando xn+1 xn muito pequeno em relao resoluo do
sistema de numerao.
Exerccios
E 3.6.1. Refaa as questes 3.4.3, 3.4.4, 3.4.5 e 3.4.6, usando o mtodo das
secantes.
E 3.6.2. D uma interpretao geomtrica ao mtodo das secantes. Qual a
vantagem do mtodo das secantes sobre o mtodo de Newton?
E 3.6.5. Seja uma funo f (x) dada duas vezes continuamente diferencivel.
Faa uma anlise assinttica para mostrar que as iteraes do mtodo das secantes
satisfazem:
|x(n+1) x | C|x(n) x ||x(n1) x |, (3.135)
para aproximaes iniciais x(1) e x(2) suficientemente prximas de x , onde f (x ) =
0.
E 3.7.1. Calcule uma equao da reta tangente a curva y = e(x1) que passa
2
E 3.7.3. A equao
cos(x) = e2x (3.141)
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 para j
grande. Use o mtodo de Newton para encontrar uma aproximao melhor para
zj .
a) R = 0
b) R = 10
c) R = 50
d) R = 100
E) R = 500
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. Dica: considere PP (10)P
(31)P (0)
(0)
e reduza o sistema a uma equao apenas na
varivel .
E 3.7.7. (Fluidos) 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.7.8. (Fluidos) 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.
x2
E 3.7.13. Encontre os pontos onde a elipse que satisfaz 3
+ y 2 = 1 intersepta
a parbola y = x2 2.
Hidrocarboneto A B C
N-pentano 9.2131 2477.07 -39.94
N-heptano 9.2535 2911.32 -56.51
P = zi Pisat (3.147)
X
91
92 Clculo Numrico
x+y+z =1
4x + 4y + 2z = 2 (4.5)
2x + y z = 0
Fixamos, agora, na segunda linha. Dividimos esta linha pelo valor do elemento
1 1 0 0
0 1 0 1 (4.15)
0 0 1 1
x+y+z =1
2x + y z = 0 (4.17)
2x + 2y + z = 1
2 1 1 0
0 1/2 3/2 1
0 1 2 1
(4.18)
2 1 1 0
0 1 2 1
0 1/2 3/2 1
2 1 1 0
0 1 2 1
0 0 1/2 1/2
//L2 <-> L1
aux = E(2,:)
E(2,:) = E(1,:)
E(1,:) = aux
disp(E)
//zera E(2:3,1)
E(2:3,:) = E(2:3,:) - (E(2:3,1)/E(1,1))*E(1,:)
disp(E)
//zera E(3,2)
E(3,:) = E(3,:) - (E(3,2)/E(2,2))*E(2,:)
disp(E)
//subs regressiva
x = zeros(3,1)
x(3) = E(3,4)/E(3,3)
x(2) = (E(2,4) - E(2,3)*x(3))/E(2,2)
x(1) = (E(1,4) - E(1,3)*x(3) - E(1,2)*x(2))/E(1,1)
disp(x)
Exemplo 4.1.4 (Problema com elementos com grande diferena de escala). Re-
solva o seguinte sistema usando eliminao gaussiana sem e com pivotamento par-
cial. Discuta, em cada caso, o resultado frente a aritmtica de ponto flutuante
quando 0 < || 1.
2 x 4
= (4.19)
1 y 3
Temos
3 4/
y= (4.20)
2/
e
4 2y
x= (4.21)
Observe que a expresso obtida para y se aproximada de 2 quando pequeno:
3 4/ 3 4 4
y= = 2 = 2, quando 0. (4.22)
2/ 2 2
4 4
y= (4.24)
2 2
e
x = 3 y (4.25)
Exerccios resolvidos
ER 4.1.1. Resolva o seguinte sistema por eliminao gaussiana com pivotamento
parcial.
2y + 2z = 8
x + 2y + z = 9 (4.26)
x+y+z =6
1 2 1 9 1 2 0 8
0 2 2 8 0 2 0 6 (4.29)
0 0 1 1 0 0 1 1
1 0 0 2
0 2 0 6
(4.30)
0 0 1 1
Portanto x = 2, y = 3 e z = 1.
Exerccios
x+y+z =0
x + 10z = 48 (4.31)
10y + z = 25
Usando eliminao gaussiana com pivotamento parcial (no use o computador para
resolver essa questo).
x+y+z = 0 (4.36)
x + 10z = 48 (4.37)
10y + z = 25 (4.38)
Usando eliminao gaussiana com pivotamento parcial (no use o computador para
resolver essa questo).
e
1 1 1
E= 1 1 1 (4.43)
1 1 1
e o vetor
2
v= 3 (4.44)
4
x1 x2 = 0 (4.47)
(i3)2
xi1 + 2.5xi xi+1 = e 20
, 2i4 (4.48)
2x5 x4 = 0 (4.49)
eficincia (ou custo computacional), queremos saber qual desses algoritmos con-
some menos recursos para realizar a mesma tarefa.
Em geral podemos responder esta pergunta de duas formas: em termos de
tempo ou de espao.
Quando tratamos de eficincia espacial, queremos saber quanta memria
(em geral RAM) utilizada pelo algoritmo para armazenar os dados, sejam eles
matrizes, vetores ou escalares.
Quando tratamos de eficincia temporal, queremos saber quanto tempo um
algoritmo demanda para realizar determinada tarefa. Vamos nos concentrar neste
segundo conceito, que em geral o mais difcil de tratar.
Naturalmente o tempo vai depender do tipo de computador utilizado. ra-
zovel pensar que o tempo vai ser proporcional ao nmero de operaes de ponto
flutuante (flops) feitas pelo algoritmo (observe que o tempo total no depende ape-
nas disso, mas tambm de outros fatores como memria, taxas de transferncias
de dados da memria para o cpu, redes,...). Entretanto vamos nos concentrar na
contagem do nmero de operaes (flops) para realizar determinada tarefa.
No passado (antes dos anos 80), os computadores demoravam mais tempo para
realizar operaes como multiplicao e diviso, se comparados adio ou sub-
trao. Assim, em livros clssicos eram contados apenas o custo das operaes
e /. Nos computadores atuais as quatro operaes bsicas demandam aproxi-
madamente o mesmo tempo. No obstante, como na maioria dos algoritmos de
lgebra linear, o nmero de multiplicaes e divises proporcional ao nmero
somas e subtraes (pois a maioria dessas operaes podem ser escritas como a
combinaes de produtos internos), justificvel dizer que o tempo de computao
continua podendo ser estimado pelo nmero de multiplicaes e divises. Desta
forma, na maior parte deste material, levaremos em conta somente multiplicaes
e divises, a no ser que mencionado o contrrio.
Teremos em mente que a ideia estimar o custo quando lidamos com vetores
e matrizes muito grande, isto , o custo quando estas dimenses crescem infinita-
mente.
Exemplo 4.2.1 (Produto escalar-vetor). Qual o custo para multiplicar um escalar
por um vetor?
Soluo. Seja a R e x Rn , temos que
x = [a x1 , a x2 , ...,a xn ]
ax (4.50)
C = n flops. (4.51)
Exemplo 4.2.2 (Produto vetor-vetor). Qual o custo para calcular o produto in-
terno x y ?
Soluo. Sejam x , y Rn , temos que
x y = x1 y1 + x2 y2 + ... + xn yn (4.52)
Exemplo 4.2.3 (Produto matriz-vetor). Qual o custo para calcular o produto de
matriz por vetor Ax
x?
Exemplo 4.2.4 (Produto matriz-matriz). Qual o custo para calcular o produto
de duas matrizes A e B?
1
Contando apenas multiplicaes/divises obtemos
Note que este produto tem o custo do produto vetor-vetor, ou seja, 2n 1. Como
temos n n elementos em D, o custo total para multiplicar duas matrizes 2
Custo computacional
Vamos contar o nmero total de flops para resolver um sistema triangular
inferior. Note que o custo para um sistema triangular superior ser o mesmo.
Na linha 3, temos uma diviso, portanto 1 flop.
Na linha 5 quando i = 2, temos
x(2)=(b(2)-L(2,1:1)*x(1:1))/L(2,2),
ou seja, 1 subtrao+1 multiplicao + 1 diviso = 3 flops.
Quando i = 3,
x(3)=(b(3)-L(3,1:2)*x(1:2))/L(3,3)
temos 1 subtrao+(2 multiplicaes + 1 soma) +1 diviso = 5 flops.
Quando i = 4, temos 1 subtrao+(3 multiplicaes + 2 somas) +1 diviso
= 7 flops.
At que para i = n, temos
x(n)=(b(n)-L(n,1:n-1)*x(1:n-1))/L(n,n),
com 1 subtrao+(n 1 multiplicaes + n 2 somas) + 1 diviso, ou seja,
1 + (n 1 + n 2) + 1 = 2n 1 flops.
Somando todos esses custos3 temos que o custo para resolver um sistema tri-
angular inferior
n n n
1 + 3 + 5 + 7 + ... + 2n 1 = (2k 1) = 2 1 (4.68)
X X X
k
k=1 k=1 k=1
e utilizando que a soma dos k inteiros a soma dos termos de uma progresso
aritmtica4
2(n(n + 1)/2) n = n2 flops. (4.69)
4.4 Fatorao LU
Considere um sistema linear Ax = b, onde a matriz A densa5 . A fim de
resolver o sistema, podemos fatorar a matriz A como o produto de uma matriz L
triangular inferior e uma matriz U triangular superior, ou seja, A = LU .
3
Contando apenas multiplicaes/divises obtemos
n
X n
X
4
Temos que k = n(n + 1)/2, 1=n
k=1 k=1
5
Diferentemente de uma matriz esparsa, uma matriz densa possui a maioria dos elementos
diferentes de zero.
Ax = b (4.70)
(LU )x = b (4.71)
L(U x) = b (4.72)
Ly = b e Ux = y (4.73)
e fazemos
A2,: A2,: L21 A1,: (4.75)
Note que denotamos Ai,: para nos referenciarmos a linha i de A. Da mesma
forma, se necessrio usaremos A:,j para nos referenciarmos a coluna j de A.
Para zerar o primeiro elemento da terceira linha de A, temos
e fazemos
A3,: A3,: L31 A1,: (4.77)
at chegarmos ao ltimo elemento da primeira coluna de A.
Repetimos o processo para as prximas colunas, escalonando a matriz A e
coletando os elementos Lij abaixo da diagonal7 .
x1 + x2 + x3 = 2
2x1 + x2 x3 = 1 (4.78)
2x1 x2 + x3 = 3
6
No vamos usar pivotamento nesse primeiro exemplo.
7
Perceba que a partir da segunda coluna para calcular Lij no usamos os elementos de A,
mas os elementos da matriz A em processo de escalonamento
| {z }| {z }
I3,3 A
1 0 0 1 1 1
= 2 1 0 (4.80)
0 1 3
2 0 1 0 3 1
1 0 0 1 1 1
=
2 1 0 0 1 3
(4.81)
2 3 1 0 0 8
| {z }| {z }
L U
(4.82)
y1 = 2
2y1 + y2 = 1 (4.83)
2y1 + 3y2 + y3 = 3
x1 + x2 + x3 = 2
x2 3x3 = 5 (4.84)
8x3 = 8
o qual fornece x3 = 1, x2 = 2 e x1 = 1.
3 L=eye ( n , n )
4 for j =1:n1
5 for i=j +1:n
6 L( i , j )=A( i , j ) /A( j , j )
7 A( i , j +1:n)=A( i , j +1:n)L( i , j ) A( j , j +1:n )
8 A( i , j )=0
9 end
10 end
11 endfunction
Custo computacional
Podemos analisar o custo computacional, reduzindo o problema em problemas
menores.
Na linha 4, iniciamos com j = 1. Desta forma i varia de 2 at n na linha 5.
A linha 6 ter sempre 1 flop.
A linha 7, com j = 1 tem um bloco de tamanho 2:n contabilizando n 1 flops
do produto e n 1 flops da subtrao.
Nas linhas 6-8 so feitas (2(n 1) + 1) = 2n 1 flops independente do valor
de i. Como i varia de 2 at n, teremos que o bloco repetido n 1 vezes, ou seja,
o custo das linhas 5-9
(n 1) (2(n 1) + 1) = 2(n 1)2 + (n 1) (4.85)
Voltamos a linha 4 quando j = 2. Das linhas 6-8 teremos n 2 flops (o bloco
ter um elemento a menos) que ser repetido n 2 vezes, pois i=3:n, ou seja,
(n 2) (2(n 2) + 1) = 2(n 2)2 + (n 2) (4.86)
Para j = 3, temos 2(n 3)2 + (n 3).
Para j = n 2, temos 2(2)2 + 2.
Finalmente, para j = n 1, temos 2 12 + 1.
Somando todos esses custos, temos
(n 1) + 2(n 1)2 + (n 2) + 2(n 2)2 + ... + (2) + 2(2)2 + 1 + 2 (4.87)
1
n1
= 2k 2 + k (4.88)
X
k=1
n1 n1
= 2 k +
2
(4.89)
X X
k
k=1 k=1
(n 1)n(2n 1) n(n 1)
= 2 + (4.90)
6 2
2n 3
n2
n
= flops. (4.91)
3 2 6
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
110 Clculo Numrico
Somando esses 3 custos, temos que o custo para resolver um sistema linear
usando fatorao LU
2n3 3n2 n
+ flops. (4.94)
3 2 6
Quando n cresce, prevalessem os termos de mais alta ordem, ou seja,
2n3 3n2 n 2n3 3n2 2n3
O( + ) = O( + ) = O( ) (4.95)
3 2 6 3 2 3
.
b3 . . = (4.102)
a3 x d .
3 3
.. .. .. ..
. . .
.
cn1
an bn xn dn
8
Llewellyn Hilleth Thomas (21 de outubro de 1903 20 de abril de 1992) foi um matemtico
e fsico britnico.
a1 = cn = 0. (4.103)
xn = d0n (4.106)
xi = d0i c0i xi+1 , i = n 1, n 2, . . . , 1. (4.107)
1 c01 0
x1 d1
a2 b2 c2 x2 d2
.
b3 . . = (4.108)
a3 x d ,
3 3
... ... .. ..
.
.
cn1
an bn xn dn
.
b3 . . = (4.109)
a3 x d3 .
3
... ... .. ..
. .
cn1
an bn xn dn
Em seguida, dividimos a segunda linha por b2 a2 c01 , a fim de normalizar a diagonal
principal:
1 c1
0 0
x1 d1
0 1 c02
0
x2 d2
.
b3 . . = (4.110)
a3 x d .
3 3
.. .. .. ..
. . .
.
cn1
an bn xn dn
d a d0
onde c02 = b2 a
c2
0 e d2 = b a c0 .
2 c1
0 2
2
2 1
2 1
O prximo passo consiste em substituir a terceira linha por ela mesma subtrada
da linha 2 multiplicada por a3 (l3 l3 a3 l2 ):
1 c1
0
x1 d01
0 1 c02 x2 d02
.
0 b3 a3 c02 . . = (4.111)
0.
x
3
d
3 a3 d 2
.. .. .. ..
. . . .
cn1
an bn xn dn
A fim de normalizar o elemento da diagonal da terceira linha, dividimos toda a
linha por d3 a3 d02 :
1 c1
0 0
x1 d1
0 1 c02
0
x2 d2
...
0 1 = (4.112)
x d0 .
3 3
... ... .. ..
.
.
cn1
an bn xn dn
..
0 1 . = (4.113)
x d0 .
3 3
... ... .. ..
.
0 .
cn1
0 1 xn d0n
a = (0, 1, 1, 1, 1) (4.118)
b = (2, 2, 2, 2, 2) (4.119)
c = (1, 1, 1, 1, 0) (4.120)
d = (4, 4, 0, 0, 2) (4.121)
x5 = d05 = 1 (4.131)
4 4
x4 = d04 c04 x5 = 1=0 (4.132)
5 5
3
x3 = d03 c03 x4 = 1 0 = 1 (4.133)
4
4 2
x2 = d2 c2 x3 = (1) = 2
0 0
(4.134)
3 3
1
x1 = d1 c1 x2 = 2 2 = 1
0 0
(4.135)
2
E assim, obtemos o vetor x = [1, 2, 1, 0, 1].
cl=zeros(n,1) //Inicializa cl
dl=zeros(n,1) //Inicializa dl
x=zeros(n,1) //Inicializa x
cl(1)=c(1)/b(1)
for i=2:n-1
cl(i)=c(i)/(b(i)-a(i)*cl(i-1))
end
dl(1)=d(1)/b(1)
for i=2:n
dl(i)=(d(i)-a(i)*dl(i-1))/(b(i)-a(i)*cl(i-1))
end
x(n)=dl(n)
for i=n-1:-1:1
x(i)=dl(i)-cl(i)*x(i+1)
end
endfunction
c(1)=c(1)/b(1)
for i=2:n-1
c(i)=c(i)/(b(i)-a(i)*c(i-1))
end
d(1)=d(1)/b(1)
for i=2:n
d(i)=(d(i)-a(i)*d(i-1))/(b(i)-a(i)*c(i-1))
end
x(n)=d(n)
for i=n-1:-1:1
x(i)=d(i)-c(i)*x(i+1)
end
endfunction
A soluo do sistema do Exemplo 4.5.1 pode ser obtida atravs dos seguintes
comandos:
-->a=[0; 1; 1; 1; 1];
-->b=[2; 2; 2; 2; 2];
-->c=[1; 1; 1; 1; 0];
-->d=[4; 4; 0; 0; 2];
-->TDMA(a,b,c,d)
x1 x2 = 0
xj1 + 5xj xj+1 = cos(j/10), 2 j 10
x11 = x10 /2 (4.142)
Pequenas variaes nos coeficientes das matrizes fazem as solues ficarem bem
distintas, isto , pequenas variaes nos dados de entrada acarretaram em grandes
variaes na soluo do sistema. Quando isso acontece, dizemos que o problema
mal-condicionado.
Precisamos uma maneira de medir essas variaes. Como os dados de entrada
e os dados de sada so vetores (ou matrizes), precisamos introduzir as definies
de norma de vetores e matrizes.
b) kukp = || kukp .
i=1
c) Em construo ...
d) Em construo ...
Soluo.
kvk1 = 1 + 2 + 3 + 0 = 6 (4.155)
kvk2 = 1 + 22 + 32 + 02 = 14 (4.156)
kvk = max{1,2,3,0} = 3 (4.157)
kAkp = 0 A = 0 (4.159)
kAkp = || kAkp (4.160)
kA + Bkp kAkp + kBkp (desigualdade do tringulo) (4.161)
kAvkp kAkp kvkp (4.162)
kABkp kAkp kBkp (4.163)
kIkp = 1 (4.164)
1 = kIkp = kAA kp kAkp kA kp (se A inversvel)(4.165)
1 1
Casos especiais:
n
n
kAk1 = max (4.166)
X
|aij |
j=1
i=1
q
kAk2 = max{|| : (AA )} (4.167)
n
n
kAk = max (4.168)
X
|aij |
i=1
j=1
Soluo.
A(x + x ) = y + y (4.173)
kx k / kxk kx k kyk
= (4.176)
ky k /kyk kxk ky k
kA1 y k kAxk
= (4.177)
kxk ky k
kA1 k ky k kAk kxk
(4.178)
kxk ky k
= kAk kA k1
(4.179)
2 k 262,12,
k2 (A1 ) := kA2 kkA1 (4.182)
k (A1 ) := kA kkA1 k 350,36.
1 k1 6888,0,
k1 (A2 ) := kA1 k1 kA1
k2 (A2 ) := kA1 k2 kA1
1 k2 5163,0, (4.183)
k (A2 ) := kA1 k kA11 k 6888,0.
Exerccios
nas normas 1, 2 e .
usando as normas 1, 2 e .
100000x 9999.99y = 10
100000x 9999.99y = 9.999
e
9999.99x + 1000.1y = 1 9999.99x + 1000.1y = 1.01
(j/10)3
xj = sen (j/10), yj = j/10 zj = j/10 , j = 1, . . . ,10 (4.184)
6
Use o Scilabpara construir os seguintes vetores de erro:
|xj yj | |xj zj |
ej = fj = (4.185)
|xj | xj
Calcule as normas 1, 2 e de e e f
10x + y = 23 (4.197)
x + 8y = 26 (4.198)
23 y (k)
x(k+1) = (4.199)
10
26 x(k)
y (k+1) = (4.200)
8
23 y (1)
x(2) = = 2,3 (4.201)
10
26 x(1)
y (2) = = 3,25 (4.202)
8
23 y (2)
x(3) = = 1,975 (4.203)
10
26 x(2)
y (3) = = 2,9625 (4.204)
8
Exemplo 4.7.2. Considere o seguinte sistema
3x1 + x2 + x3 = 2
2x1 + 5x2 + x3 = 5 (4.205)
2x1 + 3x2 + 7x3 = 17
Usando o mtodo de Jacobi com aproximao inicial x(1) = (1, 1, 1), obtemos os
seguintes resultados:
Verifique a resposta.
function [x,deltax]=jacobi(A,b,x,tol,N)
n=size(A,1)
xnew =x
convergiu=%F //FALSE;
k=1
while k<=N & ~convergiu
xnew(1)=(b(1) - A(1,2:n)*x(2:n))/A(1,1)
for i=2:n-1
xnew(i)=(b(i) -A(i,1:i-1)*x(1:i-1) ...
-A(i,i+1:n)*x(i+1:n) )/A(i,i)
end
xnew(n)= (b(n) -A(n,1:n-1)*x(1:n-1) )/A(n,n)
deltax=max( abs(x-xnew) )
if deltax<tol then
convergiu=%T //TRUE
end
k=k+1
x=xnew // atualiza x
disp([k,x',deltax]) // depuracao
end
if ~convergiu then
error('Nao convergiu')
end
endfunction
(k+1) (k)
(k+1)
y2 a21 x1 + a23 x3 + + a2n xn(k)
x2 = (4.206)
a22
(k)
(k+1)
y1 a12 x2 + + a1n x(k)
n
x1 = (4.207)
a11
(k+1) (k)
(k+1)
y2 a21 x1 + a23 x3 + + a2n xn(k)
x2 = (4.208)
a22
..
. (4.209)
(k+1) (k+1)
y2 an1 x1 + + an(n1) xn1
x(k+1)
n = (4.210)
ann
10x + y = 23 (4.213)
x + 8y = 26 (4.214)
23 y (k)
x(k+1) = (4.215)
10
26 x(k+1)
y (k+1) = (4.216)
8
23 y (1)
x(2) = = 2,3 (4.217)
10
26 x(2)
y (2) = = 2,9625 (4.218)
8
23 y (2)
x(3) = = 2,00375 (4.219)
10
26 x(3)
y (3) = = 2,9995312 (4.220)
8
k=1
while k<=N & ~convergiu
xnew(1)=(b(1) - A(1,2:n)*x(2:n))/A(1,1)
for i=2:n-1
xnew(i)=(b(i) -A(i,1:i-1)*xnew(1:i-1) ...
-A(i,i+1:n)*x(i+1:n) )/A(i,i)
end
xnew(n)=(b(n) -A(n,1:n-1)*xnew(1:n-1) )/A(n,n)
deltax=max( abs(x-xnew) )
if deltax<tol then
convergiu=%T //TRUE
end
k=k+1
x=xnew // atualiza x
disp([k,x',deltax]) // depuracao
end
if ~convergiu then
error('Nao convergiu')
end
endfunction
matriz no singular.
Geralmente, mtodos iterativos so construdos como uma iterao de ponto
fixo. No caso de um sistema linear, reescreve-se a equao matricial em um pro-
blema de ponto fixo equivalente, isto :
Ax = b x = T x + c, (4.221)
A = L + D + U, (4.223)
Iterao de Jacobi
Vamos, agora, usar a decomposio discutida acima para construir a matriz de
iterao TJ e o vetor de iterao cJ associado ao mtodo de Jacobi. Neste caso,
temos:
Ax = b (L + D + U )x = b (4.231)
Dx = (L + U )x + b (4.232)
x = D1 (L + U ) x + D 1
| {z b} . (4.233)
| {z }
=:cJ
=:TJ
0 0 1 2 0 0
15 1
5
2
5
| {z }| {z }
D1 (L+U )
Iterao de Gauss-Seidel
A forma matricial da iterao do mtodo de Gauss-Seidel tambm pode ser
construda com base na decomposio A = L + D + U . Para tando, fazemos:
Ax = b (L + D + U )x = b (4.237)
(L + D)x = U x + b (4.238)
x = (L + D)1 U x + (L + D)1 b (4.239)
| {z } | {z }
=:TG =:cG
1 0 0 0 0 10 0
1
2 5
| {z }| {z }
(L+D)1 U
Condies de convergncia
Aqui, vamos discutir condies necessrias e suficientes para a convergncia de
mtodos iterativos. Isto , dado um sistema Ax = b e uma iterao:
x(k+1) = T x(k) + c, k 1, (4.243)
x(1) dado, estabelecemos condies nas quais x(k) x , onde x a soluo do
sistema dado, isto , x = T x + c ou, equivalentemente, Ax = b.
Lema 4.7.1. Seja T uma matriz real n n. O limite lim
T k
= 0, 1 p ,
k p
se, e somente se, (T ) < 1.
Demonstrao. Aqui, fazemos apenas um esboo da demonstrao. Para mais
detalhes, veja [8], Teorema 4, pg. 14.
Primeiramente, suponhamos que kT kp < 1, 1 p . Como (veja [8], lema
2, pg. 12):
(T ) kT kp , (4.244)
temos (T ) < 1, o que mostra a implicao.
Agora, suponhamos que (T ) < 1 e seja 0 < < 1 (T ). Ento, existe
1 p tal que (veja [8], Teorema 3, pgina 12):
kT kp (T ) + < 1. (4.245)
Assim, temos:
lim kT k kp lim kT km
p = 0. (4.246)
k k
Da equivalncia entre as normas segue a recproca.
Observao 4.7.1. Observamos que:
lim kT k kp = 0, ,1 p , lim tkij = 0, 1 i,j n. (4.247)
k k
k=0
o que mostra que (I T )1 = T k.
X
k=0
Observao 4.7.2. Pode-se mostrar que tais mtodos iterativos tem taxa de con-
vergncia super linear com:
kx(k+1) x k (T )k kx(1) x k. (4.261)
Para mais detalhes, veja [8], pg. 61-64.
Exemplo 4.7.7. Mostre que, para qualquer escolha da aproximao inicial, ambos
os mtodos de Jacobi e Gauss-Seidel so convergentes quando aplicados ao sistema
linear dado no Exemplo 4.7.4.
Soluo. Do Teorema 4.7.1, vemos que necessrio e suficiente que (TJ ) < 1 e
(TG ) < 1. Computando estes raios espectrais, obtemos (TJ ) 0,32 e (TG )
0,13. Isto mostra que ambos os mtodos sero convergentes.
Condio suficiente
Uma condio suficiente porm no necessria para que os mtodos de Gauss-
Seidel e Jacobi convirjam a que a matriz seja estritamente diagonal domi-
nante.
Definio 4.7.1. Uma matriz A estritamente diagonal dominante quando:
n
|aij | , i = 1,...,n (4.262)
X
|aii | >
j=1
j6=i
e para ao menos um i, aii estritamente maior que a soma dos elementos fora da
diagonal.
Teorema 4.7.2. Se a matriz A for diagonal dominante9 , ento os mtodos de
Jacobi e Gauss-Seidel sero convergentes independente da escolha inicial x(1) .
Se conhecermos a soluo exata x do problema, podemos calcular o erro relativo
em cada iterao como:
kx x(k) k
. (4.264)
kxk
Em geral no temos x, entretanto podemos estimar o vetor resduo r(k) =
b Ax(k) . Note que quando o erro tende a zero, o resduo tambm tende a zero.
9
Ou se for estritamente diagonal dominante e, consequentemente, diagonal dominante.
Teorema 4.7.3. O erro relativo e o resduo esto relacionados como (veja [3])
kx x(k) k krk
(A) (4.265)
kxk kbk
onde k(A) o nmero de condicionamento.
Exemplo 4.7.8. Ambos os mtodos de Jacobi e Gauss-Seidel so convergentes
para o sistema dado no Exemplo 4.7.4, pois a matriz dos coeficientes deste uma
matriz estritamente diagonal dominante.
Exerccios
x1 x2 = 1 (4.266)
x1 + 2x2 x3 = 1 (4.267)
x2 + (2 + )x3 x4 = 1 (4.268)
x3 + 2x4 x5 = 1 (4.269)
x4 x5 = 1 (4.270)
a) Escreva na forma Ax = b e resolva usando eliminao gaussiana para =
103 no Scilab.
b) Obtenha o vetor incgnita x com = 103 usando Jacobi com tolerncia
102 . Compare o resultado com o resultado obtido no item d.
c) Obtenha o vetor incgnita x com = 103 usando Gauss-Seidel com tole-
rncia 102 . Compare o resultado com o resultado obtido no item d.
d) Discuta com base na relao esperada entre tolerncia e exatido conforme
estudado na primeira rea para problemas de uma varivel.
x1 x2 = 0
xj1 + 5xj xj+1 = cos(j/10), 2 j 10
x11 = x10 /2 (4.271)
tem = 3 como maior autovalor (por qu?). Tomando x(1) = (1, 1, 1), a iterao
do mtodo da potncia nos fornece os seguintes resultados:
k x(k) (k)
1 (1, 1, 1) 17
2 (0,08, 0,41, 0,91) 4,10
3 (0,02, 0,34, 0,94) 3,50
4 (0,01, 0,30, 0,95) 3,28
5 (0,00, 0,28, 0,96) 3,16
.. .. ..
. . .
14 (0,00, 0,24, 0,97) 3,00
Suponha que um dos autovalores seja estritamente maior que os demais, isto ,
|1 | > |2 | |3 | |n |. Dado x(1) = (1 , 2 , 3 , . . . , n ), ento
1
k
1 1 1
k
k 2 2
2 2 2
1 1
Ak x(1) = k
= = k1 1 3 3 k (4.278)
A 3 k
3 3 1 1 ,
.. .. ..
. . .
k
n n
n kn n 1 1
k
desde que 1 6= 0. Como n1 n1
1
31 21 < 1, ento 1j tende a 0 para
cada j, 2 j n. Devido normalizao realizada em cada passo da sequncia,
Ak x(1)
x(k+1) = (4.279)
kAk x(1) k2
visto que U U 1 = I. Suponha que o chute inicial x(1) pode ser escrito da forma
com 1 6= 0. Ento
1
k
1 1 1
k
k 2 2
2 2 2
1 1
k
Ak x(1) = (U Dk U 1 )U =U = k1 1 U (4.285)
k 3 3 .
3 3 3 1 1
.. .. ..
. . .
k
n n
n kn n 1 1
Ak x(1)
x(k) = (4.286)
kAk x(1) k2
ii) Um autovalor deve ter o mdulo estritamente maior que os demais. Essa
restrio impede o funcionamento do mtodo no caso em que o autovalor
dominante complexo, pois eles aparecem em pares conjugados, possuindo
o mesmo mdulo.
Observamos que se x est na forma (4.289), ento Ak x pode ser escrito como
!k
n n n
j j
A x= k
j A vj =
k
j kj vj = 1 k1 v1 + (4.290)
X X X
vj .
j=1 j=1 j=2 1 1
Como 1j < 1 para todo j 2, temos
n
!k
j j
vj 0. (4.291)
X
j=2 1 1
Assim, k
Ak x 1 k1
2 .
= v1 + O (4.292)
kAk xk2 kAk xk 1
Ak x
Como a norma de igual a um, temos
k A k xk
k
1 1
v
1 (4.293)
kAk xk 1
e, portanto,
1
k
1 1
kAk xk
. (4.294)
kv1 k
1 k1
Ou seja, se definimos (k) = , ento
k A k xk
|(k) | 1. (4.295)
Retornando a (4.292), temos:
Ak x
(k) v1 0. (4.296)
kAk xk
Observe que um mltiplo de autovetor tambm um autovetor e, portanto,
Ak x(1)
x(k) = . (4.297)
kAk x(1) k
um esquema que oscila entre os autovetores ou converge para o autovetor v1 .
Como ji
< 1, o ltimo vetor converge para ei e
(A I)k x0
xk =
k(A I)k x0 k2
Exerccios resolvidos
Esta seo carece de exerccios resolvidos. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
Exerccios
E 4.9.1. O circuito linear da Figura 4.9.1 pode ser modelado pelo sistema
dado a seguir. 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 = V (4.301)
V1 V2 V3 V2 V2
+ = 0 (4.302)
R1 R2 R5
V2 V3 V4 V3 V3
+ = 0 (4.303)
R2 R3 R6
V3 V4 V5 V4 V4
+ = 0 (4.304)
R3 R4 R7
V4 V5 V5
= 0 (4.305)
R4 R8
V1 V2 V3 V4 V5
R1 R2 R3 R4
V R5 R6 R7 R8
Caso V1 V2 V3 V4 V5
a
b
Ento, refaa este problema reduzindo o sistema para apenas 4 incgnitas (V2 ,
V3 , V4 e V5 ).
147
148 Clculo Numrico
Podemos escrever este problema na forma vetorial definindo o vetor x = [x1 ,x2 , . . . ,xn ]T
e a funo vetorial
f1 (x1 ,x2 , . . . ,xn )
f2 (x1 ,x2 , . . . ,xn )
F (x) =
.
..
.
fn (x1 ,x2 , . . . ,xn )
Exemplo 5.0.1. Suponha que queiramos resolver numericamente o seguinte sis-
tema de duas equaes e duas incgnitas:
x21
+ x22 = 1
3
x2
x21 + 2 = 1
4
Ento definimos
x21
3
+ x22 1
F (x) =
x22
x21 + 1
4
Portanto,
f1 f1 f1
x1 x2
xn
(0)
x1 x 1
f2 f2 f2
x1 x2
xn
(0)
x2 x2
F (x) F (x(0) ) .. .. .. , (5.4)
..
. . . .
..
.
fn fn fn
x1 x2 xn
xn x(0)
n
fi
(JF )ij = . (5.5)
xj
A aproximao
x(k) definida como o ponto x em que a linearizao F (x(k) )+
JF x(k) x x(k) nula, ou seja:
F (x(k) ) + JF x(k) x(k+1) x(k) = 0 (5.8)
Assim, (k) = JF1 x(k) F (x(k) ), ou seja, (k) resolve o problema linear:
JF x(k) (k) = F (x(k) ) (5.11)
x21
+ x22 = 1
3
x2
x21 + 2 = 1
4
Para tal, definimos a funo F (x):
x21
+ x22 1
F (x) = 3 (5.12)
x22
x1 +
2
1
4
cuja jacobiana :
2x1
2x2
JF = 3 (5.13)
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
Desta forma, se x uma aproximao para a raiz, pode-se calcular a prxima
aproximao atravs dos comandos:
delta=-JF(x)\F(x)
x=x+delta
Ou simplesmente
x=x-JF(x)\F(x)
q q
Observe que as solues exatas desse sistema so 9
11
, 8
11
.
Exemplo 5.1.2. Encontre uma aproximao para a soluo do sistema
x21 = cos(x1 x2 ) + 1
sen (x2 ) = 2 cos(x1 )
onde
x1 cos(x1 x2 ) 1
2
F (x) = (5.15)
sen (x2 ) 2 cos(x1 )
e sua jacobiana
2x1 + x2 sen (x1 x2 ) x1 sen (x1 x2 )
JF (x) = (5.16)
2 sen (x1 ) cos(x2 )
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
x=[1.5; .5]
x=x-JF(x)\F(x) //(5 vezes)
Exerccios resolvidos
Esta seo carece de exerccios resolvidos. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
Exerccios
2x1 x2 = cos(x1 )
x1 + 2x2 x3 = cos(x2 )
x2 + x3 = cos(x3 )
a) Faa um esboo das duas curvas e entenda o problema. Verifique que existem
dois pontos de interseco, um no primeiro quadrante e outro no segundo
quadrante do plano xy.
d) Encontre a jacobiana JF .
f) Implemente no computador.
a ) Faa um esboo das duas curvas, entenda o problema. Verifique que existem
dois pontos de interseco, um no primeiro quadrante e outro no segundo
quadrante do plano xy.
d ) Encontre a jacobiana JF .
f ) Implemente no Scilab.
E 5.1.5. Encontre uma aproximao com erro inferior a 105 em cada incg-
nita para a soluo prxima da origem do sistema
6x 2y + ez = 2
sen (x) y + z = 0
sen (x) + 2y + 3z = 1
3P L
k1 = cos 1 + k (2 1 )
2
PL
k (2 1 ) = cos 2
2
Considere P = 100N , L = 1m e calcule os ngulos 1 e 2 quando:
a) k = 1000 Nm/rad
b) k = 500 Nm/rad
c) k = 100 Nm/rad
d) k = 10 Nm/rad
Obs:Voc deve escolher valores para iniciar o mtodo. Como voc interpretaria
fisicamente a soluo para produzir palpites iniciais satisfatrios? O que se altera
entre o caso a e o caso d?
E 5.1.9. (esttica - problemas de trs variveis) Considere, agora, o sistema
mecnico semelhante ao do Problema 5.1.8, porm constitudo de trs segmentos
de mesmo comprimento L presos entre si e a uma parede por articulaes.
tan1 (x) + x = y + y 3
Com base no grfico, encontre solues aproximadas para o problema e use-as para
iniciar o mtodo de Newton-Raphson. Encontre as razes com erro inferior a 105 .
restrita condio
E 5.1.15. A funo f (x,y,z) = sen (x) + sen (2y) + sen (3z) possui um mximo
quando x = /2, y = /4 e z = /6. Calcule numericamente este ponto.
3x cos(yz + z) 1/2 = 0
4x2 25y 2 + 0.4y + 2 = 0
exy + 2x 5z = 10
no cubo |x| < 2, |y| < 2, |z| < 2. Dica: Reduza a um problema de duas incgnitas
e use recursos grficos para aproximar as razes na regio.
x1 x2 = 0
xj1 + 5(xj + x3j ) xj+1 = 10 exp(j/3), 2 j 10
x11 = 1 (5.28)
x1
x2
a) Escreva este sistema na forma F (x) = 0 onde x =
. e calcule analitica-
..
x11
mente a matriz jacobiana (F1 ,...,F11 )
(x1 ,...x11 )
. Dica: Use a regularidade nas expresses
para abreviar a notao.
5.2.1 Gradiente
Considere primeiramente uma funo f : Rn R, ou seja, uma funo que
mapeia n variveis reais em um nico real, por exemplo:
d d
g 0 (h) = g(h) = f (x(0) + hv).
dh dh
Pela regra da cadeia temos:
n
d f dxj
f (x(0) + hv) =
X
.
dh j=1 xj dh
(0)
Observamos que xj = xj + hvj , portanto
dxj
= vj (5.36)
dh
Assim:
n
d f
f (x + hv) =
(0)
X
vj .
dh j=1 xj
Observamos que esta expresso pode ser vista como o produto interno entre o
gradiente de f e o vetor v:
f
x1 v1
f
v2
f = v=
x2
. .
.. ..
f
xn
vn
ou, equivalentemente:
f1 (x )
(0) T (0)
f1 x
Tf2 (x(0) )
(0)
f2 x
F (x) = + x x(0) +O(kx x(0) k2 )
.. ..
| {z }
.
. Vetor coluna
fn x(0) Tfn (x(0) )
| {z } | {z }
Vetor coluna Matriz jacobiana
2
F (x) = F x(0) + JF (x(0) ) x x(0) + O
x x(0)
(5.41)
fi
(JF )ij = (5.42)
xj
f1
x1
f1
x2
2x1
3
2x2
JF = =
2x1
f2 f2 x2
x1 x2 2
Interpolao
f (xi ) = yi , i = 1, 2, . . . , n. (6.1)
a + bx1 = y1 a+b=1
isto (6.3)
a + bx2 = y2 a + 2b = 2
166
6.1. INTERPOLAO POLINOMIAL 167
Figura 6.1: Exemplo de interpolao de dois pontos por uma reta, veja o Exem-
plo 6.0.1.
k=0
k=0
Figura 6.2: Polinmio interpolador do conjunto de pontos {(0, 1), (1, 6), (2, 5),
(3, 8)}. Veja o Exemplo 6.1.1.
k=0
.. (6.11)
.
a0 + a1 xn + a2 xn + + an1 xn = yn .
2 n1
(xj xi ) (6.13)
Y
1i<jn
Exerccios resolvidos
Esta seo carece de exerccios resolvidos. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
a) Existem infinitas parbolas que interpolam dois pontos dados {(x1 , y1 ), (x2 , y2 )},
com x1 6= x2 .
b) No existe reta que interpola os pontos {(1, 1), (2, 2,1), (3, 3)}.
2
Alexandre-Thophile Vandermonde, 1735 - 1796, matemtico francs.
a1 + a2 x1 + a3 x21 = y1
(6.14)
a1 + a2 x2 + a3 x22 = y2
a1 + a2 x1 = y1 a3 x21
, (6.15)
a1 + a2 x2 = y2 a3 x22
a1 + a2 = 1
a1 + 2a2 = 2,1, (6.16)
a1 + 3a2 = 3
Exerccios
Esta seo carece de exerccios. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
p(x) = a1 + a2 (x x1 ) + a3 (x x1 )(x x2 ) +
(6.17)
+ an (x x1 )(x x2 ) (x xn1 ).
a1 = y1
a1 + a2 (x2 x1 ) = y2
a1 + a2 (x3 x1 ) + a3 (x3 x1 )(x3 x2 ) = y3 (6.18)
..
.
a1 + a2 (xn x1 ) + + an (xn x1 ) (xn xn1 ) = yn
a1 = y 1
y 2 a1 y2 y1
a2 = =
x2 x1 x2 x1
y3 y2
y2 y1 (6.19)
y3 a2 (x3 x1 ) a1 (x3 x2 ) (x2 x1 )
a3 = =
(x3 x1 )(x3 x2 ) (x3 x1 )
...
Tabela 6.1: Esquema de diferenas divididas para um conjunto com trs pontos
{(xi , yi )}3i=1 .
j xj f [xj ] f [xj1 ,xj ] f [xj2 ,xj1 ,xj ]
1 x1 f [x1 ] = y1
f [x2 ] f [x1 ]
f [x1 ,x2 ] =
x2 x1
f [x2 ,x3 ] f [x1 ,x2 ]
2 x2 f [x2 ] = y2 f [x1 ,x2 ,x3 ] =
x3 x1
f [x3 ] f [x2 ]
f [x2 ,x3 ] =
x3 x2
3 x3 f [x3 ] = y3
f [xj ] := yj (6.20)
f [xj+1 ] f [xj ]
f [xj , xj+1 ] := (6.21)
xj+1 xj
f [xj+1 , xj+2 ] f [xj , xj+1 ]
f [xj , xj+1 , xj+2 ] := (6.22)
xj+2 xj
..
. (6.23)
f [xj+1 , xj+2 , . . . , xj+k ] f [xj , xj+1 , . . . , xj+k1 ]
f [xj , xj+1 , . . . , xj+k ] := (6.24)
xj+k xj
Chamamos f [xj ] de diferena dividida de ordem zero (ou primeira diferena divi-
dida), f [xi ,xj +1] de diferena dividida de ordem 1 (ou segunda diferena dividida)
e assim por diante.
Uma inspeo cuidadosa dos coeficientes obtidos em (6.19) nos mostra que
j xj f [xj ] f [xj1 ,xj ] f [xj2 ,xj1 ,xj ] f [xj3 ,xj2 ,xj1 ,xj ]
1 1 3
13
= 2
0 (1)
2 (2)
2 0 1 =2
1 (1)
31 62
=2 =1
10 3 (1)
20 2
3 1 3 =6
30
43 3
= 20
31
4 3 43
Portanto, o polinmio interpolador do conjunto de pontos dados
k=1
j=1
j6=i
Portanto,
n
(x xj )
Lk (x) = (6.31)
Y
j=1 (xk xj )
j6=i
onde
M = max |f (n+1) ((x))|
x[a,b]
(x 12 )(x 1)
P (x) = 1
(0 12 )(0 1)
1 (x 0)(x 1)
+ cos
2 ( 12 0)( 12 1)
(x 0)(x 12 )
+ cos(1) (6.37)
(1 0)(1 12 )
1 0,0299720583066x 0,4297256358252x2 (6.38)
e, assim,
1
max x x (x 1) .
x[0,1] 2
1
max x x (x 1) max{|Q(x1 )|, |Q(x2 )|} 0,0481125.
x[0,1] 2
Portanto:
0,85
|f (x) P (x)| < 0,0481125 0,0068159 < 7 103
3!
pelo valor da integral do polinmio P (x) que coincide com f (x) nos pontos x0 = 0,
x1 = 21 e x2 = 1. Use a frmula de Lagrange para encontrar P (x). Obtenha o
valor de 01 P (x)dx e encontre uma expresso para o erro de truncamento.
R
e a integral de P (x) :
Z 1
2 3 3 2 1
1 4 1
P (x)dx = f (0) x x +x + f x3 + 2x2
0 3 2 0 2 3 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
Exerccios
(xi+1 x) (x xi )
Pi (x) = yi + yi+1 (6.41)
(xi+1 xi ) (xi+1 xi )
Exemplo 6.5.1. 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
01
+ 1 x0
10
, 0x<1
4 x2 + 3 x1 , 1x<2
12 21
f (x) = 3 x3
23
+ 0 x2
32
, 2x<3 (6.43)
0 x4 + 2 x3 , 3x<4
34 43
2 x5 + 0 x4 , 4x5
45 54
Simplificando, obtemos:
x, 0x<1
x + 5, 1x<2
f (x) = 3x + 9, 2x<3 (6.44)
2x 6, 3x<4
2x + 10, 4 x 5
//pontos fornecidos
xi = [0;1;2;3;4;5]
yi = [0;4;3;0;2;0]
//numero de pontos
n = 6
//funcao interpoladora
function [y] = f(x)
for i=1:n-2
if ((x>=xi(i)) & (x<xi(i+1))) then
y = yi(i)*(x-xi(i+1))/(xi(i) - xi(i+1)) ...
+ yi(i+1)*(x-xi(i))/(xi(i+1) - xi(i));
end
end
3.5
2.5
1.5
0.5
0
0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5
sj (x) = aj + bj (x xj ) + cj (x xj )2 + dj (x xj )3 , (6.47)
aj = y j e bj = yj0 . (6.48)
sj (x) = aj + bj (x xj ) + cj (x xj )2 + dj (x xj )3 , (6.50)
onde
yj+1 yj 0
yj+1 + 2yj0
aj = yj , cj = 3 ,
h2j hj
0
+ yj0 (6.51)
yj+1 yj yj+1
bj = yj0 , dj = 2 +
h3j h2j
e
hj = xj+1 xj , j = 1,2, . . . ,n 1 (6.52)
a distncia entre as abscissas de dois pontos de interpolao consecutivos.
Proposio 6.6.2. Dado o conjunto de pontos I = {(xj ,yj )}nj=1 R2 tais que
xj+1 > xj , as derivadas de um spline cbico que interpola os pontos I, yj0 , j =
1,2, . . . ,n satisfazem o sistema de equaes algbricas lineares
!
yj yj1 yj+1 yj
0
hj yj1 + 2(hj1 + hj )yj0 + hj1 yj+1
0
= 3 hj + hj1 , (6.55)
hj1 hj
ou seja,
y2 y1
2y10 + y20 = 3
h1
. (6.58)
yn yn1
+ 2yn0 = 3
0
yn1
hn1
y2 y1
h1
h2 y2hy + h1 y3hy
y10
1
1
2
2
0
h3 y3hy + h2 y4hy
y2 2 3
y = 0
e z= 3 (6.60)
2 3
.. .. .
. .
yn2
hn1 yn1hn2 + hn2 ynhy
yn0
n1
n1
yn yn1
hn1
Exemplo 6.6.1. Construa um spline cbico natural que passe pelos pontos (2, 4,5),
(5, 1,9), (9, 0,5) e (12, 0,5).
Portanto:
4,5 2,83(x 2) + 0,07(x 2)3 ,2 x < 5
S(x) =
1,9 0,73(x 5) + 0,7(x 5)2 0,0916(x 5)3 , 5 x < 9 . (6.65)
0,5 + 0,46(x 9) 0,4(x 9)2 + 0,04(x 9)3
, 9 x 12
h2 y2hy 1
+ h1 y3hy 2
h2 y10
y20 1 2
h3 y3hy h2 y4hy
2 3
+
y30 2 3
..
y0 = e z= 3 . (6.67)
.. .
.
yn3 yn2
hn2 yn2 + hn3 yn1
0
hn3 hn2
yn1
yn2
hn1 yn1
hn2 + hn2 ynhyn1
n1
hn2 yn0
lim s000
1 (x) = s2 (x2 ) e
000
lim s000
n2 (x) = sn1 (xn1 ).
000
(6.68)
x%x2 x%xn1
ou seja,
y2 y1 y3 y2
h22 y10 + (h22 h21 )y20 h21 y30 =2 h22 h21
h1 h2
!
.
0
h2n1 yn2 + (h2n1 h2n2 )yn1
0
h2n2 yn0 = 2 h2n1 h2n2
hn2 hn1
(6.70)
Essas duas equaes agregadas s equaes (6.55) formam um sistema de n equa-
es Ay 0 = z, onde
h22 h22 h21 h21 0 0 0
h2 2(h1 + h2 ) h1 0 0 0
0 h3 2(h2 + h3 ) h2 0 0
A= , (6.71)
.. .. .. .. .. .. ..
. . . . . . .
0 0 0 hn1 2(hn2 + hn1 ) hn2
0 0 0 h2n1 h2n1 h2n2 h2n2
y2 y1 y3 y2
2 h22 h21
h 1 h2
y10
y2 y1 y3 y2
3 h2 h1 + h1 h2
y20
..
y0 = z= (6.72)
e . .
..
.
yn1 yn2 yn yn1
3 hn1 hn2 + hn2 hn1
yn0
yn1 y n2 yn yn1
2
2 hn1 2 hn2
hn2 hn1
Se reduzirmos esse sistema pela eliminao das incgnitas y10 e yn0 , o sistema re-
sultante possui uma matriz de coeficientes diagonal dominante estrita, portanto,
a soluo nica.
O termo not-a-knot (no n) relaciona-se nomenclatura dos splines. O termo
n utilizado para os pontos interpolados. Neles, a derivada terceira da funo
spline descontnua, portanto, quando impomos a continuidade dessa derivada em
x2 e xn1 como se esses pontos deixassem de ser ns.
0
y10
h2 y2hy + h1 y3hy
1 2
y20 1 2
..
y0 = e z= 3 . (6.77)
.. .
.
y
y
+ hn2 ynhy
h n1 n2 n1
n1 hn2
yn0 n1
hn1 y2hy
1
1
+ h1 ynhy
n1
n1
Neste caso tambm, se reduzirmos esse sistema pela eliminao das incgnitas y10
e yn0 , o sistema resultante possui uma matriz de coeficientes diagonal dominante
estrita, portanto, a soluo nica.
Ajuste de curvas
Figura 7.1: Exemplo de um problema de ajuste de uma reta entre trs pontos,
veja o Exemplo 7.0.1.
N
min (f (xj ) yj )2 , (7.1)
X
f F
j=1
190
7.1. AJUSTE DE UMA RETA 191
N
R := (f (xj ) yj )2
X
j=1 (7.2)
= (f (x1 ) y1 )2 + (f (x2 ) y2 )2 + + (f (xN ) yN )2
Exemplo 7.0.1. Dado o conjunto de pontos {(1, 1,2), (1,5, 1,3), (2, 2,3)} e a fam-
lia de retas f (x) = a + bx, podemos mostrar que f (x) = 0,05 + 1,1x a reta que
melhor aproxima os pontos dados no sentido de mnimos quadrados. Os pontos e
a reta ajustada e so esboados na Figura 7.1.
N
R= (f (xj ) yj )2 (7.3)
X
j=1
seja mnimo.
Para tal, primeiro observamos que f (xj ) = a1 + a2 xj e, portanto, o resduo
pode ser escrito explicitamente como uma funo de a1 e a2 conforme a seguinte
expresso:
N
R(a1 ,a2 ) = (a1 + a2 xj yj )2 . (7.4)
X
j=1
Observamos que R(a1 ,a2 ) uma forma quadrtica e que seu mnimo ocorre
N
R X
= (a1 + a2 xj yj )2 = 0,
a1 a1 j=1
N
R X
= (a1 + a2 xj yj )2 = 0.
a2 a2 j=1
Ou seja,
N
2 (a1 + a2 xj yj ) 1 = 0,
X
j=1
N
2 (a1 + a2 xj yj ) xj = 0,
X
j=1
N N N
1 + a2 xj =
X X X
a1 yj ,
j=1 j=1 j=1
N N N
x j + a2 x2j =
X X X
a1 y j xj .
j=1 j=1 j=1
Observando que N j=1 1 = N , o sistema linear acima pode ser escrito na forma
P
matricial M a = w, isto ,
PN PN
N j=1 xj a1 j=1 yj
= P . (7.5)
P
N PN 2 N
j=1 xj j=1 xj a2 j=1 xj yj
| {z } | {z } | {z }
M a w
Este sistema linear de duas equaes e duas incgnitas admite uma nica so-
luo quando o determinante da matriz dos coeficientes for no nulo, isto ,
2
N N
x2j xj 6= 0
X X
N
j=1 j=1
Ento, o grfico da funo ajustada e dos pontos pode ser obtido com os comandos:
Exerccio resolvido
ER 7.1.1. a) Mostre que o sistema linear M a = w descrito na Equao 7.5 pode
ser reescrito na forma V T V a = V T y, onde V = [1 x].
b) Mostre que V , como definido no item a), tem posto igual a 2 quando pelo menos
duas abscissas do conjunto de pontos {(xj , yj )}N
j=1 so diferentes. E, portanto,
M = V V uma matriz invertvel.
T
e
y1
1 1 1
PN
y2
j=1 yj
V Ty = = P = w. (7.10)
.
.
x1 x2 xN .
N
j=1 xj y j
yN
Exerccios
E 7.1.2. Seja dado o conjunto de pontos {(0,35, 0,2), (0,15, 0,5), (0,23, 0,54),
(0,35, 0,7)}. Encontre a funo f (x) = a1 + a2 x que melhor se ajusta no sentido
de mnimos quadrados aos pontos dados. Faa, ento, um grfico com os pontos e
o esboo da funo ajustada.
E 7.1.3. Seja dado o conjunto de pontos {(1,94, 1,02), (1,44, 0,59), (0,93, 0,28),
(1,39, 1,04)}. Encontre a funo f (x) = a1 + a2 x que melhor se ajusta no sentido
de mnimos quadrados aos pontos dados. Ento, responda cada item:
a) Encontre o valor de f (1).
b) Encontre o valor de f (0,93).
c) Encontre o valor de |f (0,93) (0,28)|.
d) Encontre o valor do resduo R = j=1 (f (xj ) yj )2 .
PN
j=1
minimiza o resduo
n
R= [f (xi ) yi ]2 . (7.13)
X
i=1
i=1
Do fato que f (xi ) = aj fj (xi ), temos que cada resduo pode ser escrito como
Pm
j=1
2
m
Ri = aj fj (xi ) yi . (7.15)
X
j=1
Exemplo 7.2.1. Encontre a reta que melhor se ajusta aos pontos dados na se-
guinte tabela:
i 1 2 3 4 5
xi 0,01 1,02 2,04 2,95 3,55
yi 1,99 4,55 7,20 9,51 10,82
Exemplo 7.2.2. Encontre a funo f (x) = a1 sen (x) + a2 cos(x) que melhor se
ajusta pelo critrios dos mnimos quadrados aos seguintes pontos dados
i 1 2 3 4 5
xi 0,00 0,25 0,50 0,75 1,00
yi 153 64 242 284 175
-->x = inv(A)*b
-->x = A/b
Neste caso, a matriz V associada ao ajuste dos pontos {(x1 , y1 ), (x2 , y2 ), (x3 , y3 ),
. . ., (xn ,yn )} dada por:
1 x1 x21 xm1
1
1 x2 x22 xm1
2
V = 1 (7.25)
x3 x23 xm1
3
.. .. .. .
..
.
. .
1 xn x2n xm1
n
Exemplo 7.2.3. Entre o polinmio de grau 2 que melhor se ajusta aos pontos
dados na seguinte tabela:
i 1 2 3 4 5
xi 0,00 0,25 0,50 0,75 1,00
yi 153 64 242 284 175
p(x) = a1 + a2 x + a3 x2 . (7.27)
a1 + a2 x1 + a3 x21 = y1
a2 + a2 x2 + a3 x22 = y2
a3 + a2 x3 + a3 x23 = y3 (7.28)
a4 + a2 x4 + a3 x24 = y4
a5 + a2 x5 + a3 x25 = y5
Exerccios
i 1 2 3 4
xi 1,50 0,50 1,25 1,50
yi 1,15 0,37 0,17 0,94
i 1 2 3 4 5
xi 0,01 1,02 2,04 2,95 3,55
yi 1,99 4,55 7,20 9,51 10,82
xi 0,0 0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1,0
yi 31 35 37 33 28 20 16 15 18 23 31
2
A soma do quadrado dos resduos.
Exemplo 7.3.1. Encontre uma curva da forma y = Aebx que melhor ajusta os
pontos (1, 2), (2, 3) e (3, 5).
| {z } | {z }
V y
i
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
B T Bz = B T y,
onde
1. 0.
0,8090170 0,5877853
0,3090170 0,9510565
0,3090170 0,9510565
cos(2x0 ) sen (2x0 )
0,8090170 0,5877853
cos(2x1 ) sen (2x1 )
B = = 0,0000000
1,0000000 .
..
.
0,8090170 0,5877853
cos(2x10 ) sen (2x10 )
0,3090170 0,9510565
0,3090170 0,9510565
0,8090170 0,5877853
1,0000000 0,0000000
Observe que
A2 = 7,96147042 + 11,4057212
e, escolhendo A > 0, A = 13,909546 e
11,405721
sen () = = 0,8199923
13,909546
Assim, como cos tambm positivo, um ngulo do primeiro quadrante:
= 0,9613976
Exerccios resolvidos
ER 7.3.1. Encontre a funo f da forma y = f (x) = b+xa
que ajusta a seguinte
tabela de pontos usando uma das transformaes tabeladas.
i xi yi
1 0,0 101
2 0,2 85
3 0,4 75
4 0,6 66
5 0,8 60
6 1,0 55
AT Az = AT Y,
onde
1 x1
1 0,0
1 x 1 0,2
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/y2 0,0117647
1/y3 0,0133333
Y =
=
1/y4 0,0151515
1/y5 0,0166667
1/y6 0,0181818
Exerccios
Esta seo carece de exerccios. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
Derivao numrica
f (x0 + h) f (x0 )
f 0 (x0 ) = lim . (8.1)
h0 h
Deste limite, tomando h 6= 0 pequeno (no muito pequeno para evitar o cance-
lamento catastrfico), esperado que possamos obter uma aproximao razovel
para f 0 (x0 ). Assim, a diferena finita progressiva de ordem 1
f (x0 + h) f (x0 )
D+,h f (x0 ) := f 0 (x0 ) (8.2)
h
uma aproximao para f 0 (x0 ).
211
212 Clculo Numrico
cos(1 + h) cos(1)
D+,h f (1) = (8.3)
h
2f ()
00
f (x0 + h) = f (x0 ) + hf (x0 ) + h
0
, h > 0, (x0 ,x0 + h). (8.4)
2
f (x0 + h) f (x0 ) f 00 ()
f 0 (x0 ) = h , (8.5)
| h
{z } | {z } 2
D+,h O(h)
1
Uma funo suave uma funo infinitamente continuamente diferencivel, isto , f
C (R). Uma anlise mais cuidadosa, revela que hipteses mais fracas podem ser assumidas.
f (x0 + h) f (x0 )
D+,h f (x0 ) := (8.6)
h
de ordem h.
f 00 ()
f (x0 h) = f (x0 ) hf 0 (x0 ) + h2 , h > 0, (x0 , x0 + h). (8.7)
2
Isolando f 0 (x0 ), obtemos
f (x0 ) f (x0 h) f 00 ()
f 0 (x0 ) = +h . (8.8)
| h
{z } | {z2 }
D,h O(h)
f (x0 ) f (x0 h)
D,h f (x0 ) := , (8.9)
h
que possui erro de truncamento de ordem h.
f 000 (+ ) f 000 ( )
!
f (x0 + h) f (x0 h) = 2hf 0 (x0 ) + h3 . (8.12)
3!
2
Tambm chamada de diferena finita progressiva de dois pontos ou diferena pra frente.
3
Tambm chamada de diferena regressiva de dois pontos ou diferena pra trs.
f (x0 + h) f (x0 h)
D0,h f (x0 ) := , (8.14)
2h
uma aproximao para f 0 (x0 ) com erro de truncamento de ordem h2 , ou sim-
plesmente ordem 2.
1
Exemplo 8.1.2. Calcule a derivada numrica da funo f (x) = e 2 x no ponto
x = 2 usando a diferena progressiva, diferena regressiva e diferena central com
h = 101 , h = 102 e h = 104 . Tambm, calcule o erro absoluto da aproximao
obtida em cada caso.
f (x + h) f (x)
D+,h f (x) = D+,h f (x)(1 + (x,h)) = (1 + (x,h)). (8.22)
h
Tambm, consideremos
e
|f (x) f (x)| = (x,0) , (8.24)
onde f (x + h) e f (x) so as representaes em ponto flutuante dos nmeros f (x+h)
e f (x), respectivamente.
Ento, da Equao (8.22), a diferena do valor da derivada e sua aproximao
representada em ponto flutuante pode ser estimada por:
f (x + h) f (x)
f (x) D+,h f (x) = f (x) (1 + (x,h)) . (8.25)
0 0
h
f (x + h) f (x) f (x + h) f (x + h)
f (x) D+,h f (x) = f (x) + (8.26)
0 0
h h
f (x) f (x)
!
+ (1 + ) (8.27)
h
f (x + h) f (x) f (x + h) f (x + h)
= f (x) + (8.28)
0
h h
f (x) f (x)
!
+ (1 + ) . (8.29)
h
Exerccios resolvidos
Esta seo carece de exerccios resolvidos. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
Exerccios
0,0 0,50 1,00 1,50 2,00 2,50 3,00 3,50 4,00 4,50 5,00
0,0 1,05 1,83 2,69 3,83 4,56 5,49 6,56 6,11 7,06 8,29
Caso a b c d
vi = 1
vi = 4.5
Exerccios resolvidos
Exerccios
(x x1 )(x x2 ) (x x0 )(x x2 )
f (x) = f (x0 ) + f (x1 )
(x0 x1 )(x0 x2 ) (x1 x0 )(x1 x2 )
(8.42)
(x x0 )(x x1 ) f ((x))
000
+ f (x2 ) + (x x0 )(x x1 )(x x2 ).
(x2 x0 )(x2 x1 ) 6
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 )
(8.43)
f ((x))
000
+ ((x x1 )(x x2 ) + (x x0 )(2x x1 x2 ))
6
f 000 ((x))
!
+ Dx (x x0 )(x x1 )(x x2 ).
6
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 )
(8.44)
f ((x0 ))
000
+ ((x0 x1 )(x0 x2 ) + (x0 x0 )(2x0 x1 x2 ))
6
f 000 ((x0 ))
!
+ Dx (x0 x0 )(x0 x1 )(x0 x2 ).
6
3h 2h
f 0 (x0 ) = f (x0 ) + f (x1 )
(h)(2h) (h)(h)
h f ((x0 ))
000
+ f (x2 ) + ((h)(2h)) (8.45)
(2h)(h) 6
1 3 1 f 000 ((x0 ))
= f (x0 ) + 2f (x1 ) f (x2 ) + h2
h 2 2 3
1 1 1 f 000 ((x1 ))
f (x1 ) =
0
f (x0 ) + f (x2 ) + h2 (8.46)
h 2 2 6
1 1 3 f 000 ((x2 ))
f 0 (x2 ) = f (x0 ) 2f (x1 ) + f (x2 ) + h2 (8.47)
h 2 2 3
1 3 1 f 000 ((x0 ))
f (x0 ) =
0
f (x0 ) + 2f (x0 + h) f (x0 + 2h) + h2 (8.48)
h 2 2 3
1 1 1 f 000 ((x0 + h))
f 0 (x0 + h) = f (x0 ) + f (x0 + 2h) + h2 (8.49)
h 2 2 6
1 1 3 f 000 ((x0 + 2h))
f (x0 + 2h) =
0
f (x0 ) 2f (x0 + h) + f (x0 + 2h) + h2 (8.50)
h 2 2 3
ou ainda
1 f 000 ((x0 ))
f 0 (x0 ) = [3f (x0 ) + 4f (x0 + h) f (x0 + 2h)] + h2 (8.51)
2h 3
1 f 000 ((x0 ))
f 0 (x0 ) = [f (x0 + h) f (x0 h)] + h2 (8.52)
2h 6
1 f 000 ((x0 ))
f 0 (x0 ) = [f (x0 2h) 4f (x0 h) + 3f (x0 )] + h2 (8.53)
2h 3
Observe que uma das frmulas exatamente as diferenas centrais obtida anteri-
ormente.
Analogamente, para construir as frmulas de cinco pontos tomamos o polinmio
de Lagrange para cinco pontos e chegamos a cinco frmulas, sendo uma delas a
seguinte:
1 h4 (5)
f (x0 ) =
0
[f (x0 2h) 8f (x0 h) + 8f (x0 + h) f (x0 + 2h)]+ f ((x0 ))
12h 30
(8.54)
Exerccios
Esta seo carece de exerccios. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
(x)0x = 1 = c1 x 1 + c2 x 2 + . . . + cn x n (8.59)
(x2 )0x = 2x = c1 x21 + c2 x22 + . . . + cn x2n (8.60)
(x3 )0x = 3(x )2 = c1 x31 + c2 x32 + . . . + cn x3n (8.61)
.. .
. = .. (8.62)
(xn1 )0x = (n 1)(x ) n2
= c1 xn1
1 + c1 x1n1 + . . . + cn xnn1 (8.63)
Considere a base polinomial {1 (x), 2 (x), 3 (x)} = {1, x, x2 } e substitua f (x) por
k (x) obtendo
Exerccios resolvidos
Em construo ... Gostaria de participar na escrita deste livro? Veja como em:
https://www.ufrgs.br/numerico/participe.html
Exerccios
E 8.4.4. Seja [x0 ,x1 , . . . ,x4 ] = [2h, h,0,h,2h] e x = 0, obtenha uma regra
de diferenciao para aproximar f 00 (x ).
x y
0 1,95
1 1,67
2 3,71
3 3,37
4 5,12
5 5,79
6 7,50
7 7,55
8 9,33
9 9,41
10 11,48
12
11
10
1
0 1 2 3 4 5 6 7 8 9 10
Exerccios resolvidos
Esta seo carece de exerccios resolvidos. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
Exerccios
Esta seo carece de exerccios. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
Integrao numrica
231
232 Clculo Numrico
4.5
3.5
2.5
1.5
0.5
0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
Observe que:
#2
8
"
Z 2
x3
(x + 1) dx =
2
+x = + 2 = 4,6666667. (9.6)
0 3 0
3
Si f (xi )h (9.9)
tal que a rea total ser aproximada pelas somas de Riemann esquerda
n1 n1
S= Si = f (xi )h (9.10)
X X
i=1 i=1
i=1
Uma terceira opo utilizar o ponto mdio do intervalo [xi ,xi+1 ] o qual fornece
a regra do ponto mdio
n1
xi + xi+1
S= f (i )h, i = (9.12)
X
.
i=1 2
Exerccios resolvidos
Esta seo carece de exerccios resolvidos. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
Exerccios
Esta seo carece de exerccios. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
i=1
f (n) ((x)) Yn
n
ELAG (x) = (x xi ). (9.20)
n! i=1
onde
Z b
Ai = Li (x) dx. (9.23)
a
Z b Z b
f (x) dx p1 (x) dx
a a
Z b
= y1 L1 (x) + y2 L2 (x) dx
a
Z b Z b
= y1 L1 (x) dx + y2 L2 (x) dx
a a
= A1 y1 + A2 y2 ,
onde
# x2
(x x1 )2
"
Z b
x x1
A1 = dx =
a x2 x1 2h x1
(x2 x1 )2 h2 1
= = = h.
2h 2h 2
Da mesma forma,
Z b
(x x2 ) 1
A2 = dx = h,
a (x1 x2 ) 2
Z b Z b
f 00 ((x))
ET RAP = 2
ELAG (x) dx = (x x1 )(x x2 ) dx.
a a 2!
f 00 () Z b
ET RAP = (x x1 )(x x2 ) dx,
2! a
portanto
# x2
f 00 () x3 x2
"
ET RAP = (x2 + x1 ) + x1 x2 x
2 3 2 x1
f ()
00
!
x32 x22 x3 x2
= (x2 + x1 ) + x1 x2 x2 1 + 1 (x2 + x1 ) x1 x2 x1
2 3 2 3 2
f () 2x2 3x2 (x2 + x1 ) + 6x2 x1 2x1 + 3x21 (x2 + x1 ) 6x2 x21
00 3 2 2 3
=
2 6
f 00 () 3 f 00 ()
= x1 3x21 x2 + 3x22 x1 x32 = (x1 x2 )3
12 12
f 00 () 3
= h.
12
Assim, o erro na regra do trapzio
f 00 () 3
ET RAP =
h = O(h3 ).
12
Exemplo 9.2.2. Use a regra do trapzio para aproximar a integral
Z 1
2
ex dx.
0
Depois divida a integral em duas
Z 1/2 Z 1
x2 2
e dx + ex dx.
0 1/2
a+b
x1 := a, x2 := e x3 := b (9.29)
2
com h = x3 x
2
1
, isto , a distncia entre dois pontos consecutivos, podemos obter
o polinmio de Lagrange
onde
Z b
Ai = Li (x) dx (9.34)
a
1 4 a+b 1
Z b ! !
f (x) dx = f (a) + f + f (b) h. (9.35)
a 3 3 2 3
4 1
A2 = h, A3 = h
3 3
a+b
" ! #
Z b
ba
f (x)dx f (a) + 4f + f (b) . (9.36)
a 6 2
Z b Z b Z b
(x x1 )(x x2 )(x x3 ) 000
f (x) dx = p2 (x) dx + f ((x)) dx
a a a 6
(x x2 )2 f 00 (x2 )
Z b "
f (x) dx = f (x2 )(x x2 ) + f 0 (x2 ) + (x x2 )3
a 2 6
#x
f 000 (x2 ) 3
+ (x x2 )4 (9.37)
24 x1
1 Z x3 (4)
+ f ((x))(x x2 )4 dx,
24 x1
Exerccios resolvidos
Esta seo carece de exerccios resolvidos. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
Exerccios
Verifique o mtodo de Simpson pode ser entendido como uma mdia aritmtica
ponderada entre os mtodos de trapzio e ponto mdio. Encontre os pesos envol-
vidos. Explique o que so os mtodos compostos.
exata para qualquer funo da base. Substituindo f (t) por 1 (t) = 1 em (9.42).
obtemos:
Z b
1 (t) dt = t|ba = w1 1 (t1 ) + w2 1 (t2 ) + . . . + wn 1 (tn ) (9.43)
a
b a = w1 + w2 + . . . + wn . (9.44)
Da mesma forma para k (t), k = 2, . . . ,n, obtemos:
b2 a2
(t 2
=
/2)|ba = w1 t1 + w2 t2 + . . . + wn tn (9.45)
2
b 3 a3
(t3 /3)|ba = = w1 t21 + w2 t22 + . . . + wn t2n (9.46)
3
..
. (9.47)
n n
b a
= w1 tn1
1 + w2 t2n1 + . . . + wn tn1
n , (9.48)
n
que pode ser escrito na forma matricial a seguir:
1 1 ... 1 w1 b a
2
b a 2
t1 t2 ... tn w
2
2
t n w3 = 3 (9.49)
3 3
b a
t21 t22 ... 2
.
.. .. .. .. ..
. . . . .
bn an
tn1
1 tn1
2 ... tn1
n wn n
1 4 1
Resolvendo o sistema, obtemos (w1 , w2 , w3 ) = h , , , o que fornece a
6 6 6
regra de Simpson:
Z h
h 4h h
f (t) dt f (0) + f (h/2) + f (h). (9.57)
0 6 6 6
Exerccios resolvidos
Esta seo carece de exerccios resolvidos. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
Exerccios
Esta seo carece de exerccios. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
function S=simpson(a,b,n)
h=(b-a)/n // n numero de intervalos
x=linspace(a,b,n+1)
S=0
for i=1:n
x1=x(i)
x3=x(i+1)
x2=x1+h/2
A1 =1/6; A2 =4/6; A3=1/6
dS =(A1*f(x1)+A2*f(x2)+A3*f(x3))*h
S=S+dS
end
endfunction
function y=f(x)
y=exp(x)
endfunction
3
Em computao, muitas vezes se usa o anglicismo loop.
for i = 2:n
y = y + h*f(x(i))
end
endfunction
y = y + 2*f(x(2*i+1))
end
for i = 1:n
y = y + 4*f(x(2*i))
end
y = y + f(x(2*n+1))
y = h*y/3
endfunction
Exerccios resolvidos
Esta seo carece de exerccios resolvidos. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
Exerccios
17 0,4409931
33 0,4410288
65 0,4410377
129 0,4410400
257 0,4410405
513 0,4410406
1025 0,4410407 0,7853981 1,5873015873016E-3 4,6191723776309E-3
b) Use a identidade
Z 1 Z 1 Z 1
ln(x) sen (x) dx = ln(x)x dx + ln(x) [sen (x) x] dx
0 0 0
!1
x2 x2
Z 1
= ln x + ln(x) [sen (x) x] dx
2 4
0 0
1 Z1
= + ln(x) [sen (x) x] dx
4 0
com n = 2, n = 3, n = 4, n = 5, n = 6 e n = 7.
Defina I(h) a aproximao desta integral pelo mtodo dos trapzios composto com
malha de largura constante igual a h. Aqui h = ba
Ni
para algum Ni inteiro, isto :
Ni
h ba
I(h) = f (a) + 2 f (xj ) + f (b) , Ni = (9.67)
X
2 j=2 h
Teorema 9.5.1. Se f (x) uma funo analtica no intervalo (a,b), ento a funo
I(h) admite uma representao na forma
I(h) = I0 + I2 h2 + I4 h4 + I6 h6 + . . . (9.68)
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
Note que este esquema obtido coincide com o mtodo de Simpson.
A partir de agora, a fim de deduzir o caso geral, utilizaremos a seguinte notao:
R1,1 = I(h),
R2,1 = I(h/2),
R3,1 = I(h/4),
..
.
Rn,1 = I(h/2n1 ).
k2
1 h 2X
!
h
Rk,1 = Rk1,1 + k1 f a + (2i 1) k1 (9.70)
2 2 i=1 2
Rk,j1 Rk1,j1
Rk,j = Rk,j1 + . (9.72)
4j1 1
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 (9.74)
0
Exerccios
a)
R 1 x2
0 e dx
R2q
b) 0 2 cos(x) dx
c)
R2
0
1
dx
2cos(x)
j=1
j=1
c) Mtodo de Simpson
a+b
" ! #
Z b
ba
f (x) dx f (a) + 4f + f (b)
a 2 6
2(b a) a+b
!
ba ba
= f (a) + f + f (b)
6 3 2 6
3
:= wj f (xj )
X
j=1
3a + b a+b
Z b " ! !
f (x) dx f (a) + 4f + 2f
a 4 2
a + 3b
! #
ba
+ 4f + f (b)
4 12
3a + b a+b
! !
ba ba ba
= f (a) + f + f
12 3 4 6 2
a + 3b
!
ba ba
+ f + f (b)
3 4 12
5
:= wj f (xj )
X
j=1
j=1 a
ou, equivalentemente:
n Z b
bk+1 ak+1
wj xkj = x dx =
k
k = 0,1, . . . n (9.83)
X
,
j=1 a k+1
j=1
onde wj = ba
2
, x1 = a e x2 = b.
(k = 0) : wj = b a
Pn
j=1
b2 a2
(k = 1) : wj xj = (a + b) ba =
Pn
j=1 2 2
b3 a3
(k = 2) : wj x2j = (a2 + b) 2 =
Pn 2 ba
j=1 6 3
a+b 3
" ! #
Z b
ba X
f (x) dx f (a) + 4f + f (b) = wj f (xj ) (9.86)
a 2 6 j=1
onde w1 = w3 = ba
6
, w2 = 4 ba
6
, x1 = a, x2 = a+b
2
e x3 = b
(k = 0) : wj = (1 + 4 + 1) ba =ba
Pn
j=1 6
b2 a2
(k = 1) : wj xj = (a + 4 a+b + b) ba = (a + b) ba =
Pn
j=1 2 6 2 2
2
b3 a3
(k = 2) : j=1 wj xj = (a + 4 + b2 ) ba =
Pn 2 2 a+b
2 6 3
3
b4 a4
(k = 3) : j=1 wj xj = (a + 4 + b3 ) ba =
Pn 3 3 a+b
2 6 4
4
b5 a5
(k = 4) : j=1 wj xj = (a + 4 + b4 ) ba 6=
Pn 4 4 a+b
2 6 4
de ordem 3.
w1 + w2 = 2
x1 w1 + x2 w2 = 0
2
x21 w1 + x22 w2 =
3
x1 w1 + x2 w2 = 0
3 3
w1 x2 x32
= = 3 (9.88)
w2 x1 x1
! !
Z 1
3 3
f (x) dx = f +f (9.89)
1 3 3
e1 + 4e0 + e1
e e1 e1 + e
ex 3
2,35040 3,08616 2,36205
3
ee1
x2 ex 3 0,78347 3,08616 1,02872
Exerccios
n tj wj
1 0 2
3
2 1
3
8
0
3 s
9
3 5
5 9
s
q
3 2 6/5 /7 18+ 30
36
4 s
q
3 + 2 6/5 /7 18 30
36
128
0
225
v s
1u 10 322 + 13 70
u
5
t
52
3 7 900
v s
1u 10 322 13 70
u
5+2
t
3 7 900
n I
2 2,3094011
3 2,2943456
4 2,2957234
5 2,2955705
No Scilab, temos:
deff('y=f(x)','y=sqrt(1 + x^2)')
//G-L n=2
x2 = sqrt(3)/3
w2 = 1
I2 = w2(1)*f(x2(1)) + w2(1)*f(-x2(1))
disp(I2)
//G-L n=3
x3 = [0 -sqrt(3/5) sqrt(3/5)]
w3 = [8/9 5/9 5/9]
I3 = w3(1)*f(x3(1)) + w3(2)*f(x3(2)) + w3(2)*f(-x3(2))
disp(I3)
//G-L n=4
x4 = [sqrt((3-2*sqrt(6/5))/7) sqrt((3+2*sqrt(6/5))/7)]
w4 = [(18+sqrt(30))/36 (18-sqrt(30))/36]
I4 = w4(1)*f(x4(1)) + w4(1)*f(-x4(1)) ...
+ w4(2)*f(x4(2)) + w4(2)*f(-x4(2))
disp(I4)
//G-L n=5
x5 = [0 1/3*sqrt(5-2*sqrt(10/7)) 1/3*sqrt(5+2*sqrt(10/7))]
w5 = [128/225 (322+13*sqrt(70))/900 (322-13*sqrt(70))/900]
I5 = w5(1)*f(x5(1)) + w5(2)*f(x5(2)) + w5(2)*f(-x5(2)) ...
+ w5(3)*f(x5(3)) + w5(3)*f(-x5(3))
disp(I5)
Mudana de intervalo
Os coeficientes da quadratura de Gauss-Legendre foram obtidos no intervalo
[1,1]. Para aproximar a integral de f (x) no intervalo [a,b] devemos fazer a mu-
dana de varivel
tal que
Z b n
f (x) dx wi f (xi )(b a)/2
X
a i=1
e Z xi+1 n
f (x) dx wi f (xi )(xi+1 xi )/2
X
xi i=1
x3 = [0 -sqrt(3/5) sqrt(3/5)]
w3 = [8/9 5/9 5/9]
I3 = f(x3(1))*w3(1) + f(x3(2))*w3(2) + f(-x3(2))*w3(2)
disp(I3)
function S=gaussiana(a,b,n)
h=(b-a)/n // n intervalos
x=linspace(a,b,n+1)
w1=5/9; t1=-sqrt(3/5);
w2=8/9; t2=0;
w3=w1; t3=-t1;
S=0
for i=1:n
alpha=(x(i+1)-x(i))/2
bet =(x(i+1)+x(i))/2
x1=alpha*t1+bet;
x2=alpha*t2+bet;
x3=alpha*t3+bet;
A =(w1*f(x1)+w2*f(x2)+w3*f(x3))* h/2
S=S+A
end
endfunction
Exerccios resolvidos
Esta seo carece de exerccios resolvidos. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
Exerccios
reescrev-la da forma
Z b
f (x) p(x) Z b
p(x)
I= dx + dx (9.105)
a (x a)n a (x a)n
| {z } | {z }
I1 I2
f (x) p(x)
lim = 0. (9.107)
xa (x a)p
n h I2 I
1 1 3,39657E4 1,49463
10 101 1,31240E3 1,49366
10 2
10 2
1,32515E3 1,49365
103 103 1,32528E3 1,49365
Exerccios resolvidos
Esta seo carece de exerccios resolvidos. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
Exerccios
Esta seo carece de exerccios. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
x2 x4
P4 (x) = 1 + (9.113)
2 24
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
270 Clculo Numrico
e escrevendo
Z 1
cos(x) Z 1
cos(x) P4 (x) Z 1
P4 (x)
I = q dx = q dx + q dx
1 |x| 1 |x| 1 |x|
cos(x) P4 (x)
!
Z 1 Z 1
x3/2 x7/2
= 2 dx +2 x1/2 + dx
0 x 0 2 24
| {z } | {z }
Resolver numericamente Resolver analiticamente
R 1 ex R 1 ex
E 9.9.3. Calcule as integrais 0 |x|1/4 dx e 0 |x|4/5 dx usando procedimentos
analticos e numricos.
E 9.9.4. Use a tcnica de integrao por partes para obter a seguinte identi-
dade envolvendo integrais imprprias:
Z
cos(x) Z
sen (x)
I= dx = dx. (9.116)
0 1+x 0 (1 + x)2
lim Cv = 3N kB . (9.119)
T
u0 (t) = t
(10.2)
u(0) = 2
273
274 Clculo Numrico
Exerccios resolvidos
ER 10.1.1. A funo f (t,u) = u, u 0 no uma funo Lipschitz em u, pois
|f (t,u) f (t,0)| u 1
lim = lim = lim = (10.10)
u0+ |u 0| u0+ u u0+ u
Mostre que o seguinte problema de valor inicial no admite soluo nica:
du
= u, u > 0, (10.11)
dt
u(0) = 0. (10.12)
Exerccios
Esta seo carece de exerccios. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
queremos dizer que os pontos da malha esto todos igualmente espaados, isto :
t(i) = (i 1)h, i = 1,2, . . . ,N. (10.13)
onde h passo, ou seja, a distncia entre dois pontos da malha.
Considere ento o problema de valor inicial dado por:
u0 (t) = f (t,u(t)), t > t(1)
(10.14)
u(t(1) ) = a.
Ao invs de tentar solucionar o problema para qualquer t > t(1) , iremos aproximar
u(t) em t = t(2) .
Integrando (10.14) de t(1) at t(2) , obtemos:
Z t(2) Z t(2)
u0 (t) dt = f (t,u(t)) dt (10.15)
t(1) t(1)
Z t(2)
u(t(2) ) u(t(1) ) = f (t,u(t)) dt (10.16)
t(1)
Z t(2)
u(t ) = u(t ) +
(1) (1)
f (t,u(t)) dt (10.17)
t(1)
Suponha que queremos calcular o valor aproximado de u(1) com h = 0,2. Ento
os pontos t(1) = 0, t(2) = 0,2, t(3) = 0,4, t(4) = 0,6, t(5) = 0,8 e t(6) = 1,0 formam
os seis pontos da malha. As aproximaes para a soluo nos pontos da malha
usando o mtodo de Euler so:
u(0) u(1) = 1
u(0,2) u(2) = (1 + 2h)u(1) = 1,4u(1) = 1,4
u(0,4) u(3) = 1,4u(2) = 1,96
(10.24)
u(0,6) u(4) = 1,4u(3) = 2,744
u(0,8) u(5) = 1,4u(4) = 3,8416
u(1,0) u(6) = 1,4u(5) = 5,37824
Essa aproximao bem grosseira quando comparamos com a soluo do problema
em t = 1: u(1) = e2 7,38906. No obstante, se tivssemos escolhido um passo
menor, teramos obtido uma aproximao melhor. Veja tabela abaixo com valores
obtidos com diferentes valores de passo h.
h 101 102 103 104 105 106 107
u(N ) 6,1917 6,7275 7,0400 7,2096 7,2980 7,3432 7,3660
De fato, podemos mostrar que quando h se aproxima de 0, a soluo apro-
ximada via mtodo de Euler converge para a soluo exata e2 . Para isto, basta
observar que a soluo da relao de recorrncia (10.23) dada por
du(t)
= dt (10.29)
u(t)(1 u(t))
O termo u(t)(1u(t))
1
pode ser decomposto em fraes parciais como 1
u
+ 1
1u
e che-
gamos na seguinte equao diferencial:
1 1
!
+ du = dt. (10.30)
u(t) 1 u(t)
Equivalente a
u(t)
= et = u(t) = (1 u(t))et = (1 + et )u(t) = et (10.33)
1 u(t)
t
E, finalmente, encontramos a soluo exata dada por u(t) = 1+e
e
t.
function u=euler(h,Tmax)
u= .5;
itmax = Tmax/h;
for n=1:itmax
u= u + h*u*(1-u);
end
endfunction
0.8854273
Para fins de comparao, calculamos a soluo exata e aproximada para alguns
valores de t e de passo h e resumimos na tabela abaixo:
t Exato Euler h = 0,1 Euler h = 0,01
0 1/2 0,5 0,5
e1/2
1/2 1+e1/2
0,6224593 0,6231476 0,6225316
1 e
1+e
0,7310586 0,7334030 0,7312946
e2
2 1+e2
0,8807971 0,8854273 0,8812533
3
3 e
1+e3
0,9525741 0,9564754 0,9529609
Exerccios Resolvidos
ER 10.2.1. Aproxime a soluo do problema de valor inicial
t= (n-1)*h;
u= u + h*(-0.5*u+2+t);
end
endfunction
o qual pode ser invocado da seguinte forma:
-->euler(1e-1,1)
ans =
6.7898955
Podemos construir um vetor com as cinco solues da seguinte forma:
-->S=[euler(1e-1,1) euler(1e-2,1) euler(1e-3,1) euler(1e-4,1) euler(1e-5,1)]
S =
Exerccios
u0 (t) = u(t) + t,
(10.40)
u(0) = 1.
u0 (t) = cos(u(t))
(10.41)
u(0) = 0,
esen (t) em t = 2:
y 0 (t) = cos(t)y(t)
(10.42)
y(0) = 1.
A invs de aproximar f (t,u(t)) como uma constante igual ao seu valor em t = t(1) ,
aplicamos a regra do trapzio (ver 9.2.2) integral envolvida no lado direito da
expresso, isto :
f t(1) ,u(t(1) ) + f t(2) ,u(t(2) )
Z t(2)
f (t,u(t)) dt = h + O(h3 ) (10.47)
t(1) 2
onde h = t(2) t(1) . Como o valor de u(t(2) ) no conhecido antes de o passo ser
realizado, aproximamos seu valor aplicando o mtodo de Euler:
u(t(2) ) = u(t(1) ) + hf t(1) ,u(t(1) ) (10.48)
Assim obtemos:
Z t(2)
u(t ) = u(t ) +
(2) (1)
f (t,u(t)) dt (10.49)
t(1)
f t(1) ,u(t(1) ) + f t(2) ,u(t(2) )
u(t (1)
)+ h (10.50)
2
f t(1) ,u(t(1) ) + f t(2) ,u(t(2) )
u(t(1) ) + h (10.51)
2
(10.52)
onde
k1 = f t(1) ,u(t(1) ) (10.53)
e (10.54)
k2 = f t(2) ,u(t(2) ) = f t(2) , u(t(1) ) + hk1 (10.55)
k1 = f (t(k) ,u(k) ),
k2 = f (t(k+1) ,u(k) + k1 ),
k1 + k2 (10.57)
u(k+1) = u(k) + h ,
2
u(1) = a (condio inicial).
Aqui k1 e k2 so variveis auxiliares que representam as inclinaes e devem ser cal-
culadas a cada passo. Esta notao compatvel com a notao usada nos mtodos
de Runge-Kutta, uma famlia de esquemas iterativos para aproximar problemas de
valor inicial, da qual o mtodo de Euler e o mtodo de Euler melhorado so casos
particulares. Veremos os mtodos de Runge-Kutta na Seo 10.7.
Exerccios Resolvidos
ER 10.3.1. Resolva pelo mtodo de Euler melhorado problema de valor inicial do
Exerccio Resolvido 10.2.1:
u0 (t) = 0,5u(t) + 2 + t (10.58)
u(0) = 8 (10.59)
Usando os seguinte passos: h = 101 , h = 102 , h = 103 , h = 104 e h = 105
e compare a soluo aproximada em t = 1 com a soluo obtida pelo mtodo de
Euler e a soluo exata dada por:
u(t) = 2t + 8et/2 = u(1) = 2 + 8e1/2 6,85224527770107 (10.60)
Soluo. Primeramente itentificamos f (t,u) = 0,5u + 2 + t e construmos o
processo iterativo do mtodo de Euler melhorado:
k1 = f (t(n) ,u(n) ) = 0,5u(n) + 2 + t(n)
u = u(n) + hk1
k2 = f (t(n+1) ,u) = 0,5u + 2 + t(n+1)
u(n+1) = u(n) + h(k1 + k2 ), n = 1,2,3, . . .
u(1) = 8 (condio inicial).
O seguinte cdigo pode ser usado para implementar no Scilab a recurso
acima:
function u=euler_mod(h,Tmax)
u= 8;
itmax = Tmax/h;
for n=1:itmax
t=(n-1)*h;
k1 = (-0.5*u + 2 + t);
u_til = u + h*k1;
k2 = (-0.5*u_til + 2 + t + h);
u= u + h * (k1 + k2)/2;
end
endfunction
o qual pode ser invocado da seguinte forma:
-->euler_mod(1e-1,1)
ans =
6.8532941
Exerccios
Esta seo carece de exerccios. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
Estas tcnicas podem ser diretamente estendidas para resolver numericamente pro-
blemas de valor inicial envolvendo sistemas de equaes diferenciais ordinrias de
O Problema (10.61) pode ser escrito como um problema de primeira ordem en-
volvendo uma nica incgnita, u(t), dada como um vetor de funes uj (t), isto
:
u1 (t)
u2 (t)
u(t) =
u3 (t)
..
.
un (t)
onde
f1 (t,u1 (t), u2 (t), u3 (t), . . . , un (t))
f2 (t,u1 (t), u2 (t), u3 (t), . . . , un (t))
f (t,u(t)) =
f3 (t,u1 (t), u2 (t), u3 (t), . . . , un (t))
..
.
f (n) (t,u1 (t), u2 (t), u3 (t), . . . , un (t))
e
a1
a2
a= a3
..
.
an
Para aplicar o mtodo de Euler a este sistema, devemos encarar as duas incgnitas
do sistema como entradas de um vetor, ou seja, escrevemos:
x(t)
u(t) = . (10.63)
y(t)
Exerccios Resolvidos
ER 10.4.1. Resolva pelo mtodo de Euler melhorado o seguinte problema de valor
inicial para aproximar o valor de x e y entre t = 0 e t = 1:
isto :
x(k+1) = x(k) + h x(k) y (k)
3
y (k+1) = y (k) + h x(k) y (k)
h h (k) i
x(k+1) = x(k) + x y (k) + x(k) y (k)
2
h h 3 3 i
y (k+1) = y (k) + x(k) y (k) + x(k) y (k)
2
function [x,y]=euler_mod(h,Tmax,u1)
itmax = Tmax/h;
x=zeros(itmax+1);
y=zeros(itmax+1);
x(1)=u1(1);
y(1)=u1(2);
for n = 1:itmax
t=(n-1)*h;
kx1 = (x(n)-y(n));
ky1 = (x(n)-y(n)^3);
x_til = x(n) + h*kx1;
y_til = y(n) + h*ky1;
kx2 = (x_til-y_til);
ky2 = (x_til-y_til^3);
x(n+1)=x(n)+h*(kx1+kx2)/2;
y(n+1)=y(n)+h*(ky1+ky2)/2;
end
endfunction
h=1e-2
Tmax=1
itmax=Tmax/h
[x,y]=euler_mod(h,Tmax,[1,0]);
[x(1) x(1+itmax*.2) x(1+itmax*.4) x(1+itmax*.6) x(1+itmax*.8) x(1+itmax)]
[y(1) y(1+itmax*.2) y(1+itmax*.4) y(1+itmax*.6) y(1+itmax*.8) y(1+itmax)]
Exerccios
Esta seo carece de exerccios. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
Exerccios resolvidos
ER 10.5.1. Considere o seguinte sistema envolvendo uma equao de segunda
ordem e uma de primeira ordem:
x00 (t) (1 0,1z(t))x0 (t) + x(t) = 0
10z 0 (t) + z(t) = x(t)2
sujeito a condies iniciais dadas por:
x(0) = 3
x0 (0) = 0
z(0) = 10
Exerccios
x(0) = 2,
x0 (0) = 0.
Resolva numericamente para obter o valor de x(0,5), x(1), x(1,5) e x(2) com passo
h = 102 e h = 103 via mtodo de Euler modificado.
h2 00
u(t + h) = u(t) + hu0 (t) + u (t) + O(h3 ). (10.65)
2
Se escolhermos nesta expresso t = t(n) e, portanto, t + h = t(n) + h = t(n+1) ,
temos:
h2
t(n+1) = t(n) + hu0 (t(n) ) + u00 (t(n) ) + O(h3 ) (10.66)
2
2
Agora notamos que o termo principal do erro dado por h2 u00 (t(n) ), como a deri-
vada segunda da soluo no depende de h, o erro local de truncamento decresce
conforme h2 e assim a ordem de preciso do mtodo 1.
Exerccios resolvidos
Esta seo carece de exerccios resolvidos. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
Exerccios
Esta seo carece de exerccios. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
u0 = cos(tu(t))
u(0) = 1
2
Existem tambm os mtodos implcitos que sero abordados na Seo 10.8. Ver Observa-
o 10.7.1.
un un+1
| |
t(n) t(n+1)
1 2
t (n)
t(n)
+ c2 h (n)
t + c h
u1 = u(n)
u2 = un + ha21 k1
u3 = un + h [a31 k1 + a32 k2 ]
u4 = un + h [a41 k1 + a42 k2 + a43 k3 ] (10.75)
..
.
u = un + h [a1 k1 + a2 k2 + + a k ]
u (n+1)
= un + h[b1 k1 + b2 k2 + + b k ],
c1 0 0 0 c1
c A c2 a21 0 0 c2 a21
= =
c3 a31 a22 0 c3 a31 a22
b T
b1 b2 b3 . b1 b2 b3 .
Na tabela mais direita, omitimos os termos obrigatoriamente nulos.
u1 = u(n)
u2 = u(n) + hk1
1 1
u(n+1) = u(n) + h k1 + k2
2 2
0
c A
= 1 1
1 1
b 2 2
u1 = u(n) (10.76)
u2 = u(n) + ha21 k1 (10.77)
u(n+1) = u(n) + h[b1 k1 + b2 k2 ], (10.78)
Este sistema formada por trs equaes e quatro incgnitas, pelo que admite
infinitas solues. Para construir toda a famlia de solues, escolha um parmetro
(0,1] e defina a partir de (10.93):
1 1
b1 = 1 , b2 = , c2 = , a21 = (10.94)
2 2
Portanto, obtemos o seguinte esquema genrico:
c A
= c2 a21 = , 0 < 1.
b b1 b2 1 1
2
1
2
0 0 0
1
2
1
2
, 2
3
2
3
e 1 1 .
0 1 1
4
3
4
1
2
1
2
Note que a tabela da direita fornece o mtodo Euler modificado ( = 1). O es-
quema iterativo assume a seguinte forma:
u1 = u(n) (10.95)
u2 = u(n) + hk1 (10.96)
1 1
u(n+1) = u(n) + h 1 k1 + k2 , (10.97)
2 2
onde k1 = f (t(n) ,u(n) ) e k2 = f (t(n) + h,u2 ). Ou, equivalentemente:
b1 + b2 + b3 = 1, (10.101)
1
b2 c 2 + b3 c 3 = , (10.102)
2
1
b2 c22 + b3 c23 = , (10.103)
3
1
b3 a32 c2 = , (10.104)
6
a21 = c2 , (10.105)
a31 + a32 = c3 . (10.106)
0 0
1 1 2 2
2 2
e 3 3
.
1 1 2 2
3
0 2
3
1 4 1 2 3 3
6 6 6 8 8 8
0 0
1 1 1 1
3 3 2 2
2
3
13 1 e 1
2
0 1
2
1 1 1 1 1 0 0 1
1 3 3 1 1 2 2 1
8 8 8 8 6 6 6 6
Exerccios resolvidos
ER 10.7.1. Construa o esquema iterativo o mtodo clssico de Runge-Kutta trs
estgios cuja tabela dada a seguir:
0
1 1
2 2
1 1 2
1 4 1
6 6 6
Soluo.
k1 = f t(n) ,u(n)
k2 = f t(n) + h/2,u(n) + k1 /2
k3 = f t(n) + h,u(n) k1 + 2k2
k1 + 4k2 + k4
u(n+1) = u(n) + h
6
ER 10.7.2. Utilize o mtodo clssico de Runge-Kutta trs estgios para calcular
o valor de u(2) com passos h = 101 e h = 102 para o seguinte problema de valor
inicial:
u0 (t) = u(t)2 + t,
u(0) = 0.
for i = 1:itmax
t=(i-1)*h
k1 = f(t, u(i))
k2 = f(t+h/2, u(i) + h*k1/2)
k3 = f(t+h, u(i) + h*(2*k2-k1))
1.1935760016451
-->sol=RK3_classico(1e-3,2,0);sol(2001)
ans =
1.1935759753635
Exerccios
u0 = u + t
u(0) = 1
Note que este mtodo implcito pois a expresso que define a iterao depende
de u(n+1) dos dois lados da Equao (10.110), exigindo que o termo seja isolado
para a aplicao do mtodo.
Note que este mtodo implcito (a equao implcita) pois depende de un+1
dos dois lados da equao. Se a funo f for simples o suficiente, podemos resolver
a equao isolando o termo un+1 . Se isso no for possvel, devemos usar um dos
mtodos vistos anteriormente para calcular as razes da equao (por exemplo,
mtodo da bisseco e mtodo de Newton).
y (n)
y (n+1) =
1 h
y (1) = 1
Exerccios resolvidos
y (n+1) = y (n) + hy (n+1) 1 y (n+1) (10.129)
h i2
h y (n+1) + (1 h)y (n+1) y (n) = 0 (10.130)
q
(1 h) (1 h)2 + 4hy (n)
y (n+1)
= (10.131)
2h
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
306 Clculo Numrico
Como a condio inicial positiva, fcil ver que y(t) > 0 para todo t e, portanto:
q
(1 h) + (1 h)2 + 4hy (n)
y (n+1)
=
r2h
4hy (n)
1 + 1+ (1h)2
= (1 h)
2h
v
(1 h) 4hy (n)
u
= t1 + 1
u
2h (1 h)2
(1 h) 4hy (n) 1
=
2h (1 h)
r
2
4hy (n)
1 + (1h) 2 + 1
2 1
= y (n)
(1 h) 1 + 1 +
r
4hy (n)
(1h)2
Exerccios
Esta seo carece de exerccios. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
h2 00 h3
u(t + h) = u(t) + hu0 (t) + u (t) + u000 (t) + . . . (10.132)
2! 3!
Utilizando dois termos temos o mtodo de Euler. Utilizando os trs primeiros
termos da srie e substituindo u0 (t) = f (t,x) e u00 (t) = df
dt
(t,x) temos o mtodo
de Taylor de ordem 2
Exerccios resolvidos
Esta seo carece de exerccios resolvidos. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
Exerccios
Esta seo carece de exerccios. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
onde
1 Z t(n+s) s1 t t(n+k)
j = (10.142)
Y
dt
h t(n+s1) k=0,k6=j t(n+j) t(n+k)
e obtemos a relao de recorrncia:
s1
u(n+s) = u(n+s1) + h j f (t(n+j) ,u(n+j) ) (10.143)
X
j=0
m=0
h i
u(n+4) = u(n+3) + h b3 f (n+3) + b2 f (n+2) + b1 f (n+1) + b0 f (n) (10.151)
Para isso devemos obter [b3 ,b2 ,b1 ,b0 ] tal que o mtodo seja exato para polinmios
at ordem 3. Podemos obter esses coeficientes de maneira anloga a obter os
coeficientes de um mtodo para integrao.
Supondo que os ns t(k) estejam igualmente espaados, e para facilidade dos
clculos, como o intervalo de integrao [t(n+3) ,t(n+4) ], translade t(n+3) para a
origem tal que [t(n) ,t(n+1) , . . . ,t(n+4) ] = [3h, 2h, h,0,h].
Considere a base [1, t, t2 , t3 ] e substitua f (t) por cada um dos elementos desta
basa, obtendo:
Z h
1 dt = h = h [b0 (1) + b1 (1) + b2 (1) + b3 (1)]
0
Z h h2
t dt = = h [b0 (0) + b1 (h) + b2 (2h) + b3 (3h)]
0 2
Z h
h3 h i
t2 dt = = h b0 (0)2 + b1 (h)2 + b2 (2h)2 + b3 (3h)2
0 3
Z h 4
h h i
t3 dt = = h b0 (0)3 + b1 (h)3 + b2 (2h)3 + b3 (3h)3
0 4
Exerccios resolvidos
ER 10.10.1. Resolva numericamente o problema de valor inicial dado por:
q
y 0 (t) = 1 + y(t)
y(0) = 0
aplicando o mtodo de Adams-Bashforth de dois passos e inicializando o mtodo
atravs do mtodo de Euler modificado. Calcule o valor de y(1) com passo de
tamanho h = 0,1.
h h (n+1) i
y (n+2) = y (n+1) + 3f t ,u(t(n+1) ) f t(n) ,u(t(n) ) , n = 1,2, . . . (10.155)
2
O valor inicial dado por y (1) = 0. No entanto, para inicializar o mtodo, preci-
samos calcular y (2) , para tal, aplicamos o mtodo de Euler modificado:
k1 = 1+0=1
k2 = 1 + 0,1 = 1,1 1,0488088
0,1
y (2) = (1 + 1,0488088) = 0,10244044
2
y (1) = 0
y (2) = 0,10244044
y (3) = 0,20993619
y (4) = 0,32243326
y (5) = 0,43993035
y (6) = 0,56242745
y (7) = 0,68992455
y (8) = 0,82242165
y (9) = 0,95991874
y (10) = 1,10241584
y (11) = 1,24991294
Em construo ... Gostaria de participar na escrita deste livro? Veja como em:
https://www.ufrgs.br/numerico/participe.html
Exerccios
Em construo ... Gostaria de participar na escrita deste livro? Veja como em:
https://www.ufrgs.br/numerico/participe.html
Agora o integrando em (10.156) aproximado pelo polinmio que interpola f (t(k) ,u(k) )
para k = n, n + 1, n + 2, . . . , n + s, isto :
Z t(n+s)
u(n+s)
=u (n+s1)
+ p(t)dt (10.157)
t(n+s1)
onde
1 Z t(n+s) s
t t(n+k)
j = (10.160)
Y
dt
h t(n+s1) k=0,k6=j t(n+j) t(n+k)
Aplicando a mudana de variveis t = t(n+s1) + h , temos:
Z 1 s
+sk1
j =
Y
dt
0 k=0,k6=j jk
(1)sj Z 1 s
= ( + s k 1)d
Y
j!(s j)! 0 k=0,k6=j
(1) sj Z 1 s
= ( + k 1)d
Y
j!(s j)! 0 k=0,k6=sj1
j=0
Para isso devemos obter [b3 ,b2 ,b1 ,b0 ] tal que o mtodo seja exato para polinmios
at ordem 3. Podemos obter esses coeficientes de maneira anloga a obter os
coeficientes de um mtodo para integrao.
Supondo que os ns tk estejam igualmente espaados, e para facilidade dos
clculos, como o intervalo de integrao [t(n+2) ,t(n+3) ], translade t(n+2) para a
origem tal que [t(n) ,t(n+1) , . . . ,t(n+3) ] = [2h, h,0,h].
Considere a base [1, t, t2 , t3 ] e substitua f (t) por cada um dos elementos da
base,obtendo:
Z h
1 dt = h = h(b0 (1) + b1 (1) + b2 (1) + b3 (1))
0
Z h h2
t dt = = h(b0 (h) + b1 (0) + b2 (h) + b3 (2h))
0 2
Z h
h3
t2 dt = = h(b0 (h)2 + b1 (0)2 + b2 (h)2 + b3 (2h)2 )
0 3
Z h
h4
t dt =
3
= h(b0 (h)3 + b1 (0)3 + b2 (h)3 + b3 (2h)3 )
0 4
que pode ser escrito na forma matricial
1 0 1 1 b0 1
1 0 1 2 b1 1/2
= (10.165)
1 0 1 4 b2 1/3
1 0 1 8 b3 1/4
Resolvendo o sistema obtemos
1 5 19 9
[b0 ,b1 ,b2 ,b3 ] = , , , (10.166)
24 24 24 24
fornecendo a regra
un+3 = un+2 + h
24
[9fn+3 + 19fn+2 5fn+1 + f (n) ] (10.167)
1 1
2 1
2
1
2
3 1
12 2
3
5
12
4 1
24
5
24 19
24
3
8
5 19
720 53
360
11
30 323
360
251
720
6 3
160
173
1440 241
720
133
240 1427
1440
95
288
7 863
60480 263
2520
6737
20160 586
945
15487
20160
2713
2520
19087
60480
8 275
24192
11351
120960 1537
4480
88547
120960 123133
120960
4511
4480
139849
120960
5257
17280
h h (n+2) i
u(n+2) = u(n+1) + 5f t ,u(t(n+2) ) + 8f t(n+1) ,u(t(n+1) ) f t(n) ,u(t(n) )
12
(10.168)
Exerccios resolvidos
ER 10.11.1. Resolva o problema de valor inicial dado por:
via Adams-Moulton com s = 2 (trs passos) com h = 0,1 e h = 0,01 e compare com
a soluo exata dada por u(t) = (t 1)et nos instantes t = 1 e t = 2. Inicialize
com Euler modificado.
h h (n+2) i
u(n+2) = u(n+1) + 5f t ,u(t(n+2) ) + 8f t(n+1) ,u(t(n+1) ) f t(n) ,u(t(n) )
12
(10.169)
de forma que:
h h (n+1) i 5h
u(n+2) = u(n+1) + 8f t ,u(t(n+1) ) f t(n) ,u(t(n) ) + f t(n+2) ,u(t(n+2) )
12 12
h h (n+1) i 5h (n+2) t(n+2)
= u +
(n)
8f f (n)
+ t e 2u(t (n+2)
)
12 12
Assim:
5h (n+2) 5h
!
h h (n+1) i (n+2)
1+ u = u(n+1) + 8f f (n) + t(n+2) et
6 12 12
h h (n+1) i
y (n+1) = y (n) + f t ,u(t(n+1) ) + f t(n) ,u(t(n) ) , n = 1,2, . . . (10.170)
2
h2
r
h 2 q
hq
y (n+1)
=y (n)
+ h + 16 + 16y + 8h 1 + y +
(n) (n) 1 + y + , n = 1,2, . . .
(n)
8 2 8
(10.171)
y (1) = 0
y (2) = 0,1025
y (3) = 0,21
y (4) = 0,3225
y (5) = 0,44
y (6) = 0,5625
y (7) = 0,69
y (8) = 0,8225
y (9) = 0,96
y (10) = 1,1025
y (11) = 1,25
ER 10.11.3. Resolva o problema de valor inicial dado por
y 0 (t) = y 3 y + t,
y(0) = 0,
isto :
h 3
u u u + t(n+1) = a, (10.173)
2
com a = y (n) + h2 f t(n) ,u(t(n) ) Os valores obtidos so: 0,37496894 e 0,37512382
quando o mtodo inicializadom com Euler melhorado.
Exerccios
j=0
j=0
+ hs g(t (n+s)
) (10.176)
onde Id matriz identidade n n. O sistema linear envolvido em (10.176) pode
ser resolvido sempre que Id hs A for inversvel, o que sempre acontece quando
h suficientemente pequeno.
Exerccios resolvidos
Esta seo carece de exerccios resolvidos. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
Exerccios
Esta seo carece de exerccios. Participe da sua escrita.
Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
u0 (t) = f (t,u(t))
u(t(1) ) = a
Exerccios
u0 (t) = 0,5u(t) + 2 + t,
u(0) = 8,
dada na forma:
cujas razes, salvo casos particulares, s pode ser obtida por aproximaes num-
ricas.
dada na forma:
(u(t) + 1)2
!
ln + 2 arctan (u (t)) = 4t
u(t)2 + 1
Esta analtica estabelece uma relao funcional implcita entre t e u(t), no entanto,
necessrio resolver uma equao algbrica no-linear para cada t. Ainda assim,
pode ser um excelente benchmark, pois o valor de u(t) dado explicitamente em
funo de t, isto , podemos ver t como uma funo de u. Por exemplo, fcil
descobrir que u = 1 quando t = ln(2) 4
+ 8 0.5659858768387104. Alm disso
tomando o limite u +, descobrimos que u(t) tende a infinito quando t 4 .
dada na forma:
Z y(t)
d
= t + sen (t)
0 cos( ) +
Esta expresso reformula o problema como uma equao integral em y(t). Esta
nova reformulao pode ser bastante til para produzir resultados de benchmark
se fixamos o forma de y(t), usamos uma tcnica de quadratura nmerica de boa
qualidade para aproximar a integral do lado esquerdo da equao. Por exemplo,
escolhendo t(y) = 100, temos:
Z 100
d
= 5,574304717298400
0 cos( ) +
Resolvendo a equao algbrica
obtemos:
t = 5,924938036503083. (10.181)
du(t)
= u(t) + et
dt
u(0) = 0
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.
Resolva numericamente o sistema com condies iniciais dadas por (V0 ,W0 )
e
I=0
I = 0,2
I = 0,4
I = 0,8
I = et/200
Neste captulo, tratamos dos mtodos numricos para resolver equaes dife-
renciais ordinrias com condies de contorno.
onde ua e ub so dados. Por ter fixados os valores da varivel u nos contornos, este
chamado de PVC com condies de Dirichlet1 .
A resoluo de um tal problema pelo mtodo de diferenas finitas consiste em
quatro etapas fundamentais: 1. construo da malha, 2. construo do problema
discreto, 3. resoluo do problema discreto e 4. visualizao e interpretao dos
resultados.
1. Construo da malha. A malha consiste em uma representao discreta
do domnio [a, b]. Como veremos, sua construo tem impacto direto nas prximas
etapas do mtodo. Aqui, vamos construir a malha mais simples possvel, aquela que
consiste de N pontos igualmente espaados, isto , a chamada malha uniforme.
1
Johann Peter Gustav Lejeune Dirichlet, 1805 - 1859, matemtico alemo.
329
330 Clculo Numrico
xi = a + (i 1)h, i = 1, 2, . . . , N, (11.4)
com
ba
h := , (11.5)
N 1
o qual chamado de tamanho (ou passo) da malha (veja a Figura 11.1).
2. Construo do problema discreto. A segunda etapa consiste na discre-
tizao das equaes, no nosso caso, das equaes (11.1)-(11.3).
Vamos comear pela Equao (11.1). Em um ponto da malha xi , i = 2, 3, . . . , N
1, temos
uxx (xi ) = f (xi , u(xi )). (11.6)
Usando a frmula de diferenas finitas central de ordem 2 para a segunda derivada,
temos
u(xi h) 2u(xi ) + u(xi + h)
!
+ O(h2 ) = f (xi , u(xi )). (11.7)
h2
Rearranjando os termos, obtemos
u(xi h) 2u(xi ) + u(xi + h)
= f (xi , u(xi )) + O(h2 ). (11.8)
h2
Agora, denotando por ui a aproximao numrica de u(xi ), a equao acima
nos fornece
1 2 1
2
ui1 2 ui + 2 ui+1 = f (xi , ui ), (11.9)
h h h
para i = 2, 3, . . . , N 1. Observamos que trata-se de um sistema de N incgnitas,
a saber ui , e de N 2 equaes, isto , um sistema subdeterminado.
Para obtermos um sistema determinado, aplicamos as condies de contorno.
Da condio de contorno dada na Equao (11.2), temos
u(a) = ua u1 = ua . (11.10)
xi = (i 1)h, i = 1, 2, . . . , N, (11.19)
a = 0
b = 1
N = 11
h = (b-a)/(N-1)
x = linspace(a,b,N)
Completamos este sistema com as condies de contorno dadas nas equaes (11.16)
e (11.17), donde
u1 = uN = 0. (11.21)
Ou seja, obtemos o seguinte problema discreto:
u1 = 0, (11.22)
1
(ui+1 2ui + ui+1 ) = 100(xi 1)2 , i = 2, . . . , N 1, (11.23)
h2
uN = 0. (11.24)
Observamos que este um sistema linear N N , o qual pode ser escrito na forma
matricial Au = b, cujos matriz de coeficientes
1 0 0 0 0 0
1 2 1 0 0 0
A= 0 1 2 1 0 0 , (11.25)
.. .. .. .. .. .. ..
. . . . . . .
0 0 0 0 0 1
0
u1
100h (x2 1)2
2
u2
u= u3 e b= 100h2 (x3 1)2
. (11.26)
.. ..
. .
uN 0
A(1,1) = 1
b(1) = 0
for i = 2:N-1
A(i,i-1) = 1
A(i,i) = -2
A(i,i+1) = 1
b(i) = -100 * h^2 * (x(i)-1)^2
end
A(N,N) = 1
b(N) = 0
3. Resoluo do problema discreto. Neste caso, o problema discreto
consiste no sistema linear Au = b e, portanto, a soluo
u = A1 b. (11.27)
(x 1)3
uxx = 100(x 1)2 ux + c1 = 100
3 (11.28)
(x 1)4
u + c2 x + c1 = 100 ,
12
Licena CC-BY-SA-3.0. Contato: livro_colaborativo@googlegroups.com
334 Clculo Numrico
Figura 11.2: Esboo dos grficos das solues analtica (linha) e numrica (pontos)
do PVC dado no Exemplo 11.1.1.
(x 1)4
ou seja, u(x) = + c2 x + c1 . As constantes so determinadas pelas
12
condies de contorno dadas pelas equaes (11.16) e (11.17), isto :
100
u(0) = 0 c1 = ,
12 (11.29)
100
u(1) = 0 c2 = .
12
Portanto, a soluo analtica :
(x 1)4 x 100
u(x) = 100 100 + (11.30)
12 12 12
A Figura 11.2 mostra o esboo dos grficos das solues analtica (11.30) e a
da soluo numrica (11.27).
No Scilab, podemos fazer o esboo das solues analtica e numrica da se-
guinte forma:
//def. sol. analitica
deff('y = ue(x)','y = -100.0*(x-1).^4/12 - 100*x/12 + 100.0/12')
//grafico
xx = linspace(0,1)
yy = ue(xx)
Tabela 11.1: Erro absoluto mdio das solues numricas com N = 11 e N = 101
do PVC dado no Exemplo 11.1.1.
N h E
11 0,1 1,3 102
101 0,01 1,4 104
plot(x,u,'ro',xx,yy,'b-')
Por fim, computamos o erro absoluto mdio das solues numricas com N = 11
e N = 101. A Tabela 11.1 mostra os resultados obtidos. Observamos, que ao dimi-
nuirmos 10 vezes o tamanho do passo h, o erro absoluto mdio diminui aproxima-
damente 100 vezes. Este resultado esperado, pois o problema discreto (11.22)-
(11.24) aproxima o problema contnuo (11.15)-(11.17) com erro de truncamento
de ordem h2 . Verifique!
No Scilab, podemos computar o erro absoluto mdio da seguinte forma:
E = sum(abs(ue(x)' - u))/N
Exerccios resolvidos
ER 11.1.1. Use o mtodo de diferenas finitas para resolver o seguinte problema
de valor de contorno:
Para tanto, use a frmula de diferenas finitas central de ordem 2 para discretizar
a derivada em uma malha uniforme com passo h = 0,1. Faa, ento, um esboo
do grfico da soluo computada.
Soluo. O passo h uma malha uniforme com N pontos no domnio [0,5, 1,5]
satisfaz:
(b a) (b a)
h= N = + 1. (11.34)
N 1 h
Ou seja, a malha deve conter N = 11 pontos igualmente espaados. Denotamos
os pontos na malha por xi , onde xi = 0,5 + (i 1)h.
x u x u
0.50 1.000000 1.00 1.643900
0.60 1.143722 1.10 1.745332
0.70 1.280661 1.20 1.834176
0.80 1.410269 1.30 1.908160
0.90 1.531724 1.40 1.964534
1.00 1.643900 1.50 2.000000
u1 = 1
ui1 + (2 + h )ui ui+1 = h2 exi , i = 2, . . . , N 1,
2
(11.37)
uN = 2.
//sistema
A = zeros(N,N)
b = zeros(N,1)
A(1,1) = 1
b(1) = 1
for i = 2:N-1
A(i,i-1) = -1
A(i,i) = 2 + h^2
A(i,i+1) = -1
b(i) = h^2 * exp(x(i))
end
A(N,N) = 1
b(N) = 2
//solucao
u = A\b
//grafico
plot(x,u,'b-o')
Exerccios
https://www.scilab.org/
https://help.scilab.org/docs/5.5.2/pt_BR/index.html
340
A.1. SOBRE O SCILAB 341
a) No console temos:
-->editor()
ou, alternativamente:
-->scinotes
s = "Ol, mundo!"
disp(s)
s = "Ol, mundo!"
disp(s)
A.3 Matrizes
No Scilab, matriz o tipo bsico de dados, a qual definida por seu nmero de
linhas, colunas e tipo de dado (real, inteiro, lgico, etc.). Uma matriz A = [ai,j ]m,n
i,j=1
no Scilab definida usando-se a seguinte sintaxe:
A = [ a11 , a12 , ... , a1n ; ...; am1 , am2 , ... , amn ]
Exemplo A.3.1. Defina a matriz:
1 2 3
A= (A.1)
4 5 6
1. 2. 3.
4. 5. 6.
A seguinte lista contm uma srie de funes que geram matrizes particulares:
eye matriz identidade
linspace vetor de elementos linearmente espaados
ones matriz cheia de uns
zeros matriz nula
A.3.1 O operador :
O operador : cria um vetor linha de elementos. A sintaxe:
v = i:s:j
cria um vetor linha:
v = [i, i + s, i + 2s, . . . , i + ns] (A.2)
onde n o maior inteiro tal que i + ns j.
Exemplo A.3.2. Veja as seguintes linhas de comando:
-->v = 10:-2:3
v =
10. 8. 6. 4.
-->u = 2:6
u =
2. 3. 4. 5. 6.
1. 1.
1. 1.
1. 1.
2.
nl =
3.
informando que a matriz A tem trs linhas e duas colunas.
Existem vrios mtodos para acessar os elementos de uma matriz dada A:
a matriz inteira acessa-se com a sintaxe:
A(i,j)
A(i1:i2, j1:j2)
0.6857310
1. 1.
1. 1.
2. 2.
2. 2.
-->A * B
ans =
4. 4.
4. 4.
-->A .* B
ans =
2. 2.
2. 2.
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
A.5 Funes
Alm das muitas funes j pr-definidas no Scilab, podemos definir nossas
prprias funes. Para tanto, existem duas instrues no Scilab:
deff
function
-->f(%pi)
no Scilab.
Alternativamente, definimos a mesma funo com o cdigo:
Verifique!
Exemplo A.5.2. O seguinte cdigo Scilab:
function [z] = h(x,y)
if (x < y) then
z = y - x
else
z = x - y
end
endfunction
define a funo:
y x ,x < y
h(x,y) = (A.3)
x y ,x y
Exemplo A.5.3. O seguinte cdigo:
function [y] = J(x)
y(1,1) = 2*x(1)
y(1,2) = 2*x(2)
y(2,1) = -x(2)*sin(x(1)*x(2))
y(2,2) = -x(1)*sin(x(1)*x(2))
endfunction
define a matriz jacobiana J(x1 ,x2 ) := (f1 ,f2 )
(x1 ,x2 )
da funo:
A.6 Grficos
Para criar um esboo do grfico de uma funo de uma varivel real y = f (x),
podemos usar a funo plot. Esta funo faz uma representao grfica de pontos
(xi , yi ) fornecidos. O Scilab oferece uma srie de opes para esta funo de forma
que o usurio pode ajustar vrias questes de visualizao. Consulte sobre a funo
plot no manual do Scilab.
Exemplo A.6.1. Veja as seguintes linhas de cdigo:
-->deff('y = f(x)','y = x .^ 3 + 1')
-->x = linspace(-2, 2, 100);
-->plot(x, f(x)); xgrid
E 2.1.3. (101,1)2 .
E 2.1.4. (11,1C)16 .
5 ; b) (45,1)6 .
E 2.1.5. a) (12,31)
E 2.2.1.
-->printf("%1.7e", 29979.458)
2.9979458e+04
-->printf("%1.5e", 66.2607)
6.62607e+01
-->printf("%1.3e", 0.6674)
6.674e-01
-->printf("%1.5e", 9806.65e1)
9.80665e+04
E 2.3.3.
352
RESPOSTAS DOS EXERCCIOS 353
Este exerccio est sem resposta sugerida. Proponha uma resposta. Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
24 + 23 + 22 + 21 + 20 = 1. Observe que o dgito mais significativo (mais esquera) tem peso negativo.
E 2.4.5. Devido preciso finita do sistema de numerao, o lao para quando x for suficientemente grande em comparao
a 1 a ponto de x+1 ser aproximado para 1. Isso acontece quando 1 da ordem do psilon de mquina em relao a x, isto ,
E 2.5.1. a) abs = 5,9 104 , rel = 1,9 102 %; b) abs = 105 , rel = 103 %; c) abs = 1, rel = 105 %.
E 2.5.4. a) 2; b) 2.
E 2.5.5.
0,1x 0,01 = 12
0,1x = 12 + 0,01 = 12,01
x = 120,1
E 2.5.6. a) abs = 3,46 107 , rel = 1,10 107 ; b) abs = 1,43 104 , rel = 1,00 103 .
E 2.8.1. 2%, deve-se melhorar a medida na varivel x, pois, por mais que o erro relativo seja maior para esta varivel, a
propagao de erros atravs desta variveis muito menos importante do que para a outra varivel.
E 2.8.2. 3,2% pela aproximao ou 3,4% pelo segundo mtodo, isto , (0,96758 I 1,0342).
E 2.9.1. Quando pequeno, e1/ um nmero grande. A primeira expresso produz um overflow (nmero maior que o
mximo representvel) quando pequeno. A segunda expresso, no entanto, reproduz o limite 1 quando 0+.
2
1 + x + O(x4 ); b) x/2 + O(x2 ); c) 5 104 x + O(x2 ); d)
E 2.9.2. a) 2 2
y + O(y 2 ) = 2
x + O(x2 )
4! 4 4
E 2.9.3. A expresso da direita se comporta melhor devido retirada do cancelamento catastrfico em x em torno de 0.
p
p p e2x + 1 + ex
x x
e2x +1e = e2x +1e p
e2x + 1 + ex
e2x + 1 e2x 1
= p = p
e2x +1+ ex e2x + 1 + ex
e, de forma anloga:
x2
p
x
e2x + x2 e = p .
e2x + x2 + ex
E 2.9.5. 4,12451228 1016 J; 0,002%; 0,26654956 1014 J; 0,002%; 4,98497440 1013 J; 0,057%; 1,74927914 1012 J;
0,522%.
E 3.1.1.
Observamos que a equao equivalente a cos(x) x = 0. Tomando, ento, f (x) = cos(x) x, temos que f (x) contnua
em [0, /2], f (0) = 1 e f (/2) = /2 < 0. Logo, do teorema de Bolzano 3.1.1, conclumos que a equao dada tem pelo menos
uma soluo no intervalo (0, /2).
E 3.1.2.
No Exerccio 3.1.1, mostramos que a funo f (x) = cos(x) x tem um zero no intervalo [0, /2]. Agora, observamos que
f 0 (x) = sen (x)1. Como 0 < sen x < 1 para todo x (0, /2), temos que f 0 (x) < 0 em (0, /2), isto , f (x) monotonicamente
decrescente neste intervalo. Logo, da Proposio 3.1.1, temos que existe um nico zero da funo neste intervalo.
E 3.1.3.
k 0,161228
E 3.1.5.
Escolhendo o intervalo [a, b] = [1,841 103 , 1,841 + 103 ], temos f (a) 5 104 > 0 e f (b) 1,2 103 < 0, isto
, f (a) f (b) < 0. Ento, o teorema de Bolzano nos garante que o zero exato x de f (x) est no intervalo (a, b). Logo, da escolha
feita, | 1,841 x | < 103 .
E 3.2.1. 0,6875
E 3.2.2. Intervalo (0,4, 0,5), zero 0,45931. Intervalo (1,7, 1,8), zero 1,7036. Intervalo (2,5, 2,6), zero 2,5582.
E 3.2.6. k = lP
2
cos() com (0, /2); 1,030.
E 3.3.1. 1,8414057
E 3.3.2.
0,7391
E 3.3.3.
Tomemos x(1) = 1 como aproximao inicial para a soluo deste problema, iterando a primeira sequncia a), obtemos:
(1)
x = 1
(2) 10
x = ln = 2,3025851
1
(3) 10
x = ln = 1,4685526
2,3025851
.
.
.
(21)
x = 1,7455151
(31)
x = 1,745528
(32)
x = 1,745528
(1)
x = 1
(2) 1
x = 10e = 3,6787944
(3) 3,6787944
x = 10e = 0,2525340
(4) 0,2525340
x = 10e = 7,7682979
(5) 7,7682979
x = 10e = 0,0042293
(6) 0,0042293
x = 10e = 9,9577961
Este experimento numrico sugere que a iterao a) converge para 1,745528 e a iterao b) no convergente.
E 3.3.10.
0.0431266
cos(x)x2
E 3.4.1. raiz:0,82413, processo iterativo: x(n+1) = x(n) + sen (x)+2x
-->x=1
-->x=x+(cos(x)-x^2)/(sin(x)+2*x)
-->x=x+(cos(x)-x^2)/(sin(x)+2*x)
-->x=x+(cos(x)-x^2)/(sin(x)+2*x)
-->x=x+(cos(x)-x^2)/(sin(x)+2*x)
E 3.4.2.
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 de Bolzano 3.1.1:
Para provar a unicidade da soluo em cada intervalo, precisamos mostra que a funo montona, ou seja, a derivada
no muda de sinal em cada intervalo:
0 2 1 1
f (x) = sec (x) 4x = 4x 4 0,5 < 0, x [0,5, 0,6]
cos2 (x) cos2 (0,6)
0 2 1 1
f (x) = sec (x) 4x = 4x 4 1,3 > 0, x [1,2, 1,3]
cos2 (x) cos2 (1,2)
Em relao observao, o erro se deveu falta de cuidado em compreender o problema antes de tentar resolv-lo, em especial,
E 3.4.3. 0,65291864
E 3.4.9.
x0 > 1.
E 3.4.10.
(0)
x = C.I.
(n+1) (n) (n)
x = x 2 Ax
E 3.4.11.
x0 = C.I.
(n+1) (n) 1 A
x = x 1 +
n nx(n)
E 3.4.12.
x0 = C.I.
E 3.6.5. Seja f (x) C 2 um funo tal que f (x ) = 0 e f 0 (x ) 6= 0. Considere o processo iterativo do mtodo das secantes:
Definimos n = xn x , equivalente a xn = x + n
n f (x + n1 ) n1 f (x + n )
n+1 =
f (x + n ) f (x + n1 )
0 2 f 00 (x )
f (x + ) f (x ) + f (x ) +
2
0 2 f 00 (x )
f (x + ) f (x ) +
2
f 00 (x ) f 00 (x )
n n1 f 0 (x ) + 2
n1 2
n1 n f 0 (x ) + 2
n 2
n+1
f (x + n ) f (x + n1 )
f 00 (x )
2
n 2
n1 n1 2
n
=
f (x + n ) f (x + n1 )
1 00 n n1 n1 n
= f (x )
2 f (x + n ) f (x + n1 )
0
0
f (x + n ) f (x + n1 ) f (x ) + f (x )n f (x ) + f (x )n1
(3.137)
0
= f (x )(n n1 )
Portanto:
1 f 00 (x )
n+1 n n1 (3.138)
2 f 0 (x )
ou, equivalentemente:
(n+1) 1 f 00 (x ) (n)
(n1)
x x x x x x (3.139)
2 f 0 (x )
E 3.7.2.
x > a com a 0,4193648.
E 3.7.3.
2j+1
z1 0.3252768, z2 1.5153738, z3 2.497846, z4 3.5002901, zj j 1/2 (1)j e , j >4
E 3.7.4.
150 W, 133 W, 87 W, 55 W, 6,5 W
E 3.7.5.
a) 42 s e 8 min2 s, b) 14 min56 s.
E 3.7.6.
118940992
E 3.7.7.
7,7 cm
E 3.7.8.
4,32 cm
E 3.7.9.
(0,652919, 0,426303)
E 3.7.10.
7,19% ao ms
E 3.7.11.
4,54% ao ms.
E 3.7.12.
500 K, 700 K em t = 3 ln(2), 26 min, 4 h27 min.
E 3.7.13.
(1,1101388, 0,7675919), (1,5602111, 0,342585)
E 3.7.14.
1,5318075
E 3.7.15.
Aproximadamente 2500 reais por hora.
E 3.7.16.
a) 332,74 K b) 359,33 K
E 3.7.17.
1,2285751, 4,76770758, 7,88704085
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 = (4.45)
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] (4.46)
1 + 3
E 4.1.7.
" #
1 1/2 1/2
1/3 1/2 1/6
1/3 0 1/3
E 4.5.1.
a = (0, 1, 2, 1, 2, 1) (4.137)
b = (5, 3, 4, 2, 3, 2) (4.138)
c = (4, 1, 1, 1, 2, 0) (4.139)
d = (13, 10, 20, 16, 35, 17) (4.140)
x = (1, 2, 3, 4, 5, 6) (4.141)
E 4.5.2.
E 4.6.1.
= 7130
41
51.95122, para = 51: k1 = k = 350.4, k2 = 262.1. Para = 52: k1 = k = 6888, k2 = 5163.
E 4.6.2.
k1 (A) = 36, k2 (A) = 18,26, K (A) = 20,8.
E 4.6.3.
k1 = k = 6888, k2 = 26656567 e k1 = 180, k2 = 128,40972 e k = 210
E 4.6.4.
18 + 3. Quando 0+, a matriz converge para uma matriz singular e o nmero de condicionamento diverge para +.
E 4.6.5.
As solues so [0.0000990 0.0000098]T e [0.0098029 0.0990294]T . A grande variao na soluo em funo de pequena
variao nos dados devido ao mau condicionamento da matriz (k1 1186274.3).
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.7.1.
epsilon=1e-3;
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]'
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
E 4.7.4.
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:
function x=jacobi()
x0=zeros(11,1)
k=0;
controle=0;
while controle<3 & k<1000
k=k+1
x(1)=x0(2)
for j=2:10
x(j)=(cos(j/10)+x0(j-1)+x0(j+1))/5
end
x(11)=x0(10)/2
delta=norm(x-x0) //norma 2
if delta<1e-5 then
controle=controle+1
else
controle=0;
end
mprintf('k=%d, x=[%f,%f,%f], tol=%.12f\n',k,x(1),x(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.7.5.
Permute as linhas 1 e 2.
E 4.8.2.
Este exerccio est sem resposta sugerida. Proponha uma resposta. Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
E 4.8.3. 158,726
E 4.8.4.
Este exerccio est sem resposta sugerida. Proponha uma resposta. Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
V1 V
1 0 0 0 0
1 1
V2
0
+ R1 + R1 1 0 0
R1 R1 2 5 R2
0 1 1 + R1 + R1 1 0 =
R2 R2 R3 V3 0
3 6
1 1 + R1 + R1 1
0 0 R3
R3 R4
4 7 v4
0
1 1
0 0 0 R4
R4
+ R1
8
V5 0
Este problema pode ser implementado no Scilab (para o item a) com o seguinte cdigo:
A=[1 0 0 0 0;
1/R1 -(1/R1+1/R2+1/R5) 1/R2 0 0;
0 1/R2 -(1/R2+1/R3+1/R6) 1/R3 0;
0 0 1/R3 -(1/R3+1/R4+1/R7) 1/R4;
0 0 0 1/R4 -(1/R4+1/R8)]
v=[V; 0; 0; 0; 0]
y=A\v
O problema com quatro incgnitas pode ser escrito na forma matricial conforme a seguir:
V
V2 R1
1 + R1 + R1 1 0 0
R1 2 5 R2
1 1
R2
R2
+ R1 + R1 1
R3
0 V3 0
3 6
=
0 1 1 + R1 + R1 1
R3 R3 4 7 R4 v4 0
1 1
0 0 R4
R4
+ R1
8
V5 0
v=[-V/R1; 0; 0; 0]
y=A\v
E 4.9.3. Dica: P (1) = 3, P (1) = 1 e P (2) = 9 produzem trs equaes lineares para os coeficientes a, b e c. Resp: a)
cos(x) x sen (x) 1
JF =
2e2x+y e2x+y
E 5.1.2.
Este exerccio est sem resposta sugerida. Proponha uma resposta. Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
p
E 5.1.3. As curvas possuem dois pontos de interseco. A posio exata destes pontos de interseco dada por 2 3 3,2 3 2
p
e 2 3 3,2 3 2 . Use a soluo exata para comparar com a soluo aproximada obtida.
E 5.1.6.
Este exerccio est sem resposta sugerida. Proponha uma resposta. Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
E 5.1.7. y = mx + b com m 0.0459710 e b 0.479237 Uma metodologia possvel para resolver este problema dada a
seguir:
Sejam x1 e x2 as abscissas dos dois pontos em que a reta tangencia a curva. A equao da reta bitangente assume a seguinte
forma:
y = f (x1 ) + m(x x1 ) (5.20)
Da condio de tangncia, temos que o coeficiente angular da reta, m, deve igual derivada da funo f (x) nos dois pontos
de tangncia.
0 0
m = f (x1 ) = f (x2 ) (5.22)
E sabemos que:
0 cos(x) sen (x)
f (x) = . (5.23)
1+x (1 + x)2
Os valores iniciais para o mtodo podem ser obtidos do grfico buscando valores prximos aos dois primeiros pontos de
(0) (0)
mximos. Por exemplo: x1 = 1 e x2 = 8. Obtemos x1 1,2464783 e x2 8,1782997 e m pode ser obtido atravs desses
valores.
function z=f(x,y)
z=x^2/8+(y-1)^2/5-1
endfunction
function z=g(x,y)
z=atan(x)+x-y-y^3
endfunction
contour([-3:.1:3],[-2:.1:4],f,[0 0])
contour([-3:.1:3],[-2:.1:4],g,[0 0])
function y=F(x)
y(1)=f(x(1),x(2))
y(2)=g(x(1),x(2))
endfunction
function y=JF(x)
y(1,1)=x(1)/4
y(1,2)=2*(x(2)-1)/5
y(2,1)=1/(1+x(1)^2)+1
y(2,2)=-1-3*x(2)^2
endfunction
//primeiro ponto
//x=[-1.2;-1.0]
//segundo ponto
//x=[2.8;1.4]
x=x-JF(x)\F(x) // 4 vezes
E 5.1.11. A primeira curva trata-se de uma elipse de centro (3,1) e semi-eixos 4 e 6, portanto seus pontos esto contidos no
retngulo 1 x 7 e 5 y 7.
As solues so (0,5384844, 1,7978634) e (2,8441544, 6,9954443).
Uma possvel implementao
function z=f(x,y)
z=(x-3)^2/16+(y-1)^2/36-1
endfunction
function z=g(x,y)
z=atan(x)+x-sin(y)-0.01*y^3
endfunction
contour([-1:.1:7],[-5:.1:7],f,[0 0])
contour([-1:.1:7],[-5:.1:7],g,[0 0])
function y=F(x)
y(1)=f(x(1),x(2))
y(2)=g(x(1),x(2))
endfunction
function y=JF(x)
y(1,1)=(x(1)-3)/8
y(1,2)=(x(2)-1)/18
y(2,1)=1/(1+x(1)^2)+1
y(2,2)=-cos(x(2))-0.03*x(2)^2
endfunction
\end{resp}
//primeiro ponto
//x=[-.5;-2.0]
//segundo ponto
//x=[3;7]
x=x-JF(x)\F(x) // 4 vezes
p 6,7
E 5.1.13. Inicializao do mtodo: A(0) = 3,1 e b(0) = 3,1
A 3.0297384 e b 1.4835346.
deff('z=f(x,y)','z=-x^4-y^6+3*x*y^3-x')
contour([-2:.01:0],[-2:.01:0],f,[ 0:.2: 3])
deff('z=F(x)','z=[-4*x(1)^3+3*x(2)^3-1;-6*x(2)^5+9*x(1)*x(2)^2]')
deff('z=JF(x)','z=[-12*x(1)^2,9*x(2)^2;9*x(2)^2,-30*x(2)^4+18*x(1)*x(2)]')
x=[-1.2;-1.2]
x=x-JF(x)\F(x)
x=x-JF(x)\F(x)
x=x-JF(x)\F(x)
x=x-JF(x)\F(x)
mprintf('f(%f,%f)=%f',x(1),x(2),f(x(1),x(2)))
E 5.1.15.
Este exerccio est sem resposta sugerida. Proponha uma resposta. Veja como em:
https://github.com/livroscolaborativos/CalculoNumerico
E 5.1.17.
x1 x2
x1 + 5(x2 + x3
2 ) x3 10 exp(2/3)
x2 + 5(x3 + x3
3 ) x4 10 exp(3/3)
F (x) = x3 + 5(x4 + x3
4 ) x5 10 exp(4/3)
.
.
.
x9 + 5(x10 + x3
10 ) x11 10 exp(10/3)
x11 1
1 1 0 0 0 ... 0
5(1 + 3x2
1 1 ...
2) 0 0 0
0 1 5(1 + 3x2
3) 1 0 ... 0
JF (x) =
0 0 1 5(1 + 3x2
4) 1 ... 0
. . . . .
.
. . . . . .
. . . . . .
0 0 0 0 0 1
function y=F(x)
y(1)=x(1)-x(2)
for j=2:10
y(j)=-x(j-1)+5*(x(j)+x(j)^3)-x(j+1)-10*exp(-j/3)
end
y(11)=x(11)-1
endfunction
function y=JF(x)
y=zeros(11,11)
y(1,1)=1
y(1,2)=-1
for j=2:10
y(j,j-1)=-1
y(j,j)=5*(1+3*x(j)^2)
y(j,j+1)=-1
end
y(11,11)=1
endfunction
Resposta final: 0,80447, 0,80447, 0,68686, 0,57124, 0,46535, 0,37061, 0,28883, 0,22433, 0,19443, 0,28667, 1
E 6.4.1.
R1 f (0)+f (1)
P (x)dx = 2
1
, 12 maxx[0,1] |f 00 (x)|
0
E 8.1.1.
Exata: e1 = 0,36788
E 8.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 8.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 8.1.5.
Segue a tabela com os valores da derivada para vrios valores de h.
Observe que o valor exato 0,3161977 e o h timo algo entre 108 e 109 .
E 8.2.1.
E 9.2.2.
1 2
ISimpson = IT rap + IP M (9.40)
3 3
E 9.2.3.
n Ponto mdio Trapzios Simpson
3 0.1056606 0.7503919 0.5005225
5 0.1726140 0.3964724 0.2784992 (9.41)
7 0.1973663 0.3062023 0.2393551
9 0.2084204 0.2721145 0.2306618
E 9.4.2.
-0.2310491, -0.2452073, - 0.2478649.
E 9.4.4.
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 9.5.1.
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 (9.75)
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 (9.76)
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 (9.77)
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 (9.78)
E 9.5.2.
1.5707963 2.0943951
1.8961189 2.0045598 1.9985707
1.9742316 2.0002692 1.9999831 2.0000055
E 9.5.5. R(6,6) = 10.772065, R(7,7) = 5.2677002, R(8,8) = 6.1884951, R(9,9) = 6.0554327, R(10,10) = 6.0574643. O
valor desta integral com oito dgitos corretos aproximado por 6.0574613.
E 9.6.1.
w1 = 1/6, w2 = 2/3, w3 = 1/6. O esquema construdo o de Simpson e a ordem de exatido 3.
E 9.6.2. 3
E 9.6.3. 5
R1
E 9.6.4. f (x) dx 3
2
3 f (2/3) com ordem 3.
f (1/3) 2f (1/2) + 2
0
E 9.6.5. 5, 4, 3
E 9.7.1.
E 9.9.1.
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
temos
1 cos(x) x2n1/2
X
n
= (1) , x0 (9.115)
x (2n)!
n=1
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 9.9.5. 4,1138
Z 1
3 3
E 9.9.8. f (x)dx = f +f
3 3
1
E 10.2.1.
E 10.2.2.
E 10.2.3. Aproximao via Euler: 2,4826529, exata: esen (2) 2,4825777. Erro relativo aproximado: 3 105 .
E 10.5.1.
E 10.5.2.
E 10.6.1.
2
1 2 1+e1
A soluo exata vale u(1) = 1+2e 4 +e = 2
0.467773541395.
E 10.6.2.
E 10.7.2.
E 10.7.3.
E 10.11.1.
(n) (n) (n) (n)
y =y + hf t ,u(t (10.174)
E 10.11.2.
(n+1) (n) h (n+1) (n+1)
(n) (n)
y =y + f t ,u(t ) +f t ,u(t ) (10.175)
2
E 10.13.1.
(n+1) (n) h (n3) (n3) (n2) (n2) (n1) (n1) (n) (n)
u = u + 9f (t ,u ) + 37f (t ,u ) 59f (t ,u ) + 55f (t ,u ) ,
24
(n+1) (n) h (n2) (n2) (n1) (n1) (n) (n) (n+1) (n+1)
u = u + f (t ,u ) 5f (t ,u ) + 19f (t ,u ) + 9f (t ,u ) .
24
E 10.17.1.
E 10.17.2.
b) 0,081093021622.
c) 0,179175946923.
Au0
u(t) = (10.183)
(A u0 )eAat + u0
1 ln 9
1 ln (6).
Os valores exatos para os itens b e c so: 10 4
e 10
q p
g
E 10.17.3. O valor exato
1 e200 29,109644835142 em t = 1
g
tanh1 1 e200 2,3928380185497
E 11.1.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
1 0 0 0 0 0 0 0 0 u1 5
1 2 1 0 0 0 0 0 0 u2 0.5
0 1 2 1 0 0 0 0 0 u3 0.5
0 0 1 2 1 0 0 0 0 u4 0.5
0 0 0 1 2 1 0 0 0
u5
= 0.5
0 0 0 0 1 2 1 0 0 u6 0.5
0 0 0 0 0 1 2 1 0
u7
0.5
0 0 0 0 0 0 1 2 1 u8 0.5
0 0 0 0 0 0 0 0 1 u9 10
Soluo: [5, 7.375, 9.25, 10.625, 11.5, 11.875, 11.75, 1.125, 10]
E 11.1.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
E 11.1.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
E 11.1.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,
[3] R.L. Burden and J.D. Faires. Anlise Numrica. Cengage Learning, 8 edition,
2013.
[6] Walter Gautschi and Gabriele Inglese. Lower bounds for the condition
number of vandermonde matrices. Numerische Mathematik, 52(3):241250,
1987/1988.
[8] E. Isaacson and H.B. Keller. Analysis of numerical methods. Dover, Ontrio,
1994.
[9] Arieh Iserles. A first course in the numerical analysis of differential equations.
Cambridge university press, 2009.
[10] W.H. Press. Numerical Recipes 3rd Edition: The Art of Scientific Computing.
Cambridge University Press, 2007.
373
374 Clculo Numrico
Aqui voc encontra a lista de colaboradores do livro. Esta lista contm so-
mente aqueles que explicitamente se manifestaram a favor de terem seus nomes
registrados aqui. A lista completa de colaboraes pode ser obtida no repositrio
GitHub do livro:
https://github.com/livroscolaborativos/CalculoNumerico
Alm das colaboraes via GitHub, o livro tambm recebe colaboraes via dis-
cusses, sugestes e avisos deixados em nossa lista de e-mails:
livro_colaborativo@googlegroups.com
Estas colaboraes no esto listadas aqui, mas podem ser vistas no site do grupo
de e-mails.
Caso encontre algum equvoco ou veja seu nome listado aqui por engano, por
favor, entre em contato conosco por e-mail:
livroscolaborativos@gmail.com
375
ndice Remissivo
376
NDICE REMISSIVO 377
iterao, 130