Documente Academic
Documente Profesional
Documente Cultură
Captulo 1
Aritmtica computacional
A anlise numrica a disciplina da matemtica que se ocupa da elaborao e estudo de
mtodos que permitem obter, de forma efectiva, solues numricas para problemas matemticos, quando, por uma qualquer razo, no podemos ou no desejamos usar mtodos
analticos.
Para perceber melhor o que se pretende dizer por de forma efectiva, consideremos o
problema do clculo do determinante. Como sabido, o determinante de uma matriz
quadrada A = (aij )ni,j=1 dado pela expresso
det (A) =
a1i1 anin ,
Aritmtica computacional
tempo; o facto de no ser possvel realizar os clculos podia passar de mero detalhe tcnico.
Afinal de contas, o problema dos dois corpos (isto , dois corpos que interagem por via da fora
gravitacional, como a Terra e o Sol) tinha uma soluo muito simples, que era estudada no
primeiro ano das universidades. O facto que a soluo analtica deste problema impossvel
de obter! Resta-nos assim recorrer soluo numrica.
O estabelecimento das vrias leis da fsica permitiu aos matemticos e aos fsicos obter
modelos para a mecnica dos slidos e dos fluidos. As engenharias mecnica e civil usam
esses modelos como sendo a base para os mais modernos trabalhos em dinnica dos fluidos
e em estruturas slidas, e a anlise numrica tornou-se uma ferramenta essencial para todos
aqueles que pretendem efectuar investigao nessas reas da engenharia. Por exemplo, a
construo de estruturas modernas faz uso do chamado mtodo dos elementos finitos para
resolver as equaes com derivadas parciais associadas ao modelo; a dinmica dos fluidos
computacional actualmente uma ferramenta fundamental para, por exemplo, desenhar
avies; a elaborao de novos materiais outro assunto que recorre, de forma intensa, a
algoritmos numricos. A anlise numrica pois uma rea que tem assumido crescente
importncia no contexto das cincias da engenharia.
No processo de resoluo de um problema fsico podemos distinguir vrias fases.
1. Formulao de um modelo matemtico que descreve uma situao real. Tal formulao pode ser feita recorrendo a (sistemas de) equaes algbricas, transcendentes,
integrais, diferenciais, etc. necessrio ter muito cuidado nesta fase uma vez que a
grande complexidade dos problemas fsicos pode-nos obrigar a fazer simplificaes no
modelo, simplificaes essas que no devem alterar grandemente o comportamento
da soluo.
2. Obteno de um mtodo numrico que permite construir uma soluo aproximada para
o problema. Um mtodo numrico que possa ser usado para resolver o problema
traduzido por algoritmo que no mais do que um completo e no ambguo conjunto
de passos que conduzem soluo do problema. Esta fase constitui o cerne da anlise
numrica. Dado um determinado mtodo numrico, temos necessidade de saber em
que condies as solues por ele obtidas convergem para a soluo exacta; em que
medida pequenos erros de arredondadmento (e outros) podero afectar a soluo
final; qual o grau de preciso da soluo aproximada obtida, etc.
3. Programao automtica do algoritmo. Nesta fase teremos necessidade de recorrer a
uma linguagem de programao como o Fortran, o Pascal, o C++, entre outras. Mais
recentemente usual o recurso a programas como o Mathematica ou o Matlab.
Os algoritmos numricos so quase to antigos quanto a civilizao humana. Os babilnios, vinte sculos antes de Cristo, j possuiam tabelas de quadrados de todos os inteiros
entre 1 e 60. Os egpcios, que j usavam fraces, inventaram o chamado mtodo da falsa
posio para aproximar as razes de uma equao. Esse mtodo encontra-se descrito no
papiro de Rhind, cerca de 1650 anos antes da era crist.
Na Grcia antiga muitos foram os matemticos que deram contributos para o impulso
desta disciplina. Por exemplo, Arquimedes de Siracusa (278-212, a.C.) mostrou que
3
1
10
<<3
71
7
Aritmtica computacional
est muito prximo do que hoje se faz em anlise numrica; por outro lado, foi tambm
um importante precursor do desenvolvimento do clculo integral por Newton e Gottfried
Wilhelm von Leibniz (1646-1716).
Heron de Alexandria (10-75), no sculo I, deduziu um procedimento para determinar
1.1
Aritmtica computacional
mecanismos que nos permitam determinar limites superiores para os erros obtidos no final
do processo de clculo.
Definio 1.1 (Erro) Seja x Rn um vector cujas componentes so desconhecidas e x
Rn um vector cujas componentes so aproximaes para as componentes correspondentes
de x. Chama-se erro de x (como aproximao a x), e representa-se por e(x), quantidade
e(x) = x x.
Na prtica, o valor do erro usado, geralmente, em norma. No caso real (n = 1), por
exemplo, para a maioria dos problemas, no relevante saber se o erro foi cometido por
defeito ou por excesso. Vamos, ento relembrar o conceito de norma vectorial.
Definio 1.2 (Norma) Seja E um espao vectorial (real ou complexo). A aplicao
k k : E R+
0 que verifica
1. x E,
kxk = 0 x = 0,
2. x E, R (ou C),
3. x, y E,
kxk = ||kxk,
kx + yk kxk + kyk,
n
X
i=1
v
u n
uX
kxk2 = t
|xi |2 , (norma euclidiana);
i=1
provar que kxk1 nkxk2 , kxk2 nkxk , kxk1 nkxk . Ento, para um dado n, as
diferentes normas diferem numa constante multiplicativa e, como tal, so equivalentes: se
uma delas se torna pequena, todas as outras sero proporcionalmente pequenas.
Vamos agora introduzir os conceitos de erro absoluto e relativo.
Aritmtica computacional
Definio 1.3 (Erro absoluto) Seja x Rn um vector cujas componentes so desconhecidas e x Rn um vector cujas componentes so aproximaes para as componentes
correspondentes de x. Chama-se erro absoluto de x quantidade ke(x)k.
Definio 1.4 (Erro relativo) Seja x Rn , x 6= 0, um vector cujas componentes so
desconhecidas e x Rn um vector cujas componentes so aproximaes para as componentes correspondentes de x. Chama-se erro relativo de x, e representa-se por r(x),
quantidade
r(x) = ke(x)k/kxk.
Como na definio de erro relativo o valor de x no conhecido, usual considerar a
aproximao r(x) ke(x)k/kxk. Melhor ainda, atendendo a que
kxk |kxk ke(x)k|,
podemos considerar o majorante
r(x)
ke(x)k
.
|kxk ke(x)k|
F (x) F (x)
+
F (x) F (x)
.
|
|
{z
}
{z
}
erro computacional erro de propagao
1.2
Aritmtica computacional
O aspecto que vamos agora analisar tem a ver com os erros que resultam da forma
como representamos os nmeros reais. O conjunto dos nmeros reais R no pode ser
representado numa mquina de preciso finita. Numa mquina s possvel representar
um seu subconjunto finito F. Os nmeros desse conjunto F so chamados nmeros de vrgula
flutuante. Um nmero real x geralmente truncado pela mquina dando origem a um novo
nmero que (nmero de vrgula flutuante), que se designa por fl(x). Em geral, x 6= fl(x).
Alm disso, podemos ter x1 6= x2 e fl(xi ) = fl(x2 ).
Usualmente, um computador guarda um nmero real na forma
x = (1)s (0,a1 a2 . . . at ) e = (1)s m et ,
a1 6= 0,
(1.1)
|e(x)|
3,23 106 < 5 106 .
|x|
|e(x)|
3,63 105 < 5 105 .
|x|
Aritmtica computacional
Em Matlab estes valores podem ser obidos atravs dos comandos realmin e realmax. Um
nmero positivo menor que xmin produz uma mensagem de underflow; um nmero positivo
maior que xmax produz uma mensagem de overflow e armazena-se, em Matlab, na varivel
Inf.
Os elementos de F so mais densos prximos de xmin e menos densos quando se aproximam de xmax . O que se mantm constante a distncia relativa entre os nmeros.
Finalmente, interessa observar que em F no existem formas indeterminadas como 0/0
ou /. Elas produzem o que se chama um not a number, denotado por NaN em Matlab.
Um problema srio a ter em conta em aritmtica de vrgula flutuante o chamado
cancelamento subtractivo que ocorre, normalmente, quando se subtraem dois nmeros com
o mesmo sinal e magnitude semelhantes. Por exemplo,
1,92403 102 1,92275 102 = 1,28000 101 ,
que correcto, e representado de forma exacta, mas tem apenas trs algarismos significativos.
Apesar da exactido do resultado, o cancelamento implica, muitas vezes, perda de
informao com a agravante de os algarismos perdidos no cancelamento serem mais significativos do que os perdidos no arredondamento. Por isso, geralmente uma m ideia
calcular uma quantidade pequena como a diferena de duas quantidades grandes. Somar
sries alternadas, tais como
ex = 1 + x +
x2 x3
+
+ ,
2
3!
Aritmtica computacional
para x < 0, pode dar resultados catastrficos. Outro exemplo, pode ser dado no clculo do
desvio padro. Como se sabe, a mdia e o desvio padro de uma amostra {x1 , x2 , . . . , xn }
so dados por
!1
n
n
2
1 X
1X
2
xi , e =
(xi x
)
.
x
=
n
n1
i=1
i=1
n
X
1
n1
i=1
!! 1
x2i n
x
muitas vezes usada mas o cancelamento subtractivo mais perigoso que na frmula
anterior.
Os erros de truncatura ou de discretizao so, por definio, os erros que surgem quando
se passa de um processo infinito para um processo finito ou quando se substitui um processo
contnuo por um discreto. A ttulo de exemplo, considere-se o conhecido Teorema do Valor
Mdio, estabelecido por Joseph Louis Lagrange (1736-1813).
Teorema 1.1 (Valor Mdio de Lagrange) Se f for uma funo contnua em [a, b] e
diferencivel em ]a, b[ ento existe pelo menos um ]a, b[ tal que
f (b) f (a)
.
ba
f () =
a
-0.4
-0.2
0.2
b
0.4
0.6
0.8
f (b) f (a)
,
ba
f (x + h) f (x)
.
h
Aritmtica computacional
1
1+
M
M
Outro exemplo onde surgem este tipo de erros dado pela chamada aproximao de Taylor
que iremos considerar na prxima seco.
1.3
O polinmio de Taylor
Seja f uma funo real definida num intervalo [a, b] R. Um problema que frequentemente
se coloca o de determinar uma funo g definida em [a, b] tal que |f (x) g(x)| < , para
todo o x [a, b], com > 0 uma tolerncia dada. A existncia de soluo para tal problema
dada pelo Teorema de Weierstrass, devido a Karl Wilhelm Theodor Weierstrass (1815-1897).
Teorema 1.2 (Weierstrass) Seja f uma funo contnua definida em [a, b]. Ento para
cada > 0 existe um polinmio p definido em [a, b] tal que
max |f (x) p(x)| < .
x[a,b]
Notemos a grande importncia deste resultado. De acordo com ele, podemos ter a
certeza que dada uma funo contnua f qualquer existe sempre um polinmio p que est
to prximo de f quanto se queira. Assim sendo, este resultado legitima a aproximao
polinomial, isto , a tarefa de, dada uma funo, procurar um polinmio que a aproxime.
No entanto, o teorema anterior no nos diz como podemos construir esse polinmio; ele
apenas garante a existncia.
Consideremos agora o seguinte teorema, apresentado sem demonstrao, devido a Brook
Taylor (1685-1731).1
Teorema 1.3 (Taylor) Se f admite derivadas contnuas at ordem n (inclusiv) em
[a, b], isto , se f C n ([a, b]), e se f (n+1) existir em ]a, b[ ento, para todo o x, x0 [a, b],
f (x) = Pn (x; x0 ) + Rn (x; x0 ),
onde
Pn (x; x0 ) =
n
X
f (k) (x0 )
k=0
e
Rn (x; x0 ) =
k!
(1.2)
(x x0 )k
f (n+1) ()
(x x0 )n+1 ,
(n + 1)!
I{x, x0 },
10
Aritmtica computacional
Atente-se ao grande interesse prtico deste resultado que afirma que, mediante certas
condies, uma funo pode ser escrita como a soma de um polinmio com um resto.
Escolhendo valores de x e x0 tais que
(1.3)
lim Rn (x; x0 ) = 0,
n+
temos que, a partir de um valor de n suficientemente grande, a funo dada pode ser aproximada pelo seu polinmio de Taylor. Assim, qualquer operao a efectuar sobre a funo
(derivao, integrao, etc.) poder ser feita sobre o polinmio.
Notemos que a escolha dos valores de x e x0 dever ser feita de modo a que eles
pertenam ao intervalo de convergncia da srie
X
f (k) (x0 )
k=0
k!
(x x0 )k ,
designada por srie de Taylor. Neste curso no iremos dar nfase a esta questo.
O objectivo fundamental dos problemas que surgem neste contexto o de determinar
o menor valor de n que verifica
max
I{x,x0 }
X
xk
k=0
k!
x2 x3
xn
+
+ +
2
6
n!
ex
3x
|xn+1 | <
|xn+1 |,
(n + 1)!
(n + 1)!
32
|2n+1 | 0,5 103 .
(n + 1)!
x > 0.
11
Aritmtica computacional
Por tentativas...
n=9
32 10
2 = 0,254 102
10!
32 11
2 = 0,462 103 .
11!
n = 10
Logo a aproximao pedida
2
1.4
10
X
xk
k=0
k!
= 7,38899470899 7,389.
Problemas
Exerccio 1.5 (Matlab) Escreva um programa para obter os primeiros n termos da sucesso
gerada pela equao de diferenas
x(k+1) = 2,25x(k) 0,5x(k1) ,
a partir dos valores iniciais x(1) =
1
3
e x(2) =
1
12 .
41k
,
3
que decresce, de forma montona, quando k cresce. Explique porque que o grfico
obtido na alnea anterior no est de acordo com este comportamento terico.
Exerccio 1.6 (Matlab) Considere o desenvolvimento em srie de Maclaurin
ex =
X
xk
k=0
Calcule
e12 =
e12
1
e12 .
k!
12
Aritmtica computacional
Exerccio 1.7 O fluxo atravs de uma parte da camada fronteira num fludo viscoso dado
pelo integral definido
Z 0,8
2
1,4(1 e4x )dx.
0
Usando a frmula de Taylor na funo integranda, aproxime o valor do integral com quatro
casas decimais correctas.
Exerccio 1.8 Consideremos uma viga uniforme de comprimento L, suspensa, sujeita a uma
carga uniformemente distribuda, W , e a uma fora compressiva, P , em cada extremo. A
deflexo, D, no ponto mdio dada por
D=
W L2
W EI
,
(sec
(0,5mL)
1)
P2
8P
PV
1,0 0,10
=
= 290o Kelvin = 17o Celsius.
nr
0,082 0,0042
Captulo 2
13
14
2.1
Classes de matrizes
Um matriz com muitos elementos nulos diz-se esparsa; caso contrrio diz-se que a
matriz densa. Sistemas com matrizes esparsas modelam sobretudo problemas onde
existem princpios de influncia local. Note-se que, no caso da ponte, as equaes em
cada nodo apenas envolvem as barras que a se encontram. O seu nmero o mesmo
quer a ponte tenha 50 metros e, digamos, 10 barras, ou 5 km e 1000 barras. Assim,
para uma ponte grande, a maioria dos coeficientes da matriz so nulos.
Como caso particular das matrizes esparsas temos as matrizes banda uma matriz
A = (aij ) uma matriz banda se aij = 0 para todo |ij| > , onde o comprimento
de banda de A e, dentro dessa classe, as chamadas matrizes tridiagonais, isto , as
matrizes com comprimento de banda = 3. Por outras palavras, as matrizes banda
so aquelas cujos elementos no nulos se concentram apenas num conjunto de diagonais paralelas diagonal principal.
Matrizes triangulares
Matrizes simtricas
As matrizes simtricas so aquelas que coincidem com a sua transposta. Uma caracterstica importante das matrizes simtricas o facto de todos os seus valores prprios
serem reais.
Uma matriz A = (aij )ni,j=1 diz-se estritamente diagonal dominante por linhas se
|aii | >
n
X
j=1,j6=i
|aij |,
i = 1, ..., n,
n
X
i=1,i6=j
|aij |
j = 1, ..., n.
A matriz diz-se estritamente diagonal dominante se for estritamente diagonal dominante por linhas ou estritamente diagonal dominante por colunas.
Matrizes simtricas e positivas definidas (SPD)
Uma matriz A, diz-se simtrica e positiva definida se for simtrica e se, para todo o
vector x Rn , no nulo, se tem xT Ax > 0. Nesse caso diz-se que A SPD.
15
xi R n ,
xi 6= 0,
2.2
u22 x2 + + u2n xn = c2
..
..
..
.
.
.
unn xn = cn
e a sua resoluo, caso uii 6= 0, i = 1, . . . , n, feita de acordo com o algoritmo seguinte.
Algoritmo 2.1 Resoluo de um sistema triangular superior
Dados: ci , i = 1, . . . , n, e uij , i = 1, . . . , n, j = i, . . . , n
xn := cn /unn
Para i de n 1 at 1 fazer
P
xi := ci nj=i+1 uij xj /uii
Resultado: xi , i = 1, . . . , n
16
1
2
A=
2
..
.
..
.
n1 n1 n1
n
n
A = Tridiag(, , ),
]T ,
com = [2 , . . . , n
= [1 , . . . , n ]T e = [1 , . . . , n1 ]T .
fcil de demonstrar (ver lgebra Linear) que a decomposio
matrizes
l1
1 u1
2 l2
1 u2
.
.
..
..
..
L=
e U =
.
n1 ln1
n ln
A = LU dada pelas
..
.
1 un1
1
17
2 .
implica que r11 = a11 , r12 = a12 /r11 , r22 = a22 r12
2.3
Seja Mn (R) o conjunto das matrizes quadradas de ordem n com coeficientes reais. Como
este conjunto um espao vectorial podemos nele definir uma norma.
Definio 2.1 (Norma matricial) Seja k.k uma norma vectorial definida em Rn . A
aplicao k k : Mn (R) R+
0 tal que, para todo o A Mn (R),
kAk = sup
x6=0
kAxk
kxk
18
2. A Mn (R), R,
3. A, B Mn (R),
kAk = ||kAk,
kA + Bk kAk + kBk,
j=1,...,n
kAk2 =
n
X
i=1
|aij |;
kAk = max
i=1,...,n
n
X
j=1
|aij |.
v
uX
u n 2
aij .
kAkF = t
i,j=1
2 1 0
A = 1 2 1 .
2 1 0
19
Exerccio 2.4 Mostre que se A SPD ento kAk2 = max , com max o maior valor prprio
da matriz A.
Resoluo: Por definio
kAk2 =
(AT A).
A2 x = Ax = 2 x,
x Rn ,
x 6= 0,
Como A SPD, max > 0 e portanto, max = (A), o que prova o pretendido.
Considere-se, agora, o resultado seguinte.
Teorema 2.2 Seja k.k uma norma em Rn . Ento, para A Mn (R), tem-se
kAxk kAkkxk, x Rn ,
em que kAk a norma de A subordinada norma k.k.
Demonstrao: Notamos que se a norma k.k subordinada a uma norma vectorial
ento, para A Mn (R), temos
kAk = sup
x6=0
kAxk
kAxk
,
kxk
kxk
x Rn , x 6= 0,
kBxk
kABxk
kAk sup
= kAkkBk.
kxk
x6=0 kxk
20
kr(x)k =
(2.1)
kA1 kkb bk
= kAkkA1 kkr(b)k.
kAk1 kbk
A
K(A) = kAkkA1 k
kr(x)k K(A)kr(b)k.
Note-se que se os dados do problema forem obtidos com a preciso da mquina, o erro
relativo da soluo x dado por
kr(x)k K(A)M .
Podemos ento dizer que a soluo calculada perde cerca de log10 (K(A)) dgitos de preciso
relativamente aos dados do problema.
Do exposto podemos afirmar que se o nmero de condio de A for pequeno pequenas
perturbaes no vector dos termos independentes conduzem a pequenas perturbaes no
vector soluo. Neste caso dizemos que o sistema Ax = b e a matriz A so bem condicionados.
Se o nmero de condio for muito grande o sistema Ax = b e a matriz A dizem-se mal
condicionados.
Exerccio 2.5 Determine o nmero de condio de A =
k k1 e k k .
Resoluo: Como
A1
1
0
1 0,5
1 0
2 2
relativamente s normas
, temos:
norma k k1
kAk1 = max{|1| + |2|, |0| + |2|} = 3, kA1 k1 = max{|1| + | 1|, |0| + |0,5|} = 2,
e, como tal, K1 (A) = 6;
1
A ideia de nmero de condio de uma matriz foi introduzida, em 1948, por Alan Mathison Turing (1912-1954), o mesmo que fundou a cincia da computao terica e que cujos trabalhos foram decisivos para o
sucesso do projecto ingls que decifrou o cdigo de encriptao da famosa mquina Enigma, permitindo
pr fim ocupao do Atlntico pelos submarinos alemes durante a II Guerra Mundial.
21
norma k k
kAk = max{|1|+|0|, |2|+|2|} = 4, kA1 k = max{|1|+|0|, |1|+|0,5|} = 1,5,
e, como tal, K (A) = 6.
Apesar do nmero de condio ter dado o mesmo em ambos os casos, tal poderia no
ter acontecido.
Uma matriz ter um nmero de condio muito elevado significa que quase singular.
Por conveno, se A singular, K(A) = . possvel demonstrar que
!
kAxk 1
kAxk
1
inf
kAkkA k = sup
x6=0 kxk
x6=0 kxk
e, como tal, o nmero de condio mede o razo entre o alongamento mximo e o encolhimento mximo que uma matriz provoca em qualquer vector no nulo.
Quando se pretende resolver sistemas lineares mal condicionados usando mtodos directos, a soluo obtida vem, frequentemente, afectada de erro. Nessa medida, usual
considerar mtodos mistos, isto , mtodos iterativos que consideram como aproximao
inicial a soluo obtida pelo mtodo directo. O mtodo iterativo funciona assim como um
corrector do resultado obtido pelo mtodo directo.
2.4
Mtodos iterativos
(2.2)
22
Atendendo a que
x(k+1) = Bx(k) + g P x(k+1) = (P A)x(k) + b P (x(k+1) x(k) ) = b Ax(k) ,
o mtodo (2.2) pode igualmente ser definido por
P (k) = r (k) ,
(k)
= x(k+1) x(k) ,
com
r (k) = Ax(k) b.
O processo iterativo termina quando se cumprirem os critrios de paragem estabelecidos. Os critrios mais comuns so:
1. Critrio do erro absoluto: kx(k) x(k1) k ;
2. Critrio do erro relativo: kx(k) x(k1) k kx(k) k;
3. Critrio do nmero mximo de iteraes: k = kmax .
Os mtodos iterativos so sobretudo usados para matrizes esparsas de grandes dimenses, que surgem frequentemente em problemas de anlise de circuitos ou clculos de estruturas. Para esses problemas, os mtodos iterativos so competitivos face aos mtodos
directos. Para matrizes densas ou de pequena dimenso os mtodos directos so mais
vantajosos.
Exemplo 2.1 Consideremos o seguinte sistema
x1 + 4x2 + 2x3 = 7
que tem soluo nica [x1 , x2 , x3 ]T = [1, 1, 1]T . Para converter o sistema na forma equivalente
x = Bx + g faamos
1
x3 = 2 [x1 4x2 + 7]
Neste caso temos que a matriz B de iterao e o vector g so dados por
0
2/10 5/10
13/10
B = 1/3
0
1/3
e
g = 1/3 .
1/2 4/2
0
7/2
(k+1)
x1
=
(k+1)
x2
=
x(k+1) = Bx(k) + g
x(k+1) =
3
(0)
(0)
(0)
i
(k)
(k)
2x2 5x3 + 13
h
i
(k)
(k)
1
,
3 x1 + x3 + 1
h
i
(k)
(k)
1
2 x1 4x2 + 7
1
10
k = 0, 1, . . . ,
23
n
X
1
(k)
(k+1)
aij xj + bi ,
i = 1, . . . , n.
(2.3)
xi
=
aii
j=1,j6=i
h
i
(k+1)
(k)
(k)
1
x
=
2x
5x
+
13
1
2
3
10
h
i
(k+1)
(k)
(k+1)
,
k = 0, 1, . . . ,
+ x3 + 1
x2
= 31 x1
h
i
(0)
(0)
sendo x(0) = [x1 , x2 , x3 ]T um valor dado. Como se pode ver, este mtodo usa as componentes da nova aproximao logo aps estas terem sido calculadas. Neste caso a matriz de
iterao do mtodo j no to simples de escrever.
n
i1
X
X
1
(k+1)
(k)
(k+1)
xi
=
aij xj + bi ,
aij xj
i = 1, . . . , n.
(2.4)
aii
j=1
j=i+1
2.5
k+
Caso contrrio o mtodo diz-se divergente. A e(k) chama-se erro (absoluto) da iterao k.
Notemos o seguinte resultado cuja demonstrao muito simples.
Teorema 2.4 O mtodo iterativo (2.2) converge, qualquer que seja a aproximao inicial
x(0) , se e s se
lim kB k k = 0.
k+
24
k = 1, 2, . . . .
Assim
e(k) = B k e(0) ,
k = 1, 2, . . . ,
(2.5)
e, como tal,
lim ke(k) k = 0 lim kB k k = 0,
k+
k+
k = 1, 2, . . . .
(2.6)
Demonstrao: Considerando normas em (2.5) obtemos (2.6). Tomando limites e atendendo a que kBk < 1 conclumos que o mtodo convergente.
Notemos que, se B SPD, a expresso (2.6) pode ser substituda por
ke(k) k (B)k ke(0) k,
k = 1, 2, . . . .
(2.7)
Por outro lado, se for conhecido um valor aproximado de kBk (ou (B)), de (2.6) (ou
(2.7)) poder-se- deduzir o nmero mnimo de iteraes kmin necessrias para reduzir o
erro inicial ke(0) k de um factor . Com efeito, kmin ser o menor inteiro positivo para o
qual kBkkmin (ou (B)kmin ).
O resultado anterior d-nos apenas uma condio suficiente de convergncia. Para
estabelecer uma condio necessria e suficiente de convergncia temos que usar a noo
de raio espectral de uma matriz.
Pelo Exerccio 2.14 podemos concluir que (A) kAk, o que permite estabelecer o
seguinte teorema.
Teorema 2.6 O mtodo iterativo (2.2) converge, qualquer que seja a aproximao inicial
x(0) escolhida, se e s se (B) < 1.
Demonstrao: Se (B) < 1 pode demonstrar-se que existe uma norma matricial tal
que kBk < 1. Logo, pelo teorema anterior, o mtodo converge.
Falta provar que se o mtodo convergir ento o raio espectral da matriz de iterao
menor que um. Vamos demonstrar este facto provando que se o raio espectral de B for
maior ou igual a um podemos definir um processo iterativo de forma (2.2) divergente. De
facto, se (B) 1 existe um valor prprio de B tal que || 1. Seja z o vector prprio
associado a esse valor prprio. Considerando, em (2.2), a aproximao inicial x(0) = z e
g = z temos
x(1) = Bz + z = z + z = (1 + )z.
25
...,
x(k)
k
X
j z.
= Bx(k1) + z =
j=0
A = P (P A),
(2.8)
(2.9)
com B = P 1 (P A) e g = P 1 b.
A escolha dos diferentes mtodos iterativos depende da forma como se define a partio
(2.8), isto , como se define o pr-condicionador P . Para definir os mtodos de Jacobi e
Gauss-Seidel, considera-se A = D L U, em que
aii
a22
D=
,
..
L=
0
a21
..
.
0
..
.
..
.
an1 an,n1 0
ann
0 a12
a1n
..
.
.
.
.
.
.
.
U =
0 an1,n
0
26
Mtodo de Jacobi
1. (D 1 (L + U )) < 1 o mtodo converge;
2. kD 1 (L + U )k < 1 o mtodo converge;
Mtodo de Gauss-Seidel
1. ((D L)1 U ) < 1 o mtodo converge;
2. k(D L)1 U k < 1 o mtodo converge.
12
aa1n
0
aa11
11
a21
0
aa2n
a22
22
1
.
B = D (L + U ) = .
..
..
..
..
.
.
.
n1
aann
n2
aann
n
1
X
kBk = max
|aij | < 1.
i=1,...,n |aii |
j=1,j6=i
Assim, pelo Teorema 2.5, temos que o mtodo de Jacobi converge para a soluo de Ax = b,
qualquer que seja a aproximao inicial escolhida.
Note-se que o teorema anterior nos d apenas uma condio suficiente de convergncia.
Assim, se a matriz do sistema a for estritamente diagonal dominante por linhas os mtodos
de Jacobi e Gauss-Seidel iro gerar sucesses de aproximaes convergentes para a sua
soluo; caso contrrio, nada poderemos afirmar quanto convergncia dessas sucesses.
Exerccio 2.8 Mostre que se A uma matriz estritamente diagonal dominante por colunas,
ento o mtodo de Jacobi converge para a nica soluo do sistema Ax = b, qualquer que seja
a aproximao inicial escolhida.
2.6
Desde a sua primeira aplicao a um problema de astronomia por Gauss2 , o mtodo dos
mnimos quadrados tem vindo a ser aplicado num vasto conjunto de situaes tanto no
campo da cincia como no da engenharia.
2
A questo de saber a quem deve ser dado o crdito do mtodo dos mnimos quadrados deu azo a uma
famosa disputa entre Gauss, que o inventou, por volta de 1790, e Legendre, que o publicou primeiro, em
1805 (no mesmo ano em que Gauss inventou a transformada rpida de Fourier e que tambm no publicou).
27
1 x1
y1
1 x2
y2
1 x3 a
y3
1 x4 b = y 4 .
1 x5
y5
1 x6
y6
Determinao de cotas em topografia. Obtiveram-se as cotas xi de um conjunto de
pontos i = 1, 2, 3, 4 relativamente uns aos outros, tendo-se tomado a cota do ponto i = 4
como referncia. As relaes obtidas foras as seguintes:
x1 x2 = 1,0
2 x3 = 2,0
x3 x4 = 1,5
.
x
1 x4 = 3,0
x x3 = 2,8
1
x2 x4 = 3,0
Em notao matricial, e fazendo x4 = 0, temos o sistema impossvel
1 1 0
1,0
0 1 1
2,0
x1
0 0
x2 = 1,5 .
1 0
3,0
1 0 1 x3
2,8
0 1
0
3,0
(2.10)
Ax = b
.. = .. .
..
..
..
..
.
.
.
.
.
.
1 (xm ) 2 (xm ) . . . n (xm )
cn
ym
28
Como vimos temos muitas vezes que considerar sistemas Ax = b, com A Mmn (R),
m > n, impossveis. Nesses casos o resduo Ax b diferente de zero, isto ,
r(x) = Ax b 6= 0,
x Rn .
1
0 0 1 1 0
AT A = 1 1 0 0 0 1
0 1 1 0 1 0
1 1 0
0 1 1
3 1 1
0 0
1
= 1 3 1
1 0
0
1 1 3
1 0 1
0 1
0
1
0 0 1 1 0
AT b = 1 1 0 0 0 1
0 1 1 0 1 0
1,0
2,0
1,5
3,0
2,8
3,0
6,8
= 4,0 .
3,3
x
b1
b2 , soluo dos mnimos quadrados do sistema, dado por
Assim, o vector x
b= x
x
b3
3 1 1
x
b1
6,8
AT Ab
x = AT b 1 3 1 x
b2 = 4,0 .
1 1 3
x
b3
3,3
29
3 1 1
1 3 1
1 1 3
3 1 1 6,8
3 1 1 6,8
0 8 4 18,8 0 8 4 18,8 .
L3 = L3 + (1/2)L2
0 4 8 3,1
0 0
6
6,3
x
b1
3,575
x
b= x
b2 = 2,875 .
x
b3
1,05
= y0
a0 + a1 x0 + a2 x20 + + an xn0
a0 + a1 x1 + a2 x2 + + an xn
=
y1
1
1
.
..
a0 + a1 xm + a2 x2m + + an xnm = ym
que pode ser escrito na forma matricial
1 x0
1 x1
Ax = b
..
..
.
.
1 xm
xn0
xn1
.
..
. ..
xnm
a0
a1
..
.
an
y0
y1
..
.
ym
m
X
m
X
xni
xi
m+1
i=0
i=0
X
m
m
m
X
X
xn+1
x
x
i
i
i
i=0
i=0
i=0
..
..
..
..
.
.
.
.
X
m
m
m
X
X
x2n
xn+1
xni
i
i
i=0
i=0
i=0
b
a0
b
a1
..
.
b
an
m
X
yi
i=0
m
X
y i xi
=
i=0
..
X
m
yi xni
i=0
(2.11)
30
(b
a0 , b
a1 , . . . , b
an ) =
min
ai ,i=0,...,n
(a0 , a1 . . . , an ),
m
X
(yi a0 a1 xi an xni )2 .
(a0 , a1 . . . , an ) =
i=0
a0 ,a1
m
X
(yi a0 a1 xi )2 .
i=0
O ponto (b
a0 , b
a1 ) onde esta funo atinge o mnimo satisfaz as condies
m
X
(yi b
a0 b
a1 x i ) = 0
a0 , b
a1 ) = 0
a (b
i=0
0
(b
a0 , b
a1 ) = 0
(yi b
a0 b
a1 xi )xi = 0
a1
i=0
m
X
X
yi
xi "
m+1
#
b
a
0
i=0
i=0
= m
m
m
b
X
X
X
a1
x2i
y i xi
xi
i=0
i=0
i=0
(2.12)
(yi b
a0 b
a1 x i , b
an xni )
= 0
(b
a0 , b
a1 , . . . , b
an ) = 0
a0
i=0
..
..
.
.
(b
a0 , b
a1 , . . . , b
an ) = 0
(yi b
a0 b
a1 x i , b
an xni )xni = 0
an
i=0
31
1
A=
..
.
1
"
#
b
a0
, x
b=
b
a1
e b=
y0
y1
..
.
ym
0,06
0,08
0,14
0,14
0,25
0,20
0,31
0,23
0,47
0,25
0,60
.
0,28
Usando a recta dos mnimos quadrados, obtenha uma estimativa para a deformao correspondente a uma tenso de = 0,08 N/cm2 .
Resoluo: O sistema de equaes normais que perminte obter
a0 + a1 pode ser escrito na forma AT Ax = AT b, com
1 0,06
1 0,14
1 0,25
a0
A=
e b=
, x=
a1
1 0,31
1 0,47
1 0,60
ou seja, dado por
T
A Ax = A b
cuja soluo
6
1,83
1,83 0,7627
a0
a1
a0
a1
0,09035
0,34857
a recta de regresso =
0,08
0,14
0,20
0,23
0,25
0,28
1,18
0,4312
32
2.7
2.7.1
Problemas
Exerccios para resolver nas aulas
4 1
1 3
e b=
1
2
33
max |ai |
min |ai | .
Exerccio 2.14 Seja A uma matriz real, no singular e de ordem n. Prove que se um
valor prprio de A ento
1
|| kAk.
kA1 k
Exerccio 2.15 Seja A uma matriz simtrica e definida positiva.
1. Mostre que K2 (A) = M /m , onde M e m so, respectivamente, o maior e menor
valor prprio de A em valor absoluto.
2. Mostre que K2 (A2 ) = (K2 (A))2 .
Exerccio 2.16 Seja A a matriz definida por A =
1 a
1 a/2
1
, com inversa A =
.
0 2
0 1/2
1 0 a
1/(1 + a2 )
1
0
A =
2
a/(1 + a )
0 a/(1 + a2 )
1
0 .
2
0
1/(1 + a )
xy
= 1
x 0,99999y = 0
34
1 0 3
A= 2 2 2
e
B=
3 6 4
das matrizes
1 1 3
2 2 2 .
3 6 4
4 1 1
Exerccio 2.21 (Matlab) Verifique que a matriz A = 1 2 0 simtrica e posi1 0 3
T
tiva definida e determine a factorizao LL de A.
Exerccio 2.22 (Matlab) Recorra factorizao LU
x1 + 2x2 + x3 +
3x1 + 7x2 x3
Exerccio 2.23 (Matlab) Determine a factorizao
correndo escolha parcial de pivot:
1 0 3
A = 2 2 2 ;
B=
3 6 4
1
0 1
= 2
= 6
.
= 2
= 8
0 2
3
1 1 1 .
0 1 1
0 < 1.
2
A = 2
0
linear A x = b , com
2 0
2 0
1 3
e b escolhido por forma a que a soluo do sistema seja x = [1, 1, 1]T , sendo um nmero
real positivo.
1. Seja = 0,1. Calcule a factorizao LU com e sem escolha parcial de pivot. Determine
a soluo do sistema linear usando ambas as factorizaes. Calcule kA x
b b k2 , sendo
x
b cada uma das solues obtidas.
2. Mostre experimentalmente que se 0 ento |l32 | (sem efectuar escolha parcial
de pivot). O que acontece ao nmero de condio da matriz A e dos factores L e U
(relativamente norma k k2 ) medida que 0?.
35
1
,
i+j1
i, j = 1, ..., n,
x1 +
5x1 +
3x1 +
a soluo do sistema
x2 x3 = 1
2x2 + 2x3 = 4 :
x2 + x3 = 1
1 2 1
1
2 3 4
1
A=
1 2 2
2
3 7 1 1
2
6
e b=
2 .
8
1
0,00
0,00
2
0,06
0,08
3
0,14
0,14
4
0,25
0,20
5
0,31
0,23
6
0,47
0,25
7
0,60
0,28
8
0,70 ,
0,29
correspondentes aos valores da deformao para diferentes valores da tenso aplicada numa
amostra de tecido biolgico (um disco invertebral). Determine a equao da recta de regresso,
usando processos diferentes: 1. a instruo polyfit; 2. o comando \. Estime o valor da
deformao correspondente a uma tenso igual a 0,9.
36
Exerccio 2.31 (Matlab) O seguinte sistema de equaes foi obtido aplicando a lei da
corrente em rede a um determinado circuito.
25I4 = 200
55I1
37I3 4I4 = 250 .
3 1
3
6
3
3
1
x1
1
2 x2 = 0 ,
7
x3
4
8x + y
x 5y
x + y
partindo do vector inicial x(0) = [0, 0, 0]T , usando o mtodo de Jacobi e o mtodo de Gauss-Seidel. Compare as aproximaes obtidas com a soluo do sistema.
Exerccio 2.34 Para aproximar a soluo (x1 , x2 , x3 ) de um sistema linear Ax = b, recorreu-se ao seguinte mtodo iterativo
(k+1)
(k)
(k)
= 0,6x2 0,6x3 + 1
x1
(k+1)
(k)
(k)
k = 0, 1, . . . .
x2
= 0,6x1 0,6x3 + 1 ,
(k+1)
(k)
(k)
x3
= 0,6x1 0,6x2 + 1
1. Escreva a respectiva matriz de iterao. O mtodo ser convergente para todo o ponto
inicial?
2. O mtodo apresentado pode ser identificado com o mtodo de Jacobi ou com o mtodo
de Gauss-Seidel? Justifique a sua resposta.
3. Sabendo que b = [1, 1, 1]T , obtenha a matriz
4x
Exerccio 2.35 Considere o sistema linear
x
A.
y
z = 2
+ ky +
3z = 4 .
+ 2y + 0,5z = 4
37
x
x
y z = 1
2y + az =
0 , com a R .
+ 2z =
3
6
5 2 3
2 3 1 x = 7 .
0
3 1 5
0
2
1
1
2 .
Exerccio 2.39 Considere a matriz A = 1
0 3 1
1. Mostre que o polinmio caracterstico associado a A P () = 3 7 + 1.
38
0
1
0 1
1
0 x = 0 ,
0
1
9x + 3y + z = 13
x
1.
6x +
8z = 2 ; 2.
x
2x + 5y z = 6
4x
3x + 4y + 5z = 6
3.
2x + 2y 3z = 3 .
2y z = 1
Exerccio 2.43 (Matlab) Uma fbrica de equipamento electrnico produz transistores, resistncias e chips de computadores. Para a respectiva construo, os materiais exigidos so
cobre, zinco e vidro. O nmero de unidades necessrias para cada componente so indicadas
na tabela:
componente
cobre zinco vidro
transistores
4
1
2
.
resistncias
3
3
1
chips de computadores
2
1
3
Numa determinada semana as quantidades de materiais disponveis so 960 unidades de cobre,
510 de zinco e 610 de vidro.
1. Obtenha o sistema que permite determinar o nmero de componentes de cada tipo que
podem ser produzidas naquela semana.
2. Aproxime a soluo do sistema recorrendo aos mtodos de Jacobi e de Gauss-Seidel.
3. Compare os resultados obtidos em na alnea anterior com a soluo exacta.
Exerccio 2.44 Determine a linha recta que melhor se ajusta, no sentido dos mnimos quadrados, aos seguintes pontos (e represente graficamente):
1. (0, 0), (1, 0), (3, 12);
Exerccio 2.45 Determine a soluo no sentido dos mnimos quadrados do sistema (com m
equaes e uma incgnita) x = 1 , x = 2 , . . . , x = m .
Exerccio 2.46 O sistema
x1 + 2x2 = 1
2x1 + 5x2 = 0
3x1 + 7x2 = 2
39
0
0
1
1
3
3
6
,
4
determine:
1. a recta dos mnimos quadrados para o problema descrito;
2. um valor para o lucro previsvel no final do stimo ano.
Exerccio 2.48 Verificar que a recta de regresso passa pelo ponto cuja abcissa a mdia
dos xi , i = 1, . . . , n, e cuja ordenada a mdia dos f (xi ), i = 1, . . . , n.
Exerccio 2.49 (Matlab)Calcule a parbola dos mnimos quadrados para a funo f dada
pela seguinte tabela
xi
f (xi )
0
2,9
0,1
2,8
0,2
2,7
0,3
2,3
0,4
2,1
0,5
2,1
0,6
.
1,7
Exerccio 2.50 Determine as constantes a e b por forma a que y = beax se ajuste aos dados
da tabela
xi 1 1,25 1,5 1,75 2,0
yi 5,1 5,8 6,5 7,5 8,4
no sentido dos mnimos quadrados.
Exerccio 2.51 A presso sistlica p (em milmetros de mercrio) de uma criana saudvel
com peso w (em quilogramas) dada, de forma aproximada, pela equao p = a + b ln w. Use
os seguintes dados experimentais
w
p
20
91
28
99
37
104
51
108
59
111
A=
1
1
1
1
1
2
2
2
2
2
b=
1
2
3
4
5
40
Exerccio 2.53 A lei de Hooke, devida a Robert Hooke (1635-1703), estabelece que a fora
F aplicada a uma mola directamente proporcional ao deslocamento provocado de acordo com
a seguinte relao
F = k(e e0 ),
onde k a constante da mola, e o comprimento da mola quando sujeita fora F e e0 o
comprimento inicial da mola.
No sentido de determinar a constante da mola usaram-se diferentes foras (conhecidas)
tendo sido observados os comprimentos resultantes, dados na seguinte tabela
fora F (em gramas)
comprimento e (em milmetros)
3
13,3
5
16,3
8
19,4
10
.
20,9
Sabendo que o comprimento inicial da mola e0 = 10 mm, determine a melhor estimativa para
a constante da mola no sentido dos mnimos quadrados.
2.7.2
Exerccio 2.54 Considere um barra horizontal fixa numa extremidade e livre no restante do
seu comprimento. Um modelo discreto de foras na barra conduz ao sistema de equaes
lineares Ax = b, onde A a matriz quadrada de ordem n, com estrutura de banda, dada por
9 4
..
.
0
..
.
..
.
6 4
1
4
6 4
1 ..
1 4
.
.
..
..
1 4
5 2
0
0
1 2
1
O vector b dado pela carga que imposta barra (incluindo o seu prprio peso), e o vector
x representa a deformao da barra que queremos determinar. Considermos a barra sujeita a
uma carga uniforme dada por bi = 1, para i = 1, . . . , n. Considerando n = 100, resolva o
sistema usando mtodos directos e mtodos iterativos, comparando a sua eficcia.
Captulo 3
Ax = x,
x 6= 0.
0
1
Cn = 0
..
.
0
matriz companheira
0
0
1
..
.
0 c0
0 c1
0 c2
..
. . ..
. .
.
0 1 cn1
41
42
3.1
Mtodo da potncia
Considere-se A Mn (C) uma matriz com valores prprios i , i = 1, ..., n, tais que
|1 | > |2 | |n |.
Seja xi o vector prprio associado a i , de mdulo 1, isto , tal que kxi k = 1. Se os
vectores prprios de A forem linearmente independentes, o mtodo da potncia, que calcula
a sucesso de vectores x(k+1) = Ax(k) , k = 1, 2, ..., partindo de um vector no nulo x(0) ,
permite obter o vector prprio x1 associado ao maior valor prprio (em mdulo) 1 da
matriz A.
De facto, considere-se x(0) escrito como combinao linear dos vectores prpios de A,
isto ,
n
X
i xi .
x(0) =
i=1
Tal combinao sempre possvel pois assumimos que os vectores prprios de A so linearmente independentes. Ento
x(k) = Ax(k1) = = Ak x(0) =
n
X
ki i xi .
i=1
(k)
k1
1 x1 +
n
X
i k
i=2
i xi
Como 1i < 1, para todo o i > 1, temos que a sucesso converge para um mltiplo de x1 .
Uma vez calculado o vector prprio x1 , por normalizao, o valor prprio 1 calculado
usando o quociente de Rayleigh.
Exemplo 3.1 Considere-se a matriz A e o vector x(0) dados por
1,5 0,5
0
(0)
A=
,
x =
.
0,5 1,5
1
Pelo mtodo da potncia obtemos
k
0
1
2
3
4
5
6
7
8
T
x(k)
0,0 1,0
0,5 1,5
1,5 2,5
3,5 4,5
7,5 8,5
15,5 16,5
31,5 32,5
63,5 64,5
127,5 128,5
(k)
1,8000
1,9412
1,9846
1,9961
1,9990
1,9998
1,9999
2,0000
que, permite antever a convergncia do mtodo para o valor prprio de maior mdulo, que
igual a 2.
43
a partir de y (0) = x(0) /kx(0) k. Com esta normalizao, obtemos o seguinte algoritmo.
Algoritmo 3.1 Mtodo da potncia
Dados: x(0) ,
y (0) :=
x(0)
kx(0) k
T
(0) := y (0) Ay (0)
k := 0
Repete
k := k + 1
x(k) := Ay (k1)
y (k) :=
x(k)
kx(k) k
T
(k) := y (k) Ay (k)
Resultado: 1 (k)
A velocidade de convergncia do mtodo da potncia depende da razo |2 /1 |. Escolhendo um escalar tal que
|2 |
|2 |
<
(3.1)
|1 |
|1 |
a convergncia do mtodo da potncia pode ser acelerada.
Exerccio 3.1 Mostre que, se um valor prprio de A,
1. um valor prprio de A I, com I a matriz identidade da mesma ordem da
matriz A;
2. com A uma matriz invertvel, ento 1 um valor prprio de A1 .
Atendendo ao exerccio anterior, temos que a convergncia do mtodo da potncia pode
ser acelerada se considerarmos, na aproximao do valor prprio de maior mdulo da matriz
A I, um que verifique (3.1). Para calcular o valor prprio de maior mdulo de A
basta adicionar ao resultado.
Atendendo ainda ao exerccio anterior podemos concluir que o mtodo da potncia
permite calcular o menor valor prprio (em mdulo) de uma matriz A, calculando o maior
valor prprio da sua inversa. Neste caso, temos o esquema iterativo
Ax(k) = y (k1) ,
44
que evita o clculo explcito da matriz inversa. O mtodo inverso da potncia pode ser usado
de forma muito eficaz se uma boa aproximao para o valor prprio de menor mdulo da
matriz A for conhecida. Essa aproximao pode ser obtida pelo quociente de Rayleigh, de
acordo com o esquema iterativo
T
k = y (k1) Ay (k1) ,
(A k I)x(k) = y (k1) ,
y (k) = x(k) /kx(k) k.
Suponhamos agora que pretendemos calcular o valor prprio de A que est mais
prximo de , com um nmero real ou complexo. Neste caso, o menor valor prprio
de A I min = 0. Para calcular procede-se da seguinte forma, cuja
justificao se encontra expressa no exerccio anterior: calcula-se min , o menor valor
prprio (em mdulo) de A I, pelo mtodo inverso da potncia; faz-se = min + .
Para ter uma ideia onde se situam os valores prprios de uma matriz A = [ai,j ]ni,j=1 ,
podem usar-se os crculos de Gershgorin
X
(l)
Ci = z C : |z aii |
|aij | ,
, i = 1, ..., n,
j=1,j6=i
ou
(c)
Cj
z C : |z ajj |
n
X
i=1,i6=j
|aij | ,
j = 1, ..., n,
(l)
(c)
chamam-se, respec-
3.2
45
1 t12 t1n
2 t2n
lim A(k) = T =
..
k+
.
n
com
3.3
Uma matriz diz-se diagonalizvel se for semelhante a uma matriz diagonal. Prova-se facilmente que se A Mn (C) tiver n vectores prprios linearmente independentes, ento
U 1 AU = , com U a matriz cujas colunas so os vectores prprios de A e a matriz
diagonal formada pelos correspondentes valores prprios.
Se A for uma matriz real simtrica a decomposio em valores prprios A = U U 1
sempre possvel e as colunas de U so os vectores prprios de A que podem ser escolhidos
por forma a constituir uma base ortonormada de Rn . Nesse caso, a matriz U uma matriz
ortogonal (unitria no caso complexo) uma vez que U T U = U U T = I e a decomposio
em valores prprios pode ser escrita na forma A = U U T
Consideremos agora uma matriz arbitrria A Mmn (R) (a generalizao para o caso
complexo pode ser feita facilmente). Neste caso prova-se que a decomposio em valores
singulares
A = U V T
(3.2)
existe sempre, com U Mm (R) e V Mn (R) duas matrizes ortogonais e Mmn (R)
uma matriz diagonal de elemento genrico
0,
i 6= j,
ij =
i 0, i = j.
Os elementos i da diagonal so chamados valores singulares da matriz A e podem ser
ordenados na forma
1 2 p ,
com p = min{m, n}. As colunas ui de U e vi de V so chamados os vectores singlares
esquerdos e direitos, respectivamente.
Exemplo 3.2 Seja
1 2 3
4 5 6
A=
7 8 9 .
10 11 12
46
25,5
0
0
0,141 0,825 0,420 0,351
0
0,344 0,426
1,29 0
0,298
0,782
=
0
0
0,547 0,0278 0,664 0,509 0
0
0
0
0,750 0,371 0,542 0,0790
0,505
0,574 0,644
O seguinte resultado mostra que o nmero de valores prprios no nulos de uma matriz
coincide com a caracterstica dessa matriz.
Teorema 3.1 Se A Mmn (R) tiver caracterstica r, ento A tem r valores singulares
positivos.
Demonstrao: Uma vez que U quadrada e com caracterstica m e que V T quadrada
e com caracterstica n, sabemos, pelas propriedades da caracterstica de uma matriz, que
car(A) = car(U V T ) = car().
Mas uma matriz em escada com r pivots (os valores singulares s positivos), o que
mostra o pretendido.
Os vectores singulares esquerda (as colunas da matriz U ) contm uma base para o
espao das colunas de A. Os vectores singulares direita (as colunas da matriz V ) contm
uma base para o espao nulo de A. Estes factos so enunciados e provados de seguida.
Teorema 3.2 Seja A Mmn (R) uma matriz com caracterstica r. Seja A = U V T a
sua decomposio em valores singulares. Ento:
1. Uma base para C(A) dada por u1 , . . . , ur .
2. Uma base para N (A) dada por vr+1 , . . . vn .
Demonstrao: Como dim(C(A)) = r e dim(N (A)) = n r e quer as colunas de U
quer as de V so linearmente independentes, basta provar que ui C(A), i = 1, . . . , r, e
que vi N (A), i = r + 1, . . . , n.
fcil verificar que ui C(A), para um dado i {1, . . . , r}, multiplicando A por vi :
Avi = U V T vi = U ei = i U ei = i ui ,
em que ei designa a i-sima coluna da matriz identidade de ordem n. Como Avi C(A),
tem-se que ui = (1/i )Avi C(A).
Para mostrar que vi N (A), com i {r + 1, . . . , n}, calcula-se, novamente, o mesmo
produto Avi , mas desta vez com ndices i correspondentes s colunas nulas de , obtendo-se
Avi = U V T vi = U ei = 0.
Notemos a relao que existe entre a decomposio em valores singulares e a decomposio em valores prprios. Consideremos a matriz simtrica AT A que tem todos os seus
valores prprios so reais. Temos que
AT A = (U V T )T (U V T ) = V T (U T U )V T .
Como U ortogonal, U T U = I e ento
AT A = V 2 V T .
A matriz 2 = T Mn (R). Observamos, assim, que AT A e 2 so semelhantes (pois
V T = V 1 ) e, como tal, tm os mesmos valores prprios. Logo, se A tiver caracterstica r,
os valors prprios no nulos de AT A so 1 , . . . , r . Provmos, assim, o seguinte teorema.
47
Teorema 3.3 Seja A Mmn (R) uma matriz com caracterstica r. Ento, os r valores
singulares no nulos de A so as razes quadradas dos r valores prprios de AT A.
Exemplo 3.3 Pretende-se calcular a decomposio em valores singulares de
2 2
A=
.
1 1
Para isso, calculam-se os valores prprios de
T
A A=
5 3
3 5
1
2
2 2
2
e V =
1/2 1/ 2
.
1/ 2 1/ 2
2 2
1 1
0
0
1/ 2
u1 =
.
=
1
2
1/ 2
2 2
1/ 2 1/2
1 0
2 2
.
=
1 1
0 1
1/ 2 1/ 2
2
Exemplo 3.4 Calculemos, agora, a decomposio em valores singlares de
1 0
A = 0 2 .
0
2
Como
AA =
tem-se que
1 0
0 4
2 0
= 0 1 .
0 0
48
Para determinar a matriz ortogonal U , temos que as duas primeiras colunas so obtidas fazendo
ui =
1
Avi ,
i
ou seja
0
1 0
1
0
= 1/2 ,
u1 = 0 2
1
2
0
1/ 2
2
1 0
1
1
1
0 2
u2 =
= 0 .
0
1
0
0
2
O vector u3 ser determinado por forma a ser ortogonal a {u1 , u2 } usando o processo de
ortogolalizao de Gram-Schmidt. Obtemos assim
0
u3 = 1/ 2
1/ 2
e ento
A = U V T
0 1
0
2 0
0 1
= 1/2 0 1/ 2 0 1
.
1 0
0 0
1/ 2 0 1/ 2
49
O problema da compresso de imagens pode, tambm, ser abordado usando a decomposio em valores singulares de uma matriz. Com efeito, uma imagem a preto e branco
pode ser representada por uma matriz A Mmn (R), onde m e n so, respectivamente,
o nmero de pixeis nas direces horizontal e vertical e o elemento genrico aij de A representa o nvel de cinzento do (i, j)-simo pixel. Efectuando a decomposio em valores
singulares (3.2) de A, obtemos
A = 1 u1 v1T + 2 u2 v2T + + p up vpT .
Podemos aproximar A pela matriz Ak obtida truncando a soma anterior nos k primeiros
termos, para k = 1, 2, . . . , p. Como os valores singulares i esto por ordem decrescente, se
os ltimos p k forem despresados isso no dever afectar significativamente a qualidade
da imagem. Para transferir a imagem comprimida Ak , bastar transferir os vectores ui , vi
e os valores singulares i , para i = 1, 2, . . . , k, e no todos os elementos de A.
3.4
3.4.1
Problemas
Exerccios para resolver nas aulas
Exerccio 3.2 Seja A uma matriz n n da qual se conhece um vector prprio x. Mostre que
xT Ax
, onde xT denota o vector-linha cuja
x vector prprio associado ao valor prprio =
kxk2
i-sima componente igual ao complexo conjugado de xi .
Exerccio 3.3 Verificar que o mtodo da potncia no permite calcular o valor prprio de
mdulo mximo da seguinte matriz, e explicar porqu:
1/3 2/3
2
3
1
0
1
2
.
A=
0
0 5/3 2/3
0
0
1
0
Exerccio 3.4 Localize, usando os crculos de Gershgorin,
matriz
2
1/2 0 1/2
0
4
0
2
A=
1/2
0
6 1/2
0
0
1
9
Exerccio 3.5 Considere a matriz
5
0
0,5 0,5
0,5
2
0,5 0
.
B=
0
1
0 0,5
0 0,25 0,5 3
Com base no teorema de Gershgorin obtenha um majorante para o maior mdulo de um valor
prprio de B e aproxime esse valor prprio efectuando duas iteraes do mtodo da potncia.
Exerccio 3.6 Mostrar que as matrizes A(k) construdas nas iteraes do mtodo QR so
todas semelhantes matriz A.
50
1 2 0
0,1 3,8 0
0 1 0
A1 = 1 0 0 ;
A2 = 1
0 0 ;
A3 = 1 0 0 .
0 1 0
0
1 0
0 1 0
Exerccio 3.8 (Matlab) Verificar que o mtodo da potncia no permite calcular o valor
prprio de mdulo mximo da seguinte matriz, e explicar porqu:
1 2
2
3
3
3
1 0 1 2
A=
0 0 5 2 .
3
3
0 0 1
0
Exerccio 3.9 (Matlab) Tm sido propostos vrios modelos matemticos com o objectivo
de prever a evoluo de determinadas espcies (humanas ou animais). O modelo de populao
mais simples, introduzido por Lotka em 1920 e formalizado por Leslie vinte anos mais tarde,
baseado nas taxas de mortalidade e fecundidade para diferentes intervalos de idade, digamos
(t)
i=0,...,n. Seja xi o nmero de fmeas (os machos no intervm neste contexto) cujas idades
(0)
no tempo t pertencem ao i-simo intervalo. Os valores de xi so conhecidos. Alm disso,
seja si a taxa de sobrevivncia das fmeas que pertencem ao i-simo intervalo, e mi o nmero
mdio de fmeas geradas por uma fmea no i-simo intervalo de idade.
O modelo de Lotka e Leslie definido pelas equaes
(t+1)
xi+1
(t)
xi s i ,
i = 0, ..., n 1,
(t+1)
x0
n
X
(t)
xi m i .
i=0
m0 m1
s0
0
A=
s1
0
..
.
..
.
0
0
...
... mn
...
...
0
..
..
.
...
.
.
.
..
..
.
.
.
.
0 sn1 0
Pode mostrar-se que que a dinmica desta populao determinada pelo valor prprio de
mdulo mximo de A, digamos 1 , enquanto que a distribuio dos indivduos nos diferentes
intervalos de idade (normalizada pela populao total), obtm-se como o limite de x(t) para
t + e verifica Ax = 1 x.
51
2 12 0 21
5
0
1
4
0
2
2
A=
B=
1 0 6 1 ;
0
2
2
0
0 1 9
0
0
2
1
1
4
1
2
1
2
1 .
2
3
Exerccio 3.11 (Matlab) Use o comando eig para determinar todos os valores prprios das
matrizes do exerccio anterior.
1 1
Exerccio 3.12 Considere a matriz de Fibonacci A =
.
1 0
1. Determine os valores prprios e os vectores prprios unitrios de AT A e AAT .
2. Calcule a decomposio em valores singulares da matriz A.
Exerccio 3.13 Se A Mmn (R), com decomposio em valores singulaes A = U V T , e
b R, prove que a soluo x
b do problema dos mnimos quadrados correspondente ao sistema
Ax = b dada por
x
b = V + U T b,
onde + obtida transpondo e invertendo as suas entradas no nulas.
Exerccio 3.14 Prove que a pseudo-inversa A+ da matriz A Mmn (R) verifica as chamadas condies de Moore-Penrose:
1. AA+ A = A;
2. A+ AA+ = A+ ;
T
3. (AA+ ) = AA+ ;
T
4. (A+ A) = A+ A.
Exerccio 3.15 Mostre que se A Mn (R) no singular, A+ = A1 .
52
3.4.2
Iyy = 0,12 Kg m2 ,
Ixx Ixy
Iyx Iyy
P
P
2 + z2)
m
(y
m
x
y
m
x
z
i
i
i
i
i
i
i
i
i
P
P
P
2
2
J = Pmi yi xi )
mP
mi yi zi .
i (xi + zi ) P
mi zi xi
mi zi yi
mi (x2i + yi2 )
2. Com base no exerccio anterior, determine o maior momento de inrcia principal e o seu
eixo associado, usando o mtodo da potncia com erro relativo inferior a 103 e partindo
de v = [2, 1,5, 0]T .
Captulo 4
Equaes no lineares
A soluo de equaes e sistemas de equaes um captulo em que a anlise numrica encontra uma soluo bastante precisa. Vamos agora expor alguns mtodos que nos permitem
obter aproximaes para as solues reais de uma equao real da forma
(4.1)
f (x) = 0,
b b2 4ac
,
a 6= 0.
x=
2a
Exemplo 4.2 As razes da equao
x3 + px2 + qx + r = 0
podem ser obtidas pelo processo que se segue, devido a Scipione del Ferro (1465-1515) e
Niccol Tartaglia (1499-1557), publicado pela primeira vez por Gerolamo Cardano (1501-1576).
Fazendo a mudana de varivel x = z p3 obtm-se a equao
z 3 + az + b = 0,
onde
1
e
a = (3q p2 )
3
As razes desta nova equao so dadas por
z1 = A + B,
z2 =
onde
A=
s
3
b=
1
(2p3 9pq + 27r).
27
A + B A B
+
3,
2
2
b
+
2
b2
4
a3
27
B=
53
z3 =
s
3
A + B A B
3,
2
2
b2
a3
+ .
4
27
54
Equaes no lineares
p
x2 = z2 ;
3
p
x3 = z3 .
3
4.1
Mtodos iterativos
Consideremos o problema (4.1). A filosofia dos mtodos iterativos consiste em, partindo
de uma aproximao inicial x(0) para uma soluo do problema, gerar uma sucesso de
valores
x(k+1) = (x(k) ),
k = 0, 1, 2, . . . ,
(4.2)
que seja convergente para essa soluo.
Definio 4.1 (Convergncia) O mtodo iterativo (4.2) diz-se convergente para se
lim |e(k) | = 0,
k+
(4.3)
Equaes no lineares
55
4.2
Num processo iterativo necessrio determinar uma estimativa inicial para a soluo do
problema a resolver. Por vrias razes, algumas delas bvias, de todo o interesse que essa
aproximao esteja o mais prximo possvel da soluo exacta. Existem vrios processos
que permitem encontrar essas aproximaes iniciais.
Exemplo 4.3 As solues de x2,1 4x + 2 = 0 podem ser aproximadas inicialmente pelas
solues de x2 4x + 2 = 0.
Exemplo 4.4 Se pretendermos
aproximar a maior raiz de x5 x 500 = 0 podemos tomar
5
para aproximao inicial x 500 = 3,468.
As tcnicas usadas nos exemplos anteriores so muito intuitivas e no podem ser generalizadas a uma gama elevada de problemas. O processo mais usual de obter uma aproximao inicial consiste em tentar obter graficamente um intervalo que contenha a raiz do
problema (4.1) que pretendemos calcular. Ora, o traado grfico da funo f pode no ser
evidente e constituir, em si, um processo de complicada resoluo sem recurso a software
56
Equaes no lineares
apropriado. Este problema pode ser contornado se reescrevermos a equao (4.1) na forma
equivalente
f1 (x) = f2 (x),
(4.4)
sendo f1 e f2 funes cujo traado grfico seja mais simples que o de f . Assim as razes de
(4.1) sero as solues de (4.4), isto , os pontos de interseco de f1 com f2 .
O processo de determinao grfica de um intervalo que contm a raiz deve ser sempre
acompanhado de uma confirmao analtica. Para isso, conveniente relembrar o seguinte
teorema devido a Bernard Placidus Johann Nepomuk Bolzano (1781-1848).
Teorema 4.1 (Bolzano) Se f for uma funo contnua em [a, b] ento, para todo o y
compreendido entre f (a) e f (b), existe pelo menos um x [a, b] tal que f (x) = y.
Como pode ser verificado, este teorema estabelece um resultado intuitivo: uma funo
contnua para passar de um ponto para outro tem de passar por todos os valores intermdios. Como corolrio imediato do teorema anterior, temos o seguinte resultado.
Teorema 4.2 (Corolrio do Teorema de Bolzano) Se f for uma funo contnua em
[a, b] e se f (a)f (b) < 0 ento existe pelo menos um c ]a, b[ tal que f (c) = 0.
Se, para alm das hipteses do teorema anterior, se verificar que a derivada de f no
muda de sinal no intervalo [a, b], ento a raiz nica nesse intervalo. Temos assim um
critrio para verificar a existncia e unicidade de zero de uma funo contnua f num dado
intervalo [a, b]: se f contnua em [a, b], f (a)f (b) < 0 e f no muda de sinal em [a, b],
ento existe uma e uma s raiz de f (x) = 0 em [a, b].
Exerccio 4.1 Localize graficamente as razes de f (x) = 0, sendo f (x) = |x| ex .
Resoluo: Como f (x) = 0 |x| = ex , traando o grfico de y = |x| e y = ex (Figura 4.1)
verificamos que o seu (nico) ponto de interseco, (a raiz de f (x) = 0), se situa no
intervalo ] 1, 0[.
y=e
2.5
2
1.5
y=|x|
1
0.5
-1
-0.5
0.5
3. f (x) = 1 ex , para x < 0, e como tal f (x) < 0 para todo o x ] 1, 0[.
57
Equaes no lineares
4.3
Mtodo da bisseco
Seja f uma funo contnua em [a, b] tal que f (a)f (b) < 0. Ento, pelo Teorema 4.2,
existe pelo menos uma raiz de f (x) = 0 em ]a, b[. Se, para alm disso, se verificar que a
derivada de f no muda de sinal no intervalo [a, b], ento a raiz nica nesse intervalo.
Localizada a raiz (localizar uma raiz significa encontrar um intervalo que contenha essa
e apenas essa raiz), vamos construir uma sucesso de aproximaes convergente para essa
raiz. O mtodo mais simples, de entre os que iremos estudar, o mtodo das divises
sucessivas conhecido por mtodo da bisseco.
No mtodo da bisseco no necessrio o conceito de aproximao inicial mas sim o
de intervalo inicial I (0) =]a, b[=]a(0) , b(0) [. Comecemos por determinar o ponto mdio de
I (0) ,
b(0) + a(0)
.
x(0) =
2
Caso f (a(0) )f (x(0) ) < 0, temos que ]a(0) , x(0) [; caso contrrio temos que ]x(0) , b(0) [.
Suponhamos, sem perda de generalidade, que I (1) =]a(0) , x(0) [=]a(1) , b(1) [. Obtemos
assim um intervalo que contm a raiz de amplitude igual a metade da amplitude do
intervalo inicial. Determinando agora o ponto mdio de I (1) ,
x(1) =
b(1) + a(1)
,
2
podemos obter, de forma anloga, um novo intervalo que contenha a raiz , de amplitude
igual a metade da amplitude do intervalo I (1) . Seja esse intervalo I (2) =]a(2) , b(2) [. O
processo repete-se determinando uma sucesso {x(k) } que converge, evidentemente, para
.
O algoritmo do mtodo da bisseco pode ser dado como se segue.
Algoritmo 4.1 Mtodo da bisseco
Dados: a, b, 1 e 2
Se f (a)f (b) 0 ento parar
Repetir
c := a+b
2
Se f (a)f (c) 0 ento b := c caso contrrio a := c
at que |b a| 1 ou |f (c)| 2
Resultado: c
58
Equaes no lineares
Exerccio 4.2 Considere o mtodo da bisseco. Seja [a, b] o intervalo que contm uma e
uma s raiz de f (x) = 0 e {x(0) , x(1) , x(2) , . . .} a sucesso de pontos mdios gerados pelo
referido mtodo. Mostre que
1. | x(k) | |x(k) x(k1) | =
ba
.
2k+1
2. O nmero, kmin , de iteraes necessrias para garantir uma aproximao da raiz com
ln ba
ba
1.
1=
uma preciso dado por kmin log2
ln 2
Resoluo:
2. Ao fim de kmin iteraes obtemos o valor x(kmin ) . Assim, pela primeira parte, para
calcular qual o kmin que verifica | x(kmin ) | , vamos determinar qual o kmin
tal que
ba
|x(kmin ) x(kmin 1) | = k +1 .
2 min
Temos, sucessivamente,
L
2kmin +1
ln
ba
2kmin +1 kmin ba 1.
ln 2
k+
Este mtodo possui algumas vantagens bem como algumas desvantagens em relao
a outros mtodos que iremos estudar nas seces seguintes. A primeira grande vantagem
que o mtodo da bisseco converge sempre (desde que exista raiz no intervalo inicial).
A segunda vantagem que existe uma possibilidade de, a priori, se poder indicar um
majorante para o erro cometido ao fim de um certo nmero de iteraes.
A grande desvantagem do mtodo da bisseco reside no facto da sua velocidade de
convergncia ser muito lenta quando comparada com a dos outros mtodos. De facto,
prova-se que, atendendo definio de ordem de convergncia dada, o mtodo da bisseco
converge linearmente e possui uma constante erro M = 12 , isto ,
|e(k+1) |
1 (k)
|e |.
2
Exerccio 4.3 bem sabido que os planetas ao girar em torno do Sol (e os satlites artificiais
em torno da Terra) descrevem rbitas elpticas. Para determinar em que ponto da elipse se
encontra o mvel num determinado instante t h que resolver a chamada equao de Johannes
Kepler (1571-1630)
x e sin x = z,
onde e a excentricidade (conhecida) da elipse (e que um valor que varia entre zero, caso a
rbita seja circular, e prximo de um, caso a rbita seja muito alongada) e z um nmero que
se calcula a partir de t. Considerando e = 0,5 e z = 0,7, determine a soluo do problema com
uma casa decimal correcta.
59
Equaes no lineares
Resoluo: Neste caso f (x) = x e sin x z, com e = 0,5 e z = 0,7. Temos que f (0) =
0,7 < 0 e f (2) = 1,3 0,5 sin 2 > 1,3 0,5 = 0,8 > 0. Assim, podemos comear o
mtodo da bisseco com o intervalo I (0) =]0, 2[. Pelo facto de f (1) < 0 temos que a
soluo pretendida se encontra no intervalo I (1) =]1, 2[. Aps cinco aplicaes do mtodo
da bisseco conclumos que a soluo se encontra no intervalo I (5) =]1,125, 1,1875[.
Tomando como aproximao para a soluo o ponto mdio 1,15625 = (1,125+1,1875)/2
temos a garantia que o valor absoluto do erro inferior a 0,03125.
Exerccio 4.4 Usando o mtodo da bisseco, determine um valor aproximado para o zero
de f (x) = |x| ex , com um erro que no exceda 0,15.
Resoluo: Atendendo ao Exerccio 4.1, temos que a raiz de f (x) = 0 existe e nica no
intervalo ]1, 0[. Vamos determinar qual o menor valor de n para o qual |x(n) | 0,15.
Pelo Exerccio 4.2, esse valor pode ser determinado por
ln 0,15
1 = 1,74.
ln 2
Logo, n = 2, isto , temos que efectuar 2 iteraes. Partindo do intervalo inicial ] 1, 0[
temos x(0) = 0,5. Como f (x(0) ) = 0,16065 vem que
1
2n+1
0,15 n
] 1, 0,5[.
Prosseguindo o processo obtemos x(1) = 0,75 e, como f (0,75) = 2,7776, vem que
] 0,75, 0,5[.
Conclumos ento que x(2) = 0,6256 uma aproximao cujo erro no excede a
tolerncia dada.
4.4
Mtodo de Newton
O mtodo que iremos estudar nesta seco, devido a Newton e a Joseph Raphson (16481715), um dos mtodos mais conhecidos e usados na determinao de aproximaes
numricas de razes de equaes no lineares. Para o definir, iremos comear por efectuar
uma abordagem analtica fazendo depois a sua interpretao geomtrica.
Seja f C 2 ([a, b]), com [a, b] R, e [a, b] a nica raiz de f (x) = 0 nesse intervalo.
Pela frmula de Taylor temos que, se x(0) [a, b],
f ()
( x(0) )2 ,
I{, x(0) }.
2
Como f () = 0, e supondo f () 6= 0 para todo o x [a, b], vem que
f () = f (x(0) ) + f (x(0) )( x(0) ) +
= x0
f (x(0) )
f ()
( x(0) )2 ,
(0)
(0)
f (x ) 2f (x )
I{, x(0) }.
(4.5)
f (x(0) )
. Procedendo de forma anloga, poderemos definir um mtodo
f (x(0) )
iterativo pela frmula de recorrncia
x(k+1) = x(k)
f (x(k) )
,
f (x(k) )
k = 0, 1 . . . ,
(4.6)
que pretendemos que seja convergente para . Este processo iterativo designado por
mtodo de Newton ou mtodo de Newton-Raphson ou ainda mtodo das tangentes. Esta
ltima designao resulta da sua interpretao geomtrica.
60
Equaes no lineares
f (x(k) )
.
f (x(k) )
Temos assim que a iterao x(k+1) dada pelo mtodo de Newton a abcissa do ponto de
interseco da recta tangente curva y = f (x) no ponto (x(k) , f (x(k) )) com a recta y = 0.
x2
x1
x0
Vamos provar, por induo, que x(k+1) [, x(k) ], para todo o k N0 . Por (4.5)
tem-se que,
f ()
I{, b},
x(1) = ( b)2 0,
2f (b)
61
Equaes no lineares
isto , x(1) . Por outro lado, por (4.6), com k = 0, tem-se que x(1) < b. Suponhamos agora que x(k) [, x(k1) ] [, b]. Temos ento que, de modo anlogo
ao efectuado em (4.5),
!
f (k )
f (x(k) )
(k)
k I{,(k) },
(4.7)
x (k)
= (k) ( x(k) )2 ,
f (x )
2f (x )
ou seja
x(k+1) =
f (k )
( x(k) )2 0.
2f (x(k) )
Isto implica que x(k+1) . Por outro lado, por (4.6) e atendendo s hipteses do
teorema, temos que x(k+1) x(k) 0. Provmos ento o pretendido.
A sucesso converge para .
ento, qualquer que seja x(0) [a, b], a sucesso {x(k) } gerada pelo mtodo (4.6) converge
para a nica raiz de f (x) = 0 em [a, b].
62
Equaes no lineares
f ()
( x(0) )2 0,
2f (a)
]a, [,
e, como tal, x(1) ]a, [. Prova-se tambm que, nas mesmas condies, x(2) ]x(1) , [ e,
sucessivamente, x(k+1) ]x(k) , [, k = 0, 1, . . ..
Provmos assim que a sucesso {x(k) } converge monotonamente para .
Os restantes casos podem ser considerados de forma anloga.
O algoritmo para o mtodo de Newton pode ser dado como se segue.
Algoritmo 4.2 Mtodo de Newton
Dados: x(0) , e kmax
k := 0
Repetir
f (x(k) )
f (x(k) )
x(k+1) := x(k) + d
k := k + 1
d :=
Resultado: x(k)
M=
1 maxx[a,b] |f (x)|
.
2 minx[a,b] |f (x)|
(4.8)
63
Equaes no lineares
y=x 2
3
2
y=ln(x+1)
1
-2
-1
-1
-2
-3
f (2)
= 1,48144;
f (2)
x(2) = 1,48144
f (1,48144)
= 1,369785.
f (1,48144)
Uma estimativa para o erro absoluto pode ser dada por |x(2) x(1) | = 0,1116554.
4.5
O mtodo do ponto fixo no propriamente um mtodo mas sim uma classe de mtodos
(o mtodo de Newton, por exemplo, pertence classe de mtodos do ponto fixo). Este
mtodo tem grande importncia na resoluo de todo o tipo de equaes, incluindo as
equaes diferenciais e integrais. Neste momento vamos apenas considerar o problema da
determinao das razes de uma equao no linear f (x) = 0.
O mtodo do ponto fixo consiste em converter o problema de determinar os zeros de
uma funo no problema (equivalente) de calcular os pontos fixos de uma outra funo.
64
Equaes no lineares
Definio 4.3 (Ponto Fixo) Seja uma funo definida num intervalo real [a, b]. Dizemos que [a, b] um ponto fixo de se = ().
Assim, o problema de determinar os valores de x para os quais f (x) = 0 (zeros de
f ) transformado no problema equivalente de determinar os valores de x para os quais
(x) = x (pontos fixos de ). Consideremos o seguinte exemplo.
Exemplo 4.5 A excentricidade da rbita de Vnus dada por e = 0,07. Suponhamos que
pretendemos resolver a equao de Kepler x 0,007 sin x z = 0, quando z = 0,7. Como o
termo 0,007 sin x muito menor que 0,7 temos que uma aproximao para a soluo pode ser
dada por x 0,7. Substituindo este valor em 0,007 sin x obtemos 0,007 sin 0.7 0,004510.
Introduzindo este valor na equao de Kepler temos uma nova aproximao para a sua raiz
dada por x 0,7 + 0,004510 = 0,704510. Este processo poderia continuar dando assim origem
a um processo iterativo da forma x(k+1) = (x(k) ), k = 0, 1, . . ., com (x) = 0,7 + 0,007 sin x
e x(0) = 0,7.
Depois de transformar o problema na forma da determinao dos pontos fixos de uma
funo , as sucessivas aproximaes so calculadas, a partir de uma aproximao inicial
x(0) dada, pela frmula
x(k+1) = (x(k) ),
k = 0, 1, 2, . . . .
(4.9)
f (x)
.
f (x)
A questo que se coloca a seguinte: dada uma equao f (x) = 0 com raiz [a, b],
como escolher uma funo de iterao por forma a que as sucessivas aproximaes dadas
por (4.9) convirjam para ? Antes de mais notemos que, supondo que contnua e que
x(k) , se tem
(k+1)
(k)
(k)
= lim x
= lim (x ) = lim x
= ().
k+
k+
k+
Assim, uma condio necessria para que o processo iterativo (4.9) convirja para zero de
f que seja um ponto fixo de .
Exemplo 4.6 A equao de Kepler dada no exemplo anterior pode escrever-se na forma
x 0,7
.
x = (x) = arcsin
0,007
Neste caso, para a aproximao inicial x(0) = 0,7 temos que x(1) = 0 e x(2) = arcsin (100)
que um valor que nem sequer est definido. Como tal, esta escolha para a funo de iterao
no adequada.
Como poderemos decidir qual a melhor escolha para a funo de iterao? Em geral,
interessa que (x) varie pouco com x. O caso ideal seria ter constante; nesse caso, para
x(0) arbitrrio, teramos x(1) = . Para responder a esta questo, consideremos o seguinte
teorema.
65
Equaes no lineares
Teorema 4.5 (Ponto Fixo) Seja uma funo real de varivel real definida no intervalo
[a, b]. Se
1. uma funo contnua em [a, b] e
2. (x) [a, b] para todo o x [a, b],
ento tem um ponto fixo [a, b]. Se, alm disso, diferencivel em ]a, b[ e
3. | (x)| K < 1, para todo o x [a, b],
ento o ponto fixo nico e a sucesso gerada por (4.9) converge para esse ponto, qualquer
que seja a aproximao inicial x(0) [a, b]. Alm disso
x(k+1)
= ().
k+ x(k)
(4.10)
lim
Se (a) = a ou (b) = b temos que tem (obviamente) um ponto fixo. Caso contrrio,
e atendendo hiptese 2 do teorema, temos que (a) > a e (b) < b. Consideremos a
funo auxiliar (x) = (x)x definida em [a, b]. Como contnua e (a)(b) < 0
conclumos que existe um ponto [a, b] tal que () = 0, ou seja, tal que () = .
Unicidade.
Convergncia e (4.10).
= | (k )||x(k) | K|x(k) |,
k I{, x(k) }.
(4.11)
Assim sendo
|x(k+1) | K k+1 |x(0) |.
(4.12)
k+
o que prova a convergncia do mtodo. Para provar (4.10), notemos que, de (4.11)
sai que
x(k+1)
= (k ),
k I{, x(k) }.
(k)
x
Como o mtodo converge para , tomando limites em ambos os membros, provamos
o pretendido.
66
Equaes no lineares
Notemos que, atendendo a (4.10), o mtodo do ponto fixo tem, no caso geral, uma
convergncia linear. Alm disso, essa convergncia local, uma vez que ela s acontece
quando o x(0) est suficientemente prximo do ponto fixo.
Exemplo 4.7 Resolvamos, mais uma vez, a equao de Kepler considerando: (i) a excentricidade e = 0,5 e z = 0,7; (ii) a excentricidade e = 0,5 e z = 2. Vamos apenas efectuar os
clculos para o caso (ii), isto , vamos considerar apenas a equao x 0,5 sin x 2 = 0. Para
usar o mtodo do ponto fixo consideremos a funo de iterao
(x) = 0,5 sin x + 2,
x [2, 3].
Vejamos se, para esta funo e para este intervalo, se verificam as condies de convergncia
do mtodo. Como uma funo contnua, vamos provar que (x) [2, 3], para todo o
x [2, 3], isto , que o grfico de est totalmente contido no quadrado [2, 3] [2, 3]. Para
isso temos que provar que (2), (3) [2, 3] e que o valor em todos os seus extremos locais
tambm se encontra nesse intervalo. Ora, (2) = 2,4546, (3) = 2,0706 e a funo
montona decrescente (pois (x) = 0,5 cos x). Assim sendo, (x) [2, 3], para todo o x a
variar nesse intervalo. Para provar que o mtodo converge basta apenas provar que o majorante
do mdulo de , em [2, 3], inferior a um. Como se v facilmente | (x)| = |0,5 cos x| 0,5,
e, como tal, K = 0,5 e o mtodo x(k+1) = 0,5 sin x(k) + 2, k = 0, 1, 2, . . ., converge para a
nica raiz da equao em [2, 3], qualquer que seja x(0) [2, 3]. A determinao das sucessivas
iteraes feita de forma bvia.
1.4
1.2
1
0.8
0.6
0.4
0.2
0.2
0.5
x0
x1 x2
1.4
Figura 4.4: Caso (i): (x) = 0,5 sin x + 0,7 e x(0) = 0,7.
3
2.8
2.6
2.4
2.2
2
2.2
x1
x2
x0
2.8
67
Equaes no lineares
Nas Figuras 4.4 e 4.5 podemos visualizar o grfico da funo de iterao do mtodo do
ponto fixo considerado no exemplo anterior, para os casos (i) e (ii), respectivamente, bem
como o grfico da bissectriz dos quadrantes mpares. A abcissa da interseco dos dois
grficos o ponto fixo que pretendemos calcular. Como se pode ver, o mtodo do ponto
fixo pode ser descrito da seguinte forma (grfica). A partir de x(0) , no eixo das abcissas,
traamos um segmento de recta vertical at intersectar o grfico de . A ordenada da
interseco o ponto x(1) . A partir do ponto de interseco traamos um segmento de
recta horizontal at encontrarmos a bissectriz y = x. A abcissa desse ponto final x(1) .
Para determinar as restantes iteraes repete-se sucessivamente este processo: vertical at
ao grfico de , horizontal at bissectriz.
Regressemos, de novo, questo de saber qual a melhor escolha para a funo de
iterao. O Teorema do Ponto Fixo permite-nos afirmar que se uma funo de iterao no
verificar as hipteses do teorema, essa funo no deve ser considerada. Pode, no entanto,
dar-se o caso de possuirmos duas funes de iterao que verifiquem, ambas, as hipteses
do teorema. Neste caso, por qual optar? Notemos que, por (4.12), se considerarmos duas
funes de iterao 1 e 2 tais que
|1 (x)| |2 (x)| < 1,
x [a, b],
k I{, x(k) }.
68
Equaes no lineares
Consideremos agora os seguintes corolrios do Teorema do Ponto Fixo, teis para determinar estimativas a priori para o erro cometido ao fim de um determinado nmero de
iteraes.
Corolrio 4.7 Nas hipteses do Teorema do Ponto Fixo tem-se que
|e(k) | K k max{x(0) a, b x(0) }.
Demonstrao: Resulta imediatamente de (4.12).
Corolrio 4.8 Nas hipteses do Teorema do Ponto Fixo tem-se que
|e(k) |
Kk
|x(1) x(0) |.
1K
l1
X
j=k
l
X
Kj.
j=k
Logo
l
X
j=k
Kj Kk
|x(l) x(k) |
Tomando o limite quando l + temos
| x(k) |
X
j=0
Kj =
Kk
.
1K
Kk
|x(1) x(0) |.
1K
Kk
|x(1) x(0) |,
1K
4.6
Equaes algbricas
an 6= 0,
(4.14)
um polinmio de coeficientes reais. Este problema aparece com muita frequncia e existem
para ele muitos resultados especficos. Nesta seco faremos apenas uma breve referncia
a alguns desses resultados.
Um resultado bsico sobre polinmios dado no Teorema Fundamental da lgebra,
devido a Gauss e a Euler e que apresentamos sem demonstrao.
69
Equaes no lineares
70
Equaes no lineares
-1
-0.5
0.5
-0.5
-1
-1.5
-2
-2.5
,
+
,
+.
3
3
Como a funo dada contnua em R e
p
ri
2/3
P3 (ri )
p
+ 2/3
+
+
2/3 e
p
temos que a nica raiz real da equao dada est no intervalo ] 2/3, +[.
Note-se que o intervalo que contm todas as razes da equao algbrica pode ser obtido
recorrendo ao seguinte resultado.
Teorema 4.14 (Cauchy) Seja Pn (x) = 0 uma equao algbrica, com Pn um polinmio
da forma (4.14). Todos os zeros de Pn esto includos no crculo do plano complexo
ak
= {z C : |z| 1 + }, com = max .
k=0,...,n1 an
Um resultado alternativo o seguinte.
Teorema 4.15 (Newton) Seja Pn (x) = 0 uma equao algbrica. Se, para x = L, L > 0,
o polinmio Pn e as suas sucessivas derivadas forem no negativas, ento L constitui um
limite superior das razes positivas de Pn (x) = 0.
Demonstrao: Seja Pn um polimio de grau n. Fazendo o seu desenvolvimento de em
srie Taylor, em torno de x = L, temos que
(n)
Pn (L)
Pn (L)
(x L)2 + +
(x L)n .
2!
n!
Assim fcil concluir que, nas hiptese do teorema, Pn (x) > 0 para todo o x > L, o que
prova o pretendido.
71
Equaes no lineares
Um limite inferior l para as razes negativas de Pn (x) = 0 poderia ser obtido usando o
resultado anterior, atendendo a que as razes negativas de uma equao algbrica Pn (x) =
0, onde Pn um polinmio de grau n, so as razes positivas, com sinal contrrio, de
Qn (x) (1)n Pn (x) = 0.
Exerccio 4.8 Prove a afirmao anterior.
Exerccio 4.9 Determine limites superiores e inferiores para as razes reais de x3 2x5 = 0.
Resoluo: Seja P3 (x) = x3 2x 5. Atendendo a que
P3 (x)
P3 (x)
P3 (x)
P3 (x)
3
+
+ ,
+
+
L = 3 limite superior das razes de P3 (x) = 0. Para determinar um limite inferior das
razes, consideremos Q3 (x) (1)3 P3 (x) = x3 2x + 5. Ora, atendendo a que
Q3 (x)
Q3 (x)
Q3 (x)
Q
3 (x)
1
+
+ ,
+
+
A mesma argumentao poderia ser usada no caso de a0 = Pn (0) < 0; neste caso,
tanto o nmero de varies de sinal da sucesso dos coeficientes de Pn como o nmero de
Equaes no lineares
72
4.6.1
Algoritmo de Hrner
O clculo dos zeros de um polinmio feito, na maioria das vezes, recorrendo ao mtodo
de Newton. Quando se aplica este mtodo h necessidade de calcular, em cada iterao, o
valor do polinmio e da sua derivada num ponto. Esse clculo deve ser efectuado de forma
eficiente uma vez que grande parte do esforo computacional a ele se deve.
Suponhamos que se pretende calcular Pn (z), com Pn um polinmio dado por (4.14).
Considerando o polinmio escrito na forma cannica (tal como em (4.14)), efectuamos n
adies/subtraces e 2n 1 multiplicaes/divises. Considerando a forma encaixada
Pn (x) = a0 + x(a1 + x(a2 + + x(an1 + an x))),
ao calcular Pn (z) s efectuamos n adies/subtraces e n multiplicaes/divises. Esta
forma est na base do algoritmo de William George Hrner (1786-1837).
Algoritmo 4.3 Algoritmo de Hrner
Dados: ai , i = 0, 1, . . . , n, e z
bn := an
Para k de n 1 at 0 fazer
bk := ak + bk+1 z
Resultado: Pn (z) = b0
73
Equaes no lineares
(4.15)
(4.16)
designado por polinmio associado a Pn . Note-se que o valor de Pn (z) = b0 , ou seja, temos
o seguinte resultado demonstrado por Paolo Ruffini (1765-1822).
Teorema 4.17 (Ruffini) O valor numrico de Pn (z) de um polinmio Pn em x = z
igual ao resto da diviso de Pn (x) por (x z).
A chamada regra de Ruffini, que consiste em substituir (4.14) e (4.16) em (4.15) e
igualando os coeficientes de potncias de x do mesmo grau, permite obter os valores bi ,
i = 1, . . . , n, e o valor de b0 de acordo com o algoritmo de Hrner. O mesmo algoritmo
permite obter facilmente os valores da derivada de Pn dado por (4.14) num dado ponto z.
Assim, uma vez que, por (4.15),
Pn (x) = (x z)Qn1 (x; z) + Qn1 (x; z),
temos que Pn (z) = Qn1 (z; z).
Algoritmo 4.4 Valores da derivada de um polinmio
Dados: ai , i = 0, 1, . . . , n, e z
bn := an
q := bn
Para k de n 1 at 0 fazer
bk := ak + bk+1 z
q := bk + qz
4.6.2
O mtodo de Newton-Hrner
Vamos comear por considerar o caso em que Pn , dado por (4.14), tem apenas zeros reais
simples. Neste caso, podemos aplicar qualquer um dos mtodos iterativos estudados. No
entanto, sugerimos o seguinte procedimento.
1. Determina-se a localizao dos zeros n < n1 < < 2 < 1 .
2. Partindo de um valor x(0) > 1 , usando o mtodo de Newton, calcula-se uma aproximao numrica para o maior zero 1 , com a preciso desejada.
3. Pelo algoritmo de Hrner/Ruffini divide-se Pn (x) por x 1 e regressa-se ao passo 2
para determinar 2 . Este processo conhecido por deflaco. Repetindo sucessivamente este processo, determinamos numericamente todos os zeros do polinmio.
4. Para refinar as aproximaes obtidas, aplica-se o mtodo de Newton a Pn sendo as
aproximaes iniciais os valores obtidos no passo 3.
74
Equaes no lineares
O mtodo de Newton-Hrner pode ser descrito da seguinte forma. Dada uma estimativa
(0)
inicial rj para a raiz j , calcular, para cada k 0 at convergncia
(k)
(k+1)
rj
(k)
= rj
Pn (rj )
(k)
(k)
Qn1 (rj ; rj )
Pn (r (k) )
,
Pn (r (k) )
(4.17)
k = 0, 1, 2, . . . .
4.7
Rn Rn
.
(x1 , . . . , xn ) (f1 (x1 , . . . , xn ), . . . , fn (x1 , . . . , xn ))
f1 (x1 , . . . , xn ) = 0
..
.. ,
.
.
fn (x1 , . . . , xn ) = 0
que, noutra notao, pode ser escrito na forma
(4.18)
F (x) = 0,
com
x=
x1
x2
..
.
xn
F (x) =
f1 (x)
f2 (x)
..
.
fn (x)
0=
0
0
..
.
0
(4.19)
75
Equaes no lineares
(x) =
1 (x)
2 (x)
..
.
n (x)
(4.21)
que determinem uma sucesso de aproximaes para uma raiz da equao vectorial
(4.18), a partir de uma dada aproximao inicial
(0)
x1
x2
..
.
xn
(0)
(4.22)
Uma questo essencial quando se lida com mtodos iterativos tem a ver com a convergncia do processo: dada uma sucesso de aproximaes {x(k) } gerada pelo processo
iterativo, como saber se ela convergente para a soluo do sistema?
Definio 4.5 (Convergncia) A sucesso de vectores {x(k) } diz-se convergente para
Rn se, para todo o > 0, existe uma ordem k0 tal que, para todo o k > k0 , se tem
kx(k) k < . Nesse caso escreve-se lim x(k) = .
k+
De notar que a noo de convergncia depende do conceito de norma. Uma vez que
possvel considerar vrias normas, uma questo legtima seria a de saber se possvel
que uma sucesso de vectores convirja quando se considera uma determinada norma e
divirja quando se considera outra. Para as normas mais usuais (dadas no Exerccio 1.1)
possvel demonstrar que se uma sucesso de vectores convergir segundo uma das normas ela
tambm converge quando se considera outra qualquer. Por este facto diz-se que estamos
em presena de normas equivalentes.
Consideremos agora o problema da definio de critrios de paragem para processos
iterativos aplicados ao clculo das razes de sistemas de equaes no lineares F (x) = 0.
Seja {x(k) } a sucesso de aproximaes gerada pelo processo iterativo convergente para a
soluo do sistema. Os critrios de paragem mais frequentes so:
1. Critrio do erro absoluto: kx(k) x(k1) k ;
2. Critrio do erro relativo: kx(k) x(k1) k kx(k) k;
3. Critrio do valor da funo: kF (x(k) )k 1 , com 1 ;
4. Critrio do nmero mximo de iteraes: k = kmax .
Antes de passarmos definio dos processos iterativos vamos considerar o problema da
determinao da aproximao inicial que, para sistemas de equaes, pode ser um problema
de difcil resoluo. Na prtica existem processos que permitem, a priori, determinar
76
Equaes no lineares
boas estimativas iniciais para a soluo pretendida. Esses processos dependem muito do
problema em questo e como tal no so passveis de um tratamento generalizado.
Existe, no entanto, uma forma de poder obter uma boa aproximao inicial quando
os sistemas so de pequena dimenso. Essa forma a localizao grfica. Este processo
consiste na mera generalizao do efectuado na seco anterior e, como tal, no iremos
fazer a sua abordagem na forma geral mas sim recorrendo a um exemplo.
Exemplo 4.8 Considere-se o sistema de equaes no lineares
2
x + y2 = 1
.
xy + x = 1
Traando o grfico de f1 (x, y) = 0 e f2 (x, y) = 0, com
f1 (x, y) = x2 + y 2 1
,
f2 (x, y) = xy + x 1
verificamos que uma soluo do sistema (x, y) = (1, 0) e que a outra est prxima de
(x, y)(0) = (1, 1).
x y + x =1
2
2
x + y2 =1
1
-1.5
-1
-0.5
0.5
1.5
-1
-2
-3
-4
Seja dado o sistema de equaes no lineares F (x) = 0 definido por (4.19). Pretendemos
determinar uma aproximao para a raiz = (1 , . . . , n ) do referido sistema sendo dada
uma aproximao inicial (4.22). Suponhamos que F C 2 (V ), com V uma vizinhana de
. Pela frmula de Taylor temos que, se x(0) V ,
F () = F (x(0) ) + JF (x(0) )( x(0) ) + ,
onde
JF (x) =
f1
(x)
x1
..
..
.
.
fn
(x)
x1
f1
(x)
xn
..
.
fn
(x)
xn
k = 0, 1 . . . ,
77
Equaes no lineares
que pretendemos que seja convergente para . Este processo iterativo designado por
mtodo de Newton ou mtodo de Newton-Raphson.
Antes de apresentar o algoritmo que traduz o mtodo de Newton, notemos que podemos
evitar, em cada iterao, o clculo da matriz inversa JF1 (x(k) ) se fizermos
(4.23)
Resultado: x(k)
Notemos que o carcter local da convergncia deste mtodo nos obriga a ter o cuidado
de escolher uma aproximao inicial que esteja suficientemente prxima da soluo que
pertendemos determinar.
Exerccio 4.13 Determine uma aproximao para a soluo de
2
x + y2 1 = 0
F (x) = 0
,
xy + x 1 = 0
diferente de (1, 0), efectuando duas iteraes de mtodo de Newton. Indique uma estimativa
para o erro cometido.
Resoluo: Seja = (1 , 2 ) a soluo pretendida. Como vimos, a aproximao inicial pode
ser dada por (x, y)(0) = (1, 1).
Para no sobrecarregar a notao consideremos (x, y)(k) = (xk , yk ), k = 0, 1, . . .. Como
2xk
2yk
JF (xk , yk ) =
,
y k + 1 xk
temos que
det (JF (xk , yk )) 6= 0 x2k yk2 yk 6= 0.
Apliquemos o mtodo de Newton na forma (4.23).
78
Equaes no lineares
Primeira iterao.
Como x20 y02 y0 = 1 6= 0 podemos efectuar a primeira iterao do mtodo.
Assim
x20 + y02 1
x0
2 2
1
2x0
2y0
x0
=
=
.
y0
x0 y 0 + x0 1
y 0 + 1 x0
2 1
y0
1
Daqui sai que
x0
y0
0,5
0
x1
y1
0,5
1
Segunda iterao.
Como x21 y12 y1 = 1,75 6= 0 podemos efectuar a segunda iterao do mtodo.
Assim obtemos, de modo anlogo,
1 2
0,25
x1
=
.
2 0,5
y1
0
Daqui sai que
15 6
,
28 7
x1
y1
1/28
1/7
x2
y2
15/28
6/7
= (0,5357, 0,8571),
4.8
4.8.1
Problemas
Exerccios para resolver nas aulas
Exerccio 4.14 (Matlab) Use o mtodo da bisseco para aproximar a soluo, com erro
inferior a 102 , da equao x + 0,5 + 2 cos(x) = 0 no intervalo [0,5, 1].
Exerccio 4.15 (Matlab) Determine o nmero mnimo de iteraes necessrias para aproximar, pelo mtodo da bisseco e com uma preciso de 101 , a soluo de x3 x 1 = 0 no
intervalo [1, 2]. Determine tal aproximao com a preciso indicada.
Exerccio 4.16 (Matlab) A componente forada de uma tenso transitria para um dado
circuito pode ser traduzida pela expresso E(t) = e0,06t sin(2t ). Usando o mtodo da
bisseco duas vezes, determine a tenso mxima deste circuito.
Exerccio 4.17 (Matlab) Dada a funo f (x) = cosh x + cos x , para = 1, 2, 3,
averige, em cada caso, se f tem zeros e, caso existam, aproxime o seu valor pelo mtodo da
bisseco, com um erro inferior a 1010 .
79
Equaes no lineares
Exerccio 4.18 (Matlab) A equao de um gs definida por p + a(N/V )2 (V N b) =
kN T, em que p a presso, V o volume ocupado pelo gs temperatura T , a e b so dois
coeficientes que dependem do gs considerado, N o nmero de molculas contidas no volume
V e k a constante de Boltzmann (k = 1,3806503 1023 ). Num M-file escreva as instrues
que lhe permitam aproximar o volume V ocupado por 1000 molculas de dixido de carbono
temperatura T = 300 K e presso p = 3,5 107 Pa, pelo mtodo da bisseco, com um erro
inferior a 1012 . Para o dixido de carbono, tem-se a = 0,401 Pa, b = 42,7 106 m3 .
Exerccio 4.19 Um avio em voo vertical descreve uma trajectria que, para t [0, 1] dado
em minutos, pode ser traduzida pela expresso h(t) = (t 1)et t + 3.
1. Calcule um valor aproximado do instante em que o avio esteve mais prximo do solo,
aplicando o mtodo de Newton duas vezes.
2. Aproxime a diferena mxima de altitude que o avio atinge no mesmo intervalo.
a1
a1
a2 + a22 a23 + a24
cos
cos x cos( x) + 1
.
a2
a4
2a2 a4
S para valores especiais de que existe uma expresso explcita da soluo. Refira-se
ainda que no existe soluo para todos os valores de , e que a soluo existindo poder no
ser nica. A fim de resolver a equao para qualquer valor de a variar entre 0 e , deveremos
recorrer a mtodos numricos. Insira num M-file as instrues que lhe permitam aproximar o
valor de , atravs da equao no linear, recorrendo ao mtodo de Newton, com [0, 2
3 ] e
com uma tolerncia de 105 . Suponha que os comprimentos das barras so, respectivamente,
a1 = 10 cm, a2 = 13 cm, a3 = 8cm e a4 = 10 cm. Para cada valor de considerar dois dados
iniciais x(0) = 0,1 e x(0) = 2
3 .
80
Equaes no lineares
Exerccio 4.25 Mostre que x = 12 cos x tem uma nica soluo . Obtenha, em seguida,
um intervalo [a, b] que contenha e tal que, para todo o x0 nesse intervalo, a sucesso
x(n+1) = 21 cos x(n) , n = 0, 1, 2, . . . , convirja para . Justifique.
Exerccio 4.26 Determine os extremos locais da funo f (x) =
inferior a 104 , usando o mtodo iterativo do ponto fixo.
x3
3
Exerccio 4.27 Determine uma aproximao para a maior raiz de ex 4x2 = 0, usando o
mtodo do ponto fixo. Indique um majorante do erro da aproximao obtida.
Exerccio 4.28 Seja N a funo iteradora do mtodo de Newton considerado como uma
1
, onde um zero de f de multiplicidade
iterao do ponto fixo. Mostre que N () = 1 m
m. Deduzir que o mtodo de Newton converge quadraticamente se for uma raiz simples de
f (x) = 0 e linearmente no caso contrrio.
Exerccio 4.29 (Matlab) Considere a funo f (x) = ex 2x2 .
1. Localize as razes da equao f (x) = 0.
2. Determine uma estimativa para a maior raiz, usando o mtodo do ponto fixo, com 5, 10
e 15 iteraes.
3. Repita a alnea anterior, recorrendo ao mtodo da bisseco. Compare os resultados
obtidos.
Exerccio 4.30 (Matlab) Considere a equao ex x 2 = 0.
1. Verifique que a equao dada tem uma nica soluo no intervalo [1, 2].
2. Para aproximar o valor da soluo pretende-se utilizar o mtodo do ponto fixo, com
uma das seguintes funes iteradoras: g1 (x) = ex 2, g2 (x) = ln(x + 2) e g3 (x) =
x 0,1(ex x 2). Indique qual ou quais das funes garante a convergncia do mtodo
para a referida soluo. Escolha uma aproximao inicial e considere tol= 104 .
3. Recorra ao mtodo de Newton para aproximar a mesma soluo e compare com o resultado
obtido na alnea anterior.
Exerccio 4.31 (Matlab) Considere a equao ln x
1
x
= 0.
1. Verifique que a equao dada tem uma nica soluo no intervalo [1, 2].
2. Para aproximar o valor da soluo pretende-se utilizar o mtodo do ponto fixo, com
1
uma das seguintes funes iteradoras: g1 (x) = e x e g2 (x) = 1/ ln(x). Indique qual das
funes garante a convergncia do mtodo para a referida soluo, qualquer que seja o
ponto inicial. Escolha uma aproximao inicial e considere tol= 104 .
3. Recorra ao mtodo da bisseco para aproximar a mesma soluo e compare com o
resultado obtido na alnea anterior.
Exerccio 4.32 Considere a equao x6 4x5 + 6x4 2x3 kx2 + mx n = 0.
1. Determine m, n e k de modo a que esta equao admita 1 como raiz tripla.
2. Localize as razes da equao e determine a menor delas pelo mtodo que considerar mais
conveniente.
Equaes no lineares
81
Equaes no lineares
82
4.8.2
Exerccio 4.44 Baseado no trabalho de Frank-Kamenetski (1955), as temperaturas no interior de um material com fontes de calor embebidas podem ser determinadas pela equao
p
e0,5t cosh (e0,5t ) = 0,5Ler .
Dado Ler = 0,088, determine t.
Exerccio 4.45 A concentrao, C, de uma bactria poluente num lago decresce de acordo
com a expresso
C = 80e2t + 20e0,1t ,
onde t representa o tempo. Determine o tempo necessrio para que a concentrao de bactrias
fique reduzida a 10.
83
Equaes no lineares
84
Equaes no lineares
Captulo 5
Interpolao
Seja f uma funo real definida num conjunto de pontos x0 , x1 , . . . , xn . Pretende-se calcular
o valor de f (x), com x 6= xi , i = 0, 1, . . . , n. Tal situao muito frequente, por exemplo,
no contexto das equaes diferenciais. Quando se usam mtodos numricos para aproximar
a soluo de uma equao diferencial esta fica apenas conhecida num conjunto de pontos.
A interpolao permite assim encontrar uma funo que passa por esse conjunto de pontos
e que pode funcionar como uma aproximao soluo da equao.
Em linhas gerais, o conceito de interpolao consiste em determinar uma funo (x) =
a0 0 (x) + + an n (x), gerada por uma certa famlia de funes {k }nk=0 , por forma a
que
f (xi ) = (xi ),
i = 0, 1, . . . , n.
A funo nestas condies designada por funo interpoladora de f nos pontos de suporte
(interpolao) x0 , x1 , . . . , xn .
Nada nos garante que o problema da interpolao tenha sempre soluo. Por exemplo,
fazendo 0 (x) = 1 e 1 (x) = x2 , no existe nenhuma funo (x) = a0 + a1 x2 que passe
nos pontos (1, 1) e (1, 0).
5.1
i = 0, 1, . . . , n,
85
(5.2)
86
Interpolao
2,3
0,361728
2,4
0,380211
2,5
0,397940
2,6
,
0,414973
0
a0 + 2,6a1 + 6,76a2 + 17,576a3 = 0,414973
Sendo o sistema possvel e determinado tal polinmio existe e nico. Assim
P3 (x) = 0,404885 + 0,528963x 0,107300x2 + 0,009667x3
o polinmio pretendido. Temos ento que log 2,45 P3 (2,45) = 0,389170. Compare-se este valor com o valor exacto log 2,45 = 0,38916608 . . .. Note-se que o erro cometido
na aproximao no excede 0,4 105 .
A determinao do polinmio interpolador por este processo pouco eficiente e pouco
estvel. Quanto eficincia, note-se que a resoluo do sistema linear requer (n + 1)3 /3 +
(n+1)2 (n+1)/3 multiplicaes/adies (O(n3 ) operaes). Para alm de pouco eficiente,
este processo tambm pouco estvel: na prtica verifica-se que este mtodo no permite
ir alm de valores de n da ordem da dezena quando se trabalha em aritmtica com 6 ou 7
decimais.
5.1.1
n
X
f (xi )i (x),
(5.3)
i=0
em que
i (x) =
n
Y
j=0,j6=i
x xj
,
xi xj
i = 1, . . . , n.
(5.4)
87
Interpolao
n
X
f (xi )i (x).
i=0
1
4
2
15
3
40
4
,
85
(x 2)(x 3)(x 4)
(1)(2)(3)
1
= (x 2)(x 3)(x 4),
6
1 (x) =
(x 1)(x 3)(x 4)
(1)(1)(2)
2 (x) =
(x 1)(x 2)(x 4)
(2)(1)(1)
1
= (x 1)(x 2)(x 4),
2
3 (x) =
(x 1)(x 2)(x 3)
(3)(2)(1)
Assim
P3 (x) =
3
X
i=0
1
(x 1)(x 3)(x 4),
2
1
(x 1)(x 2)(x 3).
6
f (xi )i (x) = = 1 + x + x2 + x3 .
88
Interpolao
n
X
w(x)
,
(x xi )w (xi )
(5.5)
(x xj ).
(5.6)
f (xi )
i=0
sendo
w(x) =
n
Y
j=0
n
n
Y
X
(x xj ) w (xi ) =
i=0 j=0,j6=i
e como tal
i (x) =
o que prova o pretendido.
n
Y
(xi xj ),
j=0,j6=i
w(x)
,
(x xi )w (xi )
Para determinar o esforo computacional necessrio obteno do polinmio interpolador pela frmula de Lagrange, note-se que, supondo as constantes
Fi =
f (xi )
,
w (xi )
i = 0, . . . , n,
Este clculo requer n(n + 1) multiplicaes e n(n + 2) adies, isto , O(n2 ) operaes, o
que torna a frmula de Lagrange muito mais eficiente que o processo matricial.
A frmula de Lagrange possui, no entanto, o inconveniente de obrigar a refazer os
clculos dos polinmios (5.4) sempre que ocorra uma alterao nos pontos de suporte. Na
prtica esta situao acontece com frequncia, por exemplo, quando pretendemos passar
de pn a pn+1 , pela adio de mais um ponto xn+1 ao suporte de interpolao, a fim de
estudar o comportamento do erro. (Este problema resolvido pelo algoritmo de Newton
das diferenas divididas, que no ser objecto de estudo nesta disciplina.)
89
Interpolao
5.1.2
Erro de interpolao
Por definio, o polinmio interpolador coincide com a funo num dado conjunto de pontos
de suporte. Interessa-nos saber, no entanto, se para os outros pontos do domnio da funo,
o polinmio interpolador constitui uma boa ou uma m aproximao para a funo. Nesse
sentido temos o seguinte teorema, que apresentamos sem demonstrao.
Teorema 5.2 Seja Pn o polinmio de grau menor ou igual a n interpolador da funo f
nos pontos da partio (5.1). Se f C n ([a, b]) e se f (n+1) for contnua em ]a, b[, ento
para cada x [a, b] existe = (x) ]a, b[ tal que
e(x) = f (x) Pn (x) =
f (n+1) ()
w(x),
(n + 1)!
(5.7)
Mn+1
|w(x)|,
(n + 1)!
(5.8)
Mn+1 = max f (n+1) (x) .
x[a,b]
max f (4) (x) =
x[2,3,2,6]
M4
|(x 2,3)(x 2,4)(x 2,5)(x 2,6)|,
4!
max
x[2,3,2,6] x4 ln 10
= 0,093116.
0,093116
|(2,45 2,3)(2,45 2,4)(2,45 2,5)(2,45 2,6)|,
24
90
Interpolao
Exerccio 5.5 Considere a funo f (x) = cos x para x em [0, ]. Determine o nmero de
pontos a considerar no intervalo dado para que o erro mximo da aproximao de f (x) por um
polinmio interpolador nesses pontos seja inferior a 0,5.
Resoluo: Temos que, para x [0, ],
max f (n+1) (x)
|w(x)|
n+1
x[0,]
|w(x)| =
.
|f (x) Pn (x)|
(n + 1)!
(n + 1)!
(n + 1)!
Resta assim determinar qual o menor valor de n que satisfaz
n+1
0,5.
(n + 1)!
Por tentativas...
n=6
7
= 0,599
7!
8
= 0,235.
8!
Logo, 8 o menor nmero de pontos que garante a aproximao pretendida.
n=7
Exerccio 5.6 Seja f uma funo nas condies do teorema anterior e tal que (5.8) se verifica.
Seja Pn o seu polinmio interpolador nos pontos da partio (5.1).
1. Mostre que o seu erro de interpolao verifica
|f (x) Pn (x)|
Mn+1 n+1
h
,
4(n + 1)
x [a, b],
(5.9)
Mn+1
(b a)n+1 ,
4(n + 1)nn+1
x [a, b].
Resoluo: Vamos apenas demonstrar (5.9). Para tal, basta provar que
max |w(x)|
x[a,b]
hn+1 n!
,
4
x0 + x1
.
2
Como tal,
x0 + x1 h2
x0 + x1
max |w(x)| = max |w(a)|, w
, |w(b)| = w
4 .
2
2
x[a,b]
91
Interpolao
Suponhamos que (5.9) se verifica para n e provemos a sua veracidade para n + 1, isto ,
que
n+1
Y
hn+2 (n + 1)!
,
max (x xj )
4
x[a,b]
j=0
com a = x0 e xn+1 = b. Dado x [a, b] temos que x [a, xn ] ou x [xn , b].
Consideremos a primeira hiptese. Temos ento
n+1
Y
Y
n
hn+2 (n + 1)!
hn+1 n!
(n + 1)h =
,
max (x xj ) = max (x xj ) |x b|
4
4
x[a,b]
x[a,b] j=0
j=0
x[a,b]
para todo o x [a, b]. Se existir uma constante positiva M tal que
Mn+1 M,
(5.10)
n N,
conclumos que
lim
n+
max |f (x) Pn (x)| lim
x[a,b]
n+
M
(b a)n+1
4(n + 1)nn+1
= 0.
5.1.3
Frmula de Newton
i (x) =
i1
Y
(x xi ),
i = 1, . . . , n.
j=0
Atendendo a que o conjunto {i }ni=0 constitui uma base do conjunto dos polinmios de
grau inferior ou igual a n (prove), existem constantes ci , i = 0, . . . , n, tais que o polinmio
interpolador de Lagrange dado por
Pn (x) =
n
X
i=0
ci i (x).
(5.11)
92
Interpolao
Para determinar c0 note-se que, se Pn (x) poder ser escrito na forma (5.11), temos que
c0 = Pn (x0 ) = f (x0 ).
De forma similar temos que c1 pode ser determinado calculando Pn no ponto x1 . Assim
f (x0 ) + c1 (x1 x0 ) = Pn (x1 ) = f (x1 ) c1 =
f (x1 ) f (x0 )
.
x1 x0
que denotamos por f [x0 , x1 , x2 ]. Podemos deste modo obter um processo recursivo para a
determinao dos coeficientes do polinmio se atendermos seguinte definio.
Definio 5.2 (Diferenas divididas) Seja f uma funo definida nos pontos da partio (5.1) do intervalo [a, b] R. A
f [xi , xi+1 ] =
f (xi+1 ) f (xi )
xi+1 xi
i = 1, . . . , n.
(5.12)
j=0
93
Interpolao
f (xi )
f0
x1
f1
x2
f2
fi,i+1
fi,i+2
fi,i+3
f0,1
f0,2
f1,2
f0,3
f1,3
f2,3
x3
f3
xn
fn
fn3,n
fn2,n
fn1,n
onde fi,j = f [xi , xj ]. Essa tabela pode ser obtida pelo seguinte algoritmo.
Algoritmo 5.2 Diferenas divididas
Dados: n, xi , i = 0, 1, . . . , n
f0 := f (x0 )
Para i de 1 at n fazer
fi := f (xi )
Para j de i 1 at n fazer
fj,i := (fj+1,i fj,i1 )/(xi xj )
Resultado: fj,i , i = 1, . . . , n, j = i 1, . . . , n
Notemos que os coeficientes da frmula de Newton esto ao longo da diagonal da tabela
das diferenas divididas.
Um resultado importante respeitante s diferenas divididas o seguinte.
Teorema 5.3 As diferenas divididas so invariantes para qualquer permutao dos ndices de suporte.
Demonstrao: Com efeito, tem-se que
f [xi , xi+1 ] =
f (xi+1 ) f (xi )
f (xi ) f (xi+1 )
=
= f [xi+1 , x1 ].
xi+1 xi
xi xi+1
Por induo conclui-se facilmente (exerccio) que o mesmo acontece para as diferenas
divididas de qualquer ordem.
A demonstrao do teorema anterior poderia ter sido feita atendendo ao seguinte exerccio que se demonstra por induo.
Exerccio 5.7 Seja Pn o polinmio interpolador de f C n+1 ([a, b]) de grau inferior ou igual
a n nos pontos da partio (5.1) do intervalo [a, b] e w o polinmio nodal dado em (5.6).
Mostre que se verifica a igualdade
f [x0 , x1 , . . . , xn ] =
n
X
f (xi )
.
w (xi )
i=0
94
Interpolao
O valor do polinmio interpolador num determinado ponto do seu domnio pode ser
dado pelo seguinte algoritmo.
Algoritmo 5.3 Frmula de Newton das diferenas divididas
Dados: n, x e xi , i = 0, 1, . . . , n
f0,0 := f (x0 )
Para i de 1 at n fazer
fi,i := f (xi )
Para j de i 1 at n fazer
fj,i := (fj+1,i fj,i1 )/(xi xj )
P := f0,n
Para i de n 1 at 0 fazer
P := f0,i + (xi x)P
Resultado: P (x) = P
Uma grande vantagem do algoritmo de Newton consiste em, uma vez determinado Pn ,
para determinar Pn+1 basta fazer
Pn+1 (x) = Pn (x) + f [x0 , x1 , . . . , xn+1 ]
n
Y
(x xj ).
j=0
A frmula (5.12) pode ser calculada de forma mais eficiente se for calculada pelo mtodo de Hrner. De facto, o clculo do polinmio interpolador usando o frmula interpoladora de Newton das diferenas divididas na forma encaixada, supondo calculados os
coeficientes f (x0 ), f [x0 , x1 ], . . ., f [x0 , x1 , . . . , xn ], requer apenas 2n adies/subtraces e
n multiplicaes/divises.
Exerccio 5.8 Escreva a frmula interpoladora de Newton das diferenas divididas usando o
mtodo de Hrner.
xi
f (xi )
1
0
1
3
2
, determine uma aproximao para f (0),
4
Resoluo: Temos
xi
1
f (xi )
0
fi,i+1
fi,i+2
3/2
Assim
1/6
1
3
1
P2 (x) = 0 + (x 1) + (x2 1) = (x 1)
2
6
3 1
+ (x + 1) .
2 6
95
Interpolao
f (x0 )
2 f (x0 )
(x x0 ) +
(x x0 )(x x1 )
h
2h2
n f (x0 )
(x x0 )(x x1 ) (x xn1 )
n!hn
n
i1
X
i f (x0 ) Y
i=1
i!hi
(5.14)
(x xj ).
j=0
Esta frmula conhecida por frmula interpoladora de Newton das diferenas progressivas.
96
Interpolao
As diferenas progressivas podem ser dadas pela seguinte tabela, conhecida por tabela
das diferenas progressivas.
xi
x0
f (xi )
f0
2 f (xi )
f (xi )
f (x0 )
x1
2 f (x0 )
f1
f (x1 )
x2
2 f (x
f2
3 f (xi )
3 f (x0 )
1)
f (x3 )
x3
f3
xn
fn
3 f (x
2 f (xn2 )
n3 )
f (xn1 )
h
.
1 + xh + x2
h
.
1 + xh + x2
Como
tan ( arctan x) = tan (arctan (x + h) arctan x) =
5.2
h
.
1 + xh + x2
Interpolao de Chebyshev
Uma questo interessante consiste em saber como diminuir os erro de interpolao sem
aumentar o nmero de pontos de suporte. A frmula (5.8) mostra que o erro de interpolao depende tanto do mximo de |f (n+1) (x)|, para todo o x pertencente ao intervalo de
interpolao, como de
max |w(x)|
(5.15)
x[a,b]
(que depende da escolha dos pontos de interpolao). A questo interessante est em saber,
para um dado n, qual a escolha dos pontos de interpolao que minimiza (5.15). A resposta
pode ser dada custa dos chamados polinmios de Chebyshev.
Para n = 0, 1, 2, . . . e x [1, 1] os polinmios de Chebyshev da grau n so definidos
pela relao
Tn (x) = cos (n arccos x).
Uma forma simples de provar que Tn , de facto, um polinmio, atendendo frmula de
recorrncia (ver Exerccio 5.13)
Tn+1 (x) = 2xTn (x) Tn1 (x),
n = 1, 2, . . . .
(5.16)
97
Interpolao
k
nos quais Tn (xk ) = (1) .
Da definio de polinmio de Chebyshev resulta imediatamente que
|Tn (x)| 1, n = 0, 1, 2, . . .. Assim sendo, como Tn (1) = 1, temos que maxx[1,1] |Tn (x)| =
1. Alm disso, atendendo ao Exerccio 5.14, os zeros dos polinmios de Chebyshev esto
todos no intervalo [1, 1].
fcil provar que o coeficiente do termo de maior grau de Tn an = 2n1 . Assim
sendo, o polinmio Ten = 21n Tn mnico, isto , o seu coeficiente do termo de maior
grau igual unidade. Designemos por Pen ([a, b]) a classe dos polinmios mnicos de grau
menor ou igual a n em [a, b].
Teorema 5.4 O polinmio Ten de todos os polinmios de Pen ([1, 1]) o que tem menor
norma, isto ,
max |Ten (x)| max |Pe (x)|,
x[1,1]
x[1,1]
Demonstrao (no foi dada): Sabemos que maxx[1,1] |Ten (x)| = 21n . Suponhamos
en ([1, 1]) tal que maxx[1,1] |Pe(x)| < 21n e seja Q = Ten Pe. Ento
que existe Pe P
o grau de Q menor ou igual a n 1. Por outro lado, para os valores de xk dados no
Exerccio 5.14,
Q(x ) = Ten (x ) Pe(x ) = (1)k 21n Pe(x ).
k
Assim sendo, o polinmio Q tem n zeros pois tem sinais alternados em n intervalos e
uma funo contnua. Logo Q o polinmio nulo, o que prova o resultado.
Se considerarmos o intervalo [a, b] em vez do intervalo [1, 1] h que efectuar a mudana
de varivel
a+b ba
t=
+
x.
2
2
O Teorema 5.4 e o Exerccios 5.14 permitem-nos afirmar, atendendo a que w dado por (5.6)
um polinmio mnico, que (5.15) mnimo quando se consideram os pontos de suporte
xi =
(2i + 1)
a+b ba
+
cos
,
2
2
2n + 2
i = 0, . . . , n.
x[a,b]
(b a)n
max |f (n+1) (x)|,
2n+1 (n + 1)! x[a,b]
98
Interpolao
Assim, os polinmios que passam por (xi , yi ) e (xi , ybi ) so dados, respectivamente, por
Pn (x) =
n
X
yi i (x)
Pbn (x) =
e por
i=0
Como tal,
n
X
i=0
n
X
i=0
ybi i (x).
|i (x)|.
Pn
Temos ento que a funo
o factor de amplificao dos erros dos
i=0 |i (x)| descreve
P
dados. O seu valor mximo n = maxx[a,b] ni=0 |i (x)| chamado constante de Lebesgue,
em homenagem a Henri Lon Lebesgue (1875-1941), associada aos pontos de interpolao
dados e ao intervalo [a, b]. Esta constante pode ser calculada numericamente.
Exerccio 5.15 Mostre numericamente que, quando se consideram pontos igualmente distanciados no intervalo [a, b], se tem 20 3 104 e 40 1010 e quando se consideram os
pontos de Chebyshev n 3 (n 30) e n 4 (n 100).
5.3
Pretende-se aproximar uma funo peridica f : [0, 2] C, com f (0) = f (2), por um
2j
polinmio trigonomtrico fe que interpola f nos n + 1 pontos xj = n+1
, j = 0, . . . , n, ou
seja, tal que
fe(xj ) = f (xj ),
j = 0, . . . , n.
Um polinmio trigonomtrico pode escrever-se na forma
ck eikx ,
M = n2 , n par
k=M
,
fe(x) =
M
+1
X
ikx
n1
ck e ,
M = 2 , n mpar
k=M 1
M
+
X
ck eikx ,
(5.17)
k=M
M
+
X
k=M
ck eikjh = f (xj ),
j = 0, . . . , n.
(5.18)
99
Interpolao
ck =
1 X
f (xj )eikjh ,
n+1
j=0
k = M , . . . , M + .
Multiplicando por eimxj = eimjh , com m um inteiro entre 0 e n, e tomando somatrios, em j, em ambos os membros de (5.18) tem-se que
n
X
f (xj )eimjh =
M
+
X
n
X
ck ei(km)jh =
j=0 k=M
j=0
M
+
X
k=M
ck
n
X
ei(km)jh .
j=0
ei(km)jh = (n + 1)km ,
j=0
ei(km)jh =
n
X
j=0
ei(km)jh =
1 = n + 1.
j=0
j=0
Se k 6= m,
n
X
1 ei(km)h(n+1)
1 ei(km)2
=
= 0.
1 ei(km)h
1 ei(km)h
Ao conjunto dos coeficientes {ck } da srie de Fourier discreta (5.17) chamamos transformada discreta de Fourier. A transformada discreta de Fourier pode ser calculada com um
nmero de operaes da ordem n log2 n usando um algoritmo designado por FFT (de Fast
Fourier Transform). A transformada rpida de Fourier no mais do que a transformada
discreta de Fourier calculada pelo algoritmo FFT. O MatLab possui o comando fft onde
est implementado esse algoritmo. O algoritmo mais famoso para obter a FFT de 1965
e devido a James Cooley (1926-) e John Wilder Tukey (1915-2000).
A transformao de Fourier inversa, pela qual os valores {f (xk )} so obtidos custa
dos valores {ck }, definida, em MatLab, pela funo ifft.
Um cuidado a ter com o comando fft o seginte. Se considerarmos
F = [f (x0 ), f (x1 ), . . . , f (xn )]T ,
ao executar TF = fft(F), obtm-se
T F = (n + 1)[c0 , , cM + , cM , . . . , c1 ]T .
Se pretendermos obter os ceficientes {ck } pela ordem com que aparecem na srie de Fourier
discreta (5.17) temos que executar o comando TF = 1/(n + 1) fftshift(fft(F)).
Em muitos casos, a preciso da interpolao trigonomtrica pode degradar-se muito
devido ao fenmeno conhecido com aliasing. Este fenmeno pode ocorrer quando a funo
a aproximar for a soma de vrias componentes com frequncias distintas. S o nmero de
ns no for suficiente para resolver as frequncias mais altas, estas podem intreferir com
as baixas frequncias, o que d origem a interpolaes imprecisas. Nesse caso, preciso
aumentar o nmero de ns de interpolao.
Exerccio 5.16 Calcule a transformada de Fourier discreta de y = [1, 1, 1, 1]T .
100
Interpolao
5.4
Consideremos um intervalo [a, b] e uma partio dada por (5.1). Designemos por polinmio
segmentado linear (ou funo linear por segmentos) na partio (5.1), uma funo contnua
em [a, b] que, quando restringida a cada um dos intervalos [xi , xi+1 ], i = 0, ..., n 1, da
partio, coincide com um polinmio de grau menor ou igual a um (polinmio que, em
geral, varia com i).
Consideremos agora o problema da interpolao. Seja f uma funo conhecida nos
pontos da partio (5.1). Pelo que foi visto na seco anterior, bvio que existe um e um
s polinmio segmentado linear P1h tal que
P1h (xi ) = f (xi ),
i = 0, 1, . . . , n.
Nestas condies, P1h chamado o polinmio interpolador (de Lagrange) segmentado linear
de f nos pontos de (5.1).
Temos que
h (x),
x [x0 , x1 ]
P10
x [x1 , x2 ]
P11 (x),
..
..
.
.
h
P1 (x) =
,
h
P1i (x),
x [xi , xi+1 ]
..
..
.
.
h
P1n1 (x), x [xn1 , xn ]
h
P1i
(x) = f (xi ) + f [xi , xi+1 ](x xi ),
x xi
x xi+1
+ f (xi+1 )
.
xi xi+1
xi+1 xi
O que podemos dizer quanto ao erro que se comete ao aproximar f pelo seu polinmio
interpolador segmentado linear?
Suponhamos que x [xi , xi+1 ]. Temos ento que, nesse intevalo,
M (i)
h
(x) 2
f (x) P1i
2
x[xi ,xi+1 ]
max
com
(i)
M2 =
max
x[xi ,xi+1 ]
x[xi ,xi+1 ]
e, com tal
max
x[xi ,xi+1 ]
(2)
(x)
f
,
i = 0, . . . , n 1.
1
(xi+1 xi )2
4
M (i)
h
(x) 2 h2i ,
f (x) P1i
8
x[xi ,xi+1 ]
max
com hi = xi+1 xi , i = 0, . . . , n 1.
101
Interpolao
Consideremos agora x [a, b]. Atendendo ao que foi dito,conclui-se imediatamente que
M
2 2
h ,
max f (x) P1h (x)
8
x[a,b]
onde M2 =
max
i=0,...,n1
(i)
M2 e h =
max
i=0,...,n1
hi .
Este limite superior para o erro permite demonstrar que o processo de interpolao
linear por segmentos convergente. De facto, se f (2) limitada, medida que o nmero
de pontos da partio aumenta (h diminui) o erro tende para zero, ou seja, o polinmio
segmentado linear tende para a funo a interpolar uniformemente em [a, b].
A interpolao linear segmentada possui vantagens em relao interpolao (global)
de Lagrange. Note-se que, se n muito grande o clculo do polinmio interpolador de
Lagrange (global) Pn envolve muito mais operaes que o clculo do polinmio interpolador
linear segmentado S. Alm disso, como foi visto, o facto de n aumentar no implica que
o polinmio interpolador de Lagrange Pn tenda para a funo a interpolar, mesmo que
essa funo seja infinitamente diferencivel. A desvantagem que o processo da interpolao
segmentada linear apresenta relativamente interpolao de Lagrange que o polinmio
Pn infinitamente diferencivel enquanto que Pnh pode no ter (e, em geral, no tem)
derivadas contnuas nos pontos da partio.
5.5
Interpolao de Hermite
O objectivo da interpolao de Hermite, chamada assim em honra de Charles Hermite (18221901), o de representar uma funo f por um polinmio que seja interpolador de f em
alguns pontos do seu domnio e que a sua derivada seja interpolador da derivada de f nesses
mesmos pontos. Isto , supondo que f diferencivel, vamos procurar um polinmio H
tal que
f (xi ) = H(xi )
,
i = 0, 1, . . . , n.
(5.19)
f (xi ) = H (xi )
Quando tal situao acontece dizemos que f e H so funes que 2-osculam (osculam 2
vezes) os pontos xi , i = 0, 1, . . . , n, ou que H um polinmio 2-osculador de f nos pontos
xi , i = 0, 1, . . . , n.
O prximo teorema estabelece a existncia e unicidade do polinmio de grau inferior
ou igual a 2n + 1 que verifica (5.19). Alm disso, indica-nos um processo que permite a
sua determinao.
Teorema 5.5 Seja f C 2n+2 ([a, b]) e x0 , x1 , . . . , xn pontos distintos em [a, b]. Existe um
e um s polinmio H2n+1 de grau menor ou igual a 2n + 1 que verifica (5.19).
Demonstrao: Atendendo s condies impostas, o polinmio ter que ser de grau
inferior ou igual a 2n + 1. Para provar a sua existncia vamos considerar as funes
h1i (x) = [1 2i (xi )(x xi )]i (x)2
i = 0, . . . , n,
h1i (xj ) = 0,
i, j = 0, . . . , n,
i, j = 0, . . . , n.
e
h2i (xj ) = 0,
102
Interpolao
Assim, o polinmio
H2n+1 (x) =
n
X
i=0
(x x1 )2
x x0
,
h10 (x) = 1 2
x0 x1 (x0 x1 )2
x x1
(x x0 )2
h11 (x) = 1 2
,
x1 x0 (x1 x0 )2
h20 (x) = (x x0 )
h21 (x) = (x x1 )
(x x1 )2
,
(x0 x1 )2
(x x0 )2
.
(x1 x0 )2
O estudo do erro na interpolao de Hermite consiste na generalizao do estudo efectuado para a interpolao de Lagrange de acordo com o seguinte teorema.
Teorema 5.6 Seja H2n+1 o polinmio, de grau menor ou igual a 2n + 1 interpolador de
Hermite da funo f nos pontos distintos x0 , x1 , . . . , xn [a, b]. Se f C 2n+2 ([a, b]) ento
para cada x [a, b] existe = (x) ]a, b[ tal que
e(x) = f (x) H2n+1 (x) =
f (2n+2) () 2
w (x),
(2n + 2)!
(5.20)
x[a,b]
M2n+2
max |w2 (x)|,
(2n + 2)! x[a,b]
103
Interpolao
onde
M2n+2 = maxx[a,b] |f (2n+2) (x)|.
Se o objectivo for determinar o erro apenas num ponto x [a, b], ento
|f (x) H2n+1 (x)|
M2n+2
|w2 (x)|.
(2n + 2)!
x[a,b]
M2n+2
(b a)2n+2 .
(2n + 2)!
x[a,b]
hn+1 n!
,
4
x[a,b]
h2n+2 (n!)2
.
16(2n + 2)!
5.5.1
Consideremos um intervalo [a, b] e uma partio dada por (5.1). Designemos por polinmio
segmentado cbico (ou funo cbica por segmentos) na partio (5.1), uma funo contnua
em [a, b] que, quando restringida a cada um dos intervalos [xi , xi+1 ], i = 0, ..., n 1, da
partio, coincide com um polinmio de grau menor ou igual a trs.
Seja f uma funo conhecida nos pontos da partio (5.1). Como se sabe, existe um e
um s polinmio segmentado cbico H3h tal que
h
= f (xi )
H3 (xi )
,
i = 0, 1, . . . , n.
(H3h ) (xi ) = f (xi )
Nestas condies, H3h chamado o polinmio interpolador (de Hermite) segmentado cbico
de f nos pontos de (5.1).
Temos que
h (x),
x [x0 , x1 ]
H30
x [x1 , x2 ]
H31 (x),
..
..
.
.
H3h (x) =
,
h (x),
H
x
[x
, xi ]
i1
3i
..
..
.
.
h
H3n1 (x), x [xn1 , xn ]
h
H3i
(x) = f (xi )h1i (x) + f (xi+1 )h1i+1 (x) + f (xi )h2i (x) + f (xi+1 )h2i+1 (x).
104
Interpolao
Exerccio 5.18 Mostre que o erro que se comete ao aproximar f C 4 ([a, b]) pelo seu polinmio interpolador segmentado de Hermite cbico na partio (5.1) dado por
M
4 4
h ,
max f (x) H3h (x)
384
x[a,b]
onde M4 = maxx[a,b] f (4) (x) e h = max (xi xi1 ).
i=1,...,n
5.5.2
A obteno do polinmio interpolador de Hermite pode ser feita de vrias maneiras. Vamos
apresenta-la neste curso numa forma que generaliza o polinmio interpolador de Newton
das diferenas divididas.
Consideremos a mudana de varivel z0 = x0 , z1 = x0 , z2 = x1 , z3 = x1 , . . ., z2n = xn ,
z2n+1 = xn . Uma vez que
z2i = z2i+1 = xi ,
i = 0, . . . , n,
xxi
xxi
f (x) f (xi )
= f (xi ),
x xi
f (r) (xi )
.
r!
(5.21)
Com esta notao pode verificar-se facilmente que o polinmio interpolador de Hermite
de grau 2n + 1 nos pontos da partio (5.1) dado por (verifique para n = 1)
H2n+1 (x) = f (z0 ) +
2n+1
X
f [z0 , z1 , . . . , zi ]
i=1
i1
Y
(x zj )
j=0
105
Interpolao
f (xi )
0
f [, ]
f [, , ]
f [, , , ]
42
2
42
416
3
Logo
4 2 2 4 16 2
x
x
+
x
H3 (x) = x +
2
3
2
= x 1 + x 0,2313 0,1107 x
.
2
5.6
O termo ingls spline pode ser traduzido pelo vocbulo virote. Um virote um instrumento usado pelos desenhadores para unir um conjunto de pontos do plano.
Seja f uma funo definida num intervalo [a, b] onde consideramos a partio (5.1).
Matematicamente, o problema de unir pontos do plano com um virote pode ser traduzido
da seguinte forma: determinar a funo S : [a, b] R, com a = x0 , b = xn , que satisfaz:
[S1] S(xi ) = f (xi ),
i = 0, . . . , n;
106
Interpolao
Este teorema mostra que os candidatos resoluo de [S1][S3] so as funes pertencentes a C 2 ([a, b]) que so polinmios de grau 3 em cada intervalo da partio. Essas
funes sero designadas por funes spline cbicas.
Definio 5.4 (Spline) Uma funo spline de grau m um polinmio segmentado de grau
m continuamente derivvel at ordem m 1. Por outras palavras, dada uma partio
(5.1), S uma funo spline de grau m se S um polinmio S (i) de grau m em cada
intervalo da partio [xi , xi+1 ], i = 0, . . . , n 1, e
dk
dk (i+1)
S
(x) = k S (i) (x),
k
dx
dx
k = 0, . . . , m 1,
i = 0, . . . , n 1.
x[a,b]
5
max |f (4) (x)|h4 .
384 x[a,b]
Exerccio 5.22 Pretende-se interpolar a funo f definida por f (x) = ln x, com x [2, 2,5],
por um spline cbico completo S numa malha uniforme.
1. Calcule o nmero mnimo de pontos a usar para garantir que
max |f (x) S(x)| 0,5 104 .
x[2, 2,5]
2. Determine uma aproximao para f (2,3) usando o spline cbico completo interpolador
de f nos pontos obtidos na alnea anterior.
107
Interpolao
5.7
5.7.1
Problemas
Exerccios para resolver nas aulas
Exerccio 5.23 Considere os seguintes pontos de R2 , (3, 1), (2, 2), (1, 1) e (3, 10).
Determine o polinmio interpolador de Lagrange P (x) que passa por esses pontos e calcule
P (0).
Exerccio 5.24 Determine aproximaes de cos 8 usando os polinmios interpoladores de
Lagrange de grau 2 e 4 no intervalo [0, ]. Compare os resultados obtidos e indique majorantes
do erro.
Exerccio 5.25 (Matlab) Considere os seguintes pontos de R2 , (-2,1), (-1,0), (1,-3) e (4,8).
Determine o polinmio interpolador P (x) que passa por esses pontos e calcule P (0).
Exerccio 5.26 (Matlab) Considere a funo f (x) = sin x, x [/2, /2]. Trace os
grficos dos polinmios interpoladores de f para diferentes valores de n (grau do polinmio).
Exerccio 5.27 Seja {x0 , x1 , . . . , xn } um conjunto de n + 1 nmeros reais. Mostre que,
n
X
i (x) = 1, onde i (x), i = 1, . . . , n, so os polinmios de Lagrange (5.4).
i=0
Exerccio 5.28 Seja {x0 , x1 , . . . , xn } um conjunto de n + 1 nmeros reais igualmente espaados. Mostre que
n
Y
n! hn+1
|x xi |
,
4
i=0
+k ,
2
4
k = 0, 1, . . . , 4.
Determine um majorante do erro que se comete na aproximao de f por um polinmio interpolador de Lagrange definido nesses pontos.
108
Interpolao
Exerccio 5.32 Seja xk1 , xk e xk+1 trs pontos igualmente espaados, com distncia h/2,
onde so conhecidos os valores de uma funo f . Mostre que o polinmio interpolador de
Lagrange de grau 2 dado por
4(xk1 x)(x xk+1 )
2(x xk )(x xk1 )
2(x xk )(x xk+1 )
f (xk1 )+
f (xk )+
f (xk+1 ).
h2
h2
h2
Exerccio 5.33 (Matlab) A temperatura do ar prximo do solo depende da concentrao K
em cido carbnico (H2 CO3 ). A tabela representa a variao K = K K da temperatura
mdia relativamente a uma temperatura de referncia K, para diferentes latitudes e valores de
K:
K
Latitude K = 0,67 K = 1,5 k = 2,0 K = 3,0
65
3,1
3,52
6,05
9,3
55
3,22
3,62
6,02
9,3
45
3,3
3,65
5,92
9,17
35
3,32
3,52
5,7
8,82
25
3,17
3,47
5,3
8,1
15
3,07
3,25
5,02
7,52 .
5
3,02
3,15
4,95
7,3
5
3,02
3,15
4,97
7,35
15
3,12
3,2
5,07
7,62
25
3,2
3,27
5,35
8,22
35
3,35
3,52
5,62
8,8
45
3,37
3,7
5,95
9,25
55
3,25
3,7
6,1
9,5
1. Recorra ao polinmio interpolador dos dados para comparar a variao da temperatura,
em funo da latitude, para os diferentes valores de K. Trace os respectivos grficos.
2. Use a alnea anterior para estimar o valor da variao de temperatura K para um local
cuja latitude igual a 23. Considere K = 0,67.
Exerccio 5.34 (Matlab) Um pra-quedista efectuou 5 saltos de diferentes alturas, tendo
medido a distncia a um alvo constitudo por uma circunferncia de raio 5 metros traada no
solo. Supondo que as respectivas altura e distncia de cada salto satisfazem a seguinte tabela
Altura do salto (m) 1500 1250 1000 750 500
,
Distncia do alvo (m) 35
25
15
10
7
recorra interpolao para estimar a distncia do alvo a que o pra-quedista cairia se saltasse
de uma altura de 850 m.
Exerccio 5.35 (Matlab) Os jactos de gua dos repuxos da Avenida S da Bandeira descrevem uma trajectria parablica. Para obter a expresso dessa trajectria foram realizadas as
seguintes medies:
Distncia (eixo horizontal) 0 1/4 1/3 1 3/2 2
.
Altura da gua
0 21/16 5/3 3 9/4 0
Recorra interpolao para obter a respectiva trajectria.
109
Interpolao
Exerccio 5.36 Uma empresa apresenta os seguintes lucros em funo das vendas:
No peas vendidas (milhares)
Lucro (milhares de euros)
1
11,2
2
15,3
3
17,1
4
16,9
5
.
15,0
Sabendo que o lucro previsto era de 13 mil euros, indique uma aproximao do nmero de peas
que foi necessrio vender para atingir esse lucro.
Exerccio 5.37 Obtenha um valor aproximado para a raiz de uma funo contnua f (x) da
qual se conhece apenas os valores apresentados na tabela seguinte:
xi
f (xi )
-2
-12,5
0
1,5
1
.
-1
Exerccio 5.38 Determine uma aproximao de cos 8 usando o polinmio interpolador segmentado de grau 2 em 5 pontos no intervalo [0, ] e indique um estimativa para o erro cometido.
Compare esta estimativa com a obtida no Exerccio 5.24.
Exerccio 5.39 Determine polinmios interpoladores segmentados de grau 1 e 2 para a funo
f (x) = x3 no intervalo [-1, 1].
Exerccio 5.40 Determine o polinmio interpolador de Hermite de grau mnimo para a funo
f (x) = cos x, x [0, 2 ] e calcule um valor aproximado para cos 8 e para sin 8 .
Exerccio 5.41 Determine o polinmio de grau mnimo que seja concordante1 com a recta
y = 2 + 21 (8 x), no ponto (8, 2), e com a circunferncia (x 1)2 + (y + 2)2 = 1, no ponto
(1, 1).
Exerccio 5.42 Da funo f (x) = sinh(x) = (ex ex )/2 conhecem-se os seguintes valores
tabelados:
xi
f (xi )
f (xi )
0
0
1
1
e1/e
2
e+1/e
2
1. A partir dos valores dados, calcule o valor aproximado de f (0,5), usando interpolao
polinomial cbica adequada. (e = 2,71828182845905 . . .)
2. Obtenha um majorante para o erro absoluto da aproximao obtida na alnea anterior
(sem calculadora, obviamente).
Exerccio 5.43 (Matlab) Dada a funo f (x) = x(x 2)ex , para x [0, 2], determine
a interpoladora trigonomtrica de f em 10 ns equidistantes. Compare o respectivo grfico
com o grfico de f .
Exerccio 5.44 (Matlab) Considere a funo f (x) = 1/(1+x2 ) definida no intervalo [-5,5].
1. Trace o grfico de alguns polinmios interpoladores de f (x) em pontos equidistantes e
compare-os com o grfico da funo.
2. Repita o procedimento da alnea anterior usando os ns de Chebyshev. Que pode concluir?
1
110
Interpolao
Exerccio 5.45 (Matlab) Considere a funo (de Runge) f (x) = 1/(1+ 25x2 ), x [1, 1].
Verifique graficamente que
max |f (x) P3 (x)| max |f (x) P8 (x)| ,
x[1,1]
x[1,1]
3
1
2
1
1
1
0
0
1
1
2
1
3
.
1
1
0,00
0,00
2
0,06
0,08
3
0,14
0,14
4
0,25
0,20
5
0,31
0,23
6
0,47
0,25
7
0,60
0,28
8
0,70 :
0,29
111
Interpolao
5.7.2
Exerccio 5.50 Conhecem-se as coordenadas de cinco pontos de uma curva plana que representa uma regio de uma pea em corte. Determine o polinmio de Lagrange de grau 4 que
interpola a referida curva sabendo que os pontos de coordenadas conhecidas so: P1 = (1, 2),
P2 = (2, 1), P3 = (3, 1), P4 = (4, 2,5) e P5 = (5, 4). Determine ainda valores aproximados
para as ordenadas dos pontos cujas abcissas so 0, 2,5 e 6.
Exerccio 5.51 Na seguinte tabela so dados diferentes valores para o peso especfico p da
gua a diferentes temperaturas T (em graus centgados):
T
p
0
0,999871
1
0,999928
2
0,999969
3
.
0,999991
Usando interpolao linear, quadrtica e cbica, determine uma aproximao para p quando
T = 4 o C. Compare os resultados obtidos sabendo que o valor exacto 1,000000.
Exerccio 5.52 Durante a sedimentao da reaco de saponificao entre quantidades equimolares de hidrxido de sdio e acetato de etilo, a concentrao c (gr mole/litro) de cada
reagente varia com o tempo t (min) de acordo com a equao
1
1
=
+ kt,
c
c0
onde c0 a concentrao inicial e k (litro/gr mole min) a constante de reaco. Foram
obtidos os seguintes resultados em laboratrio temperatura de 77 o F:
1/c
t
24,7
1
32,4
2
38,4
3
45,0
4
52,3
5
65,6
7
87,6
10
102
12
154
20
192
.
25
1930
123203
1940
131669
1950
150697
1960
179323
1970
203212
1980
226505
Use um polinmio interpolador apropriado para estimar a populao nos anos de 1920, 1965, e
2000. Sabendo que a populao no ano de 1920 era de 105711103 , o que pode inferir quanto
preciso das aproximaes obtidas para os anos de 1965 e 2000?
Exerccio 5.54 Determine uma aproximao para o instante da passagem do perigeu da Lua
em Maro de 1999, a partir dos valores tabelados para as zero horas de cada dia
dia
distncia
19
57,071
20
56,955
21
.
57,059
Indique tambm a distncia (em raios mdios da Terra) da Terra Lua nesse instante.
112
Interpolao
Exerccio 5.55 Usando interpolao cbica livre, determine uma aproximao para a declinao aparente de Vnus para o dia 9 de Maio de 1999, s 18h30m45s, a partir das Efemrides
Astronmicas (onde est tabelada para cada dia, s zero horas)
dia
i
7
+5o 51 47 ,55
8
+6o 22 25 ,20
9
+6o 52 54 ,57
10
.
+6o 23 14 ,96
A partir da funo obtida, determine uma aproximao para o instante em que a declinao
aparente de Vnus no dia 9 de Maio de 1999 foi mxima.
Exerccio 5.56 A estrela S da Ursa Maior apresenta uma variao para a sua magnitude
aparente m, em funo do ngulo de fase (em graus), de acordo com os dados da seguinte
tabela:
60
9,40
20
11,39
20
.
10,84
Usando um spline cbico natural, determine uma aproximao para o ngulo de fase pertencente
ao intervalo [20, 20] em que a magnitude aparente da estrela mxima.
Exerccio 5.57 Deslocando-se um receptor de GPS num veculo ao longo do eixo de uma
estrada, em Angola, obtiveram-se as coordenadas locais:
latitude
longitude
26 56 ,1
5 36
26 50 ,4
5 56
27 02 ,7
6 16
26 58 ,3
.
6 36
0
0
40
5
90
10
150 .
40
Usando o spline cbico completo interpolador da funo distncia nos pontos dados, indique,
justificando, uma aproximao para:
1. o primeiro instante em que o carro excedeu o limite de velocidade permitido dentro das
localidades;
2. o instante em que o carro atingiu a velocidade mxima nos primeiros 5 segundos.
113
Interpolao
Exerccio 5.59 Uma das formas mais utilizadas na construo de curvas consiste em partir
das respectivas equaes paramtricas e proceder a uma interpolao apropriada. Considere o
caso das curvas planas dadas pelas equaes paramtricas
x = p(t)
,
t [0, 1],
y = q(t)
em que p e q so polinmios.
1. Determine a forma destes polinmios de modo a que a curva passe pelos pontos P0 =
(x0 , y0 ) e P1 = (x1 , y1 ) com tangentes T0 = (p (0), q (0)) e T1 = (p (0), q (0)), respectivamente (curva de Ferguson-Coons).
2. A especificao das tangentes atravs de dois pontos auxiliares (pontos de guia) revelase mais til na prtica. Assim, sejam P2 e P3 dois pontos auxiliares tais que T0 =
(P2 P0 ) = (x2 x0 , y2 y0 ) e T1 = (P3 P1 ) = (x3 x1 , y3 y1 ), em que
um factor de normalizao escolha. Mostre que a curva de Ferguson-Coons se pode
escrever na forma
x(t) = 0 (t)x0 + 1 (t)x1 + 2 (t)x2 + 3 (t)x3
,
t [0, 1],
y(t) = 0 (t)y0 + 1 (t)y1 + 2 (t)y2 + 3 (t)y3
com
0 (t)
1 (t)
2 (t)
3 (t)
=
=
=
=
0.5
0.5
1.5
0.5
0.5
1.5
0.5
1.5
0.5
1.5
-0.5
-0.5
-0.5
-1
-1
-1
-1.5
Interpolao
114
Captulo 6
Derivao numrica
6.1.1
Queremos aproximar a derivada de f C m ([a, b]) num dos pontos xk , k {0, 1, . . . , n},
da partio (6.1).
Frmulas com dois pontos
Considerando a frmula de Taylor para f em torno do ponto xk , e assumindo que f
C 2 ([a, b]), temos
f (xk+1 ) = f (xk ) + f (xk )h +
h2
f (1 ),
2
1 ]xk , xk+1 [
h2
f (2 ),
2
2 ]xk1 , xk [.
f (xk+1 ) f (xk ) h
f (1 ),
h
2
1 ]xk , xk+1 [
f (xk ) =
f (xk ) f (xk1 ) h
+ f (2 ),
h
2
2 ]xk1 , xk [.
115
116
Obtemos assim duas frmulas de diferenas finitas de primeira ordem em h para aproximar
a primeira derivada de uma funo num ponto. A
(+ f )(xk ) =
f (xk+1 ) f (xk )
h
f (xk ) f (xk1 )
h
1
h2
[3f (xk ) + 4f (xk+1 ) f (xk+2 )] + f (),
2h
3
2. f (xk ) =
1
h2
[f (xk+1 ) f (xk1 )] f (),
2h
6
3. f (xk ) =
h2
1
[f (xk2 ) 4f (xk1 ) + 3f (xk )] + f (),
2h
3
]xk , xk+2 [;
]xk1 , xk+1 [;
]xk2 , xk [.
h3
h2
f (xk ) + f (1 ),
2
6
1 ]xk , xk+1 [;
h3
h2
f (xk ) f (2 ),
2 ]xk1 , xk [.
2
6
Subtraindo membro a membro, e colocando f (xk ) em evidncia, obtemos
f (xk1 ) = f (xk ) f (xk )h +
f (xk ) =
1
f (1 ) + f (2 )
[f (xk+1 )f (xk1 )]h2
,
2h
12
1
f (1 ) + f (2 ) .
2
(6.2)
x[a,b]
Pelo Teorema de Bolzano conclui-se que existe ]xk1 , xk+1 [ tal que (6.2) se verifica.
Provmos, assim, que
f (xk ) =
f ()
1
[f (xk+1 ) f (xk1 )] h2
,
2h
6
]xk1 , xk+1 [.
117
1
[f (xk+1 ) f (xk1 )]
2h
chamamos frmula de diferenas finitas centradas de segunda ordem em h.
(f )(xk ) =
M
1 X
f (k ).
M
k=1
1,8
10,889365
1,9
12,703199
2,0
14,778112
2,1
17,148957
2,2
.
19,855030
1
[3f (2,0) + 4f (2,1) f (2,2)] = 22,032310.
0,2
1
[f (1,8) 4f (1,9) + 3f (2,0)] = 22,054525.
0,2
1
[f (2,1) f (1,9)] = 22,228790.
0,2
118
6.1.2
h3
h4
h2
f (xk ) + f (xk ) + f (4) (1 ),
2
6
24
1 ]xk , xk+1 [
e
h2
h3
h4
f (xk ) f (xk ) + f (4) (2 ),
2 ]xk1 , xk [.
2
6
24
Se adicionarmos estas duas expresses obtemos
h2 (4)
1
f (1 ) + f (4) (2 ) .
f (xk ) = 2 [f (xk1 ) 2f (xk ) + f (xk+1 )]
h
24
f (xk1 ) = f (xk ) f (xk )h +
Uma vez que f (4) contnua em [xk1 , xk+1 ], o Exerccio 6.2 permite concluir que existe
um ]xk1 , xk+1 [ tal que
1 (4)
f (4) () =
f (1 ) + f (4) (2 ) .
2
Assim,
h2
1
(6.3)
f (xk ) = 2 [f (xk1 ) 2f (xk ) + f (xk+1 )] f (4) ().
h
12
A frmula
1
(2 f )(xk ) = 2 [f (xk1 ) 2f (xk ) + f (xk+1 )]
(6.4)
h
conhecida como frmula de diferenas centradas de segunda ordem para aproximar a segunda derivada. Por um raciocnio semelhante poderiam ser obtidas outras frmulas de
diferenas finitas para aproximar a segunda derivada, no s centradas como tambm progressivas e regressivas.
Exerccio 6.4 Prove que
h4 (4)
1
f (),
[f
(x
)
+
16f
(x
)
30f
(x
)
+
16f
(x
)
f
(x
)]
+
k2
k1
k
k+1
k+2
12h2
90
com ]xk2 , xk+2 [.
f (xk ) =
Exerccio 6.5 Considere, de novo, os valores da funo f (x) = xex dados na tabela do
Exerccio 6.3. Aproxime o valor de f (2,0) = 29,556224 usando a frmula de diferenas finitas
centradas de segunda ordem.
Resoluo: Temos que
f (2,0)
1
[f (1,9) 2f (2,0) + f (2,1)] = 29,593200.
0,01
f (x) 2
+
.
h 1+
(1 + )
Verifique que quando = 1 se recupera a frmula das diferenas centradas.
119
6.2
Integrao numrica
Nesta seco vamos obter e analisar as chamadas frmulas de quadratura numrica que
permitem determinar, de forma aproximada, o integral definido
Z b
f (x)dx
I(f ) =
a
de uma funo real de varivel real f num dado intervalo real [a, b].
Seja f uma funo conhecida em M + 1 pontos a = x0 < x1 < < xM 1 < xM = b,
com xk = x0 + kH e H = (b a)/M . Assim sendo, temos que
I(f ) =
f (x)dx =
M Z
X
k=1
xk
f (x)dx.
xk1
As chamadas frmulas que iremos considerar permitem obter aproximaes a I(f ) aproximando, em cada intervalo Ik = [xk1 , xk ], k = 1, . . . , M , a funo f por um seu polinmio
interpolador. Se Pnk for o polinmio de grau menor ou igual a n interpolador de f em n + 1
pontos de Ik , temos que f (x) = Pnk (x) + ekn (x), com x Ik , onde ekn (x) o erro cometido
na interpolao. Assim,
I(f ) = IN C (f ; n) + EN C (f ; n),
com
IN C (f ; n) =
M Z
X
xk
k=1 xk1
Pnk (x)dx
e EN C (f ; n) =
M Z
X
k=1
xk
xk1
ekn (x)dx.
(6.5)
As frmulas (6.5) so conhecidas como frmulas de Newton-Cotes (compostas), em homenagem a Newton e Roger Cotes (1682-1716), e dependem, obviamente, do grau do polinmio
escolhido. As frmulas de Newton-Cotes (simples) so aquelas que se obtm quando se
considera M = 1 ou, de forma equivalente, H = b a.
Uma vez que a n-sima frmula de Newton-Cotes obtida custa da aproximao da
funo integranda por um polinmio de grau n, ser de esperar que esta seja exacta para
polinmios de grau menor ou igual a n. Este facto conduz-nos ao conceito de grau de
exactido de uma frmula de quadratura numrica.
Definio 6.1 (Grau de exactido) Uma frmula de quadratura numrica (6.5)
diz-se com grau de exactido n se exacta para polinmios de grau menor ou igual a
n.
Outra forma de analisar o erro cometido ao aproximar um integral por uma frmula de
quadratura numrica atravs da sua ordem de convergncia.
Definio 6.2 (Ordem de convergncia) Uma frmula de quadratura numrica (6.5)
diz-se com ordem de convergncia p se |EN C (f ; n)| CH p , com C uma constante independente de H e M .
6.2.1
x Ik .
120
Para isso, a funo f tambm ter que ser conhecida nos pontos xk , k = 1, ..., M . Ento,
I(f ) =
f (x)dx =
M Z
X
k=1
xk
xk1
f (x)dx
M Z
X
k=1
xk
f (xk )dx = H
xk1
M
X
f (xk ).
k=1
=H
M
X
f (xk ).
k=1
(f (x) f (x)) dx
Z b
f (x )
=
f (x)(x x) +
(x x)2 dx,
2
a
I(f ) IP M (f ) =
x I{x, x}.
(x x)dx = 0
e ao facto de (x x)2 no mudar de sinal em [a, b], usando o Teorema 6.1, temos que
Z
f () b
I(f ) IP M (f ) =
]a, b[.
(x x)2 dx,
2
a
Ento (prove)
EP M (f ) = I(f ) IP M (f ) =
f ()
(b a)3 ,
24
]a, b[.
Pelas definies dadas anteriormente, temos que a frmula do ponto mdio tem ordem
de convergncia 3 e grau de exactido 1.
Exerccio 6.7 Mostre que
EPc M (f ) = I(f ) IPc M (f ) =
H2
(b a)f (),
24
]a, b[.
121
M
X
f (k )
24
k=1
(xk1 xk )3 =
M
H 3 X
f (k ),
24
k=1
k ]xk1 , xk [.
6.2.2
H2
(b a)M2 ,
24
Frmula do trapzio
x xk1
f (k )
x xk
+ f (xk )
+
(x xk1 )(x xk ),
xk1 xk
xk xk1
2
f (x)dx =
M Z
X
k=1
xk
xk1
f (x)dx
M Z
X
k=1
xk
xk1
x xk
x xk1
f (xk1 )
+ f (xk )
) dx
xk1 xk
xk xk1
M
HX
H
(f (xk1 ) + f (xk )) = [f (a) + 2f (x1 ) + + 2f (xM 1 ) + f (b)].
2
2
k=1
H
[f (a) + 2f (x1 ) + + 2f (xM 1 ) + f (b)].
2
ba
[f (a) + f (b)].
2
(6.6)
Vamos agora analisar o erro que se comete na aproximao I(f ) IT (f ). Temos que,
se f C 2 ([a, b]),
Z b
f (x )
(x a)(x b),
x ]a, b[.
I(f ) IT (f ) =
2
a
Como (x a)(x b) no muda de sinal em ]a, b[, pelo Teorema 6.1, temos que (prove)
ET (f ) = I(f ) IT (f ) =
(b a)3
f (),
12
]a, b[.
Tal como para a frmula do ponto mdio, temos que a frmula do trapzio tem ordem
de convergncia 3 e grau de exactido 1.
122
12
10
y=f(x)
8
6
4
2
-1
a
-0.5
b
0.5
1.5
2.5
H2
(b a)f (),
12
]a, b[.
M
X
f (k )
k=1
12
(xk1 xk )3 =
M
H 3 X
f (k ),
12
k=1
k ]xk1 , xk [.
H2
(b a)M2 ,
12
O valor do integral de uma determinada funo f num intervalo [a, b] pela frmula do
trapzio pode ser dado de acordo com o seguinte algoritmo.
Algoritmo 6.1 Frmula do trapzio
Dados: a, b e M
H := (b a)/M
x := a
s := 0
Para k de 1 at M 1 fazer
x := x + H
s := s + f (x)
123
x[2,1]
6.2.3
Frmula de Simpson
f (x) = f (xk1 )
124
15
12.5
10
y=f(x)
7.5
5
2.5
a
-1
b
1
0.5
(a+b)/2
-0.5
1.5
2.5
M
HX
[f (xk1 ) + 4f (xk )) + f (xk )] ,
=
6
k=1
estabelecida por Thomas Simpson (1710-1761), que tambm pode ser escrita na forma
#
"
M
1
M
X
X
H
f (xk ) + f (b) .
(6.7)
ISc (f ) =
f (xk ) + 2
f (a) + 4
6
k=1
k=1
(b a)5 (4)
f (),
2880
]a, b[.
Uma vez que a frmula de Simpson foi obtida pela aproximao da funo integranda
por um polinmio de segundo grau, seria de esperar que tivesse grau de exactido 2. No
entanto, de forma surpreendente, a expresso obtida para o erro diz-nos que a frmula de
Simpson tem grau de exactido trs, isto , esta frmula exacta sempre que a funo a
integrar um polinmio de grau menor ou igual a 3.
A determinao do valor do erro que est associado frmula de Simpson (composta)
pode ser feita de forma semelhante ao efectuado para a frmula do trapzio (composta).
De facto, pelo Exerccio 6.2, como f C 4 ([a, b]), existe um ]a, b[ tal que
M
X
k=1
Assim sendo,
ESc (f ) =
H4
H5
M f (4) () =
(b a)f (4) (),
2880
2880
]a, b[.
125
H4
(b a)M4 ,
2880
H
[f (a) + 4f (x1 ) + 2f (x2 ) + 4f (x3 ) + + 2f (xM 2 ) + 4f (xM 1 ) + f (b)], (6.8)
3
com erro
ESc (f ) =
o que implica
|ESc (f )|
H4
(b a)f (4) (),
180
H4
(b a)M4 ,
180
com
]a, b[,
(6.9)
A frmula (6.8) aquela que mais iremos usar na resoluo de exerccios prticos.
Nessa frmula, os pontos xk , com k mpar, correspondem, em (6.7), aos pontos mdios do
intervalo.
O valor do integral de uma determinada funo f num intervalo [a, b] pela frmula de
Simpson pode ser dado de acordo com o seguinte algoritmo.
Algoritmo 6.2 Frmula de Simpson
Dados: a, b e M (par)
H := (b a)/M
x := a
s := 0
Para k de 1 at M 1 fazer
x := x + H
Se k par ento s := s + 2f (x) caso contrrio s := s + 4f (x)
126
1
1
H 4 M4 =
M4 ,
180
180M 4
sendo
M4 = max |f (4) (x)| = max (4ex cos x).
x[0,1]
x[0,1]
1
[f (0) + 4f (0,25) + 2f (0,5) + 4f (0,75) + f (1)] = 1,377903843.
12
6.3
6.3.1
Problemas
Exerccios para resolver nas aulas
0
0,0000
60
0,0824
120
0,2747
180
0,6502
240
1,3851
300
.
3,229
1. Determine uma aproximao para v (180) usando: i. Diferenas progressivas; ii. Diferenas regressivas; iii. Diferenas centradas.
2. Como poderia proceder para determinar uma aproximao para v (300)? Justifique.
Exerccio 6.14 Calcule a ordem de preciso da seguinte frmula para a aproximao numrica
f (xi )
127
3,1
0,0
3,2
0,6
3,3
1,0
3,4
1,2
3,5
.
1,3
0
90
5
62,5
10
45,8
dT
dt
15
35,6
20
29,5
25
.
25,8
em cada momento.
2. Use a alnea anterior para obter uma estimativa para a constante de proporcionalidade k.
Exerccio 6.17 (Matlab) Os valores seguintes representam a evoluo no tempo do nmero
n(t) de indivduos de uma dada populao.
t (meses)
n(t)
0
100
0,5
147
1
178
1,5
192
2
197
2,5
199
3
.
200
Utilizar estes dados para aproximar a taxa de variao desta populao, usando diferentes
frmulas. Em seguida, comparar com a taxa exacta n (t) = 2n(t) 0,01n2 (t).
Exerccio 6.18 (Matlab) Considere-se o deslocamento de um carro numa recta. Use os
dados da tabela (tempo gasto e distncia percorrida) para aproximar o valor da velocidade nos
instantes referidos.
Tempo (s)
Distncia percorrida (m)
0
0
3
225
5
383
8
623
10
742
13
.
993
128
0
0
4
0,84
8
3,53
12
8,41
16
15,97
20
27,00 .
usando a frmula do ponto mdio e a frmula do trapzio. Indique um limite superior para o
erro cometido em cada um dos casos.
R
Exerccio 6.22 Seja I = 0 xe2x dx.
1. Qual o menor nmero de pontos que deve considerar na frmula do trapzio por forma a
aproximar o valor do integral com uma casa decimal correcta.
2. Calcule o valor aproximado de I de acordo com a alnea anterior.
3. Repita as alneas anteriores usando, agora, a frmula de Simpson.
Exerccio 6.23 Seja I1 e I2 os valores obtidos pela frmula composta do trapzio, aplicada
com dois passos de comprimentos diferentes H1 e H2 , ao clculo aproximado de I(f ) =
Rb
I1 I2
(H2 /H1 )2 1
d uma melhor aproximao de I(f ) do que I1 e I2 . Esta tcnica designa-se por mtodo de
extrapolao de Richardson.
Exerccio 6.24 Considere a seguinte tabela da funo f (x):
xi
f (xi )
0,0
1,00
0,2
0,83
0,4
0,71
0,6
0,62
0,8
0,36
1,0
.
0,30
f (x)dx, usando a
frmula de Simpson ou a regra dos trapzios, atravs da tabela, com um erro que no
exceda 103 ? Justifique a sua resposta.
2. Calcule um valor aproximado de I e indique uma estimativa para o erro cometido.
Exerccio 6.25 Pretende calcular-se um valor aproximado para o integral I =
2
1
1
ln dx.
x
129
0
10,00
10
35,00
20
54,73
30
52,16
40
,
37,07
sin x
dx,
x
0
124
6
134
12
148
18
156
24
147
30
133
36
121
42
109
48
99
54
85
60
78
66
89
72
104
78
116
84
.
123
usando a frmula dos trapzios composta, com 2, 20, 200 e 2000 subintervalos.
Exerccio 6.32 (Matlab) Determine o comprimento aproximado do arco do grfico da funo f (x) = x3 x, entre os pontos (-1,0) e (2,6), usando a frmula do trapzio composta,
com 4 subintervalos.
130
t/0
() 2 d,
j(r, t) = (r)e
, (r) =
0 r 2 0
onde 0 = 8,859 1012 farad/m a constante dielctrica do vazio. Usando a frmula de
Simpson composta, determine a funo (r), para r = k/10 m com k=1,...,10, () = e e
= 0,36 W/(mK). (Recorde que: m=metros, W=watts, K=graus Kelvin).
Exerccio 6.36 (Matlab) A fim de planificar uma sala para raios infravermelhos, estamos
interessados em calcular a energia emitida por um corpo negro (isto , um objecto capaz de
irradiar em todo o espectro temperatura ambiente) no espectro (infravermelho) compreendido
entre os comprimentos de onda 3 m e 14 m. A soluo deste problema obtm-se calculando
o integral
Z 14104
dx
11
,
E(T ) = 2,39 10
1,432/(T
x)1 )
5
x (e
3104
que a equao de Planck para a energia E(T ), onde x o comprimento de onda (em cm) e
T a temperatura (em Kelvin) do corpo negro. Recorra frmula de Simpson adaptativa para
determinar a funo E(T ), com T = 213 K.
6.3.2
Exerccio 6.37 Num circuito elctrico com voltagem aplicada E(t) e inductncia L, a primeira Lei de Kirchoff d-nos a relao
E(t) = LI (t)RI(t),
onde R a resistncia no circuito e I(t) a corrente no instante t. Suponhamos que medimos
a corrente para vrios valores de t = ti , i = 1, . . . , 5, obtendo
ti
I(ti )
1,00
3,10
1,01
3,12
1,02
3,14
1,03
3,18
1,04
,
3,24
131
0
100
0,5
147
1
178
1,5
192
2
197
2,5
199
3
.
200
1. Utilize os dados da tabela para aproximar com a maior preciso possvel a taxa de variao
desta populao.
2. Compare os resultados obtidos na alnea anterior com a taxa exacta N (t) = 2N (t)
0,01N 2 (t).
Exerccio 6.39 A altura q(t) atingida no tempo t por um fluido contido num reservatrio
cilndrico rectilneo de raio R = 1 m tendo na sua base um orifcio circular de raio r = 0,1 m,
foi medida em cada 5 segundos, tendo-se registado os seguintes valores:
t
q(t)
0
0,6350
5
0,5336
10
0,4410
15
0,3572
20
.
0,2822
1. Utilize os dados da tabela para aproximar com a maior preciso possvel a velocidade de
esvaziamento q (t).
2. Compare os resultados obtidos
p na alnea anterior com velocidade prevista pela lei de
2
Torricelli: q (t) = (r/R) 2gq(t), onde g a acelerao da gravidade e = 0,6
um factor de correco.
Exerccio 6.40 Fugacidade o termo usado na engenharia para descrever a trabalho resultante de um processo isotrmico. Para um gs ideal, a fugacidade f igual presso P , mas
para os gases reais,
Z P
C 1
f
dp
ln =
P
P
0
C
0,9940
0,9370
0,8683
0,7043
0,4515
P (atm.)
80
120
160
250
400
C
0,3429
0,4259
.
0,5252
0,7468
1,0980
Escreva um programa que calcule o valor de f correspondente a cada valor da presso dado na
tabela. Assuma que o valor de C varia linearmente entre os valores calculados e que C tende
para um quando P tende para zero.
Exerccio 6.41 A funo
2
f (x) =
et dt
usada com muita frequncia em disciplinas to diversas como a teoria das probabilidades,
distribuio de calor, difuso de matrias, etc. Usando uma das regras de integrao estudadas,
calcule uma aproximao para o valor do referido integral indicando um majorante para o erro
cometido.
132
Exerccio 6.42 Uma partcula de massa m movendo-se num fludo est sujeita a uma resistncia de viscosidade R, que funo da velocidade v. A relao entre a resistncia R, a
velocidade v e o tempo t dada pela equao
t=
v(t)
v(t0 )
m
du.
R(u)
n2 2
sin k,
k
onde
nd sin
106
I() d.
106
Captulo 7
7.1
O problema de Cauchy
Consideremos uma equao diferencial ordinria de primeira ordem, isto , uma equao
da forma
y (t) = f (t, y(t)),
t [t0 , T ],
(7.1)
em que f : [t0 , T ] R R. O estudo que iremos efectuar para este tipo de equaes
pode ser facilmente generalizado a sistemas de equaes diferencias ordinrias de primeira
ordem, isto , para o caso em que f : [t0 , T ]RN RN . Por uma questo de simplificao
de exposio optmos por apresentar o estudo para o caso escalar (N = 1).
Antes de se pensar em resolver uma determinada equao diferencial h que garantir
que essa equao tem soluo e que nica. Note-se que a soluo equao (7.1), se existir,
no nica pois, ao integrarmos, introduzimos sempre uma constante de integrao.
Uma das condies para obter a unicidade da soluo consiste em especificar y(t) num
ponto qualquer do intervalo [t0 , T ], usualmente o ponto inicial t0 . Ficamos assim com o
133
134
t ]t0 , T ]
(7.2)
y(t) = y0 +
f (, y( ))d.
(7.3)
O que se prova na demonstrao do Teorema de Picard que a sucesso de funes {uj (t)},
definida recursivamente por
u0 (t)
= y0 ,
Rt
uj+1 (t) = y0 + a f (, uj ( ))d. j = 0, 1, . . . ,
135
Corolrio 7.2 Suponhamos que f (t, y) est definida num conjunto convexo D R2 , isto
, num conjunto D R2 tal que, para qualquer (t1 , y1 ), (t2 , y2 ) D, se verifica
((1 )t1 + t2 , (1 )y1 + y2 ) D,
Se existir uma constante L > 0 tal que
f
(t, y) L,
y
[0, 1].
(t, y) D,
1
y (t) =
,
t ]a, b]
1 + y2
y(a) = 0
1
.
1 + y2
yR+
0
Consideremos
g(y) =
Como
2y
.
(1 + y 2 )2
2y
.
(1 + y 2 )2
3
g (y) = 0 y =
3
temos que
(
L = max g(0), g
!
3
,
3
lim g(y)
y+
136
7.2
(7.4)
(7.5)
A funo que define os mtodos (7.4) e (7.5) chamada funo de iterao ou funo
incremento do mtodo numrico.
137
7.2.1
Consideremos o PCI (7.2) com f uma funo suficientemente diferencivel nas variveis t
e y. Ento, fazendo o desenvolvimento em srie de Taylor temos
y(t) = y(t0 ) + (t t0 )y (t0 ) +
(t t0 )2
y (t0 ) + .
2!
df
(t, y) = (ft + fy y )(t, y) = (ft + fy f )(t, y),
dt
y (t) =
d2 f
(t, y) = (ftt + 2fty f + fyy f 2 + ft fy + fy2 f )(t, y),
dt2
..
.
onde
ft (t, y) =
f
(t, y),
t
fy (t, y) =
f
(t, y),
y
....
Por razes prticas temos que limitar o nmero de termos na expanso em srie de y(t) a
um nmero razovel, o que nos conduz a restries nos valores de t para os quais a expanso
nos d uma boa aproximao.
Se tomarmos a srie de Taylor truncada temos, para t = t1 ,
y(t1 ) u1 = u0 + hf (t0 , u0 ) +
hk
h2
f (t0 , u0 ) + + f (k1) (t0 , u0 ),
2
k!
onde
dj f
(t0 , u0 ).
dtj
Podemos definir assim, para cada k = 1, 2 . . ., um mtodo de passo nico explcito que
permite obter solues aproximadas ui y(ti ) da forma (7.4) em que
f (j) (t0 , u0 ) =
(t, u; h) = f (t, u) +
hk
h
f (t, u) + + f (k1) (t, u).
2
k!
(7.6)
i = 0, . . . , n,
u0 = y 0 ,
(7.7)
138
T t0
n
t := t0
u := y0
Para i de 1 at n fazer
:= 0
Para j de 1 at k fazer
:= + f (j) (t, u)hj /j!
u := u + h
t := t + h
Resultado: y(T ) u
Exerccio 7.3 Considere o problema de condio inicial
y (t) = 2y
.
y(0) =
1
Determine, usando o mtodo de Euler progressivo, o valor aproximado de y(1), fazendo h = 1,
h = 0.5 e h = 0.25. Compare os resultados obtidos sabendo que y(t) = e2t .
Resoluo: A soluo exacta deste problema y(1) = 0,135335283. Consideremos agora as
solues numricas para os trs casos propostos. Seja f (y) = 2y.
h=1
y(0) = u0 = y0 = 1
y(1) u1 = u0 + hf (u0 ) = 1 + 1 (2) = 1.
h = 0.5
y(0) = u0 = y0 = 1
y(0,5) u1 = u0 + hf (u0 ) = 1 + 0,5 (2) = 0
y(1) u2 = u1 + hf (u1 ) = 0 + 0,5 0 = 0.
h = 0,25
y(0) = u0
y(0,25) u1
y(0,5) u2
y(0,75) u3
y(1) u4
=
=
=
=
=
y0 = 1
u0 + hf (u0 ) = 1 + 0,25 (2) = 0,5
u1 + hf (u1 ) = 0,5 + 0,25 (1) = 0,25
u2 + hf (u2 ) = 0,25 + 0,25 (0,5) = 0,125
u3 + hf (u3 ) = 0,125 + 0,25 (0,25) = 0,0625.
139
1
y (t) =
1 + y2 .
y(0) =
1
Use o mtodo de Taylor, com k = 2, para determinar o valor aproximado de y(1), fazendo
h = 0,5.
Resoluo: Seja f (y) = (1 + y 2 )1 . Temos que o mtodo de Taylor com k = 2 dado por
ui+1 = ui + hf (ui ) +
1
ui
h2 df
(ui ) = ui + h
.
h2
2
2 dt
1 + ui
(1 + u2i )3
1
1
0,25 = 1,21875
2
8
7.2.2
1
1,21875
0,25
= 1,4.
2,485351563
15,35194798
Os mtodos de passo nico implcitos da forma (7.5) tambm tm muita relevncia prtica.
No havendo possibilidade de explicitar o valor de ui+1 temos necessidade de o calcular
resolvendo a equao (geralmente no linear)
ui+1 ui h(ti , ti+1 , ui , ui+1 ; h) = 0.
Usualmente considera-se um mtodo numrico na resoluo desta equao.
Se considerarmos o mtodo de Newton, a primeira questo a resolver a da determi(0)
nao de uma aproximao inicial ui+1 . Normalmente toma-se para aproximao inicial o
valor de ui ; outra hiptese ser a de considerar a aproximao inicial obtida pela aplicao
(0)
de um mtodo explcito. Deteminado o valor de ui+1 temos que
(k)
(k+1)
ui+1
(k)
ui+1
g(ui+1 )
(k)
g (ui+1 )
k = 0, 1, . . . ,
sendo
g(u) = u ui h(ti , ti+1 , ui , u; h).
Os mtodos implcitos so usados visto que, em geral, so mais precisos e menos sensveis a erros que os mtodos explcitos. Por outro lado, o esforo computacional exigido no
clculo de ui+1 , para os mtodos implcitos, muito maior. Assim, estes mtodos s devem
ser usados quando h necessidade de uma preciso muito elevada em problemas sensveis
a erros.
Exemplos comuns de mtodos implcitos so o chamado mtodo de Euler regressivo (ou
implcito), dado pela expresso
ui+1 = ui + hf (ti+1 , ui+1 ),
i = 0, . . . , n 1,
u0 = y 0 ,
140
e o mtodo dos trapzios ou mtodo de Crank-Nicolson, em homenagem a John Crank (19162006) e Phyllis Nicolson (1917-1968), dado por
ui+1 = ui +
h
(f (ti , ui ) + f (ti+1 , ui+1 )),
2
i = 0, . . . , n 1,
u0 = y 0 .
7.3
Estudo do erro
Quando se determinam valores numricos para aproximar quantidades desconhecidas, temos necessidade de conhecer estimativas para o erro que se comete nessas aproximaes.
No caso dos mtodos numricos para a resoluo de equaes diferenciais vamos considerar
dois tipos de erros: o erro de truncatura local e o erro global (ou da aproximao).
Comecemos por considerar mtodos numricos de passo nico explcitos da forma
ui+1 = ui + h(ti , ui ; h),
i = 0, . . . , n 1,
u0 = y 0 .
(7.8)
141
o mtodo diz-se convergente. O mtodo diz-se de ordem (de convergncia) p > 0 se existir
um C > 0 tal que
|e(ti )| Chp ,
i = 1, . . . , n
i = 1, . . . , n,
u0 = y 0 ,
(7.9)
isto , a soluo numrica calculada no nvel temporal ti , supondo uj = y(tj ), j = 0, ..., i1.
Definio 7.3 (Erro de truncatura e consistncia) Considere-se o PCI (7.2), verificando as condies do Teorema de Picard, e um mtodo numrico de passo nico (7.8) que
determine aproximaes ui para a soluo exacta y(ti ), i = 0, 1, . . . , n. O erro de truncatura
local do mtodo no ponto ti definido por
Ti (h) =
y(ti ) ui
.
h
Se
lim max |Ti (h)| = 0,
h0 1in
o mtodo diz-se consistente com o PCI (7.2). O mtodo diz-se de ordem (de consistncia)
p > 0 se existir um C > 0 tal que
|Ti (h)| Chp ,
i = 1, . . . , n
i = 1, . . . , n.
Assim, o erro local pode ser determinado atravs dos seguintes passos: (i) substituir na
expresso que define o mtodo numrico a soluo aproximada no ponto ti , ui , pela soluo
exacta y(ti ); (ii) considerar a hiptese ui1 = y(ti1 ); (iii) efectuar o desenvolvimento em
srie de Taylor de y(ti ) em torno de ti1 .
142
hk
y (k+1) (),
(k + 1)!
]ti1 , ti [,
i
C p h L(ti t0 )
1 ,
h e
L
sendo L a constante de Lipschitz de .
|e(ti )|
i = 1, . . . , n.
i = 1, . . . , n.
|e(ti )| Ch
i1
X
j=0
(1 + hL)j = Chp+1
i
1 (1 + hL)i
C h
hp eihL 1 .
1 (1 + hL)
L
143
Corolrio 7.4 Suponhamos que o PCI (7.2) aproximado pelo mtodo (7.8). Se existir
h0 > 0 tal que (t, y; h) contnua, nas variveis t e y, e lipschitziana, na varivel y, no
conjunto
D = {(t, y; h) : t0 t T, y R, 0 h h0 },
ento o mtodo (7.8): (i) estvel; (ii) convergente se e s se consistente.
Apesar do estudo da consistncia e convergncia de um mtodo iterativo ter sido efectuado apenas para mtodos explcitos, estes conceitos ainda so vlidos para mtodos
implcitos. Para o mtodo implcito (7.5) o erro de truncatura local definido por
hTi (h) = y(ti ) ui = y(ti ) y(ti1 ) h(ti1 , ti , y(ti1 ), y(ti ); h),
i = 1, . . . , n.
h3
h2
y (ti1 ) + y (ti1 ) +
2
6
e
ui
h
= y(ti1 ) +
2
h2
y (ti1 ) + y (ti1 ) + hy (ti1 ) + y (ti1 ) + .
2
h3
y (ti1 ) + .
12
h2
y (),
]ti1 , ti [.
12
Como Ti (h) = O(h2 ) temos que o mtodo dos trapzios tem ordem 2.
Ti (h) =
y(0) = u0 = y0 = 2
y(0,5) u1 = u0 + h2 (f (t0 , u0 ) + f (t1 , u1 )) = 2 0,125u21 .
Vamos agora resolver a equao 0,125u21 + u1 2 = 0. Esta equao resolve-se
sem dificuldade pois
0,125u21 + u1 2 = 0 u1 = 9,6598 ou u1 = 1,6568.
144
h
(f (t1 , u1 ) + f (t2 , u2 )) = 1,3137 0,25u22 .
2
7.4
Estabilidade absoluta
A convergncia dos mtodos numricos verificada quando h puder ser escolhido arbitrariamente pequeno. No entanto, quando consideramos a aplicao de um mtodo numrico
consideramo-la com um h fixo. Este facto pode levar a que, especialmente se os intervalos de integrao forem muito grandes, o mtodo numrico d uma soluo que em nada
corresponda soluo exacta do problema.
Por exemplo, em fenmenos dissipativos, isto , onde as solues do problema tendam
para zero quando a varivel independente tende para infinito, muito frequente verificar
que certos mtodos numricos produzem solues oscilatrias, oscilaes essas que no
esto presentes na soluo exacta.
Considere-se, por exemplo, a aplicao do mtodo de Euler progressivo ao problema
teste
y
= y,
t ]0, +[
,
(7.10)
y(0) = 1
com um nmero real negativo. A soluo exacta deste problema y(t) = et . Como
< 0, tem-se que y(t) tende para zero quando t tende para infinito.
Consideremos agora a soluo numrica dada pelo mtodo de Euler explcito. Temos,
sucessivamente, u0 = 1,
ui+1 = ui + hui = (1 + h)ui = (1 + h)i+1 u0 = (1 + h)i+1 .
Assim sendo, a soluo numrica tende para zero com o nmero de iteraes, isto ,
(7.11)
lim ui = 0,
i+
se e s se
|R(h)| < 1,
com R(h) = 1 + h. Temos ento que
2
.
|R(h)| < 1 1 < 1 + h < 1 h 0,
||
145
com z = h.
7.5
A teoria apresentada nas seces precedentes pode ser facilmente generalizada para sistemas de equaes diferenciais ordinrias de primeira ordem. Todos os mtodos numricos
apresentados podem ser adaptados ao clculo da soluo aproximada do PCI
Y (t) = F (t, Y ),
t ]t0 , T ]
,
(7.12)
(0)
Y (t0 ) = Y
onde
Y (t) =
Y1 (t)
Y2 (t)
..
.
YN (t)
F (t, Y ) =
F1 (t, Y )
F2 (t, Y )
..
.
FN (t, Y )
Os mtodos numricos iro, neste caso, determinar aproximaes U (i) para Y (ti ). O
mtodo de Euler progressivo, por exemplo, dado por
U (i+1) = U (i) + hF (ti , U (i) ),
com h =
T t0
n
i = 0, . . . , n,
U (0) = Y (0) ,
a medida do passo.
146
y
(t)
=
z
(t) =
3z 2y
z
z (t) = 3z 2y
.
y(0) = 1
y
1
z(0) = 1
(0) =
z
1
Exerccio 7.8 Converta num sistema de equaes diferenciais de primeira ordem o problema
y 0,1(1 y 2 )y + y = 0,
z (t) = w
w (t) = 0,1(1 y 2 )z y
.
y(0) = 1
z(0) = 0
w(0) = 0
Exerccio 7.9 Considere a equao diferencial y + 4ty + 2y 2 = 0 com condies iniciais
y(0) = 1 e y (0) = 0. Com h = 0,1, utilize o mtodo de Euler progressivo para obter
aproximaes para y(0,2) e y (0,2).
Resoluo: Seja z = y . Assim o nosso problema equivalente a
z
y
y (t) = z
z (t) =
4tz 2y 2
z (t) = 4tz 2y 2
.
y(0) = 1
y
1
z(0) = 0
(0) =
z
0
Seja
z
y
F (t, Y ) =
,
com Y =
4tz 2y 2
z
1
y
(0)
.
(0) =
Y
=
0
z
y
z
y
z
(0,1)
U (1)
U (0)
+ hF t0
, U (0)
(0,2) U (2) = U (1) + hF t1 , U (1) =
1
0,2
0,98
0,392
147
7.6
Mtodos de Runge-Kutta
O mtodo mais simples para aproximar a soluo do PCI (7.2) o mtodo (7.7), descrito
por Euler, em 1768, na sua obra Institutiones Calculi Integralis. um mtodo muito
simples de entender e de programar mas, como se ir ver na prxima seco, pouco preciso.
Por exemplo, se pretendermos uma preciso de, digamos, 6 casas decimais, o mtodo de
Euler necessita de aproximadamente um milho de passos.
Se usarmos outros mtodos de Taylor, a preciso pode ser aumentada. A grande desvantagem destes mtodos reside no facto de termos necessidade de calcular muitas derivadas
da funo f para obter mtodos precisos. Esse clculo, alm de muito fastidioso, torna
impraticvel a aplicao de tais mtodos na resoluo de (7.2) quando a funo f tem uma
expresso analtica complicada.
Uma alternativa a esses mtodos foi dada por Carl David Tolm Runge (1856-1927), em
1875, e que consistia em, partindo do conhecimento de y(t0 ), considerar
h
h
;
y(t0 + h) y0 + hf t0 + , y t0 +
2
2
mas, que valor atribuir a y t0 + h2 ? A sugesto de Runge foi a de considerar o mtodo
de Euler com passo h2 . A aplicao sucessiva deste processo permitiu a Runge definir o
seguinte mtodo iterativo:
k1 = f (ti , ui ),
k2 = f ti + h2 , ui + h2 k1 ,
ui+1 = ui + hk2 ,
(7.13)
com ui y(ti ). Como veremos este mtodo, apesar de recorrer ao mtodo de Euler,
vai ser mais preciso e no necessita de calcular derivadas de f . A generalizao desta
ideia deu origem seguinte definio, cuja autoria partilhada com Martin Wilhelm Kutta
(1867-1944).
Definio 7.4 (Mtodos de Runge-Kutta) Seja s um nmero inteiro e a21 , a31 , a32 , . . .,
as1 , . . . , as,s1 , c2 , c3 , . . . , cs , b1 , b2 , . . . , bs , coeficientes reais. O mtodo
k1 = f (ti , ui ),
k2 = f (ti + c2 h, ui + a21 hk1 ),
k3 = f (ti + c3 h, ui + a31 hk1 + a32 hk2 ),
..
.
ks = f (ti + cs h, ui + as1 hk1 + as2 hk2 + + as,s1 hks1 ),
ui+1 = ui + h(b1 k1 + b2 k2 + + bs ks ),
chamado mtodo de Runge-Kutta explcito de s etapas para o PCI (7.2).
Usualmente considera-se
ci =
i1
X
aij ,
i = 2, 3, . . . , s.
(7.14)
j=1
Uma notao muito usada na prtica para os mtodos de Runge-Kutta foi apresentada
por John Charles Butcher (1933-), em 1964, e dada pelo seguinte quadro, designado por
quadro de Butcher:
148
0
c2
c3
..
.
cs
a21
a31
..
.
a32
..
.
as1
b1
as2
b2
..
as,s1
bs1
bs
Antes de continuarmos, notemos que os mtodos de Runge-Kutta constituem uma excelente ideia. A nica soluo do PCI bem posto (7.2) uma curva integral em R2 . No
entanto, devido aos erros cometidos, a soluo numrica vai ser afectada pelo comportamento das curvas integrais vizinhas. assim importante conhecer o comportamento de
toda a famlia de curvas integrais e no apenas o de uma nica curva.
Os mtodo de Runge-Kutta usam, deliberadamente, informao de vrias curvas integrais em simultneo. A ttulo de exemplo considere-se o mtodo de trs etapas
k1 = f (ti , ui ),
k2 = f (ti + c2 h, ui + c2 hk1 ),
k3 = f (ti + c3 h, ui + (c3 a32 )hk1 + a32 hk2 ),
ui+1 = ui + h(b1 k1 + b2 k2 + b3 k3 ).
Para determinar a soluo numrica do PCI (7.2) por este mtodo, comea-se pelo ponto
(ti , ui ) e aplica-se um passo do mtodo de Euler com passo c2 h. Seguidamente, calcula-se o
valor de k2 como sendo o vector derivada no ponto obtido. Temos assim dois valores para
a derivada: k1 e k2 ; iremos usar uma mdia pesada entre estes dois valores,
(c3 a3,2 )hk1 + a3,2 hk2 ,
numa nova aplicao do mtodo de Euler, a partir do ponto (ti , ui ), com passo c3 h. Calculando a derivada novamente obtm-se o valor de k3 . O ltimo passo do algoritmo mais
uma aplicao do mtodo de Euler, a partir do ponto (ti , ui ), com passo h.
Exerccio 7.11 Considere o problema de condio inicial
y (t) = ty 2
.
y(1) = 2
Determine um valor aproximado para y(1,1), usando o mtodo de Heun, devido a Karl Heun
(1859-1929), dado por
k1 = f (ti , ui ),
k2 = f (ti + h, ui + hk1 ) ,
(7.15)
ui+1 = ui + h2 (k1 + k2 ),
com h = 0,05.
Resoluo: Seja f (t, y) = ty 2 . Temos que
y(1) = u0 = y0 = 2
y(1,05) u1 = u0 + h2 (k1 + k2 ) = 2 + 0,025(k1 + k2 ).
Por outro lado
k1 = f (t0 , u0 ) = f (1, 2) = 4
k2 = f (t0 + h, u0 + hk1 ) = f (1,05, 2,2) = 5,082.
149
h
(k1 + k2 ) = 2,22705 + 0,025(k1 + k2 ).
2
k2 = f (ti +
h
h
, ui + k1 ),
2
2
h
h
, ui + k2 ),
k4 = f (ti + h, ui + hk3 ),
2
2
h
ui+1 = ui + (k1 + 2k2 + 2k3 + k4 ).
6
O seguinte algoritmo permite determinar a soluo do PCI (7.2) em t = T , usando este
mtodo de Runge-Kutta.
k3 = f (ti +
T t0
n
t := t0
u := y0
Para i de 1 at n fazer
k1 := f (t, u)
k2 := f (t + 0,5h, u + 0,5hk1 )
k3 := f (t + 0,5h, u + 0,5hk2 )
k4 := f (t + h, u + hk3 )
u := u + h(k1 + 2k2 + 2k3 + k4 )/6
t := t + h
Resultado: y(T ) u
Exerccio 7.12 Construa um algoritmo que permita determinar a soluo do PCI (7.2) em
t = T , usando um mtodo de Runge-Kutta explcito de s etapas qualquer.
O mtodo de Heun dado por (7.15). Vamos determinar qual o seu erro local e,
consequentemente, qual a sua ordem. Atendendo definio de erro local temos que
hTi = y(ti ) ui , com ui a soluo numrica obtida pelo mtodo supondo ui1 = y(ti1 ).
Desenvolvendo y(ti ) em srie de Taylor em torno do ponto ti1 temos,
y(ti ) = y(ti1 ) + hf (ti1 , y(ti1 )) +
h3 d2 f
h2 df
(ti1 , y(ti1 )) +
(ti1 , y(ti1 )) + .
2 dt
6 dt2
150
hTi =
h3
(ftt + 2f fty + f 2 fyy 2ft fy 2f fy2 )(ti1 , y(ti1 )) + .
12
Exerccio 7.13 Mostre que o mtodo de Heun (7.15), aplicado resoluo do PCI (7.2),
convergente.
Resoluo: Atendendo definio do mtodo de Heun temos que este pode ser dado pela
expresso ui+1 = yi + h(ti , ui ; h), com
1
(t, y; h) = (f (t, y) + f (t + h, y + hf (t, y))).
2
Para provar que o mtodo convergente vamos provar que consistente e estvel.
1. Consistncia. Provmos que o mtodo de Heun tem ordem dois e, assim sendo,
consistente. Poderiamos ainda provar a consistncia provando que (t, y; 0) =
f (t, y). De facto,
1
(f (t, y) + f (t, y)) = f (t, y).
2
2. Estabilidade. Para provar que o mtodo estvel vamos provar que (t, y; h)
lipschitziana, na varivel y, em D = {(t, y; h) : a t b, y R, 0 h h0 }.
Seja L a constante de Lipschitz de f (t, y) na varivel y. Ento
1
|(t, y1 ; h) (t, y2 ; h)| = (f (t, y1 ) + f (t + h, y1 + hf (t, y1 )))
2
(t, y; 0) =
1
(f (t, y2 ) + f (t + h, y2 + hf (t, y2 )))
2
1
(L|y1 y2 | + L|y1 + hf (t, y1 ) y2 hf (t, y2 )|)
2
1
L|y1 y2 | + hL2 |y1 y2 |
2
1
L + hL2 |y1 y2 |.
2
151
y (t) = z
(t) =
4tz 2y 2
z
2
z (t) = 4tz 2y
.
y(0) = 1
y
1
z(0) = 0
(0) =
z
0
Seja
F (t, Y ) =
z
4tz 2y 2
com Y =
y
z
e Y
(0)
y
z
, U (0)
K2 = F t0 +
Logo
y
z
h, U (0)
(0,1) U
0
2
+ hK1 =
(1)
0,99
0,196
0,2
1,92
K2
Logo
0,196
,
1,8818
0,38418
(1)
= F t1 + h, U + hK1 =
.
1,6335
K1 = F t1 , U (1) =
y
z
(0,2) U
(2)
0,988059
0,371765
(0) =
1
0
152
7.7
qx
S
w+
(x L),
EI
2EI
1 y(a) + 1 y (a) = 1
,
2 y(b) + 2 y (b) = 2
(7.17)
x ]a, b[,
(7.18)
153
curso e como tal no ir ser apresentado. No entanto, para problemas com condio de
fronteira lineares a teoria mais simples e, a ttulo ilustrativo, iremos considerar apenas o
seguinte teorema, que apresentamos sem demonstrao.
Teorema 7.5 Sejam q, r C([a, b]) e q 0. Ento o PCF linear
y + q(x)y = r(x), x ]a, b[
y(a) = y(b) = 0
(7.19)
7.8
7.8.1
Caso linear
Vamos considerar o PCF linear (7.18) com condies de fronteira (7.17) de Dirichlet (1 =
2 = 1, 1 = 2 = 0). Este problema pode ser escrito, para cada ponto da partio (7.20),
na forma
y (xi ) = p(xi )y (xi ) + q(xi )y(xi ) + r(xi ), i = 1, . . . , n 1
,
y(x0 ) = 1 , y(xn ) = 2
com xi = ih, i = 0, . . . , n. Substituindo as derivadas pelas frmulas de diferenas centradas
de segunda ordem
y (xi ) =
e
y (xi ) =
y(xi+1 ) y(xi1 ) h2
y (i ),
2h
6
obtemos
h2
y(x0 ) = 1 ,
i ]xi1 , xi+1 [,
y(xn ) = 2
= p(xi )
i ]xi1 , xi+1 [,
y(xi+1 ) y(xi1 )
+ q(xi )y(xi ) + r(xi )
2h
i
h2 h
2p(xi )y (i ) y (4) (i ) ,
12
i = 1, . . . , n 1
154
p(xi )
q(xi )ui = r(xi ), i = 1, . . . , n 1
2
h
2h
,
u0 = 1 , un = 2
ou, de forma equivalente,
h
h
2
2
i = 1, . . . , n 1 .
u0 = 1 , un = 2
(7.21)
Au = b,
em que u = [u1 , u2 , . . . , un2 , un1 ]T ,
2 h2 q(x1 ) 1 h2 p(x1 )
1 + h p(x2 ) 2 h2 q(x2 ) 1 h p(x2 )
2
2
..
..
..
A=
.
.
.
b=
h2 r(x1 ) 1 + h2 p(x1 ) 1
h2 r(x2 )
..
.
h2 r(xn2 )
h2 r(xn1 ) 1 h2 p(xn1 ) 2
e
|aii | |ai,i1 | + |ai,i+1 |,
i = 2, . . . , n 1,
ento A no singular.
O resultado estabelecido neste exerccio permite concluir, de forma imediata, o seguinte
teorema.
155
Teorema 7.6 Considere-se o PCF linear (7.18) com condies de fronteira (7.17) de Dirichlet (1 = 2 = 1, 1 = 2 = 0) e com p, q, r funes contnuas em [a, b]. Se q(x) 0,
para todo o x [a, b], ento o sistema tridiagonal (7.21) tem soluo nica desde que
h < 2/L, onde
L = max |p(x)|.
x[a,b]
1
n.
Resoluo: O PCF dado pode ser escrito, para cada ponto da partio (7.20) na forma
y (xi ) + y(xi ) = xi , i = 1, . . . , n 1
,
y(x0 ) = y(xn ) = 0
com xi = ih, i = 0, . . . , n. Se aproximarmos y pela frmula de diferenas centradas de
segunda ordem (trs pontos) temos
y (xi )
1
(ui1 2ui + ui+1 ),
h2
2
h + 2, i = j
aij =
1,
j = i 1, j = i + 1 .
0,
|j i| > 1
2,03125
1
0
u1
1/128
0,03484
1
2,03125
1 u2 = 1/64 0,05633 .
0
1
2,03125
u3
3/128
0,05004
Pode dar-se o caso (muito frequente) das condies de fronteira no serem de Dirichlet
mas de Neumann ou mistas. Suponhamos que temos o PCF
y = p(x)y + q(x)y + r(x), x ]a, b[
.
(7.22)
y (a) = 1 , y (b) = 2
156
Considerando, tal como para o caso anterior, a substituio das derivadas que aparecem
na equo diferencial pelas frmulas de diferenas centradas de segunda ordem obtemos
h
h
2
1 + p(xi ) ui1 + 2 + h q(xi ) ui 1 p(xi ) ui+1 = h2 r(xi ), i = 1, . . . , n 1,
2
2
7.8.2
h
h
2
1 + p(xn1 ) un2 + 1 p(xn1 ) h q(xn1 ) un1
2
2
h
2
= h r(xn1 ) h 1 p(xn1 )
2 .
2
Caso no linear
Finalmente, faamos uma pequena abordagem ao caso no linear. Consideremos o problema no linear geral (7.16) com condies de fronteira (7.17) de Dirichlet (1 = 2 = 1,
1 = 2 = 0). Tal como no caso linear, vamos substituir as derivadas que aparecem na
equo diferencial pelas frmulas de diferenas centradas de segunda ordem. Obtemos
assim
y(xi+1 ) y(xi1 ) h2
y(xi+1 ) 2y(xi ) + y(xi1 )
y (i )
= f xi , y(xi ),
h
2h
6
,
h2 (4)
+
y
(
),
i
=
1,
.
.
.
,
n
1
i
12
y(x0 ) = 1 , y(xn ) = 2
com i , i ]xi1 , xi+1 [. O mtodo de diferenas finitas que resulta quando se desprezam
os termos O(h2 ) das frmulas de diferenas centradas e se usam as condies de fronteira
2y
+
u
u
u
i+1
i
i1
i+1
i1
= f xi , ui ,
, i = 1, . . . , n 1
h2
2h
,
u0 = 1 , un = 2
157
u2 1
f
(x,
u)
=
2u
+
u
h
f
x
,
u
,
+ 1
1
1
2
1 1
2h
ui+1 ui1
fi (x, u)
= ui1 2ui + ui+1 h2 f xi , ui ,
, i = 2, . . . , n 2
.
2h
2
n2
2
2h
Prova-se que este sistema no linear tem soluo nica se h < 2L onde
L = max |fy (x, y, y )|.
x[a,b]
A sua soluo pode ser obtida, de forma aproximada, pelo mtodo de Newton.
7.9
7.9.1
Problemas
Exerccios para resolver nas aulas
y = y
. Determine,
y(0) = 1
usando o mtodo de Euler progressivo, o valor aproximado de y(1), fazendo h = 1, h = 0,5 e
h = 0,25. Compare os resultados obtidos sabendo que a soluo exacta y(t) = et .
E E
+ .
R
L
Suponha que C = 0,3 f arad, R = 1,4 ohm, L = 1,7 henry e a voltagem dada pela equao
E(t) = e0,06t sin (2t ). Se I(0) = 0, determine o valor da corrente I para t = 0,2j, para
j = 1, . . . , 5, usando o mtodo de Euler progressivo.
y
= 50y
e os mtodos
Exerccio 7.20 Considere o problema de condio inicial
y(0) =
1
de Euler progressivo e Euler regressivo. Usando cada um dos mtodos determine a soluo do
problema em t = 1 com h < 1, comparando os resultados obtidos.
Exerccio 7.21 Prove que os mtodos de Euler progressivo e regressivo so consistentes e
determine a sua ordem e erro de truncatura local.
Exerccio 7.22 Determine os intervalos de estabilidade absoluta para os mtodos de Euler
(explcito e implcito) e para o mtodo dos trapzios.
158
t ]0, 1],
y(0) = 0.
t ]0, 1],
y(0) = 0.
1. Aplique os mtodos de Euler progressivo e regressivo com h = 1/2, 1/22 , ..., 1/210 .
2. Compare os resultados obtidos na alnea anterior com a soluo exacta
y(t) = ln(1
t2
).
2
0 < t 2,
y(0) = 1,
cuja soluo y(t) = e10t . O que que se passa quando se aplica um mtodo de Euler com
h = 0,1?
Exerccio 7.27 (Matlab) Compare as solues numricas dos seguintes problemas com condio inicial:
1. y = 1 y,
2. y = y,
0 < t 2,
2 < t 4,
y(0) = 0,
y(2) = 0,
e y = 1 y + 0,1,
e y = y + 0,01,
0 < t 2,
2 < t 4,
y(0) = 0,1
y(2) = 0,1.
Exerccio 7.28 (Matlab) Consideremos um corpo pontual de massa m e temperatura interna T inserido num meio ambiente de temperatura constante Ta = 200 K. A transferncia
de calor entre o corpo e o exterior pode ser descrita pela lei de Stefan-Boltzmann
v(t) = S(T 4 (t) Ta4 ),
com t varivel temporal, a constante de Boltzmann (5,6 108 J/m2 K4 s), constante de
emissividade do corpo, S a rea da sua superfcie e v a velocidade de transferncia de calor.
A taxa de variao de energia E(t) = mCT (t) (onde C designa o calor especfico do material
que constitui o corpo) igual, em valor absoluto, velocidade v. Por conseguinte, fazendo
T (0) = T0 , o clculo de T (t) exige a resoluo da equao diferencial ordinria
v(t)
dT
=
.
dt
mC
Suponha que o corpo em questo um cubo de lado 1 m e massa 1 Kg, T0 = 180 K, = 0.5
e C = 100. Recorra a um mtodo de Euler para comparar os resultados obtidos com h = 10 e
h = 20, para t a variar entre 0 e 200 segundos.
159
t > 0,
y(0) = 1,
onde um nmero real negativo. A soluo exacta y(t) = et que tende para zero quando
t tende para infinito. Faa = 1.
1. Represente graficamente, no intervalo [0,30], as solues obtidas para trs valores diferentes de h: h = 30/14, h = 30/16 e h = 1/2, usando os mtodos de Euler implcito e
explcito.
2. Resolva a alnea anterior com o mtodo de Crank-Nicolson, para os valores de h referidos
anteriormente.
y
= ty 2 + y
Exerccio 7.30 Considere o problema de condio inicial
. Determine
y(1) =
2
um valor aproximado para y(1,1), usando o mtodo de Heun.
Exerccio 7.31 Considere o problema de condio inicial
y = y 2t
y .
y(0) =
1
Determinar a condio sobre h para que este mtodo seja absolutamente estvel.
Exerccio 7.36 A taxa de arrefecimento de um corpo pode ser expressa por dT
dt = k(T Ta ),
onde T e Ta so as temperaturas do corpo e do meio circundante, respectivamente, (em graus
Celsius), e k uma constante de proporcionalidade (por minuto). Considerando que uma
esfera de metal aquecida a 90o C mergulhada em gua mantida temperatura constante de
Ta = 20o C, use um mtodo numrico para calcular quanto tempo leva a esfera a arrefecer at
aos 30o C se k = 0,1 min1 .
160
t > 0,
y(0) = 1
usando o mtodo:
1. de Euler progressivo, com h = 2/3 e h = 2/3 + 0,1;
2. de Euler regressivo, para os valores do passo de discretizao dados na alnea anterior;
3. de Crank-Nicolson;
4. ode23;
5. ode45.
Comente os resultados obtidos.
Exerccio 7.38 (Matlab) A funo y(t) indica a quantidade vendida de um determinado
produto ao fim de t meses aps ter sido introduzido no mercado. Suponha que y(t) satisfaz a
equao diferencial
2y
dy
=
.
dt
t(t + 1)
Ao fim do primeiro ms foram vendidas 1000 unidades daquele produto. A soluo do problema
y(t) = 4000t2 /(1 + t)2 .
1. Aproxime a soluo do problema durante o primeiro ano, usando diferentes mtodos
numricos.
2. Tendo em conta a evoluo da venda do produto mensalmente durante o primeiro ano,
aproxime o valor das vendas aps 8 meses.
Exerccio 7.39 Determine a soluo do sistema de equaes diferenciais Y = AY no instante
t = 1, com
1 2
A=
,
1 4
usando o mtodo de Euler progressivo com h < 1, a partir da condio inicial Y (0) = (1, 0).
Exerccio 7.40 (Matlab) A equao de Van der Pol
y y 2 1 y + y = 0,
com > 0, um modelo para o fluxo de corrente num tubo de vcuo com trs elementos
internos. Seja = 0,5 e y (0) = 0, y (0) = 1. Aproxime y e y no intervalo temporal [0, 30]
usando os mtodos ode45 e ode23s. Repita o exerccio considerando = 1000 e y (0) = 2,
y (0) = 0 e o intervalo temporal [0, 3000].
Exerccio 7.41 Determine a soluo aproximada do problema
y 3xy = x, x ]0, 1[
y(0) = y(1) = 0
usando o mtodo das diferenas finitas numa malha uniforme de espaamento h = 41 .
161
Exerccio 7.42 Usar o mtodo das diferenas finitas para aproximar o problema de valores
na fronteira
(
T y (x) + ky(x) = w(x), x ]0, 1[
,
y(0) = y(1) = 0
onde y representa o deslocamento vertical de uma corda de comprimento 1, submetida a
uma carga transversal de intensidade w por unidade de comprimento, T a tenso e k um
coeficiente associado elasticidade da corda. No caso em que w(x) = 1 + sin(4x), T = 1
e k = 0,1, calcular a soluo correspondente a h = 41 .
7.9.2
Exerccio 7.43 Um projctil lanado da superfcie terreste com uma velocidade V . Supondo
que no h arrasto a equao do movimento
d
R2
= g 2 ,
dr
r
onde a velocidade distncia r do centro da Terra que tem raio R. Considerando g = 9,81
m/seg2 , R = 6,37 106 m e V = 15000 m/seg, calcule a velocidade quando r = 2R.
Exerccio 7.44 Uma soluo lquida flui de forma constante ao longo de um tubo na direco
x. Alguns dos solutos contidos na soluo difundem-se atravs da parede do tubo reduzindo a
concentrao z no tubo. A concentrao z dada por
dz
= z(0,2 + z)e0,03x .
dx
Se tomarmos z = 1,5 em x = 2 determine o valor de z em x = 2,4.
Exerccio 7.45 Uma quantidade de 10 quilogramas de material despejada num reservatrio
contendo 60 quilogramas de gua. A concentrao da soluo, c (em percentagem), vem dada
em funo do tempo, t (em segundos), por
(60 1,2112c)c =
k
(200 14c)(100 4c),
3
n2
n3
,
x = k n1
2
2
4
162
Exerccio 7.47 Na teoria da proliferao de uma doena contagiosa, podem ser usadas equaes diferenciais relativamente elementares para prever o nmero de indivduos infectados na
populao em cada instante, desde que sejam efectuadas simplificaes apropriadas. Esta
teoria foi estudada por N.T.J. Bayley em 1957 e 1967 em dois livros, um sobre matemtica
aplicada medecina (The Mathematical Approach to Biology and Medicine, John Wiley &
Sons, NY, 1967) e outro sobre a teoria matemtica das epidemias (The Mathematical Theory
of Epidemics, Hafner, NY, 1957).
Em particular, consideremos que todos os indivduos numa populao fixa tm uma probabilidade igual de ser infectados e que uma vez portadores da doena permanecero sempre
nessa condio. Se x(t) denotar o nmero de indivduos susceptveis de contrair a doena no
instante t e y(t) o nmero de indivduos infectados, razovel assumir que a razo qual
o nmero de infectados varia proporcional ao produto de x(t) por y(t) visto que a razo
depende tando do nmero de infectados como do nmero de susceptveis presentes, para cada
t. Se a populao for suficientemente grande para considerarmos que x(t) e y(t) so variveis
contnuas, o problema pode ser expresso na forma
y (t) = kx(t)y(t),
onde k uma constante e x(t)+ y(t) = m a populao total. Esta equao pode ser reescrita
por forma a depender apenas de y(t). Assim
y (t) = ky(t)(m y(t)).
(7.23)
Exerccio 7.48 Consideremos um pndulo simples constitudo por uma bola uniforme de
massa m e uma barra fina de comprimento l e massa negligencivel. Se considerarmos que a
resistncia do ar porpocional ao quadrado da velocidade angular do pndulo, a equao do
movimeto dada por
2
g
+ 2k = sin ,
l
sendo o ngulo agudo que a barra do pndulo faz com a vertical. Considerando que em t = 0
se tem = 3 determine o valor de e de nos instantes (em minutos) ti = ih, com h = 0,05
e i = 0, 1, . . . , 50.
163
Exerccio 7.49 No exerccio anterior, todos os indivduos infectados permanecem na populao ajudando a difundir a doena. Uma situao mais realista consiste em introduzir uma nova
varivel z(t) para representar tanto o nmero de indivduos que so retirados da populao
infectada num determinado instante t, por isolamento, como os que so tratados (e consequentemente tornados imunes) ou os que morrem. O problema posto nestes termos , naturalmente,
mais complicado mas Bayley mostrou que a soluo aproximada do problema pode ser dada na
forma
x(t) = x(0)e(k1 /k2 )z(t)
e
y(t) = m x(t) z(t),
onde k1 e k2 so, respectivamente, as taxas de crescimento de y(t) e de z(t), sendo z(t)
determinada pela equao diferencial
z (t) = k2 m z(t) x(0)e(k1 /k2 ) .
Como no possvel determinar a soluo exacta deste problema, temos que recorrer soluo
numrica. Assim, determine uma aproximao para z(30), y(30) e x(30) assumindo que m =
100000, x(0) = 99000, k1 = 2 106 e k2 = 104 .
Exerccio 7.50 O estudo de modelos matemticos para estimar a evoluo de uma populao
de espcies que competem entre si teve a sua origem no incio do sculo com os trabalhos
de A.J. Lotka e V. Volterra. Consideremos o problema de estimar a populao constituida
por duas espcies, uma das quais predadora, cuja populao no instante t x2 (t), e que
se alimenta comendo a outra espcie, a que chamamos presa e cuja populao x1 (t). Este
problema usualmente designado por predador-presa. Vamos assumir que a presa possui sempre
uma quantidade de comida adequada e que a sua taxa de natalidade em todos os instantes
proporcional ao nmero de presas vivas nesse instante; isto , a taxa de natalidade (presa)
dada por k1 x1 (t). A taxa de mortalidade das presas depende tanto do nmero de presas
como de predadores vivos nesse instante. Por uma questo de simplicidade vamos assumir
que a taxa de mortalidade (presa) k2 x1 (t)x2 (t). A taxa de natalidade dos predadores, por
outro lado, depende da quantidade de comida existente, x1 (t), assim como do nmero de
predadores existentes para fins de reproduo. Por essas razes vamos assumir que a taxa
de natalidade (predador) k3 x1 (t)x2 (t). A taxa de mortalidade dos predadores ser tomada
proporcionalmente ao nmero de predadores vivos nesse instante; isto , a taxa de mortalidade
(predador) dada por k4 x2 (t).
A variao da populao de presas e predadores pode ser dada pelas seguintes equaes
diferenciais
x1 (t) = k1 x1 (t) k2 x1 (t)x2 (t)
.
x2 (t) = k3 x1 (t)x2 (t) k4 x2 (t)
Assumindo que a populao inicial de presas 1000 e a de predadores 200, e que as constantes
k1 = 3, k2 = 0,002, k3 = 0,0006 e k4 = 0,5, trace o grfico das solues deste problema e
descreva o fenmeno fsico representado. Ser que o problema possui alguma soluo estvel?
Se sim, para que valores de x1 e x2 que tal acontece?
164
Exerccio 7.51 Num livro intitulado Looking at History Through Mathematics, MIT Press,
Cambridge MA, 1968, N. Rashevsky considerou um modelo para um problema envolvendo o
evoluo de no conformistas na sociedade. (Conformista a pessoa que adopta ou segue o
conformismo (anglicanismo).) . Suponhamos que uma sociedade tem uma populao de x(t)
indivduos no instante t, em anos, e que todos os no conformistas que acasalam com outros
no conformistas tm uma descendncia que tambm no conformista. Por outro lado, para
todas as outras descendncias, existe uma proporo fixa r que so ainda no conformistas.
Se as taxas de natalidade e mortalidade para todos os indivduos se assumir como sendo as
constantes n e m, respectivamente, e se conformistas e no conformistas acasalarem de forma
aleatria, o problema pode ser expresso pelas equaes diferenciais
x (t) = (n m)x(t)
,
y (t) = (n m)y(t) + rn(x(t) y(t))
onde y(t) denota o nmero de no conformistas na populao no instante t.
1. Se a varivel p(t) = y(t)/x(t) for introduzida para representar a proporo de no conformistas na sociedade no instante t, mostre que o sistema de equaes diferenciais se
reduz a
p (t) = rn(1 p(t)).
2. Assumindo que p(0) = 0,01, n = 0,002, m = 0,015 e r = 0,1, aproxime a soluo p(t)
para os primeiros 50 anos.
3. Resolva a equao diferencial para p(t) de forma exacta, e compare o resultado com a
soluo numrica.
Bibliografia
[1] Richard L. Burden e J. Douglas Faires, Numerical Analysis, Cengage Learning, 2011.
[2] Rainer Kress, Numerical Analysis, Spinger, 1998.
[3] Cleve Moler, Numerical Computing with Matlab, SIAM, 2004.
[4] Heitor Pina, Mtodos Numricos, McGraw Hill, Lisboa, 1995.
[5] Alfio Quarteroni e Fausto Saleri, Clculo Cientfico com o Matlab e o Octave, Spinger,
2007.
165
166
Contedo
1 Aritmtica computacional
1.1 Erros absolutos e relativos . . . . . . .
1.2 Erros de arredondamento e truncatura
1.3 O polinmio de Taylor . . . . . . . . .
1.4 Problemas . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
3
5
9
11
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
13
14
15
17
21
23
26
32
32
40
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
41
42
44
45
49
49
52
4 Equaes no lineares
4.1 Mtodos iterativos . . . . . . . . . . . . . .
4.2 Determinao da aproximao inicial . . . .
4.3 Mtodo da bisseco . . . . . . . . . . . . .
4.4 Mtodo de Newton . . . . . . . . . . . . . .
4.5 Mtodo do ponto fixo . . . . . . . . . . . . .
4.6 Equaes algbricas . . . . . . . . . . . . . .
4.6.1 Algoritmo de Hrner . . . . . . . . .
4.6.2 O mtodo de Newton-Hrner . . . .
4.7 Sistemas de equaes no lineares . . . . . .
4.8 Problemas . . . . . . . . . . . . . . . . . . .
4.8.1 Exerccios para resolver nas aulas . .
4.8.2 Exerccios de aplicao engenharia
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
53
54
55
57
59
63
68
72
73
74
78
78
82
167
168
5 Interpolao
5.1 Interpolao polinomial de Lagrange . . . . . . . . . . . . . . .
5.1.1 Existncia e unicidade. Frmula de Lagrange . . . . . .
5.1.2 Erro de interpolao . . . . . . . . . . . . . . . . . . . .
5.1.3 Frmula de Newton . . . . . . . . . . . . . . . . . . . .
5.2 Interpolao de Chebyshev . . . . . . . . . . . . . . . . . . . . .
5.3 Interpolao trigonomtrica e FFT . . . . . . . . . . . . . . . .
5.4 Interpolao seccionalmente linear . . . . . . . . . . . . . . . .
5.5 Interpolao de Hermite . . . . . . . . . . . . . . . . . . . . . .
5.5.1 Interpolao segmentada de Hermite . . . . . . . . . . .
5.5.2 Polinmio interpolador de Hermite e diferenas divididas
5.6 Aproximao por funes spline cbicas . . . . . . . . . . . . .
5.7 Problemas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.7.1 Exerccios para resolver nas aulas . . . . . . . . . . . . .
5.7.2 Exerccios de aplicao engenharia . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
85
85
86
89
91
96
98
100
101
103
104
105
107
107
111
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
115
115
115
118
119
119
121
123
126
126
130
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
133
133
136
137
139
140
144
145
147
152
153
153
156
157
157
161
.
.
.
.
.
.
.
.
.
.