Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila PDF
Apostila PDF
F ACULDADE DE M ATEMTICA
C LCULO N UMRICO
A GOSTO DE 2003
Sumrio
1 Introduo 1
2 Zeros de Funes 11
3 Sistemas Lineares 27
5 Interpolao Polinomial 61
i
CAPTULO
1
Introduo
O Clculo Numrico tem por objetivo estudar esquemas numricos (algoritmos numri-
cos) para resoluo de problemas que podem ser representados por um modelo matemtico.
Um esquema numrico considerado eficiente quando este apresenta solues dentro de
uma preciso desejada com custo computacional (tempo de execuo + memria) baixo.
Os erros cometidos nesta aproximao so decorrentes de dois fatores: A discretizao
do problema, ou seja passar do modelo matemtico para o esquema numrico; A forma
como as mquinas representam os dados numricos. Como exemplo consideremos que
desejamos calcular uma aproximao para a derivada de uma funo f (x) num ponto x .
O modelo matemtico dado por
f (
x + h) f (
x)
f 0 (
x) = lim .
h0 h
Um esquema numrico para aproximar a derivada dado por tomar h pequeno e cal-
cular
f (
x + h) f (
x)
f 0 (
x) . (1.1)
h
Neste caso quanto menor for o valor de h mais preciso ser o resultado, mas existe uma
limitao para o valor de h. Se h for menor muito pequeno, ocorre o erro de cancela-
mento, isto , x +h=x , e neste caso a derivada de f (x) seria igual a zero para qualquer
que fosse f (x).
A representao de nmeros em mquinas digitais (calculadoras, computadores,
etc) feita na forma de ponto flutuante com um nmero finito de dgito. Logo os nmeros
que tem representao infinita (Ex. 1/3, , 2) so representados de forma truncada.
Com isto algumas das propriedades da aritmtica real no so vlidas na aritmtica
computacional. Como exemplo, na aritmtica computacional temos
n
X n
ak 1 X
6= ak ,
k=0
N N k=0
1
2 CAPTULO 1. INTRODUO
A + = A.
Ep 1
fim enquanto
OutPut: 2Ep
1.1 O Octave
O Octave-Gnu -Gnu originalmente foi concebido para ser um software companheiro,
como um livro texto de graduao no projeto de um reator qumico que estava sendo
escrito por James B. Rawlings, da Universidade Wisconsin-Wisconsin-Madison, e John
G. Ekerdt da Universidade do Texas. Claramente, o octave agora muito mais do que
apenas um pacote destinado a sala de aula. Ele tanto um ambiente quanto uma
linguagem de programao, e um de seus aspectos mais poderosos que os problemas
e as solues so expressos numa linguagem matemtica bem familiar. Devido a sua
capacidade de fazer clculos, visualizao grfica e programao, num ambiente de fcil
uso, o Octave-Gnu torna-se uma ferramenta eficiente para a compreenso tanto de
tpicos fundamentais quanto avanados a uma gama de disciplinas. Nosso objetivo dar
uma rpida viso dos comandos e funes bsicas do Octave-Gnu para exemplificar os
tpicos do curso de Clculo Numrico. Maiores detalhes podem ser obtidos na apostila
Introduo ao Octave, disponvel em http://www.castilho.prof.ufu.br.
Apesar das ultimas verses do Octave-Gnu ter expandido sua capacidade, o ele-
mento bsico dos dados ainda um vetor, o qual no requer declarao de dimenso ou
tipo de varivel. O Octave-Gnu um sistema interativo, onde os comandos podem ser
executados na janela de comandos ou por programas. Estes programas so conhecidos
como m-arquivos ( ou arquivos com extenso .m) e sero discutidos posteriormente. Em
primeiro lugar vamos discutir alguns comandos bsicos que sero til para a manipu-
lao de dados na janela de comandos e nos m-arquivos.
ans =
17
o resultado mostrado na tela como ans ( abreviatura de answer). Os smbolos dos op-
eradores aritmticos so dados na Tabela 1.1. As expresses so calculadas da esquerda
para a direita, com a potenciao tendo a maior precedncia, seguido da multiplicao e
diviso (mesma precedncia) e pela adio e subtrao (tambm com mesma precedn-
cia).
As Variveis
A forma de armazenar o resultado para uso posterior pelo uso de variveis.
>> s=3+4+7+12
s =
26
4 CAPTULO 1. INTRODUO
Operao Smbolo
Adio a+b
Multiplicao ab
Subtrao ab
Diviso a/b ou b\a
Potenciao abb
[tab1]
>> x=[1 2 3 4]
x =
1 2 3 4
Tambm podemos separar os elementos por vrgula. J um vetor coluna pode ser
definido da seguinte forma
>> y=[5; 6; 7; 8]
y =
5
6
7
8
a =
1 2 3 4
5 6 7 8
9 10 11 12
1.1. O OCTAVE 5
Os elementos na i-sima linha e na j-sima coluna, denotados por aij podem ser obtidos
pelo comando a(i,j), por exemplo a(2,3)=7. Note que os elementos no Octave-Gnu
so indexados iniciando em 1. Em algumas situaes necessitamos de vetores com
alguma estrutura particular. Por exemplo, um vetor cujo o primeiro termo vale 2 e o
ultimo vale 3 e os termos intermedirios variam um passo de 0.5. Este vetor pode ser
definido pela linha de comando
EDU>> v=-2:0.5:3
v =
Columns 1 through 7
Columns 8 through 11
De uma forma geral este comando tem a sintaxe v=a:passo:b. Quando o passo
igual a um podemos escrever o comando na forma reduzida v=a:b. Algumas matrizes
elementares podem ser geradas atravs de comandos simples, por exemplo:
A matriz identidade:
EDU>>I=eye(3)
I =
1 0 0
0 1 0
0 0 1
>> A=ones(2,3)
A =
1 1 1
1 1 1
>> B=zeros(3,4)
B =
0 0 0 0
0 0 0 0
0 0 0 0
6 CAPTULO 1. INTRODUO
>> A/A
ans =
1 0 0
0 1 0
0 0 1
Note que neste exemplo terminamos o comando que define a matriz A com um ponto
e vrgula. Isto faz com que o resultado do comando (ou de uma expresso em geral)
no seja apresentado no monitor. Isto til para programas de grande porte, pois este
processo de apresentar os resultados no monitor consome muito tempo de execuo.
Entre vetores e matrizes de mesma dimenso possvel operar elemento com elemento.
Isto possvel atravs de uma notao especial, que consiste de usar um ponto antes do
smbolo da operao. Na Tabela 1.2 damos um resumo destas operaes aplicada a dois
vetores a e b de dimenso n.
Grficos
Para plotar um grfico no Octave-Gnu , devemos criar dois vetores de mesma di-
menso x e f , onde x corresponde aos valores do eixo x e f os valores da funo nestes
1.1. O OCTAVE 7
Funo Sintaxe
Valor Absoluto abs(x)
Arco Co-seno acos(x)
Arco Seno asin(x)
Co-seno cos(x)
Exponencial ex exp(x)
Logaritmo Natural log(x)
Logaritmo base 10 log10(x)
Seno sin(x)
Raiz Quadrada sqrt(x)
Tangente tan(x)
[tab3]
1.1.2 M-arquivos
Existem dois tipos de programas em Octave-Gnu : scripts e funtions. Ambos devem
ser salvos com extenso .m no diretrio corrente. Uma diferena bsica entre os dois
que os scripts trata as variveis, nele definidas, como variveis globais, enquanto as
functions trata as variveis como variveis locais. Desta forma a functions tem que ter
um valor de retorno.
Scripts
As primeiras duas linha so comentrios que descrevem o script. Na quinta linha temos
o comando que permite atribuir valores a uma varivel. E na sexta linha o comando que
permite mostrar uma mensagem no monitor. Vamos supor que este arquivo seja salvo
com o nome de devira_seno.m. Para executar o script digitamos seu nome no prompt
do Octave-Gnu sem a extenso .m.
Functions
function dsen=deriva_seno(x,h)
% Aproximacao da derivada do seno
% Usando o operardor de diferen\c{c}a finita progressiva.
dsen=(sin(x+h)-sin(x))/h;
Apesar deste arquivo poder ser salvo com um nome qualquer, usual usar o mesmo
nome da funo, ou seja, deriva_seno.m. Para execut-lo devemos digitar seu nome e
informar os valores dos argumentos, por exemplo,
EDU>>y= deriva_seno(3.14,0.001)
o que forneceria em y uma aproximao da derivada da funo seno em 3.14 Uma difer-
ena importante entre esta verso, usando function, com a anterior que o valor cal-
culado pode ser atribudo a uma varivel. Alm disso, agora podemos escolher o valor
de h, que na verso anterior estava fixo em h=0.0001. Vale notar que no primeiro caso
todas as variveis do scrips esto ativas, isto so variveis globais. Enquanto que no
segundo caso as variveis so locais, isto , a varivel h s ativa na execuo da funo
Controle de Fluxo
for n = vetor
comandos...
end
Os comandos entre for e end so executados uma vez para cada coluna de vetor. A
cada iterao atribui-se a x a prxima coluna de vetor. Por exemplo
1.1. O OCTAVE 9
x =
0.0000 -1.0000 -0.0000 1.0000 0.0000
Traduzindo, isto diz que para n igual a 1 at 10 calcule os comandos at end.
Ao contrrio do loop for, que executa um grupo de comandos um nmero fixo de
vezes, o loop while executa um grupo um de comandos quantas vezes forem necessrias
para que uma condio seja negada. Sua forma geral
while expressao
comandos...
end
O grupo de comandos entre while e end so executados at que a expresso assuma
um valor falso. Por exemplo,
EDU>> while abs(x(n)-x(n-1)) > 10^(-6)
x(n) = 2*x(n-1) + 1/4;
n=n+1;
end
Neste caso o grupo de comandos so executados at que o valor absoluto da diferena
entre dois valores consecutivos seja menor ou igual a 106 .
A estrutura if-else-end permite que grupos de comandos sejam executados por um
teste relacional. A forma geral dada por
if expressao
comandos 1...
else
comandos 2...
end
Se a expresso for verdadeira executado o grupo de comandos 1, caso contrrio
executado o grupo de comandos 2. Esta estrutura permite o uso da forma mais simples
que envolve s um condicional
if expressao
comandos ...
end
Como exemplo considere o seguinte fragmento de cdigo que calcula o valor absoluto de
um nmero
if x < 0
x=-x;
end
Isto , se x for menor que zero ento troca de sinal, caso contrrio nada feito.
10 CAPTULO 1. INTRODUO
f (
x + h) f (
x)
f 0 (
x)
h
Problema 1.2 Calcule a preciso de sua mquina usando o algoritmo
Ep 1
fim enquanto
Problema 1.4 O clculo aproximado da funo f (x) = ex , pode ser obtido pela sua Srie
de Taylor em torno de zero, dada por
x x2 x3 x4
ex = 1 + + + + +
1! 2! 3! 4!
Faa um programa em Octave-Gnu que calcule a Srie de Taylor at o termo n. Teste o
programa para valores de x prximos de zero e distantes de zero. Analise os resultados
obtidos.
CAPTULO
2
Zeros de Funes
Neste captulo estudaremos esquemas numricos para resolver equaes da forma f (x) =
0. Na maioria dos casos estas equaes no tem soluo algbrica como existe para as
equaes de 2 o grau. No entanto, esquemas numricos podem fornecer uma soluo
aproximada satisfatria. O processo para encontrar uma soluo envolve duas fases:
Fase I Isolamento das razes - Consiste em achar um intervalo fechado [a, b] que contm a
raiz.
Fase II Refinamento - Partindo de uma aproximao inicial refinamos a soluo at que
certos critrios sejam satisfeitos.
11
12 CAPTULO 2. ZEROS DE FUNES
1.8
1.6
1.4 h(x)
1.2
0.8
0.6
0.4 g(x)
0.2
0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8
O Teorema garante a existncia de pelo menos uma raiz, mas pode ser que o intervalo
contenha mais de uma raiz como mostra os exemplos na Figura 2.2.
Pelo exemplos podemos notar que se f 0 (x) preserva o sinal em [a, b] e f (a)f (b) < 0,
ento o intervalo contm uma nica raiz. Se f (a)f (b) > 0 no podemos afirmar nada
sobre a existncia ou no de razes.
Exemplo 2.2 Da anlise grfica vimos que a funo f (x) = ex x tem uma raiz em [0, 1].
Tabelando a funo para valores a partir de zero e espaados de 0.25 temos
x 0 0.25 0.5 0.75 1
f (x) 1 0.528 0.106 -0.277 -0.632
Sendo que f (0.5)f (0.75) < 0, ento a raz pertence ao intervalo [0.5, 0.75]. Note que
f 0 (x)
= ex 1 < 0 x R I , isto f 0 preserva o sinal em [a, b] e com isto podemos concluir
que esta raiz nica. [exc1]
Devemos observar que o tabelamento uma estratgia que completa a anlise gr-
fica. Somente com o tabelamento no conseguimos determinar se existe outras razes
no intervalo ou ainda em que intervalo devemos tabelar a funo.
2.1. ISOLAMENTO DAS RAZES 13
4 3
3
2
1
1
a 1 2 3
a
0 | 0 | | |
b b
1
1
2
3
4 3
0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5 2 2.5 3
1.5
1
a 1 2
0 | |
b 1
0.5
2
a b
3 0 |
0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5 2 2.5 3
2.2 Refinamento
Nas prximas sees estudaremos os esquemas numricos que partindo de uma aproxi-
mao inicial x0 , vo gerar uma seqncia {xk } que converge para a raiz procurada, isto
xk quando k . A aproximao inicial parte do intervalo encontrado na Fase I,
Isolamento das Razes, e os termos da seqncia so calculados at que a aproximao
tenha atingido uma preciso desejada (critrio de parada).
Com isto obtemos um novo intervalo [a1 , b1 ], de tal forma que a raz pertence ao inter-
valo e sua amplitude igual a amplitude do intervalo [a0 , b0 ] dividida por dois. Este
procedimento pode ser repetido, calculando
f (a1 ) < 0
(x1 , b1 )
a1 + b1
x1 = f (b ) > 0
1 a =x
2 1
2
f (x ) < 0
b =b
1 2 1
f (a2 ) < 0
(x2 , b2 )
a2 + b2
x2 = f (b ) > 0
2 a =x
3 2
2
f (x ) < 0
b =b
2 3 2
bk ak < .
|
x | bk ak <
a1 a2 a3
|| || ||
a0 x1 x2
|
x0 b0
||
b1
||
b2
||
b3
function y=bissec(ao,bo,Ep)
while (bo-ao) > Ep,
x=(ao+bo)/2;
if f(x)*f(ao) > 0,
ao=x;
else
bo=x;
end;
end;
y=(ao+bo)/2;
Teorema 2.2 Seja f uma funo contnua em [a, b], onde f (a)f (b) < 0. Ento o mtodo da
Bisseco gera uma seqncia {xk } que converge para a raiz quando k .
16 CAPTULO 2. ZEROS DE FUNES
Portanto f (m) = 0
Exemplo 2.3 No exemplo 2.2 isolamos uma raiz de f (x) = ex x no intervalo [0.5, 0.75].
Usando a preciso = 108 , temos
Logo ser necessrio no mnimo 25 iteraes para que o mtodo da Bisseco possa atingir
a preciso desejada.
() = 0 x = (x)
Isto , encontrar as razes de f (x) equivalente a achar os pontos fixo da funo (x).
Atravs da equao acima montamos um processo iterativo, onde, dado x0
xn+1 = (xn ), n = 1, 2, . . .
Teorema 2.3 Seja uma raiz da funo f isolada no intervalo [a, b]. Seja uma funo
de iterao da funo f que satisfaz:
3) x0 [a, b].
Ento a seqncia {xk } gerada pelo processo iterativo xn+1 = (xn ) converge para .
Como contnua e diferencivel, pelo Teorema do Valor Mdio temos que existe cn
pertencente ao intervalo entre xn e tal que
Logo
|xn+1 | = |0 (cn )| |xn | M |xn |
Aplicando esta relao para n 1, n 2, , 0 e usando o fato que x0 [a, b] temos
Logo
lim xn+1 =
n
Observamos que quanto menor for o valor de |0 (x)| mais rpida ser a convergncia.
Exemplo 2.4 Consideremos a funo f (x) = ex x, onde existe uma raiz [0.5, 0, 75].
Uma forma de escrever f (x) = x (x) considerar (x) = ex . Verificando as condies
de convergncia temos:
1) As funes (x) = ex e 0 (x) = ex so contnuas em [0.5, 0.75].
2) A funo 0 satisfaz
max |0 (x)| = 0.6065... < 1 (Por que? Ver Nota 1)
x[0.5,0.75]
Na Figura 2.4 podemos ver que o comportamento do processo iterativo converge para a
raiz.
|xn+1 xn |
(Erro Relativo)
|xn+1 |
2.5. MTODO DE NEWTON-RAPHSON (M.N.R) 19
0.8
0.75
x
0.7
0.65
0.6
0.55
0.5
0.45 ex
x1 x2 x0
0.4
0.4 0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.8
e vamos tomar xn+1 como aproximao para a raiz. Se no exemplo anterior tivssemos
escolhido = 0.006 e o Erro Absoluto teramos
0 () = 1 + A0 ()f () + A()f 0 () = 0.
1
A() = .
f 0 ()
f (x)
(x) = x
f 0 (x)
Com esta funo de iterao montamos o processo iterativo conhecido como mtodo de
Newton-Raphson, onde dado x0
f (xn )
xn+1 = xn , n = 0, 1, 2, . . .
f 0 (xn )
f (xn ) f (xn )
f 0 (xn ) = tan() = xn+1 = xn 0
xn xn+1 f (xn )
Teorema 2.4 Sejam f , f 0 e f 00 , funes contnuas num intervalo [a, b], onde existe uma raiz
a, b] [a, b], contendo a raiz
. Supor que f 0 (x) 6= 0 para x [a, b]. Ento existe um intervalo [
, tal que se x0 [
a, b], a seqncia {xn } gerada pelo processo iterativo
f (xn )
xn+1 = xn
f 0 (xn )
Prova:(Exerccio 2.7)
Uma observao deve ser feita. A condio de que x0 [a, b] no uma condio de
fcil verificao, visto que o Teorema garante a existncia do intervalo, mas no como
determin-lo. Observamos na Figura 2.6 casos em que o mtodo de Newton-Raphson
falho.
2.5. MTODO DE NEWTON-RAPHSON (M.N.R) 21
f(x)
xn+1 xn
Exemplo 2.5 Considerando f (x) = ex x que possui uma raiz no intervalo [0.5, 0.75],
vamos achar uma aproximao usando x0 = 0.625 e = 0.006. Sendo
f 0 (x) = ex 1
f (xn ) ex x
xn+1 = xn = x n +
f 0 (xn ) ex + 1
ex0 x0
x1 = x0 + = 0.56654 |x1 x0 | = 0.0584 >
ex0 + 1
ex1 x1
x2 = x1 + x1 = 0.56714 |x2 x1 | = 0.0006 <
e +1
Logo a aproximao dada por x2 = 0.56714. Note que este mtodo encontrou a soluo em
duas iteraes, enquanto que no M.I.L. foi necessrio 6 iteraes para obter a aproximao
com a mesma preciso.
22 CAPTULO 2. ZEROS DE FUNES
x1=x3 x0=x2 x0
function x1=newton(xo,Ep)
x1=xo-f(xo)/df(xo)
while abs(x1-xo) > Ep,
xo=x1;
x1=xo-f(xo)/df(xo)
end;
Definio 2.1 Seja {xn } uma seqncia que converge para um nmero e seja ek = xk
2.6. ORDEM DE CONVERGNCIA 23
o erro na iterao k. Se
|ek+1 |
lim = C,
k |ek |p
com p 1 e C > 0, dizemos que a seqncia converge com ordem p e com constante
assinttica C.
Assim quanto maior for o valor de p, menor ser o erro |ek+1 |. Quando p = 1 dizemos que
o mtodo tm convergncia linear. Se p = 2 dizemos que a convergncia quadrtica.
Primeiramente vamos determinar a ordem de convergncia do M.I.L. Sendo a se-
qncia {xn } gerada por xk+1 = (xk ), k = 0, 1, 2, . . . e que = () temos
|ek+1 |
lim = lim |0 (ck )| = |0 ()| = C
k |ek | k
f (xn ) f (xn )
xn+1 = xn 0
en+1 = en 0 [ec13] (2.2)
f (xn ) f (xn )
f 00 (cn )
f (x) = f (xn ) + f 0 (xn )(x xn ) + (x xn )2 cn [x, xn ]
2
Que calculada em x = fornece
f 00 (cn )
0 = f () = f (xn ) + f 0 (xn )( xn ) + ( xn )2
2
24 CAPTULO 2. ZEROS DE FUNES
Uma forma prtica para este clculo seguir os passos: Considerando que f (x) e f 0 (x)
so contnuas para x [a, b], ento uma forma prtica para o clculo do mximo seguir
os passos:
1: Calcula-se os valores da funo nos extremos do intervalo, |f (a)| e |f (b)|.
2: Verifique se a funo no possui ponto critico no intervalo, ou seja, achamos os val-
ores de xk tal que f 0 (xk ) = 0 e xk [a, b]
3: Tomamos como o valor mximo o max{|f (a)|, |f (b)|, |f (xk )|}
[not1]
2.8. EXERCCIOS 25
2.8 Exerccios
Exerccio 2.1 Localize graficamente e d intervalos de amplitude 0.5 que contenha as
razes das equaes
a) ln(x) + 2x = 0 b) ex sen(x) = 0 c) ln(x) 2x = 2
x 2
d) 2 cos(x) e2 = 0 e) 3 ln(x) x2 = 0 f) (5 x)ex = 1
Exerccio 2.2 Utilize o Mtodo da Bisseco e aproxime a menor raiz em mdulo com erro
menor que 101 para as equaes a) e b) do exerccio 2.1.
Exerccio 2.3 Utilize o Mtodo Iterativo Linear e aproxime a menor raiz em mdulo com
erro relativo menor que 102 para as equaes c) e d) do exerccio 2.1.
Exerccio 2.5 Achar a raiz p-sima de um nmero positivo a equivalente a achar a raiz
positiva da equao p a = x. (Sugesto: considere o caso em que p = 2 para depois pensar
no caso geral )
c) Tomando x0 = 0.6 e = 0.01, aplique o M.I.L. para encontrar uma aproximao para a
raiz positiva, usando uma funo de iterao que satisfaa os critrios de convergn-
cia
Problema 2.2 Considere a funo f (x) = x3 3.5x2 +4x1.5. Esta tem uma raz no intervalo
[0.8, 1.2]. Usando o mtodo de Newton-Raphson ache uma aproximao com preciso de
106 . Comente os resultados.
f (xk ) f (xk1 )
f 0 (xk ) .
xk xk1
Isto simplifica o programa, pois neste caso, no temos que informar quem a derivada de
f (x). Aplique este mtodo para o mesmo problema 2.1 e compare o desempenho do Mtodo
da Secante, em relao aos resultados obtidos pelo Mtodo de Newton-Raphson.
CAPTULO
3
Sistemas Lineares
x = Cx + g,
27
28 CAPTULO 3. SISTEMAS LINEARES
A norma vetorial pode ser vista como um caso particular da norma matricial, onde
um vetor x IRn equivalente a uma matriz de ordem n 1. Com isto temos as normas
de vetores dadas por
n
X
||x||1 = |xi | Norma da Soma
i=1
n !1/2
X
2
||x||2 = |xi | Norma Euclidiana
i=1
O conceito de norma nos permite definir convergncia de uma seqncia de vetores {xk }.
Dizemos que xk x se
lim ||xk x
|| = 0
k
Com isto podemos definir os critrios de parada: Dado um > 0
||xk+1 xk || Erro Absoluto
||xk+1 xk ||
Erro Relativo
||xk ||
xk+1 = Cxk + g
x
= C
x + g.
1
x2 = (b2 a2,1 x1 a2,3 x3 a2,n xn )
a2,2
1
x3 = (b3 a3,1 x1 a3,2 x2 a3,n xn )
a3,3
.. .. ..
. . .
1
xn = (bn an,1 x1 an,2 x2 an,n1 xn1 )
an,n
fim enquanto
Ento o Mtodo de Gauss-Jacobi gera uma seqncia {xk } que converge para a soluo
do sistema.
Este critrio fornece uma condio suficiente, mas no necessria. Isto , o critrio
pode no ser satisfeito e o mtodo ainda pode convergir. Outros critrios podem ser
obtidos usando outras normas. Por exemplo, podemos obter o chamado critrio das
colunas aplicando a Norma do Mximo das Colunas na matriz em (3.2).
vamos procurar uma aproximao da soluo, com preciso = 0.1 na Norma do Mx-
imo, usando o Mtodo de Gauss-Jacobi. Vamos tomar como condio inicial o vetor x0 =
(0.5, 0.5, 0.5)T .
O primeiro passo verificar se o critrio de convergncia satisfeito. Calculando os
k temos
1 5
1 = (|a1,2 | + |a1,3 |) = <1
|a1,1 | 7
1 2
2 = (|a2,1 | + |a2,3 |) = <1
|a2,2 | 3
1 2
3 = (|a3,1 | + |a3,2 |) = <1
|a3,3 | 3
32 CAPTULO 3. SISTEMAS LINEARES
Logo o critrio das linhas satisfeito e com isto temos garantia que o Mtodo de Gauss-
Jacobi converge. Montando o processo iterativo temos
(1) 1
x1 = (2 3 0.5 2 0.5) = 0.642
7
(1) 1
x2 = (3 0.5 + 0.5) = 1.000 (3.4)
3
(1) 1
x3 = (1 0.5 0.5) = 0.666
3
Verificando o critrio de parada temos
0.642 0.500 0.142
x1 x0 = 1.000 0.500 = 0.500 ||x1 x0 || = 0.500 >
0.666 0.500 0.166
Para k = 1 temos
(2) 1
x1 = (2 3 1.000 2 0.666) = 0.904
7
(2) 1
x2 = (3 0.642 + 0.666) = 1.008 (3.5)
3
(2) 1
x3 = (1 0.642 1) = 0.880
3
Verificando o critrio de parada temos
0.904 0.642 0.262
x x = 1.008 1.000 = 0.008 ||x2 x1 || = 0.262 >
2 1
fim enquanto
Ento o Mtodo de Gauss-Seidel gera uma seqncia {xk } que converge para a soluo do
sistema.
34 CAPTULO 3. SISTEMAS LINEARES
vamos procurar uma aproximao da soluo, com preciso = 0.1 na norma do mx-
imo, usando o Mtodo de Gauss-Seidel. Vamos tomar como condio inicial o vetor x0 =
(0.5, 0.5, 0.5)T .
O primeiro passo verificar se o critrio de convergncia satisfeito. Calculando os
k temos
1 5
1 = (|a1,2 | + |a1,3 |) = < 1
|a1,1 | 7
1 6
2 = (|a2,1 |1 + |a2,3 |) = < 1
|a2,2 | 7
1 11
3 = (|a3,1 |1 + |a3,2 |2 ) = <1
|a3,3 | 14
Logo o critrio de Sassenfeld satisfeito e com isto temos garantia que o Mtodo de Gauss-
Seidel converge. Note que se aplicarmos o critrio das linhas obtemos que 2 = 3 = 1, ou
seja, o critrio das linhas no satisfeito. Este um exemplo em que no temos a garantia
de convergncia do Mtodo de Gauss-Jacobi.
Montando o processo iterativo temos
(k+1) 1 (k) (k)
x1 = 2 3x2 2x3
7
(1) 1
x2 = (2 0.642 + 0.5) = 0.929 (3.8)
2
(1) 1
x3 = (0 0.642 0.929) = 0.785
2
Verificando o critrio de parada temos
0.642 0.500 0.142
x1 x0 = 0.929 0.500 = 0.429 ||x1 x0 || = 0.429 >
0.785 0.500 0.285
3.2. MTODOS DIRETOS 35
Para k = 1 temos
(2) 1
x1 = (2 3 0.929 2 0.785) = 0.908
7
(2) 1
x2 = (2 0.908 + 0.785) = 0.938 (3.9)
2
(2) 1
x3 = (0 0.908 0.938) = 0.923
2
Verificando o critrio de parada temos
0.908 0.642 0.266
x2 x1 = 0.938 0.929 = 0.009 ||x2 x1 || = 0.266 >
0.923 0.785 0.138
bn
xn =
an,n
1
xn1 = (bn1 an1,n xn )
an1,n1
1
xn2 = (bn2 an2,n1 xn1 an2,n xn )
an2,n2
36 CAPTULO 3. SISTEMAS LINEARES
.. ..
. .
n
X
1
xk = bk ak,j xj
ak,k j=k+1
.. ..
. .
e assim sucessivamente. Com isto obtemos o esquema numrico para soluo de sis-
tema triangular superior dado pelo algoritmo abaixo
Algoritmo: Retro-Soluo
xn bn /an,n
fim para
(III) Adicionar a uma equao uma outra multiplicada por uma constante no nula.
onde det(A) 6= 0, isto , o sistema admite uma nica soluo. Um sistema linear pode
ser representado na forma de matriz estendida (A0 |b0 ), ou seja
(0) (0) (0) (0) (0)
a1,1 a1,2 a1,3 a1,n b1
(0) (0) (0) (0) (0)
a2,1 a2,2 a2,3 a2,n b2
(0) (0) (0) (0) (0)
a3,1 a3,2 a3,3 a3,n b3
.. .. .. .. ..
. . . . .
(0) (0) (0) (0) (0)
an,1 an,2 an,3 an,n bn
onde o ndice superior indica a etapa do processo.
(0)
Etapa 1: Eliminar a incgnita x1 das equaes k = 2, 3, . . . , n. Sendo a1,1 6= 0, usaremos a
operao elementar (III) e subtramos da linha k a primeira linha multiplicada por
(0)
ak,1
mk,1 = (0)
.
a1,1
(0)
Os elementos mk,1 so chamados de multiplicadores e o elemento a1,1 chamado
(0)
de piv da Etapa 1. Indicando a linha k da matriz entendida por Lk esta etapa se
resume em
(1) (0)
L1 = L1
(1) (0) (0)
Lk = Lk mk,1 L1 , k = 2, 3, . . . , n
Ao final desta etapa teremos a matriz
(1) (1) (1) (1) (1)
a1,1 a1,2 a1,3 a1,n b1
(1) (1) (1) (1)
0 a2,2 a2,3 a2,n b2
(1) (1) (1) (1)
0 a3,2 a3,3 a3,n b3
.. .. .. .. ..
. . . . .
(1) (1) (1) (1)
0 an,2 an,3 an,n bn
que representa um sistema linear equivalente ao sistema original, onde a incgnita
x1 foi eliminada das equaes k = 2, 3, . . . , n.
(1)
Etapa 2: Eliminar a incgnita x2 das equaes k = 3, 4, . . . , n. Supondo que a2,2 6= 0,
vamos tomar este elemento como piv desta etapa e desta forma os multiplicadores
so dados por
(1)
ak,2
mk,2 = (1)
a2,2
A eliminao segue com as seguintes operaes sobre as linhas:
(2) (1)
L1 = L1
(2) (1)
L2 = L2
(2) (1) (1)
Lk = Lk mk,2 L2 , k = 3, 4, . . . , n
38 CAPTULO 3. SISTEMAS LINEARES
Eliminao:
Para k = 1, 2, . . . , n 1, faa:
Para i = k + 1, . . . , n, faa:
aij
m
ak,k
Para j = k + 1, . . . , n, faa:
aij aij m akj
fim para
bi bi m bk
fim para
fim para
Retro-Soluo:
xn bn /an,n
fim para
3.2. MTODOS DIRETOS 39
(k1)
Se o piv |ak,k | 1, ou seja este prximo de zero teremos problemas com os erros de
arredondamento, pois operar nmeros de grandezas muito diferentes aumenta os erros
( ver Ex. 3.4). A estratgia de pivotamento parcial baseada na operao elementar (I).
No incio de cada etapa k escolhemos como piv o elemento de maior mdulo entre os
coeficientes ak1
ik para i = k, k + 1, . . . , n.
Exemplo 3.4 Vamos considerar o sistema linear, representado pela matriz extendida
1 3 2 3
2 1 2 4
3 2 1 2
Eliminar x2 da linha 3.
(2) (1)
L1 = L1
(2) (1)
L2 = L2
(2) (1) (1) 7
L3 = L3 m3,2 L2 , onde m3,2 =
11
obtendo assim a matriz
3 2 1 2
0 11/3 8/3 8/3
0 0 13/11 13/11
A A1 = A1 A = I
42 CAPTULO 3. SISTEMAS LINEARES
Exemplo 3.5 Vamos achar a inversa da matriz abaixo, usando o mtodo de Elinao de
Gauss.
4 1 6
3 2 6 ,
3 1 5
Para o processo de eliminao consideremos a matriz estendida
4 1 6 1 0 0
3 2 6 0 1 0 ,
3 1 5 0 0 1
3.2. MTODOS DIRETOS 43
b13
x3,1 = =3
a3,3
1 1
x2,1 = (b a2,3 x3 ) = 3
a2,2 2
1 1
x1,1 = (b a1,2 x2 a1,3 x3 ) = 4
a1,1 1
b23
x3,2 = =1
a3,3
1 2
x2,2 = (b a2,3 x3 ) = 2
a2,2 2
1 2
x1,2 = (b a1,2 x2 a1,3 x3 ) = 1
a1,1 1
44 CAPTULO 3. SISTEMAS LINEARES
No exemplo acima temos que a inversa da matriz A a prpria A. Este tipo de matriz
usado como matriz teste para verificar a eficincia dos mtodos numricos.
Abaixo apresentamos uma implementao do Mtodo de Eliminao de Gauss em
MatLab que resolve k sistemas, onde a matriz A comum a todos.
function x=EGauss(A,varargin)
b=[varargin{:}];
db=size(b);
% Esta parte verifica se o sistema eh quadrado
da=size(A);
n=da(1);
if n ~=da(2),
disp(??? A matriz deve ser quadrada);
break;
end;
Ax=[A,b];
% Fase da elimina\c{c}{\~a}o
for k=1:(n-1)
for i=k+1:n
if abs(Ax(k,k)) < 10^(-16),
disp(??? Piv{\^o} Numericamente Nulo);
break;
end;
m=Ax(i,k)/Ax(k,k);
for j=k+1:da(2) + db(2)
Ax(i,j) = Ax(i,j)-m*Ax(k,j);
end;
end;
end;
3.4 Exerccios
Exerccio 3.1 Resolva o sistema linear abaixo, usando o Mtodo de Eliminao de Gauss.
1.7x1 + 2.3x2 0.5x3 = 4.55
1.1x1 + 0.6x2 1.6x3 = 3.40
2.7x 0.8x + 1.5x = 5.50
1 2 3
Exerccio 3.3 Um sistema dito ser tridiagonal se este formado pela diagonal principal,
a primeira diagonal secundria inferior e a primeira diagonal secundria superior. Os
outros elementos so nulos. Isto , a matriz associada da forma:
a1,1 a1,2 0 0 0 0 0 0
a2,1 a2,2 a2,3 0 0 0 0 0
0 a3,2 a3,3 a3,4 0 0 0 0
0 0 a4,3 a4,4 a4,5 0 0 0
.. .. .. .. .. .. .. ..
. . . . . . . .
0 0 0 0 0 an1,n2 an1,n1 an1,n
0 0 0 0 0 0 an,n1 an,n
Faa uma modificao no Mtodo de Eliminao de Gauss explorando a forma do sistema.
[ex32]
b) Calcule o resduo r = b A
x para os casos (i) e (ii).
Exerccio 3.6 Mostre que, se um sistema linear satisfaz o Critrio das Linhas, ento este
tambm satisfaz o Critrio de Sassenfeld.
Exerccio 3.9 Enuncie as vantagens e desvantagens dos Mtodos Diretos em relao aos
Mtodos Iterativos.
48 CAPTULO 3. SISTEMAS LINEARES
15 4 3 2 1 30
1 15 4 3 2 10
A= 2 1 15 4 3 b= 5 = 108
3 2 1 15 4 15
4 3 2 1 15 20
CAPTULO
4
Ajuste de Curvas: Mtodo dos Mnimos
Quadrados
Em geral, experimentos em laboratrio gera um conjunto de dados que devem ser anal-
isados com o objetivo de determinar certas propriedades do processo em anlise. Obter
uma funo matemtica que represente (ou que ajuste) os dados permite fazer sim-
ulaes do processo, de forma confivel, reduzindo assim repeties de experimentos
que podem ter um custo alto. Neste captulo vamos analisar o esquema dos Mnimos
Quadrados, que fornece uma funo que melhor represente os dados.
dk = f (xk ) (xk ),
seja mnimo, onde (x) uma combinao linear de funes contnuas gi (x), i = 1, 2, ..., n,
escolhidas de acordo com os dados do problema. Isto
Neste caso dizemos que o ajuste linear sob os parmetros i . A escolha das funes
gi depende do grfico dos pontos, chamado de diagrama de disperso, atravs do qual
podemos visualizar que tipo de curva que melhor se ajusta aos dados.
x 0.10 0.20 0.50 0.65 0.70 0.80 0.90 1.10 1.23 1.35 1.57 1.70 1.75 1.80 1.94
f (x) 0.19 0.36 0.75 0.87 0.91 0.96 0.99 0.99 0.94 0.87 0.67 0.51 0.43 0.36 0.11
49
50 CAPTULO 4. AJUSTE DE CURVAS: MTODO DOS MNIMOS QUADRADOS
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
A anlise do grfico de disperso (Fig. 4.1) mostra que a funo que procuramos se
comporta como uma parbola. Logo poderamos escolher as funes g1 (x) = 1, g2 (x) = x e
g3 (x) = x2 , pois (x) = 1 g1 (x) + 2 g2 (x) + 3 g3 (x) representa todas as parbolas e com a
escolha adequada dos i teremos aquela que melhor se ajusta aos pontos. [ex:03]
A funo F uma funo que satisfaz F () 0 IRm . Isto , uma funo limitada
inferiormente e portanto esta tem um ponto de mnimo. Este ponto pode ser determinado
pelo teste da primeira derivada, sendo
F
=0 i = 1, . . . , n.
i (1 ,...,n )
onde m m
X X
ai,j = gi (xk )gj (xk ) e bi = f (xk )gi (xk )
k=1 k=1
Este sistema tem uma nica soluo se os vetores formados por gk = (gk (x1 ), gk (xn ))
so linearmente independentes. Isto equivalente a ter as funes gi (x) linearmente in-
dependentes. A matriz A associada ao sistema uma matriz simtrica, ou seja ai,j = aj,i .
Logo, para um sistema n n, ser necessrio calcular (n2 + n)/2 elementos.
Exemplo 4.2 Usando a tabela do exemplo (4.1), vamos ajustar os dados por uma parbola.
Para isto vamos tomar g1 (x) = 1, g2 (x) = x e g3 (x) = x2 . Calculando cada uma das funes
nos pontos xk temos.
x 0.10 0.20 0.50 0.65 0.70 0.80 0.90 1.10 1.23 1.35 1.57 1.70 1.75 1.80 1.94
f (x) 0.19 0.36 0.75 0.87 0.91 0.96 0.99 0.99 0.94 0.87 0.67 0.51 0.43 0.36 0.11
g1 (x) 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
g2 (x) 0.10 0.20 0.50 0.65 0.70 0.80 0.90 1.10 1.23 1.35 1.57 1.70 1.75 1.80 1.94
g3 (x) 0.01 0.04 0.25 0.42 0.49 0.64 0.81 1.21 1.51 1.82 2.46 2.89 3.06 3.24 3.76
15
X
a2,3 = g2 (xk ) g3 (xk ) = 34.92 = a3,2
k=1
X15
a3,3 = g3 (xk ) g3 (xk ) = 57.09
k=1
X15
b1 = f (xk ) g1 (xk ) = 9.91
k=1
X15
b2 = f (xk ) g2 (xk ) = 10.28
k=1
X15
b3 = f (xk ) g3 (xk ) = 12.66
k=1
Obtendo assim um sistema linear que pode ser resolvido por um esquema numrico estu-
dado no captulo 3. A soluo do sistema dado por
1 = 0.00, 2 = 1.99, 3 = 0.99
Portanto a funo dada por
(x) = 1.99x 0.99x2
A figura 4.2 compara a funo (x) com o grficos dos pontos.
1
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
No exemplo ajustamos os dados a uma parbola, mas outras funes bases pode-
riam ser usadas. Como exemplo, poderamos pensar que os dados representam o
primeiro meio ciclo de uma funo senoidal. E neste caso poderamos tomar g1 (x) = 1
e g2 (x) = sen(x/2). Afinal qual seria a melhor escolha? (Veja exerccio 4.1) O desvio
fornece uma medida que pode ser usada como parmetro de comparao entre ajustes
diferentes. No caso do ajuste pela parbola temos que o desvio dado por
15
X
D= (f (xk ) (xk ))2 = 0.0019
k=1
Se o ajuste feito por uma funo senoidal tiver um desvio menor, ento este ajuste rep-
resentaria melhor os dados. Outro ponto a ser observado que a dimenso do sistema
linear depende do nmero de funes bases que estamos usando. No caso da parbola
usamos trs funes bases e temos um sistema 3 3. No caso de uma funo senoidal
teremos um sistema 2 2.
Exemplo 4.3 Vamos determinar a melhor parbola que se ajuste a funo f (x) = sen(x)
no intervalo [0, 1]. Para isto devemos tomar, como funes bases, as funes g1 (x) = 1,
g2 (x) = x e g3 (x) = x2 . Calculando os termos do sistema linear temos
Z 1
a1,1 = g1 (x)g1 (x)dx = 1
0
Z 1
1
a1,2 = g1 (x)g2 (x)dx =
= a2,1
0 2
Z 1
1
a1,3 = g1 (x)g3 (x)dx = = a3,1
0 3
Z 1
1
a2,2 = g2 (x)g2 (x)dx =
0 3
Z 1
1
a2,3 = g2 (x)g3 (x)dx = = a3,2
0 4
54 CAPTULO 4. AJUSTE DE CURVAS: MTODO DOS MNIMOS QUADRADOS
Z 1
1
a3,3 = g3 (x)g3 (x)dx =
0 25
Z 1
b1 = f (x)(x)g1 (x)dx = 0.636
0
Z 1
b2 = f (x)g2 (x)dx = 0.318
0
Z 1
b3 = f (x)g3 (x)dx = 0.189
0
cuja a soluo dada por 1 = 0.027, 2 = 4.032 e 3 = 4.050. Assim temos que
(x) = 0.027 + 4.032x 4.050x2 . A figura (4.3) mostra o grfico comparativo entre a funo
f (x) ( linha: ) e o ajuste (x) (linha: ).
1.2
0.8
0.6
0.4
0.2
0.2
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
considerar os dados
x 1.0 0.5 0 0.5 1.0 1.5 2.0 2.5 3.0
f (x) 0.157 0.234 0.350 0.522 0.778 1.162 1.733 2.586 3.858
Montando o diagrama de disperso (Veja figura 4.4) podemos considerar que f (x) tem
um comportamento exponencial. Isto , f (x) (x) = 1 e2 x . Note que neste caso o
3.5
2.5
1.5
0.5
0
1 0.5 0 0.5 1 1.5 2 2.5 3
pontos temos
1 = e1 = 0.349 e 2 = 2 = 0.800
Portanto temos
(x) = 1 e2 = 0.349e0.800x
A Figura 4.5 mostra a comparao dos dados com a funo obtida. Para verificar se
funo escolhida para a aproximao foi bem feita, usamos o teste de alinhamento. Este
consiste em tomarmos os dados linearizados, isto , os pontos z da tabela, e fazer o
diagrama de disperso. Se os pontos estiverem alinhados, ento a escolha da funo
foi boa. A Figura 4.6 mostra o diagrama de disperso dos dados em z, obtidos no
nosso exemplo. Podemos concluir que a nossa escolha pela exponencial foi uma escolha
acertada.
3.5
2.5
1.5
0.5
0
1 0.5 0 0.5 1 1.5 2 2.5 3
podemos ter mais de um valor para um determinado ponto. (Veja exerccio 4.4) A funo
obtida considera os dois valores faz uma mdia entre estes valores.
Os elementos ai,j so obtidos pelo produto interno entre as funes gi e gj definidos
por
m
X
Caso Discreto: hgi , gj i = gi (xk )gj (xk )
k=1
Z b
Caso Contnuo: hgi , gj i = gi (x)gj (x)dx
a
(
0, para i 6= j
hgi , gj i =
ki , para i = j
1.5
0.5
0.5
1.5
2
1 0.5 0 0.5 1 1.5 2 2.5 3
4.5 Exerccios
Exerccio 4.1 Usando os dados abaixo, faa um ajuste de curva com g1 (x) = 1 e g2 (x) =
sen(/2x). Calcule o desvio e compare com os resultados obtidos no Exemplo (4.1).
x 0.10 0.20 0.50 0.65 0.70 0.80 0.90 1.10 1.23 1.35 1.57 1.70 1.75 1.80 1.94
f (x) 0.19 0.36 0.75 0.87 0.91 0.96 0.99 0.99 0.94 0.87 0.67 0.51 0.43 0.36 0.11
[exc4:01]
Exerccio 4.3 A tabela abaixo representa o calor especfico da gua em funo da tem-
peratura.
t(o C) 0 5 10 25 30 35
C(t) 1.00762 1.00392 1.00153 0.99852 0.99826 0.99818
Faa um ajuste linear, um quadrtico e um cbico. Faa um ajuste no linear da forma
(x) = 1 e2 x , com 1 , 2 > 0. Calcule o desvio e ache uma aproximao para t = 15 em
cada um dos casos. Sabendo que o valor exato da funo C(15) = 1.00000, qual dos casos
acima apresentou melhor aproximao?
1
Exerccio 4.4 Ajustar os dados abaixo funo z =
1 + e(1 x+2 )
x 0.1 0.3 0.5 0.5 0.7 0.8 0.8 1.10 1.30 1.80
f(x) 0.833 0.625 0.500 0.510 0.416 0.384 0.395 0.312 0.277 0.217
Verifique, pelo teste do alinhamento, qual a melhor escolha para ajustar os dados
entre as funes z = 1 2 x e z = 1 x2 . (Obs: Note que neste caso a tabela apresenta dois
valores diferentes para os pontos x = 0.5 e x = 0.8. ) [ex4:02]
1
Exerccio 4.5 Usando os polinmios de Legendre g1 (x) = 1, g2 (x) = x e g2 (x) = (3x2 1),
2
que so ortogonais em [1, 1], ache a melhor parbola que aproxima a funo f (x) = cos(x)
no intervalo [3, 3]. (Obs: A ortogonalidade dos polinmios nos forneceria uma matriz
diagonal, se o ajuste fosse feito no intervalo [1, 1]. Logo devemos fazer uma mudana de
varivel de tal forma que obteremos novas gi que sero ortogonais em [3, 3] ) [exc4:03]
Exerccio 4.6 Seja f(x) uma funo real, contnua no intervalo [0, 2]. Ache os valores de
i e i , para o ajuste da forma
(x) = 1 cos(x) + 1 sen(x) + 2 cos(2x) + 2 sen(2x) + + n cos(nx) + n sen(nx)g2 (x).
Este ajuste a aproximao de uma funo pela sua Srie de Fourier, cuja as aplicaes
em processamento de imagens e sinais so bem difundidos.
61
62 CAPTULO 5. INTERPOLAO POLINOMIAL
Exemplo 5.1 Vamos achar uma aproximao para f (0.3) usando o polinmio interpolador
dos dados abaixo.
Como temos, trs pontos (n + 1 = 3), o grau do polinmio ser menor ou igual a dois. Logo
p(x) = a0 + a1 x + a2 x2
f0 = 4.00 = p(0) = a0 + a1 0 + a2 02
f1 = 3.84 = p(0.2) = a0 + a1 0.2 + a2 0.22
f2 = 3.76 = p(0.4) = a0 + a1 0.4 + a2 0.42
p(x) = x2 x + 4
Desta forma
f (0.3) p(0.3) = 3.79
Observe que o polinmio o mesmo obtido pela resoluo de sistema. Isto j era esper-
ado, pois o polinmio interpolador nico.
64 CAPTULO 5. INTERPOLAO POLINOMIAL
f [xk ] = f (xk ).
O operador de diferena dividida de ordem um, nos pontos xk , xk+1 , definido da seguinte
forma
f [xk ] f [xk+1 ]
f [xk , xk+1 ] =
xk xk+1
Este valor pode ser interpretado como uma aproximao para a primeira derivada de
f (x), em xk . O operador de diferena dividida de ordem dois, nos pontos xk , xk+1 , xk+2 ,
definido da seguinte forma:
f [xk , xk+1 ] f [xk+1 , xk+2 ]
f [xk , xk+1 , xk+2 ] = .
xk xk+2
De forma anloga, definimos o operador diferena dividida de ordem n, nos pontos
xk , xk+1 , . . . , xk+n , da seguinte forma:
f [xk , xk+n1 ] f [xk+1 , xk+n ]
f [xk , xk+1 , . . . , xk+n ] = .
xk xk+n
Note que a forma de clculo desses operadores construtiva, no sentido de que para
obter a diferena dividida de ordem n necessitamos das diferenas divididas de ordem
n 1, n 2, . . . , 1, 0. Um esquema prtico para o clculo desses operadores dado pela
tabela abaixo
x f [xk ] f [xk , xk+1 ] f [xk , xk+1 , xk+2 ] f [xk , xk+1 , . . . , xk+n ]
x0 f0
> xf00 f1
x1
f [x0 ,x1 ]f [x1 ,x2 ]
x1 f1 > x0 x2
> xf11 f2
x2
f [x1 ,x2 ]f [x2 ,x3 ]
x2 f2 > x1 x3
f [x0 ,...,xn1 ]f [x1 ,...,xn ]
> xf22 f3
x3 > x0 xn
..
x3 f3 .
.. ..
. .
xn1 fn1
fn1 fn
> xn1 xn
xn fn
os pontos x, x0 , x1 temos
f [x, x0 ] f [x0 x1 ]
f [x, x0 , x1 ] =
x x1
Isolando a diferena de ordem um que depende de x segue que
f (x) f (x0 )
= f [x0 , x1 ] + (x x1 )f [x, x0 , x1 ],
x x0
e isto implica que
Ou seja a funo f (x) igual a um polinmio de grau um ,p1 (x), mais uma funo E1 (x)
que depende da diferena dividida de ordem dois. Desta forma podemos dizer que a
funo f (x) aproximada por p1 (x) com erro de E1 (x). O polinmio p1 (x) o polinmio
interpolador de f (x), nos pontos x0 , x1 , pois este satisfaz a condio de interpolao, isto
,
0 0
p1 (x0 ) = f (x0 ) + (x0 %x0 )f [x0 , x1 ] + (x0 %x0 )(x x1 )f [x, x0 , x1 ]
= f (x0 )
0
p1 (x1 ) = f (x0 ) + (x1 x0 )f [x0 , x1 ] + (x1 x0 )(x %x1 )f [x, x0 , x1 ]
f (x0 ) f (x1 )
= f (x0 ) + (x1 x0 )
x0 x1
= f (x1 )
Assim podemos aproximar f (x) por pn (x), sendo que o erro dado por En (x). O polinmio
pn (x) o polinmio interpolador de f (x) sobre os pontos x0 , x1 , . . . xn , pois p(xj ) = f (xj ),
para j = 0, 1, . . . , n.
66 CAPTULO 5. INTERPOLAO POLINOMIAL
x 0 0.5 1 1.5
f (x) 0.0000 1.1487 2.7183 4.9811
Atravs da equao (5.1) podemos notar que as diferenas divididas que necessitamos
so as primeiras de cada coluna. Logo polinmio interpolador dado por
p(x) = f (x0 ) + x x0 f [x0 , x1 ] + (x x0 )(x x1 )f [x0 , x1 , x2 ] + (x x0 )(x x1 )(x x2 )f [x0 , x1 , x2 , x3 ]
= 0.00 + (x 0.0)2.2974 + (x 0.0)(x 0.5)0.8418 + (x 0.0)(x 0.5)(x 1.0)0.36306
= 2.05803x + 0.29721x2 + 0.36306x3
f (n+1) ()
En (
x) = f (
x) pn (
x) = (
x x0 )(
x x1 ) (
x xn ) com [x0 , xn ]
(n + 1)!
[teo:51]
onde,
A funo H (n+1) (t) possui um zero em [x0 , xn ] que vamos chamar de . Substituindo na
equao acima temos que
f (n+1) ()
En (x) = (x x0 )(x x1 ) (x xn )
(n + 1)!
|f (n+1) (x)|
|En (x)| |(x x0 )(x x1 ) (x xn )| max ,
x[x0 ,xn ] (n + 1)!
onde temos que ter alguma informao sobre a funo que permita limitar sua derivada
de ordem n + 1.
Vamos achar uma aproximao para f (0.44), usando um polinmio de grau 2. Neste
caso, necessitamos de 3 pontos e o ideal escolher aqueles que esto mais prximos do
valor que desejamos aproximar. Logo a melhor escolha ser x0 = 0.34, x1 = 0.4 e x2 = 0.52.
Isto se justifica pela frmula do erro, pois
|f (n+1) (x)|
|En (0.44)| 0.00268 max .
x[x0 ,x2 ] (n + 1)!
Dada uma tabela de pontos (xk , fk ) e um nmero y [f0 , fn ]. Desejamos achar o valor
de x de tal forma que f (x) = y.
Vamos procurar uma aproximao de x de tal forma que f (x) = 0.9, usando uma interpo-
lao quadrtica na forma de Newton.
Em primeiro lugar devemos determinar em que intervalo pode ocorrer f (x) = 0.9. Neste
exemplo temos duas possibilidades, para x [0.3, 0.4] ou x [0.6, 0.7]. Em segundo lugar
devemos verificar se a funo f (x) admite inversa. Para o primeiro caso temos que a
funo f (x) crescente no intervalo [0.2, 0.5]. Logo esta admite inversa neste intervalo.
No segundo caso a funo admite inversa no intervalo [0.5, 0.8], pois esta decrescente
neste intervalo. Como desejamos uma interpolao quadrtica temos que ter no mnimo
trs pontos e nos dois casos temos quatro pontos. Portanto possvel achar as duas
aproximaes. Vamos nos concentrar no primeiro caso. Montando a tabela da funo
inversa temos
5.6. OBSERVAES FINAIS 69
Portanto o valor de x tal que f (x) = 0.9 aproximado por x = f 1 (0.9) p(0.9) = 0.3315.
1.5
0.5
0.5
1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1
% x=[-1.0,-0.8,-0.6,...,0.6,0.8,1.0]
% Calcula o polinomio e a funcao nos pontos
% xf=[-1.0,-0.98,-0.96,...,0.96,0.98,1.0]
% Compara os graficos e mostra o fenomeno de Runge
%
clear;
xf=-1:0.02:1;
f=1./(1+25 *xf.^2);
x=-1:0.2:1;
fk=1./(1+25 *x.^2);
% Forma de Lagrange
n=size(xf); % pontos onde vamos calcular o polinomio
m=size(x); % pontos de interpolacao
for s=1:n(2)
p(s)=0;
for l=1:m(2)
L=1;
for k=1:l-1
5.7. EXERCCIOS 71
L=L*(xf(s) -x(k))/(x(l)-x(k));
end;
for k=l+1:m(2)
L=L*(xf(s) -x(k))/(x(l)-x(k));
end;
p(s)=p(s)+fk(l)*L;
end;
end;
plot(xf,f,xf,p,:);
print -depsc fig51.eps
5.7 Exerccios
Exerccio 5.1 A tabela abaixo fornece o nmero de habitantes do Brasil (em milhes) de
1900 a 1970.
ano 1900 1920 1940 1950 1960 1970
Hab. 17.4 30.6 41.2 51.9 70.2 93.1
b) Usando interpolao quadrtica na forma de Newton, estime, com o menor erro pos-
svel, em que ano a populao ultrapassou os 50 milhes.
Exerccio 5.3 Considere o problema de interpolao linear para f (x) = sen(x)+x, usando
os pontos x0 e x1 = x0 + h. Mostre que |E1 (x)| h2 /8.
a) Quando possvel, ache uma aproximao para f (0.25) e f (0) , usando o polinmio
interpolador na forma de Newton, com o menor erro possvel.
Exerccio 5.5 Num experimento de laboratrio, uma reao qumica liberou calor de acordo
com as medies mostradas na tabela abaixo
72 CAPTULO 5. INTERPOLAO POLINOMIAL
O objetivo deste captulo estudar esquemas numricos que aproxime a integral definida
de uma funo f (x) num intervalo [a, b]. A integrao numrica aplicada quando a
primitiva da funo no conhecida ou quando s conhecemos a funo f (x) num
conjunto discreto de pontos.
As frmulas de Newton-Ctes so baseadas na estratgia de aproximar a funo
f (x) por um polinmio interpolador e aproximamos a integral pela integral do polinmio.
As aproximaes so do tipo
Z b n
X
f (x)dx A0 f (x0 ) + A1 f (x1 ) + An f (xn ) = Ai f (xi )
a i=0
Desta forma vamos aproximar a integral da funo f (x) pela integral do polinmio, ob-
tendo
Z b Z x1
f (x)dx p1 (x)dx
a x0
73
74 CAPTULO 6. INTEGRAO NUMRICA - FRMULAS DE NEWTON CTES
Z x1
= f (x0 ) + f [x0 , x1 ](x x0 )dx
x0
!
x1 2 x0 2
= f (x0 )(x1 x0 ) + f [x0 , x1 ] x0 (x1 x0 )
2 2
f (x1 ) f (x0 ) (x1 x0 )2
= f (x0 )(x1 x0 ) +
x1 x0 2
(x1 x0 )
= (f (x0 ) + f (x1 ))
2
h
= (f (x0 ) + f (x1 )),
2
onde h = x1 x0 . A frmula acima representa a rea do trapzio que tem f (x1 ) e f (x0 )
como os valores das bases e h como o valor da altura. Na figura 6.1 temos uma repre-
sentao desta aproximao.
f(x)
f(x1)
p(x)
f(x0)
a b
|| ||
x0 x1
Para calcular os pontos crticos da f 00 (x), devemos derivar f 00 (x) e igualar a zero, obtendo,
r
000 3 x2 3
f (x) = (12x 8x )e = 0 x = 0 ou x =
2
Como o nico ponto crtico pertencente ao intervalo x = 0 segue que
max |f 00 ()| = 2
[a,b]
Note que esta estimativa do erro informa que a aproximao obtida no garante a
primeira casa decimal como exata, pois a soluo exata da integral est entre os val-
ores 0.6839397 0.166667. Neste caso devemos usar um procedimento mais preciso, como
descrito na prxima seo.
76 CAPTULO 6. INTEGRAO NUMRICA - FRMULAS DE NEWTON CTES
a b
que
ba
h=e xk = x0 + kh com k = 0, 1, . . . , n
n
Aplicando a Regra do Trapzio em cada subintervalo [xk , xk+1 ] segue que
Z b
h h h h h
f (x)dx (f0 + f1 ) + (f1 + f2 ) + (f2 + f3 ) + + (fn2 + fn1 ) + (fn1 + fn )
a 2 2 2 2 2
h
= [f0 + 2(f1 + f2 + + fn1 ) + fn ]
2
O erro cometido na aproximao igual a soma dos erros cometidos em cada subin-
tervalo, logo temos que o erro da forma
h3
|ET G | n max |f 00 ()|
12 [a,b]
6.4. REGRA DE SIMPSON 1/3 77
2
Exemplo 6.2 Considerando a funo do exemplo anterior, f (x) = ex em [0, 1], vamos
determinar o nmero de subintervalos necessrios para que a Regra do Trapzio Repetida
fornea uma aproximao com pelo menos 3 casas decimais exatas. Para isto devemos
ter que |ET G | 104 , logo
h3
n max |f 00 ()| 104
12 [0,1]
Sendo h = (b a)/n e que o mximo da segunda derivada da funo em [0, 1] 2 (Ver ex.
anterior) segue que
h3 1 1
n max |f 00 ()| 104 n 3 2 104
12 [0,1] n 12
1
6 104
n2
n2 1666.666
n 40.824
Devemos tomar no mnimo n = 41 subintervalos para atingir a preciso desejada. Abaixo
apresentamos o uso da funo trapz.m do MatLab que fornece a aproximao da integral
pela Regra do Trapzio. Usando 41 subintervalos temos a aproximao It = 0.746787657
% Diciplina de Calculo Numerico - Prof. J. E. Castilho
% Exemplo do uso da funcao trapz(x,y)
% Calcula a integral usando a regra do trapezio
% para os pontos
% x=[xo,x1,...,xn]
% f=[fo,f1,...fn]
%
h=1/41;
x=0:h:1;
f=exp(-x.^2);
It=trapz(x,f)
f(x )
0
f(x )
1
f(x2)
a x1 b
|| ||
x0 x2
h5
|ES | max |f (iv) ()|
90 [a,b]
2
Exemplo 6.3 Vamos considerar a funo do exemplo anterior: f (x) = ex no intervalo
[0, 1]. Para usar a Regra de Simpson temos que ter trs pontos. Desta forma tomamos
ba 10 1
h= = =
2 2 2
E com isto segue a aproximao dada por:
Z b
1
f (x)dx (f (0) + 4f (1/2) + f (1)) = 0.74718
a 6
A limitao do erro depende da limitao da quarta derivada da funo no intervalo
[0, 1], sendo:
2
f (iv) (x) = (12 48x2 + 16x4 )ex
6.5. REGRA DE SIMPSON REPETIDA 79
h5
ES = max |f (iv) ()| = 0.00416667
90 [a,b]
Desta forma podemos garantir que as duas primeiras casas decimais esto corretas.
ba
h= e xs = x0 + sh, para s = 0, 1, . . . , n
n
O erro cometido nesta aproximao a soma dos erros em cada subintervalo [xs , xs+2 ] e
como temos n/2 subintervalos segue que:
h5
|ESR | n max |f (iv) ()|.
180 [a,b]
80 CAPTULO 6. INTEGRAO NUMRICA - FRMULAS DE NEWTON CTES
2
Exemplo 6.4 Considerando a integral da funo f (x) = ex , no intervalo [0, 1], vamos
determinar o nmero de subintervalos necessrios para obtermos uma aproximao com
trs casas decimais exatas. Para isto limitamos o erro por |ESR | 104 . Sendo h = (ba)/n
e max[0,1] |f (iv) ()| = 12 segue que
h5 1 12
n max |f (iv) ()| 104 n 5 104
180 [a,b] n 180
1
15 104
n4
n4 666.66666
n 5.0813274
O menor valor de n que garante a preciso n = 6. Note que a Regra de Simpson necessita
de bem menos subintervalos que a Regra do Trapzio (n = 41).
6.7 Exerccios
Exerccio 6.1 Calcule as integrais pela Regra do Trapzio e pela Regra de Simpson us-
ando seis subintervalos. Z 4 Z 0.6
dx
xdx e
1 0 1+x
Exerccio 6.2 Calcule o valor de com trs casas decimais exatas usando a relao
Z 1
dx
=
4 0 1 + x2
6.8. ATIVIDADES NO LABORATRIO 81
Exerccio 6.3 Mostre que se f 0 (x) contnua em [a, b] e que f 00 (x) > 0, x [a, b], ento a
aproximao obtida pela Regra do Trapzio maior que o valor exato da integral.
Z 0.30
Exerccio 6.4 Dada a tabela abaixo, calcule a integral f (x)dx com o menor erro pos-
0.15
x 0.15 0.22 0.26 0.30
svel.
f (x) 1.897 1.514 1.347 1.204
Exerccio 6.5 Considere que f (x) aproximada pelo polinmio de grau 3 e determine a
regra de integrao, aproximando a integral da funo pela integral do polinmio. Ache a
frmula do erro.
Exerccio 6.6 Baseado na Regra de Simpson, determine uma regra de integrao para a
integral dupla
Z bZ d
f (x, y)dx dy
a c
Aplique a regra para calcular uma aproximao para
Z 1Z 1
x2 + y 2 dx dy
0 0
Muitos dos modelos matemticos nas reas de mecnica dos fluidos, fluxo de calor, vi-
braes, so representados por equaes diferenciais. Em muitos casos, a teoria garante
a existncia e unicidade da soluo, porm nem sempre podemos obter a forma analtica
desta soluo.
Neste captulo vamos nos concentrar em analisar esquemas numricos para soluo
de Problemas de Valor Inicial (P.V.I.), para equaes diferenciais de primeira ordem. Isto
, achar a funo y(x) tal que (
y 0 = f (x, y)
y(x0 ) = y0
83
84 CAPTULO 7. EQUAES DIFERENCIAIS ORDINRIAS
y0
y1
y3 y5
y2
y
4
| | | | | |
x x x x x x
0 1 2 3 4 5
Neste caso temos que x0 = 0 e y0 = 1. Vamos usar o Mtodo de Euler para obter uma
aproximao para y(0.5), usando h = 0.1. Desta forma temos
A soluo analtica do P.V.I. dada por y(x) = (5e2x + 2x 1)/4. No grfico abaixo com-
paramos a soluo exata com os valores calculados pelo Mtodo de Euler. Note que em
cada valor calculado o erro aumenta. Isto se deve porque cometemos um erro local na
aproximao da derivada por (7.1) e este erro vai se acumulando a cada valor calculado.
Na prxima seo daremos uma forma geral do erro local.
Figura 7.2: Comparao da soluo exata (linha - ) com a aproximada (pontos o).
d
y 00 (xk ) = f (xk , yk )
dx
= fx + fy y 0
= fx + fy f
y (xk ) = fy (fx + fy f ) + f 2 fyy + 2f fxy + fxx
000
Desta forma podemos obter uma aproximao para o clculo do P.V.I., substituindo as
relaes do tipo acima na srie de Taylor. Os mtodos podem ser classificados de acordo
com o termo de maior ordem que usamos na srie de Taylor, sendo
Definio 7.1 Dizemos que um mtodo para a soluo de P.V.I. de ordem n se este coin-
cide com a srie de Taylor at o n-simo termo. O erro local cometido por esta aproximao
ser da forma
y (n+1) () n+1
Eloc (xk+1 ) = h [xk , xk+1 ]
(n + 1)!
Como exemplo temos que o Mtodo de Euler um mtodo de 1o ordem, pois este
coincide com a srie de Taylor at o primeiro termo, logo o erro local dado por
00
y () 2
Eloc (xk+1 ) = h [xk , xk+1 ]
2!
Em geral, podemos determinar a ordem de um mtodo pela frmula do erro. Se o erro
depende da n-sima potncia de h dizemos que o mtodo de ordem n1. Quanto menor
for o valor de h menor ser o erro local.
Exemplo 7.2 Vamos utilizar o mtodo de 2o ordem para aproximar y(0.5), usando h = 0.1,
para o P.V.I. (
y 0 = x 2y
y(0) = 1
Neste caso temos que f (x, y) = x 2y, logo segue que
y 00 = fx + fy f = 1 2(x 2y)
y 0 (xk ) y 00 (xk ) 2
y(xk+1 ) = y(xk ) + h+ h
1! 2!
h2
= y(xk ) + h(xk 2y(xk )) + (1 2xk + 4y(xk ))
2
7.3. MTODOS DE RUNGE-KUTTA 87
h2
yk+1 = yk + h(xk 2yk ) + (1 2xk + 4yk )
2
Sendo x0 = 0 e y0 = 1 obtemos que
h2
y1 = y0 + h(x0 2y0 ) + (1 2x0 + 4y0 )
2
0.12
= 1 + 0.1(0 2 1) + (1 2 0 + 4 1) = 0.825
2
h2
y2 = y1 + h(x1 2y1 ) + (1 2x1 + 4y1 )
2
0.12
= 0.825 + 0.1(0.1 2 0.825) + (1 2 0.1 + 4 0.825) = 0.6905
2
h2
y3 = y2 + h(x2 2y2 ) + (1 2x2 + 4y2 )
2
0.12
= 0.6905 + 0.1(0.2 2 0.6905) + (1 2 0.2 + 4 0.6905) = 0.58921
2
h2
y4 = y3 + h(x3 2y3 ) + (1 2x3 + 4y3 )
2
0.12
= 0.58921 + 0.1(0.3 2 0.58921) + (1 2 0.3 + 4 0.58921) = 0.515152
2
h2
y5 = y4 + h(x4 2y4 ) + (1 2x4 + 4y4 )
2
0.12
= 0.515152 + 0.1(0.4 2 0.515152) + (1 2 0.4 + 4 0.515152) = 0.463425
2
O grfico na Figura 7.3 compara os resultados obtidos por este mtodo, com os resulta-
dos obtidos pelo mtodo de Euler.
Os resultados obtidos pelo mtodo de 2o ordem so mais precisos. Quanto maior
a ordem do mtodo melhor ser a aproximao. A dificuldade em se tomar mtodos de
alta ordem o clculo da relao de y (n+1) (x) = [f (x, y)](n) .
Montamos a reta L2 com coeficiente angular dado por f (xn+1 , yen+1 ) = f (xn , yn + hy 0 ) e
passa pelo ponto P ( Ver figura 7.4-b ).
Montamos a reta L0 que passa por P e tem como coeficiente angular a mdia dos coe-
ficientes angular de L1 e L2 (Ver figura 7.4-c). Finalmente a reta que passa pelo ponto
(xn , yn ) e paralela a reta L0 tem a forma
1
L(x) = yn + (x xn ) (f (xn , yn ) + f (xn+1 , yn + hyn0 ))
2
Calculando no ponto xn+1 temos
1
yn+1 = yn + h (f (xn , yn ) + f (xn+1 , yn + hyn0 ))
2
Podemos observar que o valor de yn+1 (Ver figura 7.4-d) est mais prximo do valor exato
que o valor de yen+1 . Este esquema numrico chamado de mtodo de Euler Melhorado,
onde uma estimativa do erro local dado por
h3
|Eloc (xn )| max |y 000 ()|
6 [xn ,xn+1 ]
L1
P
ye ye
n+1 n+1 L
2
yn yn
xn xn+1 xn xn+1
L1 L1
P P
yen+1 yen+1 L2
L2
yn+1
L0 L0
yn yn
xn xn+1 xn xn+1
funo f (x, y) e calculando no ponto (xn+1 , yn + hyn0 ). A expresso encontrada deve con-
cordar com a Srie de Taylor at a segunda ordem. Em geral um mtodo de Runge-Kutta
de segunda ordem dado por
onde
a1 + a2 = 1
2 1 a b = 1/2 [eq7:06] (7.3)
a b = 1/2
2 2
90 CAPTULO 7. EQUAES DIFERENCIAIS ORDINRIAS
R-K 3o
ordem:
2 1 4
yn+1 = yn + K1 + K2 + K3
9 3 9
K1 = hf (xn , yn )
K2 = hf (xn + h/2, yn + K1 /2)
K3 = hf (xn + 3h/4, yn + 3K2 /4)
R-K 4o
ordem:
1
yn+1 = yn + (K1 + 2K2 + 2K3 + K4 )
6
K1 = hf (xn , yn )
K2 = hf (xn + h/2, yn + K1 /2)
K3 = hf (xn + h/2, yn + K2 /2)
K4 = hf (xn + h, yn + K3 )
h
yn+1 = yn + (3fn fn1 )
2
Este mtodo um mtodo explcito, de passo dois. Isto significa que yn+1 depende de
yn e yn1 . Logo necessitamos de dois valores para iniciar o mtodo: y0 que dado no
P.V.I.; y1 que deve ser obtido por um mtodo de passo simples. De uma forma geral, os
mtodos de k-passos necessitam de k-valores iniciais que so obtidos por mtodos de
passo simples, de ordem igual ou superior a ordem do mtodo utilizado.
Obtemos o mtodo, aproximando a funo pelo polinmio interpolador de grau um.
Assim o erro local, cometido por esta aproximao ser
Z xn+1 Z xn+1
f 00 (, y())
E1 (x)dx = (x xn1 )(x xn ) dx
xn xn 2!
5 000
= h3 y () [xn , xn+1 ]
12
Com isto temos a seguinte estimativa para o erro local
5
|Eloc (xn+1 )| h3 max |y 000 ()|
12 [xn ,xn+1 ]
Vamos achar uma aproximao para y(1.1) pelo Mtodo de Adams-Bashforth explcito , de
passo dois, usando h = 0.2.
Do P.V.I segue que y0 = 1 e x0 = 0.5. Este um mtodo de passo dois e vamos ter
que calcular y1 por um mtodo de passo simples que tenha ordem igual ou superior ao do
Mtodo de Adams-Bashforth. Como o erro local depende de h3 temos que este mtodo
de 2o ordem. Assim vamos utilizar o mtodo de Euler Melhorado, que um mtodo de 2o
ordem.
h
y1 = y0 + (f (x0 , y0 ) + f (x1 , y0 + hy00 ))
2
0.2
= 1+ (2 0.5 1 + (2) 0.7 (1 + 0.2 (2 0.5 1))) = 0.788 y(0.7)
2
Tendo o valor de y0 e y1 podemos iniciar o Mtodo de Adams-Bashforth, sendo
h
y2 = y1 + (3f1 2f0 )
2
0.2
= 0.788 + (3 (2) (0.7) 0.788 2 (2) 0.5 1) = 0.65704 y(0.9)
2
h
y3 = y2 + (3f2 2f1 )
2
0.2
= 0.65704 + (3 (2) (0.9) 0.65704 2 (2) 0.7 0.788) = 0.52287 y(1.1)
2
Se tivssemos aproximado a funo f (x, y) por um polinmio de grau 3, sobre os
pontos (xn , fn ), (xn1 , fn1 ), (xn2 , fn2 ), (xn3 , fn3 ) obteramos o mtodo de passo 4 e or-
dem 4 dado por
h 251 (v)
yn+1 = yn + [55fn 59fn1 + 37fn2 9fn3 ] Eloc (xn+1 ) = h5 y () com [xn , xn+1 ]
24 720
Neste caso necessitamos de quatro valores iniciais, y0 , y1 , y2 e y3 , que deve ser calculados
por um mtodo de passo simples de ordem maior ou igual a quatro (Ex. Runge-Kutta de
4o ordem).
fn+1 fn 1
= hfn + xn+1 2 2xn xn+1 + xn 2
h 2
fn+1 fn 1
= hfn + (xn+1 xn )2
h 2
h
= (fn + fn+1 )
2
Substituindo a aproximao da integral em (7.5) obtemos o seguinte mtodo
h
yn+1 = yn + (fn + fn+1 )
2
O erro local, cometido por esta aproximao ser
Z xn+1 Z xn+1
f 00 (, y())
E1 (x)dx = (x xn+1 )(x xn ) dx
xn xn 2!
1 000
= h3 y () [xn , xn+1 ]
12
Note que o clculo de yn+1 depende de fn+1 = f (xn , yn+1 ). Em geral a f (x, y) no
permite que isolemos yn+1 . Desta forma temos que usar um esquema Preditor-Corretor.
Por um mtodo explcito encontramos uma primeira aproximao para yn+1 (Preditor) e
este valor ser corrigido por intermdio do mtodo implcito (Corretor).
Usando h = 0.1 vamos achar uma aproximao para y(0.2), usando o esquema
P : yn+1 = yn + hf (xn , yn )
h
C : yn+1 = yn + (fn + fn+1 )
2
Sendo x0 = 0 e y0 = 1 temos
de primeira ordem e assim poderemos aplicar qualquer um dos mtodos analisados nas
sees anteriores. Como exemplo vamos considerar o problema de terceira ordem dado
por
000 2 2 0 00
y = x + y y 2y x
y(0) = 1
y 0 (0) = 2
00
y (0) = 3
Para transformar num sistema de primeira ordem devemos usar variveis auxiliares.
Fazemos y 0 = w y 00 = w0 e fazemos y 00 = w0 = z y 000 = w00 = z 0 . Com isto a equao
acima pode ser representada por:
0
y =w
w0 = z
z 0 = x2 + y 2 w 2zx
y(0) = 1
w(0) = 2
z(0) = 3
O sistema acima pode ser escrito na forma matricial, onde
y0 0 1 0 y 0
0
w = 0 0 1 w + 0
z 0 y 1 2x z x2
| {z } | {z } | {z } | {z }
Y0 A Y X
Yn+1 = Yn + h(An Yn + Xn )
ou seja
yn+1 yn 0 1 0 yn 0
wn+1 = wn + h 0 0 1 wn + 0
zn+1 zn yn 1 2xn zn xn 2
Tomando h = 0.1, vamos calcular uma aproximao para y(0.2). O clculo de Y1 Y (0.1)
segue que
y1 y0 0 1 0 y0 0
w1 = w0 + h 0 0 1 w0 + 0
z1 z0 y0 1 2x0 z0 x0 2
y1 1 0 1 0 1 0 1.2
w1 = 2 + 0.1 0 0 1 2 + 0 = 2.3
z1 3 1 1 2 0 3 02 2.9
7.6. EXERCCIOS 95
7.6 Exerccios
Exerccio 7.1 Dado o P.V.I. (
y0 = x y
y(1) = 2.2
Exerccio 7.2 O esquema numrico abaixo representa um mtodo para soluo de E.D.O.
h 251 (5)
yn+1 = yn + [9fn+1 + 19fn 5fn1 + fn2 ] com Eloc (xn+1 ) = h5 y ()
24 720
Classifique o mtodo de acordo com o nmero de passos, se este implcito ou explcito, a
ordem do mtodo, procurando sempre dar justificativas as suas respostas.
b) Comparando com a soluo exata do problema, voc esperaria que o erro tivesse
sempre o mesmo sinal? Justifique.
a) Ache as aproximaes, para y(x) no intervalo [0, 2], usando h = 0.2 e o esquema
numrico baixo
b) Sabendo que a soluo exata dada por y(x) = (5e2x + 2x 1)/4, plote (novo verbo?)
um grfico com os valores obtidos pelo esquema Preditor e pelo esquema Corretor.
Compare os resultados.
Exerccio 7.6 Determine uma aproximao para y(1) utilizando o mtodo de Euler com
h = 0.1, para o P.V.I. abaixo. (
y 00 3y 0 + 2y = 0
y(0) = 1y 0 (0) = 0
97