Você está na página 1de 99

U NIVERSIDADE F EDERAL DE U BERLNDIA

F ACULDADE DE M ATEMTICA

C LCULO N UMRICO

P ROF. J OS E DUARDO C ASTILHO

A GOSTO DE 2003
Sumrio

1 Introduo 1

2 Zeros de Funes 11

3 Sistemas Lineares 27

4 Ajuste de Curvas: Mtodo dos Mnimos Quadrados 49

5 Interpolao Polinomial 61

6 Integrao Numrica - Frmulas de Newton Ctes 73

7 Equaes Diferenciais Ordinrias 83

i
CAPTULO
1
Introduo

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

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

1
2 CAPTULO 1. INTRODUO

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 esta-
mos trabalhando. Numa calculadora simples que represente os nmeros com 7 dgito
teramos
1/3 + 1/3 + 1/3 = 0.9999999
Enquanto que calculadoras mais avanadas teramos como resposta um falso 1, pois
na realidade, internamente estas calculadoras trabalham com mais dgito do que ap-
resentado no visor e antes do resultado ser apresentado este arredondado.
Os esquemas numricos so classificados como esquemas diretos e esquemas iter-
ativos. 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 es-
quemas iterativos so aqueles que repetem um nmero de passos at que um critrio de
parada seja satisfeito. Como exemplo considere o algoritmo que usado para determinar
o epsilon da mquina

Algoritmo: Epsilon da Mquina

Ep 1

Enquanto (1 + Ep) > 1, faa:


Ep Ep/2

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 lingua-
gens podem apresentar diferentes resultados. E mesmo quando usamos uma mesma
linguagem, mas compiladores diferentes (Ex. C++ da Borland e C++ da Microsoft), os
resultados podem apresentar diferenas.
Para 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 3

1.1 O Octave
O Octave-Gnu -Gnu originalmente foi concebido para ser um software companheiro,
como um livro texto de graduao no projeto de um reator qumico que estava sendo
escrito por James B. Rawlings, da Universidade Wisconsin-Wisconsin-Madison, e John
G. Ekerdt da Universidade do Texas. Claramente, o octave agora muito mais do que
apenas um pacote destinado a sala de aula. Ele tanto um ambiente quanto uma
linguagem de programao, e um de seus aspectos mais poderosos que os problemas
e as solues so expressos numa linguagem matemtica bem familiar. Devido a sua
capacidade de fazer clculos, visualizao grfica e programao, num ambiente de fcil
uso, o Octave-Gnu torna-se uma ferramenta eficiente para a compreenso tanto de
tpicos fundamentais quanto avanados a uma gama de disciplinas. Nosso objetivo dar
uma rpida viso dos comandos e funes bsicas do Octave-Gnu para exemplificar os
tpicos do curso de Clculo Numrico. Maiores detalhes podem ser obtidos na apostila
Introduo ao Octave, disponvel em http://www.castilho.prof.ufu.br.
Apesar das ultimas verses do Octave-Gnu ter expandido sua capacidade, o ele-
mento bsico dos dados ainda um vetor, o qual no requer declarao de dimenso ou
tipo de varivel. O Octave-Gnu um sistema interativo, onde os comandos podem ser
executados na janela de comandos ou por programas. Estes programas so conhecidos
como m-arquivos ( ou arquivos com extenso .m) e sero discutidos posteriormente. Em
primeiro lugar vamos discutir alguns comandos bsicos que sero til para a manipu-
lao de dados na janela de comandos e nos m-arquivos.

1.1.1 Clculo na Janela de Comandos


Um clculo simples pode ser executado na janela de comandos digitando as instrues
no prompt como voc faria numa calculadora. Por exemplo
>> 3*4 +5

ans =

17
o resultado mostrado na tela como ans ( abreviatura de answer). Os smbolos dos op-
eradores aritmticos so dados na Tabela 1.1. As expresses so calculadas da esquerda
para a direita, com a potenciao tendo a maior precedncia, seguido da multiplicao e
diviso (mesma precedncia) e pela adio e subtrao (tambm com mesma precedn-
cia).

As Variveis
A forma de armazenar o resultado para uso posterior pelo uso de variveis.
>> s=3+4+7+12

s =
26
4 CAPTULO 1. INTRODUO

Tabela 1.1: Operadores Aritmticos

Operao Smbolo
Adio a+b
Multiplicao ab
Subtrao ab
Diviso a/b ou b\a
Potenciao 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 Octave-
Gnu diferencia as variveis que usam letras minsculas e maisculas. Isto as variveis
Contas, contas, conTas e CoNtAs, so consideradas como quatro variveis diferentes.
Todas as variveis so armazenadas internamente e podem ser usadas a qualquer mo-
mento. Para saber quais as variveis que esto ativas utilizamos o comando who. Para
eliminar a varivel conta, usamos o comando clear conta. As variveis so tratadas
como matrizes, apesar dos escalares no serem apresentados na notao matricial. Um
vetor linha pode ser definido como

>> x=[1 2 3 4]

x =
1 2 3 4

Tambm podemos separar os elementos por vrgula. J um vetor coluna pode ser
definido da seguinte forma

>> y=[5; 6; 7; 8]

y =
5
6
7
8

Um exemplo de uma matriz 3 4.

>> a=[1 2 3 4; 5 6 7 8; 9 10 11 12]

a =
1 2 3 4
5 6 7 8
9 10 11 12
1.1. O OCTAVE 5

Os elementos na i-sima linha e na j-sima coluna, denotados por 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 0 0.5000 1.0000

Columns 8 through 11

1.5000 2.0000 2.5000 3.0000

De uma forma geral este comando tem a sintaxe v=a:passo:b. Quando o passo
igual a um podemos escrever o comando na forma reduzida v=a:b. Algumas matrizes
elementares podem ser geradas atravs de comandos simples, por exemplo:
A matriz identidade:

EDU>>I=eye(3)

I =
1 0 0
0 1 0
0 0 1

Matriz n m formada por 1s:

>> A=ones(2,3)

A =
1 1 1
1 1 1

Matriz Nula de ordem n m:

>> B=zeros(3,4)

B =
0 0 0 0
0 0 0 0
0 0 0 0
6 CAPTULO 1. INTRODUO

Operaes com Matrizes e Vetores

As operaes de subtrao,adio e multiplicao entre matrizes so 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 Smbolo Resultado


Adio a+b [a1 + b1 , a2 + b2 , a3 + b3 , . . . , an + bn ]
Subtrao a-b [a1 b1 , a2 b2 , a3 b3 , . . . , an bn ]
Multiplicao a.*b [a1 b1 , a2 b2 , a3 b3 , . . . , an bn ]
Diviso a./b [a1 /b1 , a2 /b2 , a3 /b3 , . . . , an /bn ]
Potenciao a.bb [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 di-
menso x e f , onde x corresponde aos valores do eixo x e f os valores da funo nestes
1.1. O OCTAVE 7

Tabela 1.3: Funes Elementares

Funo Sintaxe
Valor Absoluto abs(x)
Arco Co-seno acos(x)
Arco Seno asin(x)
Co-seno cos(x)
Exponencial ex exp(x)
Logaritmo Natural log(x)
Logaritmo base 10 log10(x)
Seno sin(x)
Raiz Quadrada sqrt(x)
Tangente 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 quanti-
dade 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 CAPTULO 1. INTRODUO

x=input(Entre com o valor de, x=); % Atribui Valores a x


disp(O valor da aproximacao eh...) % Mostra mensagem no monitor
dsen=(sin(x+h)-sin(x))/h

As primeiras duas linha so comentrios que descrevem o script. Na quinta linha temos
o comando que permite atribuir valores a uma varivel. E na sexta linha o comando que
permite mostrar uma mensagem no monitor. Vamos supor que este arquivo seja salvo
com o nome de devira_seno.m. Para executar o script digitamos seu nome no prompt
do Octave-Gnu sem a extenso .m.

Functions

Numa funo 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 difer-
ena importante entre esta verso, usando function, com a anterior que o valor cal-
culado pode ser atribudo a uma varivel. Alm disso, agora podemos escolher o valor
de h, que na verso anterior estava fixo em h=0.0001. Vale notar que no primeiro caso
todas as variveis do scrips esto ativas, isto so variveis globais. Enquanto que no
segundo caso as variveis so locais, isto , a varivel h s ativa na execuo da funo

Controle de Fluxo

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 9

EDU>> for n=1:5


x(n) = cos(n*pi/2);
end
EDU>> x

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

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

x x2 x3 x4
ex = 1 + + + + +
1! 2! 3! 4!
Faa um programa em Octave-Gnu que calcule a Srie de Taylor at o termo n. Teste o
programa para valores de x prximos de zero e distantes de zero. Analise os resultados
obtidos.
CAPTULO
2
Zeros de Funes

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

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

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 obser-
var que pelo comportamento das funes g(x) e h(x) estas funes no vo se interceptar
em nenhum outro ponto. Logo f (x) admite uma nica raiz.
Na prtica usamos algum software matemtico para esboar os grficos. Quanto
menor for a amplitude do intervalo que contm a raiz, mais eficiente ser a Fase de

11
12 CAPTULO 2. ZEROS DE FUNES

1.8

1.6

1.4 h(x)
1.2

0.8

0.6

0.4 g(x)
0.2


0
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8

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 0 0.25 0.5 0.75 1
f (x) 1 0.528 0.106 -0.277 -0.632
Sendo que f (0.5)f (0.75) < 0, ento a raz pertence ao intervalo [0.5, 0.75]. Note que
f 0 (x)
= ex 1 < 0 x R I , isto f 0 preserva o sinal em [a, b] e com isto podemos concluir
que esta raiz nica. [exc1]
Devemos observar que o tabelamento uma estratgia que completa a anlise gr-
fica. Somente com o tabelamento no conseguimos determinar se existe outras razes
no intervalo ou ainda em que intervalo devemos tabelar a funo.
2.1. ISOLAMENTO DAS RAZES 13

4 3

3
2

1
1

a 1 2 3
a
0 | 0 | | |
b b

1
1

2
3

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

f 0 (x) preserva sinal f 0 (x) muda de sinal


4 2.5

1.5
1

a 1 2
0 | |
b 1

0.5
2

a b
3 0 |
0 0.5 1 1.5 2 2.5 3 0 0.5 1 1.5 2 2.5 3

f 0 (x) muda de sinal f (a)f (b) > 0

Figura 2.2: Exemplos do comportamento de f (x)


14 CAPTULO 2. ZEROS DE FUNES

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

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
(a0 , x0 )
a0 + b0
x0 = f (b0 ) > 0 a = a0
2
f (x ) > 0 1

0 b1 = x0

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


f (a1 ) < 0
(x1 , b1 )
a1 + b1
x1 = f (b ) > 0
1 a =x
2 1
2
f (x ) < 0
b =b
1 2 1


f (a2 ) < 0
(x2 , b2 )
a2 + b2
x2 = f (b ) > 0
2 a =x
3 2
2
f (x ) < 0
b =b
2 3 2

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 .
16 CAPTULO 2. ZEROS DE FUNES

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


k

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

b0 b1 > a0 m IR tal que lim bk = m


k

{xk }: Por construo temos que


ak + bk
xk = ak < xk < bk k IN [ec1] (2.1)
2
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
lim (bk ak ) = lim =0
k k 2k
Isto segue que
lim bk lim ak = 0 M m = 0 M = m.
k k
Usando este fato e calculando o limite em (2.1) temos

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


k k k 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 lim ak f lim bk = f 2 (m) 0
k k k k k

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,
b0 a0 b0 a0
bk ak < < 2k >
2k
Como estes valores so sempre positivos, podemos aplicar a funo logaritmo, obtendo,
log(b0 a0 ) log()
k>
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

log(0.75 0.5) log(108 )


k> = 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 |


18 CAPTULO 2. ZEROS DE FUNES

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


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

Logo
lim xn+1 =
n

Observamos que quanto menor for o valor de |0 (x)| mais rpida ser a convergncia.

Exemplo 2.4 Consideremos a funo f (x) = ex x, onde existe uma raiz [0.5, 0, 75].
Uma forma de escrever f (x) = x (x) considerar (x) = ex . Verificando as condies
de convergncia temos:
1) As funes (x) = ex e 0 (x) = ex so contnuas em [0.5, 0.75].
2) A funo 0 satisfaz
max |0 (x)| = 0.6065... < 1 (Por que? Ver Nota 1)
x[0.5,0.75]

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


tomar x0 como o ponto mdio do intervalo
0.5 + 0.75
x0 = = 0.625
2
Assim temos que
x1 = (x0 ) = (0.625) = 0.53526...
x2 = (x1 ) = (0.53526) = 0.58551...
x3 = (x2 ) = (0.58551) = 0.55681...
x4 = (x3 ) = (0.55681) = 0.57302...
x5 = (x4 ) = (0.57302) = 0.56381...
x6 = (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 |
(Erro Relativo)
|xn+1 |
2.5. MTODO DE NEWTON-RAPHSON (M.N.R) 19

0.8

0.75
x

0.7

0.65

0.6

0.55

0.5

0.45 ex

x1 x2 x0
0.4
0.4 0.45 0.5 0.55 0.6 0.65 0.7 0.75 0.8

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
a, b] que contm a raiz e que |0 (x)| 1 e conseqentemente a convergncia
um intervalo [
ser mais rpida.
20 CAPTULO 2. ZEROS DE FUNES

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


e que A(x) 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

1
A() = .
f 0 ()

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

f (x)
(x) = x
f 0 (x)

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

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

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 (xn ) f (xn )
f 0 (xn ) = tan() = xn+1 = xn 0
xn xn+1 f (xn )

Teorema 2.4 Sejam f , f 0 e f 00 , funes contnuas num intervalo [a, b], onde existe uma raiz
a, b] [a, b], contendo a raiz
. Supor que f 0 (x) 6= 0 para x [a, b]. Ento existe um intervalo [
, tal que se x0 [
a, b], a seqncia {xn } gerada pelo processo iterativo

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

converge para a raiz. [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

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

Assim temos que

ex0 x0
x1 = x0 + = 0.56654 |x1 x0 | = 0.0584 >
ex0 + 1
ex1 x1
x2 = x1 + x1 = 0.56714 |x2 x1 | = 0.0006 <
e +1
Logo a aproximao dada por x2 = 0.56714. Note que este mtodo encontrou a soluo em
duas iteraes, enquanto que no M.I.L. foi necessrio 6 iteraes para obter a aproximao
com a mesma preciso.
22 CAPTULO 2. ZEROS DE FUNES

x1=x3 x0=x2 x0

No Converge 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 |
lim = C,
k |ek |p

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 se-
qncia {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 = lim |0 (ck )| = |0 ()| = C
k |ek | k

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 pro-
cesso iterativo
f (xn )
xn+1 = xn 0
f (xn )
Subtraindo de cada lado temos

f (xn ) f (xn )
xn+1 = xn 0
en+1 = en 0 [ec13] (2.2)
f (xn ) f (xn )

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

f 00 (cn )
f (x) = f (xn ) + f 0 (xn )(x xn ) + (x xn )2 cn [x, xn ]
2
Que calculada em x = fornece

f 00 (cn )
0 = f () = f (xn ) + f 0 (xn )( xn ) + ( xn )2
2
24 CAPTULO 2. ZEROS DE FUNES

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


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

|en+1 | f 00 (cn ) f 00 ()
lim = lim = = 1 |00 ()| = C
k |en |2 0
k 2f (xn) 2f () 2
0

Portanto temos que o Mtodo de Newton-Raphson tm ordem de convergncia p = 2.

2.7 Observaes Finais


Neste captulo vimos trs mtodos diferentes para resolver equaes da forma f (x) = 0.
Faremos um breve comentrio das vantagens e desvantagens de cada mtodo.
No Mtodo da bisseco vimos que o nmero de iteraes depende apenas do in-
tervalo inicial [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 val-
ores de xk tal que f 0 (xk ) = 0 e xk [a, b]
3: Tomamos como o valor mximo o max{|f (a)|, |f (b)|, |f (xk )|}
[not1]
2.8. EXERCCIOS 25

2.8 Exerccios
Exerccio 2.1 Localize graficamente e d intervalos de amplitude 0.5 que contenha as
razes das equaes
a) ln(x) + 2x = 0 b) ex sen(x) = 0 c) ln(x) 2x = 2
x 2
d) 2 cos(x) e2 = 0 e) 3 ln(x) x2 = 0 f) (5 x)ex = 1

Exerccio 2.2 Utilize o Mtodo da Bisseco e aproxime a menor raiz em mdulo com erro
menor que 101 para as equaes a) e b) do exerccio 2.1.

Exerccio 2.3 Utilize o Mtodo Iterativo Linear e aproxime a menor raiz em mdulo com
erro relativo menor que 102 para as equaes c) e d) do exerccio 2.1.

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



1 a
xn+1 = (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 convergn-
cia

Exerccio 2.7 Prove o Teorema 2.4. [ex1]


26 CAPTULO 2. ZEROS DE FUNES

Exerccio 2.8 A funo f (x) = sen(cos( 3x)) tem uma raiz no intervalo [0.7, 0.9]. Encontre
uma aproximao com = 0.07, escolhendo entre os mtodos numricos estudados o mais
adequado. Justifique sua resposta.

Exerccio 2.9 Analise algbrica e geometricamente e encontre justificativas para o com-


portamento 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 (xk ) f (xk1 )
f 0 (xk ) .
xk xk1

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

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 + a1,2 x2 + a1,3 x3 a1,n xn = b1



a2,1 x1
+ a2,2 x2 + a2,3 x3 a2,n xn = b2
a3,1 x1 + a3,2 x2 + a3,3 x3 a3,n xn = b3

.. .. .. .. ..

. . . . .



an,1 x1 + an,2 x2 + an,3 x3 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 . Anal-
isaremos duas classes de esquemas numricos: Mtodos Iterativos e Mtodos Diretos.

3.1 Mtodos Iterativos


Vamos considerar um sistema linear Ax = b, onde A IRnn e x, b IRn . Os mto-
dos iterativos seguem um esquema semelhante aos mtodos para o clculo de zeros de
funes. O sistema linear escrito na forma

x = Cx + g,

onde g IRn e C IRnn chamada de matriz de iterao. Assim montamos o processo


iterativo:
Dado x0
xk+1 = Cxk + g.

27
28 CAPTULO 3. SISTEMAS LINEARES

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


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

Xm
||A|| = max |aij | Norma do Mximo das Linha
1in
j=1
1/2
Xn X
m
||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
n
X
||x||1 = |xi | Norma da Soma
i=1

||x|| = max |xi | Norma do Mximo


1in

n !1/2
X
2
||x||2 = |xi | Norma Euclidiana
i=1

O conceito de norma nos permite definir convergncia de uma seqncia de vetores {xk }.
Dizemos que xk x se
lim ||xk x
|| = 0
k
Com isto podemos definir os critrios de parada: Dado um > 0
||xk+1 xk || Erro Absoluto

||xk+1 xk ||
Erro Relativo
||xk ||

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


k k

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 + a1,2 x2 + a1,3 x3 a1,n xn = b1



2,1 x1
a + a2,2 x2 + a2,3 x3 a2,n xn = b2
a3,1 x1 + a3,2 x2 + a3,3 x3 a3,n xn = b3 ,

.. .. .. .. ..

. . . . .



an,1 x1 + an,2 x2 + an,3 x3 an,n xn = bn
30 CAPTULO 3. SISTEMAS LINEARES

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


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

1
x2 = (b2 a2,1 x1 a2,3 x3 a2,n xn )
a2,2

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

Na forma matricial estas equaes so equivalentes



a1,2 a1,3 a1,n x b1
x1 0 a1,1
1
a1,1 a1,1 a1,1


x2
a2,n x
b2
a2,1 a2,3 2
0
a2,2 a2,2 a2,2 a2,2
x3 x3

.. = + (3.1)
a a3,2 a3,n ... b3
. 3,1 0
a3,3
.. a3,3 a3,3 .. a3,3

. .. .. .. .. .. . ..
. . . . .
.. .. .
. an,1 an,2 an,3 .
0 bn
xn an,n an,n an,n xn
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) 1 (k) (k)

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

(k+1) 1 (k) (k)



x2 = b2 a2,1 x1 a2,3 x3 a2,n x(k)
n
a2,2
[eq:sis1] (3.2)
(k+1) 1 (k) (k)

x3 = b3 a3,1 x1
a3,2 x2
a3,n x(k)
n
a3,3
.. .. ..
. . .
(k+1) 1 (k) (k) (k)

xn = 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


3.1. MTODOS ITERATIVOS 31

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


Para s = 1, 2, . . . , n,
faa:
Xn
1 (k)
x(k+1)
s 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:
Xn
1
k = |ak,j | < 1 para k = 1, 2, . . . , n
|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 + 3x2 + 2x3 = 2
x1 + 3x2 x3 = 3

x1 + x2 3x3 = 1

vamos procurar uma aproximao da soluo, com preciso = 0.1 na Norma do Mx-
imo, usando o Mtodo de Gauss-Jacobi. Vamos tomar como condio inicial o vetor x0 =
(0.5, 0.5, 0.5)T .
O primeiro passo verificar se o critrio de convergncia satisfeito. Calculando os
k temos
1 5
1 = (|a1,2 | + |a1,3 |) = <1
|a1,1 | 7
1 2
2 = (|a2,1 | + |a2,3 |) = <1
|a2,2 | 3
1 2
3 = (|a3,1 | + |a3,2 |) = <1
|a3,3 | 3
32 CAPTULO 3. SISTEMAS LINEARES

Logo o critrio das linhas satisfeito e com isto temos garantia que o Mtodo de Gauss-
Jacobi converge. Montando o processo iterativo temos

(k+1) 1 (k) (k)



x1 = 2 3x2 2x3
7

(k+1) 1 (k) (k)



x2 = 3 x1 + x3 (3.3)
3

(k+1) 1 (k) (k)



x3 = 1 x1 x2
3
Assim para k = 0 segue que

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

(1) 1
x2 = (3 0.5 + 0.5) = 1.000 (3.4)
3

(1) 1
x3 = (1 0.5 0.5) = 0.666
3
Verificando o critrio de parada temos

0.642 0.500 0.142

x1 x0 = 1.000 0.500 = 0.500 ||x1 x0 || = 0.500 >
0.666 0.500 0.166

Para k = 1 temos
(2) 1
x1 = (2 3 1.000 2 0.666) = 0.904
7

(2) 1
x2 = (3 0.642 + 0.666) = 1.008 (3.5)
3

(2) 1
x3 = (1 0.642 1) = 0.880
3
Verificando o critrio de parada temos

0.904 0.642 0.262

x x = 1.008 1.000 = 0.008 ||x2 x1 || = 0.262 >
2 1

0.880 0.666 0.214

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



s1
X Xn
1 (k) (k)
x(k+1)
s = bs as,j xj as,j xj [eq:gj1] (3.6)
as,s j=1 j=s+1

Neste ponto os elementos xk+1 k+1 k+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 sub-
stituir os elementos da iterao k, que aparecem no primeiro somatrio de (3.6), pelos
correspondentes elementos da iterao k + 1, isto

s1
X n
X
1 (k+1) (k)
x(k+1)
s = 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


s ser mais
preciso. Este procedimento conhecido como Mtodo Iterativo de Gauss-Seidel, cujo o
algoritmo dado abaixo.

Algoritmo: Mtodo Iterativo de Gauss-Seidel

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

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


Para s = 1, 2, . . . , n,
faa:
s1
X Xn
1 (k+1) (k)
x(k+1)
s 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:

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

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

Exemplo 3.2 Dado o sistema linear




7x1 + 3x2 + 2x3 = 2
x1 + 2x2 x3 = 2

x1 + x2 2x3 = 0

vamos procurar uma aproximao da soluo, com preciso = 0.1 na norma do mx-
imo, usando o Mtodo de Gauss-Seidel. Vamos tomar como condio inicial o vetor x0 =
(0.5, 0.5, 0.5)T .
O primeiro passo verificar se o critrio de convergncia satisfeito. Calculando os
k temos
1 5
1 = (|a1,2 | + |a1,3 |) = < 1
|a1,1 | 7
1 6
2 = (|a2,1 |1 + |a2,3 |) = < 1
|a2,2 | 7
1 11
3 = (|a3,1 |1 + |a3,2 |2 ) = <1
|a3,3 | 14

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

x1 = 2 3x2 2x3
7

(k+1) 1 (k+1) (k)



x2 = 2 x1 + x3 (3.7)
2

(k+1) 1 (k+1) (k+1)



x3 = 0 x1 x2
2
Assim para k = 0 segue que
(1) 1
x1 = (2 3 0.5 2 0.5) = 0.642
7

(1) 1
x2 = (2 0.642 + 0.5) = 0.929 (3.8)
2

(1) 1
x3 = (0 0.642 0.929) = 0.785
2
Verificando o critrio de parada temos

0.642 0.500 0.142

x1 x0 = 0.929 0.500 = 0.429 ||x1 x0 || = 0.429 >
0.785 0.500 0.285
3.2. MTODOS DIRETOS 35

Para k = 1 temos
(2) 1
x1 = (2 3 0.929 2 0.785) = 0.908
7

(2) 1
x2 = (2 0.908 + 0.785) = 0.938 (3.9)
2

(2) 1
x3 = (0 0.908 0.938) = 0.923
2
Verificando o critrio de parada temos

0.908 0.642 0.266

x2 x1 = 0.938 0.929 = 0.009 ||x2 x1 || = 0.266 >
0.923 0.785 0.138

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 a1,n xn = b1



a2,2 x2 + a2,3 x3 a2,n xn = b2

a3,3 x3 a3,n xn = b3

.. ..

. .



an,n xn = bn

Este sistema admite uma nica soluo se aii =


6 0 para i = 1, 2, . . . , n, sendo,

bn
xn =
an,n
1
xn1 = (bn1 an1,n xn )
an1,n1
1
xn2 = (bn2 an2,n1 xn1 an2,n xn )
an2,n2
36 CAPTULO 3. SISTEMAS LINEARES

.. ..
. .
n
X
1
xk = bk ak,j xj
ak,k j=k+1
.. ..
. .

e assim sucessivamente. Com isto obtemos o esquema numrico para soluo de sis-
tema triangular superior dado pelo algoritmo abaixo

Algoritmo: Retro-Soluo

Input: Matriz triangular superior A IRnn e b IRn

xn bn /an,n

Para k = n 1,n 2, . . . 1, faa:


n
X
1
xk 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-


mos um novo sistema Ax =b de tal forma que estes sero equivalentes. Para descrever
o Mtodo de Eliminao de Gauss vamos considerar o sistema linear


a1,1 x1 + a1,2 x2 + a1,3 x3 a1,n xn = b1



2,1 x1
a + a2,2 x2 + a2,3 x3 a2,n xn = b2
a3,1 x1 + a3,2 x2 + a3,3 x3 a3,n xn = 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) (0) (0) (0)
a1,1 a1,2 a1,3 a1,n b1
(0) (0) (0) (0) (0)

a2,1 a2,2 a2,3 a2,n b2

(0) (0) (0) (0) (0)
a3,1 a3,2 a3,3 a3,n b3

.. .. .. .. ..
. . . . .

(0) (0) (0) (0) (0)
an,1 an,2 an,3 an,n bn
onde o ndice superior indica a etapa do processo.
(0)
Etapa 1: Eliminar a incgnita x1 das equaes k = 2, 3, . . . , n. Sendo a1,1 6= 0, usaremos a
operao elementar (III) e subtramos da linha k a primeira linha multiplicada por
(0)
ak,1
mk,1 = (0)
.
a1,1
(0)
Os elementos mk,1 so chamados de multiplicadores e o elemento a1,1 chamado
(0)
de piv da Etapa 1. Indicando a linha k da matriz entendida por Lk esta etapa se
resume em
(1) (0)
L1 = L1
(1) (0) (0)
Lk = Lk mk,1 L1 , k = 2, 3, . . . , n
Ao final desta etapa teremos a matriz

(1) (1) (1) (1) (1)
a1,1 a1,2 a1,3 a1,n b1
(1) (1) (1) (1)

0 a2,2 a2,3 a2,n b2

(1) (1) (1) (1)
0 a3,2 a3,3 a3,n b3

.. .. .. .. ..
. . . . .

(1) (1) (1) (1)
0 an,2 an,3 an,n bn
que representa um sistema linear equivalente ao sistema original, onde a incgnita
x1 foi eliminada das equaes k = 2, 3, . . . , n.
(1)
Etapa 2: Eliminar a incgnita x2 das equaes k = 3, 4, . . . , n. Supondo que a2,2 6= 0,
vamos tomar este elemento como piv desta etapa e desta forma os multiplicadores
so dados por
(1)
ak,2
mk,2 = (1)
a2,2
A eliminao segue com as seguintes operaes sobre as linhas:
(2) (1)
L1 = L1
(2) (1)
L2 = L2
(2) (1) (1)
Lk = Lk mk,2 L2 , k = 3, 4, . . . , n
38 CAPTULO 3. SISTEMAS LINEARES

obtendo ao final da etapa a matriz



(2) (2) (2) (2) (2)
a1,1 a1,2 a1,3 a1,n b1
(2) (2) (2) (2)

0 a2,2 a2,3 a2,n b2

(2) (2) (2)
0 0 a3,3 a3,n b3

.. .. .. .. ..
. . . . .

(2) (2) (2)
0 0 an,3 an,n 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) (n1) (n1) (n1) (n1)
a1,1 a1,2 a1,3 a1,n b1
(n1) (n1) (n1) (n1)

0 a2,2 a2,3 a2,n b2

(n1) (n1) (n1)
0 0 a3,3 a3,n b3

.. .. .. .. ..
. . . . .

(n1) (n1)
0 0 0 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:


n
X
1
xk bk ak,j xj
ak,k j=k+1

fim para
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) (0)
L1 = L1
(0)
(1) (0) (0) a21 7
L2 = L2 m2,1 L1 , onde m2,1 = (0)
=
a1,1 3
(0)
(1) (0) (0) a31 1
L3 = L3 m3,1 L1 , onde m3,1 = (0)
=
a1,1 3

e com isto obtemos a matriz



3 2 1 1

0 17/3 4/3 13/3
0 2/3 4/3 12/3

Etapa 2: Eliminar x2 da linha 3.


(2) (1)
L1 = L1
(2) (1)
L2 = L2
(01)
(2) (1) (1) a32 2
L3 = L3 m3,2 L2 , onde m3,2 = (1)
=
a2,2 17

obtendo assim a matriz


3 2 1 1

0 17/3 4/3 13/3
0 0 20/17 20/17
Retro-Soluo: Encontrar a soluo do sistema triangular superior.
b3
x3 = =1
a3,3
1
x2 = (b2 a2,3 x3 ) = 1
a2,2
1
x1 = (b1 a1,2 x2 a1,3 x3 ) = 0
a1,1
Logo a soluo do sistema dada por x = (0, 1, 1)T .
40 CAPTULO 3. SISTEMAS LINEARES

A soluo encontrada a soluo exata, pois mantivemos os nmeros resultantes das


operaes na forma de frao. Porm mquinas digitais representam estes nmeros
na forma de ponto 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)
ak,j
mk,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
ik para i = k, k + 1, . . . , n.

Exemplo 3.4 Vamos considerar o sistema linear, representado pela matriz extendida

1 3 2 3

2 1 2 4
3 2 1 2

Etapa 1: Escolha do piv


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

2 1 2 4
1 3 2 3
Eliminar x1 das linhas 2 e 3.
(1) (0)
L1 = L1
(1) (0) (0) 2
L2 = L2 m2,1 L1 , onde m2,1 =
3
(1) (0) (0) 1
L3 = L3 m3,1 L1 , onde m3,1 =
3
e com isto obtemos a matriz

3 2 1 2

0 7/3 8/3 8/3
0 11/3 7/3 7/3
3.2. MTODOS DIRETOS 41

Etapa 2: Escolha do piv


max |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) (1)
L1 = L1
(2) (1)
L2 = L2
(2) (1) (1) 7
L3 = L3 m3,2 L2 , onde m3,2 =
11
obtendo assim a matriz
3 2 1 2

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

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


b3
x3 = =1
a3,3
1
x2 = (b2 a2,3 x3 ) = 0
a2,2
1
x1 = (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 in-
teiros n-dimensional, onde inicialmente na posio k est armazenado k, ou seja trc =
[1, 2, . . . , s, . . . , n]. Se, por exemplo, trocamos a linha 1 pela linha s o vetor passa a ser
trc = [s, 2, . . . , 1, . . . , n].

3.2.4 Clculo da Matriz Inversa


Vamos supor que desejamos resolver os sistemas lineares Ax = b1 , Ax = b2 , . . . Ax = bk ,
onde a matriz A a mesma para todos os sistemas. A matriz triangular superior, resul-
tante do processo de eliminao, no depende do vetor b e portanto ser a mesma em
qualquer um dos sistemas. Assim podemos resolver estes sistemas num nico processo
de eliminao usando a matriz estendida (A|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
42 CAPTULO 3. SISTEMAS LINEARES

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

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

a
2,1 a2,2 a x
2,3 2,1 x2,2 x2,3 = 0 1 0 ,
a3,1 a3,2 a3,3 x3,1 x3,2 x3,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 matriz abaixo, usando o mtodo de Elinao de
Gauss.
4 1 6

3 2 6 ,
3 1 5
Para o processo de eliminao consideremos a matriz estendida

4 1 6 1 0 0

3 2 6 0 1 0 ,
3 1 5 0 0 1
3.2. MTODOS DIRETOS 43

Etapa 1: Eliminar x1 das linhas 2 e 3.


(1) (0)
L1 = L1
(1) (0) (0) 3
L2 = L2 m2,1 L1 , onde m2,1 =
4
(1) (0) (0) 3
L3 = L3 m3,1 L1 , onde m3,1 =
4
e com isto obtemos a matriz

4 1 6 1 0 0

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

Etapa 2: Eliminar x2 da linha 3.


(2) (1)
L1 = L1
(2) (1)
L2 = L2
(2) (1) (1) 1
L3 = L3 m3,2 L2 , onde m3,2 =
5
obtendo assim a matriz

4 1 6 1 0 0

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

Retro-Soluo: Encontrar a soluo dos sistemas triangulares superior.


Primeira coluna da inversa

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

Segunda coluna da inversa

b23
x3,2 = =1
a3,3
1 2
x2,2 = (b a2,3 x3 ) = 2
a2,2 2
1 2
x1,2 = (b a1,2 x2 a1,3 x3 ) = 1
a1,1 1
44 CAPTULO 3. SISTEMAS LINEARES

Terceira coluna da inversa


b33
x3,3 = = 5
a3,3
1 3
x2,3 = (b a2,3 x3 ) = 6
a2,2 2
1 3
x1,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 orien-
tada nas caractersticas de cada mtodo que apresentamos nesta seo.
Os mtodos diretos apresentam a soluo de qualquer sistema linear no singular,
porm no temos um controle sobre a preciso da soluo. Aplicados em sistemas de
grande porte e matriz cheia ( dimenso acima 50 50 e poucos elementos 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.
46 CAPTULO 3. SISTEMAS LINEARES

O Mtodo de Gauss-Jacobi indicado para processamento paralelo ou vetorial, pois


os elementos no passo k + 1 dependem somente dos elementos no passo k. Se T for o
tempo que uma mquina seqencial toma para executar uma iterao. Numa mquina
paralela este tempo cai para dT /N pe, onde N p o nmero de processadores.
O Mtodo de Gauss-Seidel no indicado para processamento paralelo, pois o cl-
culo de xk+1
s depende de xk+1 k+1 k+1
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 0 0 0
a2,1 a2,2 a2,3 0 0 0 0 0

0 a3,2 a3,3 a3,4 0 0 0 0


0 0 a4,3 a4,4 a4,5 0 0 0

.. .. .. .. .. .. .. ..
. . . . . . . .

0 0 0 0 0 an1,n2 an1,n1 an1,n
0 0 0 0 0 0 an,n1 an,n
Faa uma modificao no Mtodo de Eliminao de Gauss explorando a forma do sistema.
[ex32]

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

kx1 + 2x2 + x3 = 3

5
kx1 + x2 + 2x3 = 2

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 mx-
imo.

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) 0.8
tomando x =
0.5x1 0.5x2 = 0 0.8

Exerccio 3.9 Enuncie as vantagens e desvantagens dos Mtodos Diretos em relao aos
Mtodos Iterativos.
48 CAPTULO 3. SISTEMAS LINEARES

3.5 Atividades no Laboratrio


Problema 3.1 Implemente as modificaes necessrias no programa do Mtodo de Elimi-
nao de Gauss para que este execute o Pivotamento Parcial

Problema 3.2 Implemente o Mtodo de Gauss-Seidel, junto com o critrio de Sassenfeld.


Teste o programa para o sistema Ax = b, onde

2 1 0 0 0 0 5
1 2 1 0 0 0 8

0 1 2 1 0 0 12

A= b= = 1010
0 0 1 2 1 0 16

0 0 0 1 2 1 20
0 0 0 0 1 2 17


15 4 3 2 1 30
1 15 4 3 2 10


A= 2 1 15 4 3 b= 5 = 108

3 2 1 15 4 15
4 3 2 1 15 20
CAPTULO
4
Ajuste de Curvas: Mtodo dos Mnimos
Quadrados

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

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 0.10 0.20 0.50 0.65 0.70 0.80 0.90 1.10 1.23 1.35 1.57 1.70 1.75 1.80 1.94
f (x) 0.19 0.36 0.75 0.87 0.91 0.96 0.99 0.99 0.94 0.87 0.67 0.51 0.43 0.36 0.11

49
50 CAPTULO 4. AJUSTE DE CURVAS: MTODO DOS MNIMOS QUADRADOS

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

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
(xk )
m
X z }| {
F (1 , 2 , . . . , n ) = [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


m
X
2 [f (xk ) 1 g1 (xk ) 2 g2 (xk ) n gn (xk )] gi (xk ) = 0
k=1
4.1. MTODO DOS MNIMOS QUADRADOS - CASO DISCRETO 51
m m m m

X X X X

1 g (x
1 k 1 k)g (x ) + 2 g (x )g
1 k 2 k (x ) + + n g1 (xk )gn (xk ) = f (xk )g1 (xk )



k=1 k=1 k=1 k=1





Xm Xm Xm m
X

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

k=1 k=1 k=1 k=1

.. .. .. .. .. ..



. . . . . .

Xm Xm Xm m
X



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

Que representa um sistema linear n n da forma




a1,1 1 + a1,2 2 + a1,3 3 a1,n n = b1



a2,1 1
+ a2,2 2 + a2,3 3 a2,n n = b2
a3,1 1 + a3,2 2 + a3,3 3 a3,n n = b3

.. .. .. .. ..

. . . . .



an,1 1 + an,2 2 + an,3 3 an,n n = bn

onde m m
X X
ai,j = gi (xk )gj (xk ) e bi = f (xk )gi (xk )
k=1 k=1

Este sistema tem uma nica soluo se os vetores formados por gk = (gk (x1 ), gk (xn ))
so linearmente independentes. Isto equivalente a ter as funes gi (x) linearmente in-
dependentes. A matriz A associada ao sistema uma matriz simtrica, ou seja ai,j = aj,i .
Logo, para um sistema n n, ser necessrio calcular (n2 + n)/2 elementos.

Exemplo 4.2 Usando a tabela do exemplo (4.1), vamos ajustar os dados por uma parbola.
Para isto vamos tomar g1 (x) = 1, g2 (x) = x e g3 (x) = x2 . Calculando cada uma das funes
nos pontos xk temos.
x 0.10 0.20 0.50 0.65 0.70 0.80 0.90 1.10 1.23 1.35 1.57 1.70 1.75 1.80 1.94
f (x) 0.19 0.36 0.75 0.87 0.91 0.96 0.99 0.99 0.94 0.87 0.67 0.51 0.43 0.36 0.11
g1 (x) 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0
g2 (x) 0.10 0.20 0.50 0.65 0.70 0.80 0.90 1.10 1.23 1.35 1.57 1.70 1.75 1.80 1.94
g3 (x) 0.01 0.04 0.25 0.42 0.49 0.64 0.81 1.21 1.51 1.82 2.46 2.89 3.06 3.24 3.76

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


15
X
a1,1 = g1 (xk ) g1 (xk ) = 15
k=1
X15
a1,2 = g1 (xk ) g2 (xk ) = 16.29 = a2,1
k=1
X15
a1,3 = g1 (xk ) g3 (xk ) = 22.62 = a3,1
k=1
X15
a2,2 = g2 (xk ) g2 (xk ) = 22.62
k=1
52 CAPTULO 4. AJUSTE DE CURVAS: MTODO DOS MNIMOS QUADRADOS

15
X
a2,3 = g2 (xk ) g3 (xk ) = 34.92 = a3,2
k=1
X15
a3,3 = g3 (xk ) g3 (xk ) = 57.09
k=1
X15
b1 = f (xk ) g1 (xk ) = 9.91
k=1
X15
b2 = f (xk ) g2 (xk ) = 10.28
k=1
X15
b3 = f (xk ) g3 (xk ) = 12.66
k=1
Obtendo assim um sistema linear que pode ser resolvido por um esquema numrico estu-
dado no captulo 3. A soluo do sistema dado por
1 = 0.00, 2 = 1.99, 3 = 0.99
Portanto a funo dada por
(x) = 1.99x 0.99x2
A figura 4.2 compara a funo (x) com o grficos dos pontos.
1

0.9

0.8

0.7

0.6

0.5

0.4

0.3

0.2

0.1
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2

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

Atravs da funo podemos determinar valores de mximo ou mnimos, determi-


nar valores aproximados para a derivada, aproximar valores de f em pontos que no
pertencem a tabela.
4.2. MTODO DOS MNIMOS QUADRADOS - CASO CONTNUO 53

No exemplo ajustamos os dados a uma parbola, mas outras funes bases pode-
riam ser usadas. Como exemplo, poderamos pensar que os dados representam o
primeiro meio ciclo de uma funo senoidal. E neste caso poderamos tomar g1 (x) = 1
e g2 (x) = sen(x/2). Afinal qual seria a melhor escolha? (Veja exerccio 4.1) O desvio
fornece uma medida que pode ser usada como parmetro de comparao entre ajustes
diferentes. No caso do ajuste pela parbola temos que o desvio dado por
15
X
D= (f (xk ) (xk ))2 = 0.0019
k=1

Se o ajuste feito por uma funo senoidal tiver um desvio menor, ento este ajuste rep-
resentaria melhor os dados. Outro ponto a ser observado que a dimenso do sistema
linear depende do nmero de funes bases que estamos usando. No caso da parbola
usamos trs funes bases e temos um sistema 3 3. No caso de uma funo senoidal
teremos um sistema 2 2.

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
Z b
D= (f (x) (x))2 dx
a
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 ,
Z b Z b
ai,j = gi (x)gj (x)dx e bi = f (x)gi (x)dx
a a

Exemplo 4.3 Vamos determinar a melhor parbola que se ajuste a funo f (x) = sen(x)
no intervalo [0, 1]. Para isto devemos tomar, como funes bases, as funes g1 (x) = 1,
g2 (x) = x e g3 (x) = x2 . Calculando os termos do sistema linear temos
Z 1
a1,1 = g1 (x)g1 (x)dx = 1
0
Z 1
1
a1,2 = g1 (x)g2 (x)dx =
= a2,1
0 2
Z 1
1
a1,3 = g1 (x)g3 (x)dx = = a3,1
0 3
Z 1
1
a2,2 = g2 (x)g2 (x)dx =
0 3
Z 1
1
a2,3 = g2 (x)g3 (x)dx = = a3,2
0 4
54 CAPTULO 4. AJUSTE DE CURVAS: MTODO DOS MNIMOS QUADRADOS
Z 1
1
a3,3 = g3 (x)g3 (x)dx =
0 25
Z 1
b1 = f (x)(x)g1 (x)dx = 0.636
0
Z 1
b2 = f (x)g2 (x)dx = 0.318
0
Z 1
b3 = f (x)g3 (x)dx = 0.189
0

cuja a soluo dada por 1 = 0.027, 2 = 4.032 e 3 = 4.050. Assim temos que
(x) = 0.027 + 4.032x 4.050x2 . A figura (4.3) mostra o grfico comparativo entre a funo
f (x) ( linha: ) e o ajuste (x) (linha: ).

1.2

0.8

0.6

0.4

0.2

0.2
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1

Figura 4.3: : f (x) = sen(x); : (x)

4.3 Ajuste No Linear


Existem casos, onde o diagrama de disperso de uma funo indica que os dados devem
ser ajustado por uma funo que no linear com relao aos i . Como exemplo, vamos
4.3. AJUSTE NO LINEAR 55

considerar os dados
x 1.0 0.5 0 0.5 1.0 1.5 2.0 2.5 3.0
f (x) 0.157 0.234 0.350 0.522 0.778 1.162 1.733 2.586 3.858

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

3.5

2.5

1.5

0.5

0
1 0.5 0 0.5 1 1.5 2 2.5 3

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 1.0 0.5 0 0.5 1.0 1.5 2.0 2.5 3.0


f (x) 0.157 0.234 0.350 0.522 0.778 1.162 1.733 2.586 3.858
z = ln(f (x)) 1.851 1.452 1.049 0.650 0.251 0.150 0.549 0.950 1.350
g1 (x) 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000
g2 (x) 1.0 0.5 0 0.5 1.0 1.5 2.0 2.5 3.0

Calculando os elementos da matriz e vetor dos termos independente temos que


9
X
a1,1 = g1 (xk ) g1 (xk ) = 9
k=1
X9
a1,2 = g1 (xk ) g2 (xk ) = 9 = a2,1
k=1
X9
a2,2 = g2 (xk ) g2 (xk ) = 24
k=1
X15
b1 = z(xk ) g1 (xk ) = 2.254
k=1
X15
b2 = z(xk ) g2 (xk ) = 9.749
k=1

Cuja a soluo dada por


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

1 = e1 = 0.349 e 2 = 2 = 0.800

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

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 se-
gurana. 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 0.5 1 1.5 2 2.5 3

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

m
X
Caso Discreto: hgi , gj i = gi (xk )gj (xk )
k=1
Z b
Caso Contnuo: hgi , gj i = gi (x)gj (x)dx
a

Se as funes gi forem ortogonais, isto

(
0, para i 6= j
hgi , gj i =
ki , para i = j

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


Como exemplo, veja exerccio 4.5.
58 CAPTULO 4. AJUSTE DE CURVAS: MTODO DOS MNIMOS QUADRADOS

1.5

0.5

0.5

1.5

2
1 0.5 0 0.5 1 1.5 2 2.5 3

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 0.10 0.20 0.50 0.65 0.70 0.80 0.90 1.10 1.23 1.35 1.57 1.70 1.75 1.80 1.94
f (x) 0.19 0.36 0.75 0.87 0.91 0.96 0.99 0.99 0.94 0.87 0.67 0.51 0.43 0.36 0.11
[exc4:01]

Exerccio 4.2 Dada a tabela abaixo


x 0.50 0.75 1.00 1.50 2.00 2.50 3.00
f(x) 0.479 0.681 0.841 0.997 0.909 0.598 0.141
Entre os grupos de funes bases abaixo, escolha aquele que representar melhor
resultado num ajuste de curvas. 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 tem-
peratura.
t(o C) 0 5 10 25 30 35
C(t) 1.00762 1.00392 1.00153 0.99852 0.99826 0.99818
Faa um ajuste linear, um quadrtico e um cbico. Faa um ajuste no linear da forma
(x) = 1 e2 x , com 1 , 2 > 0. Calcule o desvio e ache uma aproximao para t = 15 em
cada um dos casos. Sabendo que o valor exato da funo C(15) = 1.00000, qual dos casos
acima apresentou melhor aproximao?
1
Exerccio 4.4 Ajustar os dados abaixo funo z =
1 + e(1 x+2 )
x 0.1 0.3 0.5 0.5 0.7 0.8 0.8 1.10 1.30 1.80
f(x) 0.833 0.625 0.500 0.510 0.416 0.384 0.395 0.312 0.277 0.217
Verifique, pelo teste do alinhamento, qual a melhor escolha para ajustar os dados
entre as funes z = 1 2 x e z = 1 x2 . (Obs: Note que neste caso a tabela apresenta dois
valores diferentes para os pontos x = 0.5 e x = 0.8. ) [ex4:02]
1
Exerccio 4.5 Usando os polinmios de Legendre g1 (x) = 1, g2 (x) = x e g2 (x) = (3x2 1),
2
que so ortogonais em [1, 1], ache a melhor parbola que aproxima a funo f (x) = cos(x)
no intervalo [3, 3]. (Obs: A ortogonalidade dos polinmios nos forneceria uma matriz
diagonal, se o ajuste fosse feito no intervalo [1, 1]. Logo devemos fazer uma mudana de
varivel de tal forma que obteremos novas gi que sero ortogonais em [3, 3] ) [exc4:03]
Exerccio 4.6 Seja f(x) uma funo real, contnua no intervalo [0, 2]. Ache os valores de
i e i , para o ajuste da forma
(x) = 1 cos(x) + 1 sen(x) + 2 cos(2x) + 2 sen(2x) + + n cos(nx) + n sen(nx)g2 (x).
Este ajuste a aproximao de uma funo pela sua Srie de Fourier, cuja as aplicaes
em processamento de imagens e sinais so bem difundidos.

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 x0 n a0 f0
1 x1 x1 2 x1 n a1 f1


1 x2 x2 2 x2 n a2 = f2

.. .. .. .. .. ..
. . . . . .
1 xn xn 2 xn n an fn

61
62 CAPTULO 5. INTERPOLAO POLINOMIAL

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


dado por
n l1
Y Y
Det(A) = (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 0.0 0.2 0.4


fk 4.00 3.84 3.76

Como temos, trs pontos (n + 1 = 3), o grau do polinmio ser menor ou igual a dois. Logo

p(x) = 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 sis-


temas. O Teorema 5.1 garante a unicidade do polinmio interpolador. Logo estes pro-
cedimentos resultam no mesmo polinmio pn (x). A escolha de um ou outro procedimento
depende dos dados que devemos interpolar.
5.1. FORMA DE LAGRANGE 63

5.1 Forma de Lagrange


Vamos considerar o conjunto de n+1 pontos (xk , fk ), k = 0, 1, . . . n distintos e vamos
considerar o polinmio representado por
n
X
pn (x) = f0 L0 (x) + f1 L1 (x) + + fn Ln (x) = fk Lk (x)
k=0

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


(
0 se k 6= j
Lk (xj ) =
1 se k = j

Com isto temos que


0 0 1 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:

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


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

Exemplo 5.2 Vamos considerar a tabela de pontos do exemplo anterior

x 0.0 0.2 0.4


f (x) 4.00 3.84 3.76

Calculando os Lk (x) temos

(x x1 )(x x2 ) (x 0.2)(x 0.4) 1


L0 (x) = = = (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
L1 (x) = = = (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
L2 (x) = = = (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 esper-
ado, pois o polinmio interpolador nico.
64 CAPTULO 5. INTERPOLAO POLINOMIAL

5.2 Forma de Newton


A forma de Newton do polinmio interpolador baseada nos operadores de diferenas di-
vididas, que 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 ] f [xk+1 , xk+2 ]
f [xk , xk+1 , xk+2 ] = .
xk xk+2
De forma anloga, definimos o operador diferena dividida de ordem n, nos pontos
xk , xk+1 , . . . , xk+n , da seguinte forma:
f [xk , xk+n1 ] f [xk+1 , xk+n ]
f [xk , xk+1 , . . . , xk+n ] = .
xk xk+n
Note que a forma de clculo desses operadores construtiva, no sentido de que para
obter a diferena dividida de ordem n necessitamos das diferenas divididas de ordem
n 1, n 2, . . . , 1, 0. Um esquema prtico para o clculo desses operadores dado pela
tabela abaixo
x f [xk ] f [xk , xk+1 ] f [xk , xk+1 , xk+2 ] f [xk , xk+1 , . . . , xk+n ]
x0 f0
> xf00 f1
x1
f [x0 ,x1 ]f [x1 ,x2 ]
x1 f1 > x0 x2
> xf11 f2
x2
f [x1 ,x2 ]f [x2 ,x3 ]
x2 f2 > x1 x3
f [x0 ,...,xn1 ]f [x1 ,...,xn ]
> xf22 f3
x3 > x0 xn
..
x3 f3 .
.. ..
. .
xn1 fn1
fn1 fn
> xn1 xn
xn fn

5.2.1 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 ] f [x0 x1 ]
f [x, 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 0
p1 (x0 ) = f (x0 ) + (x0 %x0 )f [x0 , x1 ] + (x0 %x0 )(x x1 )f [x, x0 , x1 ]
= f (x0 )

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

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

= f (x1 )

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 ] [eq5:01] (5.1)

En (x) = (x x0 )(x x1 ) (x xn )f [x, x0 , x1 , . . . , xn ] [eq5:02] (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.
66 CAPTULO 5. INTERPOLAO POLINOMIAL

Exemplo 5.3 Vamos considerar a funo f (x) tabelada abaixo.

x 0 0.5 1 1.5
f (x) 0.0000 1.1487 2.7183 4.9811

Montando a tabela das diferenas divididas temos


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) = 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

5.3 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 interpo-


lador sobre x0 , x1 , . . . , xn . Se f (x) n+1 vezes diferencivel em [x0 , xn ] ento para x
[x0 , xn ]
o erro dado por:

f (n+1) ()
En (
x) = f (
x) pn (
x) = (
x x0 )(
x x1 ) (
x xn ) 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 0
%i ) En (x
H(xi ) = En (x)G(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 ]


0
H (t) 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 ]

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

f (n+1) ()
En (x) = (x x0 )(x x1 ) (x xn )
(n + 1)!

Na prtica usamos um limitante para o erro, sendo

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

onde temos que ter alguma informao sobre a funo que permita limitar sua derivada
de ordem n + 1.

5.4 Escolha dos Pontos


Uma das caractersticas da interpolao que esta pode fornecer uma aproximao
local, sem a necessidade de usar todos os dados disponveis. Como exemplo, vamos
considerar a tabela abaixo
x 0.2 0.34 0.4 0.52 0.6 0.72
.
f (x) 0.16 0.22 0.27 0.29 0.32 0.37
68 CAPTULO 5. INTERPOLAO POLINOMIAL

Vamos achar uma aproximao para f (0.44), usando um polinmio de grau 2. Neste
caso, necessitamos de 3 pontos e o ideal escolher aqueles que esto mais prximos do
valor que desejamos aproximar. Logo a melhor escolha ser 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)|


|En (0.44)| |(0.44 0.34)(0.44 0.4)(0.44 0.52)| max = 0.00032 max
x[x0 ,x2 ] (n + 1)! x[x0 ,x2 ] (n + 1)!

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

|f (n+1) (x)|
|En (0.44)| 0.00268 max .
x[x0 ,x2 ] (n + 1)!

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 0.2 0.3 0.4 0.5 0.6 0.7 0.8


f (x) 0.587 0.809 0.951 1.000 0.951 0.809 0.587

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

y 0.587 0.809 0.951 1.000


f 1 (y) 0.2 0.3 0.4 0.5
Como desejamos um polinmio de grau 2, devemos escolher trs pontos e a melhor escolha
so os pontos que esto mais prximos do valor a ser aproximado, y = 0.9 (x0 = 0.809, x1 =
0.951 e x2 = 1.000). Calculando as diferenas divididas temos
y f 1 ordem 1 ordem 2
0.809 0.3
0.704
0.951 0.4 6.999
2.040
1.000 0.5
e conseqentemente o polinmio dado por

p(y) = 0.3 + (y 0.809)0.704 + (y 0.951)(y 0.809)6.999


= 5.115 11.605y + 6.994y 2

Portanto o valor de x tal que f (x) = 0.9 aproximado por x = f 1 (0.9) p(0.9) = 0.3315.

5.6 Observaes Finais


Como no caso do ajuste de curvas, a interpolao aproxima uma funo, sobre um
conjunto de dados. Porm a interpolao exige que os pontos sejam distintos. Fato que
no precisa ocorrer com o ajuste de curvas. Alm disso, o grau do polinmio interpolador
depende da quantidade de pontos. Logo para um conjunto de 100 pontos teremos um
polinmio de grau 99, o que no muito prtico se desejamos montar um modelo
matemtico. A interpolao mais indicada para aproximaes quantitativas e locais,
enquanto que o ajuste de curvas indicado para uma aproximaes qualitativas. Se
desejamos saber a taxa de variao de uma determinada funo (ou seja a derivada),
o mais indicado o ajuste de curvas, pois na interpolao no temos garantia de que
f 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
70 CAPTULO 5. INTERPOLAO POLINOMIAL

1.5

0.5

0.5
1 0.8 0.6 0.4 0.2 0 0.2 0.4 0.6 0.8 1

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 1900 1920 1940 1950 1960 1970
Hab. 17.4 30.6 41.2 51.9 70.2 93.1

a) Usando o polinmio interpolador de grau 2, na forma de Lagrange, ache uma aproxi-


mao para a populao no ano de 1959.

b) Usando interpolao quadrtica na forma de Newton, estime, com o menor erro pos-
svel, em que ano a populao ultrapassou os 50 milhes.

c) Com os resultados obtidos no tem a) podemos estimar a taxa de crescimento da


populao neste perodo? 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 -0.2 -0.1 0.1 0.15 0.35
f (x) 0.980 0.995 0.996 0.988 0.955

a) Quando possvel, ache uma aproximao para f (0.25) e f (0) , usando o polinmio
interpolador na forma de Newton, com o menor erro possvel.

b) Se tivssemos usado o polinmio interpolador na forma de Lagrange sobre os mesmos


pontos obteramos melhor resultado? Justifique.

Exerccio 5.5 Num experimento de laboratrio, uma reao qumica liberou calor de acordo
com as medies mostradas na tabela abaixo
72 CAPTULO 5. INTERPOLAO POLINOMIAL

hora 8:00 hr 9:00 hr 9:30 hr 10:00 hr


Co 0 130 210 360

a) Determine uma funo que d a temperatura em funo do tempo, de modo que os


pontos tabelados sejam representados sem erro.

b) Calcule a provvel temperatura ocorrida s 9:45 hr.

5.8 Atividades no Laboratrio


Problema 5.1 Faa as 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 n
X
f (x)dx A0 f (x0 ) + A1 f (x1 ) + An f (xn ) = Ai f (xi )
a 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 interpo-
lador 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, ob-
tendo
Z b Z x1
f (x)dx p1 (x)dx
a x0

73
74 CAPTULO 6. INTEGRAO NUMRICA - FRMULAS DE NEWTON CTES
Z x1
= f (x0 ) + f [x0 , x1 ](x x0 )dx
x0
!
x1 2 x0 2
= f (x0 )(x1 x0 ) + f [x0 , x1 ] x0 (x1 x0 )
2 2
f (x1 ) f (x0 ) (x1 x0 )2
= f (x0 )(x1 x0 ) +
x1 x0 2
(x1 x0 )
= (f (x0 ) + f (x1 ))
2
h
= (f (x0 ) + f (x1 )),
2
onde h = x1 x0 . A frmula acima representa a rea do trapzio que tem f (x1 ) e f (x0 )
como os valores das bases e h como o valor da altura. Na figura 6.1 temos uma repre-
sentao desta aproximao.

f(x)
f(x1)

p(x)

f(x0)

a b

|| ||
x0 x1

6.2 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 Z b Z b
f (x)dx = pn (x)dx + En (x)dx,
a a a

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
Z b Z b
f 00 () h3
ET = E1 (x)dx = (x x0 )(x x1 ) dx = f 00 (), [a, b]
a a 2 12
Como o erro depende do ponto , que desconhecido, na prtica usamos a estima-
tiva
h3
|ET | max |f 00 ()|
12 [a,b]
2
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
2 1 2 2
ex dx (e0 + e2 ) = 0.6839397
0 2
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 3 x2 3
f (x) = (12x 8x )e = 0 x = 0 ou x =
2
Como o nico ponto crtico pertencente ao intervalo x = 0 segue que

max |f 00 ()| = 2
[a,b]

Com isto temos que


h3 1
ET 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 val-
ores 0.6839397 0.166667. Neste caso devemos usar um procedimento mais preciso, como
descrito na prxima seo.
76 CAPTULO 6. INTEGRAO NUMRICA - FRMULAS DE NEWTON CTES

6.3 Regra do Trapzio Repetida


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

a b

Figura 6.1: Regra do Trapzio Repetida

que
ba
h=e xk = x0 + kh com k = 0, 1, . . . , n
n
Aplicando a Regra do Trapzio em cada subintervalo [xk , xk+1 ] segue que
Z b
h h h h h
f (x)dx (f0 + f1 ) + (f1 + f2 ) + (f2 + f3 ) + + (fn2 + fn1 ) + (fn1 + fn )
a 2 2 2 2 2
h
= [f0 + 2(f1 + f2 + + fn1 ) + fn ]
2
O erro cometido na aproximao igual a soma dos erros cometidos em cada subin-
tervalo, logo temos que o erro da forma
h3
|ET G | n max |f 00 ()|
12 [a,b]
6.4. REGRA DE SIMPSON 1/3 77

2
Exemplo 6.2 Considerando a funo do exemplo anterior, f (x) = ex em [0, 1], vamos
determinar o nmero de subintervalos necessrios para que a Regra do Trapzio Repetida
fornea uma aproximao com pelo menos 3 casas decimais exatas. Para isto devemos
ter que |ET G | 104 , logo
h3
n max |f 00 ()| 104
12 [0,1]
Sendo h = (b a)/n e que o mximo da segunda derivada da funo em [0, 1] 2 (Ver ex.
anterior) segue que
h3 1 1
n max |f 00 ()| 104 n 3 2 104
12 [0,1] n 12
1
6 104
n2
n2 1666.666
n 40.824
Devemos tomar no mnimo n = 41 subintervalos para atingir a preciso desejada. Abaixo
apresentamos o uso da funo trapz.m do MatLab que fornece a aproximao da integral
pela Regra do Trapzio. Usando 41 subintervalos temos a aproximao It = 0.746787657
% Diciplina de Calculo Numerico - Prof. J. E. Castilho
% Exemplo do uso da funcao trapz(x,y)
% Calcula a integral usando a regra do trapezio
% para os pontos
% x=[xo,x1,...,xn]
% f=[fo,f1,...fn]
%
h=1/41;
x=0:h:1;
f=exp(-x.^2);
It=trapz(x,f)

6.4 Regra de Simpson 1/3


Neste caso, usamos o polinmio de grau 2 que interpola a funo f (x). Para isto ne-
cessitamos de trs pontos 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 Z x2
f (x)dx p2 (x)dx
a x0
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)

a x1 b

|| ||

x0 x2

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


cometido na interpolao. Desta forma obtemos
Z b Z b
f 000 () h5
ES = E2 (x)dx = (x x0 )(x x1 )(x x2 ) dx = f (iv) (), [a, b]
a a 3! 90
Na prtica usamos a estimativa para o erro

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

2
Exemplo 6.3 Vamos considerar a funo do exemplo anterior: f (x) = ex no intervalo
[0, 1]. Para usar a Regra de Simpson temos que ter trs pontos. Desta forma tomamos
ba 10 1
h= = =
2 2 2
E com isto segue a aproximao dada por:
Z b
1
f (x)dx (f (0) + 4f (1/2) + f (1)) = 0.74718
a 6
A limitao do erro depende da limitao da quarta derivada da funo no intervalo
[0, 1], sendo:
2
f (iv) (x) = (12 48x2 + 16x4 )ex
6.5. REGRA DE SIMPSON REPETIDA 79

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

h5
ES = 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

ba
h= 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
h h h h
f (x)dx (f0 + 4f1 + f2 ) + (f2 + 4f3 + f4 ) + + (fn4 + 4fn3 + fn2 ) + (fn2 + 4fn1 + fn )
a 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:

h5
|ESR | n max |f (iv) ()|.
180 [a,b]
80 CAPTULO 6. INTEGRAO NUMRICA - FRMULAS DE NEWTON CTES

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

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

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

6.6 Observaes Finais


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

6.7 Exerccios
Exerccio 6.1 Calcule as integrais pela Regra do Trapzio e pela Regra de Simpson us-
ando seis subintervalos. Z 4 Z 0.6
dx
xdx e
1 0 1+x

Exerccio 6.2 Calcule o valor de com trs casas decimais exatas usando a relao
Z 1
dx
=
4 0 1 + x2
6.8. ATIVIDADES NO LABORATRIO 81

Exerccio 6.3 Mostre que se f 0 (x) contnua em [a, b] e que f 00 (x) > 0, x [a, b], ento a
aproximao obtida pela Regra do Trapzio maior que o valor exato da integral.
Z 0.30
Exerccio 6.4 Dada a tabela abaixo, calcule a integral f (x)dx com o menor erro pos-
0.15
x 0.15 0.22 0.26 0.30
svel.
f (x) 1.897 1.514 1.347 1.204

Exerccio 6.5 Considere que f (x) aproximada pelo polinmio de grau 3 e determine a
regra de integrao, aproximando a integral da funo pela integral do polinmio. Ache a
frmula do erro.

Exerccio 6.6 Baseado na Regra de Simpson, determine uma regra de integrao para a
integral dupla
Z bZ d
f (x, y)dx dy
a c
Aplique a regra para calcular uma aproximao para
Z 1Z 1
x2 + y 2 dx dy
0 0

6.8 Atividades no Laboratrio


Problema 6.1 Implemente a Regra de Simpson Repetida e aplique no problema do exerc-
cio 6.2. Monte um esquema para a integral dupla, usando o programa anterior.
82 CAPTULO 6. INTEGRAO NUMRICA - FRMULAS DE NEWTON CTES
CAPTULO
7
Equaes Diferenciais Ordinrias

Muitos dos modelos matemticos nas reas de mecnica dos fluidos, fluxo de calor, vi-
braes, so representados por equaes diferenciais. Em muitos casos, a teoria garante
a existncia e unicidade da soluo, porm nem sempre podemos obter a forma analtica
desta soluo.
Neste captulo vamos nos concentrar em analisar esquemas numricos para soluo
de Problemas de Valor Inicial (P.V.I.), para equaes diferenciais de primeira ordem. Isto
, achar a funo y(x) tal que (
y 0 = f (x, y)
y(x0 ) = y0

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
84 CAPTULO 7. EQUAES DIFERENCIAIS ORDINRIAS

y0

y1

y3 y5
y2
y
4

| | | | | |
x x x x x x
0 1 2 3 4 5

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 )
y 0 (x0 ) = lim [eq7:03] (7.1)
h0 h h
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 com-
paramos a soluo exata com os valores calculados pelo Mtodo de Euler. Note que em
cada valor calculado o erro aumenta. Isto se deve porque cometemos um erro local na
aproximao da derivada por (7.1) e este erro vai se acumulando a cada valor calculado.
Na prxima seo daremos uma forma geral do erro local.

Figura 7.2: Comparao da soluo exata (linha - ) com a aproximada (pontos o).

7.2 Mtodos da Srie de Taylor


Vamos considerar o problema de valor inicial
(
y 0 = f (x, y)
y(x0 ) = y0

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

y 0 (xk ) y 00 (xk ) y (n) (xk ) y (n+1) ()


y(x) = y(xk ) + (x xk ) + (x xk )2 + + (x xk )n + (x xk )n+1
1! 2! n! (n + 1)!
86 CAPTULO 7. EQUAES DIFERENCIAIS ORDINRIAS

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

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


y(xk+1 ) = y(xk ) + h+ h + + h + h [eq7:22] (7.2)
1! 2! n! (n + 1)!

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
y 00 (xk ) = f (xk , yk )
dx
= fx + fy y 0
= fx + fy f
y (xk ) = fy (fx + fy f ) + f 2 fyy + 2f fxy + fxx
000

Desta forma podemos obter uma aproximao para o clculo do P.V.I., substituindo as
relaes do tipo acima na srie de Taylor. Os mtodos podem ser classificados de acordo
com o termo de maior ordem que usamos na srie de Taylor, sendo

Definio 7.1 Dizemos que um mtodo para a soluo de P.V.I. de ordem n se este coin-
cide com a srie de Taylor at o n-simo termo. O erro local cometido por esta aproximao
ser da forma
y (n+1) () n+1
Eloc (xk+1 ) = h [xk , xk+1 ]
(n + 1)!

Como exemplo temos que o Mtodo de Euler um mtodo de 1o ordem, pois este
coincide com a srie de Taylor at o primeiro termo, logo o erro local dado por
00
y () 2
Eloc (xk+1 ) = h [xk , xk+1 ]
2!
Em geral, podemos determinar a ordem de um mtodo pela frmula do erro. Se o erro
depende da n-sima potncia de h dizemos que o mtodo de ordem n1. Quanto menor
for o valor de h menor ser o erro local.

Exemplo 7.2 Vamos utilizar o mtodo de 2o ordem para aproximar y(0.5), usando h = 0.1,
para o P.V.I. (
y 0 = x 2y
y(0) = 1
Neste caso temos que f (x, y) = x 2y, logo segue que

y 00 = fx + fy f = 1 2(x 2y)

Substituindo em (7.2) temos que

y 0 (xk ) y 00 (xk ) 2
y(xk+1 ) = y(xk ) + h+ h
1! 2!
h2
= y(xk ) + h(xk 2y(xk )) + (1 2xk + 4y(xk ))
2
7.3. MTODOS DE RUNGE-KUTTA 87

Portanto o mtodo dado por

h2
yk+1 = yk + h(xk 2yk ) + (1 2xk + 4yk )
2
Sendo x0 = 0 e y0 = 1 obtemos que
h2
y1 = y0 + h(x0 2y0 ) + (1 2x0 + 4y0 )
2
0.12
= 1 + 0.1(0 2 1) + (1 2 0 + 4 1) = 0.825
2
h2
y2 = y1 + h(x1 2y1 ) + (1 2x1 + 4y1 )
2
0.12
= 0.825 + 0.1(0.1 2 0.825) + (1 2 0.1 + 4 0.825) = 0.6905
2
h2
y3 = y2 + h(x2 2y2 ) + (1 2x2 + 4y2 )
2
0.12
= 0.6905 + 0.1(0.2 2 0.6905) + (1 2 0.2 + 4 0.6905) = 0.58921
2
h2
y4 = y3 + h(x3 2y3 ) + (1 2x3 + 4y3 )
2
0.12
= 0.58921 + 0.1(0.3 2 0.58921) + (1 2 0.3 + 4 0.58921) = 0.515152
2
h2
y5 = y4 + h(x4 2y4 ) + (1 2x4 + 4y4 )
2
0.12
= 0.515152 + 0.1(0.4 2 0.515152) + (1 2 0.4 + 4 0.515152) = 0.463425
2
O grfico na Figura 7.3 compara os resultados obtidos por este mtodo, com os resulta-
dos obtidos pelo mtodo de Euler.
Os resultados obtidos pelo mtodo de 2o ordem so mais precisos. Quanto maior
a ordem do mtodo melhor ser a aproximao. A dificuldade em se tomar mtodos de
alta ordem o clculo da relao de y (n+1) (x) = [f (x, y)](n) .

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
mtodo da Srie de Taylor de 1o ordem. Vamos determinar um mtodo de 2 ordem,
o
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 coe-
ficientes angular de L1 e L2 (Ver figura 7.4-c). Finalmente a reta que passa pelo ponto
(xn , yn ) e paralela a reta L0 tem a forma
1
L(x) = yn + (x xn ) (f (xn , yn ) + f (xn+1 , yn + hyn0 ))
2
Calculando no ponto xn+1 temos
1
yn+1 = yn + h (f (xn , yn ) + f (xn+1 , yn + hyn0 ))
2
Podemos observar que o valor de yn+1 (Ver figura 7.4-d) est mais prximo do valor exato
que o valor de yen+1 . Este esquema numrico chamado de mtodo de Euler Melhorado,
onde uma estimativa do erro local dado por

h3
|Eloc (xn )| max |y 000 ()|
6 [xn ,xn+1 ]

Determinamos o mtodo de Euler Melhorado por uma construo geomtrica. Tam-


bm podemos obter uma demonstrao analtica. Desenvolvemos a srie de Taylor da
7.3. MTODOS DE RUNGE-KUTTA 89

L1
P
ye ye
n+1 n+1 L
2

yn yn

xn xn+1 xn xn+1

L1 L1
P P
yen+1 yen+1 L2
L2
yn+1

L0 L0

yn yn

xn xn+1 xn xn+1

Figura 7.4: Mtodo de Euler Melhorado

funo f (x, y) e calculando no ponto (xn+1 , yn + hyn0 ). A expresso encontrada deve con-
cordar com a Srie de Taylor at a segunda ordem. Em geral um mtodo de Runge-Kutta
de segunda ordem dado por

yn+1 = yn + a1 hf (xn , yn ) + a2 hf (xn + b1 h, yn + b2 hyn0 ),

onde

a1 + a2 = 1
2 1 a b = 1/2 [eq7:06] (7.3)

a b = 1/2
2 2
90 CAPTULO 7. EQUAES DIFERENCIAIS ORDINRIAS

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
apresentamos um mtodo de 3o o
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 inte-
grar a equao diferencial no intervalo [xn , xn+1 ], isto
Z xn+1 Z xn+1
y 0 (x)dx = f (x, y(x))dx (7.4)
xn xn
Z xn+1
y(xn+1 ) = y(xn ) + f (x, y(x))dx [eq7:01] (7.5)
xn
| {z }
Integrao Numrica

A integral sobre a funo f (x, y) aproximada pela integral de um polinmio interpo-


lador que pode utilizar pontos que no pertencem ao intervalo [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 inter-


polar a funo f (x, y);

Implcito: So obtidos quando no conjunto de pontos, sobres os quais interpo-


lamos a funo f (x, y), temos o ponto xn+1 .
7.4. MTODOS DE ADAMS-BASHFORTH 91

7.4.1 Mtodos Explcitos


Vamos considerar o caso em que a funo f (x, y) interpolada sobre os pontos (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 Z xn+1
p(x)dx = fn1 + f [xn1 , xn ](x xn1 )dx
xn xn
!
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

h
yn+1 = yn + (3fn fn1 )
2
Este mtodo um mtodo explcito, de passo dois. Isto significa que yn+1 depende de
yn e yn1 . Logo necessitamos de dois valores para iniciar o mtodo: y0 que dado no
P.V.I.; y1 que deve ser obtido por um mtodo de passo simples. De uma forma geral, os
mtodos de k-passos necessitam de k-valores iniciais que so obtidos por mtodos de
passo simples, de ordem igual ou superior a ordem do mtodo utilizado.
Obtemos o mtodo, aproximando a funo pelo polinmio interpolador de grau um.
Assim o erro local, cometido por esta aproximao ser
Z xn+1 Z xn+1
f 00 (, y())
E1 (x)dx = (x xn1 )(x xn ) dx
xn xn 2!
5 000
= h3 y () [xn , xn+1 ]
12
Com isto temos a seguinte estimativa para o erro local
5
|Eloc (xn+1 )| h3 max |y 000 ()|
12 [xn ,xn+1 ]

Exemplo 7.3 Considere o seguinte P.V.I.


(
y 0 = 2xy
y(0.5) = 1
92 CAPTULO 7. EQUAES DIFERENCIAIS ORDINRIAS

Vamos achar uma aproximao para y(1.1) pelo Mtodo de Adams-Bashforth explcito , de
passo dois, usando h = 0.2.
Do P.V.I segue que y0 = 1 e x0 = 0.5. Este um mtodo de passo dois e vamos ter
que calcular y1 por um mtodo de passo simples que tenha ordem igual ou superior ao do
Mtodo de Adams-Bashforth. Como o erro local depende de h3 temos que este mtodo
de 2o ordem. Assim vamos utilizar o mtodo de Euler Melhorado, que um mtodo de 2o
ordem.
h
y1 = y0 + (f (x0 , y0 ) + f (x1 , y0 + hy00 ))
2
0.2
= 1+ (2 0.5 1 + (2) 0.7 (1 + 0.2 (2 0.5 1))) = 0.788 y(0.7)
2
Tendo o valor de y0 e y1 podemos iniciar o Mtodo de Adams-Bashforth, sendo
h
y2 = y1 + (3f1 2f0 )
2
0.2
= 0.788 + (3 (2) (0.7) 0.788 2 (2) 0.5 1) = 0.65704 y(0.9)
2
h
y3 = y2 + (3f2 2f1 )
2
0.2
= 0.65704 + (3 (2) (0.9) 0.65704 2 (2) 0.7 0.788) = 0.52287 y(1.1)
2
Se tivssemos aproximado a funo f (x, y) por um polinmio de grau 3, sobre os
pontos (xn , fn ), (xn1 , fn1 ), (xn2 , fn2 ), (xn3 , fn3 ) obteramos o mtodo de passo 4 e or-
dem 4 dado por

h 251 (v)
yn+1 = yn + [55fn 59fn1 + 37fn2 9fn3 ] Eloc (xn+1 ) = h5 y () com [xn , xn+1 ]
24 720
Neste caso necessitamos de quatro valores iniciais, y0 , y1 , y2 e y3 , que deve ser calculados
por um mtodo de passo simples de ordem maior ou igual a quatro (Ex. Runge-Kutta de
4o ordem).

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 Z xn+1
p(x)dx = fn + f [xn , xn+1 ](x xn )dx
xn xn
!
xn+1 2 xn 2
= fn (xn+1 xn ) + f [xn , xn+1 ] xn xn+1 + xn xn
2 2
7.5. EQUAES DE ORDEM SUPERIOR 93

fn+1 fn 1
= hfn + xn+1 2 2xn xn+1 + xn 2
h 2
fn+1 fn 1
= hfn + (xn+1 xn )2
h 2
h
= (fn + fn+1 )
2
Substituindo a aproximao da integral em (7.5) obtemos o seguinte mtodo

h
yn+1 = yn + (fn + fn+1 )
2
O erro local, cometido por esta aproximao ser
Z xn+1 Z xn+1
f 00 (, y())
E1 (x)dx = (x xn+1 )(x xn ) dx
xn xn 2!
1 000
= h3 y () [xn , xn+1 ]
12
Note que o clculo de yn+1 depende de fn+1 = f (xn , yn+1 ). Em geral a f (x, y) no
permite que isolemos yn+1 . Desta forma temos que usar um esquema Preditor-Corretor.
Por um mtodo explcito encontramos uma primeira aproximao para yn+1 (Preditor) e
este valor ser corrigido por intermdio do mtodo implcito (Corretor).

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 : y1 = y0 + hf (x0 , y0 ) = 1 + 0.1(2 0 1 12 ) = 0.9


h 0.1
C : y1 = y0 + (f0 + f1 ) = 1 + 2 0 1 12 2 0.1 0.9 0.92 = 0.9005 y(0.1)
2 2
P : y2 = y1 + hf (x1 , y1 ) = 0.9005 + 0.1(2 0.1 0.9005 (0.9005)2 ) = 0.8013
h 0.1
C : 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)

7.5 Equaes de Ordem Superior


Uma equao de ordem m pode ser facilmente transformadas em um sistema de m
equaes de primeira ordem. Este sistema pode ser visto como uma equao vetorial
94 CAPTULO 7. EQUAES DIFERENCIAIS ORDINRIAS

de primeira ordem e assim poderemos aplicar qualquer um dos mtodos analisados nas
sees anteriores. Como exemplo vamos considerar o problema de terceira ordem dado
por
000 2 2 0 00
y = x + y y 2y x


y(0) = 1

y 0 (0) = 2

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

y =w



w0 = z

z 0 = x2 + y 2 w 2zx

y(0) = 1



w(0) = 2


z(0) = 3
O sistema acima pode ser escrito na forma matricial, onde

y0 0 1 0 y 0
0
w = 0 0 1 w + 0
z 0 y 1 2x z x2
| {z } | {z } | {z } | {z }
Y0 A Y X

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

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

y1 y0 0 1 0 y0 0

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

y1 1 0 1 0 1 0 1.2

w1 = 2 + 0.1 0 0 1 2 + 0 = 2.3
z1 3 1 1 2 0 3 02 2.9
7.6. EXERCCIOS 95

Calculando Y2 Y (0.2) temos



y2 y1 0 1 0 y1 0

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

y2 1.2 0 1 0 1.2 0 1.430

w =
2 2.3 + 0.1 0 0 1 2.3 +
0 =
2.590
z2 2.9 1.2 1 2 0.1 2.9 0.12 2.757
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.
h 251 (5)
yn+1 = yn + [9fn+1 + 19fn 5fn1 + fn2 ] com Eloc (xn+1 ) = h5 y ()
24 720
Classifique o mtodo de acordo com o nmero de passos, se este implcito ou explcito, a
ordem do mtodo, procurando sempre dar justificativas as suas respostas.

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
96 CAPTULO 7. EQUAES DIFERENCIAIS ORDINRIAS

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


!n+1
h2
yn+1 = 1+h+
2

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

P : yn+1 = yn + hf (xn + h/2, yn + h/2y 0 )


h
C ; yn+1 = yn + (fn+1 + fn )
2

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

Você também pode gostar