Você está na página 1de 99

UNIVERSIDADE FEDERAL DE UBERLNDIA

FACULDADE DE MATEMTICA
CLCULO NUMRICO
PROF. JOS EDUARDO CASTILHO
AGOSTO DE 2003
Sumrio
1 Introduo 1
2 Zeros de Funes 11
3 Sistemas Lineares 27
4 Ajuste de Curvas: Mtodo dos Mnimos Quadrados 49
5 Interpolao Polinomial 61
6 Integrao Numrica - Frmulas de Newton Ctes 73
7 Equaes Diferenciais Ordinrias 83
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 eciente 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) = lim
h0
f( x +h) f( x)
h
.
Um esquema numrico para aproximar a derivada dado por tomar h pequeno e cal-
cular
f

( x)
f( x +h) f( x)
h
. (1.1)
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 utuante com um nmero nito de dgito. Logo os nmeros
que tem representao innita (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

k=0
a
k
N
,=
1
N
n

k=0
a
k
,
1
2 CAPTULO 1. INTRODUO
onde estamos considerando que no primeiro somatrio para cada k fazemos a
k
/N e
depois somamos e no segundo somatrio somamos todos os a
k
e o resultado da soma
dividimos por N. Do ponto de matemtico, as duas expresses so equivalentes, mas a
segunda forma apresenta melhor resultado do ponto de vista computacional, pois realiza
menos operaes e comete menos erro de truncamento. Outro exemplo interessante
que em aritmtica computacional possvel que para um dado A exista um ,= 0 tal que
A+ = A.
Analiticamente a expresso acima verdadeira se e somente se = 0. O chamado epsilon
da mquina o valor de quando A = 1.
Outro fator que pode inuenciar no resultado o tipo de mquina em que esta-
mos trabalhando. Numa calculadora simples que represente os nmeros com 7 dgito
teramos
1/3 + 1/3 + 1/3 = 0.9999999
Enquanto que calculadoras mais avanadas teramos como resposta um falso 1, pois
na realidade, internamente estas calculadoras trabalham com mais dgito do que ap-
resentado no visor e antes do resultado ser apresentado este arredondado.
Os esquemas numricos so classicados como esquemas diretos e esquemas iter-
ativos. Os esquemas diretos so aqueles que fornecem a soluo aps um nmero nito
de passos. Por exemplo o esquema que apresentamos para o clculo da derivada. Os es-
quemas iterativos so aqueles que repetem um nmero de passos at que um critrio de
parada seja satisfeito. Como exemplo considere o algoritmo que usado para determinar
o epsilon da mquina
Algoritmo: Epsilon da Mquina
Ep 1
Enquanto (1 +Ep) > 1, faa:
Ep Ep/2
m enquanto
OutPut: 2Ep
O critrio de parada a condio de execuo do lao Enquanto e cada execuo do
lao chamamos de iterao. Para mquinas diferentes teremos resultados diferentes.
Um outro fator que pode inuenciar nos resultados a linguagem de programao
usada na implementao dos algoritmos (Pascal, Fortran, C++, , etc). Diferentes lingua-
gens podem apresentar diferentes resultados. E mesmo quando usamos uma mesma
linguagem, mas compiladores diferentes (Ex. C++ da Borland e C++ da Microsoft), os
resultados podem apresentar diferenas.
Para exemplicar os esquemas numricos, que estudaremos nos prximos captulo,
usaremos o software Octave-Gnu , pela sua facilidade de programao. Todo o material
desta apostila baseado nas referencias: [1] e [2].
1.1. O OCTAVE 3
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 grca e programao, num ambiente de fcil
uso, o Octave-Gnu torna-se uma ferramenta eciente 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 exemplicar 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.
1.1.1 Clculo na Janela de Comandos
Um clculo simples pode ser executado na janela de comandos digitando as instrues
no prompt como voc faria numa calculadora. Por exemplo
>> 3*4 +5
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
Tabela 1.1: Operadores Aritmticos
Operao Smbolo
Adio a +b
Multiplicao a b
Subtrao a b
Diviso a/b ou ba
Potenciao ab
[tab1]
O nome da varivel pode consistir de no mximo 31 caracteres, iniciando sempre por
um caracter alfa seguido de qualquer combinao de caracteres do tipo alfa , numrico e
underscores. Ex. resultado_da_soma_2. Ao contrrio de outras linguagens, o Octave-
Gnu diferencia as variveis que usam letras minsculas e maisculas. Isto as variveis
Contas, contas, conTas e CoNtAs, so consideradas como quatro variveis diferentes.
Todas as variveis so armazenadas internamente e podem ser usadas a qualquer mo-
mento. Para saber quais as variveis que esto ativas utilizamos o comando who. Para
eliminar a varivel conta, usamos o comando clear conta. As variveis so tratadas
como matrizes, apesar dos escalares no serem apresentados na notao matricial. Um
vetor linha pode ser denido como
>> x=[1 2 3 4]
x =
1 2 3 4
Tambm podemos separar os elementos por vrgula. J um vetor coluna pode ser
denido da seguinte forma
>> y=[5; 6; 7; 8]
y =
5
6
7
8
Um exemplo de uma matriz 3 4.
>> a=[1 2 3 4; 5 6 7 8; 9 10 11 12]
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 a
ij
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
denido pela linha de comando
EDU>> v=-2:0.5:3
v =
Columns 1 through 7
-2.0000 -1.5000 -1.0000 -0.5000 0 0.5000 1.0000
Columns 8 through 11
1.5000 2.0000 2.5000 3.0000
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
Matriz n m formada por 1s:
>> A=ones(2,3)
A =
1 1 1
1 1 1
Matriz Nula de ordem n m:
>> B=zeros(3,4)
B =
0 0 0 0
0 0 0 0
0 0 0 0
6 CAPTULO 1. INTRODUO
Operaes com Matrizes e Vetores
As operaes de subtrao,adio e multiplicao entre matrizes so denidas com
os smbolos usuais (, + e ). O smbolo da diviso representa o clculo da multiplicao
pela inversa da matriz, por exemplo
>> A=[1 2 1;3 2 4;5 3 2];
>> A/A
ans =
1 0 0
0 1 0
0 0 1
Note que neste exemplo terminamos o comando que dene 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.
Tabela 1.2: Operaes Elementares entre Vetores
Operao Smbolo Resultado
Adio a+b [a
1
+b
1
, a
2
+b
2
, a
3
+b
3
, . . . , a
n
+b
n
]
Subtrao a-b [a
1
b
1
, a
2
b
2
, a
3
b
3
, . . . , a
n
b
n
]
Multiplicao a.*b [a
1
b
1
, a
2
b
2
, a
3
b
3
, . . . , a
n
b
n
]
Diviso a./b [a
1
/b
1
, a
2
/b
2
, a
3
/b
3
, . . . , a
n
/b
n
]
Potenciao a.b [a
1
b
1
, a
2
b
2
, a
3
b
3
, . . . , a
n
b
n
]
[tab2]
Como na maioria das linguagens de programao, o Octave-Gnu oferece diversas
funes elementares que so importantes em matemtica. A Tabela 1.3 apresenta uma
lista destas funes e sua sintaxe.
Grcos
Para plotar um grco 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
Tabela 1.3: Funes Elementares
Funo Sintaxe
Valor Absoluto abs(x)
Arco Co-seno acos(x)
Arco Seno asin(x)
Co-seno cos(x)
Exponencial e
x
exp(x)
Logaritmo Natural log(x)
Logaritmo base 10 log10(x)
Seno sin(x)
Raiz Quadrada sqrt(x)
Tangente tan(x)
[tab3]
pontos. O grco gerado pelo comando plot(x,f). Se desejamos gerar o grco da
funo sen(x) no intervalo [, ] devemos proceder da seguinte forma:
EDU>> x=-pi:0.01:pi;
EDU>> f=sin(x);
EDU>> plot(x,f)
Note, que na denio do vetor x, usamos o passo igual a 0.01. Isto determina a quanti-
dade de pontos que o comando plot usa par gerar o grco. Quanto mais pontos mais
perfeito ser o grco (em contra partida maior o tempo de execuo). se tivssemos
usado o passo 0.5 no teramos um grco de boa qualidade.
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 denidas, como variveis globais, enquanto as
functions trata as variveis como variveis locais. Desta forma a functions tem que ter
um valor de retorno.
Scripts
Os scripts permite que um conjunto de comandos e denies sejam executados
por intermdio de um nico comando, o nome do arquivo M. Como exemplo, o script
seguinte calcula a aproximao da derivada de sen(x) usando diferenas nitas.
% Aproximacao da derivada do seno
% Usando o operardor de diferen\c{c}a finita progressiva.
clear;
h=0.0001;
8 CAPTULO 1. INTRODUO
x=input(Entre com o valor de, x=); % Atribui Valores a x
disp(O valor da aproximacao eh...) % Mostra mensagem no monitor
dsen=(sin(x+h)-sin(x))/h
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
Numa funo emOctave-Gnu a primeira linha da forma function y=nome(argumentos).
A funo troca informaes com o MatLab workspace por intermdio da varivel y e dos
argumentos. Para ilustrar o uso de funes em Octave-Gnu considere o seguinte cdigo
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 xo 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
O controle de uxo um recurso que permite que resultados anteriores inuenciem
operaes futuras. Como em outras linguagens, o Octave-Gnu possui recursos que
permitem o controle de uxo de execuo de comandos, com base em estruturas de
tomada de decises. Apresentamos as estrutura de loops for, loops while e if-else-end.
A forma geral do loop for
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
EDU>> for n=1:5
x(n) = cos(n*pi/2);
end
EDU>> x
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 xo 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 10
6
.
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
1.2 Atividades de Laboratrio
Problema 1.1 Usando o esquema numrico para a aproximao da derivada dado abaixo
ache uma aproximao para f

(), onde f(x) = sen(x) e tome h = 0.1, 0.01, 0.001, . . . 10


10
.
Repita os clculos para f

(0). Comente os resultados.


f

( x)
f( x +h) f( x)
h
Problema 1.2 Calcule a preciso de sua mquina usando o algoritmo
Algoritmo: Epsilon da Mquina
Input: A : nmero que represente a grandeza
Ep 1
Enquanto (A+Ep) > 1, faa:
Ep Ep/2
m enquanto
Output: Imprimir 2Ep
tomando A = 1, 10, 100, 1000. Comente os resultados.
Problema 1.3 Considere a funo iterativa
x
n+1
= x
2
n
+ 1/4
Faa um programa em Octave-Gnu que calcule a seqncia x
1
, x
2
, . . . , x
100
, considerando
os casos em que x
1
= 0.47 e x
2
= 0.59. Comente os resultados.
Problema 1.4 O clculo aproximado da funo f(x) = e
x
, pode ser obtido pela sua Srie
de Taylor em torno de zero, dada por
e
x
= 1 +
x
1!
+
x
2
2!
+
x
3
3!
+
x
4
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 Renamento - Partindo de uma aproximao inicial renamos a soluo at que
certos critrios sejam satisfeitos.
2.1 Isolamento das Razes
Um nmero x que satisfaz a equao f(x) = 0 chamado de raiz ou zero de f. O
objetivo encontrar um intervalo [a, b], de pequena amplitude ( b a 1), que contenha
a raiz que desejamos encontrar. Para isto usaremos duas estratgias: Anlise Grca e
Tabelamento da funo.
A anlise grca baseada na idia de que, a partir da equao f(x) = 0, podemos
obter uma equao equivalente g(x) h(x) = 0, onde g e h so funes mais simples e de
fcil anlise grca. Esboando o grco de g e h podemos determinar os pontos x, onde
as curvas se interceptam, pois estes pontos sero as razes de f(x) ( g() = h() f() = 0
).
Exemplo 2.1 Sendo f(x) = e
x
x temos f(x) = g(x)h(x), onde g(x) = e
x
e h(x) = x. Na
Figura 2.1 temos que as curvas se interceptam no intervalo [0, 1]. Tambm podemos obser-
var que pelo comportamento das funes g(x) e h(x) estas funes no vo se interceptar
em nenhum outro ponto. Logo f(x) admite uma nica raiz.
Na prtica usamos algum software matemtico para esboar os grcos. Quanto
menor for a amplitude do intervalo que contm a raiz, mais eciente ser a Fase de
11
12 CAPTULO 2. ZEROS DE FUNES
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
h(x)

g(x)
Figura 2.1: Grcos de g(x) e h(x)
Renamento. Para obtermos um intervalo de menor amplitude usaremos a estratgia do
tabelamento que baseada no seguinte Teorema.
Teorema 2.1 Seja f(x) uma funo contnua num intervalo [a, b]. Se f(a)f(b) < 0 ento
existe pelo menos uma raiz [a, b]. [tc1]
Prova: Um bom exerccio de Clculo I.
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

(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 armar nada
sobre a existncia ou no de razes.
Exemplo 2.2 Da anlise grca vimos que a funo f(x) = e
x
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

(x) = e
x
1 < 0 x I R, isto f

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-
ca. 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
0 0.5 1 1.5 2 2.5 3
4
3
2
1
0
1
2
3
4

|
a
b
f

(x) preserva sinal


0 0.5 1 1.5 2 2.5 3
3
2
1
0
1
2
3

1
|

2
|

3
|
a
b
f

(x) muda de sinal


0 0.5 1 1.5 2 2.5 3
3
2
1
0
1
2
3
4

1
|

2
|
a
b
f

(x) muda de sinal


0 0.5 1 1.5 2 2.5 3
0
0.5
1
1.5
2
2.5

|
a b
f(a)f(b) > 0
Figura 2.2: Exemplos do comportamento de f(x)
14 CAPTULO 2. ZEROS DE FUNES
2.2 Renamento
Nas prximas sees estudaremos os esquemas numricos que partindo de uma aproxi-
mao inicial x
0
, vo gerar uma seqncia x
k
que converge para a raiz procurada, isto
x
k
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).
2.3 Mtodo da Bisseco
Este mtodo baseado no Teorema 2.1. Seja f(x) uma funo contnua no intervalo
[a, b] tal que f(a)f(b) < 0 e seja > 0 um nmero dado. A idia reduzir a amplitude
do intervalo at atingir a preciso requerida: b a < , usando diviso sucessivas do
intervalo.
O mtodo procede da seguinte forma: faa [a
0
, b
0
] = [a, b] e calcule
x
0
=
a
0
+b
0
2

_

_
f(a
0
) < 0
f(b
0
) > 0
f(x
0
) > 0

_
(a
0
, x
0
)
a
1
= a
0
b
1
= x
0
Com isto obtemos um novo intervalo [a
1
, b
1
], de tal forma que a raz pertence ao inter-
valo e sua amplitude igual a amplitude do intervalo [a
0
, b
0
] dividida por dois. Este
procedimento pode ser repetido, calculando
x
1
=
a
1
+b
1
2

_

_
f(a
1
) < 0
f(b
1
) > 0
f(x
1
) < 0

_
(x
1
, b
1
)
a
2
= x
1
b
2
= b
1
x
2
=
a
2
+b
2
2

_

_
f(a
2
) < 0
f(b
2
) > 0
f(x
2
) < 0

_
(x
2
, b
2
)
a
3
= x
2
b
3
= b
2
E assim vamos calculando a seqncia x
k
at que seja satisfeito o critrio de parada
b
k
a
k
< .
Este critrio garante se tomarmos x [a
k
, b
k
] o erro menor que , isto
[ x [ b
k
a
k
<
Na Figura 2.3 temos a representao deste procedimento. Observe que os termos da
seqncia x
k
vo se aproximando da raz , conforme o valor de k aumenta. Em
seguida apresentamos a listagem do mtodo implementado como funo do MatLab.
% Disciplina de C\{a}lculo Num\{e}rico - Prof. J. E. Castilho
% M\{e}todo da Bisseccao
% Calcula uma aproxima\c{c}\~{a}o para uma raiz de fun\c{c}\~{a}o f(x)
2.3. MTODO DA BISSECO 15
a
0
||
a
1
x
1
||
a
2
x
2
||
a
3
|

b
0
x
0
||
||
b
2
||
b
3
b
1
Figura 2.3: Mtodo da Bisseco
% definida no arquivo f.m, onde esta raiz pertence ao
% intervalo [ao,bo] e a precis\~{a}o dado por Ep.
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;
2.3.1 Estudo da Convergncia
A convergncia bastante intuitiva, como podemos ver na Figura 2.3. Vamos dar uma
demonstrao analtica atravs do seguinte teorema:
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 x
k
que converge para a raiz quando k .
16 CAPTULO 2. ZEROS DE FUNES
Prova: O mtodo gera trs seqncias:
a
k
: Seqncia no decrescente e limitada superiormente por b
0
. Logo
a
0
a
1
< b
0
M IR tal que lim
k
a
k
= M
b
k
: Seqncia no crescente e limitada inferiormente por a
0
. Logo
b
0
b
1
> a
0
m IR tal que lim
k
b
k
= m
x
k
: Por construo temos que
x
k
=
a
k
+b
k
2
a
k
< x
k
< b
k
k IN [ec1] (2.1)
A amplitude de cada intervalo gerado metade da amplitude do intervalo anterior, assim
temos,
b
k
a
k
=
b
0
a
0
2
k
.
Calculando o limite quando k temos
lim
k
(b
k
a
k
) = lim
k
b
0
a
0
2
k
= 0
Isto segue que
lim
k
b
k
lim
k
a
k
= 0 M m = 0 M = m.
Usando este fato e calculando o limite em (2.1) temos
m = lim
k
a
k
lim
k
x
k
lim
k
b
k
= m lim
k
x
k
= m.
Falta mostrar que m raiz de f, isto f(m) = 0. Em cada iterao o intervalo
escolhido de tal forma que f(a
k
)f(b
k
) < 0. Como f contnua segue que
0 lim
k
f(a
k
)f(b
k
) = lim
k
f(a
k
) lim
k
f(b
k
) = f
_
lim
k
a
k
_
f
_
lim
k
b
k
_
= f
2
(m) 0
Portanto f(m) = 0
2.3.2 Estimativa do Nmero de Iteraes
Pelo critrio de parada podemos observar que o nmero de iteraes depende do intervalo
inicial [a
0
, b
0
] e da preciso requerida . Dada uma preciso temos,
b
k
a
k
<
b
0
a
0
2
k
< 2
k
>
b
0
a
0

Como estes valores so sempre positivos, podemos aplicar a funo logaritmo, obtendo,
k >
log(b
0
a
0
) log()
log(2)
2.4. MTODO ITERATIVO LINEAR (M.I.L.) 17
Exemplo 2.3 No exemplo 2.2 isolamos uma raiz de f(x) = e
x
x no intervalo [0.5, 0.75].
Usando a preciso = 10
8
, temos
k >
log(0.75 0.5) log(10
8
)
log(2)
= 24.575.
Logo ser necessrio no mnimo 25 iteraes para que o mtodo da Bisseco possa atingir
a preciso desejada.
2.4 Mtodo Iterativo Linear (M.I.L.)
Seja f(x) contnua em [a, b], onde existe uma raiz da equao f(x) = 0. A estratgia deste
mtodo escrever a funo f de tal forma que f(x) = x (x). Se f() = 0, ento
() = 0 x = (x)
Isto , encontrar as razes de f(x) equivalente a achar os pontos xo da funo (x).
Atravs da equao acima montamos um processo iterativo, onde, dado x
0
x
n+1
= (x
n
), n = 1, 2, . . .
A funo chamada de funo de iterao e esta no determinada de forma nica.
As condies de convergncia so dadas no teorema abaixo.
Teorema 2.3 Seja uma raiz da funo f isolada no intervalo [a, b]. Seja uma funo
de iterao da funo f que satisfaz:
1) e

so contnuas em [a, b],


2) [

(x)[ M < 1 x [a, b],


3) x
0
[a, b].
Ento a seqncia x
k
gerada pelo processo iterativo x
n+1
= (x
n
) converge para .
Prova: Sendo uma raiz ento f() = 0 = (), logo
x
n+1
= (x
n
) x
n+1
= (x
n
) ().
Como contnua e diferencivel, pelo Teorema do Valor Mdio temos que existe c
n
pertencente ao intervalo entre x
n
e tal que
(x
n
) () =

(c
n
)(x
n
)
Logo
[x
n+1
[ = [

(c
n
)[ [x
n
[ M[x
n
[
Aplicando esta relao para n 1, n 2, , 0 e usando o fato que x
0
[a, b] temos
[x
n+1
[ M
n+1
[x
0
[
18 CAPTULO 2. ZEROS DE FUNES
Como M < 1, aplicando o limite para n segue que
0 lim
n
[x
n+1
[ lim
n
M
n+1
[x
0
[ = 0
Logo
lim
n
x
n+1
=
Observamos que quanto menor for o valor de [

(x)[ mais rpida ser a convergncia.


Exemplo 2.4 Consideremos a funo f(x) = e
x
x, onde existe uma raiz [0.5, 0, 75].
Uma forma de escrever f(x) = x (x) considerar (x) = e
x
. Vericando as condies
de convergncia temos:
1) As funes (x) = e
x
e

(x) = e
x
so contnuas em [0.5, 0.75].
2) A funo

satisfaz
max
x[0.5,0.75]
[

(x)[ = 0.6065... < 1 (Por que? Ver Nota 1)


3) Tomando x
0
[0.5, 0.75] teremos garantia de convergncia, por exemplo podemos
tomar x
0
como o ponto mdio do intervalo
x
0
=
0.5 + 0.75
2
= 0.625
Assim temos que
x
1
= (x
0
) = (0.625) = 0.53526...
x
2
= (x
1
) = (0.53526) = 0.58551...
x
3
= (x
2
) = (0.58551) = 0.55681...
x
4
= (x
3
) = (0.55681) = 0.57302...
x
5
= (x
4
) = (0.57302) = 0.56381...
x
6
= (x
5
) = (0.56381) = 0.56903...
.
.
.
.
.
.
.
.
.
Na Figura 2.4 podemos ver que o comportamento do processo iterativo converge para a
raiz.
2.4.1 Critrio de Parada
Uma questo ainda est em aberto. Qual o x
n
que fornece uma aproximao para a raiz,
com uma certa preciso dada. Neste caso podemos usar como critrio de parada uma
das seguintes condies
[x
n+1
x
n
[ (Erro Absoluto)
[x
n+1
x
n
[
[x
n+1
[
(Erro Relativo)
2.5. MTODO DE NEWTON-RAPHSON (M.N.R) 19
0.4 0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.8
0.4
0.45
0.5
0.55
0.6
0.65
0.7
0.75
0.8
x
e
x
x
0
x
1
x
2
Figura 2.4: Mtodo Iterativo Linear
e vamos tomar x
n+1
como aproximao para a raiz. Se no exemplo anterior tivssemos
escolhido = 0.006 e o Erro Absoluto teramos
[x
1
x
0
[ = [0.53526 0.625[ = 0.08974 >
[x
2
x
1
[ = [0.58551 0.53526[ = 0.05025 >
[x
3
x
2
[ = [0.55681 0.58551[ = 0.02870 >
[x
4
x
3
[ = [0.57302 0.55681[ = 0.01621 >
[x
5
x
4
[ = [0.56381 0.57302[ = 0.00921 >
[x
6
x
5
[ = [0.56903 0.56381[ = 0.00522 <
Logo a aproximao para a raiz seria x
6
= 0.56903.
2.5 Mtodo de Newton-Raphson (M.N.R)
No mtodo anterior, vimos que quanto menor for [

(x)[ mais rpida ser a convergncia.


O mtodo de Newton-Raphson determinado de tal forma que teremos uma funo de
iterao tal que

() = 0, onde uma raiz de f. Com isto temos a garantia que existe


um intervalo [ a,

b] que contm a raiz e que [

(x)[ 1 e conseqentemente a convergncia


ser mais rpida.
20 CAPTULO 2. ZEROS DE FUNES
Para determinar a forma de consideremos uma funo A(x) contnua diferencivel
e que A(x) ,= 0, x. Assim temos
f(x) = 0 A(x)f(x) = 0 x = x +A(x)f(x) = (x)
Calculando a derivada de na raiz temos que

() = 1 +A

()f() +A()f

() = 0.
Como f() = 0 e considerando que f

() ,= 0, segue que
A() =
1
f

()
.
Assim tomamos a funo A(x) = 1/f

(x), e portanto teremos


(x) = x
f(x)
f

(x)
Com esta funo de iterao montamos o processo iterativo conhecido como mtodo de
Newton-Raphson, onde dado x
0
x
n+1
= x
n

f(x
n
)
f

(x
n
)
, n = 0, 1, 2, . . .
Gracamente este mtodo tem a interpretao mostrada na Figura 2.5. A derivada
de uma funo no ponto x
n
igual a tangente do ngulo que a reta tangente a curva no
ponto x
n
forma com o eixo x. Usando a relao sobre o tringulo retngulo temos
f

(x
n
) = tan() =
f(x
n
)
x
n
x
n+1
x
n+1
= x
n

f(x
n
)
f

(x
n
)
Teorema 2.4 Sejam f, f

e f

, funes contnuas num intervalo [a, b], onde existe uma raiz
. Supor que f

(x) ,= 0 para x [a, b]. Ento existe um intervalo [ a,

b] [a, b], contendo a raiz


, tal que se x
0
[ a,

b], a seqncia x
n
gerada pelo processo iterativo
x
n+1
= x
n

f(x
n
)
f

(x
n
)
converge para a raiz. [TeNR]
Prova:(Exerccio 2.7)
Uma observao deve ser feita. A condio de que x
0
[ a,

b] no uma condio de
fcil vericao, 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
x
n
x
n+1

f(x)
Figura 2.5: Mtodo Newton-Raphson
Exemplo 2.5 Considerando f(x) = e
x
x que possui uma raiz no intervalo [0.5, 0.75],
vamos achar uma aproximao usando x
0
= 0.625 e = 0.006. Sendo
f

(x) = e
x
1
teremos o processo iterativo
x
n+1
= x
n

f(x
n
)
f

(x
n
)
= x
n
+
e
x
x
e
x
+ 1
Assim temos que
x
1
= x
0
+
e
x
0
x
0
e
x
0
+ 1
= 0.56654 [x
1
x
0
[ = 0.0584 >
x
2
= x
1
+
e
x
1
x
1
e
x
1
+ 1
= 0.56714 [x
2
x
1
[ = 0.0006 <
Logo a aproximao dada por x
2
= 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
x
0
=x
2
x
1
=x
3
No Converge
x
0

Converge para outra raiz


Figura 2.6: Casos em que Mtodo Newton-Raphson falho
Em seguida apresentamos a implementao do mtodo como funo do MatLab:
% Disciplina de C\{a}lculo Num\{e}rico - Prof. J. E. Castilho
% M\{e}todo de Newton-Raphson
% Calcula uma aproxima\c{c}\~{a}o para uma raiz de fun\c{c}\~{a}o f(x)
% definida no arquivo f.m. A derivada da fun\c{c}\~{a}o f(x) esta
% definida no arquivo df.m, tomamos xo como condi\c{c}\~{a}o inicial e
% a predi\c{c}\~{a}o dada por Ep.
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;
2.6 Ordem de Convergncia
Na seo anterior determinamos o Mtodo de Newton-Raphson que pode ser interpretado
como um caso particular do Mtodo Iterativo Linear, onde a convergncia mais rpida.
A medida que permite comparar a convergncia entre os mtodos o que chamamos
de ordem de convergncia, denida por:
Denio 2.1 Seja x
n
uma seqncia que converge para um nmero e seja e
k
= x
k

2.6. ORDEM DE CONVERGNCIA 23


o erro na iterao k. Se
lim
k
[e
k+1
[
[e
k
[
p
= C,
com p 1 e C > 0, dizemos que a seqncia converge com ordem p e com constante
assinttica C.
Como a seqncia converge, para valores de k sucientemente grande temos
[e
k+1
[ C[e
k
[
p
, com [e
k
[ < 1
Assim quanto maior for o valor de p, menor ser o erro [e
k+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 x
n
gerada por x
k+1
= (x
k
), k = 0, 1, 2, . . . e que = () temos
x
k+1
= (x
k
) () =

(c
k
)(x
k
),
onde a ltima igualdade conseqncia do Teorema do Valor Mdio e c
k
um nmero
entre x
k
e . Logo segue
x
k+1

x
k

=

(c
k
)
e
k+1
e
k
=

(c
k
)
Aplicando o mdulo e calculando o limite quando k tende ao innito temos
lim
k
[e
k+1
[
[e
k
[
= lim
k
[

(c
k
)[ = [

()[ = C
Portanto temos que o M.I.L. tm ordem de convergncia p = 1 e a constante assinttica
dada por C = [

()[. A denio exige que C > 0. A condio de C = 0 a imposta para


obter o Mtodo de Newton-Raphoson.
No caso do Mtodo de Newton-Raphson temos que a seqncia gerada pelo pro-
cesso iterativo
x
n+1
= x
n

f(x
n
)
f

(x
n
)
Subtraindo de cada lado temos
x
n+1
= x
n

f(x
n
)
f

(x
n
)
e
n+1
= e
n

f(x
n
)
f

(x
n
)
[ec13] (2.2)
Atravs da frmula de Taylor da funo f no ponto x
n
temos
f(x) = f(x
n
) +f

(x
n
)(x x
n
) +
f

(c
n
)
2
(x x
n
)
2
c
n
[x, x
n
]
Que calculada em x = fornece
0 = f() = f(x
n
) +f

(x
n
)( x
n
) +
f

(c
n
)
2
( x
n
)
2
24 CAPTULO 2. ZEROS DE FUNES
Dividindo por f

(x
n
) e fazendo e
n
= x
n
segue que
f(x
n
)
f

(x
n
)
= e
n

f

(c
n
)
2f

(xn)
e
2
n
Substituindo em (2.2) obtemos
e
n+1
e
2
n
=
f

(c
n
)
2f

(xn)
Finalmente aplicamos o mdulo e calculamos o limite quando k tende ao innito obtendo
lim
k
[e
n+1
[
[e
n
[
2
= lim
k

(c
n
)
2f

(xn)

()
2f

()

=
1
2
[

()[ = C
Portanto temos que o Mtodo de Newton-Raphson tm ordem de convergncia p = 2.
2.7 Observaes Finais
Neste captulo vimos trs mtodos diferentes para resolver equaes da forma f(x) = 0.
Faremos um breve comentrio das vantagens e desvantagens de cada mtodo.
No Mtodo da bisseco vimos que o nmero de iteraes depende apenas do in-
tervalo inicial [a
0
, b
0
] Logo este pode ser aplicado a qualquer funo f(x) que satisfaz
f(a)f(b) < 0. No importa o quanto f(x) seja complicada. A desvantagem que tem uma
convergncia lenta. Na prtica ele usado para renar o intervalo que contm a raiz.
Aplicamos o mtodo em um nmero xo de iteraes.
Em geral o M.I.L. mais rpido que o Mtodo da Bisseco. Usa menos operaes
por cada iterao. Pode encontrar razes em intervalos onde f(a)f(b) > 0 . A diculdade
encontrar a funo de iterao que seja convergente.
O Mtodo de Newton-Raphson tm convergncia quadrtica. Porm este necessita
da avaliao da funo e sua derivada em cada ponto x
n
. Pode ocorrer de termos uma
raiz isolada num intervalo [a, b] e o mtodo acabe convergindo para uma outra raiz que
no pertence a [a, b]. Isto ocorre porque temos que tomar x
0
[ a,

b] [a, b]. Na prtica


tomamos x
0
como ponto mdio do intervalo, pois isto aumenta as chances de tomar x
0
dentro do intervalo [ a,

b].
Nota 1 Em muitas situaes vamos necessitar de calcular o mximo do mdulo de uma
funo restrita a um intervalo, isto
max
x[a,b]
[f(x)[.
Uma forma prtica para este clculo seguir os passos: Considerando que f(x) e f

(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: Verique se a funo no possui ponto critico no intervalo, ou seja, achamos os val-
ores de x
k
tal que f

(x
k
) = 0 e x
k
[a, b]
3: Tomamos como o valor mximo o max[f(a)[, [f(b)[, [f(x
k
)[
[not1]
2.8. EXERCCIOS 25
2.8 Exerccios
Exerccio 2.1 Localize gracamente e d intervalos de amplitude 0.5 que contenha as
razes das equaes
a) ln(x) + 2x = 0 b) e
x
sen(x) = 0 c) ln(x) 2
x
= 2
d) 2 cos(x)
e
x
2
= 0 e) 3 ln(x)
x
2
2
= 0 f) (5 x)e
x
= 1
Exerccio 2.2 Utilize o Mtodo da Bisseco e aproxime a menor raiz em mdulo com erro
menor que 10
1
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 10
2
para as equaes c) e d) do exerccio 2.1.
Exerccio 2.4 Utilize o Mtodo de Newton-Rapshon e aproxime a menor raiz em mdulo
com erro relativo menor que 10
3
para as equaes d) e f) 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 )
a) Encontre um intervalo que depende do valor de a e que contenha a raiz.
b) Verique se a funo de iterao (x) = a/x
p1
satisfaz os critrios de convergncia
do Mtodo Iterativo Linear.
c) Considerando que p = 1, mostre que [

()[ = 1. O que acontece com a seqncia


gerada por x
n+1
= (x
n
)? Sua concluso pode ser generalizada para qualquer caso
em que [

()[ = 1?
d) Verique que o processo iterativo gerado pelo M.N.R. dado por
x
n+1
=
1
p
_
(p 1)x
n
+
a
x
p1
n
_
Exerccio 2.6 Dada a funo f(x) = e
x
4x
2
.
a) Isole as razes da funo f(x).
b) Verique que as funes abaixo so funo de iterao de f e verique se satisfazem
o critrio de convergncia do M.I.L. para a raiz positiva.

1
(x) =
1
2
e
x/2

2
(x) = ln(4x
2
)
c) Tomando x
0
= 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
Exerccio 2.7 Prove o Teorema 2.4. [ex1]
26 CAPTULO 2. ZEROS DE FUNES
Exerccio 2.8 A funo f(x) = sen(cos(

3x)) tem uma raiz no intervalo [0.7, 0.9]. Encontre


uma aproximao com = 0.07, escolhendo entre os mtodos numricos estudados o mais
adequado. Justique sua resposta.
Exerccio 2.9 Analise algbrica e geometricamente e encontre justicativas para o com-
portamento do mtodo de Newton-Raphson quando aplicado equao f(x) = 0.5x
3
+
2.5x = 0 nos seguintes casos, x
0
= 1 e x
0
= 1.
2.9 Atividades no Laboratrio
Problema 2.1 Usando os dados do exerccio 2.6, compare o desempenho dos mtodos da
Biseco, M.I.L. e Newton-Rapshon, para diferentes valores de .
Problema 2.2 Considere a funo f(x) = x
3
3.5x
2
+4x1.5. Esta temuma raz no intervalo
[0.8, 1.2]. Usando o mtodo de Newton-Raphson ache uma aproximao com preciso de
10
6
. Comente os resultados.
Problema 2.3 O Mtodo da Secante uma modicao do Mtodo de Newton-Raphson,
onde a derivada da funo substituda por
f

(x
k
)
f(x
k
) f(x
k1
)
x
k
x
k1
.
Isto simplica 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
A resoluo de sistemas lineares pode surgir em diversas reas do conhecimento. O
caso geral em que o sistema linear envolve m equaes com n incgnitas, o sistema pode
apresentar uma nica soluo, innitas solues ou no admitir soluo. Neste captulo
vamos analisar esquemas numricos para solues de sistemas lineares de n equaes
com n incgnitas e supondo que este tenha uma nica soluo, isto
_

_
a
1,1
x
1
+ a
1,2
x
2
+ a
1,3
x
3
a
1,n
x
n
= b
1
a
2,1
x
1
+ a
2,2
x
2
+ a
2,3
x
3
a
2,n
x
n
= b
2
a
3,1
x
1
+ a
3,2
x
2
+ a
3,3
x
3
a
3,n
x
n
= b
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
n,1
x
1
+ a
n,2
x
2
+ a
n,3
x
3
a
n,n
x
n
= b
n
onde a
ij
so os coecientes, x
j
so as incgnitas e os b
j
so os termos indepententes.
Este sistema pode ser escrito na forma matricial Ax = b com A IR
nn
e x, b IR
n
. Anal-
isaremos duas classes de esquemas numricos: Mtodos Iterativos e Mtodos Diretos.
3.1 Mtodos Iterativos
Vamos considerar um sistema linear Ax = b, onde A IR
nn
e x, b IR
n
. Os mto-
dos iterativos seguem um esquema semelhante aos mtodos para o clculo de zeros de
funes. O sistema linear escrito na forma
x = Cx +g,
onde g IR
n
e C IR
nn
chamada de matriz de iterao. Assim montamos o processo
iterativo:
Dado x
0
x
k+1
= Cx
k
+g.
27
28 CAPTULO 3. SISTEMAS LINEARES
Sendo um processo iterativo, necessitamos de um critrio de parada. E para isto
temos que ter uma medida entre as aproximaes x
k+1
e x
k
. Para isto vamos usar o
conceito de norma de matrizes, denida abaixo
Denio 3.1 Uma norma em I R
nm
uma aplicao [[ [[ : I R
nm
I R que satisfaz as
seguintes propriedades:
(M1) [[A[[ 0 e [[A[[ = 0 A = 0, A I R
nm
.
(M2) [[A[[ = [[ [[A[[, I R e A I R
nm
.
(M3) [[A+B[[ [[A[[ +[[B[[, A, B I R
nm
.
As normas matriciais mais usadas so
[[A[[
1
= max
1jm
_
n

i=1
[a
ij
[
_
Norma do Mximo das Coluna
[[A[[

= max
1in
_
_
_
m

j=1
[a
ij
[
_
_
_
Norma do Mximo das Linha
[[A[[
2
=
_
_
n

i=1
m

j=1
[a
ij
[
2
_
_
1/2
Norma Euclidiana
A norma vetorial pode ser vista como um caso particular da norma matricial, onde
um vetor x IR
n
equivalente a uma matriz de ordem n 1. Com isto temos as normas
de vetores dadas por
[[x[[
1
=
n

i=1
[x
i
[ Norma da Soma
[[x[[

= max
1in
[x
i
[ Norma do Mximo
[[x[[
2
=
_
n

i=1
[x
i
[
2
_
1/2
Norma Euclidiana
O conceito de norma nos permite denir convergncia de uma seqncia de vetores x
k
.
Dizemos que x
k
x se
lim
k
[[x
k
x[[ = 0
Com isto podemos denir os critrios de parada: Dado um > 0
[[x
k+1
x
k
[[ Erro Absoluto
[[x
k+1
x
k
[[
[[x
k
[[
Erro Relativo
[[b Ax
k
[[ Teste do Resduo
Alm disso, as normas [[ [[
1
, [[ [[
2
e [[ [[

satisfazem as seguintes propriedades:


3.1. MTODOS ITERATIVOS 29
(M4) [[Ax[[ [[A[[ [[x[[
(M5) [[AB[[ [[A[[ [[B[[
3.1.1 Critrio Geral de Convergncia
Dependendo da forma da matriz C a seqncia gerada pelo processo iterativo pode ou
no convergir para a soluo do sistema. O critrio geral de convergncia dado pelo
seguinte teorema:
Teorema 3.1 Seja x a soluo do sistema Ax = b. O processo iterativo
x
k+1
= Cx
k
+g
gera uma seqncia x
k
que converge para a soluo x se e somente se |C| < 1.
Prova: Sendo x soluo do sistema, este satisfaz
x = C x +g.
Com isto temos que
x
k+1
x = C(x
k+1
x)
Sendo o erro em cada iterao dado por e
k
= x
k
x e usando as propriedades de norma
(M4) e (M5) segue que
[[e
k
[[ [[C[[ [[e
k1
[[
[[C[[
2
[[e
k2
[[
.
.
.
.
.
.
[[C[[
k
[[e
0
[[
Logo a seqncia x
k
converge para a soluo do sistema x se
lim
k
[[e
k
[[ = lim
k
[[C[[
k
[[e
0
[[ = 0
e isto ocorre se e somente se a matriz C satisfaz a condio [[C[[ < 1
Note que o critrio de convergncia no depende do vetor inicial x
0
. A escolha de x
0
inuncia no nmero de iteraes necessrias para atingir a preciso desejada. Quanto
menor for [[x
0
x[[ menos iteraes sero necessrias.
3.1.2 Mtodo Iterativo de Gauss-Jacobi
Vamos considerar o sistema linear Ax = b dado por
_

_
a
1,1
x
1
+ a
1,2
x
2
+ a
1,3
x
3
a
1,n
x
n
= b
1
a
2,1
x
1
+ a
2,2
x
2
+ a
2,3
x
3
a
2,n
x
n
= b
2
a
3,1
x
1
+ a
3,2
x
2
+ a
3,3
x
3
a
3,n
x
n
= b
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
n,1
x
1
+ a
n,2
x
2
+ a
n,3
x
3
a
n,n
x
n
= b
n
,
30 CAPTULO 3. SISTEMAS LINEARES
onde os a
ii
,= 0 para i = 1, 2, . . . , n. Em cada equao i podemos isolar a incgnita x
i
obtendo as seguintes relaes
x
1
=
1
a
1,1
(b
1
a
1,2
x
2
a
1,3
x
3
a
1,n
x
n
)
x
2
=
1
a
2,2
(b
2
a
2,1
x
1
a
2,3
x
3
a
2,n
x
n
)
x
3
=
1
a
3,3
(b
3
a
3,1
x
1
a
3,2
x
2
a
3,n
x
n
)
.
.
.
.
.
.
.
.
.
x
n
=
1
a
n,n
(b
n
a
n,1
x
1
a
n,2
x
2
a
n,n1
x
n1
)
Na forma matricial estas equaes so equivalentes
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
x
1
x
2
x
3
.
.
.
.
.
.
.
.
.
x
n
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
=
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
0
a
1,2
a
1,1

a
1,3
a
1,1

a
1,n
a
1,1

a
2,1
a
2,2
0
a
2,3
a
2,2

a
2,n
a
2,2

a
3,1
a
3,3

a
3,2
a
3,3
0
a
3,n
a
3,3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

a
n,1
a
n,n

a
n,2
a
n,n

a
n,3
a
n,n
0
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
x
1
x
2
x
3
.
.
.
.
.
.
.
.
.
x
n
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
+
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
b
1
a
1,1
b
2
a
2,2
b
3
a
3,3
.
.
.
b
n
a
n,n
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
(3.1)
Desta forma temos o sistema linear na forma x = Cx + g e assim montamos o processo
iterativo conhecido como Mtodo Iterativo de Gauss Jacobi:
Dado x
0
x
(k+1)
1
=
1
a
1,1
_
b
1
a
1,2
x
(k)
2
a
1,3
x
(k)
3
a
1,n
x
(k)
n
_
x
(k+1)
2
=
1
a
2,2
_
b
2
a
2,1
x
(k)
1
a
2,3
x
(k)
3
a
2,n
x
(k)
n
_
x
(k+1)
3
=
1
a
3,3
_
b
3
a
3,1
x
(k)
1
a
3,2
x
(k)
2
a
3,n
x
(k)
n
_
.
.
.
.
.
.
.
.
.
x
(k+1)
n
=
1
a
n,n
_
b
n
a
n,1
x
(k)
1
a
n,2
x
(k)
2
a
n,n1
x
(k)
n1
_
[eq:sis1] (3.2)
Algoritmo: Mtodo Iterativo de Gauss-Jacobi
Input: Matriz A IR
nn
b, x
0
IR
n
e > 0
3.1. MTODOS ITERATIVOS 31
Enquanto [[x
k+1
x
k
[[ > faa:
Para s = 1, 2, . . . , n, faa:
x
(k+1)
s

1
a
s,s
_
_
b
s

n

j=1,j=s
a
s,j
x
(k)
j
_
_
m para
m enquanto
Output: x IR
n
: soluo do sistema
3.1.3 Critrio das Linhas
Como critrio de convergncia, vimos que a matriz de iterao C deve satisfazer a
condio [[C[[ < 1. Usando a Norma do Mximo das Linhas sobre a matriz C em (3.2)
temos o seguinte critrio de convergncia para o Mtodo de Gauss-Jacobi
Corolrio 3.1 (Critrio das Linhas) Dado o sistema linear Ax = b. Seja os
k
de tal
forma que:

k
=
1
[a
k,k
[
n

j=1,j=k
[a
k,j
[ < 1 para k = 1, 2, . . . , n
Ento o Mtodo de Gauss-Jacobi gera uma seqncia x
k
que converge para a soluo
do sistema.
Este critrio fornece uma condio suciente, 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).
Exemplo 3.1 Dado o sistema linear
_

_
7x
1
+ 3x
2
+ 2x
3
= 2
x
1
+ 3x
2
x
3
= 3
x
1
+ x
2
3x
3
= 1
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 x
0
=
(0.5, 0.5, 0.5)
T
.
O primeiro passo vericar se o critrio de convergncia satisfeito. Calculando os

k
temos

1
=
1
[a
1,1
[
([a
1,2
[ +[a
1,3
[) =
5
7
< 1

2
=
1
[a
2,2
[
([a
2,1
[ +[a
2,3
[) =
2
3
< 1

3
=
1
[a
3,3
[
([a
3,1
[ +[a
3,2
[) =
2
3
< 1
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
x
(k+1)
1
=
1
7
_
2 3x
(k)
2
2x
(k)
3
_
x
(k+1)
2
=
1
3
_
3 x
(k)
1
+x
(k)
3
_
x
(k+1)
3
=
1
3
_
1 x
(k)
1
x
(k)
2
_
(3.3)
Assim para k = 0 segue que
x
(1)
1
=
1
7
(2 3 0.5 2 0.5) = 0.642
x
(1)
2
=
1
3
(3 0.5 + 0.5) = 1.000
x
(1)
3
=
1
3
(1 0.5 0.5) = 0.666
(3.4)
Vericando o critrio de parada temos
x
1
x
0
=
_
_
_
0.642 0.500
1.000 0.500
0.666 0.500
_
_
_ =
_
_
_
0.142
0.500
0.166
_
_
_ [[x
1
x
0
[[

= 0.500 >
Para k = 1 temos
x
(2)
1
=
1
7
(2 3 1.000 2 0.666) = 0.904
x
(2)
2
=
1
3
(3 0.642 + 0.666) = 1.008
x
(2)
3
=
1
3
(1 0.642 1) = 0.880
(3.5)
Vericando o critrio de parada temos
x
2
x
1
=
_
_
_
0.904 0.642
1.008 1.000
0.880 0.666
_
_
_ =
_
_
_
0.262
0.008
0.214
_
_
_ [[x
2
x
1
[[

= 0.262 >
Devemos continuar as iteraes at que o critrio de parada seja satisfeito (Exerccio).
3.1.4 Mtodo Iterativo de Gauss-Seidel
A cada iterao x
k
se aproxima da soluo do sistema. Baseado nesta observao vamos
modicar o Mtodo de Gauss-Jacobi com o objetivo de acelerar a convergncia. Numa
3.1. MTODOS ITERATIVOS 33
iterao k + 1, o Mtodo de Gauss-Jacobi calcula o elemento s pela equao
x
(k+1)
s
=
1
a
s,s
_
_
b
s

s1

j=1
a
s,j
x
(k)
j

n

j=s+1
a
s,j
x
(k)
j
_
_
[eq:gj1] (3.6)
Neste ponto os elementos x
k+1
1
, x
k+1
2
, , x
k+1
s1
, j foram calculados e espera-se que estes
estejam mais prximos da soluo que os elementos x
k
1
, x
k
2
, , x
k
s1
. Assim vamos sub-
stituir os elementos da iterao k, que aparecem no primeiro somatrio de (3.6), pelos
correspondentes elementos da iterao k + 1, isto
x
(k+1)
s
=
1
a
s,s
_
_
b
s

s1

j=1
a
s,j
x
(k+1)
j

n

j=s+1
a
s,j
x
(k)
j
_
_
.
Como estamos usando valores mais prximos da soluo, o clculo de x
k+1
s
ser mais
preciso. Este procedimento conhecido como Mtodo Iterativo de Gauss-Seidel, cujo o
algoritmo dado abaixo.
Algoritmo: Mtodo Iterativo de Gauss-Seidel
Input: Matriz A IR
nn
b, x
0
IR
n
e > 0
Enquanto [[x
k+1
x
k
[[ > faa:
Para s = 1, 2, . . . , n, faa:
x
(k+1)
s

1
a
s,s
_
_
b
s

s1

j=1
a
s,j
x
(k+1)
j

n

j=s+1
a
s,j
x
(k)
j
_
_
m para
m enquanto
Output: x IR
n
: soluo do sistema
3.1.5 Critrio de Sassenfeld
O Mtodo de Gauss-Seidel tambm pode ser representado na forma matricial x
k+1
=
Cx
k
+ g e critrios de convergncia podem ser obtidos impondo a condio [[C[[ < 1.
Aplicando a Norma do Mximo das Linhas obtemos o seguinte critrio de convergncia:
Corolrio 3.2 (Critrio de Sassenfeld) Dado o sistema linear Ax = b. Seja os
k
de tal
forma que:

k
=
1
[a
k,k
[
_
_
k1

j=1
[a
k,j
[
j
+
n

j=k+1
[a
k,j
[
_
_
< 1 para k = 1, 2, . . . , n
Ento o Mtodo de Gauss-Seidel gera uma seqncia x
k
que converge para a soluo do
sistema.
34 CAPTULO 3. SISTEMAS LINEARES
Exemplo 3.2 Dado o sistema linear
_

_
7x
1
+ 3x
2
+ 2x
3
= 2
x
1
+ 2x
2
x
3
= 2
x
1
+ x
2
2x
3
= 0
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 x
0
=
(0.5, 0.5, 0.5)
T
.
O primeiro passo vericar se o critrio de convergncia satisfeito. Calculando os

k
temos

1
=
1
[a
1,1
[
([a
1,2
[ +[a
1,3
[) =
5
7
< 1

2
=
1
[a
2,2
[
([a
2,1
[
1
+[a
2,3
[) =
6
7
< 1

3
=
1
[a
3,3
[
([a
3,1
[
1
+[a
3,2
[
2
) =
11
14
< 1
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
x
(k+1)
1
=
1
7
_
2 3x
(k)
2
2x
(k)
3
_
x
(k+1)
2
=
1
2
_
2 x
(k+1)
1
+x
(k)
3
_
x
(k+1)
3
=
1
2
_
0 x
(k+1)
1
x
(k+1)
2
_
(3.7)
Assim para k = 0 segue que
x
(1)
1
=
1
7
(2 3 0.5 2 0.5) = 0.642
x
(1)
2
=
1
2
(2 0.642 + 0.5) = 0.929
x
(1)
3
=
1
2
(0 0.642 0.929) = 0.785
(3.8)
Vericando o critrio de parada temos
x
1
x
0
=
_
_
_
0.642 0.500
0.929 0.500
0.785 0.500
_
_
_ =
_
_
_
0.142
0.429
0.285
_
_
_ [[x
1
x
0
[[

= 0.429 >
3.2. MTODOS DIRETOS 35
Para k = 1 temos
x
(2)
1
=
1
7
(2 3 0.929 2 0.785) = 0.908
x
(2)
2
=
1
2
(2 0.908 + 0.785) = 0.938
x
(2)
3
=
1
2
(0 0.908 0.938) = 0.923
(3.9)
Vericando o critrio de parada temos
x
2
x
1
=
_
_
_
0.908 0.642
0.938 0.929
0.923 0.785
_
_
_ =
_
_
_
0.266
0.009
0.138
_
_
_ [[x
2
x
1
[[

= 0.266 >
Devemos continuar as iteraes at que o critrio de parada seja satisfeito (Exerccio).
3.2 Mtodos Diretos
Os Mtodos Diretos so aqueles que aps um nmero nito de operaes fornecem a
soluo exata do sistema, a menos dos erros de arredondamentos. Estes mtodos so
baseados no processo de escalonamento de sistemas e matrizes. So ecientes para
sistemas de pequeno porte (no mais que 50 equaes ) e para sistemas de bandas,
como por exemplo sistemas tridiagonais ( ver Ex. 3.3 ). Primeiramente vamos considerar
os sistemas lineares triangulares.
3.2.1 Sistema Triangular Superior
Um Sistema Triangular Superior aquele em que a matriz associada ao sistema uma
matriz triangular superior, isto a
i,j
= 0 para i > j.
_

_
a
1,1
x
1
+ a
1,2
x
2
+ a
1,3
x
3
a
1,n
x
n
= b
1
a
2,2
x
2
+ a
2,3
x
3
a
2,n
x
n
= b
2
a
3,3
x
3
a
3,n
x
n
= b
3
.
.
.
.
.
.
a
n,n
x
n
= b
n
Este sistema admite uma nica soluo se a
ii
, = 0 para i = 1, 2, . . . , n, sendo,
x
n
=
b
n
a
n,n
x
n1
=
1
a
n1,n1
(b
n1
a
n1,n
x
n
)
x
n2
=
1
a
n2,n2
(b
n2
a
n2,n1
x
n1
a
n2,n
x
n
)
36 CAPTULO 3. SISTEMAS LINEARES
.
.
.
.
.
.
x
k
=
1
a
k,k
_
_
b
k

n

j=k+1
a
k,j
x
j
_
_
.
.
.
.
.
.
e assim sucessivamente. Com isto obtemos o esquema numrico para soluo de sis-
tema triangular superior dado pelo algoritmo abaixo
Algoritmo: Retro-Soluo
Input: Matriz triangular superior A IR
nn
e b IR
n
x
n
b
n
/a
n,n
Para k = n 1, n 2, . . . 1, faa:
x
k

1
a
k,k
_
_
b
k

n

j=k+1
a
k,j
x
j
_
_
m para
Output: x IR
n
: soluo do sistema
3.2.2 Mtodo de Eliminao de Gauss
Dois sistemas lineares so ditos ser equivalentes se estes tem a mesma soluo. A
estratgia do Mtodo de Eliminao de Gauss transformar um sistema linear Ax = b
em um sistema triangular superior equivalente Sx =

b, cuja a soluo facilmente obtida
pela Retro-Soluo. Esta transformao realizada atravs das operaes elementares
(I) Trocar duas equaes.
(II) Multiplicar uma equao por uma constante no nula.
(III) Adicionar a uma equao uma outra multiplicada por uma constante no nula.
Aplicando qualquer seqncia dessas operaes elementares num sistema Ax = b obte-
mos um novo sistema

Ax =

b de tal forma que estes sero equivalentes. Para descrever
o Mtodo de Eliminao de Gauss vamos considerar o sistema linear
_

_
a
1,1
x
1
+ a
1,2
x
2
+ a
1,3
x
3
a
1,n
x
n
= b
1
a
2,1
x
1
+ a
2,2
x
2
+ a
2,3
x
3
a
2,n
x
n
= b
2
a
3,1
x
1
+ a
3,2
x
2
+ a
3,3
x
3
a
3,n
x
n
= b
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
n,1
x
1
+ a
n,2
x
2
+ a
n,3
x
3
a
n,n
x
n
= b
n
,
3.2. MTODOS DIRETOS 37
onde det(A) ,= 0, isto , o sistema admite uma nica soluo. Um sistema linear pode
ser representado na forma de matriz estendida (A
0
[b
0
), ou seja
_
_
_
_
_
_
_
_
_
_
a
(0)
1,1
a
(0)
1,2
a
(0)
1,3
a
(0)
1,n
b
(0)
1
a
(0)
2,1
a
(0)
2,2
a
(0)
2,3
a
(0)
2,n
b
(0)
2
a
(0)
3,1
a
(0)
3,2
a
(0)
3,3
a
(0)
3,n
b
(0)
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
(0)
n,1
a
(0)
n,2
a
(0)
n,3
a
(0)
n,n
b
(0)
n
_
_
_
_
_
_
_
_
_
_
onde o ndice superior indica a etapa do processo.
Etapa 1: Eliminar a incgnita x
1
das equaes k = 2, 3, . . . , n. Sendo a
(0)
1,1
,= 0, usaremos a
operao elementar (III) e subtramos da linha k a primeira linha multiplicada por
m
k,1
=
a
(0)
k,1
a
(0)
1,1
.
Os elementos m
k,1
so chamados de multiplicadores e o elemento a
(0)
1,1
chamado
de piv da Etapa 1. Indicando a linha k da matriz entendida por L
(0)
k
esta etapa se
resume em
L
(1)
1
= L
(0)
1
L
(1)
k
= L
(0)
k
m
k,1
L
(0)
1
, k = 2, 3, . . . , n
Ao nal desta etapa teremos a matriz
_
_
_
_
_
_
_
_
_
_
a
(1)
1,1
a
(1)
1,2
a
(1)
1,3
a
(1)
1,n
b
(1)
1
0 a
(1)
2,2
a
(1)
2,3
a
(1)
2,n
b
(1)
2
0 a
(1)
3,2
a
(1)
3,3
a
(1)
3,n
b
(1)
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 a
(1)
n,2
a
(1)
n,3
a
(1)
n,n
b
(1)
n
_
_
_
_
_
_
_
_
_
_
que representa um sistema linear equivalente ao sistema original, onde a incgnita
x
1
foi eliminada das equaes k = 2, 3, . . . , n.
Etapa 2: Eliminar a incgnita x
2
das equaes k = 3, 4, . . . , n. Supondo que a
(1)
2,2
,= 0,
vamos tomar este elemento como piv desta etapa e desta forma os multiplicadores
so dados por
m
k,2
=
a
(1)
k,2
a
(1)
2,2
A eliminao segue com as seguintes operaes sobre as linhas:
L
(2)
1
= L
(1)
1
L
(2)
2
= L
(1)
2
L
(2)
k
= L
(1)
k
m
k,2
L
(1)
2
, k = 3, 4, . . . , n
38 CAPTULO 3. SISTEMAS LINEARES
obtendo ao nal da etapa a matriz
_
_
_
_
_
_
_
_
_
_
a
(2)
1,1
a
(2)
1,2
a
(2)
1,3
a
(2)
1,n
b
(2)
1
0 a
(2)
2,2
a
(2)
2,3
a
(2)
2,n
b
(2)
2
0 0 a
(2)
3,3
a
(2)
3,n
b
(2)
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 a
(2)
n,3
a
(2)
n,n
b
(2)
n
_
_
_
_
_
_
_
_
_
_
Com procedimentos anlogos ao das etapas 1 e 2 podemos eliminar as incgnitas
x
k
das equaes k + 1, k + 2, . . . , n e ao nal de n 1 etapas teremos a matriz
_
_
_
_
_
_
_
_
_
_
a
(n1)
1,1
a
(n1)
1,2
a
(n1)
1,3
a
(n1)
1,n
b
(n1)
1
0 a
(n1)
2,2
a
(n1)
2,3
a
(n1)
2,n
b
(n1)
2
0 0 a
(n1)
3,3
a
(n1)
3,n
b
(n1)
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 0 a
(n1)
n,n
b
(n1)
n
_
_
_
_
_
_
_
_
_
_
Esta matriz representa um sistema triangular superior equivalente ao sistema original.
Logo a soluo deste sistema, obtido pela Retro-Soluo, soluo do sistema original.
Algoritmo: Mtodo de Eliminao de Gauss
Input: Matriz A e vetor b IR
n
Eliminao:
Para k = 1, 2, . . . , n 1, faa:
Para i = k + 1, . . . , n, faa:
m
a
ij
a
k,k
Para j = k + 1, . . . , n, faa:
a
ij
a
ij
m a
kj
m para
b
i
b
i
m b
k
m para
m para
Retro-Soluo:
x
n
b
n
/a
n,n
Para k = n 1, n 2, . . . 1, faa:
x
k

1
a
k,k
_
_
b
k

n

j=k+1
a
k,j
x
j
_
_
m para
3.2. MTODOS DIRETOS 39
Output: x IR
n
: soluo do sistema
Exemplo 3.3 Vamos considerar o sistema linear abaixo
_

_
3x
1
+ 2x
2
x
3
= 1
7x
1
x
2
x
3
= 2
x
1
+x
3
= 1
Escrevendo na forma de matriz estendida teremos
_
_
_
3 2 1 1
7 1 1 2
1 0 1 1
_
_
_
Etapa 1: Eliminar x
1
das linhas 2 e 3.
L
(1)
1
= L
(0)
1
L
(1)
2
= L
(0)
2
m
2,1
L
(0)
1
, onde m
2,1
=
a
(0)
21
a
(0)
1,1
=
7
3
L
(1)
3
= L
(0)
3
m
3,1
L
(0)
1
, onde m
3,1
=
a
(0)
31
a
(0)
1,1
=
1
3
e com isto obtemos a matriz
_
_
_
3 2 1 1
0 17/3 4/3 13/3
0 2/3 4/3 12/3
_
_
_
Etapa 2: Eliminar x
2
da linha 3.
L
(2)
1
= L
(1)
1
L
(2)
2
= L
(1)
2
L
(2)
3
= L
(1)
3
m
3,2
L
(1)
2
, onde m
3,2
=
a
(01)
32
a
(1)
2,2
=
2
17
obtendo assim a matriz
_
_
_
3 2 1 1
0 17/3 4/3 13/3
0 0 20/17 20/17
_
_
_
Retro-Soluo: Encontrar a soluo do sistema triangular superior.
x
3
=
b
3
a
3,3
= 1
x
2
=
1
a
2,2
(b
2
a
2,3
x
3
) = 1
x
1
=
1
a
1,1
(b
1
a
1,2
x
2
a
1,3
x
3
) = 0
Logo a soluo do sistema dada por x = (0, 1, 1)
T
.
40 CAPTULO 3. SISTEMAS LINEARES
A soluo encontrada a soluo exata, pois mantivemos os nmeros resultantes das
operaes na forma de frao. Porm mquinas digitais representam estes nmeros
na forma de ponto utuante e erros de arredondamento podem ocorrer. Em sistemas
lineares de grande porte estes erros vo se acumulando e prejudicando a soluo do
sistema.
3.2.3 Pivotamento Parcial
Em cada etapa k da eliminao temos o clculo do multiplicador
m
k,j
=
a
(k1)
k,j
a
(k1)
k,k
.
Se o piv [a
(k1)
k,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
coecientes a
k1
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
_
_
_
Etapa 1: Escolha do piv
max
1i3
[a
i,1
[ = [a
3,1
[
Com o objetivo de tormar os multiplicadores m
k,1
1, trocamos a linha L
1
com a linha
L
3
, obtendo,
_
_
_
3 2 1 2
2 1 2 4
1 3 2 3
_
_
_
Eliminar x
1
das linhas 2 e 3.
L
(1)
1
= L
(0)
1
L
(1)
2
= L
(0)
2
m
2,1
L
(0)
1
, onde m
2,1
=
2
3
L
(1)
3
= L
(0)
3
m
3,1
L
(0)
1
, onde m
3,1
=
1
3
e com isto obtemos a matriz
_
_
_
3 2 1 2
0 7/3 8/3 8/3
0 11/3 7/3 7/3
_
_
_
3.2. MTODOS DIRETOS 41
Etapa 2: Escolha do piv
max
2i3
[a
i,1
[ = [a
3,2
[
Neste caso trocamos a linha L
2
com a linha L
3
, obtendo,
_
_
_
3 2 1 2
0 11/3 7/3 7/3
0 7/3 8/3 8/3
_
_
_
Eliminar x
2
da linha 3.
L
(2)
1
= L
(1)
1
L
(2)
2
= L
(1)
2
L
(2)
3
= L
(1)
3
m
3,2
L
(1)
2
, onde m
3,2
=
7
11
obtendo assim a matriz
_
_
_
3 2 1 2
0 11/3 8/3 8/3
0 0 13/11 13/11
_
_
_
Retro-Soluo: Encontrar a soluo do sistema triangular superior.
x
3
=
b
3
a
3,3
= 1
x
2
=
1
a
2,2
(b
2
a
2,3
x
3
) = 0
x
1
=
1
a
1,1
(b
1
a
1,2
x
2
a
1,3
x
3
) = 1
Logo a soluo do sistema dada por x = (1, 0, 1)
T
.
Na prtica a troca de linhas no realizada. O controle feito por um vetor de in-
teiros n-dimensional, onde inicialmente na posio k est armazenado k, ou seja trc =
[1, 2, . . . , s, . . . , n]. Se, por exemplo, trocamos a linha 1 pela linha s o vetor passa a ser
trc = [s, 2, . . . , 1, . . . , n].
3.2.4 Clculo da Matriz Inversa
Vamos supor que desejamos resolver os sistemas lineares Ax = b
1
, Ax = b
2
, . . . Ax = b
k
,
onde a matriz A a mesma para todos os sistemas. A matriz triangular superior, resul-
tante do processo de eliminao, no depende do vetor b e portanto ser a mesma em
qualquer um dos sistemas. Assim podemos resolver estes sistemas num nico processo
de eliminao usando a matriz estendida (A[b
1
[b
2
[ . . . [b
k
) e aplicando a Retro-Soluo
para cada vetor b
k
.
O Clculo da inversa de uma matriz um caso particular do esquema acima. A
inversa de uma matriz A R
nn
, denotada por A
1
, uma matriz n n tal que
A A
1
= A
1
A = I
42 CAPTULO 3. SISTEMAS LINEARES
Como exemplo vamos considerar uma matriz A de dimenso 3 3
_
_
_
a
1,1
a
1,2
a
1,3
a
2,1
a
2,2
a
2,3
a
3,1
a
3,2
a
3,3
_
_
_
cuja a inversa A
1
dada por
_
_
_
x
1,1
x
1,2
x
1,3
x
2,1
x
2,2
x
2,3
x
3,1
x
3,2
x
3,3
_
_
_,
logo temos que
_
_
_
a
1,1
a
1,2
a
1,3
a
2,1
a
2,2
a
2,3
a
3,1
a
3,2
a
3,3
_
_
_
_
_
_
x
1,1
x
1,2
x
1,3
x
2,1
x
2,2
x
2,3
x
3,1
x
3,2
x
3,3
_
_
_ =
_
_
_
1 0 0
0 1 0
0 0 1
_
_
_,
Portanto cada coluna k da inversa da matriz A soluo de um sistema linear, onde o
vetor dos termos independentes a k-sima coluna da matriz identidade, isto
_
_
_
a
1,1
a
1,2
a
1,3
a
2,1
a
2,2
a
2,3
a
3,1
a
3,2
a
3,3
_
_
_
_
_
_
x
1,1
x
2,1
x
3,1
_
_
_ =
_
_
_
1
0
0
_
_
_,
_
_
_
a
1,1
a
1,2
a
1,3
a
2,1
a
2,2
a
2,3
a
3,1
a
3,2
a
3,3
_
_
_
_
_
_
x
1,2
x
2,2
x
3,2
_
_
_ =
_
_
_
0
1
0
_
_
_,
_
_
_
a
1,1
a
1,2
a
1,3
a
2,1
a
2,2
a
2,3
a
3,1
a
3,2
a
3,3
_
_
_
_
_
_
x
1,3
x
2,3
x
3,3
_
_
_ =
_
_
_
0
0
1
_
_
_,
Em resumo, se temos uma matriz nn, podemos achar a inversa resolvendo n sistemas
lineares, representados pela matriz estendida (A[b
1
[b
2
[ . . . [b
n
), onde os vetores b
k
so os
vetores unitrios ( 1 na posio k e zeros nas demais posies).
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
Etapa 1: Eliminar x
1
das linhas 2 e 3.
L
(1)
1
= L
(0)
1
L
(1)
2
= L
(0)
2
m
2,1
L
(0)
1
, onde m
2,1
=
3
4
L
(1)
3
= L
(0)
3
m
3,1
L
(0)
1
, onde m
3,1
=
3
4
e com isto obtemos a matriz
_
_
_
4 1 6 1 0 0
0 5/4 3/2 3/4 1 0
0 1/4 1/2 3/4 0 1
_
_
_,
Etapa 2: Eliminar x
2
da linha 3.
L
(2)
1
= L
(1)
1
L
(2)
2
= L
(1)
2
L
(2)
3
= L
(1)
3
m
3,2
L
(1)
2
, onde m
3,2
=
1
5
obtendo assim a matriz
_
_
_
4 1 6 1 0 0
0 5/4 3/2 3/4 1 0
0 0 1/5 3/5 1/5 1
_
_
_,
Retro-Soluo: Encontrar a soluo dos sistemas triangulares superior.
Primeira coluna da inversa
x
3,1
=
b
1
3
a
3,3
= 3
x
2,1
=
1
a
2,2
(b
1
2
a
2,3
x
3
) = 3
x
1,1
=
1
a
1,1
(b
1
1
a
1,2
x
2
a
1,3
x
3
) = 4
Segunda coluna da inversa
x
3,2
=
b
2
3
a
3,3
= 1
x
2,2
=
1
a
2,2
(b
2
2
a
2,3
x
3
) = 2
x
1,2
=
1
a
1,1
(b
2
1
a
1,2
x
2
a
1,3
x
3
) = 1
44 CAPTULO 3. SISTEMAS LINEARES
Terceira coluna da inversa
x
3,3
=
b
3
3
a
3,3
= 5
x
2,3
=
1
a
2,2
(b
3
2
a
2,3
x
3
) = 6
x
1,3
=
1
a
1,1
(b
3
1
a
1,2
x
2
a
1,3
x
3
) = 6
Logo a matriz inversa s dada por
_
_
_
4 1 6
3 2 6
3 1 5
_
_
_,
No exemplo acima temos que a inversa da matriz A a prpria A. Este tipo de matriz
usado como matriz teste para vericar a ecincia 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.
% Disciplina de C{\a}lculo Num{\e}rico - Prof. J. E. Castilho
% M{\e}todo de elimina\c{c}{\~a}o de Gauss -
% Este procedimento resolve k-sistemas lineares, onde a
% matriz A de dimens{\~a}o n x n eh comum a todos.
% Os par{\^a}metros devem ser passados da forma
% x=EGauss(A,b1,b2,b3,...,bk)
% o resultado eh uma matriz x de dimens{\~a}o n x k onde a
% coluna j armazena a solu\c{c}{\~a}o do sistema Ax=bj
% Dados A: matriz do sistema
% varargin: lista dos vetores dos termos independentes
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;
% Esta parte verifica se a dimens{\~a}o do vetor b
% esta de acordo com a dimens{\~a}o do sistema
if n ~=db(1), disp(??? Erro na dimens{\~a}o de b); break; end;
% Cria matriz estendida
3.3. OBSERVAES FINAIS 45
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;
% Fase da Retro solu\c{c}{\~a}o
if abs(Ax(n,n)) < 10^(-16),
disp(??? Piv{\^o} Numericamente Nulo);
break;
end;
for m=1:db(2)
x(n,m) = Ax(n,n+m)/Ax(n,n);
end;
for k=(n-1):-1:1
for m=1:db(2)
som=0;
for j=k+1:n
som=som+Ax(k,j)*x(j,m);
end;
x(k,m) = (Ax(k,n+m)-som)/Ax(k,k);
end;
end;
3.3 Observaes Finais
A escolha do mtodo, que deve ser aplicado a um determinado problema, deve ser orien-
tada nas caractersticas de cada mtodo que apresentamos nesta seo.
Os mtodos diretos apresentam a soluo de qualquer sistema linear no singular,
porm no temos um controle sobre a preciso da soluo. Aplicados em sistemas de
grande porte e matriz cheia ( dimenso acima 50 50 e poucos elementos a
i,j
= 0 )
apresentam grandes erros de arredondamentos. Os mtodos iterativos permitem um
controle sobre a preciso da soluo, porm estes no se aplicam a qualquer sistema. O
sistema deve satisfazer certas condies de convergncia para que determinado mtodo
seja aplicado.
46 CAPTULO 3. SISTEMAS LINEARES
O Mtodo de Gauss-Jacobi indicado para processamento paralelo ou vetorial, pois
os elementos no passo k + 1 dependem somente dos elementos no passo k. Se T for o
tempo que uma mquina seqencial toma para executar uma iterao. Numa mquina
paralela este tempo cai para T/Np|, onde Np o nmero de processadores.
O Mtodo de Gauss-Seidel no indicado para processamento paralelo, pois o cl-
culo de x
k+1
s
depende de x
k+1
1
, x
k+1
2
, , x
k+1
s1
. Porm este converge mais rapidamente que
o Mtodo de Gauss-Jacobi, quando ambos so executado em processamento seqencial.
Alm disso, todo sistema que satisfaz o Critrio das Linhas tambm satisfaz o Critrio de
Sassenfeld. Ou seja, todo sistema em que podemos aplicar o Mtodo de Gauss-Jacobi,
automaticamente podemos aplicar o Mtodo de Gauss-Seidel.
3.4 Exerccios
Exerccio 3.1 Resolva o sistema linear abaixo, usando o Mtodo de Eliminao de Gauss.
_

_
1.7x
1
+ 2.3x
2
0.5x
3
= 4.55
1.1x
1
+ 0.6x
2
1.6x
3
= 3.40
2.7x
1
0.8x
2
+ 1.5x
3
= 5.50
Exerccio 3.2 Ache a inversa da matriz abaixo.
_
_
_
1 2 2
2 3 2
2 2 1
_
_
_
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:
_
_
_
_
_
_
_
_
_
_
_
_
a
1,1
a
1,2
0 0 0 0 0 0
a
2,1
a
2,2
a
2,3
0 0 0 0 0
0 a
3,2
a
3,3
a
3,4
0 0 0 0
0 0 a
4,3
a
4,4
a
4,5
0 0 0
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
0 0 0 0 0 a
n1,n2
a
n1,n1
a
n1,n
0 0 0 0 0 0 a
n,n1
a
n,n
_
_
_
_
_
_
_
_
_
_
_
_
Faa uma modicao no Mtodo de Eliminao de Gauss explorando a forma do sistema.
[ex32]
Exerccio 3.4 Considere o sistema linear
_
0.0002x
1
+ 2x
2
= 2
2x
1
+ 2x
2
= 4
Calcule a soluo do sistema por Eliminao de Gauss e Pivotamento Parcial, usando
4 casas decimais, sem arredondamento. Calcule o resduo r = b A x e comente seus
resultados. [ex31]
3.4. EXERCCIOS 47
Exerccio 3.5 Dado o sistema linear
_
0.780x + 0.563y = 0.217
0.913x + 0.659y = 0.254
a) Calcule a soluo do sistema por (i)-Eliminao de Gauss e (ii)- Pivotamento Parcial,
usando no mnimo 7 casas decimais, sem arredondamento.
b) Calcule o resduo r = b A x para os casos (i) e (ii).
c) Se no tem a) tivssemos usado 3 casas decimais, o que ocorreria com a soluo do
sistema? Comente seus resultados.
Exerccio 3.6 Mostre que, se um sistema linear satisfaz o Critrio das Linhas, ento este
tambm satisfaz o Critrio de Sassenfeld.
Exerccio 3.7 Seja k um nmero inteiro, positivo, considere:
_

_
kx
1
+x
2
= 2
kx
1
+ 2x
2
+
k
5
x
3
= 3
kx
1
+x
2
+ 2x
3
= 2
a) Verique para que valores de k , a convergncia do Mtodo de Gauss-Jacobi pode
ser garantida.
b) Verique para que valores de k, a convergncia do Mtodo de Gauss-Seidel pode ser
garantida.
c) Utilize um mtodo iterativo adequado para calcular a aproximao da soluo deste
sistema de equaes considerando:
(i) x
(0)
= (1.0, 1.0, 1.0)
T
(ii) Escolha k como o menor inteiro que satisfaa as condies de convergncia.
(iii) Faa duas iteraes e calcule o erro absoluto cometido, usando a norma do mx-
imo.
Exerccio 3.8 Dado o sistema Ax = b podemos montar um processo iterativo da seguinte
forma
x
k+1
= (I +A)x
k
b
a) Enuncie uma condio suciente de convergncia baseada na Norma do Mximo das
Linhas.
b) Faa trs iteraes do processo acima para o sistema linear
_
1.3x
1
+ 0.3x
2
= 1
0.5x
1
0.5x
2
= 0
tomando x
(0)
=
_
0.8
0.8
_
Exerccio 3.9 Enuncie as vantagens e desvantagens dos Mtodos Diretos em relao aos
Mtodos Iterativos.
48 CAPTULO 3. SISTEMAS LINEARES
3.5 Atividades no Laboratrio
Problema 3.1 Implemente as modicaes necessrias no programa do Mtodo de Elimi-
nao de Gauss para que este execute o Pivotamento Parcial
Problema 3.2 Implemente o Mtodo de Gauss-Seidel, junto com o critrio de Sassenfeld.
Teste o programa para o sistema Ax = b, onde
A =
_
_
_
_
_
_
_
_
_
2 1 0 0 0 0
1 2 1 0 0 0
0 1 2 1 0 0
0 0 1 2 1 0
0 0 0 1 2 1
0 0 0 0 1 2
_
_
_
_
_
_
_
_
_
b =
_
_
_
_
_
_
_
_
_
5
8
12
16
20
17
_
_
_
_
_
_
_
_
_
= 10
10
A =
_
_
_
_
_
_
_
15 4 3 2 1
1 15 4 3 2
2 1 15 4 3
3 2 1 15 4
4 3 2 1 15
_
_
_
_
_
_
_
b =
_
_
_
_
_
_
_
30
10
5
15
20
_
_
_
_
_
_
_
= 10
8
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 convel, 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.
4.1 Mtodo dos Mnimos Quadrados - Caso Discreto
Dado um conjunto de pontos (x
k
, f(x
k
)), k = 0, 1, 2, ..., m. O problema de ajuste de curvas
consiste em encontrar uma funo (x) tal que o desvio em cada ponto k, denido por
d
k
= f(x
k
) (x
k
),
seja mnimo, onde (x) uma combinao linear de funes contnuas g
i
(x), i = 1, 2, ..., n,
escolhidas de acordo com os dados do problema. Isto
(x) =
1
g
1
(x) +
2
g
2
(x) + +
n
g
n
(x)
Neste caso dizemos que o ajuste linear sob os parmetros
i
. A escolha das funes
g
i
depende do grco dos pontos, chamado de diagrama de disperso, atravs do qual
podemos visualizar que tipo de curva que melhor se ajusta aos dados.
Exemplo 4.1 Vamos considerar a tabela de pontos dada abaixo.
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 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Figura 4.1: Diagrama de Disperso
[g41]
A anlise do grco de disperso (Fig. 4.1) mostra que a funo que procuramos se
comporta como uma parbola. Logo poderamos escolher as funes g
1
(x) = 1, g
2
(x) = x e
g
3
(x) = x
2
, pois (x) =
1
g
1
(x) +
2
g
2
(x) +
3
g
3
(x) representa todas as parbolas e com a
escolha adequada dos
i
teremos aquela que melhor se ajusta aos pontos. [ex:03]
O Mtodo dos Mnimos Quadrados consiste em determinar os
i
de tal forma que a
soma dos quadrados dos desvios em seja mnimo, Isto : Achar os
i
que minimizam a
funo
F(
1
,
2
, . . . ,
n
) =
m

k=1
[f(x
k
)
(x
k
)
..
(
1
g
1
(x
k
) +
n
g
n
(x
k
))]
2
.
A funo F uma funo que satisfaz F() 0 IR
m
. 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

(
1
,...,
n
)
= 0 i = 1, . . . , n.
Desta forma temos
2
m

k=1
[f(x
k
)
1
g
1
(x
k
)
2
g
2
(x
k
)
n
g
n
(x
k
)] g
i
(x
k
) = 0
4.1. MTODO DOS MNIMOS QUADRADOS - CASO DISCRETO 51
_

1
m

k=1
g
1
(x
k
)g
1
(x
k
) +
2
m

k=1
g
1
(x
k
)g
2
(x
k
) + +
n
m

k=1
g
1
(x
k
)g
n
(x
k
) =
m

k=1
f(x
k
)g
1
(x
k
)

1
m

k=1
g
2
(x
k
)g
1
(x
k
) +
2
m

k=1
g
2
(x
k
)g
2
(x
k
) + +
n
m

k=1
g
2
(x
k
)g
n
(x
k
) =
m

k=1
f(x
k
)g
2
(x
k
)
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

1
m

k=1
g
n
(x
k
)g
1
(x
k
) +
2
m

k=1
g
n
(x
k
)g
2
(x
k
) + +
n
m

k=1
g
n
(x
k
)g
n
(x
k
) =
m

k=1
f(x
k
)g
n
(x
k
)
Que representa um sistema linear n n da forma
_

_
a
1,1

1
+ a
1,2

2
+ a
1,3

3
a
1,n

n
= b
1
a
2,1

1
+ a
2,2

2
+ a
2,3

3
a
2,n

n
= b
2
a
3,1

1
+ a
3,2

2
+ a
3,3

3
a
3,n

n
= b
3
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
a
n,1

1
+ a
n,2

2
+ a
n,3

3
a
n,n

n
= b
n
onde
a
i,j
=
m

k=1
g
i
(x
k
)g
j
(x
k
) e b
i
=
m

k=1
f(x
k
)g
i
(x
k
)
Este sistema tem uma nica soluo se os vetores formados por g
k
= (g
k
(x
1
), g
k
(x
n
))
so linearmente independentes. Isto equivalente a ter as funes g
i
(x) linearmente in-
dependentes. A matriz A associada ao sistema uma matriz simtrica, ou seja a
i,j
= a
j,i
.
Logo, para um sistema n n, ser necessrio calcular (n
2
+n)/2 elementos.
Exemplo 4.2 Usando a tabela do exemplo (4.1), vamos ajustar os dados por uma parbola.
Para isto vamos tomar g
1
(x) = 1, g
2
(x) = x e g
3
(x) = x
2
. Calculando cada uma das funes
nos pontos x
k
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
g
1
(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
g
2
(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
g
3
(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
Calculando os elementos da matriz e o vetor dos termos independentes temos
a
1,1
=
15

k=1
g
1
(x
k
) g
1
(x
k
) = 15
a
1,2
=
15

k=1
g
1
(x
k
) g
2
(x
k
) = 16.29 = a
2,1
a
1,3
=
15

k=1
g
1
(x
k
) g
3
(x
k
) = 22.62 = a
3,1
a
2,2
=
15

k=1
g
2
(x
k
) g
2
(x
k
) = 22.62
52 CAPTULO 4. AJUSTE DE CURVAS: MTODO DOS MNIMOS QUADRADOS
a
2,3
=
15

k=1
g
2
(x
k
) g
3
(x
k
) = 34.92 = a
3,2
a
3,3
=
15

k=1
g
3
(x
k
) g
3
(x
k
) = 57.09
b
1
=
15

k=1
f(x
k
) g
1
(x
k
) = 9.91
b
2
=
15

k=1
f(x
k
) g
2
(x
k
) = 10.28
b
3
=
15

k=1
f(x
k
) g
3
(x
k
) = 12.66
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.99x
2
A gura 4.2 compara a funo (x) com o grcos dos pontos.
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Figura 4.2: Diagrama de Disperso com o grco da (x).
Atravs da funo podemos determinar valores de mximo ou mnimos, determi-
nar valores aproximados para a derivada, aproximar valores de f em pontos que no
pertencem a tabela.
4.2. MTODO DOS MNIMOS QUADRADOS - CASO CONTNUO 53
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 g
1
(x) = 1
e g
2
(x) = sen(x/2). Anal 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
D =
15

k=1
(f(x
k
) (x
k
))
2
= 0.0019
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.
4.2 Mtodo dos Mnimos Quadrados - Caso Contnuo
No caso contnuo temos uma funo f(x) dada num intervalo [a, b] e no mais uma tabela
de pontos. O procedimento anlogo ao caso discreto. Escolhidas as funes bases g
i
devemos determinar a funo (x) =
1
g
1
(x)+
2
g
2
(x)+ +
n
g
n
(x) de modo que o desvio
seja mnimo, onde
D =
_
b
a
(f(x) (x))
2
dx
Neste caso os
i
tambm so determinados pela resoluo de um sistema, onde os
elementos a
i,j
so obtidos por intermdio do produto interno entre as funes g
i
(x) e
g
j
(x) e os elementos b
i
pelo produto interno entre f(x) e g
i
(x), isto ,
a
i,j
=
_
b
a
g
i
(x)g
j
(x)dx e b
i
=
_
b
a
f(x)g
i
(x)dx
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 g
1
(x) = 1,
g
2
(x) = x e g
3
(x) = x
2
. Calculando os termos do sistema linear temos
a
1,1
=
_
1
0
g
1
(x)g
1
(x)dx = 1
a
1,2
=
_
1
0
g
1
(x)g
2
(x)dx =
1
2
= a
2,1
a
1,3
=
_
1
0
g
1
(x)g
3
(x)dx =
1
3
= a
3,1
a
2,2
=
_
1
0
g
2
(x)g
2
(x)dx =
1
3
a
2,3
=
_
1
0
g
2
(x)g
3
(x)dx =
1
4
= a
3,2
54 CAPTULO 4. AJUSTE DE CURVAS: MTODO DOS MNIMOS QUADRADOS
a
3,3
=
_
1
0
g
3
(x)g
3
(x)dx =
1
25
b
1
=
_
1
0
f(x)(x)g
1
(x)dx = 0.636
b
2
=
_
1
0
f(x)g
2
(x)dx = 0.318
b
3
=
_
1
0
f(x)g
3
(x)dx = 0.189
cuja a soluo dada por
1
= 0.027,
2
= 4.032 e
3
= 4.050. Assim temos que
(x) = 0.027 +4.032x 4.050x
2
. A gura (4.3) mostra o grco comparativo entre a funo
f(x) ( linha: ) e o ajuste (x) (linha: ).
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
0.2
0
0.2
0.4
0.6
0.8
1
1.2
Figura 4.3: : f(x) = sen(x); : (x)
4.3 Ajuste No Linear
Existem casos, onde o diagrama de disperso de uma funo indica que os dados devem
ser ajustado por uma funo que no linear com relao aos
i
. Como exemplo, vamos
4.3. AJUSTE NO LINEAR 55
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 gura 4.4) podemos considerar que f(x) tem
um comportamento exponencial. Isto , f(x) (x) =
1
e

2
x
. Note que neste caso o
1 0.5 0 0.5 1 1.5 2 2.5 3
0
0.5
1
1.5
2
2.5
3
3.5
4
Figura 4.4: Diagrama de disperso
parmetro
2
permite que a funo seja ajustada no fator de crescimento da funo.
Diferente do caso linear, onde f(x) (x) =
1
+
2
e
x
, cujo o fator de crescimento xo.
Desta forma, a aproximao no linear pode permitir uma exibilidade maior no ajuste
da funo. Todavia, um processo de linearizao deve ser empregado, para que seja
possvel aplicar o Mtodo dos Mnimos Quadrados.
O conceito de linearizao esta relacionado com a idia de funo inversa, pois se
f(x) = y, ento h(x) = f
1
(f(x)) = x, isto , a inversa de uma funo (quando existe)
aplicada em nela prpria resulta numa reta. No exemplo acima temos uma esponencial,
cuja a inversa a funo ln(x). Logo podemos proceder da seguinte forma.
f(x) =
1
e

2
x
z = ln(f(x)) = ln(
1
) +
2
x.
Fazendo
1
= ln(
1
) e
2
=
2
o problema consiste em ajustar os dados de z por uma
reta. Para isto tomamos g
1
(x) = 1 e g
2
(x) = x. Calculando as funes em cada um dos
56 CAPTULO 4. AJUSTE DE CURVAS: MTODO DOS MNIMOS QUADRADOS
pontos temos
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
z = ln(f(x)) 1.851 1.452 1.049 0.650 0.251 0.150 0.549 0.950 1.350
g
1
(x) 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000
g
2
(x) 1.0 0.5 0 0.5 1.0 1.5 2.0 2.5 3.0
Calculando os elementos da matriz e vetor dos termos independente temos que
a
1,1
=
9

k=1
g
1
(x
k
) g
1
(x
k
) = 9
a
1,2
=
9

k=1
g
1
(x
k
) g
2
(x
k
) = 9 = a
2,1
a
2,2
=
9

k=1
g
2
(x
k
) g
2
(x
k
) = 24
b
1
=
15

k=1
z(x
k
) g
1
(x
k
) = 2.254
b
2
=
15

k=1
z(x
k
) g
2
(x
k
) = 9.749
Cuja a soluo dada por

1
= 1.050 e
2
= 0.800
Desta forma os valores de
i
so dados por:

1
= e

1
= 0.349 e
2
=
2
= 0.800
Portanto temos
(x) =
1
e

2
= 0.349e
0.800x
A Figura 4.5 mostra a comparao dos dados com a funo obtida. Para vericar 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.
4.4 Observaes Finais
O ajuste de curvas permite extrapolar os valores tabelados. Isto , se os dados esto
tabelados num intervalo [x
0
, x
m
] podemos aproximar um x , [x
0
, x
m
] com uma certa se-
gurana. Como os dados provm de experimentos que esto sujeitos a erros de medies,
4.4. OBSERVAES FINAIS 57
1 0.5 0 0.5 1 1.5 2 2.5 3
0
0.5
1
1.5
2
2.5
3
3.5
4
Figura 4.5: Diagrama de Disperso e o Grco da (x)
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 a
i,j
so obtidos pelo produto interno entre as funes g
i
e g
j
denidos
por
Caso Discreto: g
i
, g
j
) =
m

k=1
g
i
(x
k
)g
j
(x
k
)
Caso Contnuo: g
i
, g
j
) =
_
b
a
g
i
(x)g
j
(x)dx
Se as funes g
i
forem ortogonais, isto
g
i
, g
j
) =
_
0, para i ,= j
k
i
, para i = j
a matriz obtida ser diagonal e conseqentemente a soluo do sistema imediata.
Como exemplo, veja exerccio 4.5.
58 CAPTULO 4. AJUSTE DE CURVAS: MTODO DOS MNIMOS QUADRADOS
1 0.5 0 0.5 1 1.5 2 2.5 3
2
1.5
1
0.5
0
0.5
1
1.5
Figura 4.6: Diagrama dos dados linearizados
4.5 Exerccios
Exerccio 4.1 Usando os dados abaixo, faa um ajuste de curva com g
1
(x) = 1 e g
2
(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.2 Dada a tabela abaixo
x 0.50 0.75 1.00 1.50 2.00 2.50 3.00
f(x) 0.479 0.681 0.841 0.997 0.909 0.598 0.141
Entre os grupos de funes bases abaixo, escolha aquele que representar melhor
resultado num ajuste de curvas. Justique sua escolha. Faa um ajuste considerando
sua escolha.
Grupo I: g
1
(x) = 1 e g
2
(x) = x.
Grupo II: g
1
(x) = 1 e g
2
(x) = e
x
.
Grupo III: g
1
(x) = 1 e g
2
(x) = x
2
.
4.6. ATIVIDADE NO LABORATRIO 59
Exerccio 4.3 A tabela abaixo representa o calor especco 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 umajuste linear, umquadrtico e umcbico. Faa umajuste no linear da forma
(x) =
1
e

2
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?
Exerccio 4.4 Ajustar os dados abaixo funo z =
1
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
Verique, pelo teste do alinhamento, qual a melhor escolha para ajustar os dados
entre as funes z =
1

2
x
e z =
1
x

2
. (Obs: Note que neste caso a tabela apresenta dois
valores diferentes para os pontos x = 0.5 e x = 0.8. ) [ex4:02]
Exerccio 4.5 Usando os polinmios de Legendre g
1
(x) = 1, g
2
(x) = x e g
2
(x) =
1
2
(3x
2
1),
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 g
i
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)g
2
(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.
4.6 Atividade no Laboratrio
Problema 4.1 Implemente o ajuste de curvas, de tal modo que o usurio possa escolher o
nmero de funes bases e os tipos de funes entre os grupos:
Grupo I: g
1
(x) = 1, g
2
(x) = x, g
3
(x) = x
2
, . . . , g
n
(x) = x
n1
.
Grupo II: g
1
(x) = cos(x), g
2
(x) = cos(2x), g
3
(x) = cos(3x), . . . , g
n
(x) = cos(nx).
Grupo III: g
1
(x) = 1, g
2
(x) = e
x
, g
3
(x) = e
2x
, . . . , g
n
(x) = e
(n1)x
.
Teste programa para os dados gerados pelo programa abaixo e comente os resultados
obtidos
% Gera pontos para teste de ajuste
n=input(Numero de pontos );
h=2/n;
x=-1:h:1;
f=exp(-4*(x*2).^2).*(-16*x);
60 CAPTULO 4. AJUSTE DE CURVAS: MTODO DOS MNIMOS QUADRADOS
CAPTULO
5
Interpolao Polinomial
A interpolao outra forma de encontrar uma funo que represente um conjunto de
dados tabelados. Interpolar um conjunto de dados (x
k
, f
k
), k = 0, 1, , n, consiste em
encontrar uma funo p
n
(x), escolhida numa classe de funes, tal que esta satisfaa
certas propriedades. Neste captulo vamos considerar o caso onde p
n
(x) um polinmio
de tal forma que
f
k
= p(x
k
), k = 0, 1, 2, , n.
Esta condio chamada de condio de interpolao e o polinmio que satisfaz esta
condio chamado de polinmio interpolador.
Teorema 5.1 (Existncia e Unicidade) Dado um conjunto de n + 1 pontos distintos, isto
(x
k
, f
k
), k = 0, 1, n, com x
k
,= x
j
para k ,= j. Existe um nico polinmio p(x) de grau
menor ou igual a n, tal que p(x
k
) = f
k
para k = 0, 1, 2, , n.
Prova: Seja p(x) = a
0
+ a
1
x + a
2
x
2
+ + a
n
x
n
. Para obter os a
i
usamos a condio de
interpolao f
k
= p(x
k
) para k = 0, 1, 2, , n. Logo, segue que:
f
0
= p(x
0
) = a
0
+a
1
x
0
+a
2
x
0
2
+ +a
n
x
0
n
f
1
= p(x
1
) = a
0
+a
1
x
1
+a
2
x
1
2
+ +a
n
x
1
n
.
.
. =
.
.
.
.
.
.
.
.
.
f
n
= p(x
n
) = a
0
+a
1
x
n
+a
2
x
n
2
+ +a
n
x
n
n
Que corresponde ao sistema linear da forma
_
_
_
_
_
_
_
_
1 x
0
x
0
2
x
0
n
1 x
1
x
1
2
x
1
n
1 x
2
x
2
2
x
2
n
.
.
.
.
.
.
.
.
.
.
.
.
1 x
n
x
n
2
x
n
n
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
_
a
0
a
1
a
2
.
.
.
a
n
_
_
_
_
_
_
_
_
=
_
_
_
_
_
_
_
_
f
0
f
1
f
2
.
.
.
f
n
_
_
_
_
_
_
_
_
61
62 CAPTULO 5. INTERPOLAO POLINOMIAL
A matriz A, associada ao sistema, uma matriz de Vandermonde, cujo o determinante
dado por
Det(A) =
n

l=1
l1

j=0
(x
l
x
j
).
Como x
l
,= x
j
para l ,= j, segue que o determinante da matriz A diferente de zero e
portanto o sistema admite uma nica soluo
Exemplo 5.1 Vamos achar uma aproximao para f(0.3) usando o polinmio interpolador
dos dados abaixo.
x
k
0.0 0.2 0.4
f
k
4.00 3.84 3.76
Como temos, trs pontos (n + 1 = 3), o grau do polinmio ser menor ou igual a dois. Logo
p(x) = a
0
+a
1
x +a
2
x
2
Impondo a condio f
k
= p(x
k
) obtemos:
f
0
= 4.00 = p(0) = a
0
+a
1
0 +a
2
0
2
f
1
= 3.84 = p(0.2) = a
0
+a
1
0.2 +a
2
0.2
2
f
2
= 3.76 = p(0.4) = a
0
+a
1
0.4 +a
2
0.4
2
Que equivale ao sistema linear na forma matricial
_
_
_
1 0 0 4.00
1 0.2 0.04 3.84
1 0.4 0.16 3.76
_
_
_
A soluo deste sistema a
0
= 4, a
1
= 1 e a
2
= 1, obtendo assim
p(x) = x
2
x + 4
Desta forma
f(0.3) p(0.3) = 3.79
Existem outras formas de encontrar o polinmio interpolador que a resoluo de sis-
temas. O Teorema 5.1 garante a unicidade do polinmio interpolador. Logo estes pro-
cedimentos resultam no mesmo polinmio p
n
(x). A escolha de um ou outro procedimento
depende dos dados que devemos interpolar.
5.1. FORMA DE LAGRANGE 63
5.1 Forma de Lagrange
Vamos considerar o conjunto de n+1 pontos (x
k
, f
k
), k = 0, 1, . . . n distintos e vamos
considerar o polinmio representado por
p
n
(x) = f
0
L
0
(x) +f
1
L
1
(x) + +f
n
L
n
(x) =
n

k=0
f
k
L
k
(x)
onde L
k
(x) um polinmio de grau n que satisfaz a relao
L
k
(x
j
) =
_
0 se k ,= j
1 se k = j
Com isto temos que
p
n
(x
j
) = f
0
L
0
(x
j
)
0
+f
1
L
1
(x
j
)
0
+ +f
j
L
j
(x
j
)
1
+ +f
n
L
n
(x
j
)
0
= f
j
Logo p
n
(x) satisfaz a condio de interpolao, sendo assim, o polinmio interpolador
de f(x) nos pontos x
0
, x
1
, . . . , x
n
. Os polinmios L
k
(x) so chamados de polinmios de
Lagrange e estes so obtidos da seguinte forma:
L
k
(x) =
(x x
0
)(x x
1
) (x x
k1
)(x x
k+1
) (x x
n
)
(x
k
x
0
)(x
k
x
1
) (x
k
x
k1
)(x
k
x
k+1
) (x
k
x
n
)
Exemplo 5.2 Vamos considerar a tabela de pontos do exemplo anterior
x 0.0 0.2 0.4
f(x) 4.00 3.84 3.76
Calculando os L
k
(x) temos
L
0
(x) =
(x x
1
)(x x
2
)
(x
0
x
1
)(x
0
x
2
)
=
(x 0.2)(x 0.4)
(0 0.2)(0 0.4)
=
1
0.08
(x
2
0.6x + 0.08)
L
1
(x) =
(x x
0
)(x x
2
)
(x
1
x
0
)(x
1
x
2
)
=
(x 0)(x 0.4)
(0.2 0)(0.2 0.4)
=
1
0.04
(x
2
0.4x)
L
2
(x) =
(x x
0
)(x x
1
)
(x
2
x
0
)(x
2
x
1
)
=
(x 0)(x 0.2)
(0.4 0)(0.4 0.2)
=
1
0.08
(x
2
2.6x)
Assim temos que
p(x) = x
2
x + 4
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
5.2 Forma de Newton
A forma de Newton do polinmio interpolador baseada nos operadores de diferenas di-
vididas, que denimos a seguir: Seja f(x) uma funo tabelada em n+1 pontos distintos
x
0
, x
1
, . . . , x
n
. Denimos o operador de diferena dividida de ordem zero em x
k
por
f[x
k
] = f(x
k
).
O operador de diferena dividida de ordem um, nos pontos x
k
, x
k+1
, denido da seguinte
forma
f[x
k
, x
k+1
] =
f[x
k
] f[x
k+1
]
x
k
x
k+1
Este valor pode ser interpretado como uma aproximao para a primeira derivada de
f(x), em x
k
. O operador de diferena dividida de ordem dois, nos pontos x
k
, x
k+1
, x
k+2
,
denido da seguinte forma:
f[x
k
, x
k+1
, x
k+2
] =
f[x
k
, x
k+1
] f[x
k+1
, x
k+2
]
x
k
x
k+2
.
De forma anloga, denimos o operador diferena dividida de ordem n, nos pontos
x
k
, x
k+1
, . . . , x
k+n
, da seguinte forma:
f[x
k
, x
k+1
, . . . , x
k+n
] =
f[x
k
, x
k+n1
] f[x
k+1
, x
k+n
]
x
k
x
k+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[x
k
] f[x
k
, x
k+1
] f[x
k
, x
k+1
, x
k+2
] f[x
k
, x
k+1
, . . . , x
k+n
]
x
0
f
0
>
f
0
f
1
x
0
x
1
x
1
f
1
>
f[x
0
,x
1
]f[x
1
,x
2
]
x
0
x
2
>
f
1
f
2
x
1
x
2
x
2
f
2
>
f[x
1
,x
2
]f[x
2
,x
3
]
x
1
x
3
>
f
2
f
3
x
2
x
3
>
f[x
0
,...,x
n1
]f[x
1
,...,x
n
]
x
0
x
n
x
3
f
3
.
.
.
.
.
.
.
.
.
x
n1
f
n1
>
f
n1
f
n
x
n1
x
n
x
n
f
n
5.2.1 Construo do Polinmio
Vamos considerar o conjunto de pontos x
0
, x
1
, . . . , x
n
, onde conhecemos os valores da
funo f(x), dados por f
0
, f
1
, . . . , f
n
. Calculando a diferena dividida de ordem dois entre
5.2. FORMA DE NEWTON 65
os pontos x, x
0
, x
1
temos
f[x, x
0
, x
1
] =
f[x, x
0
] f[x
0
x
1
]
x x
1
Isolando a diferena de ordem um que depende de x segue que
f[x, x
0
] = f[x
0
, x
1
] + (x x
1
)f[x, x
0
, x
1
]
Aplicamos a denio de diferena de ordem um no primeiro termo, segue que
f(x) f(x
0
)
x x
0
= f[x
0
, x
1
] + (x x
1
)f[x, x
0
, x
1
],
e isto implica que
f(x) = f(x
0
) +x x
0
f[x
0
, x
1
] + (x x
0
)(x x
1
)f[x, x
0
, x
1
] = p
1
(x) +E
1
(x).
Ou seja a funo f(x) igual a um polinmio de grau um ,p
1
(x), mais uma funo E
1
(x)
que depende da diferena dividida de ordem dois. Desta forma podemos dizer que a
funo f(x) aproximada por p
1
(x) com erro de E
1
(x). O polinmio p
1
(x) o polinmio
interpolador de f(x), nos pontos x
0
, x
1
, pois este satisfaz a condio de interpolao, isto
,
p
1
(x
0
) = f(x
0
) + (x
0
x
0
)
0
f[x
0
, x
1
] + (x
0
x
0
)
0
(x x
1
)f[x, x
0
, x
1
]
= f(x
0
)
p
1
(x
1
) = f(x
0
) + (x
1
x
0
)f[x
0
, x
1
] + (x
1
x
0
)(x x
1
)
0
f[x, x
0
, x
1
]
= f(x
0
) + (x
1
x
0
)
f(x
0
) f(x
1
)
x
0
x
1
= f(x
1
)
De forma anloga, podemos calcular a diferena dividida de ordem n, sobre os pontos
x, x
0
, x
1
, . . . , x
n
, obtendo
f(x) = p
n
(x) +E
n
(x),
onde
p
n
(x) = f(x
0
) + (x x
0
)f[x
0
, x
1
] + (x x
0
)(x x
1
)f[x
0
, x
1
, x
2
] + +
(x x
0
)(x x
1
) (x x
n1
)f[x
0
, x
1
. . . , x
n
] [eq5:01] (5.1)
E
n
(x) = (x x
0
)(x x
1
) (x x
n
)f[x, x
0
, x
1
, . . . , x
n
] [eq5:02] (5.2)
Assim podemos aproximar f(x) por p
n
(x), sendo que o erro dado por E
n
(x). O polinmio
p
n
(x) o polinmio interpolador de f(x) sobre os pontos x
0
, x
1
, . . . x
n
, pois p(x
j
) = f(x
j
),
para j = 0, 1, . . . , n.
66 CAPTULO 5. INTERPOLAO POLINOMIAL
Exemplo 5.3 Vamos considerar a funo f(x) tabelada abaixo.
x 0 0.5 1 1.5
f(x) 0.0000 1.1487 2.7183 4.9811
Montando a tabela das diferenas divididas temos
x
k
f[x
k
] f[x
k
, x
k+1
] f[x
k
, .., x
k+2
] f[x
k
, .., x
k+3
]
0.0 0.0000
2.2974
0.5 1.1487 0.8418
3.1392 0.36306
1.0 2.7183 1.3864
4.5256
1.5 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(x
0
) +x x
0
f[x
0
, x
1
] + (x x
0
)(x x
1
)f[x
0
, x
1
, x
2
] + (x x
0
)(x x
1
)(x x
2
)f[x
0
, x
1
, x
2
, x
3
]
= 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.29721x
2
+ 0.36306x
3
5.3 Estudo do Erro
A equao (5.2) representa o erro cometido na interpolao sobre os pontos x
0
, . . . , x
n
. Se
aproximamos f( x) p
n
( x) o erro ser dado por E
n
( x). Porm este depende da diferena
dividida f[ x, x
0
, x
1
, . . . , x
n
], que por sua vez, depende do valor de f( x). Como a funo
f(x) tabelada, no temos como calcular este valor. Estimativas para o erro podem ser
obtidas se conhecemos algumas propriedades da funo.
Teorema 5.2 Sejam x
0
, x
1
, . . . , x
n
, n + 1 pontos distintos. Seja p
n
(x) o polinmio interpo-
lador sobre x
0
, x
1
, . . . , x
n
. Se f(x) n+1 vezes diferencivel em[x
0
, x
n
] ento para x [x
0
, x
n
]
o erro dado por:
E
n
( x) = f( x) p
n
( x) = ( x x
0
)( x x
1
) ( x x
n
)
f
(n+1)
()
(n + 1)!
com [x
0
, x
n
]
[teo:51]
Prova: Seja G(x) = (x x
0
)(x x
1
) (x x
n
), logo G(x
i
) = 0 para i = 0, 1, . . . n.
Seja H(t) = E
n
(x)G(t) E
n
(t)G(x), logo H satisfaz
1: H(t) possui derivadas at ordem n+1, pois G e E
n
possuem derivadas at esta ordem.
2: H(t) possui pelo menos (n + 2) zeros em [x
0
, x
n
], pois para t = xi temos
H(x
i
) = E
n
(x)G(x
i
)
0
E
n
(x
i
)
0
G(x) = 0
e para t = x temos H(x) = En(x)G(x) En(x)G(x) = 0.
5.4. ESCOLHA DOS PONTOS 67
3: Aplicando o Teorema de Rolle a H(t) e suas derivadas at ordem n + 1, temos
H(t) tem n + 2 zeros em [x
0
, x
n
]
H

(t) tem n + 1 zeros em [x


0
, x
n
]
H

(t) tem n zeros em [x


0
, x
n
]
.
.
.
.
.
.
H
(n+1)
tem 1 zeros em [x
0
, x
n
]
Por ouro lado temos que
H
(n+1)
(t) = E
n
(x)G
(n+1)
(t) E
n
(n+1)
(t)G(x)
onde,
E
n
(n+1)
(t) = f
(n+1)
(t) p
n
(n+1)
(t)
G
(n+1)
(t) = (n + 1)!
Como o polinmio p
n
de grau n temos que p
n
(n+1)
(t) = 0 e segue que
H
(n+1)
(t) = E
n
(x)(n + 1)! f
(n+1)
(t)G(x)
A funo H
(n+1)
(t) possui um zero em [x
0
, x
n
] que vamos chamar de . Substituindo na
equao acima temos que
E
n
(x) = (x x
0
)(x x
1
) (x x
n
)
f
(n+1)
()
(n + 1)!
Na prtica usamos um limitante para o erro, sendo
[E
n
(x)[ [(x x
0
)(x x
1
) (x x
n
)[ max
x[x
0
,x
n
]
[f
(n+1)
(x)[
(n + 1)!
,
onde temos que ter alguma informao sobre a funo que permita limitar sua derivada
de ordem n + 1.
5.4 Escolha dos Pontos
Uma das caractersticas da interpolao que esta pode fornecer uma aproximao
local, sem a necessidade de usar todos os dados disponveis. Como exemplo, vamos
considerar a tabela abaixo
x 0.2 0.34 0.4 0.52 0.6 0.72
f(x) 0.16 0.22 0.27 0.29 0.32 0.37
.
68 CAPTULO 5. INTERPOLAO POLINOMIAL
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 x
0
= 0.34, x
1
= 0.4 e x
2
= 0.52.
Isto se justica pela frmula do erro, pois
[E
n
(0.44)[ [(0.44 0.34)(0.44 0.4)(0.44 0.52)[ max
x[x
0
,x
2
]
[f
(n+1)
(x)[
(n + 1)!
= 0.00032 max
x[x
0
,x
2
]
[f
(n+1)
(x)[
(n + 1)!
Se tivssemos escolhido x
0
= 0.2 e x
2
= 0.72, o erro estaria limitado por
[E
n
(0.44)[ 0.00268 max
x[x
0
,x
2
]
[f
(n+1)
(x)[
(n + 1)!
.
5.5 Interpolao Inversa
Considere o seguinte problema:
Dada uma tabela de pontos (x
k
, f
k
) e um nmero y [f
0
, f
n
]. Desejamos achar o valor
de x de tal forma que f(x) = y.
Temos duas formas de resolver o problema: Obter o polinmio interpolador de f(x)
e resolver a equao p
n
(x) = y. Em geral a equao p
n
(x) = y tem mais de uma soluo
e se o grau do polinmio for maior que 2, no temos um procedimento analtico que
determine as solues. A outra forma de se achar x fazer uma interpolao inversa.
Se f(x) inversvel num intervalo contendo y, ento interpolamos a funo inversa, isto
consideramos o conjunto de dados x = f
1
(y) e achamos o polinmio interpolador de
f
1
(y).
A condio para que a funo seja inversvel que esta seja montona crescente
ou decrescente. Em termos dos pontos tabelados isto signica que os pontos devem
satisfazer f
0
< f
1
< < f
n
ou f
0
> f
1
> > f
n
Exemplo 5.4 Dada a tabela de pontos
x 0.2 0.3 0.4 0.5 0.6 0.7 0.8
f(x) 0.587 0.809 0.951 1.000 0.951 0.809 0.587
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 vericar 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
y 0.587 0.809 0.951 1.000
f
1
(y) 0.2 0.3 0.4 0.5
Como desejamos um polinmio de grau 2, devemos escolher trs pontos e a melhor escolha
so os pontos que esto mais prximos do valor a ser aproximado, y = 0.9 (x
0
= 0.809, x
1
=
0.951 e x
2
= 1.000). Calculando as diferenas divididas temos
y f
1
ordem 1 ordem 2
0.809 0.3
0.704
0.951 0.4 6.999
2.040
1.000 0.5
e conseqentemente o polinmio dado por
p(y) = 0.3 + (y 0.809)0.704 + (y 0.951)(y 0.809)6.999
= 5.115 11.605y + 6.994y
2
Portanto o valor de x tal que f(x) = 0.9 aproximado por x = f
1
(0.9) p(0.9) = 0.3315.
5.6 Observaes Finais
Como no caso do ajuste de curvas, a interpolao aproxima uma funo, sobre um
conjunto de dados. Porm a interpolao exige que os pontos sejam distintos. Fato que
no precisa ocorrer com o ajuste de curvas. Alm disso, o grau do polinmio interpolador
depende da quantidade de pontos. Logo para um conjunto de 100 pontos teremos um
polinmio de grau 99, o que no muito prtico se desejamos montar um modelo
matemtico. A interpolao mais indicada para aproximaes quantitativas e locais,
enquanto que o ajuste de curvas indicado para uma aproximaes qualitativas. Se
desejamos saber a taxa de variao de uma determinada funo (ou seja a derivada),
o mais indicado o ajuste de curvas, pois na interpolao no temos garantia de que
f

(x) p

n
(x) (Veja gura 5.1).
Se a funo que estamos interpolando, sobre n + 1 pontos um polinmio de grau
n, ento o polinmio interpolador a prpria f(x). Isto pode ser vericado pela frmula
do erro, onde o termo f
(n+1)
() = 0 [x
0
, x
n
].
A medida que aumentamos a quantidade de pontos num intervalo [a, b], ocorre o
fenmeno de Runge, que caracterizado em aumentar o erro nos pontos extremos do
intervalo e melhorar a aproximao nos pontos centrais. Isto justicado pela frmula
do erro, em que os pontos extremos do intervalo faz com que o fator (xx
0
) (xx
n
) seja
grande. Desta forma, o polinmio interpolador no indicado para extrapolar valores,
isto aproximar valores que no pertencem ao intervalo [x
0
, x
n
]. Abaixo apresentamos
um exemplo implementado no MatLab, onde a gura 5.1 mostra o fenmeno de Runge.
% Diciplina de Calculo Numerico - Prof. J. E. Castilho
% Forma de Lagrange do Pol. Interpolador
% Interpola a funcao f(x)=1/(1+25x^2) nos pontos
70 CAPTULO 5. INTERPOLAO POLINOMIAL
1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1
0.5
0
0.5
1
1.5
2
Figura 5.1: Fenmeno de Runge. - - - p
n
(x), f(x)
% 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
a) Usando o polinmio interpolador de grau 2, na forma de Lagrange, ache uma aproxi-
mao para a populao no ano de 1959.
b) Usando interpolao quadrtica na forma de Newton, estime, com o menor erro pos-
svel, em que ano a populao ultrapassou os 50 milhes.
c) Com os resultados obtidos no tem a) podemos estimar a taxa de crescimento da
populao neste perodo? Justique sua resposta.
Exerccio 5.2 Considere a funo f(x) =

x e os pontos x
0
= 16, x
1
= 25 e x
2
= 36. Com
que preciso podemos calcular

20, usando interpolao sobre estes pontos?
Exerccio 5.3 Considere o problema de interpolao linear para f(x) = sen(x)+x, usando
os pontos x
0
e x
1
= x
0
+h. Mostre que [E
1
(x)[ h
2
/8.
Exerccio 5.4 Dada a tabela abaixo.
x -0.2 -0.1 0.1 0.15 0.35
f(x) 0.980 0.995 0.996 0.988 0.955
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.
b) Se tivssemos usado o polinmio interpolador na forma de Lagrange sobre os mesmos
pontos obteramos melhor resultado? Justique.
Exerccio 5.5 Numexperimento de laboratrio, uma reao qumica liberou calor de acordo
com as medies mostradas na tabela abaixo
72 CAPTULO 5. INTERPOLAO POLINOMIAL
hora 8:00 hr 9:00 hr 9:30 hr 10:00 hr
C
o
0 130 210 360
a) Determine uma funo que d a temperatura em funo do tempo, de modo que os
pontos tabelados sejam representados sem erro.
b) Calcule a provvel temperatura ocorrida s 9:45 hr.
5.8 Atividades no Laboratrio
Problema 5.1 Faa as modicaes necessrias no cdigo apresentado no nal deste
captulo, de tal forma que, o novo cdigo calcule o polinmio interpolador para os dados do
problema 4.1. Compare as aproximaes obtidas pela interpolao e o ajuste obtido pelo
Grupo I de funes.
CAPTULO
6
Integrao Numrica - Frmulas de
Newton Ctes
O objetivo deste captulo estudar esquemas numricos que aproxime a integral denida
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
_
b
a
f(x)dx A
0
f(x
0
) +A
1
f(x
1
) + A
n
f(x
n
) =
n

i=0
A
i
f(x
i
)
onde os pontos so igualmente espaados, isto x
k
= x
0
+ kh, com h = (b a)/n, e os
coecientes A
i
so determinado pelo polinmio escolhido para aproximar a funo f(x).
6.1 Regra do Trapzio
A Regra do Trapzio a frmula de Newton-Ctes que aproxima a funo f(x) pelo
polinmio interpolador de grau 1 sobre os pontos x
0
= a e x
1
= b. O polinmio interpo-
lador de grau um, na forma de Newton dado por
p
1
(x) = f(x
0
) +f[x
0
, x
1
](x x
0
).
Desta forma vamos aproximar a integral da funo f(x) pela integral do polinmio, ob-
tendo
_
b
a
f(x)dx
_
x
1
x
0
p
1
(x)dx
73
74 CAPTULO 6. INTEGRAO NUMRICA - FRMULAS DE NEWTON CTES
=
_
x
1
x
0
f(x
0
) +f[x
0
, x
1
](x x
0
)dx
= f(x
0
)(x
1
x
0
) +f[x
0
, x
1
]
_
x
1
2
2

x
0
2
2
x
0
(x
1
x
0
)
_
= f(x
0
)(x
1
x
0
) +
f(x
1
) f(x
0
)
x
1
x
0
(x
1
x
0
)
2
2
=
(x
1
x
0
)
2
(f(x
0
) +f(x
1
))
=
h
2
(f(x
0
) +f(x
1
)),
onde h = x
1
x
0
. A frmula acima representa a rea do trapzio que tem f(x
1
) e f(x
0
)
como os valores das bases e h como o valor da altura. Na gura 6.1 temos uma repre-
sentao desta aproximao.
a
||
x
0
b
||
x
1
f(x)
p(x)
f(x
0
)
f(x
1
)
6.2 Clculo do Erro
No captulo de interpolao vimos que uma funo f(x) pode ser representada por
f(x) = p
n
(x) +E
n
(x),
6.2. CLCULO DO ERRO 75
onde p
n
(x) o polinmio interpolador e E
n
(x) o erro na interpolao denido no Teorema
5.2. Calculando a integral da funo f(x) no intervalo [a, b], segue que
_
b
a
f(x)dx =
_
b
a
p
n
(x)dx +
_
b
a
E
n
(x)dx,
ou seja o erro na integrao dado pela integrao do erro cometido na interpolao. No
caso da Regra do Trapzio segue que o erro dado por
E
T
=
_
b
a
E
1
(x)dx =
_
b
a
(x x
0
)(x x
1
)
f

()
2
dx =
h
3
12
f

(), [a, b]
Como o erro depende do ponto , que desconhecido, na prtica usamos a estima-
tiva
[E
T
[
h
3
12
max
[a,b]
[f

()[
Exemplo 6.1 Como exemplo, vamos considerar a funo f(x) = e
x
2
, cuja a primitiva,
conhecida como funo de Gauss, descrita na forma de uma srie. Vamos aproximar a
integral no intervalo [0, 1] usando a Regra do Trapzio. Desta forma temos que h = 10 = 1
e segue que
_
1
0
e
x
2
dx
1
2
(e
0
2
+e
2
2
) = 0.6839397
Para calcular o erro cometido temos que limitar a segunda derivada da funo no intervalo
[0, 1]. Sendo
f

(x) = (4x
2
2)e
x
2
temos que nos extremos do intervalo vale
[f

(0)[ = 2 e [f

(1)[ = 0.735759.
Para calcular os pontos crticos da f

(x), devemos derivar f

(x) e igualar a zero, obtendo,


f

(x) = (12x 8x
3
)e
x
2
= 0 x = 0 ou x =
_
3
2
Como o nico ponto crtico pertencente ao intervalo x = 0 segue que
max
[a,b]
[f

()[ = 2
Com isto temos que
E
T

h
3
12
max
[a,b]
[f

()[ =
1
6
= 0.166667
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
6.3 Regra do Trapzio Repetida
A Regra do Trapzio aproxima bem funes suaves ( [f

(x)[ 1) e/ou em intervalos de


integrao de amplitude pequena. Para intervalos de amplitude grande podemos fazer
uma subdiviso do intervalo de integrao [a, b] em n subintervalos de mesma amplitude
e aplicamos a Regra do Trapzio em cada subintervalo (Ver Figura 6.1). Neste caso temos
a b
Figura 6.1: Regra do Trapzio Repetida
que
h =
b a
n
e x
k
= x
0
+kh com k = 0, 1, . . . , n
Aplicando a Regra do Trapzio em cada subintervalo [x
k
, x
k+1
] segue que
_
b
a
f(x)dx
h
2
(f
0
+f
1
) +
h
2
(f
1
+f
2
) +
h
2
(f
2
+f
3
) + +
h
2
(f
n2
+f
n1
) +
h
2
(f
n1
+f
n
)
=
h
2
[f
0
+ 2(f
1
+f
2
+ +f
n1
) +f
n
]
O erro cometido na aproximao igual a soma dos erros cometidos em cada subin-
tervalo, logo temos que o erro da forma
[E
TG
[ n
h
3
12
max
[a,b]
[f

()[
6.4. REGRA DE SIMPSON 1/3 77
Exemplo 6.2 Considerando a funo do exemplo anterior, f(x) = e
x
2
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 [E
TG
[ 10
4
, logo
n
h
3
12
max
[0,1]
[f

()[ 10
4
Sendo h = (b a)/n e que o mximo da segunda derivada da funo em [0, 1] 2 (Ver ex.
anterior) segue que
n
h
3
12
max
[0,1]
[f

()[ 10
4
n
1
n
3
1
12
2 10
4

1
n
2
6 10
4
n
2
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)
6.4 Regra de Simpson 1/3
Neste caso, usamos o polinmio de grau 2 que interpola a funo f(x). Para isto ne-
cessitamos de trs pontos x
0
, x
1
e x
2
. Como os pontos devem ser igualmente espaados
tomamos h = (b a)/2 Na gura 6.4 temos uma representao desta aproximao para
uma funo f(x). Para obter a aproximao da integral vamos considerar o polinmio
interpolador na forma de Newton,
p
2
(x) = f(x
0
) + (x x
0
)f[x
0
, x
1
] + (x x
0
)(x x
1
)f[x
0
, x
1
, x
2
].
E com isto segue que a integral da funo f(x) aproximada por
_
b
a
f(x)dx
_
x
2
x
0
p
2
(x)dx
=
h
3
(f(x
0
) + 4f(x
1
) +f(x
2
)),
78 CAPTULO 6. INTEGRAO NUMRICA - FRMULAS DE NEWTON CTES
a
||
x
0
x
1
b
||
x
2
f(x
0
)
f(x
1
)
f(x
2
)
De forma anloga a Regra do Trapzio, obtemos a frmula do erro, integrando o erro
cometido na interpolao. Desta forma obtemos
E
S
=
_
b
a
E
2
(x)dx =
_
b
a
(x x
0
)(x x
1
)(x x
2
)
f

()
3!
dx =
h
5
90
f
(iv)
(), [a, b]
Na prtica usamos a estimativa para o erro
[E
S
[
h
5
90
max
[a,b]
[f
(iv)
()[
Exemplo 6.3 Vamos considerar a funo do exemplo anterior: f(x) = e
x
2
no intervalo
[0, 1]. Para usar a Regra de Simpson temos que ter trs pontos. Desta forma tomamos
h =
b a
2
=
1 0
2
=
1
2
E com isto segue a aproximao dada por:
_
b
a
f(x)dx
1
6
(f(0) + 4f(1/2) +f(1)) = 0.74718
A limitao do erro depende da limitao da quarta derivada da funo no intervalo
[0, 1], sendo:
f
(iv)
(x) = (12 48x
2
+ 16x
4
)e
x
2
6.5. REGRA DE SIMPSON REPETIDA 79
Calculando nos extremos do intervalo temos
[f
(iv)
(0)[ = 12 e [f
(iv)
(1)[ = 0.735759
Calculando os pontos crticos temos
f
(v)
(x) = (32x
5
+ 160x
3
120x)e
x
2
= 0 x = 0 ou x = 0.958572 ou x = 2.02018
Como o ponto x = 0.958572 pertence ao intervalo [0,1] temos
[f
(iv)
(0.958572)[ = 7.41948
Assim temos que
max
[a,b]
[f
(iv)
()[ = 12
Obtemos desta forma que
E
S
=
h
5
90
max
[a,b]
[f
(iv)
()[ = 0.00416667
Desta forma podemos garantir que as duas primeiras casas decimais esto corretas.
6.5 Regra de Simpson Repetida
Podemos melhorar a aproximao da mesma forma que zemos com a Regra do Trapzio.
Vamos dividir o intervalo de integrao em n subintervalos de mesma amplitude. Porm
devemos observar que a Regra de Simpson necessita de trs pontos, logo a regra se
aplica a cada dois subintervalos da forma [x
s
, x
s+2
], o que implica que n deve ser um
nmero par. Neste caso temos que
h =
b a
n
e x
s
= x
0
+sh, para s = 0, 1, . . . , n
Aplicando a Regra de Simpson em cada subintervalo [x
s
, x
s+2
] segue que
_
b
a
f(x)dx
h
3
(f
0
+ 4f
1
+f
2
) +
h
3
(f
2
+ 4f
3
+f
4
) + +
h
3
(f
n4
+ 4f
n3
+f
n2
) +
h
3
(f
n2
+ 4f
n1
+f
n
)
=
h
3
[f
0
+ 4(f
1
+f
3
+ +f
n1
)2(f
2
+f
4
+ +f
n2
) +f
n
]
O erro cometido nesta aproximao a soma dos erros em cada subintervalo [x
s
, x
s+2
] e
como temos n/2 subintervalos segue que:
[E
SR
[ n
h
5
180
max
[a,b]
[f
(iv)
()[.
80 CAPTULO 6. INTEGRAO NUMRICA - FRMULAS DE NEWTON CTES
Exemplo 6.4 Considerando a integral da funo f(x) = e
x
2
, 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 [E
SR
[ 10
4
. Sendo h = (ba)/n
e max
[0,1]
[f
(iv)
()[ = 12 segue que
n
h
5
180
max
[a,b]
[f
(iv)
()[ 10
4
n
1
n
5
12
180
10
4

1
n
4
15 10
4
n
4
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.6 Observaes Finais
As frmulas de Newton-Ctes so obtidas aproximando a funo por um polinmio in-
terpolador. No captulo da interpolao polinomial, vimos que quanto maior o grau do
polinmio, maior so os erro nos extremos. Logo, no prtico usar polinmios de
grau muito alto, para aproximar as funes. Como exemplo veja a Figura 5.1, em que a
funo foi aproximada por um polinmio de grau 10. Podemos observar que a integral
do polinmio no uma boa aproximao para a integral da funo. Neste contexto, a
melhor estratgia usar as frmulas repetidas, que permitem obter uma aproximao
com uma certa preciso desejada, usando frmulas que so obtidas por polinmios de
baixo grau.
Pelas frmulas de erro podemos observar que a Regra do Trapzio exata para
polinmios de grau um, o que natural, pois aproximamos f(x) por um polinmio de
grau 1. No entanto, na Regra de Simpson aproximamos a funo por um polinmio
de grau 2 e esta exata para polinmios de grau trs. Este aumento da preciso se
deve as propriedades de simetria que a frmula do erro tem em relao aos pontos de
interpolao.
6.7 Exerccios
Exerccio 6.1 Calcule as integrais pela Regra do Trapzio e pela Regra de Simpson us-
ando seis subintervalos.
_
4
1

xdx e
_
0.6
0
dx
1 +x
Exerccio 6.2 Calcule o valor de com trs casas decimais exatas usando a relao

4
=
_
1
0
dx
1 +x
2
6.8. ATIVIDADES NO LABORATRIO 81
Exerccio 6.3 Mostre que se f

(x) contnua em [a, b] e que f

(x) > 0, x [a, b], ento a


aproximao obtida pela Regra do Trapzio maior que o valor exato da integral.
Exerccio 6.4 Dada a tabela abaixo, calcule a integral
_
0.30
0.15
f(x)dx com o menor erro pos-
svel.
x 0.15 0.22 0.26 0.30
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
_
b
a
_
d
c
f(x, y)dxdy
Aplique a regra para calcular uma aproximao para
_
1
0
_
1
0
x
2
+y
2
dxdy
6.8 Atividades no Laboratrio
Problema 6.1 Implemente a Regra de Simpson Repetida e aplique no problema do exerc-
cio 6.2. Monte um esquema para a integral dupla, usando o programa anterior.
82 CAPTULO 6. INTEGRAO NUMRICA - FRMULAS DE NEWTON CTES
CAPTULO
7
Equaes Diferenciais Ordinrias
Muitos dos modelos matemticos nas reas de mecnica dos uidos, uxo 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

= f(x, y)
y(x
0
) = y
0
Os esquemas numricos calculam a aproximao de y(x) nos pontos x
1
, x
2
, x
3
, . . ., em que
x
k
= x
0
+kh para um dado passo h > 0 (ver Figura 7.1). O valor da funo no ponto x
k

aproximado por y
k
, que obtido em funo dos valores anteriores y
k1
, y
k2
, . . . , y
0
. Desta
forma, os esquemas numricos determinam a aproximao da funo para valores de
x > x
0
, o que justica o nome de problema de valor inicial. Os mtodos so classicados
em duas classes:
Mtodos de Passo Simples: So aqueles em que o clculo de y
k
depende apenas de
y
k1
.
Mtodos de Passo Mltiplo: So aqueles em que o clculo de y
k
depende m-valores
anteriores, y
k1
, y
k2
, . . . , y
km
. Neste caso dizemos que o mtodo de m-passos.
7.1 Mtodo Euler
Dado o problema de valor inicial
_
y

= f(x, y)
y(x
0
) = y
0
83
84 CAPTULO 7. EQUAES DIFERENCIAIS ORDINRIAS
x
0
x
1
x
2
x
3
x
4
x
5
| | | | | |
y
0
y
1
y
2
y
3
y
4
y
5
Figura 7.1: Aproximao de y(x)
Uma forma de aproximar a derivada de uma funo no ponto x
1
dado por
y

(x
0
) = lim
h0
y(x
0
+h) y(x
0
)
h

y(x
0
+h) y(x
0
)
h
[eq7:03] (7.1)
Como x
1
= x
0
+h e pelo P.V.I. segue que
y
1
y
0
h
= f(x
0
, y
0
) y
1
= y
0
+hf(x
0
, y
0
)
Com isto relacionamos o ponto y
1
com y
0
, um valor dado no P.V.I. Assim obtemos uma
aproximao y(x
1
) y
1
. De forma anloga podemos obter y
2
em funo de y
1
, sendo que
de uma forma geral teremos
y
k+1
= y
k
+hf(x
k
, y
k
)
Este mtodo conhecido como Mtodo de Euler.
Exemplo 7.1 Consideremos o seguinte problema de valor inicial
_
y

= x 2y
y(0) = 1
Neste caso temos que x
0
= 0 e y
0
= 1. Vamos usar o Mtodo de Euler para obter uma
aproximao para y(0.5), usando h = 0.1. Desta forma temos
y
1
= y
0
+h(x
0
2y
0
) = 1 + 0.1(0 2 1) = 0.8 y(x
1
) = y(0.1)
7.2. MTODOS DA SRIE DE TAYLOR 85
y
2
= y
1
+h(x
1
2y
1
) = 0.8 + 0.1(0.1 2 0.8) = 0.65 y(x
2
) = y(0.2)
y
3
= y
2
+h(x
2
2y
2
) = 0.65 + 0.1(0.2 2 0.65) = 0.54 y(x
3
) = y(0.3)
y
4
= y
3
+h(x
3
2y
3
) = 0.54 + 0.1(0.3 2 0.54) = 0.462 y(x
4
) = y(0.4)
y
5
= y
4
+h(x
4
2y
4
) = 0.462 + 0.1(0.4 2 0.462) = 0.4096 y(x
5
) = y(0.5)
A soluo analtica do P.V.I. dada por y(x) = (5e
2x
+ 2x 1)/4. No grco 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).
7.2 Mtodos da Srie de Taylor
Vamos considerar o problema de valor inicial
_
y

= f(x, y)
y(x
0
) = y
0
Aplicando a srie de Taylor para y(x) no ponto x
k
, temos
y(x) = y(x
k
) +
y

(x
k
)
1!
(x x
k
) +
y

(x
k
)
2!
(x x
k
)
2
+ +
y
(n)
(x
k
)
n!
(x x
k
)
n
+
y
(n+1)
()
(n + 1)!
(x x
k
)
n+1
86 CAPTULO 7. EQUAES DIFERENCIAIS ORDINRIAS
Calculando no ponto x
k+1
e considerando que x
k+1
x
k
= h temos que
y(x
k+1
) = y(x
k
) +
y

(x
k
)
1!
h +
y

(x
k
)
2!
h
2
+ +
y
(n)
(x
k
)
n!
h
n
+
y
(n+1)
()
(n + 1)!
h
n+1
[eq7:22] (7.2)
Como y

(x
k
) = f(x
k
, y
k
) podemos relacionar as derivadas de ordem superior com as
derivadas da funo f(x, y). Como exemplo consideremos
y

(x
k
) =
d
dx
f(x
k
, y
k
)
= f
x
+f
y
y

= f
x
+f
y
f
y

(x
k
) = f
y
(f
x
+f
y
f) +f
2
f
yy
+ 2ff
xy
+f
xx
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 classicados de acordo
com o termo de maior ordem que usamos na srie de Taylor, sendo
Denio 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
E
loc
(x
k+1
) =
y
(n+1)
()
(n + 1)!
h
n+1
[x
k
, x
k+1
]
Como exemplo temos que o Mtodo de Euler um mtodo de 1
o

ordem, pois este


coincide com a srie de Taylor at o primeiro termo, logo o erro local dado por
E
loc
(x
k+1
) =
y

()
2!
h
2
[x
k
, x
k+1
]
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 2
o

ordem para aproximar y(0.5), usando h = 0.1,


para o P.V.I.
_
y

= x 2y
y(0) = 1
Neste caso temos que f(x, y) = x 2y, logo segue que
y

= f
x
+f
y
f = 1 2(x 2y)
Substituindo em (7.2) temos que
y(x
k+1
) = y(x
k
) +
y

(x
k
)
1!
h +
y

(x
k
)
2!
h
2
= y(x
k
) +h(x
k
2y(x
k
)) +
h
2
2
(1 2x
k
+ 4y(x
k
))
7.3. MTODOS DE RUNGE-KUTTA 87
Portanto o mtodo dado por
y
k+1
= y
k
+h(x
k
2y
k
) +
h
2
2
(1 2x
k
+ 4y
k
)
Sendo x
0
= 0 e y
0
= 1 obtemos que
y
1
= y
0
+h(x
0
2y
0
) +
h
2
2
(1 2x
0
+ 4y
0
)
= 1 + 0.1(0 2 1) +
0.1
2
2
(1 2 0 + 4 1) = 0.825
y
2
= y
1
+h(x
1
2y
1
) +
h
2
2
(1 2x
1
+ 4y
1
)
= 0.825 + 0.1(0.1 2 0.825) +
0.1
2
2
(1 2 0.1 + 4 0.825) = 0.6905
y
3
= y
2
+h(x
2
2y
2
) +
h
2
2
(1 2x
2
+ 4y
2
)
= 0.6905 + 0.1(0.2 2 0.6905) +
0.1
2
2
(1 2 0.2 + 4 0.6905) = 0.58921
y
4
= y
3
+h(x
3
2y
3
) +
h
2
2
(1 2x
3
+ 4y
3
)
= 0.58921 + 0.1(0.3 2 0.58921) +
0.1
2
2
(1 2 0.3 + 4 0.58921) = 0.515152
y
5
= y
4
+h(x
4
2y
4
) +
h
2
2
(1 2x
4
+ 4y
4
)
= 0.515152 + 0.1(0.4 2 0.515152) +
0.1
2
2
(1 2 0.4 + 4 0.515152) = 0.463425
O grco 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 2
o

ordem so mais precisos. Quanto maior


a ordem do mtodo melhor ser a aproximao. A diculdade em se tomar mtodos de
alta ordem o clculo da relao de y
(n+1)
(x) = [f(x, y)]
(n)
.
7.3 Mtodos de Runge-Kutta
A estratgia dos mtodos de Runge-Kutta aproveitar as qualidades dos mtodos da
Srie de Taylor (escolher a preciso) sem ter que calcular as derivadas totais de f(x, y).
O mtodo de Runge-Kutta de 1
o

ordem o Mtodo de Euler, que coincide com o


mtodo da Srie de Taylor de 1
o

ordem. Vamos determinar um mtodo de 2


o

ordem,
conhecido como mtodo de Euler Melhorado ou mtodo de Heun. Como o prprio nome
diz, a idia modicar o mtodo de Euler de tal forma que podemos melhorar a preciso.
Na gura 7.4-a temos a aproximao ye
n+1
= y
n
+hf(x
n
, y
n
) que obtida pela aproximao
do mtodo de Euler.
Montamos a reta L
1
que tem coeciente angular dado por y

(x
n
) = f(x
n
, y
n
).
L
1
(x) = y
n
+ (x x
n
)y

n
= y
n
+ (x x
n
)f(x
n
, y
n
)
L
1
(x
n+1
) = y
n
+ (x
n+1
x
n
)y

n
= y
n
+hf(x
n
, y
n
) = ye
n+1
88 CAPTULO 7. EQUAES DIFERENCIAIS ORDINRIAS
Figura 7.3: Mtodo de Euler o - Mtodo de 2
o

ordem *
Montamos a reta L
2
com coeciente angular dado por f(x
n+1
, ye
n+1
) = f(x
n
, y
n
+ hy

) e
passa pelo ponto P ( Ver gura 7.4-b ).
L
2
(x) = ye
n+1
+ (x x
n+1
)f(x
n+1
, ye
n+1
)
Montamos a reta L
0
que passa por P e tem como coeciente angular a mdia dos coe-
cientes angular de L
1
e L
2
(Ver gura 7.4-c). Finalmente a reta que passa pelo ponto
(x
n
, y
n
) e paralela a reta L
0
tem a forma
L(x) = y
n
+ (x x
n
)
1
2
(f(x
n
, y
n
) +f(x
n+1
, y
n
+hy

n
))
Calculando no ponto x
n+1
temos
y
n+1
= y
n
+h
1
2
(f(x
n
, y
n
) +f(x
n+1
, y
n
+hy

n
))
Podemos observar que o valor de y
n+1
(Ver gura 7.4-d) est mais prximo do valor exato
que o valor de ye
n+1
. Este esquema numrico chamado de mtodo de Euler Melhorado,
onde uma estimativa do erro local dado por
[E
loc
(x
n
)[
h
3
6
max
[x
n
,x
n+1
]
[y

()[
Determinamos o mtodo de Euler Melhorado por uma construo geomtrica. Tam-
bm podemos obter uma demonstrao analtica. Desenvolvemos a srie de Taylor da
7.3. MTODOS DE RUNGE-KUTTA 89
x
n
x
n+1
y
n
ye
n+1
x
n
x
n+1
y
n
L
2
L
1
P
ye
n+1
x
n
x
n+1
y
n
L
2
L
1
L
0
P
ye
n+1
x
n
x
n+1
y
n
L
2
L
1
L
0
P
ye
n+1
y
n+1
Figura 7.4: Mtodo de Euler Melhorado
funo f(x, y) e calculando no ponto (x
n+1
, y
n
+ hy

n
). 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
y
n+1
= y
n
+a
1
hf(x
n
, y
n
) +a
2
hf(x
n
+b
1
h, y
n
+b
2
hy

n
),
onde
_

_
a
1
+a
2
= 1
a
2
b
1
= 1/2
a
2
b
2
= 1/2
[eq7:06] (7.3)
90 CAPTULO 7. EQUAES DIFERENCIAIS ORDINRIAS
O mtodo de Euler Melhorado obtido com a
1
= a
2
= 1/2 e b
1
= b
2
= 1.
Mtodos de ordem superior so obtidos seguindo o mesmo procedimento. Abaixo
apresentamos um mtodo de 3
o

e 4
o

R-K 3
o

ordem:
y
n+1
= y
n
+
2
9
K
1
+
1
3
K
2
+
4
9
K
3
K
1
= hf(x
n
, y
n
)
K
2
= hf(x
n
+h/2, y
n
+K
1
/2)
K
3
= hf(x
n
+ 3h/4, y
n
+ 3K
2
/4)
R-K 4
o

ordem:
y
n+1
= y
n
+
1
6
(K
1
+ 2K
2
+ 2K
3
+K
4
)
K
1
= hf(x
n
, y
n
)
K
2
= hf(x
n
+h/2, y
n
+K
1
/2)
K
3
= hf(x
n
+h/2, y
n
+K
2
/2)
K
4
= hf(x
n
+h, y
n
+K
3
)
7.4 Mtodos de Adams-Bashforth
So mtodos de passo mltiplos baseados na integrao numrica. A estratgia inte-
grar a equao diferencial no intervalo [x
n
, x
n+1
], isto
_
x
n+1
x
n
y

(x)dx =
_
x
n+1
x
n
f(x, y(x))dx (7.4)
y(x
n+1
) = y(x
n
) +
_
x
n+1
x
n
f(x, y(x))dx
. .
Integrao Numrica
[eq7:01] (7.5)
A integral sobre a funo f(x, y) aproximada pela integral de um polinmio interpo-
lador que pode utilizar pontos que no pertencem ao intervalo [x
n
, x
n+1
]. Dependendo
da escolha dos pontos onde vamos aproximar a funo f(x, y) os esquemas podem ser
classicados como:
Explcito: So obtidos quando utilizamos os pontos x
n
, x
n1
, . . . , x
nm
para inter-
polar a funo f(x, y);
Implcito: So obtidos quando no conjunto de pontos, sobres os quais interpo-
lamos a funo f(x, y), temos o ponto x
n+1
.
7.4. MTODOS DE ADAMS-BASHFORTH 91
7.4.1 Mtodos Explcitos
Vamos considerar o caso em que a funo f(x, y) interpolada sobre os pontos (x
n
, f
n
)
e (x
n1
, f
n1
), onde f
n
= f(x
n
, y
n
). Considerando o polinmio interpolador na forma de
Newton temos
f(x, y) p(x) = f
n1
+f[x
n1
, x
n
](x x
n1
)
Integrando sobre o intervalo [x
n
, x
n+1
] temos
_
x
n+1
x
n
p(x)dx =
_
x
n+1
x
n
f
n1
+f[x
n1
, x
n
](x x
n1
)dx
= f
n1
(x
n+1
x
n
) +f[x
n1
, x
n
]
_
x
n+1
2
2
x
n1
x
n+1

x
n
2
2
+x
n1
x
n
_
= hf
n1
+
f
n
f
n1
h
1
2
_
x
n+1
2
2(x
n
h)x
n+1
x
n
2
+ 2(x
n
h)x
n
_
= hf
n1
+
f
n
f
n1
h
1
2
_
x
n+1
2
2x
n
x
n+1
+x
n
2
+ 2h(x
n+1
x
n
)
_
= hf
n1
+
f
n
f
n1
h
1
2
_
(x
n+1
x
n
)
2
+ 2h
2
_
=
h
2
(3f
n
f
n1
)
Substituindo a aproximao da integral em (7.5) obtemos o seguinte mtodo
y
n+1
= y
n
+
h
2
(3f
n
f
n1
)
Este mtodo um mtodo explcito, de passo dois. Isto signica que y
n+1
depende de
y
n
e y
n1
. Logo necessitamos de dois valores para iniciar o mtodo: y
0
que dado no
P.V.I.; y
1
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
_
x
n+1
x
n
E
1
(x)dx =
_
x
n+1
x
n
(x x
n1
)(x x
n
)
f

(, y())
2!
dx
= h
3
5
12
y

() [x
n
, x
n+1
]
Com isto temos a seguinte estimativa para o erro local
[E
loc
(x
n+1
)[ h
3
5
12
max
[x
n
,x
n+1
]
[y

()[
Exemplo 7.3 Considere o seguinte P.V.I.
_
y

= 2xy
y(0.5) = 1
92 CAPTULO 7. EQUAES DIFERENCIAIS ORDINRIAS
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 y
0
= 1 e x
0
= 0.5. Este um mtodo de passo dois e vamos ter
que calcular y
1
por um mtodo de passo simples que tenha ordem igual ou superior ao do
Mtodo de Adams-Bashforth. Como o erro local depende de h
3
temos que este mtodo
de 2
o

ordem. Assim vamos utilizar o mtodo de Euler Melhorado, que um mtodo de 2


o

ordem.
y
1
= y
0
+
h
2
(f(x
0
, y
0
) +f(x
1
, y
0
+hy

0
))
= 1 +
0.2
2
(2 0.5 1 + (2) 0.7 (1 + 0.2 (2 0.5 1))) = 0.788 y(0.7)
Tendo o valor de y
0
e y
1
podemos iniciar o Mtodo de Adams-Bashforth, sendo
y
2
= y
1
+
h
2
(3f
1
2f
0
)
= 0.788 +
0.2
2
(3 (2) (0.7) 0.788 2 (2) 0.5 1) = 0.65704 y(0.9)
y
3
= y
2
+
h
2
(3f
2
2f
1
)
= 0.65704 +
0.2
2
(3 (2) (0.9) 0.65704 2 (2) 0.7 0.788) = 0.52287 y(1.1)
Se tivssemos aproximado a funo f(x, y) por um polinmio de grau 3, sobre os
pontos (x
n
, f
n
), (x
n1
, f
n1
), (x
n2
, f
n2
), (x
n3
, f
n3
) obteramos o mtodo de passo 4 e or-
dem 4 dado por
y
n+1
= y
n
+
h
24
[55f
n
59f
n1
+ 37f
n2
9f
n3
] E
loc
(x
n+1
) = h
5
251
720
y
(v)
() com [x
n
, x
n+1
]
Neste caso necessitamos de quatro valores iniciais, y
0
, y
1
, y
2
e y
3
, que deve ser calculados
por um mtodo de passo simples de ordem maior ou igual a quatro (Ex. Runge-Kutta de
4
o

ordem).
7.4.2 Mtodos Implcitos
Neste caso o ponto (x
n+1
, f
n+1
) um dos ponto, onde a funo f(x, y) ser interpolada .
Vamos considerar o caso em que a funo f(x, y) interpolada sobre os pontos (x
n
, f
n
) e
(x
n+1
, f
n+1
). Considerando o polinmio interpolador na forma de Newton temos
f(x, y) p(x)f
n
+f[x
n
, x
n+1
](x x
n
)
Integrando sobre o intervalo [x
n
, x
n+1
] temos
_
x
n+1
x
n
p(x)dx =
_
x
n+1
x
n
f
n
+f[x
n
, x
n+1
](x x
n
)dx
= f
n
(x
n+1
x
n
) +f[x
n
, x
n+1
]
_
x
n+1
2
2
x
n
x
n+1

x
n
2
2
+x
n
x
n
_
7.5. EQUAES DE ORDEM SUPERIOR 93
= hf
n
+
f
n+1
f
n
h
1
2
_
x
n+1
2
2x
n
x
n+1
+x
n
2
_
= hf
n
+
f
n+1
f
n
h
1
2
(x
n+1
x
n
)
2
=
h
2
(f
n
+f
n+1
)
Substituindo a aproximao da integral em (7.5) obtemos o seguinte mtodo
y
n+1
= y
n
+
h
2
(f
n
+f
n+1
)
O erro local, cometido por esta aproximao ser
_
x
n+1
x
n
E
1
(x)dx =
_
x
n+1
x
n
(x x
n+1
)(x x
n
)
f

(, y())
2!
dx
= h
3
1
12
y

() [x
n
, x
n+1
]
Note que o clculo de y
n+1
depende de f
n+1
= f(x
n
, y
n+1
). Em geral a f(x, y) no
permite que isolemos y
n+1
. Desta forma temos que usar um esquema Preditor-Corretor.
Por um mtodo explcito encontramos uma primeira aproximao para y
n+1
(Preditor) e
este valor ser corrigido por intermdio do mtodo implcito (Corretor).
Exemplo 7.4 Vamos considerar o seguinte problema:
_
y

= 2xy y
2
y(0) = 1
Usando h = 0.1 vamos achar uma aproximao para y(0.2), usando o esquema
P : y
n+1
= y
n
+hf(x
n
, y
n
)
C : y
n+1
= y
n
+
h
2
(f
n
+f
n+1
)
Sendo x
0
= 0 e y
0
= 1 temos
P : y
1
= y
0
+hf(x
0
, y
0
) = 1 + 0.1(2 0 1 1
2
) = 0.9
C : y
1
= y
0
+
h
2
(f
0
+f
1
) = 1 +
0.1
2
_
2 0 1 1
2
2 0.1 0.9 0.9
2
_
= 0.9005 y(0.1)
P : y
2
= y
1
+hf(x
1
, y
1
) = 0.9005 + 0.1(2 0.1 0.9005 (0.9005)
2
) = 0.8013
C : y
2
= y
1
+
h
2
(f
1
+f
2
) = 0.9005 +
0.1
2
_
2 0.1 0.9005 (0.9005)
2
2 0.2 0.8013 0.8013
2
_
= 0.8018 y(0.2)
7.5 Equaes de Ordem Superior
Uma equao de ordem m pode ser facilmente transformadas em um sistema de m
equaes de primeira ordem. Este sistema pode ser visto como uma equao vetorial
94 CAPTULO 7. EQUAES DIFERENCIAIS ORDINRIAS
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
_

_
y

= x
2
+y
2
y

2y

x
y(0) = 1
y

(0) = 2
y

(0) = 3
Para transformar num sistema de primeira ordem devemos usar variveis auxiliares.
Fazemos y

= w y

= w

e fazemos y

= w

= z y

= w

= z

. Com isto a equao


acima pode ser representada por:
_

_
y

= w
w

= z
z

= x
2
+y
2
w 2zx
y(0) = 1
w(0) = 2
z(0) = 3
O sistema acima pode ser escrito na forma matricial, onde
_
_
_
y

_
_
_
. .
Y

=
_
_
_
0 1 0
0 0 1
y 1 2x
_
_
_
. .
A
_
_
_
y
w
z
_
_
_
. .
Y
+
_
_
_
0
0
x
2
_
_
_
. .
X
Desta forma temos a equao vetorial
_
Y

= AY +X
Y (0) = Y
0
onde Y
0
= (1, 2, 3)
T
. Aplicando o mtodo de Euler na equao acima obtemos
Y
n+1
= Y
n
+h(A
n
Y
n
+X
n
)
ou seja
_
_
_
y
n+1
w
n+1
z
n+1
_
_
_ =
_
_
_
y
n
w
n
z
n
_
_
_+h
_

_
_
_
_
0 1 0
0 0 1
y
n
1 2x
n
_
_
_
_
_
_
y
n
w
n
z
n
_
_
_+
_
_
_
0
0
x
n
2
_
_
_
_

_
Tomando h = 0.1, vamos calcular uma aproximao para y(0.2). O clculo de Y
1
Y (0.1)
segue que
_
_
_
y
1
w
1
z
1
_
_
_ =
_
_
_
y
0
w
0
z
0
_
_
_+h
_

_
_
_
_
0 1 0
0 0 1
y
0
1 2x
0
_
_
_
_
_
_
y
0
w
0
z
0
_
_
_+
_
_
_
0
0
x
0
2
_
_
_
_

_
_
_
_
y
1
w
1
z
1
_
_
_ =
_
_
_
1
2
3
_
_
_+ 0.1
_

_
_
_
_
0 1 0
0 0 1
1 1 2 0
_
_
_
_
_
_
1
2
3
_
_
_+
_
_
_
0
0
0
2
_
_
_
_

_ =
_
_
_
1.2
2.3
2.9
_
_
_
7.6. EXERCCIOS 95
Calculando Y
2
Y (0.2) temos
_
_
_
y
2
w
2
z
2
_
_
_ =
_
_
_
y
1
w
1
z
1
_
_
_+h
_

_
_
_
_
0 1 0
0 0 1
y
1
1 2x
1
_
_
_
_
_
_
y
1
w
1
z
1
_
_
_+
_
_
_
0
0
x
1
2
_
_
_
_

_
_
_
_
y
2
w
2
z
2
_
_
_ =
_
_
_
1.2
2.3
2.9
_
_
_+ 0.1
_

_
_
_
_
0 1 0
0 0 1
1.2 1 2 0.1
_
_
_
_
_
_
1.2
2.3
2.9
_
_
_+
_
_
_
0
0
0.1
2
_
_
_
_

_ =
_
_
_
1.430
2.590
2.757
_
_
_
Note que neste caso no estamos achando apenas o valor aproximado de y(0.2), mas
tambm de y

(0.2) e y

(0.2), sendo
_
_
_
y(0.2)
y

(0.2)
y

(0.2)
_
_
_
_
_
_
1.430
2.590
2.757
_
_
_
7.6 Exerccios
Exerccio 7.1 Dado o P.V.I.
_
y

= x y
y(1) = 2.2
a) Considerando h = 0.2, ache uma aproximao para y(2.6), usando um mtodo de
segunda ordem.
b) Se tivssemos usado o mtodo de Euler, com o mesmo passo h, o resultado obtido
seria mais preciso? Justique.
Exerccio 7.2 O esquema numrico abaixo representa um mtodo para soluo de E.D.O.
y
n+1
= y
n
+
h
24
[9f
n+1
+ 19f
n
5f
n1
+f
n2
] com E
loc
(x
n+1
) = h
5
251
720
y
(5)
()
Classique o mtodo de acordo com o nmero de passos, se este implcito ou explcito, a
ordem do mtodo, procurando sempre dar justicativas as suas respostas.
Exerccio 7.3 Determine o mtodo de Runge-Kutta, de 2
o

ordem, obtido com a


1
= 0, a
2
= 1
e b
1
= b
2
= 1/2 (ver (7.3)). Aplique o mtodo para o P.V.I.
_
_
_
y

y
= 2

y
y(1) = 0.25
,
onde, h = 0.15 e o valor que se deseja encontrar y(1.6).
Exerccio 7.4 Considere o P.V.I.
_
y

= y
y(0) = 1
96 CAPTULO 7. EQUAES DIFERENCIAIS ORDINRIAS
a) Mostre que quando aplicamos o mtodo de Euler Melhorado ao problema temos
y
n+1
=
_
1 +h +
h
2
2
_
n+1
b) Comparando com a soluo exata do problema, voc esperaria que o erro tivesse
sempre o mesmo sinal? Justique.
Exerccio 7.5 Considere o P.V.I. abaixo.
_
y

= x 2y
y(0) = 1
a) Ache as aproximaes, para y(x) no intervalo [0, 2], usando h = 0.2 e o esquema
numrico baixo
P : y
n+1
= y
n
+hf(x
n
+h/2, y
n
+h/2y

)
C ; y
n+1
= y
n
+
h
2
(f
n+1
+f
n
)
b) Sabendo que a soluo exata dada por y(x) = (5e
2x
+2x 1)/4, plote (novo verbo?)
um grco 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

3y

+ 2y = 0
y(0) = 1y

(0) = 0
Exerccio 7.7 Determine o mtodo de Adans-Bashforth, quando aproximamos a integral
de f(x, y) pelo polinmio interpolador de grau 3 sobre os pontos, (x
n
, f
n
), (x
n1
, f
n1
), (x
n2
, f
n2
)
7.7 Atividades no Laboratrio
Referncias Bibliogrcas
[1] RUGGIERO, M. A. G.; LOPES, V. R. Cculo Numrico: Aspectos tericos e
computacionais. So Paulo: Makron Books, 1996.
[2] BARROSO, L. C. Cculo Numrico: Com aplicaes. So Paulo: Editora Harbra,
1987.
[3] HANSELMAN, D.; LITTLEFIELD, B. Verso do Estudante - MatLab 5: Guia do
usurio. So Paulo: Makron Books, 1999.
97