Doherty Andrade
doherty@uem.br
2012
Indice
2 Erros 16
2.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2 Aritmtica de ponto flutuante . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3 Erro absoluto e erro relativo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.4 Dgitos Significativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.5 Propagao de Erros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.6 Condicionamento e Estabilidade . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.7 Resumo do captulo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
3 Equaes no lineares 28
3.1 Introduo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.2 O mtodo da bisseco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
3.3 Usando Maple: o mtodo da bisseco . . . . . . . . . . . . . . . . . . . . . . 32
3.4 Mtodos iterativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.5 O mtodo do ponto fixo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.6 Usando Maple: o mtodo do ponto fixo . . . . . . . . . . . . . . . . . . . . . . 39
3.7 O mtodo de Newton-Raphson . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.8 Usando Maple: o mtodo do Newton-Raphson . . . . . . . . . . . . . . . . . . 47
3.9 O mtodo da secante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.10 Usando Maple: o mtodo da secante . . . . . . . . . . . . . . . . . . . . . . . 52
3.11 Como escolher o melhor mtodo . . . . . . . . . . . . . . . . . . . . . . . . . . 53
i
D. Andrade Clculo Numrico ii
Este texto pode ser livremente distribudo para fins educacionais, mas nunca modificado.
Este texto pode ser livremente distribudo para fins educacionais, mas nunca modificado. O autor no pode
ser responsabilizado por eventuais erros ou imprecises contidos no texto ou nos procedimentos em cdigo
Maple apresentados nele. Os procedimentos em cdigo Maple apresentados aqui no texto so apenas para
fins didticos e para auxiliar a compreenso da teoria, estes foram testados com cuidado mas no h
garantias de utilizao para todos os fins. O autor no oferece qualquer garantia sobre os procedimentos e
suas aplicaes.
Introduo
Esse texto destinado a um curso introdutrio aos mtodos numricos. indicado para
estudantes de engenharias, matemtica, cincia da computao, fsica e cincias exatas
em geral.
Procuramos facilitar o entendimento dos mtodos incluindo uma grande variedade de
exemplos e exerccios. Alm disso, apresentamos cdigos em Maple para os mtodos
numricos mais comuns. Esses cdigos permitem ao estudante se familiarizar com o
software e realizar novos exemplos ou experimentar os exemplos apresentados com novas
aproximaes iniciais, com outra tolerncia ou outro passo.
A nfase nesse texto a compreenso dos mtodos, isto , por que os mtodos apresen-
tados funcionam. As demonstraes explicam porque os mtodos funcionam, sem esse
entendimento o aproveitamento desse material fica prejudicado. Ao estudante que sentir
alguma dificuldade com as justificativas ou demonstraes, sugerimos passar adiante e
quando se sentir seguro e com mais maturidade deve retornar a elas.
vi
Alguns resultados bsicos
1
Neste captulo apresentamos os principais resultados necessrios para o desenvolvi-
mento do texto.
Sequncias
Uma sequncia (infinita) de nmeros reais uma funo cujo domnio o conjunto dos
nmeros naturais:
x : N R.
usual representar a imagem x(n) por xn . Tambm usual representar uma sequncia
por (x1 , x2 , x3 , . . . , xn , . . .) ou resumidamente por (xn ).
Uma subsequncia de uma sequncia (xn ) a restrio de (xn ) a um subconjunto infinito
N de N.
Dizemos que a sequncia (xn ) :
(a) limitada superiormente se existe M R tal que xn M, n.
1
D. Andrade Clculo Numrico 2
|xn L| < , n n0 .
Usamos as notaes
lim xn = L ou xn L,
n
Limite de funes
lim f (x) = b
xa
se, e somente se, para todo > 0, existe > 0 tal que
0 < |x a| < , x X
implica que
|f (x) b| < .
Funes contnuas
D. Andrade Clculo Numrico 4
1
Definio 1.1.9 Seja f : X R R. Dizemos que f contnua em a X quando
TVI
-1
Seja f : X X. Se existe c X tal que f (c) = c dizemos que c um ponto fixo para f .
Teorema 1.1.11 Toda aplicao contnua f : [a, b] [a, b] tem pelo menos um ponto fixo.
1
aqui supe-se implicitamente que a X seja um ponto de acumulao de X.
D. Andrade Clculo Numrico 5
Funes derivveis
f (x + h) f (x)
f (x) = lim
h0 h
se o limite existe.
Se f (x) existe para todo x do seu domnio, dizemos que f derivvel.
Teorema 1.1.15 (Teorema de Rolle) Seja f : [a, b] R contnua e derivvel em (a, b).
Se f (a) = f (b) = 0, ento existe x0 (a, b) tal que f (x0 ) = 0.
Outra verso do Teorema de Rolle dada a seguir, onde a condio f (a) = f (b) = 0
retirada.
Teorema 1.1.16 (Teorema de Rolle) Seja f : [a, b] R contnua e derivvel em (a, b).
Se f (a) = f (b), ento existe x0 (a, b) tal que f (x0 ) = 0.
D. Andrade Clculo Numrico 6
Existe uma verso mais geral do Teorema de Rolle, que apresentamos a seguir, cuja
prova pode ser feita por induo.
Teorema 1.1.17 Seja f : [a, b] R contnua e n vezes derivvel em (a, b). Se existem
x0 , x1 , . . . , xn pontos em [a, b] tais que f (xi ) = 0, i = 0, 1, . . . , n, ento existe c (a, b) tal que
f (n) (c) = 0.
Teorema 1.1.18 (Valor Mdio) Seja f : [a, b] R contnua e derivvel em (a, b). Existe
c (a, b) tal que
f (b) f (a)
f (c) = .
ba
Integrais
Teorema 1.1.21 (Teorema do valor Mdio para integrais) Seja f : [a, b] R con-
tnua e g : [a, b] R integrvel que no muda de sinal em (a, b). Ento, existe c (a, b) tal
que Z Z
b b
f (x)g(x)dx = f (c) g(x)dx.
a a
Teorema de Taylor
Reciprocamente, se p(h) um polinmio de grau n tal que r(h) = f (h) p(h) cumpre
r(h)
lim = 0,
h0 hn
Teorema 1.1.23 (Taylor com resto de Lagrange) Seja f : [a, b] R n vezes derivvel
em (a, b) com f (n1) contnua em [a, b]. Existe c (a, b) tal que
f (a) f (n1) (a) f (n) (c)
f (b) = f (a) + (b a) + + (b a)n + (b a)n
1! (n 1)! n!
Teorema 1.1.24 (Taylor com resto integral) Se f : I R possui a n + 1- sima
derivada contnua no intervalo de extremos a e a + h pertencentes a I, ento
Z 1
f (a) f (n) (a) n (1 t)n (n+1)
f (a + h) = f (a) + h ++ h + f (a + th)hn+1 dt.
1! n! 0 n!
(H )n1 (H )n
f (P + H) = f (P ) + (H )f (P ) + + f (P ) + f (P + H).
(n 1)! n!
No caso de duas variveis, a frmula de Taylor fica:
f (a + h, b + k) = f (a, b) + h +k f (a, b)
x y
2
1
+ h +k f (a, b)
2! x y
n1
1
+ + h +k f (a, b)
(n 1)! x y
n
1
+ h +k f (a + h, b + k)
n! x y
Jacobiana e Hessiana
Mximos e Mnimos
Teorema 1.1.28 Seja f : [a, b] R contnua e derivvel em (a, b). Suponha que f assume
seu valor mximo em x0 (a, b). Ento, f (x0 ) = 0.
Um resultado anlogo vale quando f assume o seu mnimo em algum ponto do interior
do domnio. Se f assume mximo ou mnimo no interior de seu domnio, ento a derivada
se anula nesses pontos.
Um ponto x0 tal que f (x0 ) = 0 chamado de ponto crtico de f .
Como vimos acima no teorema 1.1.28, os pontos de mximo e mnimo locais de uma
funo so pontos crticos. Mas existem pontos crticos que no so pontos de mximo ou
mnimo locais. Esse pontos so chamados pontos de inflexo, a funo f (x) = x3 tem em
x = 0 um ponto de inflexo.
D. Andrade Clculo Numrico 10
Teorema 1.1.29 (Teste da derivada segunda) Seja f : [a, b] R uma funo con-
tnua em [a, b] e duas vezes derivvel em (a, b). Seja c (a, b) um ponto crtico de f .
a) Se f (c) < 0, ento f tem um mximo local em x = c.
b) Se f (c) > 0, ento f tem um mnimo local em x = c.
(a) o espao Mmn das matrizes reais de dimenso m n. Esse espao tem dimenso mn.
(b) o espao dos polinmios com coeficientes reais p(x) = an xn + an1 xn1 + + a1 x + a0
de grau menor do que ou igual a n. Esse espao tem dimenso n + 1.
(b) o espao das funes contnuas f : [a, b] R. Esse espao tem dimenso infinita.
Sistemas lineares
a1 x1 + a2 x2 + a3 x3 + + an xn = b
Operaes elementares
So operaes elementares:
(a) Uma linha Li pode ser substituda pela linha Li multiplicada por uma constante k 6= 0.
Indicamos essa operao por
Li kLi .
(b) A linha Li pode ser substituda pela soma da linha Li a com a linha Lj .
Indicamos essa operao por
Li Li + Lj .
(c) A linha Li pode ser permutada com a linha Lj .
D. Andrade Clculo Numrico 12
Determinantes
Matriz de Vandermonde
D. Andrade Clculo Numrico 13
Note que se os pontos x1 , x2 , . . . , xn forem distintos, ento det V 6= 0. Essa matriz aparece
no mtodo dos quadrados mnimos e em interpolao.
Dada uma matriz quadrada Ann , para cada k = 1, 2, . . . , n 1, retirando-se de A as
primeiras k linhas e colunas obtemos uma nova matriz Ak denominada submatriz prin-
cipal de A.
Teorema 1.3.2 (Princpio Min-Max) uma aplicao contnua T a valores reais e definida
em um conjunto no vazio, limitado e fechado do Rn , assume o seu valor mximo e o seu
valor mnimo.
f (p) f (x), x C.
Exerccio 1.3.4
Seja f : [a, b] R contnua e duas vezes continuamente derivvel em [a, b]. Seja x a nica
raiz de f em (a, b). Mostre que o mtodo definido por
f (x)
xn+1 = g(xn ), g(x) = x
f (x)
1. Convergncia de sequncias;
5. Teorema de Taylor;
2.1 Introduo
No trabalho com mtodos numricos importante saber que a soluo numrica no
soluo exata. Portanto, necessrio conhecer o quanto a soluo obtida por meio desses
mtodos est prxima da soluo exata.
A soluo numrica uma mera aproximao do valor real, no tem valor se no vier
acompanhada de alguma informao sobre o seu erro. preciso ter uma ideia a respeito
da distncia entre o valor exato e a aproximao considerada. Em resumo, preciso ter
alguma informao sobre a qualidade da aproximao.
Essa qualidade pode ser expressa pelo erro absoluto ou pelo erro relativo. A preciso da
soluo numrica pode ser melhorada de vrias maneiras e esses conceitos nos ajudaro
muito nessa tarefa.
16
D. Andrade Clculo Numrico 17
temos que
4) Normalizao da mantissa;
5) Arredondamento da mantissa;
|x x|
ERx = , x 6= 0.
|x|
por trucamento. claro que nesse caso o erro de arredondamento por trucamento dado
por
EAx = |x xe| = |g| 10et.
Como j vimos, o arrendodamento simtrico obtido observando-se a magnitude da parte
a ser desprezada g. Quando consideramos a aproximao x e dada por
f 10e , se 0 < |g| < 0.5
x
e=
f 10e + 10et , se 0.5 |g| < 1
Proposio 2.3.1 (a) Utilizando aritmtica com t casas decimais e arrendodamento por
truncamento o erro relativo mximo cometido dado por 101t .
(b) Utilizando aritmtica com t casas decimais e arrendodamento simtrico o erro relativo
1
mximo cometido dado por 101t .
2
(a) De fato, observe que
(b)
|g| 10et
, se 0 < |g| < 0.5
|x xe| |f | 10e
ERx = = .
|e
x|
(1 g) 10et
, se 0.5 |g| < 1
|f | 10e + 10et
Como 0 |g| < 21 , ento |1 g| < 21 , podemos escrever
|g| 10et 1
< 101t , se 0 < |g| < 0.5
|x xe| |f | 10 e 2
ERx = = et .
|e
x|
(1 g) 10 |g 1| 10et 1
< < 10 1t
, se 0.5 |g| < 1
|f | 10e + 10et |f | 10e 2
D. Andrade Clculo Numrico 22
0.5 10n ,
Assim, dizemos que x aproxima x com d dgitos significativos se d o maior inteiro posi-
tivo para o qual se tem
|x x| 1
< 10d .
|x| 2
Dgitos no nulos so sempre dgitos significativos. Em 0.057 tem-se dois dgitos signi-
ficativos; em 0.507 temos trs dgitos significativos. O nmero de dgitos significativos
num clculo depender do nmero de dgitos significativos dos dados iniciais.
De modo anlogo,
EAxy EAx + EAy .
D. Andrade Clculo Numrico 24
x y = x.y + x2 + y1 + 1 2 .
Da expresso acima vemos que se |x| > 1 ou |y| > 1, ento as parcelas x2 e y1 con-
tribuiro para o aumento do erro no produto.
Supondo xy 6= 0, rearranjando e dividindo por xy, podemos escrever,
xy x.y x2 y1 1 2
= + + .
xy xy xy xy
Se x uma boa aproximao para x e se y uma boa aproximao para y, ento
x2 2
,
xy y
y1 1
,
xy x
1 2
0.
xy
Segue que para boas aproximaes tem-se
xy x.y 1 2
ERxy = + = ERx + ERy .
xy x y
D. Andrade Clculo Numrico 25
Segue que para boas aproximaes o erro relativo na diviso , no mximo, da mesma
ordem que a soma dos erros relativos.
Observao 2.5.1
Exerccio 2.6.1
1. Considere e 2.718282, 131
0.076923, 200 14.1421 e ln 2 0.69315. Assu-
mindo que e 2.71828182846... 131
0.076923076..., 200 14.1421356... e ln 2
0.69314718... Obtenha limites superiores para os erros absolutos, erros relativos e
porcentagens de erros em cada caso.
3. Arredonde os seguintes nmeros reais representando-os com trs e com cinco al-
garismos:
2 1 1
, , 5, , e, e1 .
9 256 44
4. Use a sua calculadora para calcular 31 3, 2 2 usando apenas 4 dgitos.
f () = 0, f () = 0, . . . , f (m1) () = 0, f (m) () 6= 0.
28
D. Andrade Clculo Numrico 29
Em todo esse captulo, a menos que se diga o contrrio, vamos supor que as razes so
simples.
Consideremos f : [a, b] R contnua tal que f (a)f (b) < 0. Seja m o ponto mdio de [a, b].
Note que se f (a)f (m) < 0, ento o teorema do valor intermedirio garante que a raiz se
encontra no intervalo [a, m].
Se f (a)f (m) > 0, ento temos que f (a)f (m)f (a)f (b) = [f (a)]2 f (m)f (b) < 0, pois [f (a)]2 >
0. Segue que f (m)f (b) < 0 e portanto, a raiz se encontra no intervalo [m, b]. No mtodo
da bisseco, esse o teste para decidir quais dos subintervalos devemos considerar no
prximo passo.
Chamando a0 = a e b0 = b e efetuando sucessivas bisseces, obtemos intervalos [ak , bk ] e
ba
pontos mdios mk . Note que |bk ak | = bk ak = k .
2
O mtodo da bisseco gera sempre uma sequncia que converge para a soluo. De fato,
o mtodo gera uma sequncia de intervalos encaixados I0 = [a0 , b0 ] I1 = [a1 , b1 ] I2 =
[a2 , b2 ] . . . Ik = [ak , bk ] . . .. Os extremos ak dos intervalos compem uma sequn-
cia montona no decrescente limitada superiormente por b; portanto convergente. Os
extremos bk dos intervalos compem uma sequncia montona no crescente limitada
inferiormente por a, portanto convergente.
ba
Afirmamos que ambas convergem para o mesmo limite l. De fato, como bk ak =
2k
temos que
0 = lim (bk ak ) = lim bk lim ak .
k k k
Agora mostraremos que l raiz de f (x). Como em cada passo tem-se f (ak )f (bk ) < 0,
ento
0 lim f (ak )f (bk ) = lim f (ak ) lim f (ak ) = [f (l)]2 0.
k k k
Teorema 3.2.1 Seja f : [a, b] R contnua tal que f (a)f (b) < 0. O mtodo da bisseco
gera uma sequncia (mk ) que converge para a raiz c de f e satisfaz
ba
|mk c| |bk ak | , k 1. (3.2.1)
2k
Nesse ponto interessante observar que se estamos procurando por uma aproximao
ba
para a raiz da equao com erro mximo , o fator < pode ser utilizado como
2k
critrio de parada. O ponto mdio mk de [ak , bk ] um candidato a soluo e satisfaz
ba ba
|bk mk | |bk ak | k < e |ak mk | |bk ak | k < .
2 2
Ento, qual o nmero de subintervalos em que devemos subdivir o intervalo [a, b] de
modo que o erro cometido na aproximao da soluo seja menor do que ? Uma aproxi-
mao para a soluo um ponto em [ak , bk ], assim devemos ter
ln( ba )
k>
. (3.2.2)
ln 2
O mtodo da bisseco, por ser o mais simples dos mtodos, ele gera uma boa aproxi-
mao inicial que muitas vezes o ponto de partida para utilizao em outros mtodos,
como o caso do mtodo de Newton-Raphson.
Mtodo prtico: Uma maneira prtica para utilizar o mtodo da bisseco apresen-
2
tada a seguir para a funo f (x) = x2 sin(x), x em radianos.
Exemplo 3.2.2
x 2
Determinar uma aproximao para uma raiz positiva da funo f (x) = sin(x) no
x 22
intervalo [1.5, 2], x em radianos. Note que f (x) = 0 se, e somente se, = sin(x). Veja
2
a tabela 3.1
Assim, uma aproximao para a raiz procurada m5 = 1.921875.
D. Andrade Clculo Numrico 31
k ak bk mk f (ak )f (mk )
0 1.5 2.0 1.75 > 0 o intervalo escolhido [mk , bk ]
1 1.75 2.0 1.875 >0
2 1.875 2.0 1.9375 <0
3 1.875 1.9375 1.90625 > 0 o intervalo escolhido [mk , bk ]
4 1.90625 1.9375 1.921875 >0
2.5
1.5
0.5
x 2
Figura 3.1: Grfico de 2
e sin(x)
Para saber quantas iteraes do mtodo da bisseco so necessrias para que a raiz
c que se encontra em [1.5; 2] satisfaa |bk ak | < 105 podemos utilizar (3.2.2) obtendo
k > 15.60964047. Portanto, o nmero mnimo de iteraes k = 16. Vejamos um exemplo.
Exemplo 3.2.3
Usando a expresso (3.2.1) podemos determinar quantas iteraes do mtodo da bis-
2
seco devemos realizar para obter uma aproximao da soluo de x2 sin(x) = 0 no
intervalo [1.5, 2], com erro menor do que 103 .
De fato, como
ln( ba
) ln( 21.5
103
)
k> = 8.96.
ln 2 ln 2
Segue que devemos realizar pelo menos 9 iteraes do mtodo da bisseco.
D. Andrade Clculo Numrico 32
Resumo:
(a) Mostramos que o mtodo da bisseco gera uma sequncia que converge para a
soluo de f (x) = 0.
(b) Escolhemos os subintervalos pelo critrio se f (a)f (m) < 0, escolhemos o subintervalo
[a, m], e se f (a)f (m) > 0, escolhemos o subintervalo [m, b].
(c) O nmero mnimo de iteraes do mtodo da bisseco para atingirmos a preciso
ln( ba )
dado por k >
.
ln 2
> restart:
> bisse
o:=pro
(f::pro
edure,intervalo::anything=range,
toleran
ia::anything=real
ons)
lo
al a,b,extremos,Detalhes,E,Iterao,m;
if nargs<>3 then
ERROR(`O nmero de argumentos exigido 3. Vo
forne
eu `||nargs||`.`)
fi;
if rhs(toleran
ia)<0.1e-14 then
ERROR(`O valor mnimo de E a
eitvel 0.1e-14).`)
fi;
Digits:=10;
extremos:=lhs(rhs(intervalo)), rhs(rhs(intervalo));
a:=min(extremos);
b:=max(extremos);
D. Andrade Clculo Numrico 33
if not(evalf(f(a)*f(b))<0) then
ERROR(`A funo no muda de sinal nos extremos do intervalo
onsiderado.`)
fi;
Iterao:=0;
E:=abs(rhs(toleran
ia));
Detalhes:=[;
while evalf(abs(b-a)) > evalf(2*E) do
m:=(a+b)/2;
Iterao:=Iterao+1;
Detalhes:=Detalhes,[Iterao,a,b,evalf((a+b)/2),evalf(f(a)*f(m));
if evalf(f(m)*f(a)) < 0 then
b:=m
elif evalf(f(m)*f(a)) > 0 then
a:=m
else
print(`O zero real en
ontrado exato e vale `,m);
return;
fi;
od:
m:=(a+b)/2;
Iterao:=Iterao+1;
Detalhes:=Detalhes,[Iterao,a,b,evalf(m),evalf(f(a)*f(m));
printf(`\n%s% .15f`,`Mtodo da bisse
o
om E = `,E);
printf(`\n%s%a`,`Intervalo ini
ial `,intervalo);
printf(`\n| k | a[k | b[k
| m[k | f(a[k)*f(m[k) | \n|=======
|======================|======================|=======================
|========================| \n`);
seq(printf("|%5d | % 0.15f | % 0.15f | % 0.15f | % 0.15f
|\n", Detalhes[k,1,Detalhes[k,2,Detalhes[k,3,Detalhes[k,4,
Detalhes[k,5),k=2..Iterao+1)
end:
> f:=x->(x/2)^2-sin(x);#exemplo
> bisse
o(f,x=1.5..2.0,E=0.00001);
Exemplo 3.3.1
D. Andrade Clculo Numrico 34
A equao x3 +3x10 = 0 tem uma raiz real no intervalo [1, 4]. Aps 15 iteraes obtemos
a seguinte aproximao = 1.698885489.
60
1
50
0.8
40
0.6
30
0.4
20
0.2
10 0
1 0.5 0.5 1 1.5 2 2.5
x
0.2
0 1.5 2 2.5 3 3.5 4
x 0.4
0.6
Observao 3.3.2
Como vimos o mtodo da bisseco gera uma sequncia infinita. Podemos usar um dos
critrios de parada para interromper os clculos. Dada uma tolernica > 0 aplicamos
o mtodo da bisseco para obter m1 , m2 , . . . , mk at que uma das condies sejam satis-
feitas:
1. |f (xk )| < ;
2. |xk+1 xk | < ;
|xk+1 xk |
3. < ;
|xk+1 |
Teorema 3.5.1 Seja : [a, b] [a, b] contnua com contnua em (a, b). Suponha que
|(x)| M < 1 para algum M 0 e todo x (a, b). Ento, para x0 [a, b] tem-se:
(a) xn+1 = (xn ) pertence a [a, b], n 0.
(b) limn xn = c, para algum c [a, b].
(c) c a nica soluo de x = (x) em [a, b].
Demonstrao: O item (a) bvio. Para o item (b) notemos que se x, y (a, b) ento,
pelo teorema do valor mdio existe entre x e y tal que
(y) (x)
= ().
yx
No caso geral,temos
Definio 3.5.2 Dado uma sequncia (xn ) convergente para seja En = xn . Se existe
um real p 1 e c 6= 0 tais que
|En+1 |
lim = c,
n |En |p
Demonstrao: De fato, pelo teorema do valor mdio, existe n entre xn1 e c tais que
Assim,
|xn c|
= | (n )|.
|xn1 c|
Fazendo n , obtemos
|xn c|
lim = | (c)|.
n |xn1 c|
0 1 2 3 4
x
Exemplo 3.5.4
1
A equao x3 x 5 = 0 pode ser reescrita como x = x3 5 = 0 ou x = (x + 5) 3 ou ainda
5
x= 2 . A forma da equao a ser escolhida depende da raiz a ser localizada e se a
x 1
funo satisfaz s condies do Teorema 3.5.1.
Exemplo 3.5.5
D. Andrade Clculo Numrico 39
Mtodo Prtico: Uma maneira prtica de utilizar o mtodo das aproximaes suces-
sivas dispor os clculos em uma tabela 3.2 como mostrado a seguir. Nesse exemplo,
f (x) = 2 + ln(x) = 0 e (x) = exp(x 2) = x no intervalo [0.2, 1.5], veja grfico em 3.5. Note
que | (x)| < 1 no intervalo.
> restart:
> pfixo1:=pro
(f,
hute,n)
> lo
al x,k;
> x[0:=evalf(
hute );
> for k from 1 to n do
> x[k:=evalf( f(x[k-1) );
D. Andrade Clculo Numrico 40
3 2
2.5
1.5
2
y
1.5 y1
1
0.5
0.5
0 0.5 1 1.5
x 2 2.5 3 0 0.5 1
x 1.5 2
> od;
> if abs(x[n-x[n-1)-abs(x[n-1-x[n-2)> 0 then ERROR(`a seq diverge`)
> fi;
> print(`o ponto fixo `, evalf(x[n),`aps `, n, `itera
oes`);
> end:
Exemplo
> f:=x->exp(x-2);
> pfixo1(f,1.0,10);
2. Determine a raiz quadrada de 0.5 com quatro casas decimais escrevendo f (x) =
x2 0.5 e resolvendo x = (x) = x2 +x0.5 pelo mtodo das aproximaes sucessivas
com x0 = 0.6. A raiz quadrada positiva poderia ser determinada por esse mtodo
com a mesma funo (x)? Explique.
3. Use o mtodo das aproximaes sucessivas para determinar a menor raiz positiva,
D. Andrade Clculo Numrico 41
k xk (xk ) |xk+1 xk |
0 1.0 .367879
1 .367879 .195515 .632121
2 .195515 .164558 .172364
3 .164558 .159543 .030957
4 .159543 .158744 .005015
5 .158744 .158617 .000799
6 .158617 .158598 .000127
7 .158598 .158595 .000019
8 .158595 .158594 .3 105
9 .158594 .158594 .1 105
10 .158594 .158594 0
f (xn )
xn ,
f (xn )
f (xn )
xn+1 = xn , n 0.
f (xn )
(3.7.4)
Note que o mtodo de Newton-Raphson um mtodo iterativo de passo 1 e que para ser
iniciado necessitamos da aproximao inicial x0 .
A funo
f (x)
(x) = x
f (x)
(3.7.5)
chamada de funo de iterao para o mtodo de Newton-Raphson. Como () = 0
e (x) contnua, segue que existe uma vizinhana de em que | (x)| k < 1, onde
0 k < 1. O que mostra que (x) uma contrao em alguma vizinhana de . Isto
explica porque o mtodo de Newton-Raphson funciona.
Mtodo prtico: Uma maneira prtica para usar o mtodo de Newton-Raphson uti-
lizar uma tabela como mostrado abaixo, tabela 3.3.
Nesse exemplo, determinamos uma aproximao para a soluo da equao 4 cos(x)ex =
0 localizada em [0, 1], tomamos x0 = 0.9 como aproximao inicial.
Interpretao Grfica: A reta tangente ao grfico de f (x) no ponto (xk , f (xk )) cruza o
eixo OX no ponto xk+1 dado por
f (xk )
xk+1 = xk .
f (xk )
D. Andrade Clculo Numrico 43
3 4cos(x) e exp(x)
4
2
1
3
x
-2 -1.5 -1 -0.5 0.5 1 1.5
0
2
-1
1
-2
-4
A escolha da aproximao inicial deve ser cuidadosa, pois caso contrrio o mtodo pode
no convergir ou convergir para uma soluo no desejada. Na figura da direita 3.11, x0
foi tomado muito prximo de um ponto estacionrio (crtico) de f (x).
Apresentamos a seguir uma demonstrao mais simples em que supe-se que seja de
classe C 2 .
D. Andrade Clculo Numrico 45
4
y
2
-2
Figura 3.9: boa escolha para o ponto Figura 3.10: escolha ruim para o
inicial. ponto inicial
Suponha que seja de classe C 2 em (a, b) e que tenha raiz simples [a, b] e seja
f (x)
(x) = x . Usando o teorema de Taylor, temos
f (x)
1
(x) = () (x ) () + (x )2 (),
2
onde algum ponto entre x e . Sabendo que () = e () = 0, fazendo x = xn
obtemos
1
(xn ) = + (xn )2 (n ),
2
onde n algum ponto entre xn e . Segue que
1
xn+1 = + (xn )2 (n ),
2
ou seja,
xn+1 1
(xn )2 = 2 | (n )|.
Fazendo n , obtemos
xn+1
lim = lim 1 | (n )| = 1 | ()| =
6 0.
n (xn ) 2 n 2 2
D. Andrade Clculo Numrico 46
Seja N > 0. Queremos calcular uma aproximao para N. Para isso tomemos a funo
auxiliar f (x) = x2 N. claro que N uma soluo de f (x) = 0. Aplicando o mtodo
de Newton-Raphson funo f obtemos a seguinte funo de iterao :
N
f (x) x2 N x+ x
(x) = x = x = .
f (x) 2x 2
x + Nx
A expresso (x) = explica um dos mtodos do clculo da raiz quadrada muito
2
utilizado no no ensino fundamental. Este mtodo conhecido como o mtodo babilnio
sendo apresentado pelos seguintes passos:
1. Adivinhe a uma aproximao para N .
Como exemplo vamos calcular 7.
Tomemos como aproximao inicial x0 = 2. Ento, temos
7
2+ 2
x1 = = 2.75.
2
Repetindo, obtemos
7
2.75 + 2.75
x2 = = 2.647727273.
2
Agora vamos determinar x3 :
7
2.647727273 + 2.647727273
x3 = = 2.645752048.
2
Assim, sucessivamente. Note que (2.645752048)2 = 7.000003899.
O que nos surpreende que este mtodo, que coincide com o mtodo de Newton-Raphson,
j era empregado pelos babilnios cerca de 2000 anos antes de Cristo.
Exerccio 3.8.1
xn+1 xn xn1
Exemplo 3.9.2
D. Andrade Clculo Numrico 50
com xk xk1 6= 0. Essa reta tem zero localizado em x = xk+1 . A expresso para o zero
Ek (y
+ 21 y Ek + O(Ek2 ))(Ek Ek1 )
Ek+1 = Ek + 1 y (E + E 2 2
(Ek Ek1 )(y 2 k k1 ) + O(Ek + Ek1 Ek + Ek1 ))
1
y Ek1 + O(Ek + Ek1 )
= Ek 2 ,
y + O(Ek + Ek1 )
aps reduzir ao denominador comum e considerar que O(x) + O(x2 ) = O(x) para x pe-
queno.
Donde obtemos a seguinte relao de recorrncia
1 y
Ek+1
Ek1 Ek C0 Ek1 Ek ,
2 y
y
quando k e C0 2y , desde que y 6= 0.
Resolvendo a recurso bilinear, obtemos
Ek+1 CEkr , (3.9.7)
D. Andrade Clculo Numrico 52
> restart:
> Mse
ante:=pro
( f, x0, x1, N)
> lo
al a , b ,
, n,j:
> a:=evalf(x0): b:=evalf(x1):
>print(`Aproximao ini
ial`,a,b,f(a),f(b));
>for j from 1 to N do
>
:= ( a*f(b)-b*f(a) )/( f(b)-f(a)):
> a:=b: b:=
:
D. Andrade Clculo Numrico 53
a) ordem de convergncia,
f (xn )
xn+1 = xn q , n 0.
f (xn )
(3.12.9)
Teorema 3.13.2 Se p(x) um polinmio de grau mpar, ento p(x) possui ao menos uma
raiz real.
Teorema 3.13.3 (Resto) Seja p(x) um polinmio. O resto da diviso de p(x) por x a
igual a p(a). Isto , p(x) = q(x)(x a) + p(a) para algum polinmio q(x).
Vamos supor que f (x) seja um polinmio sem razes mltiplas. Assim, MDC(f (x), f (x)) =
f0 (x) = f (x)
f1 (x) = f (x)
f0 (x) = q1 (x)f1 (x) f2 (x)
f1 (x) = q2 (x)f2 (x) f3 (x)
.. ..
. = .
fr1 (x) = qr (x)fr (x) 0
Teorema 3.13.4 (Sturm) Seja f (x) um polinmio e sejam b < c reais. Se f (b) 6= 0 e
f (c) 6= 0, ento o nmero de razes distintas de f (x) entre b e c dado por (b) (c).
Exemplos
a) Seja f (x) = x3 6x2 + 11x 6. A seqncia de funes
11
P = {x3 6x2 + 11x 6, x2 4x + , x 2, 1}.
3
Tomemos b = 0 e c = 4 e o seguinte quadro de mudanas de sinais da sequncia em P :
pontos sinais de P
0 - + - +
4 + + + +
D. Andrade Clculo Numrico 57
Segue que (b) (c) = 3 0 = 3 e portanto existem trs razes nesse intervalo. Veja o
grfico 3.13.1.
b) Para o polinmio p(x) = x4 10x3 + 35x2 50x + 24 temos a seguinte sequncia
15 2 35 25 29 5
P = {x4 10x3 + 35x2 50x + 24, x3 x + x , x2 5x + , x , 1}.
2 2 2 5 2
Tomemos b = 0 e c = 5, temos a seguinte distribuio de sinais
pontos sinais de P
0 + - + - +
5 + + + + +
segue que w(b) w(c) = 4 0 = 4 e portanto o polinmio possui 4 razes no intervalo [0, 5].
c) Para o polinmio p(x) = x3 + 2x2 5x 6 temos a seguinte sequncia
4 5 22
P = {x3 + 2x2 5x 6, x2 + x , x + , 1}.
3 3 9
Tomemos b = 4 e c = 4. Segue que (b) (c) = 3 e portanto existem trs razes nesse
intervalo.
O Maple tem uma rotina que determina a sequncia dos polinmios do teorema de
Sturm:
> sturm(s,x,-4,4);
3
Assim, o polinmio possui 3 razes no internavalo [4, 4].
Critrio de Descartes
Para o polinmio p(x) = x4 10x3 + 35x2 50x + 24 temos que o nmero de variaes de
sinais = 4. Segue que o nmero de razes positivas p deve satisfazer 4 p 0 inteiro
par. Assim, p = 4 ou p = 2 ou p = 0.
Para determinar o nmero de razes reais negativas basta aplicar o procedimento acima
ao polinmio p(x). Isto , as razes negativas de p(x) so as razes positivas de p(x).
Para o polinmio p(x) = x4 10x3 + 35x2 50x + 24 temos que p(x) = x4 + 10x3 + 35x2 +
50x + 24 e = 0 e portanto p 0, ou seja p = 0, no existe raiz negativa.
Para o polinmio p(x) = x5 3 x4 + x3 x2 + 2 x + 1 temos que = 4 e p deve satisfazer
4 p 0 deve ser inteiro par. Segue que p = 4, 2 ou p = 0. Trocando x por x temos
p(x) = x5 3 x4 x3 x2 2 x + 1, nesse caso o nmero de variaes de sinais de p(x)
= 1 e assim o nmero de razes negativas p deve satisfazer 1 p 0 inteiro e par.
Segue que p = 1.
Para o p(x) = x4 10x3 + 35x2 50x + 24 temos = 1 + max{10, 35, 50, 24} = 51. Segue que
as razes de p(x) pertecem ao crculo |x| 51. Em particular, as razes reais pertecem ao
intervalo [51, 51].
Para o polinmio p(x) = x3 6x2 + 11x 6 temos = 1 + max{6, 11, 6} = 12. Segue que
todas as suas razes pertencem ao crculo |x| 12.
b4 = a4
b3 = b4 x + a3
b2 = b3 x + a2
b1 = b2 x + a1
b0 = b1 x + a0 = p4 (x)
Essa forma encaixada pode ser colocada numa tabela conhecida como dispositivo prtico
de Briot-Ruffini-Hrner (ilustramos aqui com um polinmio de grau 4).
D. Andrade Clculo Numrico 60
a4 a3 a2 a1 a0
x b4 x b3 x b2 x b1 x
b4 b4 x + a3 b3 x + a2 b2 x + a1 b1 x + a0
| {z } | {z } | {z } | {z }
b3 b2 b1 b0
e portanto
bn = an
bn1 = bn x + an1
bn2 = bn1 x + an2
.. ..
. = .
b0 = b1 x + a0 = pn (x)
ou recursivamente:
bn = an
bj = bj+1 x + aj , j = n 1, . . . , 2, 1, 0.
Podemos utilizar os coeficientes bj para calcular p (x). Vamos fazer a demonstrao para
o caso de um polinmio de grau 4.
Seja p(x) = a4 x4 + a3 x3 + a2 x2 + a1 x + a0 . Temos que
b4 = a4 a4 = b4
b3 = b4 x + a3 a3 = b3 b4 x
b2 = b3 x + a2 a2 = b2 b3 x
b1 = b2 x + a1 a1 = b1 b2 x
b0 = b1 x + a0 a0 = b0 b1 x
D. Andrade Clculo Numrico 61
p (x) = b4 x3 + b3 x2 + b2 x + b1 .
c4 = b4
c3 = c4 x + b3
c2 = c3 x + b2
c1 = b1 x + b1 = p (x)
cn = bn
cj = cj+1 x + bj , j = n 1, . . . , 2, 1.
Podemos calcular p(x) e p (x) simultaneamente numa mesma tabela. Ilustramos no caso
geral:
an an1 an2 a2 a1 a0
x bn x bn1 x b3 x b2 x b1 x
bn b x+a b x+a b3 x + a2 b2 x + a1 b1 x + a0
|n {z n1} |n1 {z n2} | {z } | {z } | {z }
bn1 bn2 b2 b1 b0 =p(x)
x cn x cn1 x c3 x c2 x
cn cn x + bn1 cn1 x + bn2 c3 x + b2 c2 x + b1
| {z } | {z } | {z } | {z }
cn1 cn2 c2 c1 =p (x)
Exemplo 3.13.6
Vamos avaliar p(3.5) e p (3.5) onde p(x) = x3 6x2 +11x6 utilizando o dispositivo prtico.
D. Andrade Clculo Numrico 62
1 6 11 6
3.5 3.5 8.75 7.875
1 2.5 2.25 1.875 = p(3.5)
3.5 3.5 3.5
1 1.0 5.75 = p (3.5)
Repetindo com x = 3.17, temos
1 6 11 6
3.17 3.17 8.97 6.4351
1 2.83 2.0325 0.4351 = p(3.17)
3.17 3.17 1.0778
1 0.34 3.1103 = p (3.17)
Querendo empregar o mtodo de Newton-Raphson para o polinmio p(x) = x3 6x2 +
11x 6 com x0 = 3.5, obtemos
p(x0 ) 1.875
x1 = x0
= 3.5 3.17
p (x0 ) 5.75
p(x1 ) 0.4351
x2 = x1
= 3.17 3.030.
p (x1 ) 3.1103
Note que x = 3 uma raiz do polinmio.
Exerccio 3.13.7
1. Usando o mtodo de Newton, determine o menor x positivo, com erro relativo
inferior a 102 , tal que a matriz abaixo seja singular
x 31 x
1 x 0
x 9 6
0 1 2 3 4
x
7. A equao ( x2 sin x)2 = 0 tem uma raiz positiva com multiplicidade 2 no intervalo
[1, 2]. Use o Mtodo de Newton-Raphson modificado para determinar esta raiz com
5 casas decimais exatas.
8. Verifique que a equao x3 x + 2 9 3 = 0 tem a = 33 como raiz de multiplicidade 2.
Use o mtodo de Newton-Raphson modificado para obter uma aproximao para
a com 3 casas decimais exatas.
1. O mtodo da bisseco;
65
D. Andrade Clculo Numrico 66
(0)
A fim de eliminar os elementos ak1 , k = 2, 3, ..., n realizamos as seguintes operaes
elementares sobre as linhas
Lk Lk mk1 L1 , k = 2, 3, ..., n.
(1)
Aps essa etapa obtemos a matriz A(1) cujos elementos so denotados por aij . Note que
(1)
os elementos ak1 = 0, k = 2, 3, ..., n.
(1)
A fim de eliminar os elementos ak2 , k = 3, ..., n precisaremos nessa etapa dos multipli-
cadores
(1)
ak2
mk2 = (1)
, k = 3, .., n
a22
e realizamos as seguintes operaes
Lk Lk mk2 L2 , k = 3, ..., n.
(2)
Aps essa operao obtemos a matriz A(2) cujos elementos so denotados por aij . Note
(2)
que ak2 = 0, k = 3, ..., n.
Continuando esse procedimento, ao final da (n 1)-sima etapa obteremos uma matriz
triangular superior dada por
(n1) (n1) (n1) (n1) (n1) (n1)
a11 a12 a13 ..... a1n ...... a1m b1
(n1) (n1) (n1) (n1) (n1)
0 a22 a23 ...... a2n ...... a2m b2
(n1) (n1) (n1) (n1)
A(n1) = 0 0 a33 ...... a3n ...... a3m b3
0 0 0 ..... ... ...... ... ...
... ... ... ..... ... ...... ... ...
(n1) (n1) (n1)
0 0 0 ...... ann ...... anm bn
O sistema original equivalente ao sistema triangular superior obtido ao final desse
processo. Ambos os sistemas possuem o mesmo conjunto soluo. Assim, o conjunto
soluo do sistema original a exatamente o conjunto soluo do sistema triangular
superior que pode ser obtido por substituio inversa.
Note que um sistema triangular superior
a11 x1 + a12 x2 + a13 x3 + + a1n xn = b1
a22 x2 + a23 x3 + + a2n xn = b2
a33 x3 + + a3n xn = b3
=
ann xn = bn
D. Andrade Clculo Numrico 68
Exemplo 4.2.1
10x + 5y + 2z + 1w = 1
2x + 8y 2z + 1w = 2
4x + 5y + 20z + 1w = 3
2x 3y + 22z + 2w = 1
2 3 22 2 1
Os multiplicadores so
2
m21 = = 0.2,
10
4
m31 = = 0.4,
10
2
m41 = = 0.2.
10
As operaes elementares para anular as entradas de posio a21 , a31 , a41 so as seguintes:
2
L2 L2 m21 L1 = L2 L1 ,
10
4
L3 L3 m31 L1 = L3 L1 ,
10
2
L4 L4 m41 L1 = L4 L1 .
10
Aps essas operaes teremos a seguinte matriz A(1)
10 5 2 1 1
0 7 2.4 0.8 1.8
A(1) =
0 3 19.20 0.6 2.6
L4 L4 m43 L3 = L4 L3 .
10x + 5y + 2z + 1w = 1
7y 2.4z + 0.8w = 1.8
20.2286z + 0.25714w = 1.82857
2w = 0
w = 0
1.82857 0.25714w
z = = 0.090395
20.2286
1.8 + 2.4z 0.8w
y = = 0.288136
7
1 5y + 2z w
x = = 0.0621469
10
D. Andrade Clculo Numrico 71
Resumo:
(k)
Em cada passo k denotamos por A(k) = (aij ) a matriz obtida aps este passo.
Os passos so os seguintes:
ak1
Passo 1: eliminar ak1 , k = 2, 3, . . . , n, utilizando os multiplicadores mk1 = , k = 2, 3, . . . , n
a11
obtendo a matriz A(1)
(1)
Passo 2: eliminar na matriz A(1) , os elementos ak2 , k = 3, 4, . . . , n utilizando os multipli-
(1)
a
cadores mk2 = k2(1)
, k = 3, . . . , n.
a22
Prosseguindo at atingir o passo (n 1) cujo objetivo eliminar an,n1
(1) (2) (n1)
Os elementos a11 , a22 , a33 , . . . , ann so chamados de pivot e os nmeros
(k1)
aki
mki = (k1)
, k = 1, 2, . . . , n 1, i = k + 1, . . . , n (4.2.1)
akk
so chamados de multiplicadores.
> restart:
> with(linalg):
> subinversa:=pro
(a)
lo
al n, x, i, j, t, soma:
n:=rowdim(a): # dimenso do espao linhas.
# Teste para sistema triangular.
for i from 2 to n do
for j from 1 to i-1 do
if a[i,j<>0 then ERROR(`Este sistema no triangular superior`) fi
od:
od:
# Substituio inversa.
x[n:=a[n,n+1/a[n,n:
for j from 1 to n-1 do
D. Andrade Clculo Numrico 72
soma:=0:
for t from n-j+1 to n do
soma:=soma+a[n-j,t*x[t:
od:
x[n-j:=(a[n-j,n+1-soma)/a[n-j,n-j:
od:
# Es
revendo vetor soluo.
ve
tor( [seq(x[s, s=1..n) ):
end:
## Exemplo
> A:=matrix([ [2,1,3,2, [0,3,-5,8 , [0,0,2,-2 );
> subinversa(A);
A estratgia de pivoteamento parcial consiste em tomar para pivot o maior elemento (em
mdulo) dentre os elementos da coluna que ainda atuam no processo. No pivotea-
mento completo ou total, toma-se, em cada passo, como pivot o maior elemento (em m-
dulo) dentre os elementos da matriz que ainda atuam no processo de eliminao
de Gauss. O pivoteamento completo pouco utilizado, pois envolve muitas comparaes
que o torna computacionalmente trabalhoso, consumindo tempo e memria da mquina.
Pode-se provar que as estratgias de pivoteamento parcial e pivoteamento completo min-
imizam erros.
Para ilustrar essa tcnica, vejamos um exemplo em que a estratgia de pivoteamente no
D. Andrade Clculo Numrico 73
0.0001x 1y = 0.9999
1.4142x + y = 2.4142
cuja soluo x = y = 1.
Esse exemplo simples mostra a necessidade da utilizao de estratgias de pivoteamento.
x1 + x2 + 3x4 = 4,
x2 x3 5x4 = 7,
3x3 + 13x4 = 13,
13x4 = 13
x1 + x2 + 3x4 = 4,
2x1 x2 x3 + x4 = 1,
3x1 x2 x3 + 2x4 = 3,
x1 + 2x2 + 3x3 x4 = 4.
> EGauss_pivot :=
pro
(A,b)
lo
al i,j,k,n,pivot,ind_pivot,ratio,x,Ab;
# i,j,k so indi
es.
# n a dimenso da matriz.
# pivot o pivot.
# ind_pivot o ndi
e da linha que
ontm o pivot.
# ratio - usado para armazenar a razo entre dois elementos da matriz
# quando realizar a eliminao.
# Ab a matriz aumentada.
n := rowdim(A);
D. Andrade Clculo Numrico 75
Ab := augment(A,b);
for i from 1 to n do
pivot := abs(Ab[i,i);
ind_pivot := i;
for j from i+1 to n do
if (abs(Ab[j,i) > pivot) then
pivot := abs(Ab[j,i);
ind_pivot := j;
fi;
od;
if (pivot = 0) then
#Todos os elementos abaixo RETURN(`Matriz singular`); #da linha
atual so nulos.
fi;
if (ind_pivot <> i) then #devemos tro
ar as linhas.
tro
a(Ab,i,ind_pivot); #tro
a linhas.
fi;
# Eliminao dos elementos na
oluna i de todas as linhas
# abaixo do atual.
for j from i+1 to n do
ratio := Ab[j,i/Ab[i,i;
for k from i to n+1 do
Ab[j,k := Ab[j,k - ratio*Ab[i,k;
od;
od;
od;
# a matriz agora triangular superior e podemos
al
ular
# a soluo por substituio inversa
x := ve
tor(n);
for i from n by -1 to 1 do
x[i := Ab[i,n+1;
for j from i+1 to n do
x[i := x[i - Ab[i,j*x[j;
od;
x[i := x[i/Ab[i,i;
od;
print(`Matriz aumentada reduzida a triangular superior `,
D. Andrade Clculo Numrico 76
`:`, Ab);
print(`A soluo :`, x);
end:
#Exemplo
> A := matrix(3,3,[[-1.414214,2,0,[1,-1.414214,1,[0,2,-1.414214);
> b := ve
tor(3,[1,1,1);
> z := EGauss_pivot(A,b);
4.6 Decomposio LU
A decomposio LU uma variante do mtodo de eliminao de Gauss. Dizemos que
uma matriz Ann admite uma decomposio LU, se existem matrizes L e U, triangulares
inferior e superior, respectivamente, tais que A = LU. Conhecer a decomposio em LU
de uma matriz A til e facilita na resoluo de sistemas de equaes lineares Ax = b.
Esta a grande utilidade dos mtodos de decomposio ou fatorao.
Vejamos como isso acontece, muito simples.
Suponha que desejamos obter a soluo do sistema de equaes lineares Ax = b, mas
sabendo que A se fatora como A = LU. Ento resolvemos dois sistemas de equaes
lineares mais simples:
Ly = b (4.6.2)
Ux = y. (4.6.3)
Note que o sistema (4.6.2) simples (pois um sistema triangular inferior) e o sistema
(4.6.3) tambm simples (pois um sistema triangular superior). Para a soluo do sis-
tema (4.6.2) usamos substituio direta, enquanto que para a soluo do sistema (4.6.3)
usamos substituio inversa.
Como saber se uma matriz admite decomposio LU? Para responder a essa questo
precisamos de alguns conceitos.
Dizemos que uma matriz Ann diagonalmente dominante se
n
X
|aii | |aij |, i = 1, 2, .., n.
j=1,j6=i
n
X
|aii | > |aij |, i = 1, 2, .., n.
j=1,j6=i
Teorema 4.6.1 Toda matriz estritamente diagonalmente dominante tem inversa. Alm
disso, o processo de eliminao de Gauss pode ser realizado sem a necessidade de permu-
tao de linhas ou colunas.
Lembramos que a cada operao elementar sobre as linhas de uma matriz A, corresponde
uma matriz chamada elementar E tal que EA o resultado desta operao. A matriz
elementar E obtida da matriz identidade realizando sobre ela a mesma operao ele-
mentar realizada sobre a matriz A.
No mtodo de eliminao de Gauss, realizamos operaes elementares sobre a matriz
A com o objetivo de triangulariz-la, obtendo em cada passo as matrizes
Teorema 4.6.2 Se o mtodo de eliminao de Gauss pode ser realizado sobre Ann sem
trocas de linhas ou colunas, ento A pode ser escrita como A = LU, onde L = (mij )
triangular inferior com mii = 1, e U = (uij ) em que U = A(n1) matriz triangular superior.
D. Andrade Clculo Numrico 78
Teorema 4.6.3 Se Ann uma matriz com todos os determinantes de suas submatrizes
principais diferentes de zero, ento, existe uma nica matriz triangular inferior L = (mij )
(estes so os multiplicadores dados em (4.2.1)) com mii = 1, e uma matriz triangular
superior U = (uij ) em que U = A(n1) tal que A = LU.
Suponha que a decomposio seja vlida para toda matriz at ordem k = n 1 que tenha
subdeterminantes
principais
no nulos, isto , An1 =Ln1 Un1 .
An1 s Ln1 0 Un1 y
Seja A = e de modo anlogo sejam L = eU = .
r ann x 1 0 unn
Ln1 Un1 Lk1 y
O produto LU = deve ser igual a A. Isso s possvel se,
xUn1 xy + unn
Como An1 = Ln1 Un1 por hiptese e Ln1 , Un1 so no-singulares, ento temos
y = L1
k1 s
1
x = rUn1
unn = ann xy.
x1 + x2 + 3x4 = 4,
2x1 + x2 x3 5x4 = 7,
3x1 x2 x3 + 2x4 = 3,
x1 + 2x2 + 3x3 x4 = 4.
1 2 0 2
L[j,i := razao;
for k from i to n do
U[j,k := U[j,k - razao*U[i,k;
od;
od;
od;
print(`A matriz L :`, L);
print(`A matriz U :`, U);
end:
#exemplo
> A := matrix(3,3,[[3,2,1,[1,-1,-1,[4,-3,-3);
> LU(A,L,U);
O seguinte resultado d um critrio que ajuda a decidir se uma matriz positiva definida.
Teorema 4.8.1 (a) Se Ann uma matriz simtrica, ento A possui n autovalores reais e
n autovetores ortonormais.
(b) Uma matriz simtrica A definida positiva se, e somente se, seus autovalores so reais
e positivos.
(c) Uma matriz simtrica A definida positiva se, e somente se, cada uma de suas sub-
matrizes principais tm determinante positivo.
(d) Uma matriz simtrica A definida positiva se, e somente se, o processo de elimi-
nao de Gauss pode ser realizado sem permutao de linhas ou colunas e tem todos os
elementos pivots positivos.
Teorema 4.8.2 (Cholesky) Uma matriz simtrica A definida positiva se, e somente
se, pode ser fatorada como LLT , onde L uma matriz triangular inferior com elementos
positivos na diagonal.
Como obter a matriz L do mtodo de Cholesky? Tomemos uma matriz simtrica e impo-
mos que ela se decomponha como LLt .
a11 a21 ... an1 l11 0 0 0 ... 0 l11 l21 ... lk1 ... ln1
a21 a22 ... an2 l21 l22 0 0 ... 0 0 l22 ... lk2 ... ... ln2
. .. .. ..
. . .. .. .
. .. . 0 .. 0 0 0 ... ... ... ...
. . . .
=
ak1 ak2 ... akn lk1 lk2 ... lkk ... 0 0. 0 ... lkk ... ... lnk
. .. .. .. . .. .. .. .. .. .. .. .. .. ..
.. . . . .. . . . . 0 . . . . . .
an1 an2 ... ann ln1 ln2 .. lnk ... lnn 0 0 ... 0 0 lnn
A maneira mais prtica para obter os coeficientes (lij ) comeando pela primeira coluna,
depois para a a segunda coluna e assim por diante.
Coluna 1: (aj1 ). Efetuando o produto acima obtemos:
2
a11 l11
a21 l21 l11
.. = ..
. .
an1 ln1 l11
ento
l11 = a11
aj1
lj1 = , j = 2, 3, ..., n
l11
D. Andrade Clculo Numrico 83
Passo 4: Seja
i1
! 21
X
2
lii = aii lik
k=1
2 2 2
1
l44 = 30 l41 l42 l43 2
= 30 16 4 1 = 9=3
i = 4 e passo 5: para j = 5 calcule
P
aji i1 l l
k=1 jk ik
lji =
lii
P3
a54 k=1 l5k l4k
l54 =
l44
(11 l51 l41 l52 l42 l53 l43 ) (11 4 2 + 1)
l54 = = =2
3 3
Passo 6: calcule
4
! 21
X
2
l55 = a55 l5k
k=1
2 2 2 2
21
l55 = 23 l51 l52 l53 l54 = 23 7 = 16 = 4
Logo, a matriz L
D. Andrade Clculo Numrico 87
2
0 0 0 0
2 0 0 0
1
L= 2 1 0 0
1
2 1 3 0
4
1
1 1 2 4
1
2
Para resolver o sistema Ax = b, onde b =
1 utilizando a decomposio Cholesky
2
3
acima determinada, bastaria resolver os seguintes sistemas lineares Ly = b e LT x = y
para obter a soluo
x4 = 0.100694444444, x5 = 0.067708333333.
> restart:with(linalg):
> Cholesky:=pro
(a)
lo
al i, j, k, s, t, n, soma,
, x, y:
n:=rowdim(a):
D. Andrade Clculo Numrico 88
soma:=0:
for t from 1 to s-1 do
soma:=soma+
[s,t*y[t:
od:
y[s:=(a[s,n+1-soma)/
[s,s:
od:
# Resolvendo C^Tx=y por substituio inversa.
x:=ve
tor(n):
x[n:=y[n/
[n,n:
for s from 1 to n-1 do
soma:=0:
for t from n-s+1 to n do
soma:=soma+
[t,n-s*x[t:
od:
x[n-s:=(y[n-s-soma)/
[n-s,n-s:
od:
# Es
revendo a soluo x.
print(`a soluo : `,op(x)):
fi:
end:
#Exemplos
> A:=matrix([[1, 2, 3, [2, 5, 7, [3, 7, 26);Cholesky(A);
4. Use o mtodo de Cholesky para decompor a matriz A como um produto LLt , onde
L triangular inferior,
4 1 1
A = 1 4.25 2.75
1 2.75 3.75
2. Estratgia de pivoteamento;
91
D. Andrade Clculo Numrico 92
Exemplo 5.2.1
Consideremos o sistema de equaes lineares a seguir:
10x1 + 5x2 + 3x3 + x4 = 6
2x + 10x 4x 3x = 5
1 2 3 4
x1 + 3x2 10x3 + 5x4 = 2
5x1 + x2 + 3x3 + 10x4 = 3.
Isolando cada uma das incgnitas, temos
x1 = 0.6 0.5x2 0.3x3 0.1x4
x2 = 0.5 0.2x1 + 0.4x3 + 0.3x4
x3 = 0.2 + 0.1x1 + 0.3x2 + 0.5x4
x4 = 0.3 + 0.5x1 0.1x2 0.3x3 .
Pelo mtodo de Gauss-Jacobi, podemos escrever as iteraes
(k+1) (k) (k) (k)
x1 = 0.6 0.5x2 0.3x3 0.1x4
(k+1) (k) (k) (k)
x2 = 0.5 0.2x1 + 0.4x3 + 0.3x4
(k+1) (k) (k) (k)
x3 = 0.2 + 0.1x1 + 0.3x2 + 0.5x4
(k+1) (k) (k) (k)
x4 = 0.3 + 0.5x1 0.1x2 0.3x3 .
D. Andrade Clculo Numrico 94
Assim, obtemos uma nova aproximao x(1) = (0.6, 0.5, 0.2, 0.3) que dever ser usada no
passo seguinte para obter:
(2) (1) (1) (1)
x1 = 0.6 0.5x2 0.3x3 0.1x4 = 0.38
(2) (1) (1) (1)
x2 = 0.5 0.2x1 + 0.4x3 + 0.3x4 = 0.39
(2) (1) (1) (1)
x3 = 0.2 + 0.1x1 + 0.3x2 + 0.5x4 = 0.16
(2) (1) (1) (1)
x4 = 0.3 + 0.5x1 0.1x2 0.3x3 = 0.61.
e
= max{1 , 2 , . . . , n }.
Se < 1 ento, para qualquer aproximao inicial x(0) , o mtodo de Gauss-Jacobi gera
uma sequncia de aproximaes (x(k) ) que converge para a nica soluo do sistema in-
dependente da aproximao inicial dada x(0) .
D. Andrade Clculo Numrico 95
Exemplo 5.2.3 Vamos utilizar o critrio de linhas para estudar a convergncia do sis-
tema abaixo.
10 5 3 1 x1 6
2 10 4 3 x2 5
=
1 3 10 5 x3 2
5 1 3 10 x4 3
Temos que
5+3+1
1 = = 0.9
10
2+4+3
2 = = 0.9
10
1+3+5
3 = = 0.9
10
5+1+3
4 = = 0.9
10
= 0.9 < 1.
Como < 1 segue que o mtodo de Gauss-Jacobi gera uma sequncia de vetores x(k) que
converge para a soluo do sistema independentemente da aproximao inicial x(0) .
D. Andrade Clculo Numrico 96
Em alguns casos podemos efetuar operaes sobre as linhas ou colunas de uma matriz
de modo que assuma uma nova configurao que satisfaz ao critrio de linhas. Como
exemplo, considere a matriz abaixo, note que ela no satisfaz ao critrio de linhas.
2 1 10
A = 1 8 2
4 2 1
x = T x + c.
Exemplo 5.3.1
D. Andrade Clculo Numrico 97
Para um sistema geral de equaes lineares, supondo que os elementos da diagonal aii 6=
0, i = 1, 2, . . . , n temos o seguinte esquema (ateno para as iteraes):
Exemplo 5.3.2
1
1 = [2 + 0 + 1] = 0.3
10
1
2 = [5 0.3 + 1 + 0] = 0.25
10
1
3 = [0 0.3 + 1 0.25 + 1] = 0.3125
4
1
4 = [0 0.3 + 0 0.25 + 1 0.3125] = 0.05283
6
Consideremos a matriz
1 3 6
A= 7 1 2
2 8 3
Essa matriz no satisfaz ao critrio de Sassenfeld. Mas trocando linha 1 com a linha 2 e
em seguida a linha 2 com a linha 3, obtemos
7 1 2
B= 2 8 3
1 3 6
que satisfaz ao critrio de Sassenfeld. Verifique.
Para os dois prximos resultados, podemos supor que a matriz A do sistema linear Ax = b
possui elementos da diagonal no nulos e iguais a 1.
Teorema 5.3.5 (Critrio de Sassenfeld) Seja A = (aij ) uma matriz quadrada de or-
dem n. Sejam i , i = 1, 2, . . . , n dados por
n
X
1 = |a1j |,
j=2
i1
X n
X
i = |aij |j + |aij |.
j=1 j=i+1
n
X
(m+1) (m)
y1 = a1j yj
j=2
i1
X n
X
(m+1) (m+1) (m)
yi = aij yj + aij yj , i = 2, . . . , n.
j=1 j=i+1
Donde,
(m+1) (m)
|yi | i max |yj |, i = 2, . . . , n.
1jn
Existe uma relao entre o critrio de linhas e o critrio de Sassenfeld. Essa relao
demonstrada no teorema 5.3.6 cujo enunciado dado a seguir:
Teorema 5.3.6 Se uma matriz A satisfaz ao critrio de linhas, ento ela tambm satisfaz
ao ao critrio de Sassenfeld.
Exemplo 5.3.7
A matriz
3 0 1
A=
1 1 0
3 1 62
fcil verificar no satisfaz ao critrio de linha; mas satisfaz ao critrio de Sassenfeld.
Verifique.
Exemplos de Normas em Rn
(a) Norma 2 ou norma Euclidiana: dado x = (xi ) Rn definimos
v
u n
uX
kxk2 = t x2i .
i=1
Demonstrao: Exerccio.
Agora vamos introduzir a noo de norma de matriz. Seja Mn o espao vetorial de todas
as matrizes quadradas de ordem n.
Uma norma de matriz uma funo, denotada por k k, que satisfaz
(a) kAk 0 para todo A Mn ,
(b) kAk = 0 se, e somente se, A = 0,
(c) kAk = ||kAk, para todo R e A Mn ,
(d) kA + Bk kAk + kBk, A, B Mn .
(e) kABk kAk kBk.
A noo de norma induz a noo de distncia: a distncia entre as matrizes A e B dada
por kA Bk.
O seguinte resultado apresenta vrios exemplos de norma de matrizes.
Considerando uma norma de vetores k.k, os critrios de parada mais utilizados nos mto-
dos de Gauss-Jacobi e Gauss-Seidel so:
kx(k+1) x(k) k
(b) < (erro relativo).
kx(k+1) k
D. Andrade Clculo Numrico 105
Exerccio 5.4.3
na forma
x = Tx + c
e use o mtodo de Gauss-Jacobi para obter uma soluo aproximada, use como
critrio de parada
kxk+1 xk k
< 103 .
kxk+1 k
Seja
n
X
K = max |cjk |.
j
k=1
Ento, o sistema admite uma nica soluo. Alm disso, dado qualquer aproximao
inicial x(0) , a sequncia gerada por
x(m+1) = T x(m) + c, m 0
Este esquema sugerido pela resoluo da i-sima equao para xi , no difcil verificar
que
X aij bi
xi = xj + , i = 1, 2, . . . , n.
j=1,j6=i
aii aii
Outra forma mais imediata de obtermos esse mtodo trabalhando matricialmente. Seja
D a matriz diagonal composta pela diagonal de A, ento
Ax = b (A D + D)x = b (A D)x + Dx = b
Dx = b (A D)x
x = D 1 [b (A D)x]
x = D 1 b D 1 (A D)x.
Se
= max{1 , 2 , . . . , n } < 1,
ento para qualquer aproximao inicial x(0) o mtodo de Gauss-Jacobi gera uma sequn-
cia de aproximaes (x(k) ) que converge para a soluo do sistema.
D. Andrade Clculo Numrico 109
x(m+1) = T x(m) + c.
Ou de outra forma: A = D L U,
Ax = b
(D L U)x = b
(D L)x = Ux + b
1
D (D L)x = D 1 Ux + D 1 b
(I D 1 L)x = D 1 Ux + D 1 b
(I D 1 L)x(k+1) = D 1 Ux(k) + D 1 b
x(k+1) = D 1 Lx(k+1) + D 1 Ux(k) + D 1 b.
1. Mtodo de Gauss-Jacobi;
2. Mtodo de Gauss-Seidel;
3. O critrio de linhas;
D. Andrade Clculo Numrico 112
4. O critrio de Sassenfeld.
Sistemas de equaes no lineares
6
6.1 Introduo
O objetivo desse captulo estender o mtodo de Newton-Raphson para sistemas de
equaes no lineares. Deduzimos um caso particular importante do mtodo de Newton
para sistemas de duas equaes. Ao final do captulo sugerimos um procedimento em
Maple para o mtodo de Newton.
113
D. Andrade Clculo Numrico 114
y2
Exemplo 6.2.1 Considere F (x, y) = (x2 + y 2 2, x2 1) definida em todo R2 . A
9
equao F (x, y) = 0 pode ser reescrita como
x2 + y 2 2 = 0,
2
x2 y 1 = 0.
9
Geometricamente, resolver esse sistema de equaes no lineares, significa determinar
onde a circunferncia e a parbola de intesectam. Veja a figura 6.2.1.
-2 -1 0 1 2
x
-2
-4
sistema lineares so um caso particular importante, como vimos, existem vrios mtodos
diretos e iterativos para obter numericamente a soluo. No caso geral, a no linearidade
de F um fator complicador para resolver a equao F (X) = 0.
Na prtica evitamos (6.2.2), pois esta escolha tem a necessidade de calcular a inversa de
F (X (k) ).
D. Andrade Clculo Numrico 116
5
4
3
y
2
1
-4 -2 0 2x 4
-1
-2
-3
Ou equivalentemente,
f gy gfy
x (k+1)
=x (k)
, k0 (6.3.7)
fx gy gx fy
D. Andrade Clculo Numrico 118
gfx f gx
y (k+1)
=y (k)
, k0 (6.3.8)
fx gy gx fy
em que as funes entre colchetes so aplicadas em (x(k) , y (k)).
Uma das aplicaes mais importantes para sistemas de equaes no lineares a duas
dimenses consiste em determinar razes complexas de uma equao f (z) = 0. Note que
denotando z = x + iy podemos escrever f (x, y) = u(x, y) + iv(x, y) = 0 se, e somente se,
(
u(x, y) = 0
v(x, y) = 0.
(7) (7)
Note que F (x1 , x2 ) = (.23 107 , .119 107 ). Veja a figura 6.3.1.
Exerccio 6.3.2
5
4
3
y
2
1
-4 -2 0 2x 4
-1
-2
-3
(
3x2 y y 3 = 4
(b) aprox. inicial (2.0; 2.5)
x2 + xy 3 9 = 0.
(
x2 + y 2 1 = 0
(c) 2 2 1
aprox. inicial (x0 , y 0 ) = (1.0, 3.0)
x y 2 = 0.
> NR_n :=
> pro
(f,x,x0,n)
> lo
al i,j,k,m,xn,z,fxn,Jf,Jxn;
> # i,j,k indi
es
> # m numero de eqs nao lineares.
> # xn Solu
ao aproximada de f(x)=0 aps m iteraes
> #
om
ondio in
ial x0.
> # z varivel usada no mtodo.
> # fxn Este vetor
ontm os valores de -f(xn).
> # Jf Ja
obiano de f num ponto genri
o x.
> # Jxn Ja
obiano avaliado em x_n, J(x_n)
> #
> m := ve
tdim(f);
> # Initializa
om a
ondio ini
ial x0.
> xn := x0;
> # Cal
ula o Ja
obiano em um ponto genri
o x.
> Jf := ja
obian(f,x);
> # Iterao de Newton
> for j from 1 to n do
> # Cal
ula o Ja
obiano em xn.
> Jxn := map( a -> subs(seq(x[i=xn[i,i=1..m),a),Jf);
> # Cal
ula a funo no ponto xn.
> fxn := map( a -> subs(seq(x[i=xn[i,i=1..m),a),f);
> # Resolve a equao J(x_n) z = -f(x_n).
> z := linsolve(Jxn,evalm(-fxn));
> xn := evalm(xn + z);
> print(xn); od;
> end:
>###Exemplo
> x := ve
tor(2):
> f := ve
tor(2,[x[2-x[1^2,x[1-x[1*x[2+1);
> x0 := ve
tor(2,[1.5,1.5);
> NR_n(f,x,x0,10);
D. Andrade Clculo Numrico 121
122
D. Andrade Clculo Numrico 123
A demonstrao deste resultado pode ser obtida em qualquer livro de Clculo ou intro-
duo Anlise.
Ou resumidamente,
n
Y x xi
Lk (x) = , k = 0, 1, . . . , n. (7.3.3)
i=0,i6=k
xk xi
(1i) Lk (xk ) = 1,
(2i) Lk (xj ) = 0, se j 6= k,
(3i) Lk (x) um polinmio de grau n.
Exemplo 7.3.2
Usando o mtodo de Lagrange para determinar o polinmio que interpola os pontos
xk -1 0 1 2
yk 0 1 2 7
obtemos
(x x1 )(x x2 )(x x3 ) x(x 1)(x 2)
L0 (x) = =
(x0 x1 )(x0 x2 )(x0 x3 ) 6
(x x0 )(x x2 )(x x3 ) (x + 1)(x 1)(x 2)
L1 (x) = =
(x1 x0 )(x1 x2 )(x1 x3 ) 2
(x x0 )(x x1 )(x x3 ) (x + 1)x(x 2)
L2 (x) = =
(x2 x0 )(x2 x1 )(x2 x3 ) 2
(x x0 )(x x1 )(x x2 ) (x + 1)x(x 1)
L3 (x) = = .
(x3 x0 )(x3 x1 )(x3 x2 ) 6
Segue que o polinmio interpolador dado por p(x) = y0 L0 (x) + y1 L1 (x) + y2 L2 (x) +
y3 L3 (x) = 23 x3 + 13 x + 1
D. Andrade Clculo Numrico 126
Exemplo 7.3.3
3.5
2.5
1.5
0.5
0 1 2 3 4
x
fcil ver que g C (n+1) [a, b], pois f tem esta propriedade, alm disso g(xk ) = 0 para
todo k = 0, 1, . . . , n. Notemos tambm que g(x) = 0 e assim, g se anula em (n + 2) pontos
distintos de [a, b]. Pelo Teorema de Rolle generalizado, existe x (a, b) para o qual
g (n+1) (x ) = 0. Logo, temos
n
(n+1) (n+1) d(n+1) Y (t xi )
g (x ) = f (x ) p(n+1)
n (x ) [f (x) pn (x)] n+1 = 0.
dt i=0
(x xi )
Como pn (x) um polinmio de grau mximo n segue que sua derivada de ordem (n + 1)
Yn
(t xi )
nula. Como um polinmio de grau (n + 1), sua derivada de ordem (n + 1)
i=0
(x xi )
constante e igual a
n
d(n+1) Y (t xi ) (n + 1)!
n+1
= Qn .
dt i=0
(x xi ) i=0 (x xi )
(n + 1)!
0 = f (n+1) (x ) [f (x) pn (x)] Qn ,
i=0 (x xi )
de onde temos n
f (n+1) (x ) Y
f (x) = pn (x) + (x xi ).
(n + 1)! i=0
Isto conclui a demonstrao do teorema.
Segue que podemos estimar o erro cometido na interpolao polinomial quando trocamos
f (x) por pn (x):
n
f (n+1) (x ) Y
En (x) = f (x) pn (x) = (x xi )
(n + 1)! i=0
(7.3.6)
Observe que a utilizao da frmula do erro na interpolao bastante restrita. De fato,
uma estimativa para o erro s possvel se conhecemos uma limitao para f (n+1) (x).
Veja a seo 7.8 para um comentrio sobre o erro e o fenmeno Runge.
Exemplo 7.3.5
D. Andrade Clculo Numrico 128
f (n+1) (x )
|En (x)| = | (x x0 )(x x1 ) . . . (x xn )|
(n + 1)!
e
|(x 0)(x 0.1) . . . (x 10)|.
11!
Se x = 0.55, obtemos
e
|En (x)| |(0.55 0)(0.55 0.1) . . . (0.55 1)|
11!
e
| 0.4796520993 107 | = 0.326638 1014 .
11!
x xk = (u k)h,
xr xs = (r s)h.
> restart:
> interpoLa:=pro
(pts) lo
al i,j,k,polin,gr1,gr2,`
he
k arguments`;
> if type(pts,`list`) = false then
ERROR(`o argumento deve ser uma lista de pontos do R^2`) fi;
> `
he
k arguments`:=(pt)-> if type(pt,`list`) = false or nops(pt) <> 2
then ERROR(`o argumento no um ponto do R^2`,pt) else pt fi;
> map(`
he
k arguments`,pts);
> polin:=sort(expand(sum(produ
t((x-pts[j[1)/(pts[i[1-pts[j[1),j=1..i-1)
*produ
t((x-pts[k[1)/(pts[i[1-pts[k[1),k=i+1..nops
(pts))*pts[i[2,i=1..nops(pts))),x);
print(polin);
gr1:=plot(polin,x=0..pts[nops(pts)[1);
> gr2:=plot(pts,style=point,symbol=
ir
le,
olor=blue);
> plots[display({gr1,gr2});
> end:
#Exemplo
> interpoLa( [ [0, 5, [1, 3, [2, 1, [3, 3, [4, -3 );
xk f [xk ] f [xk , xk+1 ] f [xk , xk+1 , xk+2 ] f [xk , xk+1 , xk+2 , xk+3 ]
x0 f [x0 ]
f [x0 , x1 ]
x1 f [x1 ] f [x0 , x1 , x2 ]
f [x1 , x2 ] f [x0 , x1 , x2 , x3 ]
x2 f [x2 ] f [x1 , x2 , x3 ]
f [x2 , x3 ]
x3 f [x3 ]
Apresentaremos agora a construo do polinmio pn (x) que interpola f (x) nos pontos
x0 , x1 , x2 , . . . , xn segundo o mtodo de Newton. A construo feita por induo, iniciamos
com o polinmio que interpola f (x) em x = x0 e assim sucessivamente, construremos
pk (x) que interpola f (x) em x0 , x1 , x2 , . . . , xk , k = 0, 1, . . . , n.
Seja, ento p0 (x) o polinmio de grau zero, que interpola f (x) em x = x0 . Segue que
p0 (x) = f [x0 ].
Para x 6= x0 e x [a, b], temos que
Chamamos de E0 (x) = f (x) p0 (x) de erro cometido ao se aproximar f (x) por p0 (x).
D. Andrade Clculo Numrico 132
donde se obtm
Assim,
p1 (x) = p0 (x) + (x x0 )f [x0 , x1 ],
e
E1 (x) = (x x0 )(x x1 )f [x0 , x1 , x].
Analogamente, obtemos
e
E2 (x) = (x x0 )(x x1 )(x x2 )f [x0 , x1 , x2 , x].
Repetindo sucessivamente o argumento acima, obtemos que
+ (x x0 )(x x1 ) (x xn )f [x0 , x1 , . . . , xn , x] .
| {z }
En (x)
Assim,
e
En (x) = (x x0 )(x x1 ) (x xn )f [x0 , x1 , . . . , xn , x].
Note que o coeficiente principal do polinmio interpolador dado por f [x0 , x1 , , xn ].
Resumindo acabamos de provar o seguinte resultado.
D. Andrade Clculo Numrico 133
Teorema 7.5.1 A forma de Newton para o polinmio pn (x) que interpola f (x) em x0 , x1 ,
x2 , . . . , xn pontos distintos, dado por
pn (x) = d0 + d1 (x x0 ) + d2 (x x0 )(x x1 ) + + dn (x x0 )(x x1 ) (x xn1 ),
onde dk so as diferenas divididas de ordem k dadas por
dk = f [x0 , x1 , x2 , . . . , xk ].
Alm disso, se f (n + 1) vezes diferencivel no intervalo [a, b] que contm os pontos xi , o
erro En (x) dado por
En (x) = f (x) pn (x) = (x x0 )(x x1 ) (x xn )f [x0 , x1 , . . . , xn , x].
(2i) Sendo f (x) uma funo n vezes diferencivel num intervalo [a, b] que contm n + 1
pontos distintos x0 , x1 , x2 , . . . , xn , ento
f (n) ()
f [x0 , x1 , x2 , . . . , xn ] = , (7.5.8)
n!
para algum (a, b).
Vamos verificar (2i). Definindo g(x) = f (x) pn (x) temos que
g(xi ) = 0, i = 0, 1, . . . , n.
Usando o Teorema generalizado de Rolle, existe um nmero (a, b) com
g (n) () = 0.
(n) (n)
Logo, f (n) () = pn (). Como pn (x) tem grau mximo n, temos que a derivada pn (x)
constante e igual a n!f [x0 , x1 , x2 , . . . , xn ]. Disto segue o resultado.
Exemplo 7.5.2
1 2 2
5
2 7
p(x) = 1 + 1.298x + 0.84x(x 0.5) + 0.36667x(x 0.5)(x 1) + 0.11533x(x 0.5)(x 1)(x 1.5).
onde
p0 (x) = 1,
p1 (x) = (x x0 ),
p2 (x) = (x x0 )(x x1 ),
... = ...
i1
Y
pi (x) = (x x0 )(x 1) (x xi1 ) = (x xj ),
j=0
... = ...
n1
Y
pn (x) = (x x0 )(x 1) (x xn1 ) = (x xj ).
j=0
Pn (x0 ) = d0 p0 (x0 ) = y0 ,
Pn (x1 ) = d0 p0 (x1 ) + d1 p1 (x1 ) = y1 ,
Pn (x2 ) = d0 p0 (x2 ) + d1 p1 (x2 ) + d2 p2 (x2 ) = y2 ,
Pn (x3 ) = d0 p0 (x3 ) + d1 p1 (x3 ) + d2 p2 (x3 ) + d3 p3 (x3 ) = y3 ,
... = ...
Pn (xn ) = d0 p0 (xn ) + d1 p1 (xn ) + d2 p2 (x2 ) + dn pn (xn ) = yn ,
d0 = y0
d1 = f [x0 , x1 ]
.. .
. = ..
di = f [x0 , x1 , . . . , xi ]
.. .
. = ..
dn = f [x0 , x1 , . . . , xn ].
> restart:
> Newtondd:=pro
(X,FXin,n) lo
al FX,i,j,pol,mult;
FX:=FXin; for i from 1 to n-1
do print(FX[i..n,` ordem`,i-1);
for j from n by -1 to i+1
do FX[j := (FX[j - FX[j-1)/(X[j-X[j-i);
od; od; print(FX[n..n,` ordem`,i-1);
pol:=FX[1; mult:=1; for i from 2 to n
do mult:=mult*(x-X[i-1);
pol:=pol+mult*FX[i; od;
print(evalm(FX));print(pol); end:
##Exemplo
>Newtondd([0,1,2,3,4,[5,3,1,3,-3,5,x);
D. Andrade Clculo Numrico 138
0 f (x) = f (x)
f (x) = f (x + h) f (x)
2 f (x) = (f (x))
.. .
. = ..
n
f (x) = ((n1) f (x))
k f (x0 )
f [x0 , x1 , . . . , xk ] = .
k!hk
Demonstrao: A prova por induo. Se k = 1, temos
Usando a notao
s s s(s 1) (s (r 1))
= 1, = ,r 1
0 r r!
o polinmio pode ser escrito como
n
X n
X
s r s
pn (s) = f (x0 ) = f (x0 ) + r f (x0 ).
r r
r=0 r=1
para obter
f (n+1) ()
En (s) = s(s 1)(s 2)(s 3) (s n)hn+1 ,
(n + 1)!
onde (0, n).
7.7 Exemplos
Construa a tabela de diferenas ordinrias dos seguintes pontos, onde f (x) = x.
xk 0 f 1 f 2 f 3 f 4 f
2.0 1.414214
0.034924
2.1 1.449138 0.000822
0.034102 0.000055
2.2 1.483240 0.000767 0.000005
0.033335 0.00005
2.3 1.516575 0.000717
0.032618
2.4 1.549193
D. Andrade Clculo Numrico 141
x x0
Chamando = , da tabela temos que,
h
2 f (x0 ) 3 f (x0 )
p4 () = 1.414214 + f (x0 ) + ( 1) + ( 1)( 2)
2! 3!
4 f (x0 )
+( 1)( 2)( 3) .
4!
Dado x = 2.15 temos que = 2.152.0
0.1
= 1.5, assim temos sucessivamente:
2 f (x0 )
p2 () = 1.414214 + f (x0 ) + ( 1)
2!
0.000822
1.4666 1.5 0.5 1.466292.
2
2 f (x0 ) 3 f (x0 )
p3 () = 1.414214 + f (x0 ) + ( 1) + ( 1)( 2)
2! 3!
1.5 0.5 (0.5) 0.000055
= p2 (1.5) + 1.466288.
6
E finalmente,
p4 () 1.466288.
Comparando os valores obtidos com 2.15 1.4662878 temos a seguinte tabela
ou na varivel
1
E4 () max{|( 1)( 2)( 3)( 4)f (5) (); [0, 4]|},
(n + 1)!
x x0
onde = .
h
As derivadas da funo x so dadas por
1
f (1) (x) = 1/2 , f (2) (x) = 1/4 x3/2 , f (3) (x) = 3/8 x5/2
x
15 7/2 (5) 105 9/2
f (4) (x) =
x , f (x) = x
16 32
Para estimar os erros precisamos estudar os mximos das funes f (2) , f (3) , f (4) , f (5) , no
intervalo [2, 2.4]
Os valores mximos para os erros so (dez dgitos e arredondamento):
|E1 (x)| 0.11 103
|E2 (x)| 0.4 105
|E3 (x)| 0.2 106
|E4 (x)| 0.4 107
0.8
0.6
0.4
0.2
1
Figura 7.2: grfico de f (x) =
1 + 25x2
interpoladores de grau 6 e grau 12 que interpola f nos pontos (xi , f (xi )). Vemos que a
medida que aumentamos o grau do polinmio, o erro aumenta nas regies dos extremos
do intervalo. Repare o comportamento do polinomio interpolador na regio dos extremos
do intervalo.
1
x
1 0.8 0.6 0.4 0.2 0.2 0.4 0.6 0.8 1
0.8 0
0.6
1
0.4
2
0.2
Para evitar o fenmeno Runge podemos considerar outro enfoque como por exemplo, con-
siderar pontos no igualmente espaados juntamente com polinmios ortogonais, splines
ou aproximao por mnimos quadrados.
Exerccio 7.8.1
3. Os dados dos dois exerccios anteriores foram gerados pelas funes f (x) = x ln(x)
e f (x) = x cos(x) 2x2 + 3x 1, respectivamente. Use a frmula do erro para
encontrar uma limitao.
4. Use polinmio interpolador dado pelo mtodo de Newton de graus 1, 2 e trs para
aproximar f (1/3) se
5. Use polinmio interpolador dado pelo mtodo de Newton de graus 1, 2 e trs para
aproximar f (0.25) se
(x) = a0 + a1 x + a2 x2 + . . . + an xn .
147
D. Andrade Clculo Numrico 148
Podemos tambm considerar que f tenha comportamento exponencial ou que f tem com-
portamento de polinmio trigonomtrico.
Vamos supor que desejamos ajustar aos dados (x1 , y1 ), (x2 , y2), . . . , (xm , ym ), onde yi =
f (xi ), uma funo do tipo
(x) = 1 g1 (x) + 2 g2 (x) + . . . + n gn (x), m n,
em que as funes gi so conhecidas.
Assim, devemos determinar os coeficientes i = 1, 2, . . . , n da funo tais que
|f (xk ) (xk )|2 , k = 1, 2, . . . , m
seja mnimo. Assim, devemos minimizar a funo
m
X
E(1 , 2 , . . . , n ) = |f (xk ) (xk )|2 ,
k=1
Reescrevendo,
P
m
k=1 [f (xk ) (1 g1 (xk ) + 2 g2 (xk ) + + n gn (xk ))] g1 (xk ) = 0
P
m [f (xk ) (1 g1 (xk ) + 2 g2 (xk ) + + n gn (xk ))] g2 (xk ) = 0
k=1
.
.. .. ..
. .
Pm [f (x ) ( g (x ) + g (x ) + + g (x ))] g (x ) = 0.
k=1 k 1 1 k 2 2 k n n k n k
aij = gi gj = gj gi = aji .
D. Andrade Clculo Numrico 150
Note que se os vetores gi forem linearmente independentes, ento o sistema linear admite
uma nica soluo.
Como resolver sistemas lineares, em geral, no uma tarefa fcil, seria muito bom que
os vetores gi fossem tambm ortogonais, pois neste caso a matriz seria diagonal tornando
a soluo do sistema completamente trivial.
Exemplos
Exemplo 8.2.1 (Caso discreto linear)
Usando a teoria para o caso discreto, obtemos o seguinte sistema de equaes lineares
g1 g1 g2 g1 b f g1
= .
g1 g2 g2 g2 a f g2
onde g1 (x) = 1 e g2 (x) = x.
Calculando os produtos internos, temos
5 0 b 15
= .
0 10 a 20
Usando a teoria para o caso discreto, obtemos o seguinte sistema de equaes lineares
g1 g1 g2 g1 0 g1
= ,
g1 g2 g2 g2 1 g2
onde dada por ln(f (x)).
Calculando os produtos internos, temos
5 7.5 0 9.404
= .
7.5 11.875 1 14.422
Esta uma das mais tpicas aplicaes. Observe que se aplicarmos ln a I(x) obtemos
uma reta
(x) = ln I(x) = ln B + Ax.
Assim, devemos ajustar aos novos dados (xi , ln yi ) uma reta. Segue daqui que as funes
so g1 (x) = 1 e g2 (x) = x e devemos determinar as constantes 0 = ln B e 1 = A. Os
novos dados so
xi 1.0 1.25 1.5 1.75 2.0
ln yi 1.629240540 1.756132292 1.876406943 2.008214032 2.135349174
Usando a teoria para o caso discreto, obtemos o seguinte sistema de equaes lineares
g1 g1 g2 g1 0 g1
= ,
g1 g2 g2 g2 1 g2
onde dada por ln(f (x)).
Calculando os produtos internos, temos
5 7.5 0 9.404
= .
7.5 11.875 1 14.422
O processo de uma cicatrizao obedece lei de Carrel2 , que diz que o logaritmo da rea
lesionada decresce linearmente com o tempo. Suponha que temos uma rea lesionada
e que foi acompanhada ao longo do tempo como mostram os dados abaixo. Determine a
curva que melhor se ajusta aos dados. Veja a tabela 8.2.
Dado os pares (xi , yi ) abaixo aproxime essa funo por uma parbola,
xi -1 -0.75 -0.6 -0.5 -0.3 0 0.2 0.4 0.5 0.7 1
yi 2.05 1.153 0.45 0.4 0.5 0 0.2 0.6 0.512 1.2 2.05
conveniente organizar os dados numa tabela
> restart:
> with(stats):
> xvals:=[0,0.25,0.5,0.75,1;
> yvals:=[1,1.284,1.6487,2.117,2.7183;
> z:=fit[leastsquare[[x,y,y=a*x^2+b*x+
,{a,b,
}([xvals,yvals);
Para obter uma aproximao para y(1.7), digite
> evalf(subs(x=1.7,z));
8
1.8
1.6 6
1.4
4
1.2
2
1
0.8 3 2 1 0 1 2 3 4
0.6 2
0.4
4
0.2
3 2 1 0 1 2 3
onde (x) 0 uma funo integrvel com (x) 6 0 para todo subintervalo de [a, b].
Usando o produto interno acima definimos a norma de f C[a, b] por
p
kf k = hf, f i.
d(f, g) = kf gk,
-
f
S
D. Andrade Clculo Numrico 156
seja mnimo.
Pn Isto , os quadrados devem ser mnimos. Geometricamente, a rea abaixo
2
de [f (x) k=1 ak k (x)] deve ser mnima.
Seja " #2
Z b n
X
E(a1 , a2 , . . . , an ) = (x) f (x) ak k (x) dx.
a k=1
A fim de minimizar esta funo devemos resolver o seguinte sistema de equaes lin-
eares: Z b " #
n
X
E
=2 (x) f (x) ak k (x) (j (x))dx = 0, (8.3.1)
aj a k=1
j = 1, . . . , n.
Reescrevendo o sistema:
Z b n
X Z b
(x)f (x)j (x)dx = ak (x)k (x)j (x)dx, j = 1, . . . , n. (8.3.2)
a k=1 a
Exemplos
Exemplo 8.3.1 (Caso Contnuo)
Aproximar f (x) = sin(x) em [0, 1] por uma funo da forma (x) = a0 + a1 x + a2 x2 . Assim,
1 (x) 1, 2 (x) = x e 3 (x) = x2 . Escrevendo o sistema 8.3.3
1 1 2 1 3 1 a0 f 1
1 2 2 2 3 2 a1 = f 2 .
1 3 2 3 3 3 a2 f 3
0.8
0.6
0.4
0.2
Se as funes i (x) forem dadas ortogonais entre si, ento o sistema acima (8.3.3) se
reduz a Z b Z b
(x)f (x)j (x)dx = aj (x)|j (x)|2 dx, j = 1, . . . , n, (8.3.4)
a a
e neste caso Z b
1
aj = (x)f (x)j (x)dx,
j a
onde Z b
j = (x)|j (x)|2 dx.
a
Sejam f C[a, b] e S subespao de C[a, b] gerado pelo conjunto das funes 1 (x), 2 (x), . . . , n (x)
ortogonais em C[a, b]. A aproximao de f por mnimos quadrados
n
X
f (x) = ak k (x),
k=1
D. Andrade Clculo Numrico 159
onde k = 1, . . . , n e
Z b
(x)f (x)k (x)dx
ak = Z a
b
. (8.3.5)
2
(x)|k (x)| dx
a
> restart:with(linalg):
> MMQua := pro
(inf, sup, f, N) lo
al A,X, b, i, j;
A := matrix(N,N); b := ve
tor(N);
for i to N do for j to N do
A[i,j := evalf(int(g[i(k)*g[j(k),k=inf..sup));
od; b[i := evalf(int(g[i(k)*f(k),k=inf..sup));
od;
print(`Sistema linear`);print(`A = `,evalm(A));
for i to N do b[i:=int(f(k)*g[i(k),k=inf..sup); od;
print(`Soluo do sistema linear `);X:=linsolve(A,b);end:
## Exemplo 1: Aproximar a funo sin(Pi x) no intervalo
##[-1..1 ## um polinmio de grau 3 .
D. Andrade Clculo Numrico 160
Z
2 2
(4i) hf, gi = ex f (x)g(x)dx, isto , (x) = ex e a = , b = . Este produto interno
dar origem aos polinmios de Hermite.
Teorema 8.5.1 O conjunto de funes polinomiais {0 , 1 , . . . , n } construdas como se
segue, ortogonal em C[a, b] munido do produto interno
Z b
hf, gi = (x)f (x)g(x)dx,
a
onde (x) 0 integrvel em [a, b] e (x) 6 0 em cada subintervalo de [a, b] a funo peso,
0 (x) = 1, 1 (x) = x B1 , x [a, b]
onde Z b
x(x)|0 (x)|2 dx
B1 = Za b
,
2
(x)|0(x)| dx
a
e para k 2
k (x) = (x Bk )k1(x) Ck k2(x), x [a, b],
onde Z b
x(x)|k1 (x)|2 dx
Bk = Za b
(x)|k1(x)|2 dx
a
e Z b
x(x)k1 (x)k2 (x)dx
a
Ck = Z b .
2
(x)|k2(x)| dx
a
7 429 7
16
693 5 315 3
x 16 x + 16 x 16 x 35
8 6435 8
128
x 3003
32
x6 + 3465
64
x4 315 32
35
x2 + 128
9 12155 9
128
x 6435
32
x7 + 9009
64
x5 115532
x3 + 315
128
x
10 46189 10
256
x 109395 8
256
x + 45045 6
128
x 15015 4
128
x + 3465 2
256
x 63
256
8 2 28 3 35 4 7 5 7 6 1
1 8 x + 14 x 3 x + 12 x 15 x + 180 x 630 x + 40320 7 1
x8
9 1 9 x + 18 x2 14 x3 + 21 4 21 5 7 6 1 7 1 8
4 x 20 x + 60 x 140 x + 4480 x 362880 x
1 9
10 45 2 35 4 21 5 7 6 1
1 10 x + 2 x 20 x + 4 x 10 x + 24 x 1/42 x + 896 x 36288 x9 +
3 7 8 1 1
3628800 x10
Teorema 8.5.6 Sejam p0 (x), p1 (x), p2 (x), . . . , pn (x), pn+1 (x) . . . polinmios no nulos e or-
togonais, segundo o produto interno
Z b
hf, gi = (x)f (x)g(x)dx,
a
onde (x) 0 e (x) 6 0 em cada subintervalo de [a, b] contnua em [a, b]. Sejam
x0 , x1 , x2 , . . . , xn as razes de pn+1 (x). Se f (x) um polinmio de grau menor do que ou
igual a 2n + 1, ento
Z b Xn
(x)f (x)dx = k f (xk ),
a k=0
onde Z b
k = (x)Lk (x)dx
a
P
com Pn (x) = nk=0 f (xk )Lk (x) o polinmio interpolador de Lagrange que interpola f nos
pontos xk , k = 0, 1, . . . , n.
Seja Pn (x) o polinmio interpolador de f (x) nos pontos x0 , x1 , . . . , xn em [a, b]. Como
Rn (x) = f (x) Pn (x) o erro na interpolao, ento
f (n+1) ()
f (x) Pn (x) = Rn (x) = (x x0 )(x x1 ) (x xn ) ,
(n + 1)!
onde (a, b) depende de x. Como f (x) um polinmio de grau 2n + 1, temos que o
termo
f (n+1) (x)
q(x) =
(n + 1)!
um polinmio de grau menor do que ou igual a n. Logo, podemos escrever
Segue que Z Z
b b
(x) [f (x) Pn (x)] dx = b0 (x)pn+1 (x)q(x)dx.
a a
Como pn+1 (x) e q(x) so ortogonais, vale a igualdade
Z b
(x) [f (x) Pn (x)] dx = 0.
a
Isto ,
Z b Z b
(x)f (x)dx = (x)Pn (x)dx
a a
Z b " n #
X
= (x) Lk (x)f (xk ) dx
a k=0
n
X Z b
= f (xk ) (x)Lk (x)dx
k=0 a
Xn
= k f (xk ).
k=0
Usando o mtodo dos mnimos quadrados, ajuste , aos dados, utilizando uma
funo do tipo k1 exp(k2 c ).
D. Andrade Clculo Numrico 167
4. Na tabela temos os dados (tk , f (tk )) para uma funo f com comportamento ex-
ponencial que modela a intensidade de uma frente de radiao. Determine a re-
gresso exponencial de f (t), isto , uma funo do tipo I(t) = I0 et que melhor
represente f .
5. Na tabela temos os dados (xk , f (xk )) para uma funo f com comportamento hiper-
1
blico, isto da forma, (x) = .
a + bx
xk 0 1 2 3 4
f (xk ) 1 0.32256 0.2 0.14286 0.11236
168
D. Andrade Clculo Numrico 169
Z b n
X Z b
f (n+1) ()
f (x)dx = i f (xi ) + (x x0 )(x x1 ) . . . (x xn )dx.
a i=0 a (n + 1)!
Como caso particular, nas sees 9.3 e 9.4, obtemos as frmulas dos Trapzios e de
Simpson, que so estabelecidas com polinmios de graus baixos, grau 1 e grau 2, respec-
tivamente.
D. Andrade Clculo Numrico 170
Segue que Z x1
h h
f (x)dx = f (x0 ) + f (x1 ) + erro,
x0 2 2
onde o erro dado por
Z x1
1
ET rap = f ()(x x0 )(x x1 )dx, (9.3.1)
2 x0
D. Andrade Clculo Numrico 171
Z x2
(x x0 )(x x1 ) h
2 = dx = .
x0 (x2 x0 )(x2 x1 ) 3
Segue que Z x2
h
f (x)dx = [f (x0 ) + 4f (x1 ) + f (x2 )] + erro,
x0 3
onde o erro dado por (aqui os argumentos no so simples)
Z x2
1
ESimp = f (3) ()(x x0 )(x x1 )(x x2 )dx
3!
x05
h
= f (4) (), (9.4.1)
90
Na seco 9.5 veremos como fica a regra de Simpson se for aplicada repetidas vezes
sobre subintervalos de um intervalo [a, b].
D. Andrade Clculo Numrico 173
Z b n Z
X xi
f (x)dx = f (x)dx
a xi1
Zi=1x1 Z x2 Z xn
= f (x)dx + f (x)dx + + f (x)dx
x0 x1 xn1
h h h
[f (x0 ) + f (x1 )] + [f (x1 ) + f (x2 )] + + [f (xn1 ) + f (xn )]
2 2 2
h
{[f (x0 ) + 2 [f (x1 ) + f (x2 ) + + f (xn1 )] + f (xn )]}
2" #
n1
X
h
f (x0 ) + 2 f (xi ) + f (xn ) .
2 i=1
D. Andrade Clculo Numrico 174
O erro final de uma frmula repetida pode ser obtido pela soma dos erros parciais. Na
regra dos trapzios, cada um dos subintervalos [xi1 , xi ] contribui com um erro parcial
dado por
h3
f (2) (i ).
12
Somando os erros parciais obtemos
h3 (2)
ET rap = f (1 ) + f (2) (2 ) + + f (2) (n ) .
12
Supondo que f possua derivada segunda contnua em [a, b], existem constantes m2 , M2
0 tais que
inf |f (2) (x)| = m2 |f (2) (x)| M2 = sup |f (2) (x)|.
x[a,b] x[a,b]
h3 h2
|ET rap | n M2 = (b a) M2 .
12 12
(9.5.2)
Z b Z x2 Z x4 Z xn
f (x)dx = f (x)dx + f (x)dx + + f (x)dx
a x0 x2 xn2
h h h
[f (x0 ) + 4f (x1 ) + f (x2 )] + [f (x2 ) + 4f (x3 ) + f (x4 )] + + [f (xn2 ) + 4f (xn1 ) + f (xn ))]
3 3 3
h h
{f (x0 ) + 4 [f (x1 ) + f (x3 ) + + f (xn1 )]} + {2 [f (x2 ) + f (x4 ) + + f (xn2 )] + f (xn )}
3 3
h
{f (x0 ) + 4 [f (x1 ) + f (x3 ) + + f (xn1 )] + 2 [f (x2 ) + f (x4 ) + + f (xn2 )] + f (xn )}
3
n n2
h X2 X 2
h
f (x)dx f (x0 ) + 4 f (x2i1 ) + 2 f (x2i ) + f (xn ) .
a 3 i=1 i=1
(9.5.3)
O erro final pode ser obtido pela soma dos erros parciais. Na regra de Simpson, cada um
dos subintervalos (xi , xi+2 ), i par, contribui com um erro parcial dado por (aqui usamos
n n
parbolas e portanto parcelas de erro):
2 2
h5 (4)
f (i ).
90
Somando os erros parciais obtemos uma estimativa para o erro total
h4
|ESimp | (b a) max{|f (4) (x)|; x [a, b]}.
180
(9.5.4)
Note que se f (x) um polinmio de grau 3 ento o erro |ESimp | nulo, isto , a regra de
Simpson exata para polinmios de grau 3.
Exemplo 9.5.1
D. Andrade Clculo Numrico 176
Z 1
Quantos subintervalos devemos usar para calcular a integral exp(x2 )dx usando a
0
Regra dos Trapzios e a Regra de Simpson, com erro menor do que 104 ?
Primeiramente, a regra dos trapzios. O erro total dado por
ba 2 2
|ET rap | h max |f (2) (x)| h2 < 104 ,
12 12
pois max |f (2) (x)| 2. Segue que h < 2.44 102 e portanto n > 40.8. Assim, tomamos 41
intervalos.
Para a regra de Simpson,
ba 4 12h4
|ESimp | h | max |f (4) (x)| = < 104 ,
180 180
pois | max |f (4) (x)| < 12. Segue que h 1.96 101 e assim n = h1 > 5.08. Assim, tomamos
n = 6 intervalos.
Agora deixamos para o leitor calcular as aproximaes para a integral usando 6 subin-
tervalos, pela a regra dos trapzios e pela regra de Simpson.
> restart:
> trap:=pro
(f,a,b,n)
> lo
al A,S,h,k;
> if not type(f,pro
edure) then ERROR(`use s fun
ao`);
> fi;
> h:=evalf((b-a)/n);
> S:=0;
> for k from 0 to n-1 do
> A[k:=evalf( (h/2)* ( f (a+h*k)+f (a+h*(k+1)) ) );#print(A[k);
> S:=evalf(S+A[k);
D. Andrade Clculo Numrico 177
> od;
> print(S);
> end:
#Exemplo
> f:=x->exp(-x^2);
> trap(f,0,1,41);
Z 2
3. Determine os valores de n e de h necessrios para aproximar exp(2x) sin(3x)
0
com erro menor do que 104 ,
a) usando regra dos trapzios
b) usando regra de Simpson
Como f (2) (x) = 5 e2 x sin (3 x) + 12 e2 x cos (3 x) o seu valor mximo ocorre em x = 2,
assim M2 = 705.36 Segue que
(b a) 2
ETrap h M2 < 104
12
implica que so necessrios n 2169 subintervalos se usarmos a regra dos Trapzios.
No caso de Simpson, como 119 e2 x sin (3 x) 120 e2 x cos (3 x) o seu valor mximo
ocorre em x = 2, assim M4 = 4475.41 Segue que
(b a) 4
ESimp h M4 < 104
180
implica que so necessrios n 54 subintervalos se usarmos a regra de Simpson.
Z 2
4. Repita o exerccio acima com x2 cos(x)dx.
0
Assim,
Z b n
X
f (x)dx i f (xi ),
a i=0
onde agora os pesos 0 , 1 , . . . , n e os ns x0 , x1 , . . . , xn so determinados para obter a
melhor preciso possvel, isto , dever ser exata para polinmios de grau at 2n + 1.
Como existem (2n + 2) parmetros: (n + 1) pesos e (n + 1) abscissas ou ns, natural
esperar que exista uma frmula que seja exata para polinmios de grau menor do que ou
igual a (2n + 1).
Para simplificar, para o caso dos limites de integraoZlimitados, vamos considerar ape-
b
nas integrais sobre o intervalo [1, 1]. Para calcular f (x)dx fazemos a mudana de
a
variveis
(b a) (b + a)
x= t+ , t [1, 1]
2 2
ba
e portanto dx = dt.
2
Assim, Z Z Z
b 1
ba (b a) (b + a) ba 1
f (x)dx = f t+ dt = F (t)dt.
a 2 1 2 2 2 1
| {z }
=F (t)
Z
(3i) hf, gi = ex f (x)g(x)dx, isto , (x) = ex e a = 0, b = . Este produto interno
0
dar origem aos polinmios de Laguerre.
Z
2 2
(4i) hf, gi = ex f (x)g(x)dx, isto , (x) = ex e a = , b = . Este produto interno
dar origem aos polinmios de Hermite
Teorema 9.7.1 Sejam p0 (x), p1 (x), p2 (x), . . . , pn (x), pn+1 (x) . . . polinmios no nulos e or-
togonais, segundo o produto interno
Z b
hf, gi = (x)f (x)g(x)dx,
a
onde (x) 0 contnua em [a, b]. Sejam x0 , x1 , x2 , . . . , xn as razes de pn+1 (x). Se f (x)
um polinmio de grau menor do que ou igual a 2n + 1, ento
Z b n
X
(x)f (x)dx = k f (xk ),
a k=0
onde Z b
k = (x)Lk (x)dx
a
P
com Pn (x) = nk=0 f (xk )Lk (x) o polinmio interpolador de Lagrange que interpola f nos
pontos xk , k = 0, 1, . . . , n.
Seja Pn (x) o polinmio interpolador de f (x) nos pontos x0 , x1 , . . . , xn em [a, b]. Como
Rn (x) = f (x) Pn (x) o erro na interpolao, ento
f (n+1) ()
f (x) Pn (x) = Rn (x) = (x x0 )(x x1 ) (x xn ) ,
(n + 1)!
D. Andrade Clculo Numrico 181
Segue que Z Z
b b
(x) [f (x) Pn (x)] dx = b0 (x)pn+1 (x)q(x)dx.
a a
Isto ,
Z b Z b
(x)f (x)dx = (x)Pn (x)dx
a a
Z b " n #
X
= (x) Lk (x)f (xk ) dx
a k=0
n
X Z b
= f (xk ) (x)Lk (x)dx
k=0 a
Xn
= k f (xk ).
k=0
Esta frmula exata para polinmios de grau menor do que ou igual 2n + 1, veja o
Teorema 9.7.1.
Se n = 1, ento a frmula exata para polinmios de grau menor do que ou igual a 3.
Assim, Z 1
F (t)dt = 0 F (t0 ) + 1 F (t1 )
1
0 + 1 = 2
0 t0 + 1 t1 = 0
2
0 t20 + 1 t21 =
3
0 t30 + 1 t31 = 0.
Resolvendo este sistema no-linear, t1 = t0 e t0 = 3
3
e 0 = 1 = 1. Logo,
Z 1
3 3
F (t)dt = 1.F ( ) + 1.F ( ),
1 3 3
Z (
1
0, se k mpar,
F (t)dt =
1
2
k+1
, se k par,
obtemos o seguinte sistema no linear de 2n + 2 equaes:
0 + 1 + + n = 2
0 t0 + 1 t1 + + n tn = 0
2
0 t20 + 1 t21 + + n t2n =
3
.................................................... = .....
0 t02n+1 + 1 t2n+1 1 + + n t2n+1n = 0
2
assim F (t) = exp( (t+1)
4
).
Como queremos 5 pontos, esses pontos sero as razes do polinmio de Legendre de grau
5. Logo,
Z 1 Z 4
2 1 1 1X
exp(x )dx = F (t)dt k F (tk ),
0 2 1 2
k=0
Z 1
sin2 (x)
Exemplo 9.7.3 Calcular a integral dx usando quadratura de Gauss-Legendre
1 x
com 4 pontos.
como esperado.
D. Andrade Clculo Numrico 185
Primeiramente, devemos fazer uma mudana de varivel para passar a integral para o
intervalo [1, 1]. Assim,
Z 10 Z 1
I= exp(x)dx = 5 exp((5t + 5))dt
0 1
Exemplo 9.7.5
Z
Determine uma aproximao para exp(x) sin(x)dx usando a quadratura de Gauss-
0
Laguerre com 3 pontos.
Tomando os dados da tabela, veja a tabela 9.3, obtemos
Z
ex sin(x)dx 0.7110930099 sin(.4157745567) + 0.2785177335 sin(2.294280360)
0
+0.01038925650 sin(6.289945082) = 0.4960298273
Exerccio 9.7.6
Z
Determine uma aproximao para ex x2 dx usando a quadratura de Gauss-Laguerre
1
com 3 pontos.
D. Andrade Clculo Numrico 188
0.5246476323 0.8049140900
0.202018287010 0.1995324205101
1
0.9585724646 0.3936193231
0.0000000000 0.9453087212
0.235060497310 0.4530009905102
1
0.1335849074101 0.1570673203
0.4360774119 0.7246295952
usando 5 pontos.
Estamos dentro das condies de integrao de Gauss-Hermite, com f (x) = cos(x). Us-
ando a tabela 9.4, temos
Z
2
ex cos(x)dx 1.380390077.
> restart:
> QGaussLe:=pro
(f,n,a,b) # n o nmero de ns
> lo
al Gnos,Gpesos,g,ords,uu,k,u,q,w,ans;
> g:=t->((b-a)/2)*f(((b-a)*t+(b+a))/2); # morando agora em [-1,1
> if nargs > 3 then
> fi;Gnos:=[fsolve(orthopoly[P(n,x),x); # P = Legendre
> Gpesos:=[;
> uu:=[seq(0,k=1..n);
> for k from 1 to n do
> u:=subsop(k=1.0,uu); #n-esima entrada 1.0
> q:=interp(Gnos,u,x); # interpolao polinomial
D. Andrade Clculo Numrico 191
); print(V);end:
#Exemplo
>g:=x-> exp(x)*(1-x^2);
> GaussT
heb(g,5);
> restart:
> QGaussLa:=pro
(f,n) lo
al Gnos,Gpesos,uu,k,u,q,w,ans,ords;
> Gnos:=[fsolve(orthopoly[L(n,x),x); # L = Laguerre
> Gpesos:=[;
> uu:=[seq(0,k=1..n);
> for k from 1 to n do
> u:=subsop(k=1.0,uu);
> q:=interp(Gnos,u,x); # interpola
ao polinomial
> w:=int(exp(-x)*q,x=0..infinity);# integrando para obter os pesos
> Gpesos:=[op(Gpesos),w; # es
rendo a lista dos pesos
> od;
> evalf([Gnos,Gpesos);
> [Gnos,Gpesos;
> ords:=map(f,Gnos); ans:=0; for k from 1 to n do
ans:=ans + ords[k*Gpesos[k; od; evalf(ans); end:
#Exemplo
> f:=x->sin(x):
> QGaussLa(sin,6,0,Pi);
D. Andrade Clculo Numrico 193
194
D. Andrade Clculo Numrico 195
fi : R, i = 1, 2, . . . , n.
O Teorema de Existncia
R = {(x, y); |x x0 | a e |y y0 | b}
Segue que (C, d) um espao mtrico. Mais ainda, (C, d) um espao mtrico completo,
isto , toda sequncia de Cauchy em (C, d) convergente.
De (10.1.6) observamos que toda soluo deve ser ponto fixo da aplicao dada por C
g 7 (g) onde
Z x
(g)(x) = y0 + f (s, g(s))ds. (10.1.7)
x0
Segue que
d((g1 ), (g2 )) kad(g1 , g2 ).
Tomando a tal que ka < 1 conclumos que uma contrao. Pelo Teorema da contrao,
tem um nico ponto fixo e o teorema fica provado com I = (x0 a, x0 + a).
Um exemplo numrico:
Uma vez que o operador dado em 10.1.7 uma contrao podemos usar a sequncia
introduzida no processo iterativo de Picard para gerar aproximaes da soluo de uma
EDO de primeira ordem.
O processo iterativo de Picard consiste em construir uma sequncia (xn ) de funes que se
aproximam cada vez mais da soluo procurada. Como exemplo, consideremos o seguinte
PVI
(
y (x) = 2x(y + 1),
y(0) = 0.
Continuando desta forma obtemos uma sequncia yn (x). Vamos determinar mais alguns
termos desta sequncia:
n yn (x)
n=0 y0 (x) = 0
n=1 y1 (x) = x2
4
n=2 y2 (x) = x2 + x2
4 6
n=3 y3 (x) = x2 + x2 + x3!
4 6 x8
n=4 y4 (x) = x2 + x2 + x3! + 4!
P x2i
n=k yk (x) = ki=1
i!
Do nosso conhecimento sobre sries de Taylor sabemos que esta sequncia converge para
y(x) = exp(x2 ) 1 que a soluo da EDO.
(x xk )2 (x xk )m
y(x) = y(xk ) + y (xk )(x xk ) + y (xk ) + + y (k)(xn )
2 m!
(x xk n)m+1
+ y (m+1) (x ) ,
(m + 1)!
h2
y(xk+1) = y(xk ) + hy (xk ) + y (),
2
onde est entre xk e xk+1 .
h2
Se h pequeno, ento y () tambm pequeno e pode ser desprezado. Logo, obtemos
2
y(xk+1) y(xk ) + hf (xk , y(xk )).
Exemplo 10.2.1
Consideremos a seguinte EDO que queremos obter informaes sobre a soluo no inter-
valo [0, 1]. (
y + 2xy = 4x
y(0) = 1.
A soluo y(x) = 2 exp(x2 ). Como exemplo, vamos dividir o intervalo em 5 partes
iguais, portanto o passo h = 0.2.
Reescrevendo a equao como y = 4x 2xy vemos que f (x, y) = 4x 2xy, x0 = 0 e y(0) = 1
nos d f (0, 1) = 0.
D. Andrade Clculo Numrico 200
y1 = y0 + hf (x0 , y0 ) = 1 + 0 = 1.
Do mesmo modo,
y2 = y1 + hf (x1 , y1 ) = 1, 08.
Continuando, obtemos a seguinte tabela que comparamos com a soluo exata.
1
0 0.2 0.4 0.6 0.8 1
Consideremos a seguinte EDO que queremos obter informaes sobre a soluo no inter-
valo [1, 0]. (
y = y2
y(1) = 1,
cuja soluo y(x) = x1 . Para discretizar o domnio vamos dividir o intervalo em 10
partes iguais, portanto o passo h = 0.1 e os pontos so xj = x0 + hj, onde h = 0+1 10
= 0.1,
e assim os pontos so x0 = 1.0, 0.9, 0.8, 0.7, 0.6, 0.5, 0.4, 0.3, 0.2, 0.1 e 0.0.
Tabelamos os nossos clculos na tabela abaixo. Observe que o erro cresce rapidamente.
D. Andrade Clculo Numrico 201
xk yk y Erro |yk + x1 |
-1.0 1.0 1.0 0.0 Soluo e aproximao 2
introduzido um erro, chamado erro de discretizao local. Esse erro, obtido do desen-
volvimento de Taylor, dado por
h2
y (k )
2
para algum k entre xk e xk+1 .
Observe que ao calcularmos uma aproximao yk+1 para y(xk+1) pelo mtodo de Euler, o
valor de yk usado uma aproximao para y(xk ). O valor yk foi calculado usando uma
aproximao de yk1 e assim sucessivamente. Tem-se assim, no clculo da aproximao
yk+1 no s o erro de discretizao introduzido nesse passo mas tambm o erro resultante
da acumulao dos erros de discretizao local introduzidos nos passos anteriores.
Vamos denotar por ek o erro
ek = y(xk ) yk
de discretizao global. Um majorante para esse erro dado pelo seguinte teorema:
Segue que
h2
|ek+1 | (1 + Lh)|ek | + M2 . (10.2.2)
2
Usando repetidas vezes (10.2.2), obtemos
X k
h2
|ek+1 | (1 + Lh) k+1
|e0 | + M2 (1 + hL)j . (10.2.3)
2 j=0
(1 + Lh) eLh .
Consequentemente,
(1 + Lh)k ekLh = eL(xk x0 )
e assim,
hM2 L(xk x0 )
|ek | e 1 .
2L
Esse teorema afirma que quando h tende a zero, o erro global de discretizao tende a
zero. Segue que
lim yk = y(xk ).
h0
Notemos ainda que a menos que coheamos alguma informao adicional sobre a soluo
y(x), impossvel obter um majorante para o erro global de discretizao.
Exemplo 10.2.4
Determine o passo h > 0 de modo que o erro global de discretizao seja menor do que
5 105 no problema de valor inicial
(
y (x) = y(x)
y(0) = 1, x [0, 1].
Um mtodo para obter uma estimativa para o erro dado a seguir. Temos que |y(xk )
yk | Ch para alguma constante independente de h. Se yek uma aproximao de y(xk )
com passo 2h, ento
|y(xk ) yek | 2hC.
Segue que
h2
yi+1 = yi + hf (xi , yi ) + f (xi , yi ).
2
Exemplo 10.3.1
d
f (x, y) = y(x) x2 + 1 = y (x) 2x = y(x) x2 + 1 2x
dx
d
f (x, y) = y(x) x2 2x + 1 = y(x) x2 2x 1
dx
f (x, y) = y(x) x2 2x + 1
y0 = y(x0 ) = 0.5
h2
yi+1 = yi + hf (xi , yi ) + f (xi , yi )
2
h2
yi+1 = yi + h yi x2i + 1 + yi x2i 2xi + 1
2
h2 h2 2 h
yi+1 = 1+h+ yi + h xi + h 1 + h2 xi .
2 2 2
D. Andrade Clculo Numrico 206
y(x) = x2 + 2 x + 1 0.5ex ,
f (k) (, y())hk+1
e(xi ) = , (10.3.2)
(k + 1)!
onde est entre xi e xi+1 .
O erro de discretizao global dado por
ek = y(xk ) yk .
|e(xi )| Chp .
Assim, a expresso 10.3.2 mostra que o mtodo de Taylor de ordem k. Como o mtodo
de Euler um caso particular do mtodo de Taylor, a ordem do mtodo de Euler 1.
D. Andrade Clculo Numrico 207
h h
yk+1 = yk + hf (xk + , yk + f (xk , yk ))
2 2
. (10.4.6)
yk+1 = yk + h (a1 K1 + a2 K2 + a3 K3 ) ,
K2 = f (xk + h2 , yk + hk2 1 )
K = f (x + h, y + 2hk hk ).
3 k k 2 1
onde
K1 = hf (xk , yk ),
1 1
K2 = hf (xk + h, yk + K1 ),
2 2
1 1
K3 = hf (xk + h, yk + K2 ),
2 2
K4 = hf (xk + h, yk + K3 ).
Observao 10.4.1 O mtodo de Runge-Kutta de ordem 2 pode ser obtido da regra dos
Trapzios e o mtodo de Runge-Kutta de ordem 4 pode ser obtido pela regra de integrao
de Simpson.
Vejamos a seguir os principais passos da deduo da frmula de Runge-Kutta de ordem
4. Considerando o problema de valor inicial y (x) = f (x, y(x)) e integrando, obtemos
Z xk+1
y(xk+1) y(xk ) = y (x)dx. (10.4.8)
xk+1
Exemplo 10.4.3
Vamos usar o mtodo de Runge-Kutta de quarta ordem na soluo da EDO dada por
y + 2xy = 4x
xk yk K1 K2 K3 K4
0 1 0 0.01 0.00995 0.0198
0.1 1.00995 0.0198 .0294 0.02926 0.038432
0.2 1.0392 0.0384 0.04708 0.046863 0.054836
0.3 1.086 0.054836 0.06206 0.0618 0.06817
0.4 1.147856 0.06817 0.073625 0.0733798 0.077876
0.5 1.22120 0.07788 0.081385 0.08119 0.083713
0.6 1.3023236 0.08372 0.085256 0.085156 0.0857528
0.7 1.38737 0.0857677 0.08546 0.085484 0.0843428
0.8 1.4727 0.084367 0.082469 0.082630 0.08004
0.9 1.5551 0.08007 0.076916 0.077216 0.073529
1.0 1.63212 - - - -
K1 = hf (xk , yk , zk ),
L1 = hg(xk , yk , zk ),
1 1 1
K2 = hf (xk + h, yk + K1 , zk + L1 ),
2 2 2
1 1 1
L2 = hg(xk + h, yk + K1 , zk + L1 ),
2 2 2
1 1 1
K3 = hf (xk + h, yk + K2 , zk + L2 ),
2 2 2
1 1 1
L3 = hg(xk + h, yk + K2 , zk + L2 ),
2 2 2
K4 = hf (xk + h, yk + K3 , zk + L3 ),
L4 = hg(xk + h, yk + K3 , zk + L3 ),
1
yk+1 = yk + (K1 + 2K2 + 2K3 + K4 )
6
(10.4.13)
D. Andrade Clculo Numrico 212
e
1
zk+1 = zk + (L1 + 2L2 + 2L3 + L4 )
6
, (10.4.14)
para obter as solues numricas, exatamente como no caso de EDO de ordem 1.
Exemplo 10.4.4
Exemplo 10.4.5
D. Andrade Clculo Numrico 213
xk yk zk
0.00 0.0 1.00
0.10 0.12255 1.479475
0.20 0.302672539 2.1642789645
0.30 0.5652384824 3.1469722929
0.40 0.9463364531 4.5619735921
0.50 1.4983459593 6.6044926599
0.60 2.2973051681 9.5580271897
0.70 3.4536112276 13.8342967197
0.80 5.127560514 20.031239413
0.90 7.5519179825 29.0172418126
1.0 11.0646950142 42.0534672115
tk xk yk
0. 2. 2.
0.1 2.04021172177630250 2.00200958763706893
0.2 2.08005924010237652 2.00804633227391927
0.3 2.11830331387036042 2.01804786552362181
0.4 2.15365341761329754 2.03184511098841014
0.5 2.18482297262956404 2.04915233886168168
0.6 2.21058727795855425 2.06956072884697174
0.7 2.22985789248401822 2.09253558745927480
0.8 2.24175495002747782 2.11742153555191370
0.9 2.24567528503658220 2.14345461647785252
1.0 2.24134864669795464 2.16978693177832226
onde
K1 = hf (xk , yk )
1 1
K2 = hf (xk + h, yk + K1 )
4 4
3 3 9
K3 = hf (xk + h, yk + K1 + K2 )
8 32 32
12 1932 7200 7296
K4 = hf (xk + h, yk + K1 K2 + K3 )
13 2197 2197 2197
439 3680 845
K5 = hf (xk + h, yk + K1 8K2 + K3 K4 )
216 513 4104
h 8 3544 1859 11
K6 = hf (xk + , yk K1 + 2K2 K3 + K4 K5 )
2 27 2565 4104 40
Os mtodos estudados at aqui so chamados de passo 1, pois para o clculo de yk+1
necessita-se apenas conhecermos yk . Observamos ainda que estes mtodos so explcitos,
pois a expresso para yk+1 dada de modo explcito. A seguir veremos mtodos multistep.
o que d Z xi+1
y(xi+1 ) = y(xi ) + f (x, y(x))dx. (10.5.15)
xi
Os mtodos que vamos estudar agora, mtodos de passo mltiplo, so baseados na aprox-
imao da integral em (10.5.15), substituindo f por um polinmio interpolador em ns
(abscissas) equidistantes.
Mtodos Adams-Bashforth
Escolhendo os ns de interpolao xi , xi1 , . . . , xir [a, b] obtemos os mtodos de Adams-
Bashforth.
Para o caso do Mtodo de Adams-Bashforth de segunda ordem, usamos a frmula de
integrao Z xi+1
h
f (x, y(x))dx [3f (xi ) f (xi1 )] ,
xi 2
onde h = xi xi1 . Esta aproximao para a integral foi obtida aproximando f por um
polinmio interpolador de grau um nos ns xi e xi1 . Substituindo em (10.5.15) obtemos
h
yi+1 = yi + [3f (xi , yi ) f (xi1 , yi1)] , i 1, (10.5.16)
2
que a frmula do Mtodo de Adams-Bashforth.
Observe que para determinar y2 precisamos conhecer y0 e y1 ; como y0 j dado precisamos
determinar apenas y1 . Fazemos isto usando um mtodo numrico de passo simples como
Euler ou Runge-Kutta..
O erro local no mtodo de Adams-Bashforth de ordem 2 dado por
5 3
h y (i )
12
(10.5.17)
onde i (xi1 , xi ). O erro global proporcional a h2 .
Exemplo 10.5.1 Consideremos o seguinte exemplo
(
y (x) = y(x), x [0, 1]
y(0) = 1.
k yk
0 1 Soluo e aproximao- AB-2
1 1.105000 2.6
2 1.220750000 2.4
3 1.348612500 2.2
4 1.489866875 2
5 1.645916281 1.8
6 1.818310379 1.6
7 2.008761122 1.4
8 2.219159771 1.2
9 2.451595681 1
10 2.708377045
0 0.2 0.4 0.6 0.8 1
x
h
yi+1 = yi + [55f (xi , yi ) 59f (xi1 , yi1 ) + 37f (xi2 , yi2) 9f (xi3 , yi3 )] , i 3
24
(10.5.18)
que a frmula do Mtodo de Adams-Bashforth de quarta ordem.
Observe que para determinar y4 precisamos conhecer y0 , y1 , y2 , y3 ; como y0 j dado pre-
cisamos determinar os demais. Fazemos isto usando um mtodo numrico de passo sim-
ples.
O erro local no MAB-4 dado por
5 5 (5)
h y (i )
12
(10.5.19)
Para aplicar o MAB-4, precisamos das aproximaes y1 , y2 , y3 que podem ser obtidas us-
ando RK-4.
xk yk
0.0 1.000
0.05 1.05127
0.10 1.10517
2.6
2.4
2.2
0.15 1.16183
0.20 1.2214
2
1.8
1.6
1.4
0.25 1.28403
1.2
1
0 0.2 0.4 0.6 0.8 1 0.50 1.64872
1.0 2.71828
1
Se h < a equao (10.5.20) tem uma nica soluo yi+1 tal que
|a0 |L
(k)
yi+1 = lim yi+1 ,
k
(k)
sendo yi+1 dado por
h i
(k) (k1)
yi+1 = yi + h a0 f (xi+1 , yi+1 ) + a1 f (xi , yi ) + + ar f (xir+1 , yir+1 ) ,
(0)
k = 0, 1, . . . , e yk+1 arbitrrio.
h
yi+1 = yi + [9f (xi+1 , yi+1 ) + 19f (xi , yi ) 5f (xi1 , yi1) + f (xi2 , yi2 )]
24
. (10.5.21)
Para aplicar um mtodo implcito diretamente, como o mtodo dado em (10.5.21), deve-
mos resolver a equao implcita dada pelo mtodo em (10.5.21). Isto no bvio que
possa ser feito, a menos que usemos o Teorema acima, Teorema 10.5.3.
Usando o Teorema 10.5.3 seguimos os seguintes passos para obter yn+1 .
(0)
(1i) Usando um mtodo explcito determinamos uma aproximao inicial yn+1 para yn+1 ,
(0)
(2i) Calculamos f (xi+1 , yi+1),
(1)
(3i) Com este valor calculamos yi+1 usando o mtodo implcito
(1)
(4i) Voltando em (2i) e calculamos f (xi+1 , yi+1). Repete-se o procedimento at que
(k) (k1)
|yi+1 yi+1 )|
(k)
< .
|yi+1 |
K2 := H*F(T[k+H/2.0, u[k+K1/2.0):
K3 := H*F(T[k+H/2.0,
u[k+K2/2.0): K4 := H*F(T[k+H,u[k+K3):
u[k+1:=u[k+(1/6)*(K1+2.0*K2+2.0*K3+K4); od;
DD:=[seq([T[k,u[k,k=0..N):
A:=plot(DD, style=point,
olor=blue):
B:= plot(sol(x),x=T[0..T[N):
plots[display({A,B},title=`Soluo e Aproximao- RK4`);
end:
##Exemplo 1
> f:=(t,u,v) -> v;
> g:=(t,u,v) ->- u;
> RK4S2(f,g,0,1,1,0.1,50);
> f:=(x,y)->-y*sin(x*y)+x^3:
> AB4 := pro
(f,x0,y0,h,N)
> lo
al x,y,i,k,l,DD;
> if N < 4 then
> N := 4;
> fi;
> for i from 0 to N do
> x[i := x0 + i * h;
> od;
> y[0 := y0;
> for i from 1 to 4 do
> k[1 := h * f(x[i-1,y[i-1);
> k[2 := h * f(x[i-1 + h/2, y[i-1 + k[1/2);
> k[3 := h * f(x[i-1 + h/2, y[i-1 + k[2/2);
> k[4 := h * f(x[i, y[i-1 + k[3);
> y[i := y[i-1 + (k[1 + 2 * k[2 + 2 * k[3 + k[4)/6;
> od;
> for i from 4 to N do
> y[i := y[i-1 + h * (55 * f(x[i-1,y[i-1) - 59 * f(x[i-2,y[i-2)
> + 37 * f(x[i-3,y[i-3) - 9 * f(x[i-4,y[i-4))/24;
> od;
> lprint(`Adams-Bashforth ordem 4`);for k from 0 to N do
> if irem(k,1)=0 then
> lprint(`iterao`, k, `x`, x[k, `y`, y[k);
D. Andrade Clculo Numrico 223
no intervalo [0,1]. Tome h = 0.25, h = 0.2, h = 0.1, h = 0.01, a soluo exata dada
por u(x) = 2 exp(x2 ) e verfique o erro mximo cometido.
6. Queremos analisar a dinmica de duas espcies, uma presa e outra predador. Se-
jam x(t) e y(t) o nmero de presas e predadores, respectivamente, no instante t.
Faremos algumas hipteses simplificadoras. Se as presas forem deixadas sozin-
has, seu crescimento populacional proporcional a x. O nmero que vezes que
o predador mata a presa depende do nmero de encontros e proporcional a xy.
dx
Combinando essas equaes obtemos = x + xy, onde > 0 e < 0.
dt
Para o predador, supomos que ele no sobrevive sem as presas, o seu alimento.
Assim, a sua populao decai, isso contribui com um termo y, onde < 0. Alm
disso, o nmero de predadores cresce proporcionalmente ao numero de encontros
dy
com as preas, isto contribui com o termo xy, > 0. Portanto, temos = y + xy.
dt
Assim, temos o seguinte sistema de edos:
D. Andrade Clculo Numrico 225
dx = x + xy
dt .
dy
= y + xy
dt
Consideremos o modelo abaixo para predador-presa
dx
= 3x 1.4xy, t [0, 2]
dt
dy
= y + 0.5xy,
dt
x(0) = 2,
y(0) = 2.
Use as solues obtidas no exerccio acima para obter a soluo deste problema
usando o mtodo do shooting linear com h = 0.5.
1. o mtodo de Euler;
2. o mtodo de Taylor;
3. os mtodos Runge-Kutta;
4. o mtodo de Adams-Bashforth.
Problemas de Fronteira
11
11.1 Introduo
No captulo anterior estudamos equaes diferenciais ordinrias juntamente com uma
condio inicial, isto , problemas de valor inicial. Nesse captulo vamos estudar prob-
lemas de valor de fronteira ou problemas de contorno para equaes diferenciais or-
dinrias. Problemas de contorno para EDOS so equaes diferenciais ordinrias junta-
mente com uma ou mais condies em pontos fixados do domnio. Vamos apresentar o
mtodo das diferenas finitas e o mtodo do shooting linear.
Nestas notas vamos considerar que as condies de contorno so impostas em apenas
dois pontos, que o usual em aplicaes, e portanto uma ferramenta terica simples
pode ser desenvolvida para muitas classes especiais de equaes ou sistemas.
227
D. Andrade Clculo Numrico 228
1. Consideremos o problema
(
y + y = 0,
(11.2.1)
y(0) = 0, y(1) = 0.
2. Consideremos o problema
(
y + 2 y = 0,
(11.2.2)
y(0) + y(1) = 0, y (0) + y (1) = 0.
3. Consideremos o problema
(
y + y = 0,
(11.2.3)
y(0) = 0, y(1) = 0.
Soluo no trivial para este problema existe apenas para valores especiais de
= 2 , 4 2 , 9 2 , . . . , n2 2 , . . . . Para os demais, existe apenas soluo trivial.
Para n = n2 2 tem-se a soluo n (x) = sin(nx).
As constantes n so chamadas de autorvalores e as funes n so chamadas de
autofunes.
Uma importante classe de problemas de valor de contorno em que a soluo y(x), de uma
equao de segunda ordem
y = f (x, y, y ), x (a, b) (11.2.4)
deve satisfazer, em dois pontos distintos, a relao
a0 y(a) a1 y (a) = , |a0 | + |a1 | =
6 0 (11.2.5)
b0 y(b) + b1 y (b) = , |b0 | + |b1 | =
6 0. (11.2.6)
D. Andrade Clculo Numrico 229
podemos escrever
[(x)p(x)y ] + (x)r(x)y = 0.
Algumas exemplos importantes relacionadas aos problemas de Sturm-Liouville:
1. (1 x2 )y xy + 2 y = 0 Tchebycheff;
2. y 2xy + y = 0 Hermite;
4. xy + (1 x)y + y = 0 Laguerre.
Teorema 11.2.1 Sejam p(x), q(x) e r(x) funes contnuas em [a, b] com q(x) > 0, a x
b. Sejam constantes a0 , a1 , b0 e b1 satisfazendo
a0 a1 0, |a0 | + |a1 | =
6 0,
D. Andrade Clculo Numrico 230
b0 b1 0, |b0 | + |b1 | =
6 0,
|a0 | + |b0 | =
6 0.
Ento, o problema de valor de fronteira
Ly = y + p(x)y + q(x)y + r(x), a < x < b,
a0 y(a) a1 y (a) = , (11.2.8)
b0 y(b) + b1 y (b) =
Tendo estabelecido um resultado terico que garante a existncia de soluo para prob-
lemas de valor de contorno podemos agora apresentar algumas tcnicas numricas para
a obteno da soluo.
h2 hn
f (x + h) = f (x) + f (x)h + f (x) + + f (n) (x) + .
2! n!
Truncando esta srie aps o segundo termo temos a aproximao
f (x + h) f (x) + f (x)h
e assim,
f (x + h) f (x)
f (x) ,
h
chamada de aproximao por diferena adiantada.
Trocando h por h, obtemos
f (x) f (x h)
f (x) ,
h
chamada de aproximao por diferena atrasada.
D. Andrade Clculo Numrico 231
h2
u(x + h, y) = u(x, y) + ux (x, y)h + uxx (x, y) + ...
2!
e
h2
u(x h, y) = u(x, y) ux (x, y)h + uxx (x, y) + ...
2!
conclumos o seguinte
u(x + h, y) u(x, y)
ux (x, y)
h
u(x + h, y) 2u(x, y) + u(x h, y)
uxx (x, y)
h2
u(x, y + k) u(x, y)
uy (x, y)
k
u(x, y + k) 2u(x, y) + u(x, y k
uyy (x, y) .
k2
Vejamos um exemplo simples de EDO com condies de contorno.
Exemplo 11.3.1
Exemplo 11.3.2
2.5
1.5
0.5
Tomemos h = ba
n
, ento xi = a + ih. Usando diferenas centrais temos que:
Como vimos, se p(x), q(x) e r(x) so contnuas em [a, b] e se q(x) > 0 para todo x [a, b],
ento o (PVF) acima tem uma nica soluo.
1
shooting disparo
D. Andrade Clculo Numrico 236
O mtodo do shooting consiste em tomar dois problemas de valor inicial (PVI) associados
ao (PVF). Os dois PVIs so dados por
y = p(x)y + q(x)y + r(x), x (a, b)
(P V I 1) y(a) = ,
y (a) = 0,
e
y = p(x)y + q(x)y, x (a, b)
(P V I 2) y(a) = 0,
y (a) = 1.
Note que nestes problemas, as equaes so quase as mesmas, mas as condies iniciais
so diferentes.
Os problemas (PVI-1) e (PVI-2) possuem, cada um, uma nica soluo. Sejam y1 (x) a
soluo de (PVI-1) e y2 (x) a soluo de (PVI-2).
Uma conta fcil mostra que
y1 (b)
y(x) = y1 (x) + y2 (x), x [a, b]
y2 (b)
(11.4.1)
soluo do (PVF), desde que y2 (b) 6= 0. Como a sua soluo nica, ento esta a
soluo do (PVF). A expresso (11.4.1) mostra que a soluo y(x) uma combinao
linear entre as duas solues y1 (x) e y2 (x).
Assim, o mtodo do shooting baseado na substituio do (PVF) por dois problemas de
valor inicial (PVI-1) e (PVI-2).
Usando um mtodo numrico para obter a soluo dos (PVI-1) e (PVI-2), teremos as
solues numricas (xk , y1,k ) e (xk , y2,k ), respectivamente. Logo, usando (11.4.1), temos
que
y1 (b)
yk = y1,k + y2,k , k = 0, . . . , n.
y2 (b)
(11.4.2)
Exemplo 11.4.1 (Mtodo do Shooting)
Consideremos o PVF
y = 4y + 3y x, x (0, 1)
y(0) = 2,
y(1) = 5.
D. Andrade Clculo Numrico 237
Para resolver numericamente estes dois PVIs devemos transformar cada um deles em
um sistema de EDOs de primeira ordem. Note que z apenas uma varivel auxiliar.
Usando o Mtodo de Runge-Kutta de ordem 4 com h = 0.1 para resolver este sistema
obtemos os seguintes dados:
k xk yk zk
0 0 2 0
1 0.1 2.0342916667 0.7354541667
2 0.2 2.1594529573 1.8473533018
3 0.3 2.4235537389 3.5618766651
4 0.4 2.9034331605 6.2386796859
5 0.5 3.7216843201 10.4498116784
6 0.6 5.0736806729 17.1052842936
7 0.7 7.2705801966 27.6528680012
8 0.8 10.8077523665 44.3959960092
9 0.9 16.4736563716 70.9995940122
10 1.0 25.5230829536 113.2949267865
| {z }
=y1 (b)
D. Andrade Clculo Numrico 238
Usando o Mtodo de Runge-Kutta de ordem 4 com h = 0.1 para resolver este sistema
obtemos os seguintes dados:
k xk yk zk
0 0 2 0
1 0.1 2.0342916667 0.7354541667
2 0.2 2.1594529573 1.8473533018
3 0.3 2.4235537389 3.5618766651
4 0.4 2.9034331605 6.2386796859
5 0.5 3.7216843201 10.4498116784
6 0.6 5.0736806729 17.1052842936
7 0.7 7.2705801966 27.6528680012
8 0.8 10.8077523665 44.3959960092
9 0.9 16.4736563716 70.9995940122
10 1.0 19.5818114520 91.4964947316432
| {z }
=y2 (b)
Das tabelas anteriores obtemos que y1 (b) y1,10 = 25.55311935 e y2 (b) y2,10 = 19.58181.
Eles esto marcados em um box. Agora usando a equao (11.4.2) e as tabelas anteriores
obtemos (novamente, zk apenas auxiliar), obtemos
D. Andrade Clculo Numrico 239
xk yk
0.0 2.00000000
0.1 1.904637966
0.2 1.831614274
0.3 1.787982462
0.4 1.785352147
0.5 1.842559064
0.6 1.989914844
0.7 2.275974580
0.8 2.778300788
0.9 3.62060035
1.0 5.00000000
## y(0)=0 e y(1)= e
> restart:
> with(linalg):
> wiht(plots):
> Digits:=7:
O Maple tem pacotes para tratar com problemas de valor inicial e valor de fronteira.
Procure no Help dsolve/numeric bvp solver
fronteira
u + 3u = x sin x
u(0) = u(1) = 0.
y + 2y (x) + y(x) = x
y(0) = 0
y(1) = 1.
u + 3u = x sin x
u(0) = u(1) = 0.
y + 2y (x) + y(x) = x
y(0) = 0
y(1) = 1.
10. Resolver pelo mtodo do shooting linear o seguinte problema de valor de fronteira
(
y + y = 0, x (0, 1),
y(0) = 1, y(1) = 5.
k xk yk k xk yk k xk yk
0 0.0 1.0 0 0.0 0.0 0 0.0 1.0
1 0.1 1.00517 1 0.1 0.100167 1 0.1 0.85872
2 0.2 1.02140 2 0.2 0.20134 2 0.2
3 0.3 1.04986 3 0.3 0.30452 3 0.3 0.60461
4 0.4 1.091824 4 0.4 0.410752 4 0.4 0.49126
y1 y2 y
5 0.5 1.148721 5 0.5 0.52109 5 0.5 0.38682
6 0.6 1.222118 6 0.6 0.63665 6 0.6
7 0.7 1.313752 7 0.7 0.75858 7 0.7 0.20461
8 0.8 1.425540 8 0.8 0.88811 8 0.8 0.127026
9 0.9 1.559601 9 0.9 1.026516 9 0.9 0.05872
10 1.0 1.71828 10 1.0 1.17520 10 1.0
13. Use o mtodo de Runge-Kutta de ordem 4, para obter a soluo numrica do PVI
(
y = xy,
y(0) = 1
D. Andrade Clculo Numrico 244
k xk yk K1 K2 K3 K4
0
1
2 * * * *
.. .. .. .. .. .. ..
. . . . . . .
9 0.666977
10 * * * *
1. Mtodo do shooting;
f = (fx , fy , fz ).
245
D. Andrade Clculo Numrico 246
uy = 0 em R2 ,
u(x, p(x)) = f (x), x R
uy = 0 em R2 ,
u(0, y) = f (y), y R
ut = 2 u em (0, +)
u(x, t) = 0, x , t 0
u(x, 0) = f (x), x
f (x) = 0, x .
Definio 12.3.4 Dizemos que a soluo depende continuamente dos dados iniciais
ou de contorno se a soluo est intimamente ligada aos dados iniciais, ou seja, qual-
quer alterao nos dados iniciais altera tambm a soluo. Um problema para o qual
valem unicidade e dependncia contnua nos dados iniciais e ou de contorno chamado
de um problema bem posto, caso contrrio estaremos nos referindo a um problema
mal posto.
elipse < 0
parbola = 0
hiprbole > 0.
Consideremos uma equao diferencial parcial linear de segunda ordem a duas variveis.
Uma edp linear de segunda ordem uma expresso da forma
Para EDPS parablicas e hiperblicas, uma das variveis digamos y, ser substituda
por t e comumente interpretada como a varivel tempo.
Vamos discutir mtodos numricos para as EDPs de segunda ordem mais representati-
vas.
Equao de Poisson:
(xi , yi ), 1 i nx + 1, 1 j ny + 1,
Ou equivalentemente,
Denotamos f (xi , yj ) por fij e por uij a aproximao por diferena finita de u(xi , yj ). Ento,
temos a seguinte equao de diferenas em pontos no interior da malha:
onde 2 i nx , 2 j ny .
D. Andrade Clculo Numrico 251
onde 2 i nx , 2 j ny , ou
1 h2 fij
uij = [ui+1,j + ui1,j + ui,j+1 + ui,j1] (,12.5.3)
4 4
onde 2 i nx , 2 j ny .
Note que uij a mdia aritimtica dos quatro pontos vizinhos a ele.
Exemplo 12.5.1
D. Andrade Clculo Numrico 252
u(x, y) = 0, x = 0, 1 ou y = 0, 1. 0.4
0.2
0
fcil verificar que a soluo exata desse 0
0.2 0.2
0
Usemos o esquema de 5 pontos para resolver esse problema. Como ilustrao vamos
aplicar o mtodo a esse exemplo com n = m = 5. Nesse caso hx = hy = h = 0.25. A malha
nesse caso dada a seguir.
As incgnitas so
u3,2 , u2,3, u2,2 , u3,3, u2,4 , u3,4 , u4,2, u4,3 , u4,4
Resolvendo o sistema de equaes lineares, temos
Como conhecemos a soluo exata, podemos calcular o erro absoluto mximo para vrios
valores de n. Faa isso com n = 16, 20, 30.
Para cada (xi , yj ) em , use as condies de fronteira para gerar uma equao
envolvendo os ui,j s. Note que so (m + 1) (n + 1) ns no domnio discretizado.
Se o vetor de incgnitas
U = [u0,0 , u1,0, , um,0, u0,1 , u1,1, , um,1 , , u0,n , , um,n ]T ,
reescrevemos o sistema de (m + 1) (n + 1) equaes e (m + 1) (n + 1) incgnitas.
Use mtodos numricos iterativos para resolver o sistema de equaes lineares re-
sultante.
1 k k k
uxx (xi , tk ) u i+1 2u i + u i1
h2x
1 k+1
ut (xi , tk ) ui uki (dif. adiantada),
ht
onde 2 i nx , 2 k nt .
Ento, obtemos a seguinte frmula adiantada de Euler:
uk+1 uki uk 2uki + uki1
i
= a i+1 2
+ fik .
ht hx
conveniente introduzir a seguinte frao
aht
= .
h2x
D. Andrade Clculo Numrico 257
u1i = u0 (x), 1 i nx + 1,
e para k 1
uk+1
i = uki1 + (1 2)uki + uki+1 + ht fik , 2 i nx
uk+1
1 = g1 (tk+1 ), uk+1
nx +1 = g2 (tk+1 ).
Exemplo 12.6.1
D. Andrade Clculo Numrico 258
Vemos que a temperatura no nvel de tempo tm+1 depende das temperaturas nos nvel de
tempo tm ao longo dos pontos xi , quando i varia. Fixando um nvel de tempo m e variando
i, obtemos um sistema da forma
Um+1 = AUm ,
onde A uma matriz tridiagonal. Indutivamente, obtemos
Um+1 = Am+1 U0 ,
D. Andrade Clculo Numrico 259
A figura 12.3 mostra a soluo exata juntamente com alguns pontos obtidos em tempo ti .
0.8
0.6
0.4
0.2
0.2
0.15
0 0.1
0.05 t
0.5
x
u1i = u0 (x), 1 i nx + 1
e para k 2,
k k k k1 k
ui1 + (1 + 2)ui ui+1 = ui + ht fi , 2 i nx
uk1 = g1 (tk ),
k
unx +1 = g2 (tk )
Ao contrrio do mtodo explcito, aqui para uma soluo aproximada em t = tk1 , pre-
cisamos resolver um sistema de equaes lineares para determinar a soluo aproximada
no prximo nvel de tempo t = tk . Por isso esse mtodo chamado de mtodo implcito.
Em cada nvel de tempo t = tk , k 2, precisamos resolver um sistema de equaes
lineares
Auk = Fk .
Aqui, o vetor incgnita
T
uk = uk2 , . . . , uknx
e o vetor Fk dado por
T
Fk = uk1
2 + ht f2k + g1 (tk ), uk1
3 + ht f3k , . . . , uk1 k k1 k
nx 1 + ht fnx 1 , unx + ht fnx + g2 (tnx +1 )
Exemplo 12.6.2
Consideremos o seguinte problema de
valor inicial e fronteira para calor
0.8
ut = uxx , 0 < x < 1, 0 < t < 0.2 0.6
- Para cada (xi , t0 ) sobre a fronteira do nosso domnio, use as condies de fron-
teira pois conhecemos u(xi , t0 ). Assim, podemos determinar os valores de u no prx-
imo passo de tempo usando o valores do passo de tempo anterior. Para os ns
interiores, (xi , tj ), a equao discretizada gera uma equao envolvendo ui,j s.
- Rearranjando essas equaes de modo que suas incgnitas, os valores em tj+1 ,
fiquem do lado esquerdo do sistema teremos algo como uj+1 = Auj , onde uj+1 =
[u1,j+1 , u2,j+2, . . . , um1,j+1]t e u(j) = [u1,j , u2,j , . . . , um1,j ]t . Assim, podemos escrever
na forma matricial.
- Para aproximar a soluo no prximo passo, no temos que resolver sistema de
equaes lineares algum. Apenas temos que iterar uj+1 = Auj , j = 1, 2, . . . o processo
seguir at o tempo final T .
- Com a diferena atrasada, o vetor de incgnitas ser multiplicado por uma nova
matriz A, no iteramos simplesmente para encontrar o novo valor, em vez disso, de-
vemos resolver um sistema de equaes lineares Au(j+1) = u(j) ou equivalentemente,u(j+1) =
Mu(j) .
Mtodo de Crank-Nicholson Substitui a derivada de ordem 2 por uma mdia de
dois quocientes de diferenas centrais calculados em t e em t + k:
1 u(x + h, t) 2u(x, t) + u(x h, t) u(x + h, t + k) 2u(x, t + k) + u(x h, t + k)
uxx +
2 h2 h2
e a derivada de ordem 1 em t substituda por
u(x, t + k) u(x, t)
ut ,
k
onde h o passo na direo x e k o passo na direo t.
D. Andrade Clculo Numrico 265
utt = c2 uxx , 0 x a, 0 t T
u(0, t) = 0
u(a, t) = 0
u(x, 0) = f (x)
ut (x, 0) = g(x).
xi = ih, i = 0, 1, . . . , n
tj = jk, j = 0, 1, . . . , m.
ck
onde = .
h
Vemos da equao equao (12.7.2) que para j = 1 precisamos conhecer os valores ui,1
da primeira linha do tempo para acharmos ui,2 . Mas com j = 0 vemos que os valores
ui,1 dependem de ui,0 0-sima linha do tempo e dos valores ui,1 . Para calcularmos estes
ltimos usamos g da condio inicial:
u(xi , k) u(xi , k)
g(xi ) = ut (xi , 0)
2k
D. Andrade Clculo Numrico 266
portanto,
u(xi , k) u(xi , k) 2kg(xi ).
Logo,
2
ui,1 = (ui+1,0 ui1,0 ) + (1 2 )ui,0 + kg(xi ).
2
Vejamos um exemplo.
Exemplo 12.7.1
Consideremos a equao da onda unidimensional dada por
utt = 4uxx , 0 x 1, 0 t 1
u(0, t) = 0
u(1, t) = 0
u(x, 0) = sin(x)
ut (x, 0) = 0.
e as condies de fronteira
e as condies iniciais
1 k
uxx (xi , tk ) 2
ui+1 2uki + uki1
hx
1
utt (xi , tk ) 2 uk+1
i 2uki + uk1
i .
ht
1 k+1 k k1
1 k k k
k
u 2u + u = a u 2u + u i1 + fi .
h2t i i i
h2x i+1 i
D. Andrade Clculo Numrico 269
Essas equaes de diferenas devem ser complementadas com aos valores numricos da
fronteira
uk1 = g1 (tk ), uknx +1 = g2 (tk )
para 1 k nt + 1 e pelos valores iniciais.
A discretizao da primeira condio inicial
u(x, 0) = u0 (x), 0 x L
imediata
u1i = u0(xi ), 1 i nx + 1.
Para a segunda condio inicial
ut (x, 0) = v0 (x), 0 x L
1 k+1 1
2
ui 2uki + uk1
i = a 2 uki+1 2uki + uki1 + fik
ht hx
2. Segundo
u21 = g1 (ht ), u2nx +1 = g2 (ht )
h2
u2i = u0(xi1 ) + ht v0 (xi ) + t fi1 , 2 i nx .
2 2
3. Terceiro, para k = 2, 3, . . . , nt
u1k+1 = g1 (kht ), uk+1
nx +1 = g2 (kht )
uk+1
i = uki1 + 2(1 )uki + uki+1 uk1
i + h2t fik , 2 i nx .
D. Andrade Clculo Numrico 271
0.8
1 4
ut (x, 0) = 0, x [0, ]
Exemplo 12.8.2
Consideremos o seguinte problema de
valor inicial e fronteira para onda
1
0.8
0 0
u(0, t) = u(, t) = 0, t [0, 1]. 0.2 0.5
0.4 1
t 1.5
x
0.6 2
A soluo exata desse problema u(x, t) = 0.8
1 3
2.5
ut = uxx , 0 x 1, 0 t T
u(0, t) = 0
u(1, t) = 0
u(x, 0) = x(1 x))
ut = uxx , 0 x 1, 0 t T
u(0, t) = 0
u(1, t) = 0
u(x, 0) = sin(x)
Tome xi = 5i , i = 0, 1, 2, 3, 4, 5 e tj = 1
100
,j = 0, 1, . . . , 50. Determine as solues para
estes nves de tempo t1 e t2 .
Notao
R nmeros reais
Q nmeros racionais
Z nmeros reais
N nmeros inteiros: {0, 1, 2, . . .}
C nmeros complexos
{. . . | . . .} conjunto de . . . tais que . . .
(x1 , x2 , . . . , xn , . . .) sequncia; como conjunto mas ordenados
(xn ) sequncia
V, W, U espaos vetoriais
A, M, N, L, U matrizes
~v, w~ vetores
~0, ~0V vetor nulo, vetor nulo de V
, bases
n = {~e1 , . . . , ~en } base cannica para Rn
~ ~
, base de vetores
Pn conjunto dos polinmios de grau n
Mm,n conjunto das matrizes m n
[S] espao gerado pelo conjunto S
M N soma direta de subespaos
[ai,j ] matriz de entradas de linhas i, colunas j
det T determinante da matriz T
C[a, b] espao vetorial das funes reais contnuas em [a, b]
D. Andrade Clculo Numrico 275
Alfabeto grego
[5] H. B. Keller. Numerical Methods for two-point boundary -value problems. Dover,
New York, 1992.
[6] Erwin Kreyszig, Introduction Functional Analysis with Applications. John Willey
& Sons, 1978.
[7] Avner Friedman, Foundations of Modern Analysis. Holt, Reinehart and Winston,
Inc., 1970.
[8] R. A. DeCarlo. Linear Systems. Prentice Hall, Inc. Englewood Cliffs, NJ, 1989.
[10] G. Golub & C. F. Van Loan. Matrix Computations. The Johns Hopkins University
Press, 1985.
276