Sei sulla pagina 1di 99

U NIVERSIDADE F EDERAL

F ACULDADE

DE

DE U BERLNDIA
M ATEMTICA

C LCULO N UMRICO

P ROF. J OS E DUARDO C ASTILHO

A GOSTO

DE

2003

Sumrio

1 Introduo

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

CAPTULO

1
Introduo

O Clculo Numrico tem por objetivo estudar esquemas numricos (algoritmos numricos) para resoluo de problemas que podem ser representados por um modelo matemtico.
Um esquema numrico considerado eficiente quando este apresenta solues dentro de
uma preciso desejada com custo computacional (tempo de execuo + memria) baixo.
Os erros cometidos nesta aproximao so decorrentes de dois fatores: A discretizao
do problema, ou seja passar do modelo matemtico para o esquema numrico; A forma
como as mquinas representam os dados numricos. Como exemplo consideremos que
desejamos calcular uma aproximao para a derivada de uma funo f (x) num ponto x
.
O modelo matemtico dado por
f 0 (
x) = lim

h0

f (
x + h) f (
x)
.
h

Um esquema numrico para aproximar a derivada dado por tomar h pequeno e calcular
f (
x + h) f (
x)
.
f 0 (
x)
(1.1)
h
Neste caso quanto menor for o valor de h mais preciso ser o resultado, mas existe uma
limitao para o valor de h. Se h for menor muito pequeno, ocorre o erro de cancelamento, isto , x
+h=x
, e neste caso a derivada de f (x) seria igual a zero para qualquer
que fosse f (x).
A representao de nmeros em mquinas digitais (calculadoras, computadores,
etc) feita na forma de ponto flutuante com um
nmero finito de dgito. Logo os nmeros
que tem representao infinita (Ex. 1/3, , 2) so representados de forma truncada.
Com isto algumas das propriedades da aritmtica real no so vlidas na aritmtica
computacional. Como exemplo, na aritmtica computacional temos
n
X
ak
k=0

6=

n
1 X
ak ,
N k=0

CAPTULO 1. INTRODUO

onde estamos considerando que no primeiro somatrio para cada k fazemos ak /N e


depois somamos e no segundo somatrio somamos todos os ak 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 6= 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 influenciar no resultado o tipo de mquina em que estamos 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 apresentado no visor e antes do resultado ser apresentado este arredondado.
Os esquemas numricos so classificados como esquemas diretos e esquemas iterativos. Os esquemas diretos so aqueles que fornecem a soluo aps um nmero finito
de passos. Por exemplo o esquema que apresentamos para o clculo da derivada. Os esquemas 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
fim 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 influenciar nos resultados a linguagem de programao
usada na implementao dos algoritmos (Pascal, Fortran, C++, , etc). Diferentes linguagens 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 exemplificar 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

1.1

O Octave

O Octave-Gnu -Gnu originalmente foi concebido para ser um software companheiro,


como um livro texto de graduao no projeto de um reator qumico que estava sendo
escrito por James B. Rawlings, da Universidade Wisconsin-Wisconsin-Madison, e John
G. Ekerdt da Universidade do Texas. Claramente, o octave agora muito mais do que
apenas um pacote destinado a sala de aula. Ele tanto um ambiente quanto uma
linguagem de programao, e um de seus aspectos mais poderosos que os problemas
e as solues so expressos numa linguagem matemtica bem familiar. Devido a sua
capacidade de fazer clculos, visualizao grfica e programao, num ambiente de fcil
uso, o Octave-Gnu torna-se uma ferramenta eficiente para a compreenso tanto de
tpicos fundamentais quanto avanados a uma gama de disciplinas. Nosso objetivo dar
uma rpida viso dos comandos e funes bsicas do Octave-Gnu para exemplificar os
tpicos do curso de Clculo Numrico. Maiores detalhes podem ser obtidos na apostila
Introduo ao Octave, disponvel em http://www.castilho.prof.ufu.br.
Apesar das ultimas verses do Octave-Gnu ter expandido sua capacidade, o elemento 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 manipulao 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 operadores 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 precedncia).
As Variveis
A forma de armazenar o resultado para uso posterior pelo uso de variveis.
>> s=3+4+7+12
s =
26

CAPTULO 1. INTRODUO

Tabela 1.1: Operadores Aritmticos


Operao
Adio
Multiplicao
Subtrao
Diviso
Potenciao

Smbolo
a+b
ab
ab
a/b ou b\a
abb

[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 OctaveGnu 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 momento. 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 definido como
>>

x=[1 2 3 4]

x =
1

Tambm podemos separar os elementos por vrgula.


definido 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
5
9

2
6
10

3
7
11

4
8
12

J um vetor coluna pode ser

1.1.

O OCTAVE

Os elementos na i-sima linha e na j-sima coluna, denotados por aij podem ser obtidos
pelo comando a(i,j), por exemplo a(2,3)=7. Note que os elementos no Octave-Gnu
so indexados iniciando em 1. Em algumas situaes necessitamos de vetores com
alguma estrutura particular. Por exemplo, um vetor cujo o primeiro termo vale 2 e o
ultimo vale 3 e os termos intermedirios variam um passo de 0.5. Este vetor pode ser
definido pela linha de comando
EDU>> v=-2:0.5:3
v =
Columns 1 through 7
-2.0000

-1.5000

-1.0000

-0.5000

2.5000

3.0000

0.5000

1.0000

Columns 8 through 11
1.5000

2.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

CAPTULO 1. INTRODUO

Operaes com Matrizes e Vetores


As operaes de subtrao,adio e multiplicao entre matrizes so definidas 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 define a matriz A com um ponto
e vrgula. Isto faz com que o resultado do comando (ou de uma expresso em geral)
no seja apresentado no monitor. Isto til para programas de grande porte, pois este
processo de apresentar os resultados no monitor consome muito tempo de execuo.
Entre vetores e matrizes de mesma dimenso possvel operar elemento com elemento.
Isto possvel atravs de uma notao especial, que consiste de usar um ponto antes do
smbolo da operao. Na Tabela 1.2 damos um resumo destas operaes aplicada a dois
vetores a e b de dimenso n.
Tabela 1.2: Operaes Elementares entre Vetores
Operao
Adio
Subtrao
Multiplicao
Diviso
Potenciao

Smbolo
a+b
a-b
a.*b
a./b
a.bb

Resultado
[a1 + b1 , a2 + b2 , a3 + b3 , . . . , an + bn ]
[a1 b1 , a2 b2 , a3 b3 , . . . , an bn ]
[a1 b1 , a2 b2 , a3 b3 , . . . , an bn ]
[a1 /b1 , a2 /b2 , a3 /b3 , . . . , an /bn ]
[a1 b1 , a2 b2 , a3 b3 , . . . , an bn ]

[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.
Grficos
Para plotar um grfico no Octave-Gnu , devemos criar dois vetores de mesma dimenso 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
Valor Absoluto
Arco Co-seno
Arco Seno
Co-seno
Exponencial ex
Logaritmo Natural
Logaritmo base 10
Seno
Raiz Quadrada
Tangente

Sintaxe
abs(x)
acos(x)
asin(x)
cos(x)
exp(x)
log(x)
log10(x)
sin(x)
sqrt(x)
tan(x)

[tab3]

pontos. O grfico gerado pelo comando plot(x,f). Se desejamos gerar o grfico 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 definio do vetor x, usamos o passo igual a 0.01. Isto determina a quantidade de pontos que o comando plot usa par gerar o grfico. Quanto mais pontos mais
perfeito ser o grfico (em contra partida maior o tempo de execuo). se tivssemos
usado o passo 0.5 no teramos um grfico 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 definidas, como variveis globais, enquanto as
functions trata as variveis como variveis locais. Desta forma a functions tem que ter
um valor de retorno.
Scripts
Os scripts permite que um conjunto de comandos e definies 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 finitas.
% Aproximacao da derivada do seno
% Usando o operardor de diferen\c{c}a finita progressiva.
clear;
h=0.0001;

8
x=input(Entre com o valor de, x=);
disp(O valor da aproximacao eh...)
dsen=(sin(x+h)-sin(x))/h

CAPTULO 1. INTRODUO
% Atribui Valores a x
% Mostra mensagem no monitor

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 em Octave-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 diferena importante entre esta verso, usando function, com a anterior que o valor calculado pode ser atribudo a uma varivel. Alm disso, agora podemos escolher o valor
de h, que na verso anterior estava fixo em h=0.0001. Vale notar que no primeiro caso
todas as variveis do scrips esto ativas, isto so variveis globais. Enquanto que no
segundo caso as variveis so locais, isto , a varivel h s ativa na execuo da funo
Controle de Fluxo
O controle de fluxo um recurso que permite que resultados anteriores influenciem
operaes futuras. Como em outras linguagens, o Octave-Gnu possui recursos que
permitem o controle de fluxo 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

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 fixo de
vezes, o loop while executa um grupo um de comandos quantas vezes forem necessrias
para que uma condio seja negada. Sua forma geral
while expressao
comandos...
end
O grupo de comandos entre while e end so executados at que a expresso assuma
um valor falso. Por exemplo,
EDU>> while abs(x(n)-x(n-1)) > 10^(-6)
x(n) = 2*x(n-1) + 1/4;
n=n+1;
end
Neste caso o grupo de comandos so executados at que o valor absoluto da diferena
entre dois valores consecutivos seja menor ou igual a 106 .
A estrutura if-else-end permite que grupos de comandos sejam executados por um
teste relacional. A forma geral dada por
if expressao
comandos 1...
else
comandos 2...
end
Se a expresso for verdadeira executado o grupo de comandos 1, caso contrrio
executado o grupo de comandos 2. Esta estrutura permite o uso da forma mais simples
que envolve s um condicional
if expressao
comandos ...
end
Como exemplo considere o seguinte fragmento de cdigo que calcula o valor absoluto de
um nmero
if x < 0
x=-x;
end
Isto , se x for menor que zero ento troca de sinal, caso contrrio nada feito.

CAPTULO 1. INTRODUO

10

1.2

Atividades de Laboratrio

Problema 1.1 Usando o esquema numrico para a aproximao da derivada dado abaixo
ache uma aproximao para f 0 (), onde f (x) = sen(x) e tome h = 0.1, 0.01, 0.001, . . . 1010 .
Repita os clculos para f 0 (0). Comente os resultados.
f 0 (
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
fim enquanto
Output: Imprimir 2Ep
tomando A = 1, 10, 100, 1000. Comente os resultados.
Problema 1.3 Considere a funo iterativa
xn+1 = x2n + 1/4
Faa um programa em Octave-Gnu que calcule a seqncia x1 , x2 , . . . , x100 , considerando
os casos em que x1 = 0.47 e x2 = 0.59. Comente os resultados.
Problema 1.4 O clculo aproximado da funo f (x) = ex , pode ser obtido pela sua Srie
de Taylor em torno de zero, dada por
ex = 1 +

x2 x3 x4
x
+
+
+
+
1!
2!
3!
4!

Faa um programa em Octave-Gnu que calcule a Srie de Taylor at o termo n. Teste o


programa para valores de x prximos de zero e distantes de zero. Analise os resultados
obtidos.

CAPTULO

2
Zeros de Funes

Neste captulo estudaremos esquemas numricos para resolver equaes da forma f (x) =
0. Na maioria dos casos estas equaes no tem soluo algbrica como existe para as
equaes de 2 o grau. No entanto, esquemas numricos podem fornecer uma soluo

aproximada satisfatria.
O processo para encontrar uma soluo envolve duas fases:
Fase I Isolamento das razes - Consiste em achar um intervalo fechado [a, b] que contm a
raiz.
Fase II Refinamento - Partindo de uma aproximao inicial refinamos a soluo at que
certos critrios sejam satisfeitos.

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 Grfica e
Tabelamento da funo.
A anlise grfica 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 grfica. Esboando o grfico 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) = ex x temos f (x) = g(x) h(x), onde g(x) = ex e h(x) = x. Na
Figura 2.1 temos que as curvas se interceptam no intervalo [0, 1]. Tambm podemos observar 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 grficos. Quanto
menor for a amplitude do intervalo que contm a raiz, mais eficiente ser a Fase de
11

CAPTULO 2. ZEROS DE FUNES

12
1.8

1.6

h(x)

1.4

1.2

0.8

0.6

g(x)

0.4

0.2

0.2

0.4

0.6

0.8

1.2

1.4

1.6

1.8

Figura 2.1: Grficos de g(x) e h(x)


Refinamento. 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 0 (x) preserva o sinal em [a, b] e f (a)f (b) < 0,
ento o intervalo contm uma nica raiz. Se f (a)f (b) > 0 no podemos afirmar nada
sobre a existncia ou no de razes.
Exemplo 2.2 Da anlise grfica vimos que a funo f (x) = ex x tem uma raiz em [0, 1].
Tabelando a funo para valores a partir de zero e espaados de 0.25 temos
x
f (x)

0
1

0.25
0.528

0.5
0.106

0.75
-0.277

1
-0.632

Sendo que f (0.5)f (0.75) < 0, ento a raz pertence ao intervalo [0.5, 0.75]. Note que
= ex 1 < 0 x R
I , isto f 0 preserva o sinal em [a, b] e com isto podemos concluir
que esta raiz nica. [exc1]
f 0 (x)

Devemos observar que o tabelamento uma estratgia que completa a anlise grfica. 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

3
2
2
1
1
a

a
0

1
1
2
2
3

0.5

1.5

f 0 (x)

2.5

0.5

1.5

f 0 (x)

preserva sinal

2.5

muda de sinal

2.5

3
2

1.5

a
0

|
1

1
0.5

0.5

f 0 (x)

1.5

muda de sinal

2.5

b
0.5

|
1.5

f (a)f (b) > 0

Figura 2.2: Exemplos do comportamento de f (x)

2.5

CAPTULO 2. ZEROS DE FUNES

14

2.2

Refinamento

Nas prximas sees estudaremos os esquemas numricos que partindo de uma aproximao inicial x0 , vo gerar uma seqncia {xk } que converge para a raiz procurada, isto
xk quando k . A aproximao inicial parte do intervalo encontrado na Fase I,
Isolamento das Razes, e os termos da seqncia so calculados at que a aproximao
tenha atingido uma preciso desejada (critrio de parada).

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 [a0 , b0 ] = [a, b] e calcule

f (a0 ) < 0

x0 =

(a0 , x0 )

a0 + b0
f (b0 ) > 0
a = a0

1
2
f (x ) > 0

b
0
1 = x0

Com isto obtemos um novo intervalo [a1 , b1 ], de tal forma que a raz pertence ao intervalo e sua amplitude igual a amplitude do intervalo [a0 , b0 ] dividida por dois. Este
procedimento pode ser repetido, calculando

f (a1 ) < 0

x1 =

a1 + b1
2

x2 =

a2 + b2
2

f (b ) > 0

f (x ) < 0
1

f (a2 ) < 0

f (b ) > 0

f (x ) < 0
2

(x1 , b1 )

a =x

2
1

b =b
2
1

(x2 , b2 )

a =x

3
2

b =b
3
2

E assim vamos calculando a seqncia xk at que seja satisfeito o critrio de parada


bk ak < .
Este critrio garante se tomarmos x
[ak , bk ] o erro menor que , isto
|
x | bk ak <
Na Figura 2.3 temos a representao deste procedimento. Observe que os termos da
seqncia {xk } 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

a1

a2

a3

||

||

||

a0

x1

x2

|
x0

b0

||
b1
||
b2
||
b3

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 {xk } que converge para a raiz quando k .

CAPTULO 2. ZEROS DE FUNES

16
Prova: O mtodo gera trs seqncias:

{ak }: Seqncia no decrescente e limitada superiormente por b0 . Logo


a0 a1 < b0 M IR tal que

lim ak = M

{bk }: Seqncia no crescente e limitada inferiormente por a0 . Logo


b0 b1 > a0 m IR tal que

lim bk = m

{xk }: Por construo temos que


xk =

ak + bk
ak < xk < bk k IN
2

(2.1)

[ec1]

A amplitude de cada intervalo gerado metade da amplitude do intervalo anterior, assim


temos,
b0 a0
bk ak =
.
2k
Calculando o limite quando k temos
b0 a0
=0
k
2k

lim (bk ak ) = lim

Isto segue que


lim bk lim ak = 0 M m = 0 M = m.

Usando este fato e calculando o limite em (2.1) temos


m = lim ak lim xk lim bk = m lim xk = m.
k

Falta mostrar que m raiz de f , isto f (m) = 0. Em cada iterao o intervalo


escolhido de tal forma que f (ak )f (bk ) < 0. Como f contnua segue que

0 lim f (ak )f (bk ) = lim f (ak ) lim f (bk ) = f


k

lim ak f

lim bk

= 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 [a0 , b0 ] e da preciso requerida . Dada uma preciso temos,
bk ak <

b0 a0
b0 a0
< 2k >
2k

Como estes valores so sempre positivos, podemos aplicar a funo logaritmo, obtendo,
k>

log(b0 a0 ) 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) = ex x no intervalo [0.5, 0.75].
Usando a preciso = 108 , temos
k>

log(0.75 0.5) log(108 )


= 24.575.
log(2)

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 fixo da funo (x).
Atravs da equao acima montamos um processo iterativo, onde, dado x0
xn+1 = (xn ), 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 0 so contnuas em [a, b],
2) |0 (x)| M < 1 x [a, b],
3) x0 [a, b].
Ento a seqncia {xk } gerada pelo processo iterativo xn+1 = (xn ) converge para .
Prova: Sendo uma raiz ento f () = 0 = (), logo
xn+1 = (xn ) xn+1 = (xn ) ().
Como contnua e diferencivel, pelo Teorema do Valor Mdio temos que existe cn
pertencente ao intervalo entre xn e tal que
(xn ) () = 0 (cn )(xn )
Logo
|xn+1 | = |0 (cn )| |xn | M |xn |
Aplicando esta relao para n 1, n 2, , 0 e usando o fato que x0 [a, b] temos
|xn+1 | M n+1 |x0 |

CAPTULO 2. ZEROS DE FUNES

18

Como M < 1, aplicando o limite para n segue que


0 lim |xn+1 | lim M n+1 |x0 | = 0
n

Logo
lim xn+1 =

Observamos que quanto menor for o valor de |0 (x)| mais rpida ser a convergncia.
Exemplo 2.4 Consideremos a funo f (x) = ex x, onde existe uma raiz [0.5, 0, 75].
Uma forma de escrever f (x) = x (x) considerar (x) = ex . Verificando as condies
de convergncia temos:
1) As funes (x) = ex e 0 (x) = ex so contnuas em [0.5, 0.75].
2) A funo 0 satisfaz
max

x[0.5,0.75]

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

3) Tomando x0 [0.5, 0.75] teremos garantia de convergncia, por exemplo podemos


tomar x0 como o ponto mdio do intervalo
x0 =

0.5 + 0.75
= 0.625
2

Assim temos que


x1
x2
x3
x4
x5
x6
..
.

=
=
=
=
=
=
..
.

(x0 ) = (0.625) = 0.53526...


(x1 ) = (0.53526) = 0.58551...
(x2 ) = (0.58551) = 0.55681...
(x3 ) = (0.55681) = 0.57302...
(x4 ) = (0.57302) = 0.56381...
(x5 ) = (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 xn que fornece uma aproximao para a raiz,
com uma certa preciso dada. Neste caso podemos usar como critrio de parada uma
das seguintes condies
|xn+1 xn |

(Erro Absoluto)

|xn+1 xn |

|xn+1 |

(Erro Relativo)

2.5. MTODO DE NEWTON-RAPHSON (M.N.R)

19

0.8

0.75

0.7

0.65

0.6

0.55

0.5

ex

0.45

0.4
0.4

0.45

0.5

x1

x2

0.55

0.6

x0
0.65

0.7

0.75

0.8

Figura 2.4: Mtodo Iterativo Linear


e vamos tomar xn+1 como aproximao para a raiz. Se no exemplo anterior tivssemos
escolhido = 0.006 e o Erro Absoluto teramos
|x1 x0 | = |0.53526 0.625| = 0.08974 >
|x2 x1 | = |0.58551 0.53526| = 0.05025 >
|x3 x2 | = |0.55681 0.58551| = 0.02870 >
|x4 x3 | = |0.57302 0.55681| = 0.01621 >
|x5 x4 | = |0.56381 0.57302| = 0.00921 >
|x6 x5 | = |0.56903 0.56381| = 0.00522 <
Logo a aproximao para a raiz seria x6 = 0.56903.

2.5

Mtodo de Newton-Raphson (M.N.R)

No mtodo anterior, vimos que quanto menor for |0 (x)| mais rpida ser a convergncia.
O mtodo de Newton-Raphson determinado de tal forma que teremos uma funo de
iterao tal que 0 () = 0, onde uma raiz de f . Com isto temos a garantia que existe
um intervalo [
a, b] que contm a raiz e que |0 (x)| 1 e conseqentemente a convergncia
ser mais rpida.

CAPTULO 2. ZEROS DE FUNES

20

Para determinar a forma de consideremos uma funo A(x) contnua diferencivel


e que A(x) 6= 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
0 () = 1 + A0 ()f () + A()f 0 () = 0.
Como f () = 0 e considerando que f 0 () 6= 0, segue que
A() =

1
f 0 ()

Assim tomamos a funo A(x) = 1/f 0 (x), e portanto teremos


(x) = x

f (x)
f 0 (x)

Com esta funo de iterao montamos o processo iterativo conhecido como mtodo de
Newton-Raphson, onde dado x0
xn+1 = xn

f (xn )
, n = 0, 1, 2, . . .
f 0 (xn )

Graficamente este mtodo tem a interpretao mostrada na Figura 2.5. A derivada


de uma funo no ponto xn igual a tangente do ngulo que a reta tangente a curva no
ponto xn forma com o eixo x. Usando a relao sobre o tringulo retngulo temos
f 0 (xn ) = tan() =

f (xn )
f (xn )
xn+1 = xn 0
xn xn+1
f (xn )

Teorema 2.4 Sejam f , f 0 e f 00 , funes contnuas num intervalo [a, b], onde existe uma raiz
. Supor que f 0 (x) 6= 0 para x [a, b]. Ento existe um intervalo [
a, b] [a, b], contendo a raiz

, tal que se x0 [
a, b], a seqncia {xn } gerada pelo processo iterativo
xn+1 = xn
converge para a raiz.

f (xn )
f 0 (xn )

[TeNR]

Prova:(Exerccio 2.7)
Uma observao deve ser feita. A condio de que x0 [
a, b] no uma condio de
fcil verificao, visto que o Teorema garante a existncia do intervalo, mas no como
determin-lo. Observamos na Figura 2.6 casos em que o mtodo de Newton-Raphson
falho.

2.5. MTODO DE NEWTON-RAPHSON (M.N.R)

21

f(x)

xn+1

xn

Figura 2.5: Mtodo Newton-Raphson


Exemplo 2.5 Considerando f (x) = ex x que possui uma raiz no intervalo [0.5, 0.75],
vamos achar uma aproximao usando x0 = 0.625 e = 0.006. Sendo
f 0 (x) = ex 1
teremos o processo iterativo
xn+1 = xn

ex x
f (xn )
=
x
+
n
f 0 (xn )
ex + 1

Assim temos que


ex0 x0
= 0.56654 |x1 x0 | = 0.0584 >
ex0 + 1
ex1 x1
x2 = x1 + x1
= 0.56714 |x2 x1 | = 0.0006 <
e
+1
x1 = x0 +

Logo a aproximao dada por x2 = 0.56714. Note que este mtodo encontrou a soluo em
duas iteraes, enquanto que no M.I.L. foi necessrio 6 iteraes para obter a aproximao
com a mesma preciso.

CAPTULO 2. ZEROS DE FUNES

22

x1=x3

x0=x2

No Converge

x0

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, definida por:
Definio 2.1 Seja {xn } uma seqncia que converge para um nmero e seja ek = xk

2.6. ORDEM DE CONVERGNCIA

23

o erro na iterao k. Se
|ek+1 |
= C,
k |ek |p
lim

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 suficientemente grande temos
|ek+1 | C|ek |p , com |ek | < 1
Assim quanto maior for o valor de p, menor ser o erro |ek+1 |. Quando p = 1 dizemos que
o mtodo tm convergncia linear. Se p = 2 dizemos que a convergncia quadrtica.
Primeiramente vamos determinar a ordem de convergncia do M.I.L. Sendo a seqncia {xn } gerada por xk+1 = (xk ), k = 0, 1, 2, . . . e que = () temos
xk+1 = (xk ) () = 0 (ck )(xk ),
onde a ltima igualdade conseqncia do Teorema do Valor Mdio e ck um nmero
entre xk e . Logo segue
xk+1
ek+1
= 0 (ck )
= 0 (ck )
xk
ek
Aplicando o mdulo e calculando o limite quando k tende ao infinito temos
|ek+1 |
= lim |0 (ck )| = |0 ()| = C
k
k |ek |
lim

Portanto temos que o M.I.L. tm ordem de convergncia p = 1 e a constante assinttica


dada por C = |0 ()|. A definio 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 processo iterativo
f (xn )
xn+1 = xn 0
f (xn )
Subtraindo de cada lado temos
xn+1 = xn

f (xn )
f (xn )
en+1 = en 0
0
f (xn )
f (xn )

[ec13]

Atravs da frmula de Taylor da funo f no ponto xn temos


f (x) = f (xn ) + f 0 (xn )(x xn ) +

f 00 (cn )
(x xn )2 cn [x, xn ]
2

Que calculada em x = fornece


0 = f () = f (xn ) + f 0 (xn )( xn ) +

f 00 (cn )
( xn )2
2

(2.2)

CAPTULO 2. ZEROS DE FUNES

24

Dividindo por f 0 (xn ) e fazendo en = xn segue que


f (xn )
f 00 (cn ) 2
=
e

e
n
f 0 (xn )
2f 0 (xn) n
Substituindo em (2.2) obtemos

f 00 (cn )
en+1
=
e2n
2f 0 (xn)
Finalmente aplicamos o mdulo e calculamos o limite quando k tende ao infinito obtendo

f 00 (cn ) f 00 ()
|en+1 |

=
= 1 |00 ()| = C
lim
=
lim

2
0
0
k |en |
k 2f (xn)
2f () 2

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 intervalo inicial [a0 , b0 ] 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 refinar o intervalo que contm a raiz.
Aplicamos o mtodo em um nmero fixo 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 dificuldade
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 xn . 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 x0 [
a, b] [a, b]. Na prtica
tomamos x0 como ponto mdio do intervalo, pois isto aumenta as chances de tomar x0
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 |f (x)|.

x[a,b]

Uma forma prtica para este clculo seguir os passos: Considerando que f (x) e f 0 (x)
so contnuas para x [a, b], ento uma forma prtica para o clculo do mximo seguir
os passos:
1: Calcula-se os valores da funo nos extremos do intervalo, |f (a)| e |f (b)|.
2: Verifique se a funo no possui ponto critico no intervalo, ou seja, achamos os valores de xk tal que f 0 (xk ) = 0 e xk [a, b]
3: Tomamos como o valor mximo o max{|f (a)|, |f (b)|, |f (xk )|}
[not1]

2.8. EXERCCIOS

2.8

25

Exerccios

Exerccio 2.1 Localize graficamente e d intervalos de amplitude 0.5 que contenha as


razes das equaes
a) ln(x) + 2x = 0
b) ex sen(x) = 0 c) ln(x) 2x = 2
x
2
d) 2 cos(x) e2 = 0 e) 3 ln(x) x2 = 0 f) (5 x)ex = 1
Exerccio 2.2 Utilize o Mtodo da Bisseco e aproxime a menor raiz em mdulo com erro
menor que 101 para as equaes a) e b) do exerccio 2.1.
Exerccio 2.3 Utilize o Mtodo Iterativo Linear e aproxime a menor raiz em mdulo com
erro relativo menor que 102 para as equaes c) e d) do exerccio 2.1.
Exerccio 2.4 Utilize o Mtodo de Newton-Rapshon e aproxime a menor raiz em mdulo
com erro relativo menor que 103 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) Verifique se a funo de iterao (x) = a/xp1 satisfaz os critrios de convergncia
do Mtodo Iterativo Linear.
c) Considerando que p = 1, mostre que |0 ()| = 1. O que acontece com a seqncia
gerada por xn+1 = (xn )? Sua concluso pode ser generalizada para qualquer caso
em que |0 ()| = 1?
d) Verifique que o processo iterativo gerado pelo M.N.R. dado por

xn+1

1
a
=
(p 1)xn + p1
p
xn

Exerccio 2.6 Dada a funo f (x) = ex 4x2 .


a) Isole as razes da funo f (x).
b) Verifique que as funes abaixo so funo de iterao de f e verifique se satisfazem
o critrio de convergncia do M.I.L. para a raiz positiva.
1
1 (x) = ex/2 2 (x) = ln(4x2 )
2
c) Tomando x0 = 0.6 e = 0.01, aplique o M.I.L. para encontrar uma aproximao para a
raiz positiva, usando uma funo de iterao que satisfaa os critrios de convergncia
Exerccio 2.7 Prove o Teorema 2.4.

[ex1]

CAPTULO 2. ZEROS DE FUNES

26

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. Justifique sua resposta.
Exerccio 2.9 Analise algbrica e geometricamente e encontre justificativas para o comportamento do mtodo de Newton-Raphson quando aplicado equao f (x) = 0.5x3 +
2.5x = 0 nos seguintes casos, x0 = 1 e x0 = 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) = x3 3.5x2 +4x1.5. Esta tem uma raz no intervalo
[0.8, 1.2]. Usando o mtodo de Newton-Raphson ache uma aproximao com preciso de
106 . Comente os resultados.
Problema 2.3 O Mtodo da Secante uma modificao do Mtodo de Newton-Raphson,
onde a derivada da funo substituda por
f 0 (xk )

f (xk ) f (xk1 )
.
xk xk1

Isto simplifica o programa, pois neste caso, no temos que informar quem a derivada de
f (x). Aplique este mtodo para o mesmo problema 2.1 e compare o desempenho do Mtodo
da Secante, em relao aos resultados obtidos pelo Mtodo de Newton-Raphson.

CAPTULO

3
Sistemas Lineares

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, infinitas 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

a1,1 x1

a2,1 x1

a3,1 x1
..
.

an,1 x1

+ a1,2 x2 + a1,3 x3
+ a2,2 x2 + a2,3 x3
+ a3,2 x2 + a3,3 x3
..
..
.
.
+ an,2 x2 + an,3 x3

a1,n xn
a2,n xn
a3,n xn
..
.

= b1
= b2
= b3
..
.

an,n xn = bn

onde aij so os coeficientes, xj so as incgnitas e os bj so os termos indepententes.


Este sistema pode ser escrito na forma matricial Ax = b com A IRnn e x, b IRn . Analisaremos duas classes de esquemas numricos: Mtodos Iterativos e Mtodos Diretos.

3.1

Mtodos Iterativos

Vamos considerar um sistema linear Ax = b, onde A IRnn e x, b IRn . Os mtodos 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 IRn e C IRnn chamada de matriz de iterao. Assim montamos o processo
iterativo:
Dado x0
xk+1 = Cxk + g.
27

CAPTULO 3. SISTEMAS LINEARES

28

Sendo um processo iterativo, necessitamos de um critrio de parada. E para isto


temos que ter uma medida entre as aproximaes xk+1 e xk . Para isto vamos usar o
conceito de norma de matrizes, definida abaixo
Definio 3.1 Uma norma em R
I nm uma aplicao || || : R
I nm R
I que satisfaz as
seguintes propriedades:
(M1) ||A|| 0 e ||A|| = 0 A = 0, A R
I nm .
(M2) ||A|| = || ||A||, R
I e A R
I nm .
(M3) ||A + B|| ||A|| + ||B||, A, B R
I nm .
As normas matriciais mais usadas so
||A||1 = max

( n
X

1jm

||A|| = max

|aij |

i=1

m
X

1in
j=1

Norma do Mximo das Coluna

|aij |

Norma do Mximo das Linha

1/2
n X
m
X
||A||2 =
|aij |2

Norma Euclidiana

i=1 j=1

A norma vetorial pode ser vista como um caso particular da norma matricial, onde
um vetor x IRn equivalente a uma matriz de ordem n 1. Com isto temos as normas
de vetores dadas por
||x||1 =

n
X

|xi |

Norma da Soma

i=1

||x|| = max |xi |


1in

||x||2 =

n
X

Norma do Mximo

!1/2
2

|xi |

Norma Euclidiana

i=1

O conceito de norma nos permite definir convergncia de uma seqncia de vetores {xk }.
Dizemos que xk x
se
lim ||xk x
|| = 0
k

Com isto podemos definir os critrios de parada: Dado um > 0


||xk+1 xk ||

Erro Absoluto

||xk+1 xk ||

||xk ||

Erro Relativo

||b Axk || 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
xk+1 = Cxk + g
gera uma seqncia {xk } que converge para a soluo x
se e somente se kCk < 1.
Prova: Sendo x
soluo do sistema, este satisfaz
x
= C
x + g.
Com isto temos que
xk+1 x
= C(xk+1 x
)
Sendo o erro em cada iterao dado por ek = xk x
e usando as propriedades de norma
(M4) e (M5) segue que
||ek || ||C|| ||ek1 ||

..
.

||C||2 ||ek2 ||
..
.

||C||k ||e0 ||
Logo a seqncia {xk } converge para a soluo do sistema x
se
lim ||ek || = lim ||C||k ||e0 || = 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 x0 . A escolha de x0
influncia no nmero de iteraes necessrias para atingir a preciso desejada. Quanto
menor for ||x0 x
|| menos iteraes sero necessrias.

3.1.2

Mtodo Iterativo de Gauss-Jacobi

Vamos considerar o sistema linear Ax = b dado por

a1,1 x1

2,1 x1

a3,1 x1
..
.

+ a1,2 x2
+ a2,2 x2
+ a3,2 x2
..
.

+ a1,3 x3
+ a2,3 x3
+ a3,3 x3
..
.

a1,n xn
a2,n xn
a3,n xn
..
.

= b1
= b2
= b3 ,
..
.

an,1 x1 + an,2 x2 + an,3 x3 an,n xn = bn

CAPTULO 3. SISTEMAS LINEARES

30

onde os aii 6= 0 para i = 1, 2, . . . , n. Em cada equao i podemos isolar a incgnita xi


obtendo as seguintes relaes
1
(b1 a1,2 x2 a1,3 x3 a1,n xn )
a1,1

x1

x2

x3

(b3 a3,1 x1 a3,2 x2 a3,n xn )


a3,3
.. ..
. .
1
=
(bn an,1 x1 an,2 x2 an,n1 xn1 )
an,n

..
.
xn

1
a2,2

(b2 a2,1 x1 a2,3 x3 a2,n xn )

Na forma matricial estas equaes so equivalentes

x1

x3
..
.
..
.
..
.





a2,1



a2,2


=
a

3,1

a3,3


..

.

an,1

xn

an,n

x2

a1,2

a1,1
0
a3,2
a3,3
..
.
an,2

an,n

a1,3

a1,1

a2,3
a2,2

0
..
.
an,3

an,n

a1,n x
1


a1,1


x
a2,n
2


a2,2
x3

+
a3,n ...


a3,3
..
.


..
..


.
.
..
.

0
xn

b1
a1,1

b2

a2,2

b3

a3,3

..

bn

(3.1)

an,n

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 x0
(k+1)

x1

(k+1)

x2

(k+1)
x3

..
.
(k+1)

xn

=
=
=

1
a1,1
1
a2,2
1

(k)

(k)

(k)

(k)

(k)
a3,1 x1

(k)
a3,2 x2

b1 a1,2 x2 a1,3 x3 a1,n x(k)


n
b2 a2,1 x1 a2,3 x3 a2,n x(k)
n
a3,n x(k)
n

b3


a3,3
.. ..
. .

1
(k)
(k)
(k)
=
bn an,1 x1 an,2 x2 an,n1 xn1
an,n

Algoritmo: Mtodo Iterativo de Gauss-Jacobi


Input: Matriz A IRnn b, x0 IRn e > 0

[eq:sis1]

(3.2)

3.1. MTODOS ITERATIVOS

31

Enquanto ||xk+1 xk || > faa:


Para s = 1, 2, . . . , n,
faa:
x(k+1)
s

n
X
1
(k)

bs
as,j xj
as,s
j=1,j6=s

fim para
fim enquanto
Output: x IRn : 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:
n
X
1
|ak,j | < 1 para k = 1, 2, . . . , n
k =
|ak,k | j=1,j6=k
Ento o Mtodo de Gauss-Jacobi gera uma seqncia {xk } que converge para a soluo
do sistema.
Este critrio fornece uma condio suficiente, mas no necessria. Isto , o critrio
pode no ser satisfeito e o mtodo ainda pode convergir. Outros critrios podem ser
obtidos usando outras normas. Por exemplo, podemos obter o chamado critrio das
colunas aplicando a Norma do Mximo das Colunas na matriz em (3.2).
Exemplo 3.1 Dado o sistema linear

7x1

x1
x1

+ 3x2 + 2x3 = 2
+ 3x2 x3 = 3
+ x2 3x3 = 1

vamos procurar uma aproximao da soluo, com preciso = 0.1 na Norma do Mximo, usando o Mtodo de Gauss-Jacobi. Vamos tomar como condio inicial o vetor x0 =
(0.5, 0.5, 0.5)T .
O primeiro passo verificar se o critrio de convergncia satisfeito. Calculando os
k temos
1 =
2 =
3 =

1
(|a1,2 | + |a1,3 |) =
|a1,1 |
1
(|a2,1 | + |a2,3 |) =
|a2,2 |
1
(|a3,1 | + |a3,2 |) =
|a3,3 |

5
<1
7
2
<1
3
2
<1
3

CAPTULO 3. SISTEMAS LINEARES

32

Logo o critrio das linhas satisfeito e com isto temos garantia que o Mtodo de GaussJacobi converge. Montando o processo iterativo temos
(k+1)

(k+1)

(k+1)

x1
x2
x3

1
(k)
(k)
2 3x2 2x3
7

1
(k)
(k)
3 x1 + x3
3

(3.3)

1
(k)
(k)
1 x1 x2
3

Assim para k = 0 segue que


(1)

x1

(1)

x2

(1)

x3

1
= (2 3 0.5 2 0.5) = 0.642
7
=

1
(3 0.5 + 0.5) = 1.000
3

(3.4)

1
= (1 0.5 0.5) = 0.666
3

Verificando o critrio de parada temos

0.642 0.500
0.142

x1 x0 = 1.000 0.500 = 0.500 ||x1 x0 || = 0.500 >


0.666 0.500
0.166
Para k = 1 temos
(2)

x1

(2)

x2

(2)

x3

1
= (2 3 1.000 2 0.666) = 0.904
7
=

1
(3 0.642 + 0.666) = 1.008
3

(3.5)

1
= (1 0.642 1) = 0.880
3

Verificando o critrio de parada temos

0.262
0.904 0.642

2
1
x x = 1.008 1.000 = 0.008 ||x2 x1 || = 0.262 >
0.214
0.880 0.666
Devemos continuar as iteraes at que o critrio de parada seja satisfeito (Exerccio).

3.1.4

Mtodo Iterativo de Gauss-Seidel

A cada iterao xk se aproxima da soluo do sistema. Baseado nesta observao vamos


modificar 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

s1
n
X
X
1
(k)
(k)
bs
as,j xj
as,j xj
=
as,s
j=1
j=s+1

[eq:gj1]

(3.6)

k+1
k+1
Neste ponto os elementos xk+1
1 , x2 , , xs1 , j foram calculados e espera-se que estes
estejam mais prximos da soluo que os elementos xk1 , xk2 , , xks1 . Assim vamos substituir 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

s1
X

n
X

1
(k+1)
(k)
bs
as,j xj

as,j xj .
as,s
j=1
j=s+1

Como estamos usando valores mais prximos da soluo, o clculo de xk+1


ser mais
s
preciso. Este procedimento conhecido como Mtodo Iterativo de Gauss-Seidel, cujo o
algoritmo dado abaixo.
Algoritmo: Mtodo Iterativo de Gauss-Seidel
Input: Matriz A IRnn b, x0 IRn e > 0
Enquanto ||xk+1 xk || > faa:
Para s = 1, 2, . . . , n,
faa:
x(k+1)
s

s1
n
X
X
1
(k+1)
(k)

bs
as,j xj

as,j xj
as,s
j=1
j=s+1

fim para
fim enquanto
Output: x IRn : soluo do sistema

3.1.5

Critrio de Sassenfeld

O Mtodo de Gauss-Seidel tambm pode ser representado na forma matricial xk+1 =


Cxk + 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
|ak,k |

k1
X

j=1

|ak,j |j +

n
X

|ak,j | < 1 para k = 1, 2, . . . , n

j=k+1

Ento o Mtodo de Gauss-Seidel gera uma seqncia {xk } que converge para a soluo do
sistema.

CAPTULO 3. SISTEMAS LINEARES

34
Exemplo 3.2 Dado o sistema linear

7x1

+ 3x2 + 2x3 = 2
+ 2x2 x3 = 2
+ x2 2x3 = 0

x1
x1

vamos procurar uma aproximao da soluo, com preciso = 0.1 na norma do mximo, usando o Mtodo de Gauss-Seidel. Vamos tomar como condio inicial o vetor x0 =
(0.5, 0.5, 0.5)T .
O primeiro passo verificar se o critrio de convergncia satisfeito. Calculando os
k temos
1 =
2 =
3 =

1
5
(|a1,2 | + |a1,3 |) = < 1
|a1,1 |
7
1
6
(|a2,1 |1 + |a2,3 |) = < 1
|a2,2 |
7
1
11
(|a3,1 |1 + |a3,2 |2 ) =
<1
|a3,3 |
14

Logo o critrio de Sassenfeld satisfeito e com isto temos garantia que o Mtodo de GaussSeidel converge. Note que se aplicarmos o critrio das linhas obtemos que 2 = 3 = 1, ou
seja, o critrio das linhas no satisfeito. Este um exemplo em que no temos a garantia
de convergncia do Mtodo de Gauss-Jacobi.
Montando o processo iterativo temos
(k+1)

(k+1)

(k+1)

x1

x2
x3

1
(k)
(k)
2 3x2 2x3
7

1
(k)
(k+1)
+ x3
2 x1
2

(3.7)

1
(k+1)
(k+1)
0 x1
x2
2

Assim para k = 0 segue que


(1)

x1

(1)

x2

(1)

x3

1
= (2 3 0.5 2 0.5) = 0.642
7
=

1
(2 0.642 + 0.5) = 0.929
2

1
= (0 0.642 0.929) = 0.785
2

Verificando o critrio de parada temos

0.142
0.642 0.500

x1 x0 = 0.929 0.500 = 0.429 ||x1 x0 || = 0.429 >


0.285
0.785 0.500

(3.8)

3.2. MTODOS DIRETOS

35

Para k = 1 temos
(2)

x1

(2)

x2

(2)

x3

1
= (2 3 0.929 2 0.785) = 0.908
7
=

1
(2 0.908 + 0.785) = 0.938
2

(3.9)

1
= (0 0.908 0.938) = 0.923
2

Verificando o critrio de parada temos

0.908 0.642
0.266

x2 x1 = 0.938 0.929 = 0.009 ||x2 x1 || = 0.266 >


0.923 0.785
0.138
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 finito 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 eficientes 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 ai,j = 0 para i > j.

a1,1 x1

+ a1,2 x2 + a1,3 x3
a2,2 x2 + a2,3 x3
a3,3 x3

..
.

a1,n xn = b1
a2,n xn = b2
a3,n xn = b3
..
.
an,n xn = bn

Este sistema admite uma nica soluo se aii =


6 0 para i = 1, 2, . . . , n, sendo,
xn =
xn1 =
xn2 =

bn
an,n
1
(bn1 an1,n xn )
an1,n1
1
(bn2 an2,n1 xn1 an2,n xn )
an2,n2

CAPTULO 3. SISTEMAS LINEARES

36
..
.
xk =
..
.

..
.

n
X
1
bk
ak,j xj

ak,k

j=k+1

..
.

e assim sucessivamente. Com isto obtemos o esquema numrico para soluo de sistema triangular superior dado pelo algoritmo abaixo
Algoritmo: Retro-Soluo
Input: Matriz triangular superior A IRnn e b IRn
xn bn /an,n
Para k = n 1,n 2, . . . 1, faa:
xk

n
X
1
bk
ak,j xj

ak,k

j=k+1

fim para
Output: x IRn : 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
cuja a soluo facilmente obtida
em um sistema triangular superior equivalente Sx = b,
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 de tal forma que estes sero equivalentes. Para descrever
=b
mos um novo sistema Ax
o Mtodo de Eliminao de Gauss vamos considerar o sistema linear

a1,1 x1

2,1 x1

a3,1 x1
..
.

+ a1,2 x2
+ a2,2 x2
+ a3,2 x2
..
.

+ a1,3 x3
+ a2,3 x3
+ a3,3 x3
..
.

a1,n xn
a2,n xn
a3,n xn
..
.

= b1
= b2
= b3 ,
..
.

an,1 x1 + an,2 x2 + an,3 x3 an,n xn = bn

3.2. MTODOS DIRETOS

37

onde det(A) 6= 0, isto , o sistema admite uma nica soluo. Um sistema linear pode
ser representado na forma de matriz estendida (A0 |b0 ), ou seja

(0)

(0)

a1,1
(0)
a2,1
(0)
a3,1
..
.

a1,2
(0)
a2,2
(0)
a3,2
..
.

(0)

(0)

(0)

(0)

a1,3 a1,n
(0)
(0)
a2,3 a2,n
(0)
(0)
a3,3 a3,n
..
..
.
.
(0)
(0)
an,3 an,n

an,1 an,2

(0)

b1
(0)
b2
(0)
b3
..
.
(0)

bn

onde o ndice superior indica a etapa do processo.


(0)

Etapa 1: Eliminar a incgnita x1 das equaes k = 2, 3, . . . , n. Sendo a1,1 6= 0, usaremos a


operao elementar (III) e subtramos da linha k a primeira linha multiplicada por
(0)

mk,1 =

ak,1
(0)

a1,1

.
(0)

Os elementos mk,1 so chamados de multiplicadores e o elemento a1,1 chamado


(0)

de piv da Etapa 1. Indicando a linha k da matriz entendida por Lk esta etapa se


resume em
(0)

(1)

= L1

(1)

= Lk mk,1 L1 ,

L1

Lk

(0)

(0)

k = 2, 3, . . . , n

Ao final desta etapa teremos a matriz

(1)

(1)

(1)

a1,1 a1,2 a1,3


(1)
(1)
0 a2,2 a2,3
(1)
(1)
0 a3,2 a3,3
..
..
..
.
.
.
(1)
(1)
0 an,2 an,3

(1)

(1)

a1,n b1
(1)
(1)
a2,n b2
(1)
(1)
a3,n b3
..
..
.
.
(1)
(1)
an,n bn

que representa um sistema linear equivalente ao sistema original, onde a incgnita


x1 foi eliminada das equaes k = 2, 3, . . . , n.
(1)

Etapa 2: Eliminar a incgnita x2 das equaes k = 3, 4, . . . , n. Supondo que a2,2 6= 0,


vamos tomar este elemento como piv desta etapa e desta forma os multiplicadores
so dados por
(1)
ak,2
mk,2 = (1)
a2,2
A eliminao segue com as seguintes operaes sobre as linhas:
(2)

= L1

(2)

= L2

(2)

= Lk mk,2 L2 ,

L1

L2

Lk

(1)
(1)
(1)

(1)

k = 3, 4, . . . , n

CAPTULO 3. SISTEMAS LINEARES

38
obtendo ao final da etapa a matriz

(2)

(2)

a1,1 a1,2
(2)
0 a2,2
0
0
..
..
.
.
0
0

(2)

(2)

a1,3 a1,n
(2)
(2)
a2,3 a2,n
(2)
(2)
a3,3 a3,n
..
..
.
.
(2)
(2)
an,3 an,n

(2)

b1
(2)
b2
(2)
b3
..
.
(2)

bn

Com procedimentos anlogos ao das etapas 1 e 2 podemos eliminar as incgnitas


xk das equaes k + 1, k + 2, . . . , n e ao final de n 1 etapas teremos a matriz

(n1)

a1,1
0
0
..
.
0

(n1)

(n1)

a1,2
a1,3
(n1)
(n1)
a2,2
a2,3
(n1)
0
a3,3
..
..
.
.
0
0

(n1)

(n1)

a1,n
b1
(n1)
(n1)
a2,n
b2
(n1)
(n1)
a3,n
b3
..
..
.
.
(n1)
(n1)
an,n
bn

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 IRn
Eliminao:
Para k = 1, 2, . . . , n 1, faa:
Para i = k + 1, . . . , n, faa:
aij
m
ak,k
Para j = k + 1, . . . , n, faa:
aij aij m akj
fim para
bi bi m bk
fim para
fim para
Retro-Soluo:
xn bn /an,n
Para k = n 1,n 2, . . . 1, faa:
xk
fim para

n
X
1
bk
ak,j xj

ak,k

j=k+1

3.2. MTODOS DIRETOS

39

Output: x IRn : soluo do sistema


Exemplo 3.3 Vamos considerar o sistema linear abaixo

3x1 + 2x2 x3 = 1

7x1 x2 x3 = 2

x +x =1
1
3
Escrevendo na forma de matriz estendida teremos

3
2 1
1

7 1 1 2
1
0
1
1
Etapa 1: Eliminar x1 das linhas 2 e 3.
(1)

= L1

(0)

(1)

= L2 m2,1 L1 ,

L1

(0)

L2

(1)

(0)

L3

(0)

(0)

= L3 m3,1 L1 ,

e com isto obtemos a matriz

(0)

onde m2,1 =
onde m3,1 =

a21

(0)
a1,1
(0)
a31
(0)
a1,1

7
3

1
3

2
17

3
2 1
1

0 17/3 4/3 13/3


0 2/3 4/3
12/3
Etapa 2: Eliminar x2 da linha 3.
(2)

= L1

(2)

= L2

(2)

= L3 m3,2 L2 ,

L1
L2

L3

(1)
(1)

obtendo assim a matriz

(1)

(1)

(01)

onde m3,2 =

a32

(1)
a2,2

3
2
1
1

4/3 13/3
0 17/3
0
0 20/17 20/17

Retro-Soluo: Encontrar a soluo do sistema triangular superior.


x3 =
x2 =
x1 =

b3
=1
a3,3
1
(b2 a2,3 x3 ) = 1
a2,2
1
(b1 a1,2 x2 a1,3 x3 ) = 0
a1,1

Logo a soluo do sistema dada por x = (0, 1, 1)T .

CAPTULO 3. SISTEMAS LINEARES

40

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 flutuante 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


(k1)

mk,j =

ak,j

(k1)

ak,k

(k1)

Se o piv |ak,k | 1, ou seja este prximo de zero teremos problemas com os erros de
arredondamento, pois operar nmeros de grandezas muito diferentes aumenta os erros
( ver Ex. 3.4). A estratgia de pivotamento parcial baseada na operao elementar (I).
No incio de cada etapa k escolhemos como piv o elemento de maior mdulo entre os
coeficientes ak1
para i = k, k + 1, . . . , n.
ik
Exemplo 3.4 Vamos considerar o sistema linear, representado pela matriz extendida

1 3 2
3

4
2 1 2
3 2 1 2
Etapa 1: Escolha do piv
max |ai,1 | = |a3,1 |

1i3

Com o objetivo de tormar os multiplicadores mk,1 1, trocamos a linha L1 com a linha


L3 , obtendo,

3 2 1 2

4
2 1 2
1 3 2
3
Eliminar x1 das linhas 2 e 3.
(1)

= L1

(1)

= L2 m2,1 L1 ,

(1)

= L3 m3,1 L1 ,

L1

L2
L3

(0)
(0)

onde m2,1 =

(0)

(0)

onde m3,1

e com isto obtemos a matriz

2
3
1
=
3

(0)

3
2
1 2

7/3 8/3 8/3


0
0 11/3 7/3 7/3

3.2. MTODOS DIRETOS

41

Etapa 2: Escolha do piv


max |ai,1 | = |a3,2 |

2i3

Neste caso trocamos a linha L2 com a linha L3 , obtendo,

3
2
1 2

0 11/3 7/3 7/3


0 7/3 8/3 8/3
Eliminar x2 da linha 3.
(2)

= L1

(2)

= L2

(2)

= L3 m3,2 L2 ,

L1
L2
L3

obtendo assim a matriz

(1)
(1)

(1)

(1)

onde m3,2 =

7
11

3
2
1
2

8/3
8/3
0 11/3
0
0 13/11 13/11

Retro-Soluo: Encontrar a soluo do sistema triangular superior.


x3 =
x2 =
x1 =

b3
=1
a3,3
1
(b2 a2,3 x3 ) = 0
a2,2
1
(b1 a1,2 x2 a1,3 x3 ) = 1
a1,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 inteiros 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 = b1 , Ax = b2 , . . . Ax = bk ,


onde a matriz A a mesma para todos os sistemas. A matriz triangular superior, resultante 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|b1 |b2 | . . . |bk ) e aplicando a Retro-Soluo
para cada vetor bk .
O Clculo da inversa de uma matriz um caso particular do esquema acima. A
inversa de uma matriz A Rnn , denotada por A1 , uma matriz n n tal que
A A1 = A1 A = I

CAPTULO 3. SISTEMAS LINEARES

42

Como exemplo vamos considerar uma matriz A de dimenso 3 3

a1,1 a1,2 a1,3

a2,1 a2,2 a2,3


a3,1 a3,2 a3,3
cuja a inversa A1 dada por

x1,1 x1,2 x1,3

x2,1 x2,2 x2,3 ,


x3,1 x3,2 x3,3
logo temos que

1 0 0
x1,1 x1,2 x1,3
a1,1 a1,2 a1,3

a
a
a
x
x
x
=
2,1
0 1 0 ,
2,2
2,3 2,1
2,2
2,3
x3,1 x3,2 x3,3
a3,1 a3,2 a3,3
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

a1,1 a1,2 a1,3


x1,1
1

a2,1 a2,2 a2,3 x2,1 = 0 ,


a3,1 a3,2 a3,3
x3,1
0
a1,1 a1,2 a1,3
x1,2
0

a2,1 a2,2 a2,3 x2,2 = 1 ,


a3,1 a3,2 a3,3
x3,2
0
a1,1 a1,2 a1,3
x1,3
0

a2,1 a2,2 a2,3 x2,3 = 0 ,


a3,1 a3,2 a3,3
x3,3
1
Em resumo, se temos uma matriz n n, podemos achar a inversa resolvendo n sistemas
lineares, representados pela matriz estendida (A|b1 |b2 | . . . |bn ), onde os vetores bk so os
vetores unitrios ( 1 na posio k e zeros nas demais posies).
Exemplo 3.5 Vamos achar a inversa da
Gauss.

3
3

matriz abaixo, usando o mtodo de Elinao de

1 6

2 6 ,
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 x1 das linhas 2 e 3.


(1)

= L1

(0)

(1)

= L2 m2,1 L1 ,

(1)

= L3 m3,1 L1 ,

L1

L2
L3

3
4
3
=
4

(0)

(0)

onde m2,1 =

(0)

(0)

onde m3,1

e com isto obtemos a matriz

1
0 0
4 1
6

0 5/4 3/2 3/4 1 0 ,


0 1/4 1/2 3/4 0 1
Etapa 2: Eliminar x2 da linha 3.
(2)

= L1

(2)

= L2

(2)

= L3 m3,2 L2 ,

L1

L2

L3

(1)
(1)
(1)

(1)

onde m3,2 =

1
5

obtendo assim a matriz

4 1
6
1
0
0

1
0 ,
0 5/4 3/2 3/4
0 0 1/5 3/5 1/5 1
Retro-Soluo: Encontrar a soluo dos sistemas triangulares superior.
Primeira coluna da inversa
x3,1 =
x2,1 =
x1,1 =

b13
=3
a3,3
1 1
(b a2,3 x3 ) = 3
a2,2 2
1 1
(b a1,2 x2 a1,3 x3 ) = 4
a1,1 1

Segunda coluna da inversa


x3,2 =
x2,2 =
x1,2 =

b23
=1
a3,3
1 2
(b a2,3 x3 ) = 2
a2,2 2
1 2
(b a1,2 x2 a1,3 x3 ) = 1
a1,1 1

CAPTULO 3. SISTEMAS LINEARES

44
Terceira coluna da inversa
x3,3 =
x2,3 =
x1,3 =

b33
= 5
a3,3
1 3
(b a2,3 x3 ) = 6
a2,2 2
1 3
(b a1,2 x2 a1,3 x3 ) = 6
a1,1 1

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 verificar a eficincia dos mtodos numricos.
Abaixo apresentamos uma implementao do Mtodo de Eliminao de Gauss em
MatLab que resolve k sistemas, onde a matriz A comum a todos.
%
%
%
%
%
%
%
%
%
%

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 orientada 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 ai,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.

CAPTULO 3. SISTEMAS LINEARES

46

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 dT /N pe, onde N p o nmero de processadores.
O Mtodo de Gauss-Seidel no indicado para processamento paralelo, pois o clk+1
k+1
culo de xk+1
depende de xk+1
s
1 , x2 , , xs1 . 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.7x1

+ 2.3x2 0.5x3 = 4.55


1.1x1 + 0.6x2 1.6x3 = 3.40

2.7x 0.8x + 1.5x = 5.50


1
2
3
Exerccio 3.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:

a1,1 a1,2 0
0
0
a2,1 a2,2 a2,3 0
0
0 a3,2 a3,3 a3,4 0
0
0 a4,3 a4,4 a4,5
..
..
..
..
..
.
.
.
.
.
0
0
0
0
0
0
0
0
0
0

0
0
0
0
..
.

0
0
0
0
..
.

an1,n2 an1,n1

0
an,n1

0
0
0
0
..
.

an1,n

an,n

Faa uma modificao no Mtodo de Eliminao de Gauss explorando a forma do sistema.


[ex32]

Exerccio 3.4 Considere o sistema linear


(

0.0002x1 + 2x2 = 2
2x1
+ 2x2 = 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:

kx1 + x2 = 2

k
x3 = 3
5
kx1 + x2 + 2x3 = 2

kx1 + 2x2 +

a) Verifique para que valores de k , a convergncia do Mtodo de Gauss-Jacobi pode


ser garantida.
b) Verifique 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 mximo.
Exerccio 3.8 Dado o sistema Ax = b podemos montar um processo iterativo da seguinte
forma
xk+1 = (I + A)xk b
a) Enuncie uma condio suficiente de convergncia baseada na Norma do Mximo das
Linhas.
b) Faa trs iteraes do processo acima para o sistema linear
(

1.3x1 + 0.3x2 = 1
0.5x1 0.5x2 = 0

tomando

(0)

0.8
0.8

Exerccio 3.9 Enuncie as vantagens e desvantagens dos Mtodos Diretos em relao aos
Mtodos Iterativos.

CAPTULO 3. SISTEMAS LINEARES

48

3.5

Atividades no Laboratrio

Problema 3.1 Implemente as modificaes necessrias no programa do Mtodo de Eliminao 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=

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

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=

b=

5
8
12
16
20
17

30
10
5
15
20

= 1010

= 108

CAPTULO

4
Ajuste de Curvas: Mtodo dos Mnimos
Quadrados

Em geral, experimentos em laboratrio gera um conjunto de dados que devem ser analisados com o objetivo de determinar certas propriedades do processo em anlise. Obter
uma funo matemtica que represente (ou que ajuste) os dados permite fazer simulaes do processo, de forma confivel, reduzindo assim repeties de experimentos
que podem ter um custo alto. Neste captulo vamos analisar o esquema dos Mnimos
Quadrados, que fornece uma funo que melhor represente os dados.

4.1

Mtodo dos Mnimos Quadrados - Caso Discreto

Dado um conjunto de pontos (xk , f (xk )), 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, definido por
dk = f (xk ) (xk ),
seja mnimo, onde (x) uma combinao linear de funes contnuas gi (x), i = 1, 2, ..., n,
escolhidas de acordo com os dados do problema. Isto
(x) = 1 g1 (x) + 2 g2 (x) + + n gn (x)
Neste caso dizemos que o ajuste linear sob os parmetros i . A escolha das funes
gi depende do grfico dos pontos, chamado de diagrama de disperso, atravs do qual
podemos visualizar que tipo de curva que melhor se ajusta aos dados.
Exemplo 4.1 Vamos considerar a tabela de pontos dada abaixo.
x
f (x)

0.10
0.19

0.20
0.36

0.50 0.65
0.75 0.87

0.70
0.91

0.80
0.96

0.90
0.99

49

1.10
0.99

1.23
0.94

1.35
0.87

1.57 1.70
0.67 0.51

1.75
0.43

1.80 1.94
0.36 0.11

50

CAPTULO 4. AJUSTE DE CURVAS: MTODO DOS MNIMOS QUADRADOS


1

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0.2

0.4

0.6

0.8

1.2

1.4

1.6

1.8

Figura 4.1: Diagrama de Disperso


[fig41]

A anlise do grfico de disperso (Fig. 4.1) mostra que a funo que procuramos se
comporta como uma parbola. Logo poderamos escolher as funes g1 (x) = 1, g2 (x) = x e
g3 (x) = x2 , pois (x) = 1 g1 (x) + 2 g2 (x) + 3 g3 (x) representa todas as parbolas e com a
escolha adequada dos i teremos aquela que melhor se ajusta aos pontos. [ex:03]
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
X

(xk )

}|

[f (xk ) (1 g1 (xk ) + n gn (xk ))]2 .

k=1

A funo F uma funo que satisfaz F () 0 IRm . Isto , uma funo limitada
inferiormente e portanto esta tem um ponto de mnimo. Este ponto pode ser determinado
pelo teste da primeira derivada, sendo

F
=0
i (1 ,...,n )

i = 1, . . . , n.

Desta forma temos


2

m
X
k=1

[f (xk ) 1 g1 (xk ) 2 g2 (xk ) n gn (xk )] gi (xk ) = 0

4.1. MTODO DOS MNIMOS QUADRADOS - CASO DISCRETO

51

m
m
m
X
X
X

g
(x
)g
(x
)
+

g
(x
)g
(x
)
+

g1 (xk )gn (xk ) =

1
1 k 1 k
2
1 k 2 k
n

k=1
k=1
k=1

m
m
m

X
X
X

1
g2 (xk )g1 (xk ) + 2
g2 (xk )g2 (xk ) + + n
g2 (xk )gn (xk ) =

k=1
k=1
k=1

..
..
..
..
..

.
.
.
.
.

m
m
m

X
X
X

gn (xk )gn (xk ) =


gn (xk )g1 (xk ) + 2
gn (xk )g2 (xk ) + + n

1
k=1

k=1

k=1

m
X

f (xk )g1 (xk )

k=1
m
X

f (xk )g2 (xk )

k=1
m
X

..
.
f (xk )gn (xk )

k=1

Que representa um sistema linear n n da forma

a1,1 1

a2,1 1

+ a1,2 2 + a1,3 3
+ a2,2 2 + a2,3 3
+ a3,2 2 + a3,3 3
..
..
.
.
+ an,2 2 + an,3 3

a3,1 1
..
.

an,1 1

onde
ai,j =

m
X

gi (xk )gj (xk )

a1,n n
a2,n n
a3,n n
..
.

an,n n = bn

bi =

k=1

= b1
= b2
= b3
..
.

m
X

f (xk )gi (xk )

k=1

Este sistema tem uma nica soluo se os vetores formados por gk = (gk (x1 ), gk (xn ))
so linearmente independentes. Isto equivalente a ter as funes gi (x) linearmente independentes. A matriz A associada ao sistema uma matriz simtrica, ou seja ai,j = aj,i .
Logo, para um sistema n n, ser necessrio calcular (n2 + n)/2 elementos.
Exemplo 4.2 Usando a tabela do exemplo (4.1), vamos ajustar os dados por uma parbola.
Para isto vamos tomar g1 (x) = 1, g2 (x) = x e g3 (x) = x2 . Calculando cada uma das funes
nos pontos xk temos.
x
f (x)
g1 (x)
g2 (x)
g3 (x)

0.10
0.19
1.0
0.10
0.01

0.20
0.36
1.0
0.20
0.04

0.50
0.75
1.0
0.50
0.25

0.65
0.87
1.0
0.65
0.42

0.70
0.91
1.0
0.70
0.49

0.80
0.96
1.0
0.80
0.64

0.90
0.99
1.0
0.90
0.81

1.10
0.99
1.0
1.10
1.21

1.23
0.94
1.0
1.23
1.51

1.35
0.87
1.0
1.35
1.82

1.57
0.67
1.0
1.57
2.46

1.70
0.51
1.0
1.70
2.89

1.75
0.43
1.0
1.75
3.06

1.80
0.36
1.0
1.80
3.24

Calculando os elementos da matriz e o vetor dos termos independentes temos


a1,1 =
a1,2 =
a1,3 =
a2,2 =

15
X
k=1
15
X
k=1
15
X
k=1
15
X
k=1

g1 (xk ) g1 (xk ) = 15
g1 (xk ) g2 (xk ) = 16.29 = a2,1
g1 (xk ) g3 (xk ) = 22.62 = a3,1
g2 (xk ) g2 (xk ) = 22.62

1.94
0.11
1.0
1.94
3.76

52

CAPTULO 4. AJUSTE DE CURVAS: MTODO DOS MNIMOS QUADRADOS


a2,3 =
a3,3 =
b1 =
b2 =
b3 =

15
X
k=1
15
X
k=1
15
X
k=1
15
X
k=1
15
X

g2 (xk ) g3 (xk ) = 34.92 = a3,2


g3 (xk ) g3 (xk ) = 57.09
f (xk ) g1 (xk ) = 9.91
f (xk ) g2 (xk ) = 10.28
f (xk ) g3 (xk ) = 12.66

k=1

Obtendo assim um sistema linear que pode ser resolvido por um esquema numrico estudado no captulo 3. A soluo do sistema dado por
1 = 0.00, 2 = 1.99,

3 = 0.99

Portanto a funo dada por


(x) = 1.99x 0.99x2
A figura 4.2 compara a funo (x) com o grficos dos pontos.
1

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0.2

0.4

0.6

0.8

1.2

1.4

1.6

1.8

Figura 4.2: Diagrama de Disperso com o grfico da (x).


Atravs da funo podemos determinar valores de mximo ou mnimos, determinar 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 poderiam ser usadas. Como exemplo, poderamos pensar que os dados representam o
primeiro meio ciclo de uma funo senoidal. E neste caso poderamos tomar g1 (x) = 1
e g2 (x) = sen(x/2). Afinal qual seria a melhor escolha? (Veja exerccio 4.1) O desvio
fornece uma medida que pode ser usada como parmetro de comparao entre ajustes
diferentes. No caso do ajuste pela parbola temos que o desvio dado por
D=

15
X

(f (xk ) (xk ))2 = 0.0019

k=1

Se o ajuste feito por uma funo senoidal tiver um desvio menor, ento este ajuste representaria 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 gi
devemos determinar a funo (x) = 1 g1 (x) + 2 g2 (x) + + n gn (x) de modo que o desvio
seja mnimo, onde
D=

Z b
a

(f (x) (x))2 dx

Neste caso os i tambm so determinados pela resoluo de um sistema, onde os


elementos ai,j so obtidos por intermdio do produto interno entre as funes gi (x) e
gj (x) e os elementos bi pelo produto interno entre f (x) e gi (x), isto ,
ai,j =

Z b
a

gi (x)gj (x)dx

bi =

Z b
a

f (x)gi (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 g1 (x) = 1,
g2 (x) = x e g3 (x) = x2 . Calculando os termos do sistema linear temos
a1,1 =

a2,2
a2,3

Z 1

g1 (x)g1 (x)dx = 1

1
= a2,1
2
0
Z 1
1
=
g1 (x)g3 (x)dx = = a3,1
3
0
Z 1
1
=
g2 (x)g2 (x)dx =
3
0
Z 1
1
=
g2 (x)g3 (x)dx = = a3,2
4
0

a1,2 =
a1,3

Z 1

g1 (x)g2 (x)dx =

54

CAPTULO 4. AJUSTE DE CURVAS: MTODO DOS MNIMOS QUADRADOS


a3,3 =
b1 =
b2 =
b3 =

Z 1
0

Z 1
0

Z 1
0

Z 1
0

g3 (x)g3 (x)dx =

1
25

f (x)(x)g1 (x)dx = 0.636


f (x)g2 (x)dx = 0.318
f (x)g3 (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.050x2 . A figura (4.3) mostra o grfico comparativo entre a funo
f (x) ( linha: ) e o ajuste (x) (linha: ).
1.2

0.8

0.6

0.4

0.2

0.2

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9

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
f (x)

1.0 0.5
0
0.5
1.0
1.5
2.0
2.5
3.0
0.157 0.234 0.350 0.522 0.778 1.162 1.733 2.586 3.858

Montando o diagrama de disperso (Veja figura 4.4) podemos considerar que f (x) tem
um comportamento exponencial. Isto , f (x) (x) = 1 e2 x . Note que neste caso o
4

3.5

2.5

1.5

0.5

0
1

0.5

0.5

1.5

2.5

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 ex , cujo o fator de crescimento fixo.
Desta forma, a aproximao no linear pode permitir uma flexibilidade 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 e2 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 g1 (x) = 1 e g2 (x) = x. Calculando as funes em cada um dos

56

CAPTULO 4. AJUSTE DE CURVAS: MTODO DOS MNIMOS QUADRADOS

pontos temos
x
f (x)
z = ln(f (x))
g1 (x)
g2 (x)

1.0
0.5
0
0.5
1.0
1.5
2.0
2.5
3.0
0.157
0.234
0.350
0.522
0.778 1.162 1.733 2.586 3.858
1.851 1.452 1.049 0.650 0.251 0.150 0.549 0.950 1.350
1.000
1.000
1.000
1.000
1.000 1.000 1.000 1.000 1.000
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


a1,1 =
a1,2 =
a2,2 =
b1 =
b2 =

9
X
k=1
9
X
k=1
9
X
k=1
15
X
k=1
15
X

g1 (xk ) g1 (xk ) = 9
g1 (xk ) g2 (xk ) = 9 = a2,1
g2 (xk ) g2 (xk ) = 24
z(xk ) g1 (xk ) = 2.254
z(xk ) g2 (xk ) = 9.749

k=1

Cuja a soluo dada por


1 = 1.050

2 = 0.800

2 = 2 = 0.800

Desta forma os valores de i so dados por:


1 = e1 = 0.349
Portanto temos
(x) = 1 e2 = 0.349e0.800x
A Figura 4.5 mostra a comparao dos dados com a funo obtida. Para verificar se
funo escolhida para a aproximao foi bem feita, usamos o teste de alinhamento. Este
consiste em tomarmos os dados linearizados, isto , os pontos z da tabela, e fazer o
diagrama de disperso. Se os pontos estiverem alinhados, ento a escolha da funo
foi boa. A Figura 4.6 mostra o diagrama de disperso dos dados em z, obtidos no
nosso exemplo. Podemos concluir que a nossa escolha pela exponencial foi uma escolha
acertada.

4.4

Observaes Finais

O ajuste de curvas permite extrapolar os valores tabelados. Isto , se os dados esto


tabelados num intervalo [x0 , xm ] podemos aproximar um x
6 [x0 , xm ] com uma certa segurana. Como os dados provm de experimentos que esto sujeitos a erros de medies,

4.4. OBSERVAES FINAIS

57

3.5

2.5

1.5

0.5

0
1

0.5

0.5

1.5

2.5

Figura 4.5: Diagrama de Disperso e o Grfico 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 ai,j so obtidos pelo produto interno entre as funes gi e gj definidos
por
Caso Discreto:

hgi , gj i =

Caso Contnuo:

hgi , gj i =

m
X
k=1
Z b
a

gi (xk )gj (xk )


gi (x)gj (x)dx

Se as funes gi forem ortogonais, isto


(

hgi , gj i =

0,
ki ,

para i 6= j
para i = j

a matriz obtida ser diagonal e conseqentemente a soluo do sistema imediata.


Como exemplo, veja exerccio 4.5.

CAPTULO 4. AJUSTE DE CURVAS: MTODO DOS MNIMOS QUADRADOS

58

1.5

0.5

0.5

1.5

2
1

0.5

0.5

1.5

2.5

Figura 4.6: Diagrama dos dados linearizados

4.5

Exerccios

Exerccio 4.1 Usando os dados abaixo, faa um ajuste de curva com g1 (x) = 1 e g2 (x) =
sen(/2x). Calcule o desvio e compare com os resultados obtidos no Exemplo (4.1).
x
f (x)

0.10
0.19

0.20
0.36

0.50 0.65
0.75 0.87

0.70
0.91

0.80
0.96

0.90
0.99

1.10
0.99

1.23
0.94

1.35
0.87

1.57 1.70
0.67 0.51

1.75
0.43

1.80 1.94
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. Justifique sua escolha. Faa um ajuste considerando
sua escolha.
Grupo I: g1 (x) = 1 e g2 (x) = x.
Grupo II: g1 (x) = 1 e g2 (x) = ex .
Grupo III: g1 (x) = 1 e g2 (x) = x2 .

4.6. ATIVIDADE NO LABORATRIO

59

Exerccio 4.3 A tabela abaixo representa o calor especfico da gua em funo da temperatura.
t(o C)
0
5
10
25
30
35
C(t)
1.00762 1.00392 1.00153 0.99852 0.99826 0.99818
Faa um ajuste linear, um quadrtico e um cbico. Faa um ajuste no linear da forma
(x) = 1 e2 x , com 1 , 2 > 0. Calcule o desvio e ache uma aproximao para t = 15 em
cada um dos casos. Sabendo que o valor exato da funo C(15) = 1.00000, qual dos casos
acima apresentou melhor aproximao?
1
1 + e(1 x+2 )
0.1
0.3
0.5
0.5
0.7
0.8
0.8
1.10
1.30
1.80
x
f(x) 0.833 0.625 0.500 0.510 0.416 0.384 0.395 0.312 0.277 0.217
Verifique, pelo teste do alinhamento, qual a melhor escolha para ajustar os dados
entre as funes z = 1 2 x e z = 1 x2 . (Obs: Note que neste caso a tabela apresenta dois
valores diferentes para os pontos x = 0.5 e x = 0.8. ) [ex4:02]
Exerccio 4.4 Ajustar os dados abaixo funo z =

1
Exerccio 4.5 Usando os polinmios de Legendre g1 (x) = 1, g2 (x) = x e g2 (x) = (3x2 1),
2
que so ortogonais em [1, 1], ache a melhor parbola que aproxima a funo f (x) = cos(x)
no intervalo [3, 3]. (Obs: A ortogonalidade dos polinmios nos forneceria uma matriz
diagonal, se o ajuste fosse feito no intervalo [1, 1]. Logo devemos fazer uma mudana de
varivel de tal forma que obteremos novas gi que sero ortogonais em [3, 3] ) [exc4:03]
Exerccio 4.6 Seja f(x) uma funo real, contnua no intervalo [0, 2]. Ache os valores de
i e i , para o ajuste da forma
(x) = 1 cos(x) + 1 sen(x) + 2 cos(2x) + 2 sen(2x) + + n cos(nx) + n sen(nx)g2 (x).
Este ajuste a aproximao de uma funo pela sua Srie de Fourier, cuja as aplicaes
em processamento de imagens e sinais so bem difundidos.

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: g1 (x) = 1, g2 (x) = x, g3 (x) = x2 , . . . , gn (x) = xn1 .
Grupo II: g1 (x) = cos(x), g2 (x) = cos(2x), g3 (x) = cos(3x), . . . , gn (x) = cos(nx).
Grupo III: g1 (x) = 1, g2 (x) = ex , g3 (x) = e2x , . . . , gn (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 (xk , fk ), k = 0, 1, , n, consiste em
encontrar uma funo pn (x), escolhida numa classe de funes, tal que esta satisfaa
certas propriedades. Neste captulo vamos considerar o caso onde pn (x) um polinmio
de tal forma que
fk = p(xk ), 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
(xk , fk ), k = 0, 1, n, com xk 6= xj para k 6= j. Existe um nico polinmio p(x) de grau
menor ou igual a n, tal que p(xk ) = fk para k = 0, 1, 2, , n.
Prova: Seja p(x) = a0 + a1 x + a2 x2 + + an xn . Para obter os ai usamos a condio de
interpolao fk = p(xk ) para k = 0, 1, 2, , n. Logo, segue que:
f0 = p(x0 ) = a0 + a1 x0 + a2 x0 2 + + an x0 n
f1 = p(x1 ) = a0 + a1 x1 + a2 x1 2 + + an x1 n
..
..
..
..
. =
.
.
.
fn = p(xn ) = a0 + a1 xn + a2 xn 2 + + an xn n
Que corresponde ao sistema linear da forma

1 x0 x0 2
1 x1 x1 2
1 x2 x2 2
.. ..
..
. .
.
1 xn xn 2

x0 n
x1 n
x2 n
..
.
xn n
61

a0
a1
a2
..
.
an

f0
f1
f2
..
.
fn

CAPTULO 5. INTERPOLAO POLINOMIAL

62

A matriz A, associada ao sistema, uma matriz de Vandermonde, cujo o determinante


dado por
Det(A) =

n l1
Y
Y

(xl xj ).

l=1 j=0

Como xl =
6 xj para l 6= 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.
xk
fk

0.0
4.00

0.2
3.84

0.4
3.76

Como temos, trs pontos (n + 1 = 3), o grau do polinmio ser menor ou igual a dois. Logo
p(x) = a0 + a1 x + a2 x2
Impondo a condio fk = p(xk ) obtemos:
f0 = 4.00 = p(0) = a0 + a1 0 + a2 02
f1 = 3.84 = p(0.2) = a0 + a1 0.2 + a2 0.22
f2 = 3.76 = p(0.4) = a0 + a1 0.4 + a2 0.42

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 a0 = 4, a1 = 1 e a2 = 1, obtendo assim
p(x) = x2 x + 4
Desta forma
f (0.3) p(0.3) = 3.79
Existem outras formas de encontrar o polinmio interpolador que a resoluo de sistemas. O Teorema 5.1 garante a unicidade do polinmio interpolador. Logo estes procedimentos resultam no mesmo polinmio pn (x). A escolha de um ou outro procedimento
depende dos dados que devemos interpolar.

5.1. FORMA DE LAGRANGE

5.1

63

Forma de Lagrange

Vamos considerar o conjunto de n+1 pontos (xk , fk ), k = 0, 1, . . . n distintos e vamos


considerar o polinmio representado por
pn (x) = f0 L0 (x) + f1 L1 (x) + + fn Ln (x) =

n
X

fk Lk (x)

k=0

onde Lk (x) um polinmio de grau n que satisfaz a relao


(

Lk (xj ) =

0
1

se k 6= j
se k = j

Com isto temos que


0

pn (xj ) = f0 L0%
(xj )+ f1 L1%
(xj )+ + fj Lj%
(xj )+ + fn Ln%
(xj )= fj
Logo pn (x) satisfaz a condio de interpolao, sendo assim, o polinmio interpolador
de f (x) nos pontos x0 , x1 , . . . , xn . Os polinmios Lk (x) so chamados de polinmios de
Lagrange e estes so obtidos da seguinte forma:
Lk (x) =

(x x0 )(x x1 ) (x xk1 )(x xk+1 ) (x xn )


(xk x0 )(xk x1 ) (xk xk1 )(xk xk+1 ) (xk xn )

Exemplo 5.2 Vamos considerar a tabela de pontos do exemplo anterior


x
f (x)

0.0
4.00

0.2
3.84

0.4
3.76

Calculando os Lk (x) temos


L0 (x) =
L1 (x) =
L2 (x) =

(x x1 )(x x2 )
(x 0.2)(x 0.4)
1
=
=
(x2 0.6x + 0.08)
(x0 x1 )(x0 x2 )
(0 0.2)(0 0.4)
0.08
(x x0 )(x x2 )
(x 0)(x 0.4)
1 2
=
=
(x 0.4x)
(x1 x0 )(x1 x2 )
(0.2 0)(0.2 0.4)
0.04
(x x0 )(x x1 )
(x 0)(x 0.2)
1
=
=
(x2 2.6x)
(x2 x0 )(x2 x1 )
(0.4 0)(0.4 0.2)
0.08

Assim temos que


p(x) = x2 x + 4
Observe que o polinmio o mesmo obtido pela resoluo de sistema. Isto j era esperado, pois o polinmio interpolador nico.

CAPTULO 5. INTERPOLAO POLINOMIAL

64

5.2

Forma de Newton

A forma de Newton do polinmio interpolador baseada nos operadores de diferenas divididas, que definimos a seguir: Seja f (x) uma funo tabelada em n + 1 pontos distintos
x0 , x1 , . . . , xn . Definimos o operador de diferena dividida de ordem zero em xk por
f [xk ] = f (xk ).
O operador de diferena dividida de ordem um, nos pontos xk , xk+1 , definido da seguinte
forma
f [xk ] f [xk+1 ]
f [xk , xk+1 ] =
xk xk+1
Este valor pode ser interpretado como uma aproximao para a primeira derivada de
f (x), em xk . O operador de diferena dividida de ordem dois, nos pontos xk , xk+1 , xk+2 ,
definido da seguinte forma:
f [xk , xk+1 , xk+2 ] =

f [xk , xk+1 ] f [xk+1 , xk+2 ]


.
xk xk+2

De forma anloga, definimos o operador diferena dividida de ordem n, nos pontos


xk , xk+1 , . . . , xk+n , da seguinte forma:
f [xk , xk+1 , . . . , xk+n ] =

f [xk , xk+n1 ] f [xk+1 , xk+n ]


.
xk xk+n

Note que a forma de clculo desses operadores construtiva, no sentido de que para
obter a diferena dividida de ordem n necessitamos das diferenas divididas de ordem
n 1, n 2, . . . , 1, 0. Um esquema prtico para o clculo desses operadores dado pela
tabela abaixo
x
x0
x1
x2

f [xk ] f [xk , xk+1 ]


f0
1
> xf00 f
x1
f1
2
> xf11 f
x2
f2
3
> xf22 f
x3

x3
..
.

f3
..
.

xn1

fn1
>

xn

5.2.1

fn

f [xk , xk+1 , xk+2 ]

>

f [x0 ,x1 ]f [x1 ,x2 ]


x0 x2

>

f [x1 ,x2 ]f [x2 ,x3 ]


x1 x3

f [xk , xk+1 , . . . , xk+n ]

>
..
.

f [x0 ,...,xn1 ]f [x1 ,...,xn ]


x0 xn

fn1 fn
xn1 xn

Construo do Polinmio

Vamos considerar o conjunto de pontos x0 , x1 , . . . , xn , onde conhecemos os valores da


funo f (x), dados por f0 , f1 , . . . , fn . Calculando a diferena dividida de ordem dois entre

5.2. FORMA DE NEWTON

65

os pontos x, x0 , x1 temos
f [x, x0 , x1 ] =

f [x, x0 ] f [x0 x1 ]
x x1

Isolando a diferena de ordem um que depende de x segue que


f [x, x0 ] = f [x0 , x1 ] + (x x1 )f [x, x0 , x1 ]
Aplicamos a definio de diferena de ordem um no primeiro termo, segue que
f (x) f (x0 )
= f [x0 , x1 ] + (x x1 )f [x, x0 , x1 ],
x x0
e isto implica que
f (x) = f (x0 ) + x x0 f [x0 , x1 ] + (x x0 )(x x1 )f [x, x0 , x1 ] = p1 (x) + E1 (x).
Ou seja a funo f (x) igual a um polinmio de grau um ,p1 (x), mais uma funo E1 (x)
que depende da diferena dividida de ordem dois. Desta forma podemos dizer que a
funo f (x) aproximada por p1 (x) com erro de E1 (x). O polinmio p1 (x) o polinmio
interpolador de f (x), nos pontos x0 , x1 , pois este satisfaz a condio de interpolao, isto
,
0

p1 (x0 ) = f (x0 ) + (x0 %x0 )f [x0 , x1 ] + (x0 %x0 )(x x1 )f [x, x0 , x1 ]


= f (x0 )
0

p1 (x1 ) = f (x0 ) + (x1 x0 )f [x0 , x1 ] + (x1 x0 )(x %x1 )f [x, x0 , x1 ]


= f (x0 ) + (x1 x0 )

f (x0 ) f (x1 )
x0 x1

= f (x1 )
De forma anloga, podemos calcular a diferena dividida de ordem n, sobre os pontos
x, x0 , x1 , . . . , xn , obtendo
f (x) = pn (x) + En (x),
onde
pn (x) = f (x0 ) + (x x0 )f [x0 , x1 ] + (x x0 )(x x1 )f [x0 , x1 , x2 ] + +
(x x0 )(x x1 ) (x xn1 )f [x0 , x1 . . . , xn ]
En (x) = (x x0 )(x x1 ) (x xn )f [x, x0 , x1 , . . . , xn ]

[eq5:01]

[eq5:02]

(5.1)
(5.2)

Assim podemos aproximar f (x) por pn (x), sendo que o erro dado por En (x). O polinmio
pn (x) o polinmio interpolador de f (x) sobre os pontos x0 , x1 , . . . xn , pois p(xj ) = f (xj ),
para j = 0, 1, . . . , n.

CAPTULO 5. INTERPOLAO POLINOMIAL

66

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
xk f [xk ] f [xk , xk+1 ] f [xk , .., xk+2 ] f [xk , .., xk+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) =
=
=

5.3

f (x0 ) + x x0 f [x0 , x1 ] + (x x0 )(x x1 )f [x0 , x1 , x2 ] + (x x0 )(x x1 )(x x2 )f [x0 , x1 , x2 , x3 ]


0.00 + (x 0.0)2.2974 + (x 0.0)(x 0.5)0.8418 + (x 0.0)(x 0.5)(x 1.0)0.36306
2.05803x + 0.29721x2 + 0.36306x3

Estudo do Erro

A equao (5.2) representa o erro cometido na interpolao sobre os pontos x0 , . . . , xn . Se


aproximamos f (
x) pn (
x) o erro ser dado por En (
x). Porm este depende da diferena
dividida f [
x, x0 , x1 , . . . , xn ], 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 x0 , x1 , . . . , xn , n + 1 pontos distintos. Seja pn (x) o polinmio interpolador sobre x0 , x1 , . . . , xn . Se f (x) n+1 vezes diferencivel em [x0 , xn ] ento para x
[x0 , xn ]
o erro dado por:
En (
x) = f (
x) pn (
x) = (
x x0 )(
x x1 ) (
x xn )

f (n+1) ()
com [x0 , xn ]
(n + 1)!

[teo:51]

Prova: Seja G(x) = (x x0 )(x x1 ) (x xn ), logo G(xi ) = 0 para i = 0, 1, . . . n.


Seja H(t) = En (x)G(t) En (t)G(x), logo H satisfaz
1: H(t) possui derivadas at ordem n + 1, pois G e En possuem derivadas at esta ordem.
2: H(t) possui pelo menos (n + 2) zeros em [x0 , xn ], pois para t = xi temos
0

H(xi ) = En (x)G(x
%i ) En (x
%i )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 [x0 , xn ]

tem n + 1 zeros em [x0 , xn ]

00

H (t)
..
.

tem n zeros em [x0 , xn ]


..
.

H (n+1)

tem 1 zeros em [x0 , xn ]

H (t)

Por ouro lado temos que


H (n+1) (t) = En (x)G(n+1) (t) En (n+1) (t)G(x)
onde,
En (n+1) (t) = f (n+1) (t) pn (n+1) (t)
G(n+1) (t) = (n + 1)!

Como o polinmio pn de grau n temos que pn (n+1) (t) = 0 e segue que


H (n+1) (t) = En (x)(n + 1)! f (n+1) (t)G(x)
A funo H (n+1) (t) possui um zero em [x0 , xn ] que vamos chamar de . Substituindo na
equao acima temos que
En (x) = (x x0 )(x x1 ) (x xn )

f (n+1) ()
(n + 1)!

Na prtica usamos um limitante para o erro, sendo


|f (n+1) (x)|
,
x[x0 ,xn ] (n + 1)!

|En (x)| |(x x0 )(x x1 ) (x xn )| max

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
f (x)

0.2
0.16

0.34
0.22

0.4
0.27

0.52
0.29

0.6
0.32

0.72
.
0.37

CAPTULO 5. INTERPOLAO POLINOMIAL

68

Vamos achar uma aproximao para f (0.44), usando um polinmio de grau 2. Neste
caso, necessitamos de 3 pontos e o ideal escolher aqueles que esto mais prximos do
valor que desejamos aproximar. Logo a melhor escolha ser x0 = 0.34, x1 = 0.4 e x2 = 0.52.
Isto se justifica pela frmula do erro, pois
|f (n+1) (x)|
|f (n+1) (x)|
= 0.00032 max
x[x0 ,x2 ] (n + 1)!
x[x0 ,x2 ] (n + 1)!

|En (0.44)| |(0.44 0.34)(0.44 0.4)(0.44 0.52)| max

Se tivssemos escolhido x0 = 0.2 e x2 = 0.72, o erro estaria limitado por


|f (n+1) (x)|
.
x[x0 ,x2 ] (n + 1)!

|En (0.44)| 0.00268 max

5.5

Interpolao Inversa

Considere o seguinte problema:


Dada uma tabela de pontos (xk , fk ) e um nmero y [f0 , fn ]. Desejamos achar o valor
de x de tal forma que f (x) = y.
Temos duas formas de resolver o problema: Obter o polinmio interpolador de f (x)
e resolver a equao pn (x) = y. Em geral a equao pn (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 significa que os pontos devem
satisfazer f0 < f1 < < fn ou f0 > f1 > > fn
Exemplo 5.4 Dada a tabela de pontos
x
f (x)

0.2
0.587

0.3
0.809

0.4
0.951

0.5
1.000

0.6
0.951

0.7
0.809

0.8
0.587

Vamos procurar uma aproximao de x de tal forma que f (x) = 0.9, usando uma interpolao quadrtica na forma de Newton.
Em primeiro lugar devemos determinar em que intervalo pode ocorrer f (x) = 0.9. Neste
exemplo temos duas possibilidades, para x [0.3, 0.4] ou x [0.6, 0.7]. Em segundo lugar
devemos verificar se a funo f (x) admite inversa. Para o primeiro caso temos que a
funo f (x) crescente no intervalo [0.2, 0.5]. Logo esta admite inversa neste intervalo.
No segundo caso a funo admite inversa no intervalo [0.5, 0.8], pois esta decrescente
neste intervalo. Como desejamos uma interpolao quadrtica temos que ter no mnimo
trs pontos e nos dois casos temos quatro pontos. Portanto possvel achar as duas
aproximaes. Vamos nos concentrar no primeiro caso. Montando a tabela da funo
inversa temos

5.6. OBSERVAES FINAIS


y
f 1 (y)

69
0.587
0.2

0.809
0.3

0.951
0.4

1.000
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 (x0 = 0.809, x1 =
0.951 e x2 = 1.000). Calculando as diferenas divididas temos
y
0.809

f 1
0.3

ordem 1

ordem 2

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 0 (x) p0n (x) (Veja figura 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 verificado pela frmula
do erro, onde o termo f (n+1) () = 0 [x0 , xn ].
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 justificado pela frmula
do erro, em que os pontos extremos do intervalo faz com que o fator (xx0 ) (xxn ) seja
grande. Desta forma, o polinmio interpolador no indicado para extrapolar valores,
isto aproximar valores que no pertencem ao intervalo [x0 , xn ]. Abaixo apresentamos
um exemplo implementado no MatLab, onde a figura 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

CAPTULO 5. INTERPOLAO POLINOMIAL

70
2

1.5

0.5

0.5
1

0.8

0.6

0.4

0.2

0.2

0.4

0.6

0.8

Figura 5.1: Fenmeno de Runge. - - - pn (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
Hab.

1900
17.4

1920
30.6

1940
41.2

1950
51.9

1960
70.2

1970
93.1

a) Usando o polinmio interpolador de grau 2, na forma de Lagrange, ache uma aproximao para a populao no ano de 1959.
b) Usando interpolao quadrtica na forma de Newton, estime, com o menor erro possvel, 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? Justifique sua resposta.

Exerccio 5.2 Considere a funo


f
(x)
=
x e os pontos x0 = 16, x1 = 25 e x2 = 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 x0 e x1 = x0 + h. Mostre que |E1 (x)| h2 /8.
Exerccio 5.4 Dada a tabela abaixo.
x
f (x)

-0.2
0.980

-0.1
0.995

0.1
0.996

0.15
0.988

0.35
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? Justifique.
Exerccio 5.5 Num experimento de laboratrio, uma reao qumica liberou calor de acordo
com as medies mostradas na tabela abaixo

CAPTULO 5. INTERPOLAO POLINOMIAL

72
hora
Co

8:00 hr
0

9:00 hr
130

9:30 hr
210

10:00 hr
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 modificaes necessrias no cdigo apresentado no final 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 definida
de uma funo f (x) num intervalo [a, b]. A integrao numrica aplicada quando a
primitiva da funo no conhecida ou quando s conhecemos a funo f (x) num
conjunto discreto de pontos.
As frmulas de Newton-Ctes so baseadas na estratgia de aproximar a funo
f (x) por um polinmio interpolador e aproximamos a integral pela integral do polinmio.
As aproximaes so do tipo
Z b
a

f (x)dx A0 f (x0 ) + A1 f (x1 ) + An f (xn ) =

n
X

Ai f (xi )

i=0

onde os pontos so igualmente espaados, isto xk = x0 + kh, com h = (b a)/n, e os


coeficientes Ai 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 x0 = a e x1 = b. O polinmio interpolador de grau um, na forma de Newton dado por
p1 (x) = f (x0 ) + f [x0 , x1 ](x x0 ).
Desta forma vamos aproximar a integral da funo f (x) pela integral do polinmio, obtendo
Z b
a

f (x)dx

Z x1
x0

p1 (x)dx
73

CAPTULO 6. INTEGRAO NUMRICA - FRMULAS DE NEWTON CTES

74

Z x1
x0

f (x0 ) + f [x0 , x1 ](x x0 )dx

x1 2 x0 2
= f (x0 )(x1 x0 ) + f [x0 , x1 ]

x0 (x1 x0 )
2
2
= f (x0 )(x1 x0 ) +
=
=

f (x1 ) f (x0 )
x1 x0

(x1 x0 )2
2

(x1 x0 )
(f (x0 ) + f (x1 ))
2
h
(f (x0 ) + f (x1 )),
2

onde h = x1 x0 . A frmula acima representa a rea do trapzio que tem f (x1 ) e f (x0 )
como os valores das bases e h como o valor da altura. Na figura 6.1 temos uma representao desta aproximao.

f(x)
f(x1)
p(x)

f(x0)

6.2

||

||

x0

x1

Clculo do Erro

No captulo de interpolao vimos que uma funo f (x) pode ser representada por
f (x) = pn (x) + En (x),

6.2.

CLCULO DO ERRO

75

onde pn (x) o polinmio interpolador e En (x) o erro na interpolao definido no Teorema


5.2. Calculando a integral da funo f (x) no intervalo [a, b], segue que
Z b
a

f (x)dx =

Z b
a

pn (x)dx +

Z b
a

En (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
ET =

Z b
a

E1 (x)dx =

Z b
a

(x x0 )(x x1 )

f 00 ()
h3
dx = f 00 (), [a, b]
2
12

Como o erro depende do ponto , que desconhecido, na prtica usamos a estimativa

h3
max |f 00 ()|
12 [a,b]

|ET |

Exemplo 6.1 Como exemplo, vamos considerar a funo f (x) = ex , 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
Z 1
1
2
2
2
ex dx (e0 + e2 ) = 0.6839397
2
0
Para calcular o erro cometido temos que limitar a segunda derivada da funo no intervalo
[0, 1]. Sendo
2
f 00 (x) = (4x2 2)ex
temos que nos extremos do intervalo vale
|f 00 (0)| = 2 e |f 00 (1)| = 0.735759.
Para calcular os pontos crticos da f 00 (x), devemos derivar f 00 (x) e igualar a zero, obtendo,
r
000

f (x) = (12x 8x )e

x2

= 0 x = 0 ou x =

3
2

Como o nico ponto crtico pertencente ao intervalo x = 0 segue que


max |f 00 ()| = 2

[a,b]

Com isto temos que


ET

h3
1
max |f 00 ()| = = 0.166667
12 [a,b]
6

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 valores 0.6839397 0.166667. Neste caso devemos usar um procedimento mais preciso, como
descrito na prxima seo.

CAPTULO 6. INTEGRAO NUMRICA - FRMULAS DE NEWTON CTES

76

6.3

Regra do Trapzio Repetida

A Regra do Trapzio aproxima bem funes suaves ( |f 0 (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

Figura 6.1: Regra do Trapzio Repetida


que

ba
e xk = x0 + kh com k = 0, 1, . . . , n
n
Aplicando a Regra do Trapzio em cada subintervalo [xk , xk+1 ] segue que
h=

Z b
a

f (x)dx
=

h
h
h
h
h
(f0 + f1 ) + (f1 + f2 ) + (f2 + f3 ) + + (fn2 + fn1 ) + (fn1 + fn )
2
2
2
2
2
h
[f0 + 2(f1 + f2 + + fn1 ) + fn ]
2

O erro cometido na aproximao igual a soma dos erros cometidos em cada subintervalo, logo temos que o erro da forma
|ET G | n

h3
max |f 00 ()|
12 [a,b]

6.4. REGRA DE SIMPSON 1/3

77
2

Exemplo 6.2 Considerando a funo do exemplo anterior, f (x) = ex em [0, 1], vamos
determinar o nmero de subintervalos necessrios para que a Regra do Trapzio Repetida
fornea uma aproximao com pelo menos 3 casas decimais exatas. Para isto devemos
ter que |ET G | 104 , logo
h3
n
max |f 00 ()| 104
12 [0,1]
Sendo h = (b a)/n e que o mximo da segunda derivada da funo em [0, 1] 2 (Ver ex.
anterior) segue que
n

h3
1 1
max |f 00 ()| 104 n 3
2 104
12 [0,1]
n 12
1
6 104

n2
n2 1666.666
n 40.824

Devemos tomar no mnimo n = 41 subintervalos para atingir a preciso desejada. Abaixo


apresentamos o uso da funo trapz.m do MatLab que fornece a aproximao da integral
pela Regra do Trapzio. Usando 41 subintervalos temos a aproximao It = 0.746787657
% Diciplina de Calculo Numerico - Prof. J. E. Castilho
% Exemplo do uso da funcao trapz(x,y)
% Calcula a integral usando a regra do trapezio
% para os pontos
% x=[xo,x1,...,xn]
% f=[fo,f1,...fn]
%
h=1/41;
x=0:h:1;
f=exp(-x.^2);
It=trapz(x,f)

6.4

Regra de Simpson 1/3

Neste caso, usamos o polinmio de grau 2 que interpola a funo f (x). Para isto necessitamos de trs pontos x0 , x1 e x2 . Como os pontos devem ser igualmente espaados
tomamos h = (b a)/2 Na figura 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,
p2 (x) = f (x0 ) + (x x0 )f [x0 , x1 ] + (x x0 )(x x1 )f [x0 , x1 , x2 ].
E com isto segue que a integral da funo f (x) aproximada por
Z b
a

f (x)dx
=

Z x2
x0

p2 (x)dx

h
(f (x0 ) + 4f (x1 ) + f (x2 )),
3

78

CAPTULO 6. INTEGRAO NUMRICA - FRMULAS DE NEWTON CTES

f(x )
0

f(x )
1

f(x2)

x1

||

||

x0

x2

De forma anloga a Regra do Trapzio, obtemos a frmula do erro, integrando o erro


cometido na interpolao. Desta forma obtemos
ES =

Z b
a

E2 (x)dx =

Z b
a

(x x0 )(x x1 )(x x2 )

h5
f 000 ()
dx = f (iv) (), [a, b]
3!
90

Na prtica usamos a estimativa para o erro


|ES |

h5
90

max |f (iv) ()|

[a,b]

Exemplo 6.3 Vamos considerar a funo do exemplo anterior: f (x) = ex no intervalo


[0, 1]. Para usar a Regra de Simpson temos que ter trs pontos. Desta forma tomamos
h=

10
1
ba
=
=
2
2
2

E com isto segue a aproximao dada por:


Z b
a

1
f (x)dx (f (0) + 4f (1/2) + f (1)) = 0.74718
6

A limitao do erro depende da limitao da quarta derivada da funo no intervalo


[0, 1], sendo:
2
f (iv) (x) = (12 48x2 + 16x4 )ex

6.5. REGRA DE SIMPSON REPETIDA

79

Calculando nos extremos do intervalo temos


|f (iv) (0)| = 12 e |f (iv) (1)| = 0.735759
Calculando os pontos crticos temos
2

f (v) (x) = (32x5 + 160x3 120x)ex = 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 |f (iv) ()| = 12

[a,b]

Obtemos desta forma que


ES =

h5
max |f (iv) ()| = 0.00416667
90 [a,b]

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 fizemos 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 [xs , xs+2 ], o que implica que n deve ser um
nmero par. Neste caso temos que
h=

ba
e xs = x0 + sh, para s = 0, 1, . . . , n
n

Aplicando a Regra de Simpson em cada subintervalo [xs , xs+2 ] segue que


Z b
a

f (x)dx
=

h
h
h
h
(f0 + 4f1 + f2 ) + (f2 + 4f3 + f4 ) + + (fn4 + 4fn3 + fn2 ) + (fn2 + 4fn1 + fn )
3
3
3
3
h
[f0 + 4(f1 + f3 + + fn1 )2(f2 + f4 + + fn2 ) + fn ]
3

O erro cometido nesta aproximao a soma dos erros em cada subintervalo [xs , xs+2 ] e
como temos n/2 subintervalos segue que:
|ESR | n

h5
max |f (iv) ()|.
180 [a,b]

80

CAPTULO 6. INTEGRAO NUMRICA - FRMULAS DE NEWTON CTES


2

Exemplo 6.4 Considerando a integral da funo f (x) = ex , no intervalo [0, 1], vamos
determinar o nmero de subintervalos necessrios para obtermos uma aproximao com
trs casas decimais exatas. Para isto limitamos o erro por |ESR | 104 . Sendo h = (ba)/n
e max[0,1] |f (iv) ()| = 12 segue que
n

h5
1 12
max |f (iv) ()| 104 n 5
104
180 [a,b]
n 180
1

15 104
n4
n4 666.66666
n 5.0813274

O menor valor de n que garante a preciso n = 6. Note que a Regra de Simpson necessita
de bem menos subintervalos que a Regra do Trapzio (n = 41).

6.6

Observaes Finais

As frmulas de Newton-Ctes so obtidas aproximando a funo por um polinmio interpolador. 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 usando seis subintervalos.
Z 4
Z 0.6

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

=
4

Z 1
0

dx
1 + x2

6.8. ATIVIDADES NO LABORATRIO

81

Exerccio 6.3 Mostre que se f 0 (x) contnua em [a, b] e que f 00 (x) > 0, x [a, b], ento a
aproximao obtida pela Regra do Trapzio maior que o valor exato da integral.
Exerccio 6.4 Dada a tabela abaixo, calcule a integral
svel.

x
f (x)

0.15
1.897

0.22
1.514

0.26
1.347

0.30
1.204

Z 0.30
0.15

f (x)dx com o menor erro pos-

Exerccio 6.5 Considere que f (x) aproximada pelo polinmio de grau 3 e determine a
regra de integrao, aproximando a integral da funo pela integral do polinmio. Ache a
frmula do erro.
Exerccio 6.6 Baseado na Regra de Simpson, determine uma regra de integrao para a
integral dupla
Z bZ d
a

f (x, y)dx dy

Aplique a regra para calcular uma aproximao para


Z 1Z 1
0

6.8

x2 + y 2 dx dy

Atividades no Laboratrio

Problema 6.1 Implemente a Regra de Simpson Repetida e aplique no problema do exerccio 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 fluidos, fluxo de calor, vibraes, so representados por equaes diferenciais. Em muitos casos, a teoria garante
a existncia e unicidade da soluo, porm nem sempre podemos obter a forma analtica
desta soluo.
Neste captulo vamos nos concentrar em analisar esquemas numricos para soluo
de Problemas de Valor Inicial (P.V.I.), para equaes diferenciais de primeira ordem. Isto
, achar a funo y(x) tal que
(
y 0 = f (x, y)
y(x0 ) = y0
Os esquemas numricos calculam a aproximao de y(x) nos pontos x1 , x2 , x3 , . . ., em que
xk = x0 + kh para um dado passo h > 0 (ver Figura 7.1). O valor da funo no ponto xk
aproximado por yk , que obtido em funo dos valores anteriores yk1 , yk2 , . . . , y0 . Desta
forma, os esquemas numricos determinam a aproximao da funo para valores de
x > x0 , o que justifica o nome de problema de valor inicial. Os mtodos so classificados
em duas classes:
Mtodos de Passo Simples: So aqueles em que o clculo de yk depende apenas de
yk1 .
Mtodos de Passo Mltiplo: So aqueles em que o clculo de yk depende m-valores
anteriores, yk1 , yk2 , . . . , ykm . Neste caso dizemos que o mtodo de m-passos.

7.1

Mtodo Euler

Dado o problema de valor inicial

y 0 = f (x, y)
y(x0 ) = y0
83

CAPTULO 7. EQUAES DIFERENCIAIS ORDINRIAS

84

y0

y1

y2

y3

y5
y

Figura 7.1: Aproximao de y(x)

Uma forma de aproximar a derivada de uma funo no ponto x1 dado por


y(x0 + h) y(x0 )
y(x0 + h) y(x0 )

h0
h
h

y 0 (x0 ) = lim

[eq7:03]

(7.1)

Como x1 = x0 + h e pelo P.V.I. segue que


y1 y0
= f (x0 , y0 ) y1 = y0 + hf (x0 , y0 )
h
Com isto relacionamos o ponto y1 com y0 , um valor dado no P.V.I. Assim obtemos uma
aproximao y(x1 ) y1 . De forma anloga podemos obter y2 em funo de y1 , sendo que
de uma forma geral teremos
yk+1 = yk + hf (xk , yk )
Este mtodo conhecido como Mtodo de Euler.
Exemplo 7.1 Consideremos o seguinte problema de valor inicial
(

y 0 = x 2y
y(0) = 1

Neste caso temos que x0 = 0 e y0 = 1. Vamos usar o Mtodo de Euler para obter uma
aproximao para y(0.5), usando h = 0.1. Desta forma temos
y1 = y0 + h(x0 2y0 ) = 1 + 0.1(0 2 1) = 0.8 y(x1 ) = y(0.1)

7.2. MTODOS DA SRIE DE TAYLOR

85

y2 = y1 + h(x1 2y1 ) = 0.8 + 0.1(0.1 2 0.8) = 0.65 y(x2 ) = y(0.2)


y3 = y2 + h(x2 2y2 ) = 0.65 + 0.1(0.2 2 0.65) = 0.54 y(x3 ) = y(0.3)
y4 = y3 + h(x3 2y3 ) = 0.54 + 0.1(0.3 2 0.54) = 0.462 y(x4 ) = y(0.4)
y5 = y4 + h(x4 2y4 ) = 0.462 + 0.1(0.4 2 0.462) = 0.4096 y(x5 ) = y(0.5)

A soluo analtica do P.V.I. dada por y(x) = (5e2x + 2x 1)/4. No grfico abaixo comparamos 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 0 = f (x, y)
y(x0 ) = y0

Aplicando a srie de Taylor para y(x) no ponto xk , temos


y(x) = y(xk ) +

y 0 (xk )
y 00 (xk )
y (n) (xk )
y (n+1) ()
(x xk ) +
(x xk )2 + +
(x xk )n +
(x xk )n+1
1!
2!
n!
(n + 1)!

CAPTULO 7. EQUAES DIFERENCIAIS ORDINRIAS

86

Calculando no ponto xk+1 e considerando que xk+1 xk = h temos que


y(xk+1 ) = y(xk ) +

y 0 (xk )
y 00 (xk ) 2
y (n) (xk ) n y (n+1) () n+1
h+
h + +
h +
h
1!
2!
n!
(n + 1)!

[eq7:22]

(7.2)

Como y 0 (xk ) = f (xk , yk ) podemos relacionar as derivadas de ordem superior com as


derivadas da funo f (x, y). Como exemplo consideremos
d
f (xk , yk )
dx
= fx + fy y 0

y 00 (xk ) =

= fx + fy f
000

y (xk ) = fy (fx + fy f ) + f 2 fyy + 2f fxy + fxx


Desta forma podemos obter uma aproximao para o clculo do P.V.I., substituindo as
relaes do tipo acima na srie de Taylor. Os mtodos podem ser classificados de acordo
com o termo de maior ordem que usamos na srie de Taylor, sendo
Definio 7.1 Dizemos que um mtodo para a soluo de P.V.I. de ordem n se este coincide com a srie de Taylor at o n-simo termo. O erro local cometido por esta aproximao
ser da forma
y (n+1) () n+1
h
[xk , xk+1 ]
Eloc (xk+1 ) =
(n + 1)!
Como exemplo temos que o Mtodo de Euler um mtodo de 1o ordem, pois este
coincide com a srie de Taylor at o primeiro termo, logo o erro local dado por
00

y () 2
Eloc (xk+1 ) =
h [xk , xk+1 ]
2!
Em geral, podemos determinar a ordem de um mtodo pela frmula do erro. Se o erro
depende da n-sima potncia de h dizemos que o mtodo de ordem n1. Quanto menor
for o valor de h menor ser o erro local.
Exemplo 7.2 Vamos utilizar o mtodo de 2o ordem para aproximar y(0.5), usando h = 0.1,
para o P.V.I.
(
y 0 = x 2y
y(0) = 1
Neste caso temos que f (x, y) = x 2y, logo segue que
y 00 = fx + fy f = 1 2(x 2y)
Substituindo em (7.2) temos que
y 00 (xk ) 2
y 0 (xk )
h+
h
1!
2!
h2
= y(xk ) + h(xk 2y(xk )) + (1 2xk + 4y(xk ))
2

y(xk+1 ) = y(xk ) +

7.3. MTODOS DE RUNGE-KUTTA

87

Portanto o mtodo dado por


yk+1 = yk + h(xk 2yk ) +

h2
(1 2xk + 4yk )
2

Sendo x0 = 0 e y0 = 1 obtemos que


y1

=
=

y2

=
=

y3

=
=

y4

=
=

y5

=
=

h2
(1 2x0 + 4y0 )
2
0.12
1 + 0.1(0 2 1) +
(1 2 0 + 4 1) = 0.825
2
h2
y1 + h(x1 2y1 ) + (1 2x1 + 4y1 )
2
0.12
0.825 + 0.1(0.1 2 0.825) +
(1 2 0.1 + 4 0.825) = 0.6905
2
h2
y2 + h(x2 2y2 ) + (1 2x2 + 4y2 )
2
0.12
0.6905 + 0.1(0.2 2 0.6905) +
(1 2 0.2 + 4 0.6905) = 0.58921
2
h2
y3 + h(x3 2y3 ) + (1 2x3 + 4y3 )
2
0.12
0.58921 + 0.1(0.3 2 0.58921) +
(1 2 0.3 + 4 0.58921) = 0.515152
2
h2
y4 + h(x4 2y4 ) + (1 2x4 + 4y4 )
2
0.12
(1 2 0.4 + 4 0.515152) = 0.463425
0.515152 + 0.1(0.4 2 0.515152) +
2
y0 + h(x0 2y0 ) +

O grfico na Figura 7.3 compara os resultados obtidos por este mtodo, com os resultados obtidos pelo mtodo de Euler.
Os resultados obtidos pelo mtodo de 2o
ordem so mais precisos. Quanto maior
a ordem do mtodo melhor ser a aproximao. A dificuldade em se tomar mtodos de
alta ordem o clculo da relao de y (n+1) (x) = [f (x, y)](n) .

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 1o ordem o Mtodo de Euler, que coincide com o
o
mtodo da Srie de Taylor de 1o
ordem. Vamos determinar um mtodo de 2 ordem,
conhecido como mtodo de Euler Melhorado ou mtodo de Heun. Como o prprio nome
diz, a idia modificar o mtodo de Euler de tal forma que podemos melhorar a preciso.
Na figura 7.4-a temos a aproximao yen+1 = yn +hf (xn , yn ) que obtida pela aproximao
do mtodo de Euler.
Montamos a reta L1 que tem coeficiente angular dado por y 0 (xn ) = f (xn , yn ).
L1 (x) = yn + (x xn )yn0 = yn + (x xn )f (xn , yn )
L1 (xn+1 ) = yn + (xn+1 xn )yn0 = yn + hf (xn , yn ) = yen+1

88

CAPTULO 7. EQUAES DIFERENCIAIS ORDINRIAS

Figura 7.3: Mtodo de Euler o - Mtodo de 2o


ordem *

Montamos a reta L2 com coeficiente angular dado por f (xn+1 , yen+1 ) = f (xn , yn + hy 0 ) e
passa pelo ponto P ( Ver figura 7.4-b ).
L2 (x) = yen+1 + (x xn+1 )f (xn+1 , yen+1 )
Montamos a reta L0 que passa por P e tem como coeficiente angular a mdia dos coeficientes angular de L1 e L2 (Ver figura 7.4-c). Finalmente a reta que passa pelo ponto
(xn , yn ) e paralela a reta L0 tem a forma
1
L(x) = yn + (x xn ) (f (xn , yn ) + f (xn+1 , yn + hyn0 ))
2
Calculando no ponto xn+1 temos
1
yn+1 = yn + h (f (xn , yn ) + f (xn+1 , yn + hyn0 ))
2
Podemos observar que o valor de yn+1 (Ver figura 7.4-d) est mais prximo do valor exato
que o valor de yen+1 . Este esquema numrico chamado de mtodo de Euler Melhorado,
onde uma estimativa do erro local dado por
|Eloc (xn )|

h3
6

max

[xn ,xn+1 ]

|y 000 ()|

Determinamos o mtodo de Euler Melhorado por uma construo geomtrica. Tambm podemos obter uma demonstrao analtica. Desenvolvemos a srie de Taylor da

7.3. MTODOS DE RUNGE-KUTTA

89
L1

P
ye

ye

n+1

n+1

yn

yn

xn

xn+1
L1

P
yen+1

xn

xn+1

P
yen+1

L2

L1
L2

yn+1

L0

L0

yn

yn

xn

xn+1

xn

xn+1

Figura 7.4: Mtodo de Euler Melhorado

funo f (x, y) e calculando no ponto (xn+1 , yn + hyn0 ). A expresso encontrada deve concordar com a Srie de Taylor at a segunda ordem. Em geral um mtodo de Runge-Kutta
de segunda ordem dado por
yn+1 = yn + a1 hf (xn , yn ) + a2 hf (xn + b1 h, yn + b2 hyn0 ),
onde

a1 + a2 = 1

a b = 1/2

2 1

a b = 1/2
2 2

[eq7:06]

(7.3)

CAPTULO 7. EQUAES DIFERENCIAIS ORDINRIAS

90

O mtodo de Euler Melhorado obtido com a1 = a2 = 1/2 e b1 = b2 = 1.


Mtodos de ordem superior so obtidos seguindo o mesmo procedimento. Abaixo
o
apresentamos um mtodo de 3o
e 4
R-K 3o
ordem:
2
1
4
yn+1 = yn + K1 + K2 + K3
9
3
9
K1 = hf (xn , yn )
K2 = hf (xn + h/2, yn + K1 /2)
K3 = hf (xn + 3h/4, yn + 3K2 /4)
R-K 4o
ordem:
1
yn+1 = yn + (K1 + 2K2 + 2K3 + K4 )
6
K1 = hf (xn , yn )
K2 = hf (xn + h/2, yn + K1 /2)
K3 = hf (xn + h/2, yn + K2 /2)
K4 = hf (xn + h, yn + K3 )

7.4

Mtodos de Adams-Bashforth

So mtodos de passo mltiplos baseados na integrao numrica. A estratgia integrar a equao diferencial no intervalo [xn , xn+1 ], isto
Z xn+1
xn

y 0 (x)dx =

Z xn+1
xn

f (x, y(x))dx

y(xn+1 ) = y(xn ) +

Z xn+1
|

xn

(7.4)

f (x, y(x))dx
{z

[eq7:01]

(7.5)

Integrao Numrica
A integral sobre a funo f (x, y) aproximada pela integral de um polinmio interpolador que pode utilizar pontos que no pertencem ao intervalo [xn , xn+1 ]. Dependendo
da escolha dos pontos onde vamos aproximar a funo f (x, y) os esquemas podem ser
classificados como:
Explcito: So obtidos quando utilizamos os pontos xn , xn1 , . . . , xnm para interpolar a funo f (x, y);
Implcito: So obtidos quando no conjunto de pontos, sobres os quais interpolamos a funo f (x, y), temos o ponto xn+1 .

7.4. MTODOS DE ADAMS-BASHFORTH

7.4.1

91

Mtodos Explcitos

Vamos considerar o caso em que a funo f (x, y) interpolada sobre os pontos (xn , fn )
e (xn1 , fn1 ), onde fn = f (xn , yn ). Considerando o polinmio interpolador na forma de
Newton temos
f (x, y) p(x) = fn1 + f [xn1 , xn ](x xn1 )
Integrando sobre o intervalo [xn , xn+1 ] temos
Z xn+1
xn

p(x)dx =
=
=
=
=
=

Z xn+1
xn

fn1 + f [xn1 , xn ](x xn1 )dx

xn+1 2
xn 2
fn1 (xn+1 xn ) + f [xn1 , xn ]
xn1 xn+1
+ xn1 xn
2
2

fn fn1 1
hfn1 +
xn+1 2 2(xn h)xn+1 xn 2 + 2(xn h)xn
h
2

fn fn1 1
hfn1 +
xn+1 2 2xn xn+1 + xn 2 + 2h(xn+1 xn )
h
2

fn fn1 1
hfn1 +
(xn+1 xn )2 + 2h2
h
2
h
(3fn fn1 )
2

Substituindo a aproximao da integral em (7.5) obtemos o seguinte mtodo


yn+1 = yn +

h
(3fn fn1 )
2

Este mtodo um mtodo explcito, de passo dois. Isto significa que yn+1 depende de
yn e yn1 . Logo necessitamos de dois valores para iniciar o mtodo: y0 que dado no
P.V.I.; y1 que deve ser obtido por um mtodo de passo simples. De uma forma geral, os
mtodos de k-passos necessitam de k-valores iniciais que so obtidos por mtodos de
passo simples, de ordem igual ou superior a ordem do mtodo utilizado.
Obtemos o mtodo, aproximando a funo pelo polinmio interpolador de grau um.
Assim o erro local, cometido por esta aproximao ser
Z xn+1
xn

E1 (x)dx =

Z xn+1
xn

= h3

(x xn1 )(x xn )

5 000
y ()
12

f 00 (, y())
dx
2!

[xn , xn+1 ]

Com isto temos a seguinte estimativa para o erro local


|Eloc (xn+1 )| h3

5
max |y 000 ()|
12 [xn ,xn+1 ]

Exemplo 7.3 Considere o seguinte P.V.I.


(

y 0 = 2xy
y(0.5) = 1

CAPTULO 7. EQUAES DIFERENCIAIS ORDINRIAS

92

Vamos achar uma aproximao para y(1.1) pelo Mtodo de Adams-Bashforth explcito , de
passo dois, usando h = 0.2.
Do P.V.I segue que y0 = 1 e x0 = 0.5. Este um mtodo de passo dois e vamos ter
que calcular y1 por um mtodo de passo simples que tenha ordem igual ou superior ao do
Mtodo de Adams-Bashforth. Como o erro local depende de h3 temos que este mtodo
de 2o ordem. Assim vamos utilizar o mtodo de Euler Melhorado, que um mtodo de 2o
ordem.
h
(f (x0 , y0 ) + f (x1 , y0 + hy00 ))
2
0.2
= 1+
(2 0.5 1 + (2) 0.7 (1 + 0.2 (2 0.5 1))) = 0.788 y(0.7)
2

y1 = y0 +

Tendo o valor de y0 e y1 podemos iniciar o Mtodo de Adams-Bashforth, sendo


h
(3f1 2f0 )
2
0.2
= 0.788 +
(3 (2) (0.7) 0.788 2 (2) 0.5 1) = 0.65704 y(0.9)
2
h
= y2 + (3f2 2f1 )
2
0.2
= 0.65704 +
(3 (2) (0.9) 0.65704 2 (2) 0.7 0.788) = 0.52287 y(1.1)
2

y2 = y1 +

y3

Se tivssemos aproximado a funo f (x, y) por um polinmio de grau 3, sobre os


pontos (xn , fn ), (xn1 , fn1 ), (xn2 , fn2 ), (xn3 , fn3 ) obteramos o mtodo de passo 4 e ordem 4 dado por
yn+1 = yn +

h
251 (v)
[55fn 59fn1 + 37fn2 9fn3 ] Eloc (xn+1 ) = h5
y () com [xn , xn+1 ]
24
720

Neste caso necessitamos de quatro valores iniciais, y0 , y1 , y2 e y3 , que deve ser calculados
por um mtodo de passo simples de ordem maior ou igual a quatro (Ex. Runge-Kutta de
4o ordem).

7.4.2

Mtodos Implcitos

Neste caso o ponto (xn+1 , fn+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 (xn , fn ) e
(xn+1 , fn+1 ). Considerando o polinmio interpolador na forma de Newton temos
f (x, y) p(x)fn + f [xn , xn+1 ](x xn )
Integrando sobre o intervalo [xn , xn+1 ] temos
Z xn+1
xn

p(x)dx =

Z xn+1
xn

fn + f [xn , xn+1 ](x xn )dx

xn 2
xn+1 2
xn xn+1
+ xn xn
= fn (xn+1 xn ) + f [xn , xn+1 ]
2
2

7.5. EQUAES DE ORDEM SUPERIOR


fn+1 fn
h
fn+1 fn
= hfn +
h
h
=
(fn + fn+1 )
2
= hfn +

93

1
xn+1 2 2xn xn+1 + xn 2
2
1
(xn+1 xn )2
2

Substituindo a aproximao da integral em (7.5) obtemos o seguinte mtodo


yn+1 = yn +

h
(fn + fn+1 )
2

O erro local, cometido por esta aproximao ser


Z xn+1
xn

E1 (x)dx =

Z xn+1
xn

= h3

(x xn+1 )(x xn )

f 00 (, y())
dx
2!

1 000
y () [xn , xn+1 ]
12

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

y 0 = 2xy y 2
y(0) = 1

Usando h = 0.1 vamos achar uma aproximao para y(0.2), usando o esquema
P

: yn+1 = yn + hf (xn , yn )
h
C : yn+1 = yn + (fn + fn+1 )
2
Sendo x0 = 0 e y0 = 1 temos
P

7.5

y1 = y0 + hf (x0 , y0 ) = 1 + 0.1(2 0 1 12 ) = 0.9

h
0.1
y1 = y0 + (f0 + f1 ) = 1 +
2 0 1 12 2 0.1 0.9 0.92 = 0.9005 y(0.1)
2
2
y2 = y1 + hf (x1 , y1 ) = 0.9005 + 0.1(2 0.1 0.9005 (0.9005)2 ) = 0.8013

0.1
h
y2 = y1 + (f1 + f2 ) = 0.9005 +
2 0.1 0.9005 (0.9005)2 2 0.2 0.8013 0.80132
2
2
= 0.8018 y(0.2)

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

CAPTULO 7. EQUAES DIFERENCIAIS ORDINRIAS

94

de primeira ordem e assim poderemos aplicar qualquer um dos mtodos analisados nas
sees anteriores. Como exemplo vamos considerar o problema de terceira ordem dado
por

000
2
2
0
00

y = x + y y 2y x

y(0) = 1

y 0 (0) = 2

00
y (0) = 3
Para transformar num sistema de primeira ordem devemos usar variveis auxiliares.
Fazemos y 0 = w y 00 = w0 e fazemos y 00 = w0 = z y 000 = w00 = z 0 . Com isto a equao
acima pode ser representada por:
0
y =w

w0 = z

z 0 = x2 + y 2 w 2zx

y(0) = 1

w(0) = 2

z(0) = 3

O sistema acima pode ser escrito na forma matricial, onde

0 1
0
y
0
y0

0
1 w + 0
w = 0 0
2
0
y 1 2x
z
x
z
|

{z

Y0

{z

} | {z }

{z

Desta forma temos a equao vetorial


(

Y 0 = AY + X
Y (0) = Y0

onde Y0 = (1, 2, 3)T . Aplicando o mtodo de Euler na equao acima obtemos


Yn+1 = Yn + h(An Yn + Xn )
ou seja

yn+1
yn
0
1
0
yn
0

0
1 wn + 0
wn+1 = wn + h 0
zn+1
zn
yn 1 2xn
zn
xn 2
Tomando h = 0.1, vamos calcular uma aproximao para y(0.2). O clculo de Y1 Y (0.1)
segue que

0
y0
0
1
0
y0
y1

0
1 w0 + 0
w1 = w0 + h 0
x0 2
z0
y0 1 2x0
z0
z1

1.2
0
1
0 1
0
1
y1

1
2 + 0 = 2.3
w1 = 2 + 0.1 0 0
2
2.9
0
3
1 1 2 0
3
z1

7.6. EXERCCIOS

95

Calculando Y2 Y (0.2) temos

y2
y1
0
1
0
y1
0

0
1 w1 + 0
w2 = w1 + h 0
z2
z1
y1 1 2x1
z1
x1 2

y2
1.2
0
1
0
1.2
0
1.430

2.3
0
0
1
2.3
0
2.590
w
=
+
0.1
+
=
2

2.9
1.2 1 2 0.1
2.9
0.12
2.757
z2
Note que neste caso no estamos achando apenas o valor aproximado de y(0.2), mas
tambm de y 0 (0.2) e y 00 (0.2), sendo

y(0.2)
1.430
0

y
(0.2)
2.590

y 00 (0.2)
2.757

7.6

Exerccios

Exerccio 7.1 Dado o P.V.I.

y0 = 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? Justifique.
Exerccio 7.2 O esquema numrico abaixo representa um mtodo para soluo de E.D.O.
yn+1 = yn +

h
[9fn+1 + 19fn 5fn1 + fn2 ]
24

com Eloc (xn+1 ) = h5

251 (5)
y ()
720

Classifique o mtodo de acordo com o nmero de passos, se este implcito ou explcito, a


ordem do mtodo, procurando sempre dar justificativas as suas respostas.
Exerccio 7.3 Determine o mtodo de Runge-Kutta, de 2o ordem, obtido com a1 = 0, a2 = 1
e b1 = b2 = 1/2 (ver (7.3)). Aplique o mtodo para o P.V.I.
0
y

= 2 y

,
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.

y0 = y
y(0) = 1

CAPTULO 7. EQUAES DIFERENCIAIS ORDINRIAS

96

a) Mostre que quando aplicamos o mtodo de Euler Melhorado ao problema temos

yn+1 =

h2
1+h+
2

!n+1

b) Comparando com a soluo exata do problema, voc esperaria que o erro tivesse
sempre o mesmo sinal? Justifique.
Exerccio 7.5 Considere o P.V.I. abaixo.
(

y 0 = 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
: yn+1 = yn + hf (xn + h/2, yn + h/2y 0 )
h
C ; yn+1 = yn + (fn+1 + fn )
2
P

b) Sabendo que a soluo exata dada por y(x) = (5e2x + 2x 1)/4, plote (novo verbo?)
um grfico com os valores obtidos pelo esquema Preditor e pelo esquema Corretor.
Compare os resultados.
Exerccio 7.6 Determine uma aproximao para y(1) utilizando o mtodo de Euler com
h = 0.1, para o P.V.I. abaixo.
(
y 00 3y 0 + 2y = 0
y(0) = 1y 0 (0) = 0
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, (xn , fn ), (xn1 , fn1 ), (xn2 , fn2 )

7.7

Atividades no Laboratrio

Referncias Bibliogrficas

[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

Potrebbero piacerti anche