Você está na página 1de 217

Captulo 1

Aritm
etica no Computador
1.1

Introdu
c
ao

Hoje em dia, os computadores utilizam um sistema de numeracao em base 2, em sua grande


maioria. Esse sistema e chamado de bin
ario e utiliza os algarismos 0 e 1 para representar os
n
umeros (apesar de que quaisquer outros dois smbolos poderiam ser usados).
A nossa sociedade, ao contr
ario, utiliza um sistema de numeracao decimal, ou base 10; muito
provavelmente, pelo fato dos seres humanos terem dez dedos nas maos, os quais eram utilizados
como uma crianca os utiliza para contar quantidades. A palavra dgito, sin
onimo para algarismo,
vem do latim digitus, dedo.
Ambos os sistemas citados decimal e bin
ario s
ao sistemas posicionais, i.e., os n
umeros s
ao
formados por somas de potencias, convenientemente multiplicadas pelos algarismos. Por exemplo,
o n
umero
(420, 325)10 = 4 102 + 2 101 + 0 100 + 3 101 + 2 101 + 5 103

(1.1)

e representado no sistema decimal como a soma das potencias de 10 mostradas acima.


A principal caracterstica de um sistema de numeracao posicional e a necessidade da representacao do zero por um smbolo. Aparentemente, o zero j
a era utilizado pelos maias e pelos
babil
onios, esses por volta de 300 A.C. O nosso sistema de numeracao decimal foi inventado na
India por volta do ano 600 D.C. e, tendo sido usado por muitos seculos pelos povos arabes no
Oriente Medio, foi introduzido na Europa durante as invas
oes mouras, no perodo entre 1200 e
1600 (da o nome de algarismos ar
abicos).
Veja como o zero e importante num sistema posicional, comparado com um sistema naoposicional, como o romano, por exemplo. Nesse u
ltimo, o n
umero 401 e representado como CCCCI
(os romanos n
ao utilizavam as abreviacoes como IV para representar 4). Porem, no sistema
decimal, o 0 e necessario para distinguir 401 de 41 ele efetivamente serve como um espacador
dos algarismos, em termos das potencias de 10.
interessante notar que o sistema decimal era utilizado para representar apenas n
E
umeros
inteiros, e n
ao fracoes decimais, ate o seculo XVII. Em pases de lngua inglesa, ate hoje persiste
o uso de fracoes inteiras como 1/4, 1/8, 1/16, 3/4, como por exemplo em placas de sinalizacao
rodovi
aria e na especicacao dos di
ametros de ferramentas.
Como dissemos ao iniciarmos esse captulo, os computadores utilizam normalmente um sistema
de numeracao bin
ario, ou base 2. Esse sistema nao e, no entanto, t
ao recente quanto os computadores; na verdade, j
a era usado como base para um algoritmo de multiplicacao no Papiro Matem
atico
de Rhind, escrito ha 4,000 anos atr
as [12, p
ag. 7].

Introduca
o ao C
alculo Numerico

1.2

Aritmetica no Computador

Representac
ao em bin
ario e decimal

Genericamente, podemos dizer que um sistema de numeracao numa base admite apenas os
dgitos 0, 1, . . ., 1. Assim, o n
umero (1001, 11101)2 representa o n
umero (9, 90625)10, onde os
subscritos indicam a base do sistema de numeracao utilizado:
(1001, 11101)2

= 1 23 + 0 22 + 0 21 + 1 20 +
1 21 + 1 22 + 1 23 + 0 24 + 1 25
= 8 + 0 + 0 + 1 + 0, 5 + 0, 25 + 0, 125 + 0 + 0, 03125
= (9, 90625)10

Assim como existem n


umeros reais, em decimal, que tem parte fracion
aria com n
umero innito
de dgitos ditos irracionais tambem existem n
umeros reais em bin
ario com a mesma caracterstica. Mais ainda, existem n
umeros reais, em decimal, cuja parte fracion
aria tem um n
umero
nito de dgitos, para os quais a sua representacao em bin
ario apresenta um n
umero innito de
dgitos. Por exemplo, o n
umero 1/10 n
ao tem uma representacao bin
aria nita:
1
1
0
0
1
1
0
1
= (0, 0001100110011 . . .)2 =
+
+
+
+
+
+
+ ...
10
16 32 64 128 256 512 1024
mas o conjunto de dgitos 0011 repete-se.

1.2.1

Bits, bytes e palavras

A memoria de um computador pode ser descrita como um conjunto de palavras. A maioria


dos computadores tem sua memoria estruturada de tal forma que cada acesso de leitura ou
escrita e feito em termos de uma ou mais palavras, as quais sao acessadas por um endereco
u
nico. Tipicamente, uma palavra e composta por 32 bits; processadores de u
ltima geracao para
microcomputadores pessoais com palavras de 64 bits j
a sao uma realidade hoje.
Um bit (contracao em ingles de binary digit) e a menor unidade de informacao armazenada
em um computador, podendo representar os valores 0 ou 1. Um conjunto de 8 bits e chamado de
byte; nele, podemos armazenar 28 = 256 diferentes valores inteiros, atraves das combinacoes de 0
e 1 entre os diferentes bits.

1.2.2

Convers
ao entre representac
oes

conveniente saber como converter um n


E
umero decimal para sua representacao em bin
ario e
vice-versa. Em algumas aplicacoes envolvendo o uso de computadores, e necessario saber como
converter para decimal um valor armazenado de forma bin
aria.
Podemos efetuar a conversao de um n
umero real decimal x para bin
ario convertendo separadamente as partes inteira e fracion
aria de x ip(x) e fp(x) e depois justapor a representacao
bin
aria dessas duas partes, separando-as por um ponto. Nos algoritmos apresentados a seguir, a
conversao de decimal para bin
ario resulta em um string de caracteres 0 e 1, e nao num n
umero
formado pelos mesmos algarismos, pois nao sao representacoes equivalentes.
aria de ip(x) = (401)10 e
Suponha ent
ao o n
umero x = (401, 640625)10. A representacao bin
obtida, inicialmente, dividindo-se 401 por 2; essa divis
ao devolve um quociente e um resto. O resto
e, necessariamente, 0 ou 1. Ap
os, divide-se esse quociente por 2, obtendo-se um outro quociente
e resto. Esse processo e repetido ate que o quociente seja 1; a representacao bin
aria e formada,
ent
ao, pelo u
ltimo quociente e pelos restos, tomados na ordem inversa a que foram obtidos. A
tabela 1.1 mostra esse processo. A representacao em bin
ario de ip(x) = (401)10 e, portanto,
(401)10

= (110010001)2 =
= 1 28 + 1 27 + 0 26 + 0 25 + 1 24 + 0 23 + 0 22 + 0 21 + 1 20 =
= 256 + 128 + 16 + 1 = 401

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

Introduca
o ao C
alculo Numerico

Aritmetica no Computador
dividendo
401
200
100
50
25
12
6
3

quociente
200
100
50
25
12
6
3
1

resto
1
0
0
0
1
0
0
1

Tabela 1.1: Processo de convers


ao para bin
ario da parte inteira de (401, 640625)10; os dgitos
sublinhados compor
ao a representac
ao bin
aria.

Para convertermos a parte fracion


aria fp(x) = (0, 640625)10, fazemos um processo de multiplicaco
es sucessivas por 2. Inicialmente, multiplicamos 0, 640625 por 2, resultando em 1, 28125. O
dgito a` esquerda do ponto decimal ser
a um dos dgitos da representacao bin
aria de fp(x); como
esse dgito e igual a 1, subtramos 1 do n
umero, resultando em 0, 28125. Esse n
umero e, novamente,
multiplicado por 2, resultando em 0, 5625; como o dgito a` esquerda do ponto decimal e o 0, basta
multiplicar novamente esse n
umero por 2. O processo continua ate que o n
umero multiplicando
seja igual a 1, 0; os dgitos 0 e 1, a` esquerda do ponto decimal, formam a representacao bin
aria de
fp(x), agora na mesma ordem em que foram obtidos, conforme mostrado na tabela 1.2
multiplicando
0, 640625
0, 28125
0, 5625
0, 125
0, 25
0, 5

resultado
1, 28125
0, 5625
1, 125
0, 25
0, 5
1, 0

Tabela 1.2: Processo de convers


ao para bin
ario da parte fracion
aria de (401, 640625)10; os dgitos
sublinhados compor
ao a representac
ao bin
aria.
Logo, a representacao em bin
ario de fp(x) = 0, 640625 e
(0, 640625)10

= (0, 101001)2 =
= 1 21 + 0 22 + 1 23 + 0 24 + 0 25 + 1 26 =
= 0, 5 + 0, 125 + 0, 15625 = 0, 640625

e, portanto, podemos justapor as representacoes bin


arias de ip(401, 640625) = (110010001)2 e
fp(401, 640625) = (0, 101001)2, obtendo a representacao bin
aria de (401, 640625)10, a qual e
(110010001, 101001)2.
Os algoritmos apresentados a seguir sumarizam os processos de convers
ao de decimal para
bin
ario e de bin
ario para decimal.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

Introduca
o ao C
alculo Numerico

Aritmetica no Computador

Algoritmo 1.2.1 Convers


ao decimal para bin
ario
proc conv dec para bin(input: x; output: b)
% x eh um numero real decimal em modulo e b eh a sua
% representacao binaria, armazenada como um
% string de caracteres.
x |x|
b conv dec para bin ip(ip(x))|conv dec para bin f p(fp(x))
endproc
proc conv dec para bin ip(input: x; output: b)
% x eh um numero inteiro e b eh a sua representacao
% binaria, armazenada como um string de caracteres.
d x/2
r x 2d
xd
b num2str(r)
while x 1
d x/2
r x 2d
xd
b num2str(r)|b
endwhile
endproc
proc conv dec para bin fp(input: x; output: b)
% x eh um numero fracionario menor do que 1 e
% b eh a sua representacao binaria, armazenada
% como um string de caracteres.
x |x|
b  .
while x < 1
dx2
i d
if d > 1 then
xd1
else
xd
endif
b b|num2str(i)
endwhile
endproc

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

Introduca
o ao C
alculo Numerico

Aritmetica no Computador

Algoritmo 1.2.2 Convers


ao bin
ario para decimal
proc conv bin para dec(input: b; output: x)
% b eh um numero binario, armazenado como
% um string de caracteres e x eh a sua
% representacao em decimal.
l length(b)
p ndstr(b, . ) % Localiza onde estah o ponto decimal em b
if p = 0 then % b eh um numero binario com parte fracionaria
x conv bin para dec ip(substr(b, 1, p 1))+
conv bin para dec f p(substr(b, p, l))
else % b eh um numero inteiro
x conv bin para dec ip(b)
endproc
proc conv bin para dec ip(input: b; output: x)
% b eh um numero binario inteiro, armazenado como
% um string de caracteres e x eh a sua
% representacao em decimal.
l length(b)
x0
kl
for i = 1, 2, . . . , l
x x + str2num(b[i]) 2k
k k1
endfor
endproc
proc conv bin para dec fp(input: b; output: x)
% b eh um numero binario menor do que 1, armazenado
% como um string de caracteres (com . aa frente) e
% x eh a sua representacao em decimal.
l length(b)
x0
k1
for i = 2, 3, . . . , l % Desconsidera o 1o. caracter (.)
x x + str2num(b[i]) 2k
k k+1
endfor
endproc
Note, no entanto, que se por um lado um n
umero inteiro decimal pode ser facilmente representado por um n
umero inteiro bin
ario, a representacao da parte fracion
aria nesse sistema de
numeracao exige, normalmente, um n
umero bastante elevado de dgitos. Por exemplo, (0, 249)10
o qual difere de (0, 25)10 = (0, 01)2 por apenas (0, 001)10 n
ao tem representacao bin
aria nita
(pois essa diferenca nao pode ser representada de forma nita): seus primeiros 20 dgitos sao
(0, 0011111110111110011100 . . .)2
e veja que, como 0, 249 < 0, 25, necessariamente o primeiro dgito n
ao-nulo na representacao
bin
aria encontra-se `a partir da terceira casa bin
aria (pois (0, 25)10 = (0, 01)2 ).

1.3

Representac
ao de n
umeros em um computador

A representacao de n
umeros em um computador est
a intimamente relacionada a`s operacoes que
ser
ao efetuadas com eles. Inicialmente, consideraremos a representacao dos n
umeros inteiros e,
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

10

Introduca
o ao C
alculo Numerico

Aritmetica no Computador

depois, passaremos aos n


umeros reais.

1.3.1

Representac
ao de n
umeros inteiros

Hoje em dia, os n
umeros inteiros s
ao armazenados, tipicamente, em uma palavra de 32 bits.
umeros possveis de ser representados
Considerando apenas n
umeros positivos, temos um total de 232 n
em uma palavra desse comprimento: 0, 1, . . ., 232 2, 232 1. No entanto, e necessario que se
manipule n
umeros inteiros negativos, e, nesse caso, devemos analisar as possibilidades existentes.
O sinal (+/) e uma quantidade bin
aria e, portanto, podemos armazenar essa informacao em
um u
nico bit. Isso nos leva, portanto, a pensarmos numa representacao chamada sinal-e-m
odulo:
dos 32 bits de que dispomos, reservamos um para o sinal, e os restantes 31 representar
ao o valor
absoluto do n
umero. Essa representacao apresenta duas carateristicas:
1. A perda de um bit implica na reducao do intervalo de representacao dos n
umeros. Agora,
so podemos representar os n
umeros 0, 1, . . ., 231 1 (em modulo);
2. O n
umero zero tem duas representacoes: +0 e 0.
Suponha, por exemplo, que quisessemos efetuar +13 () 13; o resultado seria +0 ou 0? Alem
disso, seria necessario existir um circuito, dentro do processador, especco para se efetuar uma
subtracao; n
ao seria melhor que a subtracao fosse tratada como a soma de um n
umero positivo e
outro negativo?
Essa u
ltima caracterstica e que leva ao uso de uma outra representacao para n
umeros bin
arios
inteiros com sinal, chamada de complemento-de-2. Um n
umero x em complemento-de-2 e obtido
invertendo-se os bits da representacao bin
aria de | x | e somando (1)2 ao bit menos signicativo.
Para um conjunto de n bits, o intervalo de representacao de n
umeros em complemento-de-2 e
2n1 x 2n1 1 (ao passo que, em sinal-e-modulo, e (2n1 1) x 2n1 1, pois
um bit e usado para guardar o sinal de x). A tabela 1.3 mostra os inteiros representados em
complemento-de-2, bem como em sinal-e-modulo, para n = 3.

+3
+2
+1
+0
0
1
2
3
4

sinal-e-modulo
(011)2
(010)2
(001)2
(000)2
(100)2
(101)2
(110)2
(111)2

complemento-de-2
(011)2
(010)2
(001)2
(000)2

(111)2
(110)2
(101)2
(100)2

Tabela 1.3: Inteiros em sinal-e-m


odulo e complemento-de-2, para n = 3 bits; o bit mais a
` esquerda
representa o sinal no formato sinal-e-magnitude.
Em complemento-de-2, e usando uma palavra de 32 bits, um n
umero positivo x satisfaz 0
ario (cf. visto na secao anterior) e utilizada para armazen
ax 231 1, e sua representacao em bin
lo, sem modicacoes. No entanto, um n
umero negativo y e armazenado como a representacao
bin
aria do n
umero positivo 232 y, e y e tal que ele satisfaz 1 y 231 .
Suponha, novamente, a operacao +13()13. O n
umero (+13)10 tem a seguinte representacao
bin
aria
(+13)10 = (00000000000000000000000000001101)2
e (13)10 , em complemento-de-2, e escrito como:
(13)10 = (11111111111111111111111111110011)2

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

11

Introduca
o ao C
alculo Numerico

Aritmetica no Computador

Agora, para somarmos os dois, seguimos as mesmas regras da adicao em decimal; procedemos do
bit menos signicativo para o mais signicativo, somando dois bits, x e y, a cada vez. Por exemplo,
(1)2 + (1)2 = (10)2 = (2)10 , como esperado1 . No entanto, e mais costumeiro tratar o resultado
dessa soma como um bit de soma, s, e um de transporte c (do ingles carry), de acordo com a
tabela 1.4.
x
0
0
1
1

y
0
1
0
1

s
0
1
1
0

c
0
0
0
1

Tabela 1.4: Soma de dois bits.


Note que os bits s e c sao expressos em termos das operacoes logicas (ou-exclusivo) e
(multiplicaca
o l
ogica): s = x y e c = x y.
Retornando ao nosso exemplo, somamos (+13)10 e (13)10 :
( 00000000000000000000000000001101)2
+
=

( 11111111111111111111111111110011)2
(100000000000000000000000000000000)2

Veja que, a menos do bit mais signicativo do resultado (sublinhado), obtivemos o valor esperado,
ao somar um n
umero e seu simetrico: zero. O bit mais signicativo e apenas o bit de transporte,
o qual e descartado, nesse caso.
Ao somarmos dois inteiros positivos, e possvel que ocorra um overow, i.e. o resultado n
ao
pode ser representado na palavra (por exemplo, de 32 bits). O mesmo pode acontecer se somarmos
dois inteiros negativos. No entanto, se somarmos dois inteiros de sinais opostos, n
ao pode ocorrer
overow. Se considerarmos a operacao x + (y), e 0 x 231 1 e 0 y 231 , o resultado
poder
a ser sempre representado na palavra. Suponha agora que somemos os complementos-de-2
de x e y, i.e. os n
umeros n
ao-negativos x e 232 y; isso resulta em 232 + x y = 232 (y x). Se
x y, um bit de transporte correspondente a 232 tera o valor 1, mas esse pode ser descartado,
conforme visto anteriormente. Se x < y, o resultado cabe em 32 bits, e ele representa (y x) em
complemento-de-2.

1.3.2

Representac
ao de n
umeros reais

Na representacao de n
umeros reais, temos basicamente tres alternativas: representacao racional,
por ponto-xo e por ponto-utuante.
1.3.2.1

Representa
c
ao racional de n
umeros reais

A representacao racional utiliza dois inteiros numerador e denominador para representar


a fracao. Apesar de permitir representar de forma exata as fracoes, as operacoes aritmeticas envolvendo tal representacao tornam-se bastante complicadas. Em sistemas de computacao
simb
olica, como o MAPLE, Mathematica e Derive, dentre outros, essa representacao e adotada,
porem cabe ressaltar que ela nao existe em termos de hardware; esses sistemas executam por
software as operacoes aritmeticas envolvendo fracoes (incorrendo em um consideravel aumento
no tempo tomado para se efetuar as operacoes).
1 Esse

procedimento e o mesmo que ocorre no sistema decimal: o vai-um na soma de dois dgitos decimais indica
que ela excedeu a 9 e, portanto, deve ser transportado o complemento de 10 da soma (indicado pelo transporte do
1) para o dgito subseq
uente.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

12

Introduca
o ao C
alculo Numerico

1.3.2.2

Aritmetica no Computador

Representa
c
ao de n
umeros reais em ponto-fixo

A segunda alternativa e chamada de ponto-xo. Nesse caso, o ponto bin


ario ocupa uma posicao
xa (da o nome) existe uma quantidade pre-denida de dgitos bin
arios a` esquerda e `a direita
do ponto. A palavra do computador e dividida em tres campos:
1. s, sinal do n
umero (| s | = 1 bit );
2. e, dgitos a` esquerda do ponto binario (| e | = 15 bits, por exemplo);
3. d, dgitos a` direita do ponto bin
ario (| d | = 16 bits, por exemplo).
Por exemplo, o n
umero 11, 75 e representado em ponto-xo como
1 00000000001011 1100000000000000
Novamente, aqui, existem duas representacoes para o zero; porem, o principal problema reside no
fato de que o intervalo de representacao dos n
umeros e bastante pequeno, conforme veremos a
seguir.
1.3.2.3

Representa
c
ao de n
umeros reais em ponto-flutuante

A terceira maneira de representar n


umeros reais em um computador e chamada de ponto-utuante.
Ela e baseada na notac
ao cientca, i.e. um n
umero real x em base decimal e expresso na forma
x = M 10E

(1.2)

onde M e a mantissa e E e o expoente. Note que se exigirmos que S seja um n


umero que satisfaca
1
M <1
10
ent
ao podemos imaginar que o ponto decimal e movido a` esquerda ou direita, ajustando-se
convenientemente o valor de E da o nome ponto-utuante. Nesse caso, dizemos que o n
umero
x encontra-se em notac
ao cientca normalizada, pois o primeiro dgito ap
os o ponto decimal e
diferente de zero. A notacao normalizada apresenta uma restricao, a qual e a impossibilidade de
se representar o x = 0; essa restricao ser
a removida mais adiante.
A notacao cientca normalizada pode ser facilmente estendida para n
umeros reais em base
bin
aria; nesse caso, temos
1
M <1
(1.3)
x = M 2E ,
2
de onde M e um n
umero na forma
M = (0, b0 b1 b2 b3 . . .)2 ,

b0 = 1

Por exemplo, o n
umero 11, 75 pode ser representado como
(11, 75)10 = (0, 101111)2 2(+100)2
Novamente, aqui, o n
umero 0 n
ao pode ser representado, pois M 1/2, por denicao; a representacao do 0 deve ser tratada, portanto, como um caso especial.
Agora, observando a equacao (1.3), podemos ver que para representar o n
umero x naquela
forma, devemos armazenar em uma palavra quatro informacoes distintas: o sinal da mantissa, a
mantissa, o sinal do expoente e o expoente. Esses dois u
ltimos podem ser representados separadamente ou simultaneamente; nesse caso, pode-se usar complemento-de-2 (apesar dessa forma n
ao
ser utilizada usualmente) ou deslocamento (biased exponent, como no padrao IEEE-754).
ao e necessario representa-lo; isso nos
Tambem podemos observar que, como b0 = 1 em M , n
permitir
a economizar um bit da palavra que armazenar
a x.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

13

Introduca
o ao C
alculo Numerico

Aritmetica no Computador

Essa representacao, tambem chamada de sistema de ponto-utuante, e denotada por


F = (, | M |, | E |)

(1.4)

onde e a base na qual os n


umeros estao expressos, | M | e | E | sao a quantidade de dgitos
utilizados para representar a mantissa e o expoente.
Para ns ilustrativos, vamos considerar uma palavra de 32 bits, dividindo-a em tres campos:
1. s, sinal do n
umero (| s | = 1 bit );
2. E, o expoente do n
umero, expresso em complemento-de-2 (| E | = 8 bits, por exemplo);
3. M , a mantissa do n
umero, expressa na forma (0, 1b1 b2 b3 . . .)2 (| D | = 23 bits, por exemplo);
a expresso como
Nesse caso, o n
umero (11, 75)10 = (0, 101111)2 2(+100)2 ser
1 00000100 10111100000000000000000
1.3.2.4

Tratamento do zero

Num sistema de ponto-utuante em notacao cientca normalizada, a representacao do zero e um


caso especial, pois qualquer n
umero x nesse sistema e tal que sua mantissa e um n
umero M > 0.
Note que o padrao de bits
0 00000000 00000000000000000000000
n
ao representa 0, mas sim 1 (uma vez que b0 n
ao e armazenado).
Temos, entao, duas opcoes para representar o zero:
1. Representar explicitamente b0 : com isso, reduzimos a precisao, pois o bit b23 da mantissa
n
ao poder
a ser representado;
2. Escolher um certo valor de E o qual, quando o padr
ao de bits de M for 00 . . . 00, ser
a
considerado como representando o 0. Essa e a estrategia utilizada no padr
ao IEEE-754,
Note que, em ambas opcoes, persiste a representacao dupla para o zero, +0 e 0; usualmente o
sinal e desconsiderado, nessa situacao.

1.3.3

Caracteriza
c
ao de uma representac
ao

A m de caracterizarmos uma representacao de n


umeros reais, seja em ponto-xo ou pontoutuante, podemos denir algumas quantidades, as quais s
ao:
1. A precis
ao, p, e a quantidade de bits disponvel para representar o n
umero;
2. O menor n
umero representavel, em modulo, MINR;
3. O maior n
umero representavel, em modulo, MAXR;
4. O menor n
umero representavel, , tal que 1 + = 1, tambem chamado de epsilon da m
aquina
ou unidade de arredondamento da m
aquina;
5. A menor separacao possvel entre dois n
umeros representaveis, ULP (do ingles units-in-thelast-place).
Para um sistema de ponto-xo, teremos ent
ao
1. p = | e | + | d |;
2. MINR e obtido fazendo-se s = 0, e = 0 e colocando 1 no bit menos signicativo de d;
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

14

Introduca
o ao C
alculo Numerico

Aritmetica no Computador

3. MAXR e obtido fazendo-se s = 0, e e e d tendo todos os seus bits iguais a 1;


4. MINR;
5. ULPMINR.
Usando-se uma palavra de 32 bits, dividida em campos e com 15 bits e d com 16 bits, podemos
calcular essas quantidades, conforme mostra a tabela 1.5.
p
MINR
MAXR

ULP

(215 1) +

16
i=1

2i

31
216 0, 000015
= 32767, 9999847412109375 215
216
216

Tabela 1.5: Valores caracterizadores de uma representac


ao em ponto-xo.
J
a para um sistema de ponto-utuante, essas quantidades s
ao obtidas de forma diferente:
1. p = | M | + 1 (pois b0 = 1 n
ao e armazenado);
2. MINR, e obtido fazendo-se s = 0, E = 128 e M = 1/2.
3. MAXR, e obtido fazendo-se s = 0, E = 127 e M tendo todos os seus bits iguais a 1;
4. = 2(p1) , para arredondamento por corte, ou = 12 2(p1) = 2p , para arredondamento
por adicao (ver 1.3.4);
umero x na forma
5. ULP= (0, 00 . . . 01)2 2E = 2(p1) 2E = 2E , para qualquer n
M 2E .
Usando uma palavra de 32 bits dividida conforme expresso acima, essas quantidades tem os
seguintes valores, conforme mostra a tabela 1.6, onde foi calculado usando-se arredondamento
por corte. Comparando com a tabela 1.5, e f
acil notar que a representacao em ponto-utuante
p
MINR
MAXR

ULP

24
21 2128 0, 146937 1038
24
( i=1 2i ) 2127 0, 170141 1039
2(241) = 0, 119209 106
2E = 223+E

Tabela 1.6: Valores caracterizadores de uma representac


ao em ponto-utuante.
oferece um intervalo muito maior de n
umeros representaveis; alem disso, a separacao entre esses
n
umeros e bem menor.
Na representacao em ponto-utuante, e importante estabelecer o intervalo de valores possveis
para o expoente. Os limites desse intervalo s
ao o menor e o maior expoente, MINE e MAXE,
respectivamente, e sua denicao depende de como os expoentes sao armazenados, conforme a
tabela 1.7.
Cabe, aqui, uma observacao referente ao . Suponha que se desconhecam as caractersticas do
sistema de ponto-utuante de um computador ou calculadora; nesse caso, e possvel estimar o ,
usando o algoritmo 1.3.1, o qual baseia-se na denicao 1 + = 1:

MINE
MAXE

sinal-e-modulo
|E|1 1
+ |E|1 1

complemento-de-2
|E|1
+ |E|1 1

Tabela 1.7: Denic


ao dos valores do menor e maior expoentes num sistema de ponto-utuante.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

15

Introduca
o ao C
alculo Numerico

Aritmetica no Computador

Algoritmo 1.3.1 Estimac


ao de
proc macheps(output: )
s 1, 0
t 2, 0
while (t > 1, 0)
s 0, 5 s
t s + 1, 0
if (t 1, 0) then
2, 0 s
endif
endwhile
endproc
Por exemplo, executando-se esse algoritmo em uma calculadora HP-48SX, teremos como
resultado = 7, 2759576141 1012 . O processador Saturn da HP-48SX utiliza 38 bits para
representar a mantissa e, portanto, o valor calculado para e uma boa aproximacao.

1.3.4

Arredondamentos

Conforme salientado anteriormente, qualquer representacao de um n


umero real, num computador,
ser
a inexata, salvo algumas poucas excecoes. Esse erro na representacao est
a associado a` base
utilizada para representacao e ao fato de que, necessariamente, existe um n
umero nito de bits
para armazenar o n
umero.
Quanto a` base, apesar de alguns fabricantes de computadores terem utilizado outras bases (16,
no caso do IBM 360 e 8, no Burroughs B-6700), em 1960-1970, tipicamente se utiliza a base
2, por ser mais f
acil de se implementar os circuitos do processador, usando uma logica bin
aria.
Dessa forma, temos de conviver com o problema de certos n
umeros, com representacao exata em
base decimal, nao poderem ser representados de forma exata em base binaria.
O outro problema a limitacao no tamanho da palavra para representar um n
umero real
pode ser mitigada ao se aumentar a precis
ao. Qualquer linguagem de programacao cientca
oferece a possibilidade de se utilizar vari
aveis em precis
ao dupla e, algumas, em precisao qu
adrupla,
i.e., utilizamos duas ou quatro palavras para representar um n
umero real. Outra alternativa e
utilizar um processador cuja palavra contenha um maior n
umero de bits: o recem-lancado Intel
Itanium tem uma palavra de 64 bits. Note a diferenca sutil entre essas duas alternativas:
um programa que utilize vari
aveis em precis
ao simples permitir
a se trabalhar com n
umeros de
oes, se utilizarmos dois computadores com palavras de tamanhos diferentes. Por
diferentes precis
exemplo, um programa em Fortran 90 com variaveis de precis
ao simples tipo REAL tera uma
precis
ao de p = 24 num computador que utilize o Intel Pentium II, mas, num Intel Pentium
4, o mesmo programa tera uma precisao de p = 53.
Assim, com as limitacoes impostas pela escolha da base e precisao da representacao, pode-se
perceber que existe um n
umero nito de n
umeros represent
aveis ou de m
aquina; isso em marcante
contraste com os n
umeros reais, cuja quantidade e innita. Mais ainda, entre quaisquer dois
n
umeros reais, existem innitos outros n
umeros; j
a em qualquer das representacoes (ponto-xo ou
a uma diferenca de
ponto-utuante), se tomarmos dois n
umeros representaveis consecutivos, i.e., h
1 no bit menos signicativo, nao h
a qualquer outro n
umero. Assim, se posicionarmos os n
umeros
representaveis sobre a reta dos reais, veremos que existem espacos entre cada n
umero representavel.
Para demonstrar isso, considere um computador hipotetico com uma palavra de 7 bits, e duas
representacoes de n
umeros reais:
1. Ponto-xo: | s | = 1, | e | = 2, | d | = 4;
2. Ponto-utuante: | s | = 1, | M | = 5, | E | = 2.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

16

Introduca
o ao C
alculo Numerico

Aritmetica no Computador

As guras 1.1 e 1.2 mostram a distribuicao dos n


umeros de maquina ao longo da reta dos reais. Para
a representacao em ponto-xo, note que a separacao entre os n
umeros representaveis e constante:
isso e explicado pois o valor de ULP e constante. Ja na representacao em ponto-utuante, essa
separacao aumenta a` medida que um n
umero torna-se maior, ou seja, o expoente cresce. Isso pode
ser vericado na expressao para ULP, 2E , a qual depende do valor do expoente.
Outra caracterstica que pode ser observada e o menor intervalo de representacao no sistema
de ponto-xo, bem como uma regi
ao de underow muito maior do que no sistema de pontoutuante.
Observando as guras 1.1 e 1.2, podemos vericar a existencia de espacos entre os n
umeros
representaveis. Suponha, ent
ao, um n
umero como, por exemplo, 2/3 = 0, 666 . . ., cuja representacao em bin
ario e (0, 101010 . . .)2 . Para ns de explanacao consideremos apenas um sistema
de ponto-utuante, apesar das observacoes a seguir serem v
alidas para uma representacao de
ponto-xo tambem.
Como 2/3 n
ao tem representacao nita em 24 bits, temos duas opcoes para armazena-lo:
1. (0, 101010 . . . 1010)2
2. (0, 101010 . . . 1011)2
o primeiro n
umero e obtido descartando-se os bits b24 b25 . . .; j
a o segundo obtem-se descartando-se
os bits em excesso e somando 1 a b24 .
A situacao que temos e, portanto, a seguinte: sempre que um n
umero e n
ao-represent
avel,
devemos escolher outro entre os dois n
umeros de maquina, mais pr
oximos daquele. Esses dois
n
umeros s
ao arredondamentos do n
umero original, chamados de arredondamento por corte e por
adica
o, correspondentes aos itens 1 e 2 acima, respectivamente.
Como estamos aproximando um n
umero n
ao-representavel por um outro, o mais pr
oximo dele,
nossa representacao daquele n
umero traz associada a si um erro, o qual pode ser medido de duas
formas. Quando um n
umero real x e aproximado por um n
umero x, o erro e x x
. O erro absoluto
e denido como
| x x |
(1.5)
e o erro relativo e dado por



 xx


 x .

(1.6)

Esse u
ltimo e o mais utilizado por permitir uma comparacao mais justa entre quantidades com
diferentes relacoes de magnitude2 .
Vejamos formalmente, agora, quais os erros associados a esses arredondamentos. Chamemos
umeros de maquina correspondentes aos arredondamentos por corte e por adicao,
de xc e xa os n
respectivamente, de um n
umero n
ao-representavel x, os quais satisfazem a relacao
xc < x < xa
pois
xc

= 0, 1010 . . . 1010|

x
xa

= 0, 1010 . . . 1010|1010 . . .
= 0, 1010 . . . 1011|

porem, x pode estar mais pr


oximo de xc ou de xa , conforme mostrado na gura 1.3.
Escrevendo os n
umeros xc e xa como
xc
xa

= (0, b0 b1 . . . b22 b23 )2 2E




= (0, b0 b1 . . . b22 b23 )2 + 224 2E

(1.7)
(1.8)

podemos calcular os erros absoluto e relativo associados aos dois arredondamentos como
2 Por exemplo, um erro de 1m na medi
c
ao da dist
ancia entre a Terra e J
upiter
e pequeno; porem, um erro de
5cm numa incis
ao num corpo humano pode ser considerado bastante alto.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

17

Introduca
o ao C
alculo Numerico

Aritmetica no Computador

Figura 1.1: Distribuica


o de n
umeros de m
aquina em um sistema de ponto-xo; observe que a
dist
ancia entre dois n
umeros represent
aveis e a mesma.

Figura 1.2: Distribuica


o de n
umeros de m
aquina em um sistema de ponto-utuante; aqui, a
dist
ancia entre dois n
umeros represent
aveis aumenta a
` medida que se afastam do 0.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

18

Introduca
o ao C
alculo Numerico

Aritmetica no Computador

Figura 1.3: Um n
umero n
ao-represent
avel x pode ser melhor representado por xc ou xa .
Aqui, consideramos um sistema de ponto-utuante com quatro dgitos na mantissa, com xc =
0, 6875 = (0, 1011)2 e xa = 0, 75 = (0, 1100)2; no diagrama a
` esquerda, x = 0, 70625 =
` direita, x = 0, 734375 = (0, 101111)2.
(0, 10110100110011 . . .)2 e, a
Erros associados ao arredondamento por corte Se o arredondamento por corte foi escolhido, ent
ao x encontra-se `a esquerda do ponto medio do intervalo [xc , xa ]. Ent
ao:
| x xc |

 x xc

 x






1
1
| xa xc | = | (M + 224 ) 2E M 2E | =
2
2
21 224 2E = 2E25
2E25
225
225
1
1 = 224 ... M
=
E
M 2
M
2
2

(1.9)
(1.10)
(1.11)

Erros associados ao arredondamento por adi


c
ao Se o arredondamento por adicao foi escolhido, ent
ao x encontra-se `a direita do ponto medio do intervalo [xc , xa ]. Por analogia,
escrevemos
| x xa | 2E25


 x xa 
24


 x  2
Generalizando, podemos dizer que o erro relativo entre x e seu arredondamento x e


 x x 


 x 

(1.12)
(1.13)

(1.14)

ou

x x
(1.15)
x
Uma medida muito utilizada para se determinar a qualidade numerica de um valor e o n
umero
de dgitos signicativos, DIGSE. Aplicando logaritmos aos dois lados da expressao 1.14, temos


 x (x) 
 log10

log10 
(1.16)

x
x = (x) = x(1 + ),

| | ,

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

19

Introduca
o ao C
alculo Numerico
e DIGSE e denido como

Aritmetica no Computador



 x (x) 


DIGSE(x, (x)) = log10 

x

(1.17)

Para uma precis


ao p = 24, log10 224 7, ou seja, temos no mnimo sete casas decimais de
precis
ao.

1.3.5

Opera
c
oes aritm
eticas de ponto-flutuante

Na soma e subtracao, os expoentes dos dois operandos devem ser iguais. Para tal, seleciona-se o
maior dos dois expoentes, e a mantissa e expoente do outro operando s
ao ajustados de tal forma
a coincidir os expoentes. Por isso, as operacoes aritmeticas s
ao sempre efetuadas com o dobro de
bits utilizados para armazenar os n
umeros. Uma vez feito o ajuste dos expoentes, basta calcular
(a rp ) (b rp ) = (a b) rp
A multiplicacao e a divis
ao sao calculadas como
(a rp ) (b rq )
(a rp ) (b rq )

= ab rp+q
= a b rpq

Como essas operacoes sao efetuadas em v


arias etapas, a cada parcela do processo, deslocam-se os
bits `
a esquerda, de forma a sobrar bits menos signicativos; a cada deslocamento, o expoente deve
ser modicado adequadamente.
1.3.5.1

Erros em opera
c
oes aritm
eticas de ponto-flutuante

Sempre que dois n


umeros de ponto-utuante sofrerem o efeito de uma das quatro operacoes aritmeticas, as seguintes etapas s
ao efetuadas:
1. A operacao e feita de forma correta, i.e., com o dobro do n
umero de bits usados para
armazenar cada operando;
2. O resultado e normalizado;
feito o arredondamento, de forma que o resultado normalizado possa ser armazenado na
3. E
palavra.
O exemplo a seguir mostra por que deve-se efetuar a normalizacao antes do arredondamento.
Exemplo 1.1 Considere x = 0, 45230 102 e y = 0, 25470 103 , em um sistema de pontoutuante com cinco casas na mantissa. O resultado de x y, sem normalizac
ao, e
x y = 0, 0000011520
Se efetuarmos o arredondamento, sem normaliza-lo, o resultado ser
a 0!
Como mostramos anteriormente, a representacao em ponto-utuante traz associada a si um
erro. O exemplo a seguir mostra, no entanto, que uma u
nica operacao aritmetica simples tem um
erro que n
ao excede a .
oes
Exemplo 1.2 Considere x = 0, 31426 103 e y = 0, 92577 105 e, calculando as quatro operac
aritmeticas, temos:
x+y

= 0, 9289100000 105

xy
xy

= 0, 9226274000 105
= 0, 2909324802 108

xy

= 0, 3394579647 102

e, arredondando para cinco casas decimais, por adic


ao, temos
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

20

Introduca
o ao C
alculo Numerico

Aritmetica no Computador

(x + y)
(x y)
(x y)
(x y)

0, 92891 105
0, 92263 105
0, 29093 108
0, 33946 102

erro relativo
8, 5 106 < 105
2, 3 106 < 105
2, 8 106 < 105
6, 0 106 < 105

onde 105 e o dessa representaca


o em cinco casas decimais.
De forma generica, podemos dizer que, se x e y sao n
umeros representaveis, ent
ao para uma
operacao aritmetica qualquer ,
(x  y) = (x  y)(1 + ),

||

(1.18)

e, se x e y n
ao sao n
umeros representaveis, ent
ao
( (x)  (y)) = (x(1 + 1 )  y(1 + 2 )) (1 + 3 ),

| 1,2,3 |

(1.19)

A equacao (1.19) nos diz que o erro associado ao encadeamento de operacoes aritmeticas pode
ser maior do que . Considere o exemplo abaixo:
(x(y + z)) = (x( (y + z))(1 + 1 ),

| 1 | 224

= (x(y + z)(1 + 2 ))(1 + 2 ), | 2 | 224


= x(y + z)(1 + 1 + 2 + 1 2 )
x(y + z)(1 + 1 + 2 ) ... | 1 + 2 | 223
x(y + z)(1 + 3 ),

| 3 | 223 , 1 2  3

Esse exemplo nos leva a supor que, caso a quantidade de operacoes aritmeticas a serem feitas
seja muito grande, entao o erro crescer
a proporcionalmente. O teorema a seguir mostra que essa
hip
otese e verdadeira.
Teorema 1.3.1 Sejam x0 , x1 , . . ., xn n
umeros represent
aveis positivos, e a unidade
nde arredondamento da m
aquina. Ent
ao, o erro relativo de arredondamento ao se calcular
i=0 xi na
ordem natural, i.e. x0 + x1 + . . . + xn , e de no m
aximo (1 + )n 1 ou, aproximadamente, n.
ormulas
Prova: Seja Sk = x0 + x1 + . . . + xk e (Sk ), as quais podem ser representadas pelas f
de recorrencia

S0
= x0
(1.20)
Sk+1 = Sk + xk+1 , k 0

= x0
(S0 )
(1.21)
(Sk+1 ) = ( (Sk ) + xk+1 ), k 0
e chamemos de k e k aos erros relativos associados a (Sk ) e (Sk+1 ),
k

(Sk ) Sk
Sk
(Sk+1 ) ( (Sk ) + xk+1 )
(Sk ) + xk+1

(1.22)
(1.23)

de onde
k+1

=
=
=

(Sk+1 ) Sk+1
Sk+1
( (Sk ) + xk+1 )(1 + k ) (Sk + xk+1 ) .
.. (Sk ) = Sk k + Sk (por (1.22)) ...
Sk+1
(Sk (1 + k ) + xk+1 )(1 + k ) (Sk + xk+1 )
Sk+1

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

21

Introduca
o ao C
alculo Numerico

Aritmetica no Computador

e, rearranjando os termos, obtemos


k+1 = k + k

Sk
Sk+1

(1.24)

Como, por denic


ao, Sk < Sk+1 e | k | ,
| k+1 | + | k |(1 + ) = + | k |,

=1+

podemos ent
ao escrever:
| 0 | =

| 1 |
| 2 |

| 3 |
..
.

+ ( + ) = + + 2

ou
| n |
=
=
=
=

+ ( + ) = + + 2 + . . . + n1 =
(1 + + . . . + n1 ) =
n 1
=

1
(1 + )n 1
=

n
(1 + ) 1

e, pelo bin
omio de Newton, tem-se

(1 + )n 1 = 1 +

1.4

n
1


=

n
2

2 + . . . 1 n.

Perda de dgitos significativos

Apesar de erros de arredondamento serem inevitaveis e difceis de controlar, existem alguns tipos
de erros, em computacoes numericas, que podem ser evitados.
Por exemplo, suponha a subtracao de dois n
umeros x e y pr
oximos entre si:
x =
y
xy

=
=

.3721478693
.3720230572
.0001248121

Se o computador utilizado oferecer apenas cinco dgitos decimais na mantissa, teramos:


(x) =
(y) =

.37215
.37202

(x) (y) =

.00013

Nesse caso, o erro relativo e bastante grande, da ordem de 4%.

1.4.1

Subtra
c
ao de valores quase id
enticos

Como regra, devemos evitar situacoes que levem `a subtracao de valores quase identicos - normalmente causados por express
oes inadequadas do ponto de vista numerico.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

22

Introduca
o ao C
alculo Numerico

Aritmetica no Computador

Exemplo 1.3 Considere a express


ao

x2 + 1 1
(1.25)

Ora, para x < 1, teremos x2  1 e, portanto, x2 + 1 1. No entanto, se reescrevermos a


express
ao acima como


x2 + 1 + 1
x2
2

y
x +11
=
(1.26)
2
2
x +1+1
x +1+1
y

eliminaremos esse problema. Por exemplo, em uma calculadora HP-48SX, se x = 106 , teremos:


0, 0000012 + 1 1 = 1012 + 1 1 = 1 1 = 0
y
0, 0000012
1012
1012
= 5 1013
y 
=
=
2
1+1
0, 0000012 + 1 + 1
Por que, no exemplo acima, 1012 + 1 = 1? Ocorre que, se um dos operandos for menor do
que , ent
ao ele ser
a desconsiderado (pois e o menor n
umero represent
avel tal que 1 + = 1).
oco na
Como (106 )2 < (= 7, 2759576141 1012 na HP-48SX), houve o cancelamento catastr
subtrac
ao.
Exemplo 1.4 Considere as express
oes para as duas razes de uma equac
ao de segundo grau,

b + b2 4ac
(1.27)
x1 =
2a
b b2 4ac
x2 =
(1.28)
2a

Se b2  4ac, ent
ao a express
ao b2 4ac envolve cancelamento e b2 4ac | b |, de tal forma
que as express
oes sofrer
ao cancelamento catastr
oco, dependendo do sinal de b.
Nesse caso, se multiplicarmos as equac
oes acima por express
oes do tipo

b + b2 4ac
b b2 4ac

,
b + b2 4ac
b b2 4ac
poderemos calcular as razes como segue:
1. Se b2  4ac e b > 0 ent
ao x2 e calculado por (1.28) e
x1 =

2c
c

=
2
ax
b b 4ac
2

(1.29)

2. Se b2  4ac e b < 0 ent


ao x1 e calculado por (1.27) e
x2 =

2c
c

=
2
ax1
b + b 4ac

(1.30)

Por exemplo, seja a equac


ao x2 106 x + 1 = 0. Calculando x1 e x2 atraves das express
oes
usuais, utilizando o software Maple com precis
ao de 10 dgitos decimais, em um computador
Pentium II, temos:

106 + 106
106 + 1012 4
=
= 106
x1 =
2
2

106 106
106 1012 4
=
=0
x2 =
2
2

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

23

Introduca
o ao C
alculo Numerico

Aritmetica no Computador

A raiz x2 foi calculada de forma errada, pois sofreu cancelamento catastr


oco. No entanto, se
recalculamo-la usando (1.30), temos
x2 =

106

2
2

= 106
= 6
12
10 + 106
+ 10 4

Ao substituirmos esse valor na equac


ao, teremos 1012 1 + 1, o qual pode ser considerado como
aproximando 0 para a precis
ao utilizada. Note que, para esse exemplo particular, x1 n
ao e raiz da
equac
ao, pois 1012 106 106 + 1 = 0.

1.4.2

Teorema sobre a perda de precis


ao

Uma questao que surge a partir dos exemplos anteriores e a seguinte: Quantos dgitos bin
arios
signicativos s
ao perdidos na subtraca
o x y quando x y? O teorema a seguir nos da limitantes
extremos para o n
umero de dgitos bin
arios perdidos nessa situacao, baseado na relacao | 1 y/x |,
o que nos d
a uma medida de quao pr
oximo x e de y.
Teorema 1.4.1 Se x e y s
ao n
umeros em ponto-utuante bin
arios positivos, normalizados, tal
que x > y e
y
2q 1 2p
x
ent
ao no m
aximo q e no mnimo p dgitos bin
arios signicativos s
ao perdidos na subtrac
ao x y.
Prova. Considerando apenas o extremo superior da desigualdade, temos que x e y s
ao da forma


1
n
x = r2 ,
r<1
2


1
m
s<1
y = s2 ,
2
Como x > y, por hip
otese, o expoente de y dever
a ser igualado ao de x antes de se realizar a
subtrac
ao (note que, como n
ao pode haver dgitos `
a esquerda do ponto bin
ario, sempre se faz com
que o menor n
umero iguale seu expoente ao maior, introduzindo zeros imediatamente a
` direita do
ponto bin
ario). Logo, y deve ser escrito como
y = (s 2mn ) 2n
e, da,
x y = (r s 2mn ) 2n
A mantissa desse n
umero satisfaz a seguinte relac
ao:



s 2m
y
mn
rs2
< 2p
=r 1
=
r
1

r 2n
x
Para normalizar a representac
ao de x y, um deslocamento de ao menos p bits para a esquerda
e necess
ario. Ent
ao, ao menos p zeros s
ao inseridos ao nal da mantissa, efetivamente perdendo
p bits de precis
ao.
O exemplo a seguir ilustra a utilizacao desse resultado.
Exemplo 1.5 Suponha uma mantissa de 5 dgitos decimais e que x = 0, 31457 105 e y =
alculos sejam efetuados com o dobro de dgitos. Ora, para calcular x y,
0, 31453 104 e que os c
temos:
x =
y =

0, 31457 00000 105


0, 03145 30000 105

xy =
(x y) =

0, 28311 70000 105


0, 28311 105

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

24

Introduca
o ao C
alculo Numerico

Aritmetica no Computador

como foi necess


ario inserir um dgito 0 ap
os o ponto decimal de y, espera-se que se perder
a um
dgito ao fazer a normalizac
ao, como pode-se vericar pelo resultado. O erro relativo, no caso, e


 0, 283117 105 0, 28311 105 

 = 2, 4724760435 105 105


0, 283117 105
o que demonstra que, efetivamente, houve perda de dgitos signicativos na subtrac
ao.
Exemplo 1.6 Considere a express
ao y = x senx. Como senx x para x  1, ocorrer
a perda
de dgitos signicativos em y. Proponha uma forma alternativa para calcular y e estipule um
intervalo para x no qual pode-se utilizar a express
ao original.
Solu
c
ao: Usando a serie de Taylor para senx, temos:
y

= x senx


x5
x7
x3
+

+ ...
= x x
3!
5!
7!
 3

x
x5
x7
=

+
...
3!
5!
7!

e, para x 0, podemos truncar a serie como segue, utilizando apenas quatro termos:
y = (x3 /6)(1 (x2 /20)(1 (x2 /42)(1 x2 /72)))
Usando o Teorema da Perda de Precis
ao, podemos exigir que apenas um bit seja perdido se
escrevermos
senx
1
1
, x > 0,
x
2
Essa desigualdade e satisfeita se | x | 1, 9 e, nessa situac
ao, podemos usar a express
ao original.
Para 0 < x < 1, 9, devemos usar a express
ao baseada na serie truncada de Taylor, pois ela elimina
o problema.
ao, teremos:
Suponha x = 106 em uma calculadora HP-48SX. Ent
y =
y =

1.5

106 sen(106 ) = 0, 000001 0, 000001 = 0


1, 66666666667 1019

Condicionamento de um problema

O condicionamento de um problema diz respeito a quao exato podemos resolve-lo em uma dada
precis
ao de ponto-utuante, independentemente do algoritmo utilizado para resolve-lo.
Seguindo a derivacao em [12], e supondo que desejamos avaliar uma funcao y = f (x), j
a
sabemos que qualquer operacao de ponto-utuante acarretar
a a existencia de um erro. Logo, o
que efetivamente calcula-se e uma aproximacao
(y) = (f ( (x)))
mas, por simplicidade, assumimos que (f ) = f . Podemos calcular, ent
ao, o erro relativo em y
como
f ( (x)) f (x)
x
(x) x
(y) y
=

.
y
(x) x
f (x)
x
O termo

f ( (x))f (x)
(x)x

e uma aproximacao para f  (x). Assim,


(y) y
(x) x
f (x)
y
x

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

(1.31)

25

Introduca
o ao C
alculo Numerico

Aritmetica no Computador

onde
f (x) =

| x | | f  (x) |
| f (x) |

(1.32)

a qual e chamada de n
umero de condic
ao de f em x. Esse fator e que mede o quanto os erros de
arredondamento em x sao amplicados ao se avaliar f (x).
Ent
ao, para se avaliar o n
umero de dgitos corretos em (y), aplicamos logaritmos aos dois
membros da equacao (1.31),




(y) y
(x) x
log10
log10
log10 f (x)
y
x


(x)x
Note que log10
e aproximadamente igual a 7 para p = 24 e a 16 para p = 53.
x

1.6

Computa
c
oes est
aveis e inst
aveis

Um processo numerico e dito inst


avel se pequenos erros ocorridos num passo sao ampliados nos
passos seguintes, degradando a exatid
ao do processo.
Considere, por exemplo, a seq
uencia de n
umeros dada por

x0 = 1
x1 = 13

4
xn+1 = 13
n1
3 xn 3 xn1 ,
a qual gera os n
umeros
xn =
pois x0 =

10
3

= 1, x1 =

11
3

xm+1

 n
1
3

= 13 . Para n = m + 1, temos:
=
=

 m
 m1
13
4
13 1
4 1
xm xm1 =

3
3
3 3
3 3
 m1 
  m+1
1
13 4
1

=
3
3
3
3

Utilizando a forma de recorrencia acima para gerar os n


umeros, teremos:
n

xn

(1/3)n

erro relativo

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17

1,000000000000000000000
0,333333333333333310000
0,111111111111110940000
0,037037037037036258000
0,012345679012342514000
0,004115226337435884400
0,001371742112432145600
0,000457247370624785240
0,000152415789464541850
0,000050805260179967644
0,000016935074827137338
0,000005644977344304949
0,000001881468722471661
0,000000626394671637267
0,000000205751947132609
0,000000056398875391618
-0,000000029940802813135
-0,000000204941979379076

1,000000000000000000000
0,333333333333333310000
0,111111111111111100000
0,037037037037037028000
0,012345679012345677000
0,004115226337448558300
0,001371742112482852900
0,000457247370827617560
0,000152415790275872500
0,000050805263425290837
0,000016935087808430279
0,000005645029269476759
0,000001881676423158920
0,000000627225474386307
0,000000209075158128769
0,000000069691719376256
0,000000023230573125419
0,000000007743524375140

0,000000000000000000000
0,000000000000000000000
0,000000000000001498801
0,000000000000020795865
0,000000000000256154473
0,000000000003079755201
0,000000000036965598551
0,000000000443594296061
0,000000005323140444549
0,000000063877696404890
0,000000766532366861972
0,000009198388410596376
0,000110380660937172300
0,001324567931256533500
0,015894815175089418000
0,190737782101085550000
2,288853385213039700000
27,466240622556484000000

Os valores acima demonstram que o algoritmo e instavel, e qualquer erro presente em xn e


a a possibilidade de que o erro existente em x3 (da
multiplicado por 13/3 em xn+1 . Portanto, h
ordem de 1015 ) seja propagado para x17 por um fator (13/3)14 109 ; ou seja, o erro em x17
devido unicamente a x3 pode ser de 104 , que n
ao e desprezvel. Alem disso, os erros devido aos
demais n
umeros x4 , x5 , . . . , xk sao propagados para x17 por fatores da forma (13/3)k .

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

26

Introduca
o ao C
alculo Numerico

1.7

Aritmetica no Computador

Desastres causados por erros aritm


eticos no computador

Esse captulo apresentou os conceitos ligados a` computacao numerica; dentre estes, certamente o
conceito de erro associado a qualquer calculo numerico e o mais importante. Como nao h
a como
evit
a-los, e necessario que o programador e/ou analista numerico saiba como trata-los de forma
que a ocorrencia deles nao leve a falhas catastr
ocas. Infelizmente, isso nem sempre e levado em
conta, no dia-a-dia, e desastres ocorrem, como os dois que citamos a seguir.

1.7.1

Falha do sistema de msseis Patriot

Durante a Guerra do Golfo, em 1991, o Iraque lancou in


umeros msseis terra-terra Scud (de
fabricacao sovietica) contra Israel e Ar
abia Saudita. A m de se protegerem contra esses ataques,
as tropas norte-americanas instalaram baterias de msseis terra-ar Patriot, os quais haviam
sido projetados no incio da decada de 70 para destrurem msseis cruzeiro e aeronaves sovieticas
(voando a uma velocidade media de 2Mach), numa eventual guerra entre a OTAN e o Pacto de
Varsovia.
Uma bateria de msseis Patriot consiste de uma unidade de controle computadorizada; de
um radar de deteccao; e de ate 6 lancadores qu
adruplos de msseis. A unidade de controle dispoe
de um rel
ogio que marca o tempo em decimos de segundo, armazenados em uma palavra inteira de
24 bits; os calculos de determinacao das janelas de conrmacao e de engajamento (regi
oes no ceu
dentro do qual o possvel alvo deve ser detectado pelo radar para que possa os msseis Patriot
sejam lancados) sao feitos em ponto xo, tambem com 24 bits.
No dia 25 de fevereiro de 1991, uma bateria Patriot instalada em Dharan, na Ar
abia Saudita,
deixou de interceptar um mssil Scud que se aproximava. Como resultado, 28 soldados norteamericanos foram mortos devido a` explosao do mssil Scud.
Os resultados da investigacao, de acordo com [11], indicaram que os msseis Patriot nao
engajaram o Scud (apesar dos radares haverem detectado o mssil iraquiano) devido a um erro
numerico de arredondamento. O tempo medido pelo rel
ogio da unidade de controle e multiplicado
por 1/10 para representar o tempo em segundos, e armazenado em 23 bits, no formato de ponto
xo; ocorre que 1/10 e um n
umero que n
ao tem representacao nita em bin
ario:
(1/10)10 = (0, 0001 1001 1001 1001 1001 1001 1001 100 . . .)2
Como a palavra usada para armazenar o rel
ogio e de 24 bits, o erro e de aproximadamente
(0, 0000 0000 0000 0000 0000 0001 100 . . .)2 (0, 0000 0009 5)10.
obvio que, a` medida que o tempo de operacao da bateria de msseis aumenta, maior sera
E
o erro no tempo calculado. Como esse tempo e usado para se calcular as janelas de deteccao e
engajamento de um alvo, isso ira causar um deslocamento da janela para baixo (i.e., a altitude na
qual se espera que o alvo aparecer
a na pr
oxima varredura do radar da bateria ser
a menor do que
a que ele se encontra). Com isso, o mssil continuar
a trafegando em direcao ao seu alvo, porem
n
ao ser
a detectado e, portanto, os msseis Patriot n
ao ser
ao disparados.
Ocorre que, devido a`s caractersticas do sistema Patriot, a m de se maximizar as chances
de derrubada do mssil atacante, este deve encontrar-se no meio da janela de engajamento, a
qual tem um comprimento de 274m. No dia 11 de fevereiro de 1991 (duas semanas antes da falha
do sistema), vericou-se que apos 8h de operacao contnua, a janela sofria um deslocamento de
55m; por extrapolacao, ap
os 20h de uso contnuo, esse deslocamento seria de 137m, e a partir de
ent
ao, n
ao seria mais possvel detectar um mssil atacante.
Quando ocorreu a falha, a bateria que deveria ter engajado o Scud estava operando continuamente por 100h! Dessa forma, o erro acumulado era de
0, 000000095 100 3600 10 = 0, 34s.
Um mssil Scud viaja a uma velocidade terminal de 1.676m/s; em 0, 34s, ele percorre a dist
ancia
de 569, 84m. O deslocamento da janela de deteccao, ap
os 100h de operacao, era de 687m. Logo,
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

27

Introduca
o ao C
alculo Numerico

Aritmetica no Computador

n
ao havia como o Scud ser detectado, j
a que a janela encontrava-se a uma altitude inferior a`
dele.

1.7.2

Explos
ao do foguete Ariane 5

No dia 4 de junho de 1996, o primeiro foguete Ariane 5, construdo pela Agencia Espacial Europeia,
foi destrudo pelo sistema de controle de falha apenas 40s ap
os o lancamento da sua base em
Khourou, na Guiana Francesa. O Ariane 5 havia sido desenvolvido ap
os 10 anos de trabalho, a
um custo de 7 bilh
oes de dolares. O custo do foguete, bem como da carga u
til transportada, era
de 500 milh
oes de dolares.
Os resultados da investigacao, ap
os duas semanas do incidente, indicaram que o problema
encontrava-se no software de guiagem inercial. Um n
umero em ponto-utuante, armazenado
numa palavra de 64 bits, e que representava a velocidade horizontal em relacao `a plataforma de
lancamento, foi convertido para um n
umero inteiro, no formato sinal-e-magnitude, de 16 bits.
Como a velocidade era superior a 32.768 (o maior n
umero representavel em 15 bits), ocorreu uma
falha na conversao e o programa deixou de funcionar.

1.8

Exerccios

Exerccio 1.1 Considere um sistema de ponto-utuante, F = (2, 24, 8), no qual os n


umeros
apresentam uma mantissa tal que 1 M < 2. Determine os valores caracterizadores desse
sistema.
Exerccio 1.2 Suponha que alguem recebeu a tarefa de projetar o sistema de ponto-utuante
de um computador com uma palavra de 16 bits, para uma aplicac
ao envolvendo a medic
ao de
temperaturas pr
oximas a zero. Qual o tamanho dos campos M e E que seria mais indicado?
Justique a sua resposta.
Exerccio 1.3 Mostre que, normalmente, [ (xy)z] = [x (yz)]; escreva um exemplo e um
contra-exemplo.

Exerccio 1.4 Se no m
aximo 2 bits de precis
ao podem ser perdidos ao se calcular y = x2 + 11,
qual a restric
ao que deve ser imposta a x?
Exerccio 1.5 Calcule os valores de x para os quais f (x) = sen(x) pode ter um grande n
umero
de condic
ao.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

28

Captulo 2

C
alculo de Razes de Funco
es
N
ao-Lineares
2.1

Introdu
c
ao

Consideramos aqui o problema de se determinar um valor real para o qual uma determinada funcao
f (x) se anula. Seja ent
ao
f : IR
IR
x  f (x)
e deseja-se determinar um valor IR tal que | f () | 0. O processo de busca de e feito
basicamente de duas formas. Na primeira, determina-se uma seq
uencia de intervalos que contem
; na segunda, dada uma estimativa inicial x0 para , rena-se sucessivamente essa estimativa
atraves de alguma formula, ate que se obtenha uma boa aproximacao para a raiz desejada. Existem
in
umeros metodos para se determinar tais razes, baseados nessas duas formas de busca.
Note que esses metodos n
ao determinam todas as razes de f (x) = 0. Para ter uma ideia
mais precisa da localizacao das razes de uma equacao e preciso encontrar uma seq
uencia de
subintervalos distintos, tais que cada subintervalo contivesse exatamente uma raiz real e cada raiz
real estivesse contida em um subintervalo. Este processo e chamado de separac
ao das razes de
uma funca
o.
Teorema 2.1.1 Teorema de Bolzano: Seja f uma func
ao contnua em um intervalo [a, b].
Ent
ao,
1. Se f (a)f (b) < 0, ent
ao existe um n
umero mpar (1, 3, 5, . . .), de razes reais em [a, b];
2. Se f (a)f (b) > 0, pode existir um n
umero par (0, 2, 4, . . .) de razes reais em [a, b].


3. Supondo que f e sua derivada f sejam contnuas em [a, b] e que o sinal de f seja constante
neste intervalo tem-se:
(a) se f (a)f (b) < 0, ent
ao existe uma u
nica raiz real em [a, b];
(b) se f (a)f (b) > 0, ent
ao n
ao existe raiz real em [a, b].
Exemplo 2.1 Determine gracamente os intervalos que contem cada uma das razes reais das
funco
es f (x) = x3 sen(x) e p(z) = z 3 4z 2 + 4z 1.
Alem disso, e possvel que existam razes de multiplicidade maior do que um; nesse caso, ainda
que um metodo consiga determinar uma delas, a determinacao da multiplicidade dela deve ser
feita posteriormente. Outro problema que afeta a determinacao numerica de uma raiz e quando
existem duas razes tao pr
oximas numericamente que a n
ao se pode garantir para qual delas um
determinado metodo ir
a convergir.
29

Introduca
o ao C
alculo Numerico

Razes de Func
oes N
ao-Lineares

Nesse captulo, apresentaremos os metodos da bisseccao, da posicao falsa, de Newton e da


secante.

2.2

M
etodo da Bissec
c
ao

O metodo da bisseccao e um dos mais metodos mais simples para se obter uma raz de uma funcao.
Ele baseia-se na divisao sucessiva, ao meio, de um intervalo [a, b], no qual e garantido que h
a uma
raiz da equacao f (x) = 0, i.e., sign(f (a)) = sign(f (b)) - da o seu nome.
Formalmente, se f e uma funcao contnua no intervalo [a, b], e se f (a)f (b) < 0, ent
ao f tem
um zero em (a, b). Como h
a troca de sinal da funcao f avaliada nos extremos do intervalo, em
algum ponto a < x < b a curva da funcao f cruzou o eixo das abscissas e, portanto, existe ao
menos uma raiz em (a, b).
Considere, agora, a gura 2.1.

Figura 2.1: O metodo da bisseccao escolhe o intervalo esquerdo.


Veja que os intervalos [a, b], [b, c], [c, d] e [d, e] contem as quatro razes mostradas, e que
f (a)f (b) < 0; f (b)f (c) < 0; f (c)f (d) < 0; e f (d)f (e) < 0. No entanto, se tivessemos considerado o
intervalo [a, e], teramos f (a)f (e) > 0, e poderamos concluir que nao existem razes neste intervalo,
o que e obviamente errado. Com isso, mostramos que a condicao f (a)f (b) < 0 e necessaria, porem
n
ao suciente. Devemos, portanto, selecionar intervalos que contenham razes, geralmente com o
auxlio de um gr
aco da funcao.
O metodo da bissecao funciona da seguinte maneira: dados os extremos do intervalo, a e b
ao,
(a < b), calcula-se um ponto c como o ponto medio daquele intervalo, c = a+b
2 . Verica-se, ent
se f (a)f (c) < 0; se a desigualdade for satisfeita, existe um zero no intervalo (a, c). Caso contr
ario,
vericamos se f (c)f (b) < 0 e, em sendo verdade, temos um zero (no mnimo) entre (c, b).
Se, em um dado intervalo [a, b], com f (a)f (b) < 0, existir mais de uma raiz, n
ao e possvel
determinar, de antem
ao, qual raiz o metodo da bisseccao localizar
a, conforme pode ser visto nas
guras 2.2 e 2.3.
Obviamente, se f (c) = 0, teremos obtido um dos zeros no intervalo [a, b]. No entanto, conforme
vimos anteriormente, devido a erros de arredondamento, dicilmente uma quantidade e exatamente
igual a zero; devemos, entao, testar se | f (c) | < , onde  e uma tolerancia previamente especicada.
Existem, no entanto, situacoes em que, devido `a natureza da funcao, aquela condicao n
ao e
satisfeita. Considere a gura 2.4-(a); veja que f (a)f (b) < 0 e que f (0) = 0. Porem, como os dois
ramos da curva sao assntotas ao eixo das ordenadas, os intervalos gerados poder
ao ser tais que
f (c) > 0, mas | bn an | tende a zero. Portanto, e interessante considerarmos um outro criterio
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

30

Introduca
o ao C
alculo Numerico

Razes de Func
oes N
ao-Lineares

Figura 2.2: O metodo da bisseccao escolhe o intervalo esquerdo.

Figura 2.3: O metodo da bisseccao escolhe o intervalo direito.


de parada: se | bn an | < (onde e, tambem, previamente especicado), entao o processo de
aproximacao e interrompido. J
a na gura 2.4-(b), temos a situacao contr
aria.
Um algoritmo para o metodo da bisseccao pode ser escrito como segue:

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

31

Introduca
o ao C
alculo Numerico

Razes de Func
oes N
ao-Lineares

Figura 2.4: (a) | f (c) | >  e | bn an | < ; (b) | f (c) | <  e | bn an | > .

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

32

Introduca
o ao C
alculo Numerico

Razes de Func
oes N
ao-Lineares

Algoritmo 2.2.1 Metodo da bissecc


ao
ao(input: a, b, kmax , , ; output: c)
proc bissecc
u f (a)
v f (b)
eba
if (sign(u) = sign(v)) then
n
ao pode proceder
else
k1
w1
while ((k kmax ) AND (| e | ) AND (| w | ))
e e/2
ca+e
w f (c)
if (sign(w) = sign(u)) then
bc
vw
else
ac
uw
endif
k k+1
endwhile
endif
endproc

2.3

M
etodo da posi
c
ao falsa

O metodo da posicao falsa e uma modicacao do metodo da bisseccao. Conforme visto anteriormente, e possvel que o ponto medio do intervalo de busca n
ao seja o mais pr
oximo da raiz contida
naquele intervalo.
O metodo da posicao falsa faz um renamento sucessivo de um intervalo [a, b] utilizando a
interseccao da reta secante (ou corda) a f (x) a qual passa pelos pontos (a, f (a)) e (b, f (b))
com o eixo dos x. Esse ponto de interseccao ser
a um dos extremos do novo intervalo de busca, ou
ser
a uma boa aproximacao para a raiz.

Figura 2.5: Um intervalo contendo razes de f (x) = 0.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

33

Introduca
o ao C
alculo Numerico

Razes de Func
oes N
ao-Lineares

Considere ent
ao que f (x) e contnua em [a, b] e que f (a) e f (b), de acordo com a gura 2.5,
apresentam sinais diferentes entre si. Ent
ao, nesse caso, podemos armar que a curva y = f (x)
cruza o eixo das abscissas ao menos uma vez em um ponto no intervalo [a, b]. Normalmente,
podem existir v
arios desses pontos; porem, se f (x) e monot
onica, ent
ao existe apenas um ponto
para o qual f () = 0.

Figura 2.6: Derivacao geometrica do metodo da posicao falsa, por tri


angulos semelhantes.
Considere agora a gura 2.6. Para aproximar o ponto , tome a corda M N e calcule o ponto de
interseccao T daquela com o eixo das abscissas. Isso pode ser obtido vericando que os tri
angulos
ao, podemos escrever
M M1 T e N N1 T sao semelhantes; ent
M1 T
T N1
.
=
M M1
N1 N
Observando a gura 2.6, podemos ver que M1 T
N1 N = f (b), onde a1 denota a abscissa do ponto
Da, escrevemos
a1 a
=
f (a)
e, isolando a1 , temos

= a1 a, T N1 = b a1 , M M1 = f (a) e
de interseccao T da corda M N com o eixo X.
b a1
f (b)

a1 = b f (b)

ba
f (b) f (a)

(2.1)

a1 = a f (a)

ba
f (b) f (a)

(2.2)

ou, de forma equivalente

O n
umero a1 representa o valor aproximado da raiz da equacao f (x) = 0, situado no intervalo
[a, b].
Como, por hip
otese, os sinais de f (a) e f (b) sao opostos, podemos ter duas situacoes possveis:
1. sign(f (a)) = sign(f (a1 )), ou
2. sign(f (b)) = sign(f (a1 )).
No primeiro caso, deve-se aplicar a f
ormula (2.2) ao intervalo [a, a1 ], a m de se obter a aproximacao
a2 :
a1 a
.
(2.3)
a2 = a f (a)
f (a1 ) f (a)
Se, ao contrario, ocorrer o segundo caso, ent
ao obtem-se a2 atraves da aplicacao da f
ormula (2.1)
ao intervalo [a1 , b],
b a1
a2 = b f (b)
(2.4)
f (b) f (a1 )
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

34

Introduca
o ao C
alculo Numerico

Razes de Func
oes N
ao-Lineares

e assim sucessivamente, sempre vericando o sinal de f (an ) em relacao aos extremos do intervalo
em questao. De forma geral, podemos escrever, ent
ao:
an+1 = a f (a)

an a
f (an ) f (a)

(2.5)

an+1 = b f (b)

b an
f (b) f (an )

(2.6)

A gura 2.7 ilustra os casos possveis com relacao `a concavidade da curva y = f (x) e os sinais
de f (a), f (b) e f (a1 ). Se a curva for c
oncava para cima, deve-se aplicar a equacao (2.5) sobre o
intervalo [a, a1 ] ou a equacao (2.6) sobre o intervalo [a1 , b] (guras 2.7-(a) e 2.7-(d)); se a curva
for c
oncava para baixo, ent
ao aplica-se a equacao (2.5) sobre o intervalo [a, a1 ] ou a equacao (2.6)
sobre o intervalo [a1 , b] (guras 2.7-(b) e 2.7-(c)).

Figura 2.7: Os casos possveis no metodo da posicao falsa.


Caso nao se aplique a equacao correta, i.e., desconsiderarmos os sinais de f (a), f (b) e f (an ),
ent
ao an+1 pode car fora do intervalo [a, b] (ver gura 2.8).

Figura 2.8: O que ocorre quando n


ao se aplica a equacao correta no metodo da posicao falsa.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

35

Introduca
o ao C
alculo Numerico

Razes de Func
oes N
ao-Lineares

Exemplo 2.2 Suponha que se deseja obter uma raiz de f (x) = x3 + 3x 1 = 0 no intervalo [0, 1],
a uma toler
ancia de 103 . Como f (0) = 1 e f (1) = 3, ent
ao f (x) tem ao menos um zero nesse
intervalo. O gr
aco da func
ao nesse intervalo (gura 2.9) mostra que ela e c
oncava para cima e,

Figura 2.9: Gr
aco de f (x) = x3 + 3x 1 = 0 no intervalo [0, 1].
portanto, devemos usar a equac
ao (2.5). Ent
ao, teremos a seguinte seq
uencia de aproximac
oes:

2.3.1

x1

x2

x3

x4

x5

10
ba
=13
= 0, 25
f (b) f (a)
3 (1)
1 0, 25
b x1
=13
= 0, 31
b f (b)
f (b) f (x1 )
3 + 0, 23
1 0, 31
= 0, 319
13
3 + 0, 040
1 0, 319
= 0, 322
13
3 + 0, 010
1 0, 322
= 0, 322
13
3 + 0, 0006
b f (b)

Melhorando o m
etodo da posi
c
ao falsa

Se analisarmos as equacoes que governam o metodo da posicao falsa, veremos que elas usam,
sempre, um dos extremos a ou b do intervalo original.
No entanto, podemos usar as duas u
ltimas aproximacoes calculadas, pois elas encontram-se
mais pr
oximas da raiz; com isso, aumentamos a rapidez com a qual as aproximacoes convergem
para a raiz.
Para tanto, considere a gura 2.10-(a); a f
ormula utilizada para se calcular an+1 a partir das
duas u
ltimas aproximacoes e
an+1 = an f (an )

an an1
f (an ) f (an1 )

(2.7)

Na gura 2.10-(b), temos um exemplo de uma situacao que pode surgir: suponha que a1 tenha
sido calculado atraves da Equacao (2.1) e que a2 tenha sido calculado atraves das equacoes (2.3)
ao a3 deve
ou (2.4). Se, porventura, a3 e um ponto localizado fora do intervalo original [a, b], ent
ser substitudo por a ou b, antes de se calcular a4 . Particularmente, se a3 < a, ent
ao a3 a; se
a3 > b, ent
ao a3 b.
O metodo da posicao falsa, assim modicado tambem conhecido como metodo da secante
apresenta uma taxa de convergencia superior ao do metodo original. Se e a raiz da equacao
f (x) = 0, ent
ao
(2.8)
| an+1 | < C| an |t

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

36

Introduca
o ao C
alculo Numerico

Razes de Func
oes N
ao-Lineares

Figura 2.10: Situacoes possveis no metodo modicado da posicao falsa.


onde C e uma constante arbitr
aria, dependente do problema, e t e

1+ 5
t=
1, 61803398875
2
ancia de
Exemplo 2.3 Calcule a raiz da func
ao x3 + 3x 1 = 0 no intervalo [0, 1], a uma toler
3
10 .
Solu
c
ao: Calcule a1 = 0, 2500 e a2 = 0, 3100 com as equac
oes no metodo da posic
ao falsa original.
Ap
os, calcule
a3

a2 a1
=
f (a2 ) f (a1 )
0, 3100 0, 2500
= 0, 3100 + 0, 0400
= 0, 3223
0, 040 + 0, 234

= a2 f (a2 )

ou seja, com apenas tres aproximac


oes, obtivemos resultado equivalente ao obtido anteriormente.

2.3.2

An
alise do erro

Considerando o erro na n-esima iteracao,


en = xn r
e assumindo que f  e contnua e r e uma raiz simples de f (i.e., r n
ao e raiz simult
anea de f e de
f  ), substitumos a expressao acima na Equacao (2.7):
en+1

f (xn )xn1 f (xn1 )xn


r =
f (xn ) f (xn1 )
f (xn )en1 f (xn1 )en
f (xn ) f (xn1 )

= xn+1 r =
=

Fatorando en en1 e multiplicando por



en+1 =

xn xn1
xn xn1 ,

xn xn1
f (xn ) f (xn1 )

vem

f (xn )
en

f (xn1 )
en1

xn xn1

en en1

Pelo teorema de Taylor, temos


1
f (xn ) = f (r + en ) = f (r) + en f  (r) + e2n f  (r) + O(e3n )
2
e, como f (r) = 0,
f (xn )
1
= f  (r) + en f  (r) + O(e2n )
en
2
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

37

Introduca
o ao C
alculo Numerico

Razes de Func
oes N
ao-Lineares

Escrevendo de forma similar para a (n 1)-esima iteracao:


f (xn1 )
1
= f  (r) + en1 f  (r) + O(e2n1 )
en1
2
Subtraindo ambas as equacoes, temos
f (xn ) f (xn1 )
1

= (en en1 )f  (r) + O(e2n1 )


en
en1
2
ou, como xn xn1 = en en1 (pela denicao de en ),
f (xn )
en

f (xn1 )
en1

xn xn1

1 
f (r)
2

Agora, pela denicao da derivada em termos do limite, podemos escrever


xn xn1
1

f (xn ) f (xn1 )
f (r)
de onde
en+1

1 f  (r)
en en1 = Cen en1
2 f  (r)

(2.9)

A Equacao (2.9) nos diz que o erro en+1 e proporcional ao produto dos dois erros anteriores;
possivelmente, para xn e xn1 pr
oximos de r, ent
ao a taxa de convergencia sera de ordem quase
quadr
atica.

2.4

M
etodo de Newton-Raphson

O metodo de Newton e um procedimento generico que pode ser aplicado em in


umeras situacoes.
Quando temos como problema buscar o zero de uma funcao real, ele e chamado de metodo de
Newton-Raphson.
Dada ent
ao uma aproximacao x0 para a raiz, o metodo de Newton-Raphson determina uma
nova aproximacao, x1 , como a interseccao da reta tangente a f (x0 ) com o eixo dos x, conforme
mostrado na gura 2.11.
Seja entao a reta tangente dada por y = mx + b, a qual passa pelos pontos (x0 , f (x0 )) e (x1 , 0).
Assim, para o ponto (x1 , 0), pode-se escrever
b = mx1

(2.10)

e, para o ponto (x0 , f (x0 )),


f (x0 ) =
x1

mx0 mx1
f (x0 )
x0
m

(2.11)

onde m e o coeciente angular da reta. Esse coeciente pode ser determinado considerando um
outro ponto (x0 + h, f (x0 + h)), h 0, e calculando a reta (secante) que passa pelos pontos
(x0 , f (x0 )) e (x0 + h, f (x0 + h)); da, o coeciente angular dessa reta e dado por
m=

f (x0 + h) f (x0 )
.
h

(2.12)

Note que, para h sucientemente pequeno, pela denicao da derivada de f (x),


f  (x) = lim

h>0

f (x + h) f (x)
h

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

38

Introduca
o ao C
alculo Numerico

Razes de Func
oes N
ao-Lineares

Figura 2.11: O metodo de Newton-Raphson - interpretacao geometrica.


vemos que o coeciente angular da reta tangente e a pr
opria derivada f  (x0 ) (desde que f  (x)
exista e seja contnua). Assim, podemos escrever (2.11) como
x1 = x0

f (x0 )
f  (x0 )

(2.13)

e, generalizando para uma estimativa xk ,


xk+1 = xk

f (xk )
,
f  (xk )

k = 0, 1, . . .

(2.14)

a qual e a equacao governante do metodo de Newton-Raphson. O metodo de Newton-Raphson


pode ser expresso de forma algortmica como segue:
Algoritmo 2.4.1 Newton-Raphson
proc newton raphson(input: x0 , , , kmax ; output: xk+1 , k)
for k = 0, 1, . . . , kmax do
k)
xk+1 xk ff(x
(xk )
if | xk+1 xk | < OR | f (xk+1 ) | <  then
break
endif
endfor
endproc
Uma outra forma de se obter a equacao (2.14) e atraves de uma expans
ao de Taylor em torno
de uma raiz r. Supondo que x e uma aproximacao para r, pelo teorema de Taylor, se f  existe e
e contnua, ent
ao
f (r)

= 0

f (x + h) = 0

f (x) + hf (x) + O(h2 ) = 0
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

39

Introduca
o ao C
alculo Numerico

Razes de Func
oes N
ao-Lineares

onde h = r x. Se h e pequeno, i.e., x est


a pr
oximo de r, ent
ao os termos de ordem igual ou
superior a O(h2 ) podem ser descartados, e podemos escrever h como
h=

f (x)
f  (x)

(2.15)

Logo, se quisermos corrigir x de forma a aproxim


a-lo de r, ent
ao x + h = x ff(x)
e uma
(x)
aproximacao melhor.
O metodo de Newton-Raphson, no entanto, pode apresentar problemas, dependendo da natuao
reza da funcao e da estimativa inicial utilizada. Suponha, por exemplo, a gura 2.12. Se x1 n
for tomado sucientemente proximo de r, ent
ao a seq
uencia xn divergir
a.

Figura 2.12: Um caso em que a seq


uencia xn gerada pelo metodo de Newton-Raphson diverge.
A aplicacao do metodo de Newton exige um certo cuidado, pois existem algumas situacoes que
podem comprometer o sucesso da sua utilizacao. Uma situacao cujo risco e bastante obvio e a
possibilidade de ocorrer divis
ao por zero na f
ormula iterativa quando f  (xi ) = 0. Um bom algoritmo deve checar esta possibilidade, mas e bem possvel que quando f  (xi ) esta sucientemente
pr
oxima de zero, xi seja uma aproximacao aceitavel da raiz da equacao f (x) = 0. Esta situacao
motiva uma discussao sobre a velocidade de convergencia do metodo de Newton.
Se x
e uma raiz simples de f (x) = 0, o metodo converge rapidamente e o n
umero de casas
decimais exatas praticamente dobra a cada iteracao. Por outro lado, se x
e uma raiz m
ultipla, o
erro em cada aproximacao sucessiva e uma fracao do erro anterior. Isto e causado pela ordem de
aproximacao do metodo, que n
ao e a mesma para os dois casos.

2.4.1

An
alise do erro

Considerando o erro na n-esima iteracao,


en = xn r
ao e raiz simult
anea de f e de
e assumindo que f  e contnua e r e uma raiz simples de f (i.e., r n
f  ), substitumos a expressao acima na Equacao (2.14):
en+1

=
=

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

Pelo teorema de Taylor, temos


1
0 = f (r) = f (xn en ) = f (xn ) en f  (xn ) + e2n f  (n )
2
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

40

Introduca
o ao C
alculo Numerico

Razes de Func
oes N
ao-Lineares

onde xn n r. Da, podemos escrever


en f  (xn ) f (xn ) =
de onde
en+1 =

1 
f (n )e2n
2

1 f  (n ) 2
1 f  (r) 2
en
e = Ce2n

2 f (n )
2 f  (r) n

(2.16)

Com base na equacao acima, podemos dizer que, se xn e uma aproximacao sucientemente
pr
oxima de r, ent
ao o erro em uma iteracao do metodo de Newton-Raphson decresce de forma
proporcional ao quadrado do erro na iteracao anterior.
Conforme mencionado acima, o metodo de Newton pode apresentar problemas, como o caso da
divis
ao por zero. Entretanto, existem outras diculdades que nao sao t
ao facilmente identicaveis.
` vezes, ao inves de as iteracoes convergirem, elas oscilam para frente e para tras. Isto acontece
As
quando n
ao existem razes reais (gura 2.13), quando existe simetria em f (x) em torno do ponto x

ao longe da raiz correta que alguma outra


(gura 2.14), ou quando a aproximacao inicial x0 esta t
parte da funcao acaba interferindo no processo iterativo (gura 2.15).
Um fator importante para a convergencia no metodo de Newton e a escolha do ponto inicial.
ario,
Dado um intervalo I = [a, b], se f (a)f  (a) > 0, x0 = a; se f (b)f  (b) > 0, x0 = b. Caso contr
x0 = a+b
.
2
Exemplo 2.4 Considere o polin
omio p (x) = x3 5x2 + 8x 4. Calcule duas razes utilizando o
metodo de Newton-Raphson.
Solu
c
ao: A f
ormula iterativa neste caso e
xi+1 = xi

x3i 5x2i + 8xi 4


.
3x2i 10xi + 8

Tomando x0 = 0, obtemos os valores mostrados na tabela 2.1.


i
0
1
2
3
4
5
6
7

xi
0
0,5
0,8
0,95
0,995652174
0,999962679
0,999999998
1,0

Tabela 2.1: Valores aproximados da solucao pelo metodo de Newton-Raphson.


Para calcular a raiz seguinte, parte-se de x0 = 1, 75, com o qual obtemos os valores mostrados
na tabela 2.2.
Quest
ao: Por que raz
ao a convergencia para a segunda raiz e mais lenta?
O metodo de Newton pode ser aplicado de maneira um pouco diferente quando a funcao f (x)
e um polin
omio, conforme veremos no captulo 3.

2.5

Deriva
c
ao num
erica

No metodo de Newton, e necessario utilizar o valor de f  (xn ) a m de se calcular a nova estimativa


xn+1 . No entanto, avaliar f  pode ser oneroso (a menos que f seja um polinomio) e, por isso, a`s
vezes recorre-se a uma aproximacao numerica de f  .
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

41

Introduca
o ao C
alculo Numerico

Razes de Func
oes N
ao-Lineares

Figura 2.13: Ausencia de razes reais

Figura 2.14: Segunda derivada f  (x ) = 0.

Figura 2.15: Dist


ancia inadequada entre x0 e x .
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

42

Introduca
o ao C
alculo Numerico

Razes de Func
oes N
ao-Lineares
i
0
1
2
3
4
5
6
..
.

xi
1,75
1,9
1,952941176
1,977066274
1,988669318
1,994367280
1,997191745

16
17

1,999999956
1,999999956

Tabela 2.2: Valores aproximados da solucao pelo metodo de Newton-Raphson.


Considere a denicao da derivada de f (x) em termos do limite,
f  (x)

f (x + h) f (x)
h

(2.17)

Se f e linear (f (x) = ax + b), ent


ao a Equacao (2.17) e exata, i.e., para qualquer h = 0, ela nos d
a
o valor correto de f  (x). Se f (x) n
ao for linear, somente em casos muito especiais ela ser
a exata;
logo, h
a um erro envolvido nessa aproximacao, o qual pode ser mensurado usando o teorema de
Taylor:
h2
(2.18)
f (x + h) = f (x) + hf  (x) + f  ()
2
onde x < < x + h; f e f  sao contnuas em [x, x + h] e f  e contnua em (x, x + h). Se
rearranjarmos os termos da Equacao (2.18), obtemos
f  (x) =

f (x + h) f (x) h 
f ()
h
2

(2.19)

a qual e muito mais u


til, pois contem um termo h2 f  () que representa o erro na aproximacao
da derivada. Dependendo de quanto vale h, o erro tender
a mais ou menos rapidamente para zero.
Exemplo 2.5 Calcule a derivada de cos x em x = /4, usando a Equac
ao (2.17), com h = 0, 01.
Qual o erro na aproximac
ao?
Solu
c
ao: Em uma HP-48SX, temos
f  (x)

0, 70000047618 0, 707106781186
f (x + h) f (x)
=
h
0, 01
= 0, 007106305006

O erro pode ser estimado como


h
| f  () | = 0, 005| cos | 0, 005
2
Como /4 < < /4 + h, temos | cos | < 0, 707106781186, de onde obtemos um limitante mais
correto para o erro como 0, 0005 0, 707106781186 = 0, 00353553391.
Se compararmos com o valor de f  (/4) = sen 4 = 0, 70710678119 em x = /4, teremos
que o erro absoluto e
| 0, 70710678119 (0, 7106305006) | = 0, 00352371941
o que conrma a nossa estimativa para o erro usando | h2 f  () |.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

43

Introduca
o ao C
alculo Numerico

Razes de Func
oes N
ao-Lineares

obvio que, para utilizarmos a Equacao (2.17), h deve ser pequeno o suciente. Ora, nessa
E
equacao, h
a a possibilidade de que ocorra perda de dgitos signicativos ao calcularmos f (x + h)
f (x), se f (x + h) f (x). Por isso, cuidado deve ser tomado ao se efetuar tais calculos.
Existem outras aproximacoes para a derivada de primeira ordem. Suponha, por exemplo, as
duas expans
oes de Taylor, para f (x + h) e f (x h):
h2 
f (x) +
2
h2
f (x h) = f (x) hf  (x) + f  (x)
2
Subtraindo uma equacao da outra, obtemos
f (x + h)

= f (x) + hf  (x) +

h3 
f (1 )
6
h3 
f (2 )
6

(2.20)
(2.21)

f (x + h) f (x h) h2 

(f (1 ) + f  (2 ))
(2.22)
2h
12
a qual e chamada de aproximacao central para a derivada de primeira ordem, pois x h <
x < x + h. Se assumirmos que f  (x) existe e e contnua em [x h, x + h], podemos dizer
que f  () = 12 (f  (1 ) + f  (2 )), de onde obtemos uma expressao mais simples para o termo
envolvendo o erro,
f (x + h) f (x h) h2 
f ()
(2.23)
f  (x) =
2h
6
Para se aproximar derivadas de segunda ordem, usualmente se utiliza uma aproximacao central.
Expandindo a serie de Taylor nas equacoes (2.20) e (2.21) por um termo a mais, e somando ambas,
obtemos
f (x + h) 2f (x) + f (x h) h2 (4)
f  (x) =
f ()
(2.24)
h2
12
para x h < < x + h.
f  (x) =

2.5.1

O m
etodo de Newton-Raphson e as razes complexas de f (x)

O metodo de Newton-Raphson pode ser utilizado para se extrair as razes complexas de uma
funcao f (x). Para tanto, basta que se utilize aritmetica complexa, tomando cuidado particular
com a codicacao das funcoes.

2.6

Exerccios

Exerccio 2.1 Calcule, atraves do metodo de Newton-Raphson, todas as razes da func


ao (inclusive as razes complexas, se houver) f (x) = esenx 2 cos 3x, contidas no intervalo [5; 5].
Exerccio 2.2 Calcule a raiz positiva de f (x) =

(x1)2
x

2 utilizando os metodos:

1. da bissecc
ao
2. de Newton-Raphson com aproximac
ao numerica da derivada
3. da secante
ario
Exerccio 2.3 Calcule as intersecc
oes da curva y = [(x1)2 ][(x+1)2 ]1/2 com o crculo unit
centrado na origem, utilizando o metodo da secante.
1

Exerccio 2.4 Calcule as intersecc


oes das curvas f = e (x1)3 e g = (x 3)3 + 2, utilizando o
metodo de Newton-Raphson, com aproximac
ao numerica da derivada.
Exerccio 2.5 Calcular uma raiz negativa da equac
ao f (x) = x4 2x3 6x2 + 2 pelo metodo da
posica
o falsa.
Exerccio 2.6 Utilize o metodo da secante para encontrar o zero positivo de f (x) = x 2sen(x)
com x0 = /2 e x1 = 2/3.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

44

Captulo 3

C
alculo de Razes de Polin
omios
3.1

Introdu
c
ao

A determinacao de todas, ou de algumas, razes de um polin


omio e um problema importante,
o qual tem sido estudado nos u
ltimos quatro seculos. Assim como a f
ormula de Bhaskara para
determinacao de razes de polin
omios do segundo grau, existem as formulas de Cardan e de Ferrari
para polin
omios de terceiro e de quarto grau, respectivamente. Entretanto, foi provado por Abel,
em 1824, que nao existe nenhuma formula algebrica nita capaz de calcular as razes de um polin
omio de grau maior ou igual a 5. A partir da, ate hoje, os metodos para o c
alculo das n razes
de um polin
omio de grau n sao voltados aos metodos iterativos, que tambem podem ser aplicados
as equacoes transcendentais 1 .
`
Os metodos de aproximacoes sucessivas vistos anteriormente bisseccao, cordas e NewtonRaphson podem ser utilizados para se determinar uma das razes de um polin
omio; se quisermos
todas, ent
ao e necessario modicar a funcao polinomial, atraves de deac
ao, para os metodos da
posicao falsa e de Newton-Raphson. Se conhecermos os intervalos em que apenas uma raiz est
a
contida, ent
ao podemos usar o metodo da bisseccao para cada um dos intervalos.
Alem disso, podemos recair no uso de aritmetica complexa, pois mesmo um polinomio com
coecientes reais por exemplo, z 2 + 1 pode ter apenas razes complexas.
Isso demonstra algumas das diculdades associadas ao calculo das razes de um polin
omio.
Vejamos entao alguns resultados te
oricos e metodos especcos para o calculo de razes de polin
omios.

3.2

Resultados te
oricos

Nesta secao, apresentaremos alguns dos teoremas necess


arios ao entendimento do problema.

Teorema 3.2.1 Teorema Fundamental da Algebra:


Todo polin
omio que n
ao seja uma constante tem ao menos um zero no campo dos n
umeros complexos.
Teorema 3.2.2 Teorema do Resto: Se um polin
omio p, de grau n 1, e dividido por um fator
z c, ent
ao p(z) = (z c)q(z) + r, onde q(z) e o quociente (de grau n 1) e r e um n
umero
complexo. Se z = c, ent
ao p(c) = r.
Teorema 3.2.3 Teorema dos Fatores: Se um polin
omio p, de grau n 1, for escrito na forma
p(z) = (z c)q(z) + r, e se c for um zero de p, ent
ao r = 0, de forma que p(z) = (z c)q(z) e
z c e um fator de p.
1 Equa
c
oes

transcendentais s
ao aquelas em que a inc
ognita aparece submetida `
a operac
ao n
ao algebrica em pelo
2
menos um termo da func
ao. Ex.: f (x) = x + cos(x), f (x) = ex sen(x)

45

Introduca
o ao C
alculo Numerico

Razes de Polin
omios

Teorema 3.2.4 Teorema do N


umero de Zeros: Um polin
omio de grau n tem exatamente n
zeros no campo dos n
umeros complexos, considerando a multiplicidade de cada zero.
Teorema 3.2.5 
Teorema do Disco contendo todos os Zeros: Todos os zeros de um pon
i
lin
omio p(z) =
e a origem do plano
i=0 ai z encontram-se em um disco fechado cujo centro
complexo e raio
1
=1+
max | ak |.
| an | 0k<n
Teorema 3.2.6 Teorema do Disco contendo todos os Zeros N
ao-nulos: Se todos os zeros
ao todos os zeros
de um polin
omio s(z) = z n p(1/z) encontram-se no disco {z : |z| }, ent
n
ao-nulos de p encontram-se fora do disco {z : |z| < 1 }.
Note que

s(z) =
=


 n
 n1
1
1
+ an1
+ . . . + a0
an
z
z

an + an1 z + . . . + a0 z n

O polin
omio s tem, tambem, grau n e os seus coecientes sao os mesmos de p, apenas em ordem
reversa. Pode-se vericar que, se p(z0 ) = 0, ent
ao s( z10 ) = 0, para z0 = 0.

3.3

Enumera
c
ao e localiza
c
ao de razes de polin
omios

Dada uma funcao f (x), diz-se que x


e uma raiz ou um zero da equacao f (x) = 0 se f (
x) = 0.
Muitas vezes, n
ao se sabe com certeza quais as razes de uma determinada funcao, mas, atraves de
alguns resultados, e possvel enumer
a-las. Enumerar as razes de uma funcao f (x) e dizer quantas
razes ela possui e de que tipo elas sao. Se f (x) e um polin
omio de grau n, o teorema fundamental

da Algebra
assegura a existencia de n razes, contando a multiplicidade. Entretanto, responder de
que tipo s
ao as razes (positivas ou negativas, simples ou m
ultiplas), ja n
ao e muito f
acil. No caso
de funcoes transcendentais, como nao e possvel garantir o n
umero de razes, o problema da sua
enumeracao acaba por ser mais difcil. Existem algumas regras que permitem enumerar e localizar
as razes de polin
omios, conforme mostrado a seguir.

3.3.1

Regra de Descartes

O Teorema 3.3.1 permite obter o n


umero de razes reais positivas para um polin
omio real diferente
de zero:
omio real (diferente do polin
omio
Teorema 3.3.1 Sejam p(z) = a0 + a1 z + . . . + an z n um polin
zero), T o n
umero de troca de sinais na seq
uencia de seus coecientes ak n
ao nulos, e r o n
umero
de suas razes reais positivas (cada qual contada com a sua respectiva multiplicidade). Ent
ao, T r
e par e n
ao-negativo.
Prova Ver [7, p
ag. 442].
Em outras palavras, a diferenca entre o n
umero de trocas de sinal dos coecientes n
ao-nulos do
polin
omio e o n
umero de razes positivas do mesmo e um n
umero par, i.e., T r = 2k (k = 0,
1, . . .). Dessa forma, temos r = T 2k, de onde pode-se vericar que o n
umero de razes reais
positivas nunca excede a T .
A mesma regra pode ser aplicada para a enumeracao das razes reais e negativas de p(z),
bastando para isso substituir z por z e, elevando z `as diferentes potencias, obter um novo
polin
omio q(z) p(z), cujas razes positivas sao as razes negativas de p(z).

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

46

Introduca
o ao C
alculo Numerico

Razes de Polin
omios

Exemplo 3.1 Considere p(z) = 3z 3 + z 2 z 1. A seq


uencia de sinais para p(z) e + + , de
onde T = 1; logo, como r = T 2k e T r 0, pode-se concluir que existe no m
aximo uma raiz
real positiva. Para p(z) = 3z 3 + z 2 + z 1, temos T = 2; de maneira similar, conclumos que
o polin
omio apresenta ou 2 razes negativas ou nenhuma.
Como o Teorema 3.2.1 nos garante que existem 3 razes para o polin
omio em quest
ao, conclui-se
que podem existir:
Uma raiz real positiva e duas razes reais negativas;
Uma raiz real positiva, nenhuma raiz real negativa e duas razes complexas. Lembrando que
as razes complexas de uma equac
ao polinomial com coecientes reais ocorrem aos pares
conjugados, ent
ao, como o n
umero m
aximo de razes negativas e 2, pode-se concluir que, se
n
ao houverem razes negativas, ent
ao necessariamente existe um par de razes complexas.
Nesse exemplo, as razes s
ao: 0, 7356705613 e 0, 5345019474 0, 4091564862i.
Exemplo 3.2 Considere p(z) = z 5 3z 4 2z 3 + z 2 + z + 1. A seq
uencia de sinais para p(z) e
+ + + +, de onde T = 2; logo, como r = T 2k e T r 0, pode-se concluir que existe no
m
aximo duas razes reais positivas. Para p(z) = z 5 3z 4 + 2z 3 + z 2 z + 1, temos T = 3; de
maneira similar, conclumos que o polin
omio apresenta ou 2 razes negativas ou nenhuma.
Como o Teorema 3.2.1 nos garante que existem 5 razes para o polin
omio em quest
ao, conclui-se
que podem existir:
Duas razes reais positivas e tres razes reais negativas;
Duas razes reais positivas, uma raiz real negativa e um par de razes complexas;
Nenhuma raz real positiva, tres razes reais negativas e um par de razes complexas;
Nenhuma raz real positiva, uma raiz real negativa e dois pares de razes complexas.
Nesse exemplo, as razes s
ao: 3, 463105585; 0, 8828320726; 0, 8675771482 e 0, 2391802550
0, 5666074100i.

3.3.2

Regra de Du Gua

Seja a equacao polinomial p(z) = an z n + a1 z n1 + . . . + a0 = 0 de grau n sem razes nulas. Se,


para algum k, 1 k < n, tem-se a2k ak+1 ak1 , ent
ao p(z) tem razes complexas.

3.3.3

Regra da lacuna

A regra da lacuna pode ser expressa como segue:


1. Se os coecientes de p(z) sao todos reais e para algum k, 1 k < n, tem-se ak = 0 e
ao p(z) ter
a razes complexas;
ak1 ak+1 > 0, ent
2. Se os coecientes s
ao todos reais e existem dois ou mais coecientes nulos sucessivos, entao
p(z) = 0 tem razes complexas.
Exemplo 3.3 Considere p(z) = 2z 5 + 3z 4 + z 3 + 2z 2 5z + 3. Para p(z), o n
umero de trocas
e T = 2, o que implica, pela regra de Descartes, que p(z) tem duas ou zero razes reais positivas.
Para p(z), o n
umero de trocas e T = 3, o que implica que p(z) tem tres ou uma raiz real negativa.
Testando a desigualdade a2k ak+1 ak1 para os coecientes de p(z) = 0, tem-se que para
k = 2, a22 a3 a1 , ou seja, 1 3 2. Logo, a regra de Du Gua garante a existencia de razes
complexas para p(z).
Neste exemplo, a regra da lacuna nada arma sobre a existencia de razes complexas, pois as
condic
oes necess
arias n
ao s
ao satisfeitas.
Ate aqui, as tres regras discutidas n
ao permitem a determinacao da localizacao das razes.
Para estimar o m
odulo de todas as razes de um polin
omio real p(z), existem as cotas de LaguerreThibault, de Fujiwara, de Kojima e de Cauchy.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

47

Introduca
o ao C
alculo Numerico

3.3.4

Razes de Polin
omios

Cota de Laguerre-Thibault

Dado um polin
omio p(z) = 0, de coecientes reais, faz-se a divisao de p(z) por z 1, z 2 e assim
sucessivamente, ate z m, onde q(z) tenha todos os coecientes positivos ou nulos, assim como
r > 0; tal m e chamado de cota superior das razes reais de p(z) = 0. Para determinar a cota
inferior, basta fazer o mesmo procedimento para p(z).

3.3.5

Cota de Fujiwara

Seja x
uma raiz real ou complexa de p(z) = an z n + an1 z n1 + . . . + a1 z + a0 = 0. Ent
ao,


 
1
 1 
1

 an1   an2  2
 a1  n1  a0  n








| z | 2 max 
,...,
,
.
,
an   an 
an 
an 
Exemplo 3.4 Determinar a regi
ao do plano onde se encontram as razes de p(z) = z 4 14z 2 +
24z 10.
A express
ao para a cota de Fujiwara ca:


1
1
1
| z | 2 max 0, 14 2 , 24 3 , 10 4

3.3.6

2 3, 74 = 7, 48

Cota de Kojima

Dado o polin
omio p(z) = an z n + an1 z n1 + . . .+ a1 z + a0 , toda a raiz z, real ou complexa, satisfaz
| z | q1 + q2
onde q1 e q2 sao os dois maiores valores de

1 
 ai  i


, i = n 1, n 2, . . . , 0,
 an 
Exemplo 3.5 Seja p(z) = z 5 + z 4 9z 3 z 2 + 20z 12. Calculando os valores de


1
| ai /a0 | i

para i = 4, 3, 2, 1, 0, obtem-se o conjunto {1; 3; 1; 2, 114742527; 1, 643751829}, de onde se conclui


que q1 = 3 e q2 = 2, 114742527. Logo, toda raiz z deve satisfazer | z | < 5, 114742527.

3.3.7

Cota de Cauchy

Toda raiz z, real ou complexa, de um polin


omio real p(z) satisfaz
| z | < ,
onde
= lim zi ,
i

e
zk =


 an1

 an



 n1  an2
z

+
 k1  an

com z0 = 0,



 n2
 a1
z

+
.
.
.
+
 k1
 an





 zk1 +  a0

 an

  n1


,


k = 0, 1, . . .

Exemplo 3.6 Estimar a localizac


ao das razes para p(z) = z 3 + 2z 2 3z 5.
Utilizando a cota de Cauchy, tem-se que
z0 = 0,


1
zk+1 = 2zi2 + 3zi + 5 3 ,

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

48

Introduca
o ao C
alculo Numerico

Razes de Polin
omios

de forma que as iterac


oes resultam
z0
z1

=
=

0, 0
1, 709975

z2

2, 518686

z3
z4
..
.

=
=

2, 933484
3, 141756

z14
z15

=
=

3, 344014
3, 344095

Logo, | z | 3, 34.

3.4

M
etodo de Newton-Vi
ete

O metodo de Newton-Viete e o metodo de Newton especco para polin


omios, onde o polin
omio
p(z) e a sua derivada p (z) sao expressos na forma aninhada, ou seja, como
p(z) = a0 + z(a1 + z(a2 + . . . + z(an ))) . . .)
Nesse caso, a derivada pode ser expressa como
p (z) = a1 + z(2a2 + z(3a3 + . . . + z(nan ))) . . .)
de onde a f
ormula de iteracao pode ser escrita como
zk+1 = zk

a0 + z(a1 + z(a2 + . . . + z(an ))) . . .)


,
a1 + z(2a2 + z(3a3 + . . . + z(nan ))) . . .)

k = 0, 1, . . .

(3.1)

O exemplo a seguir ilustra o funcionamento do metodo.


Exemplo 3.7 Encontrar todas as razes de p(z) = z 3 + 2z 2 3z 5. Antes de aplicar o algoritmo
de Newton-Viete, e conveniente fazer a enumerac
ao, a localizac
ao e a separac
ao das razes de
p(z).
Enumera
c
ao:

1. A regra de Descartes fornece:

para p(z) : + + T = 1;
para p(z) : + + T = 2.
2. A regra da lacuna n
ao pode ser aplicada;
3. A regra de Du Gua nada arma.
Conclui-se ent
ao que p(z) tem exatamente uma raiz real positiva. As outras duas s
ao ambas
reais negativas ou ambas complexas.
Localiza
c
ao: A cota de Cauchy e aplicada a partir de
z0 = 0


1
zk+1 = 2zk2 + 3xk + 5 3 ,

para

k = 0, 1, . . . ,

o que resulta
z1

= 1, 71

z2
z3

= 2, 52
= 2, 93

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

49

Introduca
o ao C
alculo Numerico

Razes de Polin
omios

z4

= 3, 14

z5
z6

= 3, 24
= 3, 29

z7
z8

= 3, 32
= 3, 33

z9
z10

= 3, 34
= 3, 34

Pode-se dizer que as razes de p(z) pertencem `


a regi
ao | z | 3, 34.
Separa
c
ao: Sabendo que as razes de p(z) est
ao todas compreendidas na regi
ao | z | 3, 34 < 4,
constr
oi-se a seguinte tabela:
z
p(z)

-4
-25

-3
-5

-2
1

-1
-1

0
-5

1
-5

2
5

3
31

4
79

De acordo com a tabela, a raiz real positiva est


a entre 1 e 2; as razes reais negativas est
ao
entre 3 e 2 e entre 2 e 1.
C
alculo das razes: As tres tabelas a seguir mostram os valores das aproximac
oes das razes de
p(z). Na primeira, z0 = 2, na segunda, z0 = 1, 5 e na terceira, z0 = 1, 5. Logo, as tres
razes de p(z) s
ao z1 = 2, 377202854, z2 = 1, 273890555 e z3 = 1, 651093409.
i
0
1
2
3
4
5
6
7
i
0
1
2
3
4
5
i
0
1
2
3
4
5

zi
-2
-3
-2,58333333333
-2,41242644514
-2,3785447672
-2,37720492776
-2,37720285398
-2,37720285397
zi
-1,5
-1,22222222222
-1,27254428341
-1,27388953494
-1,27389055496
-1,27389055497
zi
1,5
1,66666666667
1,6512345679
1,65109342069
1,65109340894
1,65109340894

p(zi )
1
-5
-1,14293981478
-1,629606481E-01
-5,97333456E-03
-9,21691E-06
-3E-11
p(zi )
0,625
-1,7146776407E-01
-4,34794747E-03
-3,29179E-06
-2E-11
p(zi )
-1,625
1,8518518523E-01
1,66337255E-03
1,3849E-07
4E-11

O metodo de Newton-Viete pode ser utilizado de forma mais eciente se zermos uso do metodo
de Horner, o qual ser
a descrito a seguir.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

50

Introduca
o ao C
alculo Numerico

3.5

Razes de Polin
omios

M
etodo de Horner

O metodo de Horner, tambem conhecido como multiplicac


ao aninhada, pode ser utilizado n
ao so
para se avaliar um polin
omio de forma mais eciente e estavel (do ponto de vista numerico), mas
tambem para:
1. Calcular o quociente e o resto de um polin
omio dividido por um fator z c;
2. Deacao de um polin
omio;
3. Calcular a expans
ao de Taylor de um polin
omio em torno de um ponto.
Vejamos entao como proceder a cada um dos calculos acima.

3.5.1

C
alculo do quociente e do resto

Seja p(z) = a0 + a1 z + . . . + an z n , e z0 um dado n


umero. Ent
ao, se escrevermos
p(z) = (z z0 )q(z) + p(z0 )

(3.2)

temos, pelo Teorema do Resto, que q(z) e um polin


omio de grau n 1. Esse polin
omio pode ser
escrito como
q(z) = b0 + b1 z + . . . + bn1 z n1
Isolando q(z) na Equacao (3.2), e substituindo as express
oes para p(z) e q(z), podemos igualar os
coecientes das potencias de mesma ordem, de tal forma que obtemos:
bn1

= an

bn2

= an1 + z0 bn1
..
.

b0
p(z0 )

= a1 + z 0 b 1
= a0 + z 0 b 0

ou, em forma compacta, podemos escrever


bk1 = ak + z0 bk ,

k = n 1, n 2, . . . , 0

Um dispositivo que facilita o c


alculo dos termos bk e o seguinte:
an
z0
bn1

an1
z0 bn1
bn2

an2
z0 bn2
bn3

...
...
...

a0
z0 b0
p(z0 )

Tabela 3.1: Dispositivo para determinar os coecientes do polin


omio quociente e o resto; os
elementos na u
ltima linha contem os coecientes do quociente, bem como o resto, usando como
fator z z0 .
Esse dispositivo pode ser expresso, tambem, na forma de um algoritmo, chamado de algoritmo
parcial de Horner, como segue:
Algoritmo 3.5.1 Horner parcial
proc horner parcial(input: n, [a0 , a1 , . . . , an ], z0 ; output: [b1 , b0 , b1 , . . . , bn1 ])
bn1 an
for k = n 1, n 2, . . . , 0 do
bk1 ak + z0 bk
endfor
endproc

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

51

Introduca
o ao C
alculo Numerico

Razes de Polin
omios

Note que, ao nal do algoritmo, b1 contem o valor de p(z0 ). O exemplo a seguir ilustra o uso
do procedimento.
Exemplo 3.8 Se p(z) = z 4 4z 3 + 7z 2 5z 2, calcule p(3).
Solucao: Usando o dispositivo mostrado na Tabela 3.1, temos, para z0 = 3:
4
3
1

1
3
1

7
3
4

5
12
7

2
21
19

De onde podemos dizer que p(3) = 19 e, ainda, podemos escrever


p(z) = (z 3)(z 3 z 2 + 4z + 7) + 19
onde z 3 z 2 + 4z + 7 q(z) e r = 19.
Exemplo 3.9 O dispositivo de Horner pode ser usado para se determinar a cota de LaguerreThibault (3.3.4). Considere o polin
omio p(z) = z 3 3z 2 34z + 120; nesse caso, ao se dividir
p(z) por z 1, z 2, . . ., z 7, obtem-se polin
omios q(z) com coecientes negativos. Porem, ao
divid-lo por z 8, temos
1
8
1

3
8
5

34
40
6

120
48
168

Pode-se vericar que q(z) tem coecientes todos positivos e, assim, 8 e uma cota superior para as
razes positivas de p(z). Com efeito, a p(z) tem como razes 6, 4 e 5.

3.5.2

Deflac
ao de um polin
omio

O dispositivo mostrado na subsecao anterior pode ser usado para se remover um fator linear do
polin
omio, o que se chama de deaca
o.
Para tanto, basta que z0 seja tomado como um dos zeros do polinomio; nesse caso, z z0 e
um dos fatores do polin
omio (e vice-versa). Os restantes n 1 zeros de p sao os n 1 zeros do
p
polin
omio zz
.
Vejamos
o exemplo a seguir:
0
Exemplo 3.10 Se p(z) = z 4 4z 3 + 7z 2 5z 2 e 2 e um de seus zeros, deacione-o adequadamente.
Solucao: Usando o dispositivo mostrado na Tabela 3.1, temos, para z0 = 2:
1
2
1

4
2
2

7
4
3

5
6
1

2
2
0

De onde podemos dizer que p(2) = 0 conforme esperado e


z 4 4z 3 + 7z 2 5z 2 = (z 2)(z 3 2z 2 + 3z + 1)
e o resto e 0. As tres razes restantes de p devem ser extradas do polin
omio q(z) = z 3 2z 2 +3z+1.

3.5.3
Seja

Calcular a expans
ao de Taylor de um polin
omio
p(z) = an z n + an1 z n1 + . . . + a2 z 2 + a1 z + a0

e suponha que se desejam obter os coecientes ck na equacao


p(z) = an z n + an1 z n1 + . . . + a0
= cn (z z0 )n + cn1 (z z0 )n1 + . . . + c0
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

52

Introduca
o ao C
alculo Numerico

Razes de Polin
omios

sabido, obviamente, que esses


i.e., os coecientes da expans
ao de Taylor em torno de z0 . E
(k)
coecientes s
ao na forma ck = p (z0 )/k!, mas podemos obte-los de forma mais eciente usando
o dispositivo de Horner.
Veja que, ao aplicar o dispositivo, obtemos tanto
p(z0 ) c0
como

p(z) p(z0 )
= cn (z z0 )n1 + cn1 (z z0 )n2 + . . . + c1
z z0
o que mostra que c1 pode ser obtido aplicando o dispositivo de Horner ao polin
omio q(z0 ), pois
c1 q(z0 ). Pela aplicacao sucessiva do dispositivo de Horner aos polin
omios quocientes, de graus
n 1, n 2, . . ., 1, podemos obter todos os coecientes da expans
ao de Taylor, conforme vemos
no exemplo abaixo:
q(z) =

ao de Taylor em torno de 3.
Exemplo 3.11 Se p(z) = z 4 4z 3 + 7z 2 5z 2, obtenha a expans
Solucao: Usando o dispositivo mostrado na Tabela 3.1, temos, para z0 = 3:
1
3
1
3
1
3
1
3
1

4
3
1
3
2
3
5
3
8

7
3
4
6
10
15
25

5
12
7
30
37

2
21
19

+
+
+
+

Podemos, ent
ao, escrever a expans
ao de Taylor de p(z) em torno de 3 como
p(z) = (z 3)4 + 8(z 3)3 + 25(z 3)2 + 37(z 3) + 19,
Esse processo e chamado de algoritmo completo de Horner, o qual pode ser expresso da seguinte
forma:
Algoritmo 3.5.2 Horner completo
proc horner completo(input: n, [a0 , a1 , . . . , an ], z0 ; output: [a0 , a1 , . . . , an ])
for k = 0, 1, . . . , n 1 do
for j = n 1, n 2 . . . , 0 do
aj aj + z0 aj+1
endfor
endfor
endproc

3.5.3.1

O m
etodo de Horner e sua rela
c
ao com a derivada de p(z)

Note que, a cada aplicacao do algoritmo parcial de Horner, obtem-se um polinomio q(z) e um
resto r. Chamemos, agora, de qi (z) e ri aos quociente e resto obtidos na i-esima aplicacao do
algoritmo.
umero, ent
ao ap
os uma aplicacao do
Se p(z) = an z n + an1 z n1 + . . . + a1 z + a0 , e z0 e um n
algoritmo parcial de Horner, temos, conforme j
a visto,
q1 (z) =

an z n1 +
(an1 + z0 an )z n2 +
(an2 + z0 (an1 + z0 an )) z n2 +

r1

(an3 + z0 (an2 + z0 (an1 + z0 an ))) z n3 + . . .


a0 + z0 (a1 + z0 (a2 + z0 (a3 + z0 a4 )))

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

53

Introduca
o ao C
alculo Numerico

Razes de Polin
omios

onde q1 (z) tem n termos envolvendo an e, pela denicao do algoritmo, r1 p(z0 ). Mas quem e
q1 (z)? O polin
omio quociente nada mais e do que o valor da derivada de p, avaliada em z = z0 .
Isto pode ser visto se igualarmos os coecientes de mesma potencia da derivada p (z0 ) e q1 (z0 ):
n1 
n
=
a = nan
z
:
na
n
0
n2 
n1 i=1 n
z0
: (n 1)an1 =
i=1 an1 = (n 1)an1
..
.
2
3
=
a3 = 3a3
3a3
z0 :
i=1
2
[z0 ] :
2a2
=
a2 = 2a2
i=1
1
a1
=
i=1 a1 = a1
pois existem n termos envolvendo an , n 1 termos envolvendo an1 , e assim por diante. Alem
disso, no i-esimo termo, existem i produtos envolvendo z0 , o que equivale a z0i .
Agora, note que se aplicarmos mais uma vez o algoritmo parcial de Horner, sobre q1 (z), obteremos q2 (z)2 e r2 p (z0 ), por analogia. Dessa forma, podemos, aplicando sucessivamente duas
vezes o algoritmo parcial de Horner, obter p(z0 ) e p (z0 ), de forma bastante economica e simples.
Isso nos leva a obter uma vers
ao modicada do metodo de Newton-Raphson para o calculo de
uma raiz de um polin
omio, conforme descrito a seguir.
3.5.3.2

O m
etodo de Newton-Raphson usado em conjunto com o algoritmo parcial
de Horner

O metodo de Newton-Raphson, para se determinar uma raiz de um polin


omio, p(z) = 0, pode ser
expresso por
p(zk )
zk+1 = zk 
, k = 1, 2, . . .
p (zk )
onde z1 e uma estimativa inicial para a raiz. Ora, como a cada iteracao precisamos avaliar p e p no
mesmo ponto zk , e conveniente que combinemos a correcao da estimativa zk com duas aplicacoes
do algoritmo parcial de Horner, usando z0 = zk .
Os algoritmos a seguir ilustram como combinar de forma efetiva os dois processos:
Algoritmo 3.5.3 p(x) e p (x) via Horner parcial
proc horner parcial 2(input: n, [a0 , a1 , . . . , an ], z0 ; output: , )
an
0
for k = n 1, n 2, . . . , 0 do
+ z0
ak + z 0
endfor
endproc

2 Note

que q2 (z) ser


a equivalente a p (z0 ) quando avaliarmos q2 (z0 ).

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

54

Introduca
o ao C
alculo Numerico

Razes de Polin
omios

Figura 3.1: Gr
aco de p(z) = z 4 4z 3 + 7z 2 5z 2 no intervalo [1, 1].
Algoritmo 3.5.4 Newton-Raphson para polin
omios
omio(input: n, [a0 , a1 , . . . , an ], z, , , kmax ;
proc newton raphson polin
output: z, k)
z0 z
call horner parcial 2(n, [a0 , a1 , . . . , an ], z0 ; , )
for k = 1, 2, . . . , kmax do
z z0

if | z z0 | < OR | | <  then


break
endif
z0 z
call horner parcial 2(n, [a0 , a1 , . . . , an ], z0 ; , )
endfor
endproc
Note que e , ap
os a execucao do algoritmo horner parcial 2, contem os valores de p(z0 ) e
p (z0 ). O exemplo abaixo mostra como proceder usando esses dois algoritmos em um problema
tpico:
Exemplo 3.12 Para p(z) = z 4 4z 3 + 7z 2 5z 2, calcule uma raiz de p(z) = 0, usando como
estimativa inicial z1 = 0.
Solucao: A Figura 3.1 mostra o gr
aco do polin
omio no intervalo [1, 1]. Executando o algoritmo
uencia de valores:
newton raphson polinomio, obtemos a seguinte seq
k
1
2
3
4
5

p(zk )
2, 00000
1, 40160
1, 46322
0, 00226
0, 00000

p (zk )
5, 00000
12, 77600
10, 17322
9, 86030
9, 85537

zk
0, 40000
0, 29029
0, 27591
0, 27568
0, 27568

os quais convergem rapidamente para a raiz 0, 27568 naquele intervalo.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

55

Introduca
o ao C
alculo Numerico

3.6

Razes de Polin
omios

Razes complexas de equa


c
oes polinomiais

A cada par de razes complexas conjugadas de um polin


omio com coecientes reais p(z) = an z n +
n1
an1 z
+ . . . + a1 z + a0 esta associado um fator quadr
atico de p(z) da forma z 2 z , onde
, IR. Se R = a b i e uma raiz de p(z), ent
ao = 2a e = (a2 + b2 ). De maneira geral,
p(z) pode ser escrito como
p(z) = (z 2 z )q(z) + b1 (z ) + b0 ,

(3.3)

onde os termos b1 (z ) + b0 sao o resto da divisao de p(z) por z z e q(z) e um polin


omio
de grau n 2 que pode ser representado por
q(z) = bn z n2 + bn1 z n3 + . . . + b4 z 2 + b3 z + b2 ,

(3.4)

Desta forma, p(z) ca


p(z) = (z 2 z )(bn z n2 + bn1 z n3 + . . . + b3 z + b2 ) + b1 (z ) + b0

(3.5)

e os termos podem ser expandidos de maneira que


bn z n + (bn1 bn )z n1 + (bn2 bn1 bn )z n2 + . . .
(bk bk+1 bk+2 )z k + . . . + (b1 b2 b3 )z + b0 b1 b2 ,

p(z) =
+

(3.6)
(3.7)

Comparando a equacao acima com p(z) = an z n + an1 z n1 + . . . + a1 z + a0 , chega-se `as


f
ormulas recursivas para o calculo dos coecientes bk de q(z):
bn

an

bn1

an1 + bn

bk

ak + bk+1 + bk+2

(3.8)
para k = n 2, n 3, . . . , 1, 0,

O calculo destes coecientes tambem pode ser expresso na forma de uma tabela, semelhante
ao visto anteriormente no metodo de Horner: O exemplo a seguir ilustra o procedimento.
an

an2

an3

ak

a2

a1

a0

bn

bn1

bk+2

b4

b3

b2

bn

bn1

bn2

bk+1

b3

b2

b1

bn1

bn2

bn3

bk

b2

b1

b0

an1

bn

Exemplo 3.13 Mostre como dividir p(z) = z 5 + 6z 4 20z 2 + 22z + 8 por z 2 + 2z 3. Solu
c
ao:
Neste caso, = 2 e = 3. Montando a tabela, tem-se
1

20

22

12

15

10

3
2
1

Sendo assim, p(z) = (z 2 + 2z 3)(z 3 + 4z 2 5z + 2) + 3(z + 2) + 8.


Esta ideia e usada no desenvolvimento do metodo de Bairstow para o calculo de coecientes
e de tal forma que o fator quadr
atico z 2 z seja um divisor exato3 de p(z).
3 Para

que z 2 z seja um divisor exato de p(z),


e preciso que b1 = b0 = 0.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

56

Introduca
o ao C
alculo Numerico

3.6.1

Razes de Polin
omios

M
etodo de Bairstow

A partir de uma estimativa inicial z 2 0 z 0 , p(z) pode ser expresso como


p(z) = (z 2 0 z 0 )q(z) + b1 (z 0 ) + b0 ,

(3.9)

Quando b1 e b0 sao pequenos, z 2 0 z 0 ca pr


oximo de um fator de p(z). Procura-se
oximo de
encontrar ent
ao novos valores 1 e 1 tal que o fator z 2 1 z 1 que ainda mais pr
um fator de p(z). Observa-se que b0 e b1 sao funcoes de e de , ou seja,
b0
b1

= b0 (, )
= b1 (, ).

(3.10)
(3.11)

Os novos valores 1 e 1 satisfazem as relacoes


1

0 +

(3.12)

0 +

(3.13)

onde e , as correcoes a serem feitas aos valores de e de , sao calculadas atraves da


solucao do sistema de equacoes nao lineares

b0 (, ) = 0
(3.14)
b1 (, ) = 0
Usando o metodo de Newton para funcoes de duas vari
aveis (vide Captulo 5), tem-se

b0
0
b
= b0
+
(3.15)
b1
b1
+ = b1
onde as derivadas parciais sao calculadas em 0 e em 0 .
Como nao e possvel expressar b0 e b1 explicitamente, como funcoes de e de , as derivadas
tambem nao podem ser calculadas explicitamente. Por isto, existem as f
ormulas recursivas de
Bairstow para calcular numericamente as derivadas parciais.
b1 b0
e
, deriva-se as expressoes em (3.8) em relacao a , tendo em mente que
Para obter

os coecientes ak sao todos constantes e que os bk sao todos funcoes de , exceto bn . Portanto,
bn
=0e

bn1

bn2

bn3

bn

bn1 +

bn1

bn1
bn2
bn2 +
+

..
.
b1

b0

=
=

b3
b2
+

b2
b1
b1 +
+

b2 +

Repetindo o procedimento acima para calcular tambem as derivadas em relacao a , obtem-se


a seguinte relacao entre as derivadas parciais:
bk
bk1
=

para k = n, n 1, . . . , 1,

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

(3.16)

57

Introduca
o ao C
alculo Numerico

Razes de Polin
omios

Estabelecendo-se que
ck+1 =

bk
,

k = 0, 1, . . . , n 1,

para

(3.17)

as equacoes acima podem ser expressas como


cn

bn

cn1
ck

=
=

bn1 + cn
bk + ck+1 + ck+2

(3.18)
para

k = n 2, n 3, . . . , 2, 1,

(3.19)
(3.20)

ou conforme a tabela 3.2.


an

an2

an3

a3

a2

a1

a0

bn

bn1

b5

b4

b3

b2

bn

bn1

bn2

b4

b3

b2

b1

bn1

bn2

bn3

b3

b2

b1

b0

cn

cn1

c5

c4

c3

cn

cn1

cn2

c4

c3

c2

cn1

cn2

cn2

c3

c2

c1

an1

bn

cn

Tabela 3.2: Tabela para c


alculo dos coecientes bk e ck .
Com isto, pode-se nalmente formar o sistema

c1 + c2
c2 + c3

=
=

b0
b1

(3.21)

o qual deve ser resolvido para determinar os valores 1 e 1 .


Generalizando, para se calcular um fator z 2 z do polin
omio p(z) = an z n + an1 z n1 +
. . . + a1 z + a0 e as razes correspondentes, executa-se os seguintes passos:
1. Obtem-se uma estimativa a + bi para a raiz (possivelmente atraves de forma graca) e, a
partir dessa estimativa, calcula-se 0 = 2a e 0 = (a2 + b2 );
2. Utiliza-se a tabela 3.2 para calcular os coecientes bk para k = 0, 1, . . . , n e ck para k =
1, . . . , n.
3. Calcula-se, a partir do sistema montado com os coecientes c1 , c2 e c3 , as correcoes e
e as novas aproximacoes 1 e 1 .
4. Considera-se 1 como sendo 0 e 1 como sendo 0 e repete-se os passos de 1 a 4 ate que
ocorra convergencia, ou seja, ate que b0 0 e b1 0.
5. Calcula-se as correspondentes razes de p(z) a partir da f
ormula de Bhaskara.
Esse procedimento pode ser expresso de forma algortmica conforme expresso nos algoritmos 3.6.1
(o qual calcula os valores de b0 , b1 , c1 , c2 , c3 , conforme a tabela 3.2) e 3.6.2.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

58

Introduca
o ao C
alculo Numerico

Razes de Polin
omios

Algoritmo 3.6.1 Algoritmo de Horner quadr


atico
proc horner quadratico(input: a, , , n; output: b0 , b1 , c1 , c2 , c3 )
% a contem os coecientes do polinomio
b n an
bn1 an1 + bn
fori n 2, n 3, . . . , 0 do
bi ai + bi+1 + bi+2
endfor
cn b n
cn1 bn1 + cn
for i n 2, n 3, . . . , 1 do
ci bi + ci+1 + ci+2
endfor
endproc

Algoritmo 3.6.2 Metodo de Bairstow


proc bairstow(input: a, ra, rb, n, kmax ; output: z1 , z2 )
% a contem os coecientes do polinomio; ra e rb sao as partes
% real e imaginaria da estimativa da raiz de p(z)
2 ra
(ra2 + rb2 )
b0 1
b1 1
fori 1, 2, . . . , kmax do
while(| b0 | > 0.0) AND (| b1 | > 0.0) do
(b0 , b1 , c1, c2 , c3 )  horner

quadratico(a,

 , , n)

b0
c1 c2
=
para e
Resolve
c2 c3
b1

+
+
endwhile
endfor
Calcule as raizes z1 e z2 da equacao z 2 z = 0
endproc
O metodo de Bairstow e eciente, pois ele fornece uma maneira simples de calcular as derivadas
parciais requeridas e, alem disso, apresenta convergencia quadr
atica. Sua principal deciencia e a
diculdade na escolha dos valores iniciais 0 e 0 a m de garantir convergencia.
Exemplo 3.14 Para p(z) = z 4 + z 3 + 3z 2 + 4z + 6, considere 0 = 2, 1 e 0 = 1, 9. Use o
metodo de Bairstow para encontrar 1 , 1 , 2 , 2 , . . ., os fatores quadr
aticos e as razes de p(z).
Solu
c
ao: A tabela para calcular 1 e 1 e
O sistema linear resultante, que envolve e e

12, 2740 + 8, 2300 = 1, 7701
(3.22)
8, 2300 3, 2000 = 1, 0710
A soluc
ao deste sistema produz = 0, 11069718 e = 0, 04998819, o que implica que os
novos valores s
ao
1 = 1, 98930282

1 = 1, 94998819,

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

59

Introduca
o ao C
alculo Numerico
1, 0000

Razes de Polin
omios
1, 0000

3, 0000

4, 0000

6, 0000

1, 9000

2, 0900

6, 4790

2, 1000

2, 3100

7, 1610

2, 2491

1, 1000

3, 4100

1, 0710

1, 7701

1, 9000

6, 0800

2, 1000

6, 7200

17, 2830

3, 2000

8, 2300

12, 2740

1, 9000
2, 1000
1, 0000
1, 9000
2, 1000
1, 0000

A pr
oxima iterac
ao fornece 2 = 1, 99999277 e 2 = 2, 00015098, ou seja, as seq
uencias
est
ao convergindo para = 2 e = 2. Logo, p(z) pode ser fatorado como
p(z) = (x2 + 2x + 2)(x2 x + 3).
As quatro razes complexas, calculadas com a f
ormula de Bhaskara, s
ao
1 + i,

3.7

1 i,

0, 5 + 1, 65831239 i,

0, 5 1, 65831239 i.

Exerccios

Exerccio 3.1 Aplique a regra de Descartes ao polin


omio p(z) = 2x4 x3 + 4x2 3x + 7.
Exerccio 3.2 De que maneira as regras de Du Gua e da lacuna podem ser aplicadas ao polin
omio
p(z) = 2x4 x3 3x + 7?
Exerccio 3.3 Enumerar e localizar as razes de p(z) = 0, onde p(z) = x5 +x4 9x3 x2 +20x12.
Exerccio 3.4 Estimar a localizaca
o das razes para p(z) = x5 + x4 9x3 x2 + 20x 12.
Exerccio 3.5 Utilizar o metodo gr
aco e o teorema de Bolzano para estudar as seguintes func
oes:
1. f (x) = x2 + e3x 3
2. f (x) = ex x
3. f (x) = sen(x) 2ex , onde pode variar.
Exerccio 3.6 Calcular todas as razes do polin
omio p(x) = x3 x 1.
Exerccio 3.7 Calcular todas as razes de p(z) = x4 2x3 + 4x2 4x + 4 iniciando com 0 = 1
e 0 = 1.
Exerccio 3.8 Efetue a divis
ao de p(z) = x5 3x4 + 7x3 10x2 + 10x 7 por x2 + 2x + 1.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

60

Captulo 4

Resolu
c
ao de Sistemas de
Equac
oes Lineares
4.1

Introdu
c
ao

A resolucao de sistemas de equacoes lineares e um dos problemas numericos mais comuns em


aplicacoes cientcas. Tais sistemas surgem, por exemplo, em conex
ao com a solucao de equacoes
diferenciais parciais, determinacao de caminhos otimos em redes (grafos) e interpolacao de pontos,
dentre outros.
Consideraremos aqui, inicialmente, a resolucao de um sistema de equacoes lineares de n
equacoes a n vari
aveis (inc
ognitas),
a11 x1 + a12 x2 + . . . + a1n xn
a21 x1 + a22 x2 + . . . + a2n xn
..
.

= b1
= b2

an1 x1 + an2 x2 + . . . + ann xn

= bn

ou, escrito na forma matricial,


Ax = b
onde A e uma matriz quadrada, de ordem n,

a11 a12 . . .
a21 a22 . . .

..
..
..
.
.
.
an1

an2

(4.1)

e x e b sao vetores de n elementos,

a1n
x1
b1

a2n
x2 b2
=

..
.
.
. .. ..

. . . ann

xn

bn

A matriz A pode apresentar, dependendo do problema de onde o sistema foi derivado, uma
certa estrutura e esparsidade. Uma matriz e dita estruturada se os seus elementos estao dispostos
de uma determinada forma como, por exemplo, ao longo de algumas diagonais e/ou colunas/linhas
(guras 4.1-a) e 4.1-b), como um tri
angulo (a matriz em 4.1-c e dita triangular inferior) ou, ainda,
sem estrutura qualquer (4.1-d).
Alem disso, as matrizes mostradas na gura 4.1 apresentam alguns elementos nulos. Uma
matriz e dita esparsa se ela contem, aproximadamente, em torno de 90% de elementos nulos; caso
contr
ario, ela e dita densa. Em conseq
uencia, pode-se dizer que um sistema e esparso ou denso,
dependendo de como e a matriz de coecientes do sistema.
Uma das principais metas a se atingir, na resolucao de um sistema de equacoes lineares, e
obter a sua solucao no menor espaco de tempo e, se possvel, sem alterar a sua estrutura e/ou
esparsidade. Por isso, existem certos metodos e/ou algoritmos especcos para se resolver alguns
sistemas particulares, conforme veremos a seguir.
61

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares



(a)

, (b)


(c)


, (d)

Figura 4.1: Estruturas tpicas de matrizes: (a) tridiagonal, (b) echa, (c) triangular inferior, (d)
n
ao-estruturada.

4.2

Resolu
c
ao de Sistemas Triangulares de Equa
c
oes Lineares

Se o sistema (4.1) apresenta sua matriz de coecientes A na forma triangular seja ela inferior,
como mostrado na gura 4.1-c, ou superior ent
ao e possvel resolve-lo de forma imediata, atraves
de substituic
ao direta, para matrizes triangulares inferiores, e de retro-substituic
ao, para matrizes
triangulares superiores.
Suponha ent
ao um sistema triangular inferior,
Lx = b
onde

L=

(4.2)

l11
l21
l31
..
.

l22
l32
..
.

l33
..
.

ln1

ln2

ln3

..

.
. . . lnn

Nesse caso, as incognitas x1 , x2 , . . ., xn , podem ser facilmente determinadas como


x1

x2

x3

=
..

xn

b1
l11
b2 l21 x1
l22
b3 l31 x1 l32 x2
l33

bn

n1

j=1 lnj xj

lnn

O processo acima, denominado de substituic


ao direta, pode ser expresso de forma algortmica
como

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

62

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

Algoritmo 4.2.1 Substituic


ao Direta
ao direta(input: L, b; output: x)
proc substituic
for i = 1, 2, . . . , n do
s0
for j = 1, 2, . . . , i 1 do
s s + lij xj
endfor
xi bils
ii
endfor
endproc
De forma similar, podemos resolver o sistema triangular superior
Ux = b

onde

u11

U =

u12
u22

u13
u23
u33

(4.3)
...
...
...
..
.

u1n
u2n
u3n
..
.

unn
Nesse caso, as incognitas x1 , x2 , . . ., xn , podem ser facilmente determinadas como
xn

xn1

xn2

=
..

x1

bn
unn
bn1 un1,n xn
un1,n1
bn2 un2,1 x1 un2,2 x2
un2,n2

b1

n
j=2

u1j xj

u11

Note que, devido a` estrutura de U , as incognitas sao obtidas na ordem contr


aria a`quela com
que sao obtidas as inc
ognitas em um sistema triangular inferior. Esse processo e denominado de
retro-substituic
ao e pode ser expresso de forma algortmica como
Algoritmo 4.2.2 Retro-substituic
ao
ao(input: U , b; output: x)
proc retro substituic
for i = n, n 1, . . . , 1 do
s0
for j = i + 1, i + 2, . . . , n do
s s + uij xj
endfor
xi bui s
ii
endfor
endproc

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

63

Introduca
o ao C
alculo Numerico

4.3

Resoluc
ao de Sistemas de Equac
oes Lineares

Resolu
c
ao de Sistemas de Equa
c
oes Lineares por Elimina
c
ao Gaussiana

Se o sistema de equacoes lineares n


ao apresenta uma forma simples, tal que se possa determinar
as incognitas facilmente, ent
ao podemos efetuar modicacoes no sistema de tal forma que o
transformamos em um sistema triangular, preservando a solucao do sistema anterior. Uma vez
feitas estas modicacoes, a solucao e obtida de forma imediata, conforme visto na secao anterior.
Um processo desse tipo e aquele chamado de eliminac
ao Gaussiana, o qual consiste em se
aplicar operacoes elementares somas e multiplicacoes `as linhas da matriz de coecientes e do
vetor independente b, de tal forma que a matriz passe a ser triangular superior. Suponha, por
exemplo, o sistema

9
4 2 3
x1
1 7 3 x2 = 9
x3
12
4 0 8
cuja solucao e x1 = x2 = x3 = 1. Para transformarmos a matriz A em uma matriz triangular
superior, devemos eliminar os elementos abaixo da diagonal principal de A.
Para tanto, se multiplicamos a primeira linha por a21 /a11 = 1/4 e subtramo-la da segunda,
temos:

4
2
3
x1
9
0 7, 5 3, 75 x2 = 11, 25
x3
4
0
8
12
Agora, para eliminar o termo a31 , multiplicamos a primeira linha por a31 /a11 = 1/1 e subtramo-la
da terceira:

4
2
3
9
x1
0 7, 5 3, 75 x2 = 11, 25
x3
0 2
5
3
Note que os elementos do vetor independente b sao modicados tambem!
A matriz agora e praticamente triangular superior; falta eliminar o termo a32 . Para tanto,
basta multiplicar a segunda linha por a32 /a22 = 2/7, 5 e subtra-la da terceira, de onde

4
2
3
9
x1
0 7, 5 3, 75 x2 = 11, 25
x3
0
0
6
6
Agora, podemos utilizar o algoritmo de retro-substituicao para determinar as inc
ognitas:
x3

x2

x1

1
11, 25 3, 75 1
=1
7, 5
9 (2 1 + 3 1)
=1
4

Podemos sumarizar o processo entao da seguinte forma: para se eliminar os elementos abaixo
da diagonal na k-esima coluna (ou seja, os elementos das linhas k + 1, k + 2, . . ., n na coluna
ik
o para calcularmos um multiplicador z = aakk
para
k), usamos o elemento akk chamado de piv
cada i-esima linha abaixo da linha k. Esse multiplicador ser
a utilizado para multiplicar a k-esima
linha e subtra-la da linha i (incluindo, aqui, os elementos do termo independente b). Uma vez
eliminados todos os elementos abaixo da diagonal principal de A, resta-nos uma matriz triangular
superior, e, ent
ao, podemos determinar a solucao x usando o algoritmo da retro-substituicao.
O processo de eliminacao Gaussiana pode ser descrito de forma algoritmica como

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

64

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

Algoritmo 4.3.1 Eliminac


ao Gaussiana
o Gaussiana(input: A, b; output: x)
proc eliminaca
for k = 1, 2, . . . , n 1 do
for i = k + 1, k + 2, . . . , n do
ik
z aakk
aik 0
for j = k + 1, k + 2, . . . , n do
aij aij zakj
endfor
bi bi zbk
endfor
endfor
call retro substituic
ao(A, b, x)
endproc

4.3.1

Dificuldades

O processo de eliminacao Gaussiana, descrito acima, n


ao consegue resolver todo e qualquer sistema.
Considere, por exemplo, o sistema



0 1
x1
1
=
(4.4)
x2
1 1
2
o qual tem como solucao x1 = x2 = 1. No entanto, se formos aplicar eliminacao Gaussiana a esse
obvio, portanto, que os piv
os n
ao podem ser nulos.
sistema, ele falhar
a, pois o piv
o a11 = 0. E
O sistema (4.4) pode, no entanto, ser modicado, procedendo-se a uma troca de linhas imediatamente temos um sistema triangular superior. No entanto, e possvel que, ao longo do
processo de eliminacao Gaussiana, surja um zero na diagonal principal e n
ao seja possvel, por
qualquer troca de linhas, remove-lo. Nesse caso, o sistema nao tem solucao1 ; o algoritmo para a
eliminacao Gaussiana deve ser modicado adequadamente para se levar em conta tal possibilidade.
O pr
oximo exemplo mostra uma outra diculdade associada ao metodo:



1
1
x1
=
(4.5)
x2
2
1 1
onde 0 <  1, cuja solucao correta e
x1 =
x2 =

1
1 1
12
1 1

No entanto, se aplicarmos eliminacao Gaussiana ao sistema (4.5), obteremos


1

x2 = 2
11 1
x1 = (1 x2 )1 0
o qual obviamente aproxima bem x2 , mas o valor de x1 e completamente errado! Isso acontece
porque, se e pequeno o suciente em um determinado computador, tanto 2 1 quanto 1 1
ser
ao calculados como 1 (devido a` perda de dgitos signicativos na subtracao). Desse exemplo,
tiramos uma outra licao: o piv
o deve, sempre, ser escolhido como o maior possvel, em m
odulo.
O processo de escolha de piv
os, chamado de pivotamento, implica na troca de linhas da matriz
de coecientes (bem como do termo independente b). Computacionalmente, no entanto, n
ao e
1 Esta
e, inclusive, uma maneira de se determinar se o sistema e singular, isto
e, a matriz de coeficientes n
ao tem
inversa.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

65

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

aconselh
avel se movimentar dados na memoria de forma excessiva, pois o tempo de execucao
do algoritmo passa a ser proibitivo. Podemos, no entanto, modicar o algoritmo de eliminacao
Gaussiana utilizando um vetor auxiliar de ndices chamado de p o qual implicitamente diz quais
linhas foram trocadas; os elementos desse vetor sao utilizados para se acessar convenientemente
os elementos da matriz e do termo independente. Note, ainda, que o algoritmo deve ser capaz de
tratar o caso no qual n
ao e necessario se efetuar qualquer troca de linhas.
No algoritmo a seguir, e feito tambem um escalonamento das linhas, isto e, um fator
si = max | aij |,
1jn

i = 1, 2, . . . , n

e calculado para cada linha. Esse fator e utilizado para se escolher um piv
o que seja o maior
relativo aos elementos de uma coluna; em outras palavras, na k-esima coluna, iremos selecionar o
maior valor | api k |/spi nas linhas k i n.
O algoritmo para a eliminacao Gaussiana com pivotamento e escalonamento pode ser expresso
como segue:
Algoritmo 4.3.2 Eliminac
ao Gaussiana com pivotamento e
escalonamento
o Gaussiana pivotamento e escalonamento(input: A, b; output: x)
proc eliminaca
for i = 1, 2, . . . , n do
pi i
si max1jn | aij |
endfor
for k = 1, 2, . . . , n 1 do
jk
for i = k + 1, k + 2, . . . , n do
if (| api k |/spi | apj k |/spj ) then
ji
break
endif
endfor
q pk
pk pj
pj q
if (apk k = 0) then
break
endif
for i = k + 1, k + 2, . . . , n do
a
z appi kk
k
api k z
for j = k + 1, k + 2, . . . , n do
api j api j zapk j
endfor
bpi bpi zbpk
endfor
endfor
for i = n,
n 1, . . . , 1 do


xi bpi nj=i+1 api j xj /api j
endfor
endproc

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

66

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

Note que os fatores appi kk utilizados para se eliminar os elementos abaixo da diagonal s
ao
k
armazenados na matriz A, onde se colocariam zeros (conforme utilizado no algoritmo da eliminacao
Gaussiana sem pivotamento). Isso e feito de forma a se poder obter, a partir do algoritmo acima,
a fatoracao LU da matriz A, conforme veremos na secao a seguir.
O exemplo abaixo mostra o funcionamento do algoritmo descrito acima:
Exemplo 4.1 Calcule a soluc
ao do sistema

2
3 6
10
x1
1 6
8 x2 = 13
x3
3 2
1
2
Solu
c
ao: Inicialmente, temos p = (1, 2, 3) (de acordo com o algoritmo) e s = (6, 8, 3) (verique,
por inspec
ao). A cada passo, temos:
k
1

p
i
z
(3, 2, 1) 2 0, 3333
3 0, 6667

0, 6667
4, 3333 6, 6667
11, 3333
7, 6667 b = 12, 3333
A = 0, 3333 5, 3333
3, 0000 2, 0000
1, 0000
2, 0000
k
2

j
3

j
p
i
3 (3, 1, 2) 3

z
1, 2308

0, 6667
4, 3333 6, 6667
11, 3333
A = 0, 3333 1, 2308 0, 5385 b = 1, 6154
3, 0000 2, 0000
1, 0000
2, 0000
Uma vez efetuada a eliminac
ao, procede-se ao c
alculo das inc
ognitas:
i=3 :
i=2 :
i=1 :

4.3.2

1, 6154
=3
0, 5385
11, 3333 (20)
p2 = 1, x2 =
=2
4, 3333
2 (1)
p1 = 3, x1 =
=1
3
p3 = 2, x3 =

Elimina
c
ao Gaussiana e a Fatora
c
ao LU

Conforme visto na secao anterior, o algoritmo de eliminacao Gaussiana com pivotamento e escalonamento produz, de forma implcita, uma matriz triangular inferior, uma matriz triangular
superior e um vetor de permutacao. Como essas matrizes foram obtidas por transformacoes sobre
a matriz A original, podemos de alguma forma relacion
a-las entre si.
Primeiramente, analisemos o vetor de permutacao; seus elementos indicam qual linha foi
trocada com outra, i.e., se pj = k, isso signica que a linha j foi trocada com a linha k. Essa
permutacao pode ser expressa, tambem, atraves de uma matriz de permutacao, P , a qual tem
como elementos apenas o 0 e o 1. No exemplo mostrado na secao anterior, obtemos p = (3, 1, 2)
ao m; ou seja, a linha 3 est
a no lugar da linha 1; a linha 1 est
a no lugar da linha 2 e, por m, a
linha 2 est
a na linha 3. A matriz de permutacao correspondente e

0 0 1
P = 1 0 0 .
0 1 0

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

67

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

A relacao existente entre A e as matrizes triangular inferior, L; triangular superior, U ; e a


matriz de permutacao P e a seguinte:
P A = LU
onde L e triangular inferior com diagonal unit
aria e os seus elementos abaixo da diagonal principal
encontram-se armazenados na matriz A, ao nal do algoritmo de eliminacao Gaussiana com
pivotamento e escalonamento, porem possivelmente permutados.
Usando mais uma vez o exemplo anterior, temos:

0 0
1 0
0 1

PA

=
1
2
3 6
0 1 6
8 =
0
3 2
1
=

LU

1
0 0
3
0, 6667
1 0 0
0, 3333 1, 2308 1
0

3 2
1
2
3 6
1 6
8

2
1
4, 3333 6, 6667
0 0, 5385

onde as matrizes L e U foram permutadas adequadamente, usando a matriz P . Pode-se vericar,


por inspecao, que o lado direito da igualdade e a matriz A com as suas linhas trocadas conforme
expresso por P .
A fatoracao LU e u
til quando, para uma mesma matriz de coecientes A, temos de resolver
m sistemas de equacoes lineares Ax(j) = b(j) , com termos independentes b(1) , b(2) , . . ., b(m) .
Basta, entao, obter a fatoracao com o algoritmo de eliminacao Gaussiana com pivotamento e
ltimas tres linhas do algoritmo), obtendo L, U e P . Valendoescalonamento (sem calcular xi as u
se da igualdade P Ax = P b e, como P A = LU , podemos escrever L(U x) = b, de onde a solucao
de um sistema Ax = b e obtida resolvendo-se dois sistemas triangulares:
Ly

= Pb

Ux

= y

A fatoracao LU , bem como a solucao dos sistemas triangulares acima, s


ao expressas pelos algoritmos
4.3.3 e 4.3.4.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

68

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

Algoritmo 4.3.3 Fatoraca


o LU
ao LU(input: A, b; output: A, b, p)
proc fatorac
for i = 1, 2, . . . , n do
pi i
si max1jn | aij |
endfor
for k = 1, 2, . . . , n 1 do
jk
for i = k + 1, k + 2, . . . , n do
if (| api k |/spi | apj k |/spj ) then
ji
break
endif
endfor
q pk
pk pj
pj q
if (apk k = 0) then
break
endif
for i = k + 1, k + 2, . . . , n do
a
z appi kk
k
api k z
for j = k + 1, k + 2, . . . , n do
api j api j zapk j
endfor
endfor
endfor
endproc

Algoritmo 4.3.4 Resolve sistema usando LU


proc resolve sistema LU(input: A, b, p; output: x)
for i = 1, 2, . . . , n do
i1
zi bpi j=1
api j zj
endfor
for i = n,
n 1, . . . , 1 do

n
xi zi j=i+1 api j xj /api i
endfor
endproc

4.3.3

O Custo Computacional da Fatora


c
ao LU

O custo computacional de um algoritmo numerico e, normalmente, medido em termos do n


umero
de multiplicacoes e/ou divisoes, ja que adicoes e subtracoes sao efetuadas em uma fracao do tempo
necessario para aquelas outras duas operacoes aritmeticas. Assim, ao nos referirmos a operacoes,
estaremos nos referindo a multiplicacoes e/ou divisoes.
Para se obter a fatoracao LU de uma matriz A, vemos que, quando k = 1, no algoritmo
respectivo, para cada uma das n 1 linhas abaixo da linha 1, e calculado um multiplicador e,
ent
ao, um m
ultiplo da primeira linha e subtrado daquelas n 1 linhas; isso nos d
a n operacoes.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

69

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

Como n 1 linhas s
ao processadas dessa forma, temos um total de n(n 1) n2 operacoes para
a primeira coluna.
Para as demais colunas, note que o mesmo raciocnio acima e valido, mas e como se a matriz
diminusse de uma linha e uma coluna a cada novo valor de k. Assim, para todos os n 1 piv
os
a serem calculados, teremos:
n2 + (n 1)2 + . . . + 32 + 22 =

1
1 3 1 2 1
1
n + n + n 1 n3 + n2
3
2
6
3
2


a qual e obtida usando nk=1 k 2 = 16 n(n + 1)(2n + 1).
Para se corrigir o termo independente b, gasta-se n 1 operacoes, depois n 2, e assim
sucessivamente, de onde
(n 1) + (n 2) + . . . + 1 =

1 2 1
n n.
2
2

Finalmente, o processo de retro-substituicao custa


1 + 2 + 3 + ...+ n =

1 2 1
n + n
2
2

operacoes.
Combinando todas as expressoes, podemos dizer que, para se resolver m sistemas de equacoes
lineares Ax(i) = b(i) , usando a fatoracao LU , apresenta um custo computacional de aproximadamente


1
1 3
n +
+ m n2
3
2
o que mostra que e mais eciente efetuar a fatoracao LU apenas uma vez, e depois resolver os m
sistemas lineares, do que se resolvessemos cada sistema independentemente, pois o custo, nesse
caso, seria da ordem de 13 mn3 .

4.3.4

Resolu
c
ao de sistemas com m
ultiplos termos independentes

Existem situacoes que requerem a solucao de v


arios sistemas lineares, todos eles com a mesma
matriz de coecientes, porem com diferentes termos independentes. Como visto na secao 4.3.3, e
mais vantajoso, nesse caso, realizar-se a fatoracao LU de A, apenas uma vez; a solucao de todos os
sistemas e obtida, simplesmente, calculando-se as solucoes dos sistemas triangulares Ly (i) = P b(i)
e U x(i) = y (i) , onde o ndice (i) identica um sistema especco.
4.3.4.1

C
alculo da inversa de uma matriz

Uma dessas situacoes e o calculo da inversa de uma matriz. Note que tal calculo n
ao e realizado
com o m de se resolver um sistema de equacoes (utilizando-se a relacao x = A1 b; aplicacoes
que envolvam certas decomposicoes de matrizes exigem que se escreva um vetor v como XDX 1 ,
onde X e D sao matrizes.
Seja entao a matriz A, cuja inversa A1 e desejada. Como, por denicao, o produto entre uma
matriz e a sua inversa e a matriz identidade I,
AA1 = I

(4.6)

podemos escrever o problema de determinacao da inversa na forma de um sistema de equacoes


lineares com m
ultiplos termos independentes (e, conseq
uentemente, m
ultiplas solucoes) como
AX = I

(4.7)

onde X A1 , i.e., as colunas (X)i sao as colunas de A1 .

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

70

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

Dessa forma, obtendo-se a fatoracao LU de A, a primeira coluna de A1 e obtida resolvendo-se


os sistemas

(i)
0
(4.8)
Ly = P

.
..

0
e
U (X)1 = y (1)
(4.9)
e a segunda coluna e obtida como

Ly

(2)

=P

1
0
..

(4.10)

0
e

U (X)2 = y (2)

(4.11)

e as demais colunas sao obtidas similarmente. Note que, computacionalmente, basta usar apenas
um vetor y, sendo o mesmo reutilizado a cada novo sistema resolvido.
Exemplo 4.2 Obtenha a inversa da matriz

10 10 20
A = 10 10 10
20 10 10
Solucao: Aplicando-se o algoritmo 4.3.3, obtemos os fatores L, U e P :

1
0 0
L = 0, 5 1 0
0, 5 1 1

20 10 10
5
5
U = 0
0
0
10

0 0 1
P = 0 1 0
1 0 0
Agora, aplica-se o algoritmo 4.3.4 usando-se como termo independente o vetor (1, 0, . . . , 0)T ,
i.e., resolve-se

1
Ly (1) = P 0
0

1
0 0
0
0, 5 1 0 y (1) = 0
0, 5 1 1
1

0
(1)
y
= 0
1
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

71

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

e
U (X)1

20 10 10
0
5
5 (X)1
0
0
10

(X)1

y (1)

0
0
1

0
0, 1
0, 1

Para a segunda coluna, temos

Ly (2)

1
0
0, 5 1
0, 5 1

0
0 y (2)
1
y (2)

0
= P 1
0

0
= 1
0

0
= 1
1

e
U (X)2

20 10 10
0
5
5 (X)2
0
0
10

(X)2

y (2)

0
1
1

0, 1
0, 3
0, 1

Finalmente, para a terceira coluna, temos

Ly (3)

1
0
0, 5 1
0, 5 1

0
0 y (3)
1
y (3)

0
= P 0
1

1
= 0
0

1
= 0, 5
0

U (X)3

20 10 10
0
5
5 (X)3
0
0
10

(X)3

y (3)

1
0, 5
0

0, 1
0, 1
0

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

72

Introduca
o ao C
alculo Numerico
Assim, A1 e dada por

Resoluc
ao de Sistemas de Equac
oes Lineares

A1

0
0, 1
0, 1
= X = 0, 1 0, 3 0, 1
0, 1
0, 1
0

e pode-se vericar que


AA1

10 10 20
0 0, 1 0, 1
10 10 10 0, 1 0, 3 0, 1
20 10 10
0, 1 0, 1 0

4.4

= I

0 0
1 0 .
0 1

1
= 0
0

Resolu
c
ao Iterativa de Sistemas de Equa
c
oes Lineares

Em certos casos, nao e conveniente se resolver o sistema Ax = b atraves de um metodo direto


como a eliminacao Gaussiana. Considere, por exemplo, a matriz A derivada da discretizacao em
diferencas-nitas (com estencil de 5 pontos) do operador diferencial 2 , cuja estrutura e mostrada
na gura 4.2; se aplicarmos a fatoracao LU sobre A, alguns dos elementos que eram nulos em
A passar
ao a ser diferentes de zero, tanto em L como em U (gura 4.3). Note que A tem 64
elementos n
ao-nulos, ao passo que L e U apresentam um total de 134 elementos nao-nulos. A
Estrutura da matriz A
0

10

12

14

16
0

8
10
nz = 64

12

14

16

Figura 4.2: Estrutura da matriz A derivada da discretizac


ao em diferencas-nitas do operador
diferencial 2 .
eliminacao Gaussiana est
a, nesse caso, destruindo a estrutura e/ou a esparsidade da matriz, o que
n
ao e aconselhavel, principalmente para matrizes grandes (n > 10000).
Por outro lado, mesmo quando a matriz e densa ou seja, a insercao de elementos n
ao-nulos
n
ao implicar
a em aumento consideravel do uso da memoria pode n
ao ser aconselhavel utilizar
um metodo direto, se a solucao desejada necessita apenas um n
umero pequeno de dgitos corretos.
Estrutura da matriz L

Estrutura da matriz U

10

10

12

12

14

14

16

16
0

8
10
nz = 67

12

14

16

8
10
nz = 67

12

14

16

Figura 4.3: Estruturas da matriz L (`


a esquerda) e U (`
a direita), resultantes da fatorac
ao LU de
A.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

73

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

Uma outra razao, que justica o uso de metodos iterativos (ver [13]), e o fato de seu custo
computacional ser proporcional a n2 (e, `as vezes, ate mesmo a n), o que os torna bastante
competitivos, se comparados a um metodo direto (cujo custo e proporcional a n3 ).

4.4.1

Normas de vetores e de matrizes

Como todo processo iterativo, e necessario saber quando se alcancou a convergencia do processo
em nosso caso, obteve-se uma estimativa xk que aproxima sucientemente x = A1 b. Fazendo
uma analogia com o metodo da bisseccao (ver secao 2.2), onde se detectava a convergencia quando
o comprimento do intervalo era menor do que uma toler
ancia pre-especicada, aqui vamos tambem
calcular um comprimento de um vetor (em IRn ).
Para se calcular esse comprimento, utiliza-se uma norma. Uma norma de um vetor x pertencente a um espaco vetorial V e uma funcao || x || : V IR+ que obedece aos seguintes
postulados:
|| x || > 0, se x = 0, x V
|| x || = | | || x ||,
|| x + y || || x || + || y ||

se IR, x V

se x, y V (desigualdade triangular)

A norma de um vetor e o seu comprimento no espaco vetorial V ; e uma generalizacao da


nocao de valor absoluto de um n
umero real. Para o espaco vetorial IRn , a norma mais conhecida
e a chamada norma Euclidiana, denida por

|| x ||2 =

n


 12
x2i

(4.12)

i=1


onde x = (x1 , x2 , . . . , xn )T . Particularmente, em IR2 , temos || x ||2 = x21 + x22 , que e a expressao
para a dist
ancia de um ponto com coordenadas (x1 , x2 ) em relacao `a origem do sistema de eixos
cartesianos.
Existem outras normas que sao bastante usadas em calculos numericos, como a norma-l
n

|| x || = max | xi |
i=1

e a norma-l1,
|| x ||1 =

n


| xi |

(4.13)

(4.14)

i=1

as quais sao bem mais simples e menos onerosas de se calcular do que a norma Euclidiana.

4.4.2

Normas de matrizes

Uma vez especicada uma norma de um vetor, a norma matricial subordinada e denida como
|| A || = sup || Au || : u IRn , || u || = 1

(4.15)

para uma matriz A n n. Pode-se vericar que


|| Ax || || A || || x ||,

x IRn

Por exemplo, a norma matricial subordinada da norma vetorial || || e dada por


n

|| A || = max
i=1

n


| aij |

(4.16)

j=1

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

74

Introduca
o ao C
alculo Numerico

4.4.3

Resoluc
ao de Sistemas de Equac
oes Lineares

N
umero de condi
c
ao de uma matriz

Normas de vetores e de matrizes nos permitem avaliar o quao suscetvel a erros numericos ser
a
uma computacao empregando-se uma dada matriz A. Para tanto, suponha que se deseja resolver
o sistema Ax = b, onde A e n n e A1 existe.
Se A1 tem seus valores perturbados (isto e, ligeiramente modicados), gerando uma nova
matriz B, a solucao do sistema n
ao e mais x = A1 b mas x
= Bb. Essa perturbacao pode ser
medida em termos do comprimento do vetor x x
,
|| x x
|| = || x Bb || = || x BAx || = || (I BA)x || || I BA || || x ||
ou

|| x x
||
|| I BA ||
|| x ||

o que nos d
a uma nocao do erro relativo entre x e x
.
De forma an
aloga, suponha que b foi perturbado, gerando um novo vetor b. Se x e x
sao as
solucoes de Ax = b e A
x = b, podemos medir o erro absoluto entre x e x
escrevendo
|| x x
|| =

|| A1 b A1b || = || A1 (b b) ||
|| A1 || || b b ||

e o erro relativo como


|| x x
||

|| x x
||
|| x ||

|| A1 || || b b || = || A1 || || Ax ||

|| b b ||
|| b ||

|| b b ||
|| b ||
|| b b ||

|| A1 || || A || || x ||

|| A1 || || A ||

|| b ||

o que nos diz que o erro relativo em x e limitado pelo n


umero || A1 || || A ||. Essa quantidade e
denominada de n
umero de condic
ao de A, e e denotada por
(A) = || A1 || || A ||

(4.17)

Vejamos um exemplo do uso de (A).


Exemplo 4.3 Seja a matriz A e sua inversa A1 ,



1
1
1+
1
A=
A1 = 2
1
1
1 +

ao || A || = 2 + e || A1 || =
Usando a norma-l , ent

(A) =

2+

2
>

1
2 (2

1
1

+ ), de onde

4
.
2

Se 0, 01, ent
ao (A) 40000. Isso quer dizer que, se b sofrer uma pequena perturbac
ao, a
perturbaca
o relativa na soluc
ao do sistema Ax = b ser
a 40000 vezes maior!
Uma matriz que tenha um n
umero de condicao muito grande e dita mal-condicionada, e
pequenas variacoes nos valores de b induzir
ao um grande erro relativo no vetor solucao do sistema.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

75

Introduca
o ao C
alculo Numerico

4.4.4

Resoluc
ao de Sistemas de Equac
oes Lineares

Erros computacionais e condicionamento

Qualquer solucao de um sistema linear deve ser considerada uma solucao aproximada, em virtude
de erros de arredondamento e outros. O metodo mais natural para determinacao da precisao de
uma solucao e vericar quao bem esta solucao satisfaz o sistema original, calculando o vetor resduo.
Se a solucao aproximada x
for uma boa aproximacao, pode-se esperar que cada componente de
r = b A
x seja pequeno, pelo menos em um conceito relativo. Ha sistemas de equacoes, contudo,
em que o resto nao proporciona uma boa medida da precis
ao da solucao. S
ao sistemas nos quais
pequenas alteracoes nos dados de entrada conduzem a mudancas signicativas na solucao. Estes
sao denominados sistemas inst
aveis ou mal-condicionados.
Exemplo 4.4 A soluca
o exata do sistema

x1 + x2 = 2
1, 01x1 + x2 = 2, 01
ao calculada fosse
e x1 = x2 = 1. Supondo que, devido a erros, a soluc
x1
x2

=
=

0
2, 005

o vetor resduo neste caso seria RT = [0, 005; 0, 005]. Entretanto, o erro em cada resposta, x1 e
x2 , e de aproximadamente uma unidade.
Por outro lado, os coecientes tambem podem conter erros. Supondo que algum tipo de erro
tenha mudado as equaco
es acima para

x1 + x2 = 2
1, 0001x1 + x2 = 2, 007
ate mesmo uma soluca
o bem diferente da anterior, como x1 = 100 e x2 = 98 produziria um
resduo bem pequeno, RT = [0; 0, 003].
Erros deste tipo, ao contr
ario daqueles causados pela acumulacao de erros de arredondamento,
n
ao podem ser evitados por uma programacao cuidadosa. Como, ent
ao, determinar quando um
problema e mal-condicionado?

Figura 4.4: Os sistemas que descrevem a intersecc


ao das retas s
ao, da esquerda para a direita:
bem-condicionado, mal-condicionado e singular.
Em geral, tem-se a situacao mostrada na gura 4.4, para o caso de duas retas. Quando o
sistema e ordem maior, no entanto, deve-se recorrer a medidas algebricas para se estimar o malcondicionamento do sistema. Uma dessas medidas e o chamado determinante normalizado da
matriz dos coecientes. Para obte-lo, normaliza-se a matriz de coecientes A dividindo-se cada

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

76

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

linha de A pela raiz quadrada da soma dos quadrados dos elementos de cada linha,
 a11 a12



a1n
1
1
 a211
a22
a2n 


|A|
2
2 
 2
norm| A | =  .
..
..  =
..
 ..

1 2 . . . n
.
.
. 

 an1 an2 ann 
n

(4.18)


a2i1 + a2i2 + . . . + a2in . Diz-se, entao, que uma matriz A e mal-condicionada se o
onde i =
n
umero norm| A | for pequeno, comparado com a unidade.
Exemplo 4.5 Seja a matriz


A=

1
1
1 1, 01

verique se ela e mal-condicionada.

Solucao: Calculando-se 1 = 1 e 2 = 2, 0201, podemos obter




 1
1 

 1 1, 01 
norm| A | =
0, 005
1 2
ou seja, A e dita ser mal-condicionada.

4.4.5

M
etodos iterativos

Dado um sistema nao-singular de n equacoes lineares Ax = b, um metodo iterativo para resolver


esse sistema e denido por um conjunto de funcoes k (x0 , x1 , . . . , xk , A, b), onde x0 = 0 (A, b) e
uma estimativa inicial para a solucao x = A1 b e x1 , x2 , . . . sao as aproximacoes sucessivas para
a solucao,
x1

1 (x0 , A, b)

x2

=
..
.
=

2 (x0 , x1 , A, b)

xk

k (x0 , x1 , . . . , xk , A, b)

As funcoes k nos denem os metodos iterativos. Diz-se que um metodo e estacion


ario se,
ao depende de n para todo n m, ou seja, = m = m+1 = . . . Nesse
para um m > 0, n n
caso, xn+1 depende de, no maximo, m vetores anteriores, xn , xn1 , . . ., xnm+1 . Por exemplo,
para m = 2, temos
x0

0 (A, b)

(4.19)

x1
xk

=
=

1 (x0 , A, b)
(xk2 , xk1 , A, b),

(4.20)
(4.21)

k = 2, 3, . . .

O grau de um metodo estacionario e m


(para m
m) se, para n m 1, xn+1 depende de
xn , xn1 , . . ., xnm+1
mas
n
a
o
para
k
<
n

m+.

O grau de um metodo iterativo denido pelas

equacoes (4.19)-(4.21) e 2.
Um metodo iterativo e dito linear se todas as funcoes i sao funcoes lineares de x0 , x1 , . . .,
xn1 . Assim, um metodo iterativo estacion
ario linear de grau 1 pode ser expresso por
xk+1 = Gxk + f

(4.22)

onde G e uma matriz e f um vetor, escolhidos adequadamente.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

77

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

Para um metodo como em (4.22), podemos nos referir a um sistema linear relacionado,
(I G)x = f ;

(4.23)

onde I e a matriz identidade de ordem n. Por exemplo, se G = I A, f b, ent


ao (4.23) e
equivalente a Ax = b.
A denicao de um metodo iterativo pode tambem ser feita a partir de uma matriz separadora,
Q. Podemos escrever o sistema Ax = b na forma equivalente
Qx = (Q A)x + b

(4.24)

isto e, x = (x, A, b), o que nos leva a escrever um processo iterativo, de aproximacoes sucessivas,
como
(4.25)
Qxk = (Q A)xk1 + b, k = 0, 1, . . .
A matriz Q deve ser escolhida de tal forma que se possa calcular rapidamente os xk e que a
seq
uencia x0 , x1 , . . . convirja rapidamente para a solucao x = A1 b.
A m de obter uma condicao necess
aria e suciente para que haja convergencia, reescrevemos
(4.25) como
(4.26)
xk = (I Q1 A)xk1 + Q1 b
A solucao x satisfaz a equacao
x = (I Q1 A)xk1 + Q1 b

(4.27)

x (I Q1 A)xk1 + Q1 b

(4.28)

i.e., x e um ponto xo do mapa

Usando as equacoes (4.26) e (4.27), podemos obter uma express


ao para o erro xk x como
xk x = (I Q1 A)(xk1 x)

(4.29)

e, aplicando normas, temos


|| xk x ||

|| (I Q1 A) || || (xk1 x) ||
|| (I Q1 A) ||2 || (xk2 x) ||
.
..
|| (I Q1 A) ||k || (x0 x) ||

de onde
lim || xk x || = 0,

se || (I Q1 A) || < 1

(4.30)
(4.31)

desde que A e Q sejam invertveis.

4.4.6

Refinamento iterativo

O primeiro metodo iterativo para a solucao de um sistema de equacoes lineares Ax = b e o chamado


renamento iterativo. Para uma estimativa inicial x0 , denimos o vetor erro e0 como

e o vetor resduo r0 como

e0 = x x0

(4.32)

r0 = b Ax0 .

(4.33)

O vetor erro nos diz o quanto x0 esta distante de x, e o vetor resduo nos diz o quanto Ax0 esta
distante de b.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

78

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

Multiplicando r0 por A1 , temos


A1 r0 = A1 b x0 = x x0 = e0

(4.34)

e, usando essa igualdade, podemos obter uma express


ao para x:
x = x0 + A1 r0

(4.35)

Note que a equacao (4.35) envolve A1 ; mas, obviamente, n


ao podemos utiliza-la, pois se a
calcul
assemos, a solucao do sistema seria imediata! Por outro lado, a equacao (4.34) nos permite
escrever
(4.36)
Ae0 = r0
e, combinando as equacoes (4.33), (4.36) e (4.35), podemos descrever o metodo do renamento
iterativo como

rk = b Axk
resolve Aek = rk , k = 0, 1, . . .
(4.37)

xk+1 = xk + ek
O metodo do renamento iterativo e utilizado em conjunto com um metodo direto, como a
eliminacao Gaussiana. Tendo fatorado A no produto LU e obtido uma solucao x para Ax = b
(a qual pode n
ao ser muito boa, devido a erros de arredondamento), fazemos x0 = x
e renamos
essa solucao, usando (4.37), ate que xk seja sucientemente bom. Note que a fatoracao LU pode,
agora, ser utilizada para resolver Aek = (LU )ek = rk .
Se consideramos que a solucao obtida com a fatoracao LU de A n
ao foi exata, ent
ao podemos
dizer que U 1 L1 = B A1 . Usando a equacao (4.35), escrevemos
xk+1

xk + A1 rk = xk + A1 b A1 Axk ... B A1 ...

xk + B(b Axk )

(4.38)

De onde podemos mostrar que o metodo converge para uma solucao: subtraindo x de ambos os
lados da equacao (4.38), temos
xk+1 x =
=

xk x + B(b Axk ) ... b = Ax ...


xk x + B(Ax Axk ) = (I BA)(xk x)

e, tomando normas de ambos os lados da igualdade acima, vem, pela desigualdade triangular:
|| xk+1 x ||

|| I BA || ||xk x || ... || xk x || = || I BA || || xk1 x || ...


|| I BA ||2 ||xk1 x ||
..
.
|| I BA ||k ||x0 x ||

o que nos diz que os erros convergem para 0 se || I BA || < 1.


Assim como nos metodos de determinacao de razes de funcoes, precisamos denir alguns
criterios de parada do processo de renamento. O primeiro desses criterios e a estipulacao de
um n
umero m
aximo de iteracoes (kmax ); o segundo pode ser baseado na norma do resduo rk ,
devidamente escalonada por || b || (usando uma norma qualquer, previamente escolhida). Assim,
as iteracoes proceder
ao enquanto
(4.39)
|| rk || < || b ||
n
ao for satisfeito; e um n
umero real, escolhido de acordo com a exatidao requerida.
Um algoritmo que expressa o metodo do renamento iterativo pode ser escrito como:

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

79

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

Algoritmo 4.4.1 Renamento Iterativo


proc renamento iterativo(input: A, L, U , b, x0 , kmax , ; output: xk )
t || b ||
for k = 0, 1, . . . , kmax do
rk b Axk
if || rk || < t then
break
endif
resolve (LU )ek = rk , obtendo ek
xk+1 xk + ek
endfor
endproc
O exemplo abaixo [10] mostra o comportamento desse metodo.
Exemplo 4.6 Seja o sistema

420 210 140 105

210 140 105 84

140 105 84 70 x =
105 84 70 60

875
539

399
319

cuja soluc
ao e o vetor x = (1, 1, 1, 1)T . Utilizando um computador com apenas 6 casas decimais
de precis
ao, obtemos como soluc
ao inicial, atraves da eliminac
ao Gaussiana, com pivotamento, o
vetor
x = (0, 999988, 1, 000137, 0, 999670, 1, 000215)T
Agora, dispondo dos fatores triangulares da fatorac
ao LU , podemos utilizar o algoritmo 4.4.1 e
obter:
x = (0, 999994, 1, 000069, 0, 999831, 1, 000110)T
x = (0, 999996, 1, 000046, 0, 999891, 1, 000070)T
x = (0, 999993, 1, 000080, 0, 999812, 1, 000121)T
x = (1, 000000, 1, 000006, 0, 999984, 1, 000011)T

4.4.7

M
etodo iterativo de Jacobi

Suponha o sistema (4.1), com n = 3, sem perda de generalidade. Se os elementos da diagonal de


A sao todos n
ao-nulos, entao pode-se isolar cada vari
avel x1 , x2 e x3 atraves de

c12 x2 + c13 x3 + d1
x1 =
x2 = c21 x1
+ c23 x3 + d2

x3 = c31 x1 + c32 x2
+ d3
onde


aij
, i = j
ii
0,
i=j

cij

di

= bi /aii

Com essa transformacao, o sistema Ax = b foi transformado em um sistema da forma


(I C)x = d

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

80

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

onde C = D1 (D A), d = D1 b e D = diag(A) (isto e, a matriz formada pelos elementos da


diagonal de A). De forma equivalente, podemos escrever
x = Cx + d
o que sugere uma correcao de x por aproximac
oes sucessivas,
xk+1

=
=

Cxk + d = D1 (D A)xk + D1 b =
(I D1 A)xk + D1 b, k = 0, 1, . . .

(4.40)

a qual dene o metodo iterativo de Jacobi.


A matriz separadora, aqui, e D1 ; o metodo de Jacobi converge se a matriz A for diagonal
dominante, i.e.,
n

| aij |
(4.41)
| aii | >
j=1

j=i

e, usando a norma-l,
|| I D

A ||

n 

 aij

= max
 aii
1in
j=1






j=i

de onde pode-se vericar que a domin


ancia diagonal e condicao necess
aria para a convergencia do
metodo.
Para obtermos a solucao do sistema Ax = b via o metodo iterativo de Jacobi, podemos usar a
forma equivalente a (4.40),
(4.42)
xk+1 = xk D1 Axk + D1 b
Note que, do ponto de vista de eciencia do processo, deve-se efetuar as divis
oes de cada linha de
A e do elemento respectivo de b pelo elemento na diagonal de A antes de se iniciar as iteracoes.
Alem disso, se o criterio de parada envolve o c
alculo do resduo rk = b Axk , isso exigiria um
produto matriz-vetor a mais por iteracao, o que pode ser evitado se usarmos como criterio de
parada rk+1 = D1 rk+1 ,
(4.43)
|| D1 rk+1 || || D1 || || b ||
pois

rk+1 = D1 rk+1 = D1 b D1 Axk+1

e os termos no lado direito da equacao j


a foram calculados, anteriormente, para se obter xk+1 . O
algoritmo a seguir utiliza essas ideias:

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

81

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

Algoritmo 4.4.2 Metodo de Jacobi


proc jacobi(input: A, b, x0 , kmax , ; output: xk+1 )
for i = 1, 2, . . . , n do
qi a1
ii
endfor
t || q || || b ||
for i = 1, 2, . . . , n do
for j = 1, 2, . . . , n do
aij aij qi % sobrescreve A com D1 A
endfor
bi bi qi % sobrescreve b com D1 b
endfor
for k = 0, 1, . . . , kmax do
w Axk
xk+1 = xk w + b
rk+1 b w
if || rk+1 || < t then
break
endif
endfor
endproc
O exemplo abaixo ilustra o comportamento tpico do metodo de Jacobi:
Exemplo 4.7 Resolva o sistema

4 1 1
1 4
0

1 0
4
0 1 1

1
x =

1
4

0
1

1
0

cuja soluc
ao e x = (0, 1667, 0, 3333, 0, 3333, 0, 1667)T , usando o metodo de Jacobi com x0 =
T
(0, 0, 0, 0) a uma toler
ancia = 102 .
Solucao: Aplicando o metodo de Jacobi, obtemos
x1

= (0, 0, 25, 0, 25, 0)T

x2
x3

= (0, 125, 0, 25, 0, 25, 0, 125)T


= (0, 125, 0, 3125, 0, 3125, 0, 125)T

x4
x5

= (0, 1563, 0, 3125, 0, 3125, 0, 1563)T


= (0, 1563, 0, 3281, 0, 3281, 0, 1563)T

x6
x7

= (0, 1641, 0, 3281, 0, 3281, 0, 1641)T


= (0, 1641, 0, 3320, 0, 3320, 0, 1641)T

x8

= (0, 1660, 0, 3320, 0, 3320, 0, 1660)T

ou seja, com oito iterac


oes, obtemos uma aproximaca
o para a soluc
ao dentro da toler
ancia especicada.

4.4.8

M
etodo iterativo de Gauss-Seidel

Analisando o metodo de Jacobi, ve-se que, a cada iteracao, produzem-se todos os elementos do
vetor xk+1 , usando apenas os elementos do vetor xk . No entanto, nada impede que, a` medida

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

82

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

que os elementos de xk+1 sao produzidos, eles possam ser utilizados para produzir os pr
oximos
elementos do pr
oprio xk+1 . O metodo de Gauss-Seidel faz exatamente isso.
De forma an
aloga ao metodo de Jacobi, escrevemos, para n = 3,

u12 xk,2 + u13 xk,3 + d1


xk+1,1 =
xk+1,2 = l21 xk+1,1
+ u23 xk,3 + d2

xk+1,3 = l31 xk+1,1 + l32 xk+1,2


+ d3
ou, em forma matricial,
xk+1 = Lxk+1 + U xk + d
1

(4.44)

onde L = D AL , U = D A , D = diag(A), d = D b e AL e AU indicam as porcoes


estritamente inferior e superior de A (isto e, sem a diagonal).
No caso do metodo de Gauss-Seidel, podemos escrever a correcao para xk+1 de forma mais
compacta; note que a expressao Lxk+1 + U xk pode ser calculada como

n

aij
xj , i = 1, 2, . . . , n
aii
j=1
U

j=i

O criterio de parada, no entanto, deve ser calculado usando o resduo rk+1 = b Axk+1 , como
mostra o algoritmo 4.4.3.
Algoritmo 4.4.3 Metodo de Gauss-Seidel
proc gauss seidel(input: A, b, x0 , kmax , ; output: xk+1 )
for i = 1, 2, . . . , n do
qi a1
ii
endfor
t || q || || b ||
for i = 1, 2, . . . , n do
for j = 1, 2, . . . , n do
aij aij qi % sobrescreve A com D1 A
endfor
bi bi qi % sobrescreve b com D1 b
endfor
for k = 0, 1, . . . , kmax do
u xk
for i = 1, 2, .
. . , n do
ui b nj=1 aij uj
j=i

endfor
xk+1 u
rk+1 b Axk+1
if || rk+1 || < t then
break
endif
endfor
endproc
O exemplo 4.8 ilustra o comportamento tpico do metodo de Gauss-Seidel:
Exemplo 4.8 Resolva o sistema

4 1 1
1 4
0

1 0
4
0 1 1

1
x =

1
4

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

0
1

1
0
83

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

cuja soluc
ao e x = (0, 1667, 0, 3333, 0, 3333, 0, 1667)T , usando o metodo de Gauss-Seidel com
x0 = (0, 0, 0, 0)T a uma toler
ancia = 102 .
Solucao: Aplicando o metodo de Gauss-Seidel, obtemos
x1
x2

= (0, 0, 25, 0, 25, 0, 125)T


= (0, 125, 0, 3125, 0, 3125, 0, 1563)T

x3
x4

= (0, 1563, 0, 3281, 0, 3281, 0, 1641)T


= (0, 1641, 0, 3320, 0, 3320, 0, 1660)T

ou seja, com quatro iterac


oes, obtemos uma aproximaca
o para a soluc
ao dentro da toler
ancia
especicada.
Da mesma forma que o metodo de Jacobi, uma condicao necess
aria e suciente para a convergencia do metodo de Gauss-Seidel e que a matriz A seja diagonal-dominante (ver equacao 4.41).
Existe um criterio de Sassenfeld que, se atendido, garante a convergencia do metodo. Para se
vericar se uma matriz de coecientes do sistema satisfaz a tal criterio, calcula-se os valores S1 ,
S2 , . . ., Sn , denidos como
S1
S2
Sn

=
=
..
.
=

1
| a11 | (| a12
1
| a22 | (| a21

| + | a13 | + . . . + | a1n |
|S1 + | a23 | + . . . + | a2n |

1
| ann | (| an1

(4.45)

|S1 + | an2 |S2 + . . . + | ann1 |Sn1

e, se
Si < 1,

1in

ent
ao o metodo de Gauss-Seidel ira convergir.
Exemplo 4.9 Para a matriz do exemplo 4.8, verique se o criterio de Sassenfeld e atendido.
Solucao: Calculando os valores de Si , temos:
S1

S2

S3

S4

1
(|
|4|
1
(|
|4|
1
(|
|4|
1
(|
|4|

1 | + | 1 |) = 0, 5 < 1
1 |0, 5 + | 1 |) = 0, 375 < 1
1 |0, 5 + | 1 |) = 0, 375 < 1
1 |0, 375 + | 1 |0, 375) = 0, 1875 < 1

e, como Si < 1, 1 i 4, o criterio de Sassenfeld e atendido e, por conseguinte, o metodo de


Gauss-Seidel e convergente para um sistema com essa matriz de coecientes.
O criterio de Sassenfeld e, no entanto, apenas suciente; uma matriz pode n
ao atende-lo e,
mesmo assim, o metodo de Gauss-Seidel pode convergir, como mostra o exemplo abaixo.
Exemplo 4.10 Resolva o sistema


1
1
1 3


x=

3
3

Solucao: O criterio de Sassenfeld n


ao e satisfeito pois, calculando os valores de Si , temos
S1

S2

1
(| 1 | = 1 < 1
|1|
1
(| 1 |1) = 0, 333 . . . < 1
| 3|

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

84

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

No entanto, o metodo de Gauss-Seidel converge para a soluc


ao x = (1, 5, 1, 5)T em 11
4
iteraco
es, a uma toler
ancia de 10 :
x0

= (0, 0000, 0, 0000)T

x1
x2

= (3, 0000, 2, 0000)T


= (1, 0000, 1, 3333)T

x3
x4

= (1, 6667, 1, 5556)T


= (1, 4444, 1, 4815)T

x5
x6

= (1, 5185, 1, 5062)T


= (1, 4938, 1, 4979)T

x7
x8

= (1, 5021, 1, 5007)T


= (1, 4993, 1, 4998)T

x9
x10

= (1, 5002, 1, 5001)T


= (1, 4999, 1, 5000)T

x11

= (1, 5000, 1, 5000)T

Note que a dominancia diagonal de uma matriz e relacionada com a ordem em que as equacoes
se apresentam. Uma simples troca entre duas linhas pode ser desastrosa, como mostra o exemplo
a seguir.
Exemplo 4.11 Seja o sistema apresentado no exemplo 4.10, com as linhas trocadas entre si, i.e.




1 3
3
x=
1
1
3
Nesse caso, como a matriz do sistema n
ao e diagonal-dominante, o metodo de Gauss-Seidel
diverge, apresentando como primeiras estimativas os vetores
x0

= (0, 0000, 0, 0000)T

x1
x2

= (3, 0000, 6, 0000)T


= (15, 0000, 12, 0000)T

x3

= (39, 0000, 42, 0000)T


..
.
= (29523, 0000, 29526, 0000)T

x8
x9

x20

= (88575, 000, 88572, 0000)T


..
.
= (5, 2302 109 , 5, 2302 109 )T

apesar do sistema ter a mesma soluca


o x = (1, 5, 1, 5)T .

4.4.9

Extrapola
c
ao de um m
etodo iterativo

Uma das formas de garantir e/ou acelerar a convergencia de um metodo iterativo e utilizar uma
tecnica de extrapolac
ao, a qual consiste em se combinar a correcao da estimativa xk dada pela
equacao governante do metodo iterativo com uma outra correcao, semelhante. Em termos das
funcoes , isso pode ser expresso como
k (x0 , x1 , . . . , xk , A, b), IR
xk+1 = k (x0 , x1 , . . . , xk , A, b) + (1 )

(4.46)

Note que, se = 1, temos o metodo iterativo original.


A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

85

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

k (x0 , x1 , . . . , xk , A, b) = I (ou seja,


Por exemplo, no caso do metodo de Jacobi, podemos usar
a matriz identidade). Assim temos o metodo de relaxac
ao de Jacobi (JOR),
xk+1 = (xk D1 Axk + D1 b) + (1 )xk ,

0<1

(4.47)

e, de forma an
aloga, temos o metodo das relaxac
oes sucessivas (SOR), uma variante do metodo
de Gauss-Seidel,
xk+1 = (Lxk+1 + U xk + d) + (1 )xk , 0 < < 2
(4.48)
Exemplo 4.12 Seja o sistema

2
1

0
1

1
2
1
0

0
1
2
1

0
x =

1
2

1
3

3
1

cuja soluc
ao e (0, 1, 1, 0)T . Utilizando-se o metodo JOR para resolve-lo, com = 0, 65, a uma
toler
ancia = 102 , obtemos:
x0

= (0, 0000, 0, 0000, 0, 0000, 0, 0000)T

x1
x2

= (0, 3250, 0, 9750, 0, 9750, 0, 3250)T


= (0, 0163, 0, 8937, 0, 8937, 0, 0163)T

x3
x4

= (0, 0349, 0, 9921, 0, 9921, 0, 0349)T


= (0, 0035, 0, 9884, 0, 9884, 0, 0035)T

x5

= (0, 0038, 0, 9986, 0, 9986, 0, 0038)T

ou seja, com cinco iterac


oes, obtemos uma aproximac
ao para a soluc
ao dentro da toler
ancia especicada. O metodo de Jacobi, se utilizado para resolver o mesmo metodo, n
ao alcanca a soluc
ao
ap
os 200 iterac
oes.
Exemplo 4.13 Seja o sistema

4 1 1
1 4
0

1 0
4
0 1 1

1
x =

1
4

0
1

1
0

cuja soluc
ao e x = (0, 1667, 0, 3333, 0, 3333, 0, 1667)T . Utilizando-se o metodo SOR para resolvelo, com = 1, 1, a uma toler
ancia = 102 , obtemos:
x0

= (0, 0000, 0, 2750, 0, 2750, 0, 1513)T

x1
x2

= (0, 1513, 0, 3307, 0, 3307, 0, 1668)T


= (0, 1668, 0, 3336, 0, 3336, 0, 1668)T

ou seja, com tres iterac


oes, obtemos uma aproximac
ao para a soluc
ao dentro da toler
ancia especicada (compare com o exemplo 4.8).

4.5

M
etodo do Gradiente

O metodo do gradiente e indicado para resolver um SELA onde A e uma matriz simetrica, positivodenida (SPD), i.e.
xT Ax > 0, x IRn
(4.49)
Uma outra caracterstica de matrizes SPD e que todos os seus autovalores sao estritamente
positivos.
O metodo baseia-se na relacao existente entre a solucao de um SELA e a minimizacao da forma
quadr
atica, quando A for SPD. Assim, inicialmente veremos o que e a forma quadr
atica e alguns
exemplos da mesma.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

86

Introduca
o ao C
alculo Numerico

4.5.1

Resoluc
ao de Sistemas de Equac
oes Lineares

Forma Quadr
atica

A forma quadr
atica e uma funcao vetorial f : n  dada por
f (x) =

1 T
x Ax bT x + c
2

onde A IRnn , x IRn , b IRn e c IR.


Por exemplo, considere o sistema




2 1
1
x=
1
2
1

(4.50)

(4.51)

cuja solucao e x = (1, 1)T . A matriz de coecientes e SPD e a gura 4.5 mostra o gr
aco e as
curvas de nvel da forma quadr
atica correspondente (com c = 0). Note que o gr
aco da funcao
e um parabol
oide portanto, com apenas um ponto de mnimo e que aparentemente, o ponto
(1, 1) (ou seja, a solucao do sistema) e o ponto de mnimo da funcao.
J
a as guras 4.6-4.8 mostram outras situacoes possveis, dependendo dos valores dos elementos
de A (todos os sistemas tiveram xada a sua solucao em (1, 1) e os termos independentes foram
calculados adequadamente). Por exemplo, na gura 4.6, temos os gr
acos para a matriz negativodenida


2 1
1 2
aco e um parabol
oide invertido, com apenas um ponto
i.e., xT Ax < 0, x; note que a forma do gr
de m
aximo e a situacao oposta a` de uma matriz SPD.
Na gura 4.7, temos o caso em que a forma quadratica assume tanto valores negativos quanto
positivos o gr
aco da funcao e a chamada sela. A matriz em questao e


1 4
4 5
Finalmente, o gr
aco e as curvas de nvel para a forma quadr
atica exibidos na gura 4.8
correspondem a uma matriz quase-singular,


1
2
2 3, 8
a qual apresenta innitas solucoes ao longo da reta na base do gr
aco.
Para vericarmos se isso e verdade, vamos calcular f (x) = 0. Como f e uma funcao vetorial,
a sua derivada ou gradiente e dada por


x1 f (x)

x2 f (x)
(4.52)
f (x) =

.
..

xn f (x)
o qual representa um campo vetorial; para um dado ponto x, ele aponta na direcao de maior
variacao de f (x). O gr
aco de f (x) na gura 4.9 e tpico da situacao em que A e SPD:
Aplicando a equacao (4.52) a` (4.50), obtemos
f (x) =

1 T
1
A x + Ax b
2
2

(4.53)

e, se A e simetrica, A = AT , de onde
f (x) = Ax b.
Igualando f (x) a zero, obtemos Ax = b, ou seja, o sistema que queremos resolver. Portanto,
podemos dizer que
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

87

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

Figura 4.5: Gr
aco de f (x) e suas curvas de nvel para A SPD.

Figura 4.6: Gr
aco de f (x) e suas curvas de nvel para A ND.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

88

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

Figura 4.7: Gr
aco de f (x) e suas curvas de nvel para A indenida.

Figura 4.8: Gr
aco de f (x) e suas curvas de nvel para A singular.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

89

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

Figura 4.9: Gr
aco de f (x) para A SPD.
minimizar a forma quadr
atica f (x) = 12 xT AxbT x+c equivale a resolver o sistema
Ax = b se A for simetrica.
Se a matriz A e positivo-denida, alem de simetrica, ent
ao a solucao de Ax = b e o mnimo
(
unico) de f (x); logo, para A SPD, a solucao x = A1 b e o ponto x que minimiza f (x). Isso pode
ser mostrado como segue.
Suponha A simetrica, x um vetor que satisfaz Ax = b, y um vetor similar a x (em termos
geometricos, y e um ponto pr
oximo a x) e e = y x o vetor erro; ent
ao,
f (x + e) =
=
=
=

1
(x + e)T A(x + e) bT (x + e) + c
2
1
1 T
x Ax + eT Ax + eT Ae bT x bT e + c
2
2
1 T
1
x Ax bT x + c + eT b + eT Ae bT e
2
2
1 T
f (x) + e Ae
2

... b = Ax; A = AT ...

(4.54)

1
f (x + e) = f (x x + y) = f (y) = f (x) + (y x)T A(y x)
2
Agora, como A e SPD, por hip
otese, entao
(y x)T A(y x) > 0,

(4.55)

e, portanto, f (y) > f (x). Isso mostra que x e o mnimo de f (x), nesse caso.

4.5.2

Descri
c
ao do m
etodo do Gradiente

O gr
aco da forma quadr
atica, para A SPD, nos sugere uma estrategia para localizarmos a
solucao do sistema: basta escorregar ao longo das paredes do paraboloide, pois isso nos levara,
necessariamente, ao ponto de mnimo. A quest
ao que se coloca agora e: qual direc
ao devemos
oximo da solucao?
tomar, a partir de um xk , para obtermos um xk+1 que seja mais pr
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

90

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

Figura 4.10: O vetor erro e0 e o vetor resduo r0 .


Lembramos que o gradiente f (x) aponta na direcao de maior aumento de f (x), em sentido
natural, portanto, que andemos ao longo da direcao oposta
oposto ao fundo do parabol
oide. E

ao gradiente, isto e, f (x) = b Ax. Ora, conforme visto anteriormente, rk = b Axk , de onde
estabelecemos as seguintes relacoes entre o vetor resduo e o gradiente de f (x):
rk
rk

=
=

f (x)
b Axk ... ek = xk x ...

=
=

b Ax Aek ... x = A1 b ...


Aek

(4.56)

(4.57)

A equacao (4.56) nos diz que o resduo tem a mesma direcao do gradiente, porem sentido oposto;
j
a a equacao (4.57) nos diz que o resduo e o vetor erro, transformado por A (e, portanto, no
mesmo espaco de b).
Suponha, ent
ao, que temos a seguinte situacao, conforme a gura 4.10. Como decidimos andar
ao longo do vetor resduo, a partir de x0 , a nova estimativa x1 e um ponto sobre a reta r0 , ou seja
x1 = x0 + 0 r0 ,

0 IR

(4.58)

O escalar 0 indica o deslocamento sobre r0 . Para determinar o melhor 0 ou seja, aquele para
o qual || x1 x || e mnimo derivamos f (x1 ) em relacao a 0 e igualamo-la a zero:
d
d
f (x1 ) = f (x1 )T
x1 = f (x1 )T r0
d0
d0

(4.59)

Note que f (x1 )T r0 e o produto escalar entre os vetores f (x1 ) e r0 . Como o produto escalar e
dado por
uT v = || u || || v || cos
onde e o angulo formado entre os vetores u e v, ao igualarmos f (x1 )T r0 a zero, estamos exigindo
que os vetores f (x1 ) e r0 sejam ortogonais entre si. Como f (x1 ) = r1 , isso implica que dois
resduos sucessivos sao ortogonais entre si; a gura 4.11 mostra tres situacoes tpicas para a solucao
do sistema (4.51), com as seq
uencias de resduos (representados pelas retas) gerados pelo metodo
do Gradiente a partir de tres diferentes estimativas iniciais.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

91

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

Figura 4.11: Caminhos tpicos no metodo do Gradiente.


A partir da equacao (4.59), pode-se o obter o valor de 0 :
f (x1 )T r0
r1T r0

=
=

0 ... f (x1 ) = r1 ...


0

(b Ax1 )T r0
(b Ax0 0 Ar0 )T r0

=
=

0
0

(r0 0 Ar0 )T r0

de onde
0 =

r0T r0
r0T Ar0

(4.60)

O que signica minimizar f (x1 )? Os gracos mostrados na gura 4.12 mostram que, para 0
calculado conforme a equacao (4.60), a nova estimativa x1 corresponde ao mnimo da par
abola
obtida como se tivessemos cortado o parabol
oide f (x) por um plano vertical ao plano x y que
passa pela reta r0 !
Utilizando as equacoes (4.58) e (4.60), alem da expressao para o resduo, devidamente generalizadas para a k-esima iteracao, podemos escrever um algoritmo que descreve o metodo do
Gradiente. Antes, porem, note que
r1 = r0 0 Ar0
conforme obtido na derivacao da equacao (4.60); essa express
ao nos permite economizar um
produto matriz-vetor da forma Axk , pois Ark j
a tera sido calculado previamente para se obter k .
O algoritmo pode ser, ent
ao, escrito como segue.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

92

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

Figura 4.12: e escolhido de tal forma que f (x1 ) e mnima.


Algoritmo 4.5.1 Metodo do Gradiente
proc gradiente(input: A, b, x0 , kmax , ; output: xk+1 )
t || b ||
r0 b Ax0
for k = 0, 1, . . . , kmax do
wk Ark
k

T
rk
rk
Tw
rk
k

xk+1 xk + k rk
rk+1 rk k wk
if || rk+1 || < t then
break
endif
endfor
endproc
O exemplo seguinte ilustra o comportamento tpico do metodo do Gradiente:
Exemplo 4.14 Resolva o sistema

4 1 1
1 4
0

1 0
4
0 1 1

1
x =

1
4

0
1

1
0

cuja soluc
ao e x = (0, 1667, 0, 3333, 0, 3333, 0, 1667)T , usando o metodo do Gradiente com x0 =
T
ancia = 102 .
(0, 0, 0, 0) a uma toler
Solucao: Aplicando o metodo do Gradiente, obtemos
x1
x2

= (0, 0, 25, 0, 25, 0)T


= (0, 125, 0, 25, 0, 25, 0, 125)T

x3
x4

= (0, 125, 0, 3125, 0, 3125, 0, 125)T


= (0, 1563, 0, 3125, 0, 3125, 0, 1563)T

x5
x6

= (0, 1563, 0, 3281, 0, 3281, 0, 1563)T


= (0, 1641, 0, 3281, 0, 3281, 0, 1641)T

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

93

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

Figura 4.13: Metodo das Direc


oes-Conjugadas: a cada iterac
ao e corrigida uma componente do
vetor soluc
ao.
ou seja, com seis iteraco
es, obtemos uma aproximac
ao para a soluc
ao dentro da toler
ancia especicada.
Um possvel problema ao se utilizar a f
ormula de recorrencia para rk+1 no metodo do Gradiente e a perda de ortogonalidade entre os vetores resduo, causada pela acumulacao de erros de
ponto-utuante. Isso pode ser detectado atraves do calculo do produto-interno
entre dois resduos
T
rk ; caso essa quantidade seja maior do que, por exemplo, (onde e o epsilon
sucessivos, rk1
da m
aquina), deve-se recalcular rk = b Axk , e proceder normalmente com o algoritmo.

4.6

M
etodo das Direc
oes-Conjugadas

Conforme visto anteriormente, o metodo do Gradiente toma sucessivas direcoes os resduos


que sao ortogonais entre si. Isso signica que a solucao e procurada repetindo-se direcoes. Ora,
se para uma dada direcao, a solucao n
ao foi encontrada ao longo dela, ent
ao por que utiliz
a-la
novamente?
Uma alternativa e a seguinte: suponha que tenhamos um conjunto de n direc
oes de procura
ancia necessaria para
d0 , d1 , . . ., dn1 . Em cada i-esima direcao, caminha-se exatamente a dist
se obter a i-esima componente da solucao, xi ; ap
os termos percorrido todas as n direcoes dessa
forma, todas as componentes de x estar
ao corretas, e a solucao ter
a sido obtida. Na gura 4.13,
a primeira iteracao corrige x2 , e a segunda corrige x1 (note que e1 e ortogonal a d0 ).
De forma semelhante ao metodo do Gradiente, as iteracoes sao da forma
xi+1 = xi + i di ,

i IR

(4.61)

ao mais se percorra a direcao


e, para determinar i , tomamos ei+1 ortogonal a di , de forma que n
di . Ent
ao:
dTi ei+1

= 0 ... ei+1 = xi+1 x = xi + i di x = ei + i di ...

dTi (ei + i di )

= 0

dTi ei + i dTi di

= 0

de onde
i =

dTi ei
dTi di

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

(4.62)

94

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

Infelizmente esta equacao e in


util, pois para calcular i e necessario ei ; porem, se ei fosse conhecido,
a solucao seria imediata, por denicao.
Podemos corrigir essa situacao se considerarmos a determinacao de i como um problema de
minimizacao ao longo da direcao di , de maneira an
aloga ao metodo do Gradiente. Nesse caso,
temos:
d
f (xi+1 ) =
d
d
f (xi+1 )T
xi+1 =
d
T
di =
ri+1

0
0 ... por (4.56) e (4.61), vem
0 ... por (4.57), vem

dTi Aei+1 = 0

(4.63)

A equacao (4.63) nos diz que o vetor erro ei+1 , transformado para o espaco gerado pelas colunas de
A, e ortogonal a di . Quaisquer dois vetores u e v que satisfacam uT Av = 0 sao ditos A-ortogonais
entre si.
De posse da equacao (4.63), podemos determinar uma outra express
ao para i , a qual pode,
dessa vez, ser calculada:

dTi Aei

dTi Aei+1

= 0 ... ei+1 = ei + i di ...

i dTi Adi

= 0

i =

dTi Aei .
.. por (4.57), vem
dTi Adi

dTi ri
dTi Adi

(4.64)

Note que, se di ri , ent


ao temos a mesma formula utilizada para i no metodo do Gradiente.
Conforme proposto quando da motivacao do metodo das Direcoes-Conjugadas, vejamos como
o metodo converge em n passos. Podemos expressar o vetor erro e0 como combinacao linear dos
vetores direcao,
n1

e0 =
j dj
(4.65)
j=0

Para determinarmos as constantes j , valemo-nos da propriedade de A-ortogonalidade entre os


vetores dj ; pre-multiplicando (4.65) por dTk A, obtemos
dTk Ae0 =

n1


j dTk Adj

j=0

e, como dTk Adj = 0, i = j, podemos eliminar todos os termos do somat


orio, menos o termo para
j = k, de onde
dTk Ae0

k dTk Adk
dTk Ae0
dTk Adk

(4.66)

ao envolva k ; escrevendo as expressoes


Precisamos, ainda, encontrar uma equacao para e0 que n
para os vetores erro, temos
e0

x0 x

e1

x1 x = e0 + 0 d0 = x0 x + 0 d0 = e0 +

0


i di

i=0

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

95

Introduca
o ao C
alculo Numerico

e2

Resoluc
ao de Sistemas de Equac
oes Lineares

x2 x = e1 + 1 d1 = x0 x + 1 d1 + 0 d0 = e0 +

1


i di

i=0

..
.

..
.

..

ek

xk x = ek1 + k1 dk1 = x0 x + k1 dk1 + . . . + 0 d0 = e0 +

.
k1


i di

i=0

de onde
e0 = ek

k1


i di

(4.67)

i=0

Agora, substituindo a equacao (4.67) em (4.66), obtemos


k1
i dTk Adi
dTk Aek i=0
k =
dTk Adk
e, como dTk Adi = 0, k = i, o segundo termo no numerador e nulo (pois apenas os vetores d0 , d1 ,
. . ., dk1 aparecem no somatorio). Assim, obtemos
k =

dTk Aek
dTk Adk

(4.68)

Comparando as equacoes (4.68) e (4.64), vemos que i = i . Podemos, ent


ao, reescrever (4.67)
como
ei

= e0

k1


j dj

j=0

n1


j dj

j=0

n1


k1


j dj

j=0

j dj

(4.69)

j=k

A equacao (4.69) pode ser interpretada da seguinte forma: quando k = 0, i.e. na primeira iteracao,
todas as componentes de x estao erradas (em princpio), logo e0 e combinacao linear de todas as
direcoes de busca di . Na segunda iteracao, uma componente j
a foi corrigida ao longo da direcao
d0 e, portanto, o erro e1 so deve ter componentes diferentes de zero ao longo das direcoes d1 ,
d2 , . . ., dk1 . Procedendo com esse raciocnio ate en1 , vemos que o processo de se obter uma
componente correta de x a cada iteracao equivale a se eliminar a componente correspondente do
erro a cada iteracao.
Neste estagio, resta-nos determinar as direcoes di , de maneira que sejam A-ortogonais entre
si. Podemos obter tais direcoes se tomarmos um conjunto de vetores linearmente independentes
ui , e os A-ortogonalizarmos atraves de uma modicacao do processo de Gram-Schmidt. Para se
gerar um vetor di , subtraem-se de ui todas as componentes que nao sejam A-ortogonais aos i 1
vetores d anteriores, ou seja,
d0
di

= u0
i1
= ui + k=0
ik dk ,

i>0

(4.70)

os-multiplicamos a expressao para di em (4.70)


Para determinarmos os valores das constantes ik , p
por Adj , de onde
dTi Adj

= uTi Adj +

i1


ik dTk Adj ; |i > j

k=0

= uTi Adj + ij dTj Adj

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

96

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

pela A-ortogonalidade entre os vetores di . Assim, podemos escrever


ij =

uTi Adj
dTj Adj

(4.71)

O processo acima requer o armazenamento de todos os n vetores di , o que pode n


ao ser desej
avel
para sistemas lineares com n grande.
Cabe notar que, se os vetores ui sao os vetores can
onicos (i.e. a i-esima componente de ui
e igual a 1 e todas as demais sao nulas), ent
ao o metodo das Direcoes-Conjugadas reduz-se a`
Eliminacao Gaussiana.
Um algoritmo que expressa o metodo das Direcoes-Conjugadas, pode ser escrito como segue;
cabe ressaltar que, apesar do metodo ser considerado um metodo direto, por convergir em exatamente n iteracoes, para um sistema de n equacoes lineares, ele pode tambem ser considerado um
metodo iterativo, pois e possvel que, devido a erros de arredondamento, a solucao seja alcancada
em menos do que n iteracoes.
Algoritmo 4.6.1 A-ortogonalizac
ao
proc A ortogonaliza(input: U ; output: D)
% U e D s
ao matrizes n n cujas colunas
% s
ao os vetores ui e di , respectivamente.
d0 u0
for i 1, 2, . . . , n do
s0
for k = 1, 2, . . . , i 1 do
w Adk
uT w

dTi w
k
s s dk
endfor
di di + s
endfor
endproc

Algoritmo 4.6.2 Metodo das Direc


oes-Conjugadas
oes conjugadas(input: A, b, U , x0 , kmax , ; output: xk+1 )
proc direc
call A ortogonaliza(U;D)
t || b ||
r0 b Ax0
for k = 0, 1, . . . , kmax do
wk Adk
k

dT
k rk
dT
wk
k

xk+1 xk + k dk
rk+1 rk k wk
if || rk+1 || < t then
break
endif
endfor
endproc
O exemplo a seguir ilustra o comportamento tpico do metodo das Direcoes-Conjugadas:

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

97

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

Exemplo 4.15 Resolva o sistema

4 1 1
1 4
0

1 0
4
0 1 1

1
x =

1
4

0
1

1
0

cuja soluc
ao e x = (0, 1667, 0, 3333, 0, 3333, 0, 1667)T , usando o metodo das Direc
oes-Conjugadas
com x0 = (0, 0, 0, 0)T a uma toler
ancia = 102 ; os vetores ui s
ao tomados como vetores
aleat
orios.
Solucao: Aplicando o metodo das Direc
oes-Conjugadas, obtemos
x1
x2

= (0, 2113, 0, 2071, 0, 0927, 0, 2018)T


= (0, 1950, 0, 2941, 0, 3595, 0, 1705)T

x3

= (0, 1986, 0, 2961, 0, 3578, 0, 1649)T

x4

= (0, 1667, 0, 3333, 0, 3333, 0, 1667)T

ou seja, com quatro iterac


oes, obtemos uma aproximac
ao para a soluc
ao, com um resduo da ordem
ao obtida ser
a um n
umero
de 1015 . Normalmente, no caso desse metodo, o resduo da soluc
pr
oximo ao epsilon da m
aquina.

4.7

M
etodo dos Gradientes-Conjugados

O metodo dos Gradientes-Conjugados nada mais e do que o metodo das Direcoes-Conjugadas,


onde os vetores ui sao tomados como os vetores resduo ri . Essa escolha nos permitir
a simplicar
sobremaneira o processo de Gram-Schmidt descrito anteriormente.
Suponha o espaco gerado pelos vetores direcao. Pela equacao (4.67), vemos que o i-esimo vetor
ao, derivar
ei e gerado como combinacao linear dos vetores di e pelo vetor erro e0 . Podemos, ent
algumas importantes relacoes que ser
ao utilizadas a seguir. Se pre-multiplicarmos a equacao (4.69)
por dTi A, vem
n1

T
di Aej =
j dTi Adj
j=i

e, pela A-ortogonalidade entre os vetores di , temos


dTi rj = 0,

i<j

(4.72)

Alem disso, o i-esimo resduo e ortogonal aos i 1 vetores u,


dTi rj

uTi rj +

i1


ik dTk rj

(4.73)

k=0

0 =

uTi rj ,

i<j

(4.74)

de onde
dTi ri = uTi ri

(4.75)

Como os vetores ui sao tomados como os vetores resduo ri , a equacao (4.74) pode ser reescrita
como
(4.76)
riT rj = 0, i = j
De maneira semelhante ao utilizado no metodo do Gradiente, podemos obter uma f
ormula de
recorrencia para ri+1 ,
ri+1

=
=

Aei+1 = A(ei + i di ) =
Aei i Adi

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

98

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

de onde
ri+1 = ri i Adi

(4.77)

Agora, de posse das equacoes (4.76) e (4.77), podemos simplicar a express


ao para ij . Substituindo i por j em (4.77) e pre-multiplicando-a por ri , vem

de onde
riT Adj

riT rj+1

riT rj j riT Adj

j riT Adj

riT rj riT rj+1

1 T
i ri ri ,
1
i1
riT ri ,

0,

e, entao, ij pode ser escrito como

ij =

i=j
i = j + 1,
c.c.

pela equacao (4.76)

riT ri
1
,
i1 dT
Adi1
i1

i=j+1

0,

i>j+1

(4.78)

(4.79)

Devido a` A-ortogonalidade entre os vetores direcao e os resduos, a grande maioria dos termos
necessarios a` formulacao de ij pode ser descartada. Utilizando as equacoes (4.64), (4.75) e (4.76),
a equacao (4.79) pode ser simplicada ainda mais:
i

dTi1 Adi1
riT ri
riT ri
=
=
dTi1 ri1 dTi1 Adi1
dTi1 ri1

riT ri
T
ri1 ri1

(4.80)

onde o subscrito em j foi descartado, por ser desnecess


ario.
Tendo obtido essa expressao para i , podemos combin
a-la com as equacoes (4.61), (4.64) e
(4.77), de forma a escrever um algoritmo que expressa o metodo dos Gradientes-Conjugados,
conforme ilustrado a seguir. Note que, a partir da equacao (4.70), e considerando que ui ri ,
expressamos um vetor direcao como
di+1 = ri+1 + i+1 di

(4.81)

Algoritmo 4.7.1 Gradientes-Conjugados


proc gradientes conjugados(input: A, b, x0 , kmax , ; output: xk+1 )
t || b ||
r0 b Ax0
d0 r0
for k = 0, 1, . . . , kmax do
wk Adk
k

T
rk
rk
dT
wk
k

xk+1 xk + k dk
rk+1 rk k wk
if || rk+1 || < t then
break
endif
rT

k+1
k+1 k+1
Tr
rk
k
dk+1 rk+1 + k+1 dk
endfor
endproc

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

99

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

O exemplo seguinte ilustra o comportamento tpico do metodo dos Gradientes-Conjugados:


Exemplo 4.16 Resolva o sistema

4 1 1
1 4
0

1 0
4
0 1 1

1
x =

1
4

0
1

1
0

cuja soluc
ao e x = (0, 1667, 0, 3333, 0, 3333, 0, 1667)T , usando o metodo dos Gradientes-Conjugados
com x0 = (0, 0, 0, 0)T a uma toler
ancia = 102 .
Solucao: Aplicando o metodo dos Gradientes-Conjugados, obtemos
x1

= (0, 0, 25, 0, 25, 0)T

x2

= (0, 1667, 0, 3333, 0, 3333, 0, 1667)T

ou seja, com apenas duas iterac


oes, obtemos uma aproximac
ao para a soluc
ao dentro da toler
ancia
especicada.

4.8

Exerccios

Exerccio 4.1 Resolva o sistema

4x1 + 4x2 = 20, 5


7x1 + 6, 99x2 = 34, 97

atraves do metodo de eliminaca


o de Gauss, com precis
ao de 5 dgitos signicativos, renando a
soluc
ao obtida.
Exerccio 4.2 Calcule norm| A | das matrizes


0, 992 0, 873
(a)
,
0, 481 0, 421


(b)

1
5
1, 5 7, 501

e diga se s
ao bem ou mal-condicionadas.
Exerccio 4.3 Calcule o n
umero de condic
ao das matrizes do exerccio 4.2, sabendo que as suas
inversas s
ao dadas de forma aproximada, respectivamente, por




184, 568 382, 727
7501 5000
(a)
, (b)
210, 872 434, 897
1500 1000
Exerccio 4.4 Resolva o sistema

10x1 + x2 + x3 = 12
x1 + 10x2 + x3 = 12

x1 + x2 + 10x3 = 12

atraves do metodo de Jacobi, com uma toler


ancia de 107 .
Exerccio 4.5 Resolva o sistema do exerccio 4.4 atraves do metodo de Gauss-Seidel, com uma
toler
ancia de 107 .
Exerccio 4.6 Resolva o sistema do exerccio 4.4 atraves do metodo SOR, com uma toler
ancia de
107 . Determine, experimentando diversos valores, um que reduza substancialmente o n
umero
de iteraco
es necess
arias a
` convergencia.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

100

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes Lineares

Exerccio 4.7 Verique que o sistema linear

3
0 1
1
1 1 0 x = 2
3
1 1
5
n
ao e diagonal-dominante, apesar do criterio de Sassenfeld ser satisfeito.
Exerccio 4.8 Explique o que acontece com a aplicac
ao do metodo de Gauss-Seidel ao sistema


1 1 1
1
2 2 2 x = 2 .
5 5 5
5
Exerccio 4.9 Utilize o metodo do Gradiente e resolva o sistema do exerccio 4.8; explique o que
ocorre.
Exerccio 4.10 Utilize o metodo dos Gradientes-Conjugados e resolva o sistema do exerccio 4.8;
explique o que ocorre.
Exerccio 4.11 Mostre, utilizando o sistema




2 1
10
x=
1
2
10
que o metodo das Direc
oes-Conjugadas equivale ao metodo da eliminac
ao Gaussiana, se as direc
oes
tomadas s
ao os vetores u1 = (1, 0)T e u2 = (0, 1)T .
Exerccio 4.12 Resolva o sistema

106
1

1
1


x=

1
1

atraves do metodo dos Gradientes-Conjugados, para uma toler


ancia de 104 .

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

101

Captulo 5

Resolu
c
ao de Sistemas de
Equac
oes N
ao-Lineares
5.1

Introdu
c
ao

Neste captulo, apresentaremos o metodo de Newton para sistemas de equacoes n


ao-lineares, i.e.,
procuramos um vetor x que satisfaca
F (x) = 0
(5.1)
onde F : IRn IRn , i.e.

f1 (x1 , x2 , . . . , xn ) = 0

f2 (x1 , x2 , . . . , xn ) = 0
..

fn (x1 , x2 , . . . , xn ) = 0

(5.2)

Pode-se armar que todas as consideracoes apresentadas no Captulo 2 para o metodo de NewtonRaphson s
ao tambem validas para esse caso. No entanto, a solucao de (5.1) e bem mais difcil,
requerendo uma serie de cuidados adicionais (ver [5]).

5.2

M
etodo de Newton

Como visto na secao 2.4, o metodo de Newton-Raphson e uma linearizacao da funcao f (x) no
ponto x = xk . Essa ideia deve ser estendida para o presente caso, como veremos a seguir.
Considerando ent
ao o sistema (5.1), podemos escrever as expansoes em Taylor (apenas ate os
termos de primeira ordem) de cada funcao fi em (5.2) como

f1
f1
f1

0 = f1 (x1 + h1 , x2 + h2 , . . . , xn + hn ) f1 (x1 , x2 , . . . , xn ) + h1 x1 + h2 x2 + . . . + hn xn
..
.

fn
fn
n
0 = fn (x1 + h1 , x2 + h2 , . . . , xn + hn ) fn (x1 , x2 , . . . , xn ) + h1 f
x1 + h2 xn + . . . + hn xn
(5.3)
ou, em termos matriciais:

f1 (x1 , x2 , . . . , xn )

..
+

.
fn (x1 , x2 , . . . , xn )

f1
x1

..
.

fn
x1

...
..
.
...

f1
xn

..
.

fn
xn

F (x) + J(x)h = 0

102


h1
..
. =
hn

0
..
.
0

(5.4)

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes N
ao-Lineares

onde J(x) e a matriz Jacobiana de F (x). Ora, para obtermos o vetor h = (h1 , h2 , . . . , hn ), devemos
resolver o sistema de equacoes lineares
J(x)h = F (x)

(5.5)

o que exige, obviamente, que J(x) seja n


ao-singular. Ent
ao, se x x(k) (i.e., x e uma estimativa
para a solucao de (5.1) na iteracao k), podemos obter uma nova estimativa (possivelmente melhor)
atraves de

(k+1)
(k)
(k)
x1
x1
h1

. .
..

= . + .
(5.6)
.

. .
(k+1)

xn

(k)

xn

(k)

hn

x(k+1) = x(k) + h(k)


Note as similaridades com o metodo de Newton-Raphson: naquele, a correcao e escrita como
xk+1 = xk + hk , onde hk = f (x)/f  (x), o que e equivalente a` equacao (5.5).
Ao se resolver o sistema (5.5), pode-se utilizar qualquer um dos metodos vistos no Captulo
4; usualmente, utiliza-se a fatoracao LU (vide secao 4.3.2), mas metodos iterativos s
ao indicados
quando a matriz J e esparsa [9]. De qualquer maneira, no entanto, a matriz J pode se tornar
quase singular, o que diculta bastante a solucao de (5.1).
Outro problema relacionado ao metodo de Newton e na obtencao da matriz J(x). Cabe notar
que apenas para problemas com n muito pequeno e factvel calcular-se de forma explcita a matriz
J; logo, J deve ser calculada de forma aproximada. Ora, seus elementos sao as derivadas parciais
das fi em relacao a xi ; portanto, aproximacoes dessas derivadas por diferencas nitas (vide 2.5)
podem ser utilizadas. A denicao tpica de cada coluna da matriz J(x) e

F (x+h|| x ||ej )F (x)
x = 0
h|| x ||
J(x)j =
(5.7)
F (hej )F (x)
x=0
h

conforme [9, pp. 80], onde ej e o vetor canonico de n elementos, h = e e o epsilon da maquina
(vide Captulo 1).
O metodo de Newton para sistemas de equacoes nao-lineares pode, entao, ser descrito conforme
ancias pre-especicadas.
o algoritmo 5.2.1, onde r e a sao duas toler
Algoritmo 5.2.1 Metodo de Newton para sistemas de equac
oes
n
ao-lineares
proc newton(input: x0 , r , a , kmax ; output: xk+1 , k)
F0 = || F (x0 ) ||
for k = 0, 1, . . . , kmax do
Calcule J(x(k) )
Resolva o sistema J(x(k) )h(k) = F (x(k) )
x(k+1) x(k) + h(k)
if || F (x(k) || < r F0 + a then
break
endif
Calcule F (x(k+1) )
endfor
endproc
Os exemplo a seguir ilustram como utilizar o metodo de Newton.
Exemplo 5.1 Sejam as equac
oes
f (x, y) =
g(x, y) =

sen(y)ex x2
cos(y)ex x3

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

103

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes N
ao-Lineares

Calcule o ponto de intersecc


ao entre ambas as curvas usando o metodo de Newton.
Solu
c
ao: O gr
aco das func
oes f e g e mostrado na gura 5.1; nele pode-se perceber que a
soluc
ao e, aproximadamente, (0, 7, 1, 0).

Figura 5.1: As func


oes f e g.
Escrevendo na notac
ao apropriada, temos


sen(y)ex x2
F =
cos(y)ex x3
e a matriz Jacobiana e dada, explicitamente, por

sen(y)ex 2x
J=
cos(y)ex 3x2

cos(y)ex
sen(y)ex

Assim, utilizando como estimativa inicial o vetor x0 = (x, y) = (0, 0)T , obtemos a seguinte
seq
uencia de valores para o metodo de Newton, conforme o algoritmo 5.2.1:

0
F0 =
1


0 1
J0 =
1 0

1
h0 = J01 F0 =
0

1
x1 = x0 + h0 =
0


1
F1 =
0, 6321


2 0, 3679
J1 =
3, 3679
0


0, 1877
h1 = J11 F1 =
1, 6979


0, 8123
x2 = x1 + h1 =
1, 6979


0, 2196
F2 =
0, 5923


2, 0649 0, 0563
J2 =
1, 9233 0, 4403


0, 0791
h2 = J21 F2 =
0, 9996
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

104

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes N
ao-Lineares

x3

F3

J3

h3

x4

F4

J4

h4

x5

F5

J5

h5

x6

F6


0, 7332
x2 + h2 =
0, 6982


0, 2288
0, 0262


1, 7752
0, 3680
1, 9807 0, 3088


0, 0629
1
J3 F3 =
0, 3184


0, 6709
x3 + h3 =
1, 0166


0, 0144
0, 0320


1, 7756
0, 2692
1, 6172 0, 4350


0, 0123
1
J4 F4 =
0, 0279


0, 6588
x4 + h4 =
0, 9888


0, 3810
3
10
0, 2395


1, 7487
0, 2847
1, 5837 0, 4926


0, 1930
1
3
J5 F5 = 10
0, 1529


0, 6578
x5 + h5 =
0, 9889


0, 2585
7
10
0, 8432

ou seja, ap
os 6 iterac
oes, o valor de F (x6 ) e considerado pequeno o suciente, e x = 0, 6578 e
y = 0, 9889 bastante pr
oximos da estimativa para a soluc
ao conforme o gr
aco na gura 5.1.
Obviamente, poderamos ter acelerado consideravelmente o processo utilizando como estimativa
inicial o vetor x0 = (0, 7, 1).
O mesmo n
umero de iterac
oes e alcancado se utilizarmos a aproximac
ao numerica da matriz
Jacobiana dada pela equac
ao (5.7).
Exemplo 5.2 Considere o problema de intersecc
ao de uma reta que passa pelos pontos q0 e q1
em R3 ,

r (t) = q0 + (q1 q0 )t, t IR


e o plano que passa pelos pontos p0 , p1 e p2 ,

S (u, v) = (p0 + (p1 p0 )u + (p2 p0 )v,


i.e., queremos resolver o problema

u, v IR

S (u, v)
r (t) = 0

Se q0 = (5, 5, 0), q1 = (5, 5, 0), p0 = (0, 0, 0), p1 = (0, 0, 10) e p2 = (10, 0, 0), mostre como se
comporta o metodo de Newton nesse caso.

aveis a
Solu
c
ao: Note que S (u, v) e
r (t) s
ao func
oes vetoriais em R3 . Como temos tres vari

determinar u, v e t e tres equac


oes da forma S (u, v)
r (t) = 0, uma para cada componente
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

105

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes N
ao-Lineares

x, y e z, o problema e bem posto. Como S (u, v) e uma func


ao linear, o metodo de Newton dever
a
convergir em uma u
nica iteraca
o1 .
Escrevendo ent
ao na notac
ao adequada, temos

(au + bv ct + p0 q0 )x
F = (au + bv ct + p0 q0 )y
(au + bv ct + p0 q0 )z
onde a = p1 p0 , b = p2 p0 e c = q1 q0 , temos que a matriz Jacobiana de F e constante,

ax bx cx
J = ay by cy
az bz cz
e, para os valores xados, temos

0 10 0
0 0 10
J =
10 0 0

a qual apresenta inversa e, portanto, o metodo de Newton n


ao ir
a sofrer interrupc
ao. Com efeito,
uencia de valores
se x0 = (u, v, t) = (0, 0, 0)T , teremos a seguinte seq

5
F0 = 5
0

0 10 0
0 0 10
J0 =
10 0 0

0
h0 = J01 F0 = 0, 5
0, 5

0
x1 = x0 + h0 = 0, 5
0, 5

0
F1 = 0
0
como era esperado, dada a natureza linear do problema. Cabe ressaltar, no entanto, que uma

formulac
ao semelhante deve ser usada para problemas onde S (u, v) e n
ao-linear.

Exemplo 5.3 Uma superfcie bic


ubica de Bezier B 3 (u, v) IR3 e denida por
3
v
2


 3
v

B 3 (u, v) = u u2 u 1 N P N T
v , , 0 u, v 1
1
onde N e uma matriz dada por

1 Na

1
3 3 1
3 6
3 0

3
3
0 0
1
0
0 0

verdade, n
ao se utilizaria tal metodo para se resolver esse problema; ele e u
til apenas para fins de ilustrac
ao.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

106

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes N
ao-Lineares

e P IR3 e uma matriz que contem 16 pontos de controle que governam o desenvolvimento da
superfcie.
Um ponto da superfcie e dado por tres polin
omios bic
ubicos em u e v tais que, se os pontos
de controle s
ao ordenados como

P 0,0 P 0,1 P 0,2 P 0,3

P 1,0 P 1,1 P 1,2 P 1,3


P 2,0 P 2,1 P 2,2 P 2,3

P 3,0 P 3,1 P 3,2 P 3,3

ent
ao, para u = 0 e v = 0, B 3 (0, 0) = P0,0 ; para u = 0 e v = 1, B 3 (0, 1) = P0,3 ; B 3 (1, 0) = P3,0

e B 3 (1, 1) = P3,3 .
Considere, ent
ao, o problema de intersecc
ao de um segmento de reta com origem no ponto
(100, 5, 5) e vetor direc
ao (1, 0, 0),

r (t) = (100, 5, 5) + t(1, 0, 0),

t IR

ao
com a superfcie B 3 (u, v), onde os pontos de controle s

0 0 0 0
10 10 10 10

Px =
20 20 20 20
30 30 30 30

0 5 5 0
5 10 10 5

Py =
5 10 10 5
0 5 5 0

0 0
0 0
10 10 10 10

Pz =
20 20 20 20
30 30 30 30
de onde a func
ao F pode ser escrita como

(B3 (u, v))x + t 100


.
F =
(B3 (u, v))y 5
(B3 (u, v))z 5
Note que, agora, a matriz Jacobiana n
ao e constante. A gura 5.2 mostra a superfcie e a reta
em quest
ao.
ancia de 1010 ,
Se utilizarmos o metodo de Newton com x0 = (u, v, t) = (0, 0, 0)T e uma toler
teremos a seguinte seq
uencia de valores

100
F0 = 5
5

30 0 1
J0 = 15 15 0
30 0 0

0, 1667
h0 = J01 F0 = 0, 1667
95

0, 1667
x1 = x0 + h0 = 0, 1667
95
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

107

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes N
ao-Lineares

Figura 5.2: Intersecc


ao entre a reta (100, 5, 5) + t(1, 0, 0) com uma superfcie bic
ubica de Bezier.

F1

J1

h1

x2

F2

J2

h2

0
0, 8333
0

30 0 1
10 10 0
30 0 0

0
J11 F1 = 0, 0833
0

0, 1667
x0 + h0 = 0, 2500
95

0
0, 1042
0

30
0 1
10 7, 5 0
30
0 0

0
J21 F2 = 0, 0139
0

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

108

Introduca
o ao C
alculo Numerico

Resoluc
ao de Sistemas de Equac
oes N
ao-Lineares

x3

=
..
.

F5

J5

h5

x6

0, 1667
x0 + h0 = 0, 2639
95

0
105 0, 2494
0

30
0 1
10 7, 0711 0
30
0 0

0
J51 F5 = 106 0, 3527
0

0, 1667
x0 + h0 = 0, 2643
95

ao do problema de intersecc
ao, de acordo com a toler
ancia especicada.
onde x6 e a soluc

5.3

Exerccios

Exerccio 5.1 Considere o exemplo 5.2, com q0 = (5, 5, 0), q1 = (15, 0, 0), p0 = (0, 0, 0), p1 =
(0, 0, 10) e p2 = (10, 0, 0). Explique o que acontece.
Exerccio 5.2 Uma esfera de raio r e centro (cx , cy , cz ) pode ser denida, de forma parametrica,
como
(r cos() cos() + cx , r cos()sen() + cy , rsen() + cz )

onde /2 /2 e 0 < 2. Calcule as intersecc


oes dessa esfera com a reta
o + t
u,

o = (10, 10, 10) e


u = (1, 1, 1). Utilize como estimativa inicial 0 = 0 = t0 = 0 e uma
toler
ancia de 105 .

Exerccio 5.3 Compare o processo numerico utilizado para resolver o exerccio 5.2 com a soluc
ao
do mesmo problema, obtida de forma algebrica. ( Dica: utilize a equacao da reta na forma

parametrica
o +t
u e substitua na equacao implcita da esfera, (xcx )2 +(y cy )2 +(z cz )2 = r2 ,
e isole t.)
Exerccio 5.4 Utilize a formulaca
o apresentada no exemplo 5.3, para a reta (100, 20, 5)+t(1, 0, 0).
Explique o que acontece.
Exerccio 5.5 Resolva o sistema


0, 1x2 x + 0, 1y 2 + 0, 8 = 0
0, 1x y + 0, 1xy 2 + 0, 8 = 0

sabendo que ele apresenta uma soluc


ao pr
oxima a (x, y) = (0, 5, 0, 5).
Exerccio 5.6 Calcule (x, y) de modo que


x2 + y 2 = 2
x2 y 2 = 1

usando x0 = y0 = 1.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

109

Captulo 6

Autovalores e Autovetores
6.1

Introdu
c
ao

Neste captulo, apresentaremos alguns dos metodos utilizados para a solucao do problema do
autovalor, i.e., o sistema de n equacoes lineares
Ax = x

(6.1)

para o qual procuramos um vetor solucao x tal que xi = 0 para pelo menos algum i, ou seja, uma
solucao n
ao-trivial. Para que tal seja possvel, e necessario que
det(A I) = 0

(6.2)

a qual e uma equacao polinomial de grau n na vari


avel , chamada de equac
ao caracterstica de
A; o polin
omio det(A I) e chamado de polin
omio caracterstico de A.
As n razes de (6.2) sao chamadas de autovalores, razes latentes ou valores caractersticos de
A. A cada raiz corresponde um vetor x ICn = 0 que satisfaz a equacao (6.1), o qual e chamado
de autovetor, vetor latente ou vetor caracterstico de A. Note que, se x e um autovetor de A, ent
ao
kx, onde k IR, tambem e, pois
Akx = kAx = kx = kx.
Costumeiramente os autovetores sao normalizados, i.e. || x || = 1 em alguma norma escolhida (o
que pode ser feito pela relacao acima).
Se todas as razes de (6.2) sao distintas entre si, ent
ao isso implica em que a matriz A apresenta
um conjunto completo de autovetores linearmente independentes (L.I.). No entanto, mesmo para
casos em que os autovalores n
ao sao todos distintos, podemos encontrar um conjunto completo de
autovetores L.I.
Podemos tambem calcular os autovalores da matriz inversa de A, A1 , a partir dos autovalores
de A. Se multiplicarmos a equacao (6.1) a` esquerda por A1 , temos
x = A1 x
ou
A1 x =

1
x.

(6.3)

Essa u
ltima equacao nos diz que 1 e autovalor de A1 , onde e um autovalor de A, com o
autovetor x correspondente.
Problemas envolvendo autovalores e autovetores surgem em in
umeras aplicacoes, como podemos ver nos exemplos que seguem, conforme apresentados em [6].

110

Introduca
o ao C
alculo Numerico

Autovalores e Autovetores

Exemplo 6.1 O estudo das vibrac


oes de sistemas din
amicos e de estruturas requer a soluc
ao de
problemas de autovalores e autovetores. Considere, apenas para ns de explanac
ao, o problema
de se determinar as vibrac
oes de pequenas partculas presas por um o uniforme, sem peso, ao

qual e aplicada uma forca F nas extremidades (cf. a gura 6.1) e no qual desconsidera-se a ac
ao
da gravidade. As partculas encontram-se a dist
ancias iguais entre si e as vibrac
oes das mesmas
s
ao consideradas pequenas e perpendiculares a
` posic
ao de descanso do o. Escrevendo as equac
oes

Figura 6.1: O problema das vibrac


oes.
diferenciais para as forcas atuantes em cada partcula, temos:
d2 x1
dt2
d2 x2
m2 2
dt
d2 x3
m3 2
dt
d2 x4
m4 2
dt

m1

=
=
=
=

x2 x1
x1
+F
h
h
x3 x2
x2 x1
+F
F
h
h
x3 x4
x3 x2
F
F
h
h
x4
x3 x4
F
+F
h
h
F

Introduzindo a notac
ao
x
di

= (x1 , x2 , x3 , x4 )T
mi h
, i = 1, 2, 3, 4
=
F

podemos escrever o sistema de equac


oes diferenciais acima na forma matricial
D
onde D e a matriz diagonal

D=

d2 x
= Tx
dt2

(6.4)

d1

d2
d3
d4

e T e a matriz tridiagonal

2
1
0
0
1 2
1
0
.
T =
0
1 2
1
0
0
1 2

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

111

Introduca
o ao C
alculo Numerico

Autovalores e Autovetores

Quando as partculas vibram em fase ou em direco


es opostas, i.e., em modo normal, ent
ao a
condica
o
d2 x
= w2 x, w IR
(6.5)
dt2
e satisfeita. Substituindo a equaca
o (6.5) em (6.4), obtemos o problema de autovalor
Dwi2 xi = T xi ,

i = 1, 2, 3, 4

(6.6)

para as freq
uencias de vibracao w1 , w2 , w3 e w4 e os modos normais correspondentes, i.e., os
autovetores x1 , x2 , x3 e x4 .
Aparentemente, se isolarmos x no lado direito da equac
ao (6.6), obteramos o que se chama
de problema generalizado do autovalor, cuja forma geral e
(A B)x = 0
onde A e B s
ao matrizes de ordem n. Porem, se introduzirmos o vetor
y = D1/2 x
o que e possvel, j
a que os elementos da diagonal de D s
ao positivos, por denic
ao, ent
ao podemos
escrever (6.6) como
D1/2 T D1/2 yi = wi2 yi
o qual recai na forma 6.1.
Exemplo 6.2 A teoria de Leontief sobre a compra e a venda de produtos e muito utilizada no
campo de estudo da macroeconomia; como exemplo, consideramos as vendas e compras de produtos
num setor industrial.
Seja bij as vendas da ind
ustria i para a ind
ustria j; bii representa os bens produzidos pela
ind
ustria i e retidos por ela pr
opria. As vendas de bens da ind
ustria i para o mercado e denotada
ao,
por yi e o total de bens produzidos por xi . Ent

bij
(6.7)
xi = yi +
j

A m de denirmos bij , assume-se que as vendas da ind


ustria i para a j est
ao em proporc
ao
constante `
a produc
ao da ind
ustria j, i.e.
bij = aij xj
onde aij s
ao ditos coecientes de entrada. Em uma situac
ao est
atica, podemos escrever, a partir
de (6.7),
x = y + Ax
(6.8)
onde x = (x1 , x2 , . . . , xn )T e y = (y1 , y2 , . . . , yn )T e A e matriz de ordem n cujos elementos (i, j)
s
ao os coecientes de entrada aij . Ora, a equac
ao (6.8) pode ser reescrita como
(I A)x = y

(6.9)

onde I A e chamada de matriz de Leontief. A equac


ao (6.9) pode ser resolvida calculandose os autovalores e autovetores de A. Sua utilidade reside no fato de que, com ela, e possvel
determinar-se a quantidade de bens produzidos (x) necess
arios para satisfazer a uma demanda
nal (y), pre-estabelecida.
Se a produc
ao e a demanda n
ao se encontram em equilbrio, ent
ao devemos considerar um
modelo din
amico, que leve em considerac
ao a taxa de variac
ao da produc
ao. Nesse caso, usualmente considera-se que a produc
ao em cada ind
ustria varia a uma taxa proporcional `
a diferenca
entre os nveis de venda e de produc
ao. Da,
dx(t)
= D ((A I)x(t) + y(t))
dt
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

(6.10)
112

Introduca
o ao C
alculo Numerico

Autovalores e Autovetores

onde D e uma matriz diagonal de ordem n, cujos elementos dii representam os coecientes de
reacao das ind
ustrias.
A equac
ao (6.10) substitui nesse caso a equac
ao (6.8) e representa o comportamento din
amico
do sistema econ
omico em estudo. Uma das quest
oes a serem estudadas, nesse caso, e se o sistema
e est
avel, determinando-se os autovalores e autovetores da matriz D(A I). Particularmente,
procura-se determinar se esses autovalores tem parte real positiva pois, como as soluc
oes do
a
sistema de equaco
es diferenciais (6.10) s
ao da forma ei t , isso indicaria uma instabilidade, j
que a demanda x(t) cresceria exponencialmente com o tempo.
A seguir, apresentaremos dois importantes teoremas, os quais nos permitir
ao desenvolver
tecnicas de determinacao de autovalores e autovetores para um tipo especco de matrizes.

6.2

Teoremas de limites sobre autovalores

Teorema 6.2.1 Discos de Gerschgorin: Seja A uma matriz de ordem n, e di , i = 1, 2, . . . , n


ao dados por
os discos cujos centros s
ao os elementos aii e cujos raios ri s
ri =

n


|aij |,

i = 1, 2, . . . , n.

j=1

j=i

Seja D a uni
ao de todos os discos di . Ent
ao, todos os autovalores de A encontram-se contidos em
D.
Prova: Seja um autovalor de A e x um autovetor correspondente, tal que maxi | xi | = 1. Ent
ao,
x = Ax
de onde
( aii )xi =

n


aij xj ,

i = 1, 2, . . . n

j=1

j=i

Supondo que | xk | = 1, ent


ao
| akk |

n


| akj || xj |

j=1

j=i

n


| akj | = rk

j=1

j=i

i.e., o autovalor esta contido no disco dk e, como e arbitr


ario, ent
ao todos os autovalores de A
devem estar contidos na uni
ao de todos os discos, D.
O exemplo a seguir apresenta uma aplicacao do teorema 6.2.1.
Exemplo 6.3 A matriz

1
0 1
4 1
A = 1
1 2 10

tem como seus autovalores 1 = 10, 3863, 2 = 3, 8037 e 3 = 0, 8100. Calculando os discos de
Gerschgorin, temos:
d1

= |z 1| < |0| + | 1| = 1

d2
d3

= |z 4| < | 1| + | 1| = 2
= |z 10| < | 1| + | 2| = 3

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

113

Introduca
o ao C
alculo Numerico

Autovalores e Autovetores

Como todos os autovalores de A s


ao reais, e observando (veja a gura 6.2) que em cada disco
devemos ter um autovalor, podemos dizer que:
existe um autovalor, 1 , que est
a dentro do disco centrado em 10 e raio 3 e, de fato, 7 <
10, 3863 < 13;
a dentro do disco centrado em 4 e raio 2 e, realmente,
existe um autovalor, 2 , que est
2 < 3, 8037 < 6;
existe um autovalor, 3 , que est
a dentro do disco centrado em 1 e raio 1 e, com efeito,
0 < 0, 81 < 2;
A gura 6.2 ilustra esse resultado.

Figura 6.2: Discos de Gerschgorin


Uma conseq
uencia do teorema de Gerschgorin e a determinacao do maior disco que contem
todos os autovalores de A. Podemos obter, a partir dos discos, os extremos ao longo do eixo dos
n
umeros reais, i.e. o intervalo [, ] tal que
= min{aii ri },
i

= max{aii + ri },
i

i = 1, 2, . . . , n

(6.11)

e o maior disco e justamente aquele com centro ( + )/2 e raio ( + )/2. No caso em que todos
os autovalores s
ao reais, basta ent
ao considerar o intervalo [, ].
Teorema 6.2.2 Maior e menor autovalor: Seja A uma matriz real simetrica de ordem n, e
x IC um vetor arbitr
ario. Ent
ao,
1 = max
x=0

xT Ax
,
xT x

n = min
x=0

xT Ax
xT x

onde os autovalores s
ao ordenados tais que 1 2 . . . n .
A razao

xT Ax
, x = 0
(6.12)
xT x
e chamada de quociente de Rayleigh correspondente a x e, juntamente com o teorema 6.2.2, nos
permitir
a estimar de forma bastante r
apida um autovalor de uma matriz simetrica, conforme
veremos na secao 6.5.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

114

Introduca
o ao C
alculo Numerico

6.3

Autovalores e Autovetores

C
alculo de autovalores e autovetores via determinantes

J
a vimos que, por denicao, os autovalores de uma matriz A sao as razes do polin
omio caracterstico de A. Evidentemente, para matrizes de ordem n > 4, n
ao e aconselhavel que se utilize a
equacao (6.2) para se obter o polinomio caracterstico, por duas raz
oes:
1. o calculo de determinantes de ordem superior a 4 envolve consider
avel custo computacional;
2. o polin
omio caracterstico de uma matriz grande pode ser instavel numericamente.
No entanto, algumas aplicacoes de engenharia, fsica e outros campos do conhecimento envolvem
a determinacao de autovalores de matrizes de ordem n = 2 ou n = 3 e, nesse caso, e possvel obterse os autovalores extraindo as razes do polin
omio caracterstico, conforme mostra o exemplo a
seguir.
Exemplo 6.4 Seja a matriz

2
5
3 4

O seu polin
omio caracterstico e

2
5
p() = det(A I) =

3
4

= (2 )(4 ) 15

ao 1 = 3, 8990 e 2 = 5, 8990.
ou p() = 2 + 2 23, cujas razes s
Para se determinar os autovetores, utiliza-se a equacao (6.1) para cada autovalor i , na forma
(A i I)xi = 0, como segue:
Exemplo 6.5 Calcule os autovetores do exemplo 6.4.
Solucao: Para o autovalor 1 = 3, 8990, escrevemos


(A 3, 8990I)x1


7, 8990
5
(x1 )1
(x1 )2
3 1, 8990


de onde obtemos
x1 =

k
1, 5798k

=
=

0


0
0

k = 0

O autovetor correspondente a 2 = 5, 8990 e obtido de forma similar:




(A + 5, 8990I)x1 =


1, 8990
5
(x2 )1
=
(x2 )2
3 7, 8990


de onde obtemos
x2 =

k
0, 3798k

0


0
0

k = 0

Computacionalmente, no entanto, podemos estimar o autovetor correspondente a um autovalor


utilizando os metodos da potencia com translac
ao da origem (secao 6.5.2) ou da iteraca
o inversa
com translac
ao da origem (secao 6.5.3).

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

115

Introduca
o ao C
alculo Numerico

6.4

Autovalores e Autovetores

Autovalores de uma matriz tridiagonal sim


etrica

Em muitas aplicacoes surgem matrizes tridiagonais simetricas, das quais necessitamos extrair
autovalores e/ou autovetores. Por exemplo, ao aproximarmos a equacao diferencial parcial
2u
u
=
t
x2
por diferencas nitas, obtemos uma matriz

2
1
0
0
1 2
1
0

0
1 2
1
0
0
1 2
a qual apresenta aquela caracterstica.
De forma geral, consideramos uma matriz

a1 b 1

b 1 a2

T = 0 ...

. .
.. . .
0 ...

T de ordem n,
0
..
.
..
..

.
0

...
0
..
..
.
.
..
.
0
..
. bn1
bn1
an

e chamamos de Tr a matriz principal de ordem r de T , i.e.



a1


a1 b 1
T 1 = a1 , T 2 =
, T3 = b1
b 1 a2
0

b1
a2
b2

(6.13)

0
b2 ,
a3

...

Escrevendo as equacoes caractersticas p1 (), p2 () e p3 () das matrizes T1 , T2 e T3 , obtemos:


p1 ()
p2 ()
p3 ()

det(T1 I) = a1

(6.14)
b21

b21

=
=

det(T2 I) = (a2 )(a1 ) = (a2 )p1 ()


(6.15)


2
2
det(T3 I) = (a3 ) (a2 )(a1 ) b1 (a3 ) b2 (a1 ) =

(a3 )p2 () b22 p1 ()

(6.16)

de onde podemos escrever, generalizando para r,


pr () = (ar )pr1 () b2r1 pr2 (),

r = 2, 3, . . . , n,

p0 () = 1,

(6.17)

A equacao (6.17) nos permite avaliar o polin


omio caracterstico da matriz T de forma bastante
eciente; no entanto, estamos preocupados em obter os autovalores de T , ou as razes de pn . O
teorema a seguir nos permitir
a escrever um algoritmo bastante eciente para se extrair alguns ou
todos os autovalores de T .
ao
Teorema 6.4.1 Seq
u
encia de Sturm: Se a matriz tridiagonal (6.13) e n
ao-reduzvel 1 , ent
os r 1 autovalores da matriz Tr1 separam estritamente os r autovalores da matriz Tr :
r < r1 < r1 < r2 < < 2 < 1 < 1 .
Mais ainda, se s() representa o n
umero de trocas de sinal na seq
uencia
{p0 (), p1 (), . . . , pn ()}
ent
ao s() e igual ao n
umero de autovalores de T menores do que , onde pr () e dado por (6.17)
e assume-se que pr () tem o sinal oposto de pr1 () se pr () = 0.
1 Uma matriz A
e dita n
ao-reduzvel se os elementos da diagonal da matriz triangular superior R, resultante de
sua fatorac
ao no produto QR, s
ao todos n
ao-nulos, onde Q
e uma matriz ortogonal (i.e. QT Q = I).

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

116

Introduca
o ao C
alculo Numerico

Autovalores e Autovetores

O teorema 6.4.1 e extremamente importante: ele nos diz que, se tivermos os n autovalores
de uma matriz triadiagonal Tn (de ordem n), ent
ao entre cada par de autovalores consecutivos
(com excecao do menor e do maior), existe um e apenas um autovalor da matriz tridiagonal
Tn+1 (de ordem n + 1), obtida acrescentando-se uma linha e uma coluna `a matriz Tn . Devido a`
essa caracterstica, podemos utilizar o algoritmo da bisseccao (ver algoritmo 2.2.1), juntamente
com a equacao (6.17), para obtermos rapidamente, e com seguranca, um autovalor de Tn+1 , a`
partir de um intervalo que e um par de autovalores consecutivos de Tn .
Para obter-se o menor e o maior autovalores de Tn+1 , utilizamos o teorema de Gerschgorin mais especicamente, calculamos o maior intervalo que engloba todos os autovalores, com a equacao (6.11). Assim, o menor autovalor e calculado usando-se como estimativa inicial para o metodo
da bisseccao o intervalo [, r1 ]; para o maior autovalor, utiliza-se o intervalo [1 , ].
Os algoritmos 6.4.1, 6.4.2 e 6.4.3 combinam as ideias apresentadas acima. Da maneira como o
algoritmo 6.4.3 e apresentado, todos os autovalores s
ao obtidos; no entanto, simples modicacoes
do mesmo nos permitem obter apenas alguns autovalores (por exemplo, o maior e o menor, ou os
dois maiores, etc.).
O exemplo 6.6 demonstra uma situacao tpica, resolvido utilizando-se esses algoritmos.
Algoritmo 6.4.1 Avalia polin
omio caracterstico de uma matriz
tridiagonal simetrica
function pol carac trid(input: x, a, b; output: p)
% a e b s
ao os vetores contendo os elementos da
% diagonal e subdiagonal, respectivamente,
% da matriz tridiagonal
p0 1
p 1 a1 x
p p1
for r 2, 3, . . . , n do
p (ar x)p1 b2r1 p0
p0 p1
p1 p
endfor
endfunction

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

117

Introduca
o ao C
alculo Numerico

Autovalores e Autovetores

Algoritmo 6.4.2 Metodo da bissecc


ao com polin
omio caracterstico
ao trid(input: a, b, , , kmax , , &; output: )
proc bissecc
% a e b s
ao os vetores contendo os elementos da
% diagonal e subdiagonal, respectivamente,
% da matriz tridiagonal
u pol carac trid(, a, b)
v pol carac trid(, a, b)
e
if (sign(u) = sign(v)) then
n
ao pode proceder
else
k1
w1
while ((k kmax ) AND (| e | ) AND (| w | &))
e e/2
+e
w pol carac trid(, a, b)
if (sign(w) = sign(u)) then

vw
else

uw
endif
k k+1
endwhile
endif
endproc

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

118

Introduca
o ao C
alculo Numerico

Autovalores e Autovetores

Algoritmo 6.4.3 Autovalores


simetrica

de

uma

matriz

tridiagonal

proc autovalores tridiagonal(input: a, b, n; output: )


% Calcula os raios dos discos de Gerschgorin, cada qual com centro a(i)
r1 | b1 |
for i 2, 3, . . . , n 1 do
ri | bi1 | + | bi |
endfor
rn | bn1 |
% Calcula o intervalo [, ] na reta dos reais
% contendo os autovalores
minni=1 (ai ri )
maxni=1 (ai + ri )
% Calcula os autovalores, iniciando com o autovalor
% de T1 = [a1 ], = a1
1 = a1
for i 2, 3, . . . , n do
% Calcula os autovalores de Ti
% a. entre e 1
call bissecc
ao trid(a, b, , 1 , kmax , , &, 1 )
% b. autovalores entre 1 e i1
for j 1, 2, . . . , i 2 do
call bissecc
ao trid(a, b, j , j+1 , kmax , , &, j+1 )
endfor
% c. entre i1 e
ao trid(a, b, i1 , , kmax , , &, 1 )
call bissecc

endfor

endproc
Exemplo 6.6 Seja a matriz tridiagonal

2 1
1

2 1

T =

1
2 1
1
2

a qual pode ser representada de forma compacta atraves dos vetores


a = (2, 2, 2, 2)T

b = (1, 1, 1)T

Para se obter os autovalores de T , iniciamos com a matriz




T 1 = a1 = 2
a qual tem como seu u
nico autovalor 1 = a1 = 2. Alem disso, calculamos os extremos do intervalo
de Gerschgorin, = 0 e = 6, atraves da equac
ao (6.11).
Agora, precisamos calcular os dois autovalores da matriz



a1 b 1
2 1
=
T2 =
b 1 a2
1
2
os quais, pelos teoremas de Gerschgorin e 6.4.1, satisfazem
< 2 < 1 < 1 <
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

119

Introduca
o ao C
alculo Numerico

Autovalores e Autovetores

Estipulando-se como toler


ancias de convergencia para o metodo da bissec
ao = & = e um
m
aximo de 200 iteraco
es, 2 e obtido em 2 iterac
oes utilizando-se como intervalo de busca [, 1 ] =
oes, usando-se como
[0, 2], resultando no valor 2 = 1. O autovalor 1 tambem e obtido em 2 iterac
intervalo de busca [1 , ] = [2, 6], com o qual obtem-se 1 = 3.
Antes de procedermos ao c
alculo dos autovalores de T3 , fazemos uma c
opia dos , armazenandoos em ; assim, temos 1 = 3 e 2 = 1.
Procedemos, ent
ao, com o c
alculo dos autovalores de T3 ; para tanto, utilizamos os intervalos
de busca
[, 2 ] = [0, 1] para calcular o autovalor 3 ;
[2 , 1 ] = [1, 3] para calcular o autovalor 2 ;
[1 , ] = [3, 6] para calcular o autovalor 1 .
Os autovalores 3 , 2 e 1 s
ao ent
ao obtidos com o metodo da bissecc
ao, utilizando-se as mesmas
toler
ancias especicadas anteriormente, resultando em 3 = 0, 5858, 2 = 2 e 1 = 3, 4142, obtidos
em 27, 2 e 27 iteraco
es respectivamente.
Finalmente, basta calcularmos os autovalores de T4 . Procedendo de forma similar, fazemos
3 = 0, 5858, 2 = 2 e 1 = 3, 4142 e estipulamos os intervalos de busca
[, 3 ] = [0, 0, 5858] para calcular o autovalor 4 ;
[3 , 2 ] = [0, 5858, 2] para calcular o autovalor 3 ;
[2 , 1 ] = [2, 3, 4142] para calcular o autovalor 2 ;
[1 , ] = [3, 4142, 6] para calcular o autovalor 1 .
de onde, ap
os aplicarmos o algoritmo da bissecc
ao a cada um desses intervalos, obtemos os
autovalores de T4 T , 4 = 0, 3820, 3 = 1, 3820, 2 = 2, 6180 e 1 = 3, 6180, ap
os 27 iterac
oes
(para todos os intervalos de busca).
Note que n
ao se obtem, com essa tecnica, os autovetores correspondentes aos autovalores. Os
metodos apresentados na secao a seguir podem ser utilizados para se obter esses autovetores.

6.5

M
etodos para aproxima
c
ao de autovalores e autovetores

Em muitas aplicacoes, nao e necessario obter-se todos os autovalores; e comum desejar-se, por
exemplo, obter apenas o maior autovalor e seu correspondente autovetor. Os metodos apresentados
nessa secao sao indicados para o caso em que apenas um dos autovalores (e seu autovetor) necessita
ser calculado. Particularmente, tais metodos s
ao iterativos e apresentam boa eciencia quando a
matriz em estudo e grande, esparsa e apresenta uma grande separacao relativa entre o autovalor
desejado e os demais autovalores.

6.5.1

M
etodo da pot
encia

Seja A uma matriz de ordem n com autovalores i tais que


|1 | = |2 | = . . . = |r | > |r+1 | . . . |n |

(6.18)

Nesse caso, diz-se que A apresenta r autovalores dominantes. Por hip


otese, assumimos que existem
n autovetores linearmente independentes xi , de onde qualquer vetor arbitr
ario z0 pode ser expresso
como combinacao linear desses autovetores, i.e.
z0 =

n


i xi

(6.19)

i=1

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

120

Introduca
o ao C
alculo Numerico

Autovalores e Autovetores

Considere agora o metodo de aproximacao sucessiva


zk = Azk1 ,

k = 1, 2, . . .

(6.20)

onde z0 e um valor inicial, dado. Usando as equacoes (6.1), (6.19) e escrevendo (6.20) em termos
de z0 , temos
zk

= Azk1 = A2 zk2 = . . . = Ak z0
n

=
i ki xi

(6.21)

i=1

Se pelo menos um dos 1 , 2 , . . ., r n


ao e nulo, ent
ao os termos correspondentes a eles, i.e.

r
k
ao dominar o somat
orio da equacao (6.21).
i=1 i i xi ir
Suponha, por exemplo, que temos um autovalor dominante, 1 , de A. Considerando que
1 = 0, podemos reescrever (6.21) como

 k 
n

i
zk = k1 1 x1 +
i
xi

1
i=1
Note agora que, como 1 > 2 . . . n , por hip
otese, entao os termos
 k
i
1
tendem a zero `a medida que k cresce. Da, podemos escrever
zk = k1 (1 x1 + &k )

(6.22)

oximos a zero. O vetor zk tende, ent


ao, a aproximar o
onde &k e um vetor com elementos pr
autovetor n
ao-normalizado x1 . Essa equacao nos permite escrever o assim chamado metodo da
potencia.
Da equacao (6.22), podemos escrever
(1 x1 + &k+1 )
zk+1 = k+1
1
e, dividindo a i-esima componente da equacao acima pela componente correspondente de (6.22),
obtemos


1 x1 + &k+1
(zk+1 )i
= 1
(6.23)
1 , quando k , i = 1, 2, . . . , n
(zk )i
1 x1 + &k
onde (zk )i indica o elemento i do vetor zk . A equacao (6.23) nos diz que a taxa de convergencia
do metodo depende n
ao so das constantes i , mas principalmente das fracoes

2

3


,

, . . . ,
n
.

1

1

Quanto menores forem esses fracoes, mais rapida e a convergencia; por isso diz-se que o metodo
da potencia e eciente converge rapidamente para um autovalor desde que este autovalor seja
dominante, i.e., relativamente distante dos demais.
De posse das equacoes (6.20) e (6.23), podemos escrever um algoritmo para o metodo da
potencia. Uma quest
ao que se coloca e: quais valores iniciais, 0 e z0 , devemos utilizar para o
autovalor dominante e seu autovetor? Para z0 , consideraremos um vetor arbitrario, o qual ser
a
normalizado antes de se iniciar as iteracoes. Com essa escolha, valemo-nos da equacao (6.1) e
escrevemos
Az0
z0T Az0

= 0 z0 ... || z0 || = 1 ...
= z0T 0 z0 = 0 (z0T z0 ) = 0

Aplica-se, entao, repetidamente a equacao (6.20), normalizando o vetor zk a cada iteracao, conforme
mostrado no algoritmo 6.5.1. O exemplo 6.7 mostra o funcionamento do metodo.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

121

Introduca
o ao C
alculo Numerico

Autovalores e Autovetores

Algoritmo 6.5.1 Metodo da potencia


proc potencia(input: A, z0 , &, kmax ; output: k , zk )
z0 z0 /|| z0 ||
0 z0T Az0
for k = 1, 2, . . . , kmax do
q Azk1
zk q/|| q ||
k zkT Azk
if | k k1 | < & then
break
endif
endfor
endproc
Exemplo 6.7 Seja a matriz

8 1
A = 1 5
0 1

2
1 ,
90

a qual tem como autovalores e respectivos autovetores,


1 = 90, 0115, 2 = 7, 6308, 3 = 5, 3577

0, 0245
0, 9353
0, 0043
x1 = 0, 0115 , x2 = 0, 3539 , x3 = 0, 0111 .
0, 9996
0, 0043
0, 9996

Utilizando-se o metodo da potencia com um vetor com tres elementos escolhidos arbitrariamente
uencia de valores, com uma
e normalizado, z0 = (0, 4394, 0, 6415, 0, 6287)T , obtem-se a seguinte seq
toler
ancia para convergencia de 105 :
k
0
1
2
3
4
5
6

zk
(0, 4394, 0, 6415, 0, 6287)T
(0, 0940, 0, 0590, 0, 9938)T
(0, 0313, 0, 0133, 0, 9994)T
(0, 0251, 0, 0115, 0, 9996)T
(0, 0246, 0, 0115, 0, 9996)T
(0, 0245, 0, 0115, 0, 9996)T
(0, 0245, 0, 0115, 0, 9996)T

k
40, 5408
89, 2834
89, 9939
90, 0102
90, 0114
90, 0115
90, 0115

onde pode-se vericar que z6 e uma boa aproximac


ao para x1 , sujeita a
`quela toler
ancia.
Caso a matriz tenha autovalores dominantes repetidos, i.e.
1 = 2 = . . . = r
o metodo da potencia ir
a obter apenas um autovetor, o qual ser
a combinacao linear dos autovetores
correspondentes a 1 .
O metodo da potencia diverge se A tiver autovalores diferentes, porem de mesmo valor absoluto
como, por exemplo, um par conjugado de autovalores dominantes complexos, 2 = 1 ; o exemplo
a seguir ilustra tal situacao:
Exemplo 6.8 Seja a matriz

1 10
2
10 ,
A = 1 1
10 1 13

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

122

Introduca
o ao C
alculo Numerico

Autovalores e Autovetores

a qual tem como autovalores e respectivos autovetores,


1 = 9, 4515 + 3, 8807i, 2 = 9, 4515 3, 8807i, 3 = 7, 9030

0, 0307 0, 4143i
0, 0307 + 0, 4143i
0, 7897
x1 = 0, 2160 + 0, 5518i , x2 = 0, 2160 0, 5518i , x3 = 0, 4651 .
0, 4368 0, 5343i
0, 4368 + 0, 5343i
0, 4000
Utilizando-se o metodo da potencia com um vetor com tres elementos escolhidos arbitrariamente
uencia de valores, com uma
e normalizado, z0 = (0, 4857, 0, 0197, 0, 8739)T , obtem-se a seguinte seq
toler
ancia para convergencia de 105 :
k
0
1
2
3
4
5
6

zk
(0, 4857, 0, 0197, 0, 8739)T
(0, 2253, 0, 7668, 0, 6010)T
(0, 4829, 0, 3946, 0, 7817)T
(0, 2066, 0, 7546, 0, 6229)T
(0, 5786, 0, 5001, 0, 6443)T
(0, 4517, 0, 7731, 0, 4454)T
(0, 8581, 0, 4338, 0, 2749)T

k
4, 3241
9, 1975
8, 1345
9, 4601
6, 4876
6, 2931
1, 8886

a qual apresenta um comportamento n


ao convergente.

6.5.2

O m
etodo da pot
encia com transla
c
ao da origem

Como vimos na secao anterior, a convergencia do metodo da potencia depende de | 2 /1 |, para


o caso de existir apenas um autovalor dominante. Se essa razao for muito pr
oxima de 1, ent
ao a
convergencia e muito lenta.
No entanto, podemos obter a solucao de forma mais r
apida se procedermos a uma modicacao
do metodo da potencia. Essa modicacao baseia-se no fato de que, se e um autovalor de uma
matriz A, ent
ao e o autovalor correspondente da matriz A I. Dessa forma, se aplicarmos
o metodo da potencia a uma matriz A I, tal que 1 ainda seja dominante, a convergencia
do metodo depender
a de

o que, para um valor adequado de , poder


a ser menor do que | 2 /1 |. A esse processo, da-se
o nome de translaca
o da origem e como se os autovalores estivessem distribudos em um novo
sistema de referencia cuja origem e , e n
ao mais zero e pode ser bastante ecaz, desde que a
escolha de seja criteriosa.
Obviamente, poderamos calcular explicitamente a matriz A I e utilizar o algoritmo 6.5.1;
no entanto, pequenas modicacoes naquele algoritmo nos permitem utilizar o processo de translacao da origem de forma mais eciente. Novamente, z0 e considerado um vetor unitario, de onde
podemos obter a seguinte estimativa para 0 :
(A I)z0
z0T Az0 z0T z0
0

= 0 z0 ;

pre-multiplicando por z0T ,

= 0 (z0T z0 ) ... || z0 || = 1 ...


= z0T Az0

e, por analogia, escrevemos


k = zkT Azk
Alem disso, ao inves de calcularmos q = Azk , devemos calcular q = Azk zk . Ao nal do
processo, devemos corrigir k , adicionando a ele . Essas ideias s
ao apresentadas no algoritmo
6.5.2.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

123

Introduca
o ao C
alculo Numerico

Autovalores e Autovetores

Algoritmo 6.5.2 Metodo da potencia (com translac


ao)
ao(input: A, z0 , , &, kmax ; output: k , zk )
proc potencia translac
z0 z0 /|| z0 ||
0 z0T Az0
for k = 1, 2, . . . , kmax do
q Azk1 zk1
zk q/|| q ||
k zkT Azk
if | k k1 | < & then
break
endif
endfor
k k +
endproc
O exemplo a seguir ilustra o uso do metodo da potencia com translacao de origem.
Exemplo 6.9 Seja a matriz

2 1
2
A = 1
0 1

0
1 ,
2

a qual tem como autovalores e respectivos autovetores,


1 = 3, 4142, 2 = 2, 3 = 0, 5858

0, 5000
0, 7071
0, 5000
x1 = 0, 7071 , x2 = 0, 0000 , x3 = 0, 7071 .
0, 5000
0, 7071
0, 5000

ancia de 105 e
Note que | 2 /1 | = 0, 5858. Se utilizarmos o metodo da potencia, a uma toler
T
vetor inicial z0 = (1, 0, 0) , necessitaremos de 13 iterac
oes para obter a aproximac
ao 3, 4142 para
o autovalor 1 .
No entanto, se usarmos o translac
ao da origem, com = 1, necessitamos apenas de 9 iterac
oes
para obter a mesma aproximac
ao; veja que

2 1

= 0, 4142 < 0, 5858 =


2

1 1

2, 4142

o que sugere o menor n


umero de iterac
oes.

6.5.3

M
etodo da itera
c
ao inversa

Como vimos, o metodo da potencia nos permite aproximar o autovalor dominante de A; suponha,
agora, que desejamos aproximar o menor autovalor (e seu correspondente autovetor) de A. Relembrando que os autovalores de A1 sao o inverso dos autovalores de A (equacao (6.3)), ent
ao,
se utilizarmos o metodo da potencia sobre a matriz A1 , aproximaremos o menor autovalor de
A pois ele e o maior autovalor de A1 . A essa modicacao do metodo da potencia chamamos de
metodo da iteraca
o inversa.
O metodo da iteracao inversa procede, basicamente, com o c
alculo sucessivo de vetores zk
dados por
zk = A1 zk1 , k = 1, 2, . . .
mas ja vimos (captulo 4) que, computacionalmente, devemos evitar, se possvel, calcular a inversa
de uma matriz. Nesse caso, e aconselhado que se resolva o sistema
Azk = zk1 ,

k = 1, 2, . . .

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

124

Introduca
o ao C
alculo Numerico

Autovalores e Autovetores

atraves da fatoracao LU de A (secao 4.3.2), uma vez que v


arias iteracoes serao necess
arias para
se aproximar o menor autovalor e respectivo autovetor.
Alem disso, o metodo da iteracao inversa e, normalmente, combinado com a translacao de
origem, o que resulta na fatoracao LU da matriz A I. O algoritmo 6.5.3 apresenta o metodo
da iteracao inversa, incorporando translacao de origem.
Algoritmo 6.5.3 Metodo da iterac
ao inversa (com translac
ao)
ao inversa translac
ao(input: A, z0 , , &, kmax ;
proc iterac
output: k , zk )
Fatore A I no produto LU
z0 z0 /|| z0 ||
0 z0T Az0
for k = 0, 1, . . . , kmax do
Resolva o sistema Ly = zk
Resolva o sistema U q = y
zk q/|| q ||
k zkT Azk
if | k k1 | < & then
break
endif
endfor
k k +
endproc
Exemplo 6.10 Seja a matriz do exemplo 6.9,

2 1
2
A = 1
0 1

0
1 ,
2

cujo menor autovalor e 3 = 0, 5858 e o seu correspondente autvetor e x3 = (0, 5000, 0, 7071, 0, 5000)T .
Se utilizarmos o algoritmo 6.5.3 com = 0, i.e. sem translac
ao da origem, a uma toler
ancia
oes para obter a aproximac
ao
de 105 e vetor inicial z0 = (1, 0, 0)T , necessitaremos de 7 iterac
0, 5858 para o autovalor 3 e (0, 5002, 0, 7071, 0, 4998)T para o correspondente autovetor.
No entanto, se usarmos o translac
ao da origem, com = 0, 5, necessitamos apenas de 4
iterac
oes para obter a mesma aproximac
ao; veja que

2 0, 5

= 0 < 0, 2929 =
2

1 0, 5

0, 0858

3
3
o que sugere o menor n
umero de iterac
oes; na verdade, = 0, 5 e a melhor escolha possvel, nesse
caso.
Outro exemplo mostra como usar o metodo da iteracao inversa em conjunto com o teorema de
Gerschgorin, a m de se determinar um autovalor especco.
Exemplo 6.11 Seja a matriz

5 2
A= 2 3
1 1

1
1
1

Os discos de Gerschgorin s
ao:
d1

: c1 = 5,

r1 = 3

d2
d3

: c2 = 3,
: c3 = 1,

r2 = 3
r3 = 2

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

125

Introduca
o ao C
alculo Numerico

Autovalores e Autovetores

Suponha que desejamos aproximar o menor autovalor; como o disco d3 e aquele que se encontra
mais a
` esquerda em comparac
ao aos demais, podemos utilizar o seu centro como fator de transla 1
ca
o. Ent
ao, utilizamos o metodo da iterac
ao inversa com = 1, vetor inicial z0 = 3 (1, 1, 1)T
e toler
ancia 105 e obtemos = 0, 5764 e z = (0, 0597, 0, 3380, 0, 9393)T ap
os 10 iterac
oes.
Por outro lado, se tivessemos utilizado = c3 + r3 , a convergencia para o mesmo autovalor seria
obtida em apenas 4 iteraco
es.

6.5.4

O m
etodo da itera
c
ao inversa e o quociente de Rayleigh

Como visto no teorema 6.2.2, o valor do autovalor dominante 1 de uma matriz real simetrica
e o maximo do quociente de Rayleigh, dentre todos os vetores x = 0. Isso nos permite utilizar
a expressao (6.12) juntamente com o metodo da iteracao inversa, conforme mostra o algoritmo
6.5.4.
Algoritmo 6.5.4 Metodo da iterac
ao inversa com translac
ao via
quociente de Rayleigh)
ao inversa translac
ao(input: A, z0 , &, kmax ;
proc iterac
output: k , zk )
z0 z0 /|| z0 ||
for k = 0, 1, . . . , kmax do
k =

T
zk
Azk
Tz
zk
k

Resolva o sistema (A k I)q = zk


zk q/|| q ||
if || zk zk1 || < & then
break
endif
endfor
endproc
Note que, no algoritmo 6.5.4, um sistema de equacoes diferente e resolvido a cada iteracao, j
a
possvel, no entanto, que o sistema
que uma nova estimativa k e utilizada a cada iteracao. E
A k I seja singular e, nesse caso, o processo deve ser terminado.

6.6

Exerccios

Exerccio 6.1 Determine os autovalores e autovetores correspondentes da matriz

1 1 1
0
2
5 .
0
0 1
Exerccio 6.2 Calcule o autovalor dominante de

10 9
8
3 5
6 .
7 2 1
Exerccio 6.3 Calcule o autovalor dominante

6
2
1

e o autovetor correspondente da matriz

2 1
3 1 ,
1 1

ancia 105 .
usando o metodo da potencia, com z0 = (1, 1, 1)T e toler
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

126

Introduca
o ao C
alculo Numerico

Autovalores e Autovetores

Exerccio 6.4 Calcule o autovalor dominante e o autovetor correspondente da matriz

0
1 1
1
0 1 ,
1 1 0
usando o metodo da potencia, com z0 = (1, 1, 1)T e toler
ancia 105 .
Exerccio 6.5 Explique o que acontece com o metodo da potencia para a matriz

2
1 1
1
2 1 ,
1 1
2
ancia 105 , sabendo que os seus autovalores s
ao 1, 2 e 3. Repita para
com z0 = (1, 1, 1)T e toler
6 T
z0 = (1, 0, 10 ) .
Exerccio 6.6 Utilize o metodo da iterac
ao inversa para calcular o menor autovalor da matriz

2
1 1
1
2 1 ,
1 1
2
ancia 105 .
com z0 = (1, 1, 1)T e toler
Exerccio 6.7 Seja a matriz

5 2
A= 2 3
1 1

1
1
1

Explique o que ocorre com o metodo da iterac


ao inversa utilizado com = 3, z0 = (1, 0, 0)T e
5
toler
ancia 10 . Generalize a sua resposta.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

127

Captulo 7

Interpola
c
ao
7.1

Introdu
c
ao

Freq
uentemente, deparamo-nos com um conjunto discreto de valores de uma funcao que podem ser
dados na forma de tabela ou de um conjunto de medidas. Estes valores, na verdade, representam
um conjunto de pontos pertencentes a uma funcao contnua.
Exemplo 7.1 A seguinte tabela relaciona o calor especco (c) da
agua e a temperatura (T ) em
C:

T
c

20
0,99907

25
0,99852

30
0,99826

35
0,99818

40
0,99828

45
0,99849

50
0,99878

Suponha que se queira calcular o calor especco da


agua a 320 C ou a temperatura para a
qual o calor especco e 0, 99837. A interpolac
ao ajuda a resolver este tipo de problema, j
a que a
informaca
o desejada n
ao se encontra disponvel na tabela.
Seja, entao, uma tabela da forma correspondente aos valores de uma funcao f em n + 1 pontos
x
f (x)

x0
f (x0 )

x1
f (x1 )

x2
f (x2 )

...
...

xn
f (xn )

Tabela 7.1: Valores de f em pontos distintos


reais distintos x0 , x1 , . . . , xn . Seja x um ponto distinto dos pontos xi da tabela, pertencente ao
intervalo que contem os pontos xi , isto e, x = xi , para i = 0, 1, . . . , n; considera ainda que existem
k e j, 0 k = j n tais que xk < x < xj . Ent
ao, podemos dizer que interpolar o ponto x `a

tabela 7.1 signica calcular o valor de f (x ), ou seja, incluir o ponto (x , f (x )) a` tabela 7.1.
A necessidade de se efetuar esta substituicao surge em varias situacoes, como por exemplo:
quando s
ao conhecidos os valores numericos da funcao para um conjunto de pontos e e
necessario calcular o valor da funcao em um ponto n
ao tabelado (como no exemplo 7.1);
quando a funcao em estudo tem uma expressao tal que operacoes como diferenciacao e
integracao sao difceis de serem realizadas.
Exemplo 7.2 Considere o problema de determinar o seno de 6, 5 graus. Assuma a disponibilidade
de uma tabela de senos na qual os valores s
ao dados em intervalos de 1 grau. Para determinar o
valor desejado, tem-se tres escolhas:

128

Introduca
o ao C
alculo Numerico

Interpolac
ao

1. Usar serie de Taylor para calcular o seno com uma certa exatid
ao pre-denida;
2. Tentar encontrar uma tabela que liste o valor do seno em intervalos menores e procurar o
valor exato;
3. Usar os senos de 6 e 7 dados na tabela disponvel para tentar determinar o seno de 6, 5, ou
seja, realizar uma interpolac
ao.
A funcao interpoladora pode ser de diversos tipos: polinomial, exponencial, entre outras.
Veremos, a seguir, como estabelecer o polin
omio interpolador de um conjunto de pontos.

7.2

Interpola
c
ao polinomial

Dados os pontos (x0 , f (x0 )), (x1 , f (x1 )), . . ., (xn , f (xn )), portanto n+1 pontos, deseja-se interpolar
f (x) por um polin
omio pn (x), de grau menor ou igual a n, tal que
f (xk ) = pn (xk )

para k = 0, 1, . . . , n

Representa-se pn (x) por pn (x) = a0 + a1 x + . . . + an xn . Portanto, obter pn (x) signica obter os


coecientes a0 , a1 , . . . , an . Da condicao f (xk ) = pn (xk ) para k = 0, 1, . . . , n, monta-se o seguinte
sistema linear:

a0 + a1 x0 + a2 x20 + . . . + an xn0 = f (x0 )

a0 + a1 x1 + a2 x21 + . . . + an xn1 = f (x1 )


(7.1)
..

a0 + a1 xn + a2 x2n + . . . + an xnn = f (xn )


com n + 1 equacoes e n + 1 vari
aveis: a0 , a1 , . . . , an .
A matriz dos coecientes e uma matriz de Vandermonde,

1 x0 x20 . . . xn0
1 x1 x21 . . . xn1

..
..
..
..
..
.
.
.
.
.
2
1 xn xn . . . xnn

(7.2)

a qual admite inversa desde que os pontos x0 , x1 , . . . , xn sejam distintos.


Exemplo 7.3 Encontre o polin
omio de grau menor ou igual a 2 que interpola os pontos da tabela:
x
f (x)

1
4

0
1

2
1

Solucao: Tem-se que p2 (x) = a0 + a1 x + a2 x2 e portanto,


a0 a1 + a2 = 4
p2 (x0 ) = f (x0 )
a0 = 1
p2 (x1 ) = f (x1 )
p2 (x2 ) = f (x2 ) a0 + 2 a1 + 4 a2 = 1
Resolvendo o sistema linear, obtem-se a0 = 1, a1 = 37 , a2 = 23 . Assim,
p2 (x) = 1

2
7
x + x2
3
3

e o polin
omio que interpola f (x) em x0 = 1, x1 = 0 e x2 = 2.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

129

Introduca
o ao C
alculo Numerico

Interpolac
ao

Uma caracterstica importante da interpolacao polinomial e que o polin


omio interpolador e
u
nico:
Teorema 7.2.1 Unicidade do polin
omio interpolador: Se x0 , x1 , . . . , xn s
ao n
umeros reais,
distintos, ent
ao para n
umeros arbitr
arios y0 , y1 , . . . , yn , existe um polin
omio u
nico pn , de grau
m
aximo n, tal que pn (xi ) = yi , 0 i n.
Prova:
Unicidade: suponha dois polin
omios pn e qn ; ent
ao o polin
omio pn qn tem a propriedade
aximo n, esse polin
omio
(pn qn )(xi ) = 0 para 0 i n. Como o grau de pn qn e no m
pode ter no m
aximo n razes se ele n
ao e o polin
omio nulo. Como, por hip
otese, os xi s
ao
distintos, pn qn tem n + 1 zeros logo ele deve ser nulo, de onde pn qn .
Exist
encia: (por induc
ao) Para n = 0, obviamente existe uma func
ao constante p0 (de grau 0)
que pode ser escolhida tal que p0 (x0 ) = y0 .
Suponha, agora, que tenhamos obtido um polin
omio pk1 de grau menor ou igual a k 1,
tal que pk1 (xi ) = yi , 0 i k 1. A partir desse, queremos construir um pk na forma
pk (x) = pk1 (x) + c(x x0 )(x x1 ) . . . (x xk1 )
o qual e um polin
omio de grau k. Alem disso, pk interpola os pontos que pk1 interpola,
pois pk (xi ) = pk1 (xi ) = yi , para 0 i k 1.
Para determinarmos o coeciente c, fazemos pk (xk ) = yk , de onde
yk = pk1 (x) + c(x x0 )(x x1 ) . . . (x xk1 )
a qual apresenta soluca
o u
nica pois os termos multiplicadores de c n
ao s
ao nulos.
Cabe salientar que, por quest
oes de estabilidade numerica, n
ao e adequado resolver-se o sistema
(7.1), uma vez que a inversa da matriz de Vandermonde podera ser altamente mal-condicionada,
dependendo dos valores de xi e f (xi ). O exemplo a seguir mostra alguns dos problemas envolvidos
na determinacao do polin
omio interpolador utilizando o sistema (7.1).
Exemplo 7.4 Obtenha p3 (x) que interpola f (x) nos pontos x0 , x1 , x2 e x3 de acordo com a tabela
abaixo:
x
f (x)

0, 1
5

0, 2
13

0, 3
4

0, 4
8

O sistema linear resultante para esta tabela e


a0 + 0, 1 a1 + 0, 01 a2 + 0, 001 a3
a0 + 0, 2 a1 + 0, 04 a2 + 0, 008 a3

= 5
= 13

a0 + 0, 3 a1 + 0, 09 a2 + 0, 027 a3
a0 + 0, 4 a1 + 0, 16 a2 + 0, 064 a3

= 4
= 8

Usando aritmetica de ponto utuante com tres dgitos e o metodo de eliminac


ao de Gauss, o
resultado e
p3 (x) = 0, 66 102 + (0, 115 104 ) x (0, 505 104 ) x2 + (0, 633 104 ) x3
e, para x = 0, 4, obtem-se
p3 (x) = 9 = 8 = f (0, 4)
o que obviamente est
a errado.
Esse exemplo mostra que nem sempre se pode utilizar o sistema (7.1) para determinar o polin
omio interpolador e, usualmente, utilizam-se outras tecnicas, como as formas de Newton e de
Lagrange, dentre outras.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

130

Introduca
o ao C
alculo Numerico

7.3

Interpolac
ao

Forma de Newton

Note que o processo de determinacao de pk , na prova do teorema 7.2.1, e recursivo. Alem disso,
pk e obtido a partir de pk1 pela adicao de um u
nico termo; logo, ao m do processo, pk ser
a uma
a identic
avel em pk .
soma de termos, de tal forma que cada p0 , p1 , . . . , pk1 ser
O polin
omio pk tem a forma
pk (x)

=
=

c0 + c1 (x x0 ) + c2 (x x0 )(x x1 ) + . . . + ck (x x0 ) . . . (x xk1 ) =
k

ci

i=0

i1

(x xj )

(7.3)

j=0



m
onde
j=0 (x xj ) = 1 quando m < 0.
Procedendo ao uso da f
ormula (7.3), os primeiros polin
omios interpoladores na forma de Newton
sao os seguintes:
p0 (x)
p1 (x)

=
=

c0
c0 + c1 (x x0 )

p2 (x)

c0 + c1 (x x0 ) + c2 (x x0 )(x x1 )

Por quest
oes de eciencia e de estabilidade numerica, os polin
omios acima sao avaliados
utilizando multiplicaca
o aninhada, tambem conhecida como f
ormula de Horner. Suponha o polin
omio interpolador na forma de Newton escrito como
u=

k

i=0

ci

i1

dj = c0 + c1 d0 + c2 d0 d1 + . . . + ck d0 d1 . . . dk1 ;

j=0

podemos, entao, reescreve-lo na forma aninhada


u = (. . . (((ck )dk1 + ck1 ) dk2 + ck2 ) dk3 + . . . + c1 ) d0 + c0
a qual pode ser calculada partindo do parenteses mais interno:
uk

ck

uk1
uk2

..
.

uk dk1 + ck1
uk1 dk2 + ck2

u0

u1 d0 + c0

e, como u0 contem o valor de u, basta usar o seguinte algoritmo, j


a substituindo dk por (x xk ),
conforme aparece na Equacao (7.3):
u ck
for i = k 1, k 2, . . . , 0 do
u (x xi )u + ci
endfor
de forma a se calcular u pk (x).
Resta-nos, agora, calcular os coecientes ck do polin
omio pn ; ck e dado por
ck =

yk pk1 (xk )
(xk x0 )(xk x1 ) . . . (xk xk1 )

(7.4)

com a qual podemos escrever o algoritmo 7.3.1:


A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

131

Introduca
o ao C
alculo Numerico

Interpolac
ao

Algoritmo 7.3.1 Polin


omio interpolador de Newton
omio interpolador de Newton(input: n, [x0 , x1 , . . . , xn1 ], [y0 , y1 , . . . , yn1 ];
proc polin
output: [c0 , c1 , . . . , cn ])
c0 y 0
for k = 1, 2, . . . , n do
d xk xk1
u ck1
for i = k 2, k 3, . . . , 0 do
u (xk xi )u + ci
d d(xk xi )
endfor
ck ykdu
endfor
endproc
Vejamos como utilizar as equacoes e algoritmos visto nessa secao:
Exemplo 7.5 Dados os pontos tabulados abaixo, obtenha o polin
omio interpolador na forma de
Newton:
i
x
y

0
5
1

1
7
23

2
6
54

3
0
954

Solucao:
c0
c1
c2
c3

y0 = 1
23 1
y1 u
=
=2

d
12
54 + 21
y2 u
=
=3

d
11
954 + 114
y3 u
=
=4

d
210

de onde o polin
omio interpolador pode ser escrito como
p3 (x) = 1 + 2(x 5) + 3(x 5)(x + 7) + 4(x 5)(x + 7)(x + 6).
f
E
acil vericar, por inspec
ao, que o polin
omio p3 (x) satisfaz p3 (5) = 1; para os demais pontos
tabulados, basta avaliar p3 (x) em cada um deles.
O polin
omio interpolador, bem como os pontos interpolados, e mostrado na gura 7.1.

7.4

Forma de Lagrange

Podemos obter o polin


omio u
nico que interpola um dado conjunto de pontos utilizando a forma
de Lagrange, a qual expressa p(x) como
p(x) = y0 l0 (x) + y1 l1 (x) + . . . + yn ln (x) =

yk lk (x)

(7.5)

k=0

onde li (x) sao polin


omios dependentes apenas de x0 , x1 , . . . , xn (e n
ao de yi ).
O polin
omio l0 e da forma
l0 (x) = c(x x1 )(x x2 ) . . . (x xn ) = c

(x xj )

j=1

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

132

Introduca
o ao C
alculo Numerico

Interpolac
ao

Figura 7.1: A curva do polin


omio interpolador de Newton, p3 (x) = 1 + 2(x 5) + 3(x 5)(x +
7) + 4(x 5)(x + 7)(x + 6), e os pontos interpolados.
onde o coeciente c e obtido substituindo x por x0 na equacao acima, de onde, assumindo que
y0 = 1,
n
n


(x0 xj ) c =
(x0 xj )1
1=c
j=1

logo,

j=1


n 

(x xj )
l0 (x) =
;
(x0 xj )
j=1

os demais li (x) sao obtidos de forma similar, podendo ser expressos por

n 

(x xj )
li (x) =
.
(xi xj )
j=1

(7.6)

oes cardinais. O exemplo que segue mostra


Os polin
omios li (x) sao tambem conhecidos como func
como obter o polin
omio interpolador na forma de Lagrange.
Exemplo 7.6 A f
ormula de Lagrange para a interpolac
ao de dois pontos distintos (x0 , f (x0 )) e
(x1 , f (x1 )) e:
p1 (x) = y0 l0 (x) + y1 l1 (x)
onde
l0 (x) =

(x x1 )
,
(x0 x1 )

l1 (x) =

(x x0 )
(x1 x0 )

Assim,
p1 (x) = y0

(x x1 )
(x x0 )
+ y1
(x0 x1 )
(x1 x0 )

ou seja,
p1 (x) =

(x1 x)y0 + (x x0 )y1


x1 x0

que e exatamente a equac


ao da reta que passa por (x0 , f (x0 )) e (x1 , f (x1 )).
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

133

Introduca
o ao C
alculo Numerico

Interpolac
ao

Exemplo 7.7 Dados os pontos tabulados, obtenha o polin


omio interpolador na forma de Lagrange:
i
x
y

0
5
1

l0 (x)

l1 (x)

l2 (x)

l3 (x)

1
7
23

2
6
54

3
0
954

Solucao:
(x + 7)(x + 6)(x)
(5 + 7)(5 + 6)(5)
(x 5)(x + 6)(x)
(7 5)(7 + 6)(7)
(x 5)(x + 7)(x)
(6 5)(6 + 7)(6)
(x 5)(x + 7)(x + 6)
(0 5)(0 + 7)(0 + 6)

de onde o polin
omio interpolador pode ser escrito como




(x5)(x+6)(x)
p3 (x) = 1 (x+7)(x+6)(x)

23

84

660
(x5)(x+7)(x+6)

954
54 (x5)(x+7)(x)
66
210
Note como esse polin
omio tem uma forma bastante diferente da do polin
omio interpolador de
Newton; no entanto, ele igualmente satisfaz `
a condic
ao de interpolac
ao, o que pode ser vericado
avaliando-se p3 (x) em cada ponto. Particularmente, p3 (5) = 1 12115
660 = 1.

7.5

Forma de Newton com diferen


cas divididas

Seja f uma funcao calcul


avel em pontos (ou n
os) x0 , x1 , . . . , xn , distintos mas n
ao necessariamente
ordenados. Como sabemos, existe um u
nico polin
omio p, de grau n no maximo, que interpola f
nos n + 1 n
os:
p(xi ) = f (xi ), 0 i n
Evidentemente, p pode ser construdo a partir das bases 1, x, x2 , . . ., xn , mas isso nao e
recomendado devido a problemas de instabilidade numerica. Portanto, utilizam-se bases mais
amenas, como aquelas do polinomio interpolador na forma de Newton:
q0 (x)

q1 (x)

(x x0 )

q2 (x)

=
..
.

(x x0 )(x x1 )

qn (x)

(x x0 )(x x1 ) . . . (x xn1 )

o que leva a` j
a conhecida forma de Newton,
p(x) =

cj qj (x).

j=0

Utilizando a condicao de interpolacao (p(xi ) = f (xi )), obtemos um sistema de equacoes para
a determinacao dos coecientes cj :
n

cj qj (xi ) = f (xi ),

0in

j=0

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

134

Introduca
o ao C
alculo Numerico

Interpolac
ao

Note que, se escrevermos o sistema acima na forma Ax = b, a matriz A, de ordem n + 1, tem como
elementos aij = qj (xi ), 0 i n, 0 j n. No entanto, como
qj (xi ) =

j1

(xi xk ) = 0,

se i j 1

k=0

ent
ao A e uma matriz triangular inferior. Por exemplo, com tres nos x0 , x1 , x2 , temos
p2 (x)

c0 q0 + c1 q1 + c2 q2

c0 + c1 (x x0 ) + c2 (x x0 )(x x1 )

e, para determinarmos os ci , fazemos p2 (x0 ) = f (x0 ), p2 (x1 ) = f (x1 ) e p2 (x2 ) = f (x2 ), de onde
obtemos o sistema


c0
1
0
0
f (x0 )
c1 = f (x1 )
1 (x1 x0 )
0
(7.7)
1 (x2 x0 ) (x2 x0 )(x2 x1 )
f (x2 )
c2
Analisando a estrutura do sistema (7.7), vemos que e possvel obter os coecientes ci em ordem
crescente, i.e. c0 , c1 , . . .; alem disso, o coeciente ci depende apenas dos valores de f (x0 ), f (xi ),
. . ., f (xi ), e essa dependencia e denotada por
cn = f [x0 , x1 , . . . , xn ].
n
onde cn e o coeciente de qn quando k=0 ck qk interpola f em x0 , x1 , . . . , xn . Como

(7.8)

qn = (x x0 )(x x1 ) . . . (x xn1 ) = xn + O(n 1)


` expressao f [x0 , x1 , . . . , xn ]
podemos igualmente dizer que f [x0 , x1 , . . . , xn ] e o coeciente de xn . A
chamamos de diferencas divididas, pois ela tem a forma de uma divis
ao de duas subtracoes,
conforme veremos a seguir.
Algumas das f
ormulas de diferencas divididas s
ao as seguintes:
omio de grau 0 que interpola f em x0 ; logo, f [x0 ] = f (x0 ).
1. f [x0 ] e o coeciente de x0 no polin
omio de grau 1, no m
aximo, interpolando f em x0 e
2. f [x0 , x1 ] e o coeciente de x1 no polin
omio e
x1 . Como esse polin
px = f (x0 ) +

f (x1 ) f (x0 )
(x x0 )
x1 x0

vemos que
f [x0 , x1 ] =

f (x1 ) f (x0 )
.
x1 x0

3. Para diferencas divididas de maior ordem, podemos nos valer de um teorema que nos diz
que elas satisfazem a relacao
f [x0 , x1 , . . . , xn ] =

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


xn x0

(7.9)

de onde podemos obter, por exemplo:


f [x0 , x1 ] =
f [x0 , x1 , x2 ] =
f [x0 , x1 , x2 , x3 ] =

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

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

135

Introduca
o ao C
alculo Numerico

Interpolac
ao

O polin
omio interpolador na forma de Newton pode, agora, ser escrito como
p(x) =

ck qk (x) =

k=0

f [x0 , x1 , . . . , xk ]

k1

(x xj )

(7.10)

j=0

k=0

o qual e equivalente a` Equacao (7.3), mas os coecientes ck sao mais facilmente obtidos em termos
de diferencas divididas, usando o esquema mostrado na Tabela 7.2. Note que os coecientes do
polin
omio, conforme a Equacao (7.10), aparecem na primeira linha da tabela.
x
x0
x1
x2
x3

y
f [x0 ]
f [x1 ]
f [x2 ]
f [x3 ]

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

Coecientes
f [x0 , x1 , x2 ]
f [x1 , x2 , x3 ]

f [x0 , x1 , x2 , x3 ]

Tabela 7.2: Esquema de construcao dos coecientes do polinomio interpolador por diferencas
divididas: as echas indicam as dependencias.
O exemplo que segue ilustra a construcao do polin
omio interpolador usando diferencas divididas.
Exemplo 7.8 Dados os pontos tabulados abaixo, obtenha o polin
omio interpolador na forma de
Newton:
i
x
y

0
5
1

1
7
23

2
6
54

3
0
954

Solucao:
x
5
7
6
0

y
1
23
54
954

f [x0 , x1 ] = 2
f [x1 , x2 ] = 31
f [x2 , x3 ] = 150

Coecientes
f [x0 , x1 , x2 ] = 3
f [x1 , x2 , x3 ] = 17

f [x0 , x1 , x2 , x3 ] = 4

onde os coecientes foram obtidos como segue:


f [x0 , x1 ] =
f [x1 , x2 ] =
f [x2 , x3 ] =
f [x0 , x1 , x2 ] =
f [x1 , x2 , x3 ] =
f [x0 , x1 , x2 , x3 ] =

f [x1 ] f [x0 ]
23 1
=2
=
x1 x0
7 5
f [x2 ] f [x1 ]
54 (23)
= 31
=
x2 x1
6 (7)
f [x3 ] f [x2 ]
954 (54)
= 150
=
x3 x2
0 (6)
f [x1 , x2 ] f [x0 , x1 ]
31 2
=3
=
x2 x0
6 5
f [x2 , x3 ] f [x1 , x2 ]
150 (31)
= 17
=
x3 x1
0 (7)
f [x1 , x2 , x3 ] f [x0 , x1 , x2 ]
17 3
=4
=
x3 x0
05

O polin
omio interpolador pode ser escrito, ent
ao, como
p3 (x)

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


f [x0 , x1 , x2 ](x x0 )(x x1 ) +
f [x0 , x1 , x2 , x3 ](x x0 )(x x1 )(x x2 ) =
1 + 2(x 5) + 3(x 5)(x + 7) + 4(x 5)(x + 7)(x + 6)

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

136

Introduca
o ao C
alculo Numerico

Interpolac
ao

o qual e identico ao polin


omio interpolador de Newton mostrado no exemplo na sec
ao 7.3; porem,
com o esquema de diferencas divididas, ele e facilmente obtido.
Os coecientes do polin
omio interpolador, calculados por diferencas divididas, podem ser
obtidos, tambem, atraves do seguinte algoritmo:
Algoritmo 7.5.1 Diferencas-divididas
proc diferencas divididas(input: n, [x0 , x1 , . . . , xn1 ], [y0 , y1 , . . . , yn1 ];
output: [c0 , c1 , . . . , cn ])
for j = 0, 1, . . . , n do
cj,0 = yj
endfor
for j = 1, 2, . . . , n do
for i = 0, 1, . . . , j 1 do
c
ci,j1
ci,j i+1,j1
xi+j xi
endfor
endfor
endproc
onde os ci,j sao os coecientes desejados; particularmente, c0,0 = f [x0 ], c0,1 = f [x0 , x1 ], c1,1 =
f [x1 , x2 ], e assim por diante.

7.6

Forma de Newton com diferen


cas simples

Sejam os valores y = f (x) dados atraves da tabela (xi , yi ), para i = 0, 1, . . . , n, onde os valores de
x sao eq
uidistantes, isto e, xi+1 xi = h. Assim dene-se o polinomio
pn (x)

x x0
(x x0 )(x x1 ) 2
y0 +
y0 + . . .
h
2! h2
(x x0 )(x x1 ) . . . (x xn1 ) n
+
y0
n! hn

= y0 +

(7.11)

onde k yi e uma diferenca simples de ordem k, calculada conforme


yi = yi+1 yi

Ordem 1

2 yi = yi+1 yi = yi+2 2 yi+1 + yi

Ordem 2

..
.

..
.

..
.

k yi = k1 yi+1 k1 yi

Ordem k

e, a m de facilitar a determinacao dos valores k yi , pode-se construir uma tabela como a que
segue:
i
0
1
2
3
4

xi
x0
x1
x2
x3
x4

yi
y0
y1
y2
y3
y4

yi
y0
y1
y2
y3

2 yi
2 y0
2 y1
2 y2

3 yi
3 y0
3 y1

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

4 yi
4 y0

137

Introduca
o ao C
alculo Numerico

Interpolac
ao

a qual e bastante similar `aquela utilizada para a determinacao do polin


omio interpolador de
possvel estabelecer-se a seguinte relacao entre diferencas
Newton atraves de diferenca-divididas. E
divididas e simples:
k yi
f [xi+k , . . . , xi ] =
(7.12)
k! hk
para h constante.
Efetuando-se a mudanca de variavel
z=

x x0
,
h

(7.13)

o polin
omio interpolador de Newton com diferencas simples (7.11) pode ser escrito como
pn (z) =

z (z 1) 2
y0 + . . .
2! h2
z (z 1) . . . (z n + 1) n
+
y0
n! hn

y0 + z y0 +

(7.14)

Exemplo 7.9 Dada a tabela


1
1

xi
yi

2
9

3
25

4
55

correspondente aos valores de uma func


ao f , interpole o ponto x = 2, 5.
Solucao: Como os pontos s
ao eq
uidistantes, pode-se construir a tabela
i
0
1
2
3

xi
1
2
3
4

yi
1
9
25
55

yi
8
16
30

2 yi
8
14

3 yi
6

Com isto, a f
ormula para o polin
omio interpolador de Newton com diferencas simples (7.11) e
p3 (x)

x x0
(x x0 )(x x1 ) 2
y0 +
y0
h
2! h2
(x x0 )(x x1 )(x x2 ) 3
+
y0
3! h3

= y0 +

ou,
p3 (x)

1+

(x 1)(x 2)
(x 1)(x 2)(x 3)
x1
8+
8+
6
1
2! 1
3! 1

de onde p3 (2, 5) = 15, 625.

7.7

Interpola
c
ao inversa

O problema da interpolacao inversa consiste em, dado y (f (x0 ), f (xn )), obter x
tal que f (
x) = y.
Este problema pode ser resolvido de duas formas:
1. Obter pn (x) que interpola f (x) em x0 , x1 , . . . , xn e em seguida encontrar x
tal que pn (
x) = y;
2. Se f (x) for inversvel num intervalo contendo y, fazer a interpolacao de x = f 1 (
y ) = g(
y ).
Uma condicao para que uma funcao contnua num intervalo [a, b] seja inversvel e que ela seja
monotona crescente ou decrescente neste intervalo. Basta entao considerar x como funcao
de y e aplicar um metodo de interpolacao conhecido: x = f 1 (y) = g(y) pn (y).
Exemplo 7.10 Dada a tabela
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

138

Introduca
o ao C
alculo Numerico

Interpolac
ao
0, 2
1, 2214

x
y = ex

0, 3
1, 3499

0, 4
1, 4918

ao quadr
atica.
obter x tal que ex = 1, 3165 usando um processo de interpolac
Solucao:Pode-se usar a f
ormula de Newton para obter p2 (y) que interpola g(y) = f 1 (y). Para
isto, constr
oi-se a tabela de diferencas divididas:
i
0
1
2

yi
1, 2214
1, 3499
1, 4918

g[yi ]
0, 2
0, 3
0, 4

g[yi+1 , yi ]
0, 7782
0, 7047

g[yi+2 , yi+1 , yi ]
0, 2718

O polin
omio p2 (y) e determinado por
p2 (y) =
=

g[y0 ] + (y y0 ) g[y1 , y0 ] + (y y0 )(y y1 ) g[y2 , y1 , y0 ]


0, 2 + (y 1, 2214) 0, 7782 + (y 1, 2214)(y 1, 3499) (0, 2718)

de forma que p2 (1, 3165) = 0, 27487. Assim, e0,27487 = 1, 3165.

7.8

Interpola
c
ao por splines

Suponha que se deseja interpolar um conjunto de pontos por uma funcao polinomial; ent
ao, uma
funcao spline consiste de um conjunto de polin
omios de grau pequeno que atuam sobre
alguns dos pontos daquele conjunto.
os, tenham sido especicados,
Formalmente, suponha que n+1 pontos t0 , t1 , . . . , tn , chamados de n
satisfazendo t0 < t1 < . . . < tn , alem de um n
umero inteiro k 0. Uma func
ao spline de grau
k, com nos t0 , t1 , . . . , tn , e uma funcao S tal que
omio de grau menor ou igual a k;
1. Em cada subintervalo [ti1 , ti ), S e um polin
2. S tem as suas primeiras k 1 derivadas contnuas em [t0 , tn ].
Diz-se, portanto, que S e um polin
omio contnuo de grau k, por partes, apresentando derivadas
de ordem igual ou inferior a k 1 contnuas. Vejamos alguns exemplos:
Spline de grau 0: sao polin
omios constantes, os quais podem ser dados por

t0 x < t1

S0 (x) = c0

S1 (x) = c1
t1 x < t2
S(x) =
..
..

.
.

Sn1 (x) = cn1 tn1 x < tn


Spline de grau 1: sao retas que unem os nos, as quais podem ser dadas por

t0 x < t1
S0 (x) = a0 x + b0

S1 (x) = a1 x + b1
t1 x < t2
S(x) =
..
..

.
.

Sn1 (x) = an1 x + bn1 tn1 x < tn


As splines sao normalmente usadas na forma c
ubica. Assuma que uma tabela de dados seja
dada, i.e.,
x
y

t0
y0

t1
y1

...
...

tn1
yn1

tn
yn

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

139

Introduca
o ao C
alculo Numerico

Interpolac
ao

Em cada intervalo [ti , ti+1 ], S e dada por um polin


omio c
ubico diferente.
Seja Si o polin
omio c
ubico que representa S no intervalo [ti , ti+1 ]; ent
ao, como S = S0 (x)|t0
x t1 e S = S1 (x)|t1 x t2 , temos necessariamente, em x = t1 , que S0 (t1 ) = y1 = S1 (t1 ).
Generalizando, exigimos que Si1 (ti ) = yi = Si (ti ), 1 i n 1. Alem disso, exigimos que S  e
S  sejam contnuas, a m de podermos impor as condicoes necessarias para que S seja contnua
ao longo do intervalo [t0 , tn ].
Vejamos se a continuidade de S, S  e S  e suciente para se denir a spline c
ubica. Um
polin
omio c
ubico tem a forma
a0 + a1 x + a2 x2 + a3 x3
e, como desejamos obter um polinomio c
ubico em cada um dos n intervalos, vemos que sera
necessario determinar 4n coecientes. Em cada intervalo [ti , ti+1 ], temos duas condicoes de
interpolacao
S(ti ) =
S(ti+1 ) =

yi
yi+1

(7.15)
(7.16)

ou seja, poderemos determinar 2n coecientes. A continuidade de S apenas nos d


a a condicao
Si1 (ti ) = Si (ti ), equivalente `as duas condicoes de interpolacao em cada intervalo.
Impondo continuidade de S  e de S  , podemos escrever

(ti ) =
Si1

Si1
(ti )

Si (ti )

(7.17)

Si (ti )

(7.18)

obtendo 2(n 1) outras condicoes. Ao todo, temos, portanto, 4n 2 condicoes; as duas que faltam
podem ser obtidas de v
arias formas mas, usualmente, escreve-se
S0 (t0 ) = 0

(7.19)

= 0

(7.20)


Sn1
(tn )

e, com isso, temos todas as 4n condicoes necessarias para se determinar os coecientes da spline
c
ubica.
Vejamos como denir Si em [ti , ti+1 ]. Escrevendo zi = Si (ti ), temos que, por denicao, zi
existe para 0 i n 1 e satisfaz
lim Si (x) = zi = lim Si (x),

xt
i

xt+
i

1in1

o interno (diferentes de t0 e tn ). Como Si e um polin


omio c
ubico
pois S  e contnua em cada n
em [ti , ti+1 ], Si e uma funcao linear satisfazendo Si (ti ) = zi e Si (ti+1 ) = zi+1 e, portanto, e uma
reta que passa por zi e zi+1 :
Si (x) =

zi
zi+1
(ti+1 x) +
(x ti )
hi
hi

(7.21)

onde hi = ti+1 ti . Integrando a equacao acima duas vezes, obtemos


Si (x) =

zi
zi+1
(ti+1 x)3 +
(x ti )3 + C(x ti ) + D(ti+1 x)
6hi
6hi

(7.22)

onde C e D sao constantes de integracao. Agora, usando Si (ti ) = yi e Si (ti+1 ) = yi+1 , podemos
determinar C e D:
Si (ti )
zi
z
i+1
(ti+1 ti )3 +
(ti ti )3 + C(ti ti ) + D(ti+1 ti )
6hi
6hi
zi
(ti+1 ti )2 + Dhi
6
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

= yi ...
= yi
= yi
140

Introduca
o ao C
alculo Numerico

Interpolac
ao

com hi = ti+1 ti , de onde


D=

yi
z i hi

hi
6

(7.23)

Para determinar C, escrevemos


Si (ti+1 ) = yi+1 ...

zi
zi+1
(ti+1 ti+1 )3 +
(ti+1 ti )3 + C(ti+1 ti ) + D(ti+1 ti+1 ) = yi+1
6hi
6hi
zi+1 2
h + Chi = yi+1
6 i
de onde
C=

yi+1
zi+1 hi

hi
6

(7.24)

Logo, podemos escrever Si o polin


omio c
ubico em cada intervalo [ti , ti+1 ] como


yi+1
zi
zi+1
zi+1 hi
3
3
Si (x) =
(ti+1 x) +
(x ti ) +

(x ti ) +
6hi
6hi
hi
6


yi
z i hi

(ti+1 x)
hi
6
Agora, resta determinar os zi , 1 i n 1, usando a continuidade em S  . Para tanto, temos
= Si (ti ), nos n
os interiores. Diferenciando a expressao (7.25) e substituindo x = ti , temos


Si1
(ti )


Si1
(ti ) =

zi1 hi1
yi1
zi hi1
yi
+

+
3
6
hi1
hi

e
Si (ti ) =

zi+1 hi
yi
z i hi
yi+1

+
3
6
hi
hi

de onde, igualando ambas as expressoes acima, vem


hi1 zi1 + 2(hi + hi1 )zi + hi zi+1 =

6
6
(yi+1 yi )
(yi yi1 )
hi
hi1

a qual, com z0 = zn = 0, para 1 i n 1, nos leva a um sistema de equacoes de n 1 equacoes


a n 1 vari
aveis,

u 1 h1

h1 u 2
h2

.
.
.
..
..
..
(7.25)
z = v

hn3 un2 hn2


hn2 un1
onde:
hi
ui
bi
vi

= ti+1 ti
= 2(hi + hi1 )
6
=
(yi+1 yi )
hi
= bi bi1

O sistema (7.25) pode ser resolvido por eliminacao de Gauss, sem pivotamento, j
a que ele e
diagonal dominante. Um algoritmo para resolver o referido sistema pode ser escrito como

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

141

Introduca
o ao C
alculo Numerico

Interpolac
ao

Algoritmo 7.8.1 Coecientes da spline


proc coecientes spline(input: n, [t0 , t1 , . . . , tn ], [y0 , y1 , . . . , yn ];
output: [z0 , z1 , . . . , zn ])
for i = 0, 1, . . . , n 1 do
hi = ti+1 ti
bi = h6i (yi+1 yi )
endfor
u1 = 2(h0 + h1 )
v1 = b1 b0
for i = 2, 3, . . . , n 1 do
ui =

2(hi +hi1 )h2i1


ui1
bi bi1 hi1 vi1
ui1

vi =
endfor
zn = 0
for i = n 1, n 2, . . . , 1 do
zi = vi huiizi+1
endfor
z0 = 0
endproc
Uma vez obtidos os zi , pode-se avaliar Si (x) usando a express
ao abaixo, na forma aninhada:
Si (x) = yi + (x ti ) (Ci + (x ti ) (Bi (x ti )Ai ))

(7.26)

onde
Ai

Bi

Ci

1
(zi+1 zi )
6hi
zi
2
hi
hi
yi+1 yi
zi+1 zi +
6
3
hi

Cabe relembrar que, para cada intervalo [ti , ti+1 ], deve ser utilizada a Equacao (7.26) com os
valores adequados: zi e zi+1 ; yi e yi+1 ; e hi = ti+1 ti .

7.9

Estudo do erro na interpola


c
ao

Seja f uma funcao contnua com (n + 1) derivadas contnuas em um intervalo I, x0 < x1 < . . . <
xn , (n + 1) pontos distintos pertencentes ao intervalo I e pn (x) o polin
omio interpolador de f
relativamente aos pontos x0 , x1 , . . . , xn .
Ao se aproximar esta funcao f (x) por um polin
omio interpolador pn (x), de grau menor ou
igual a n, comete-se um erro de truncamento na interpolacao de x. Este e denido por
En (x) = f (x) pn (x) = (x x0 ) (x x1 ) (x x2 ) . . . (x xn )

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

(7.27)

para (x0 , xn ).
Para utilizar esta formula, e preciso conhecer f (n+1) e o ponto . Mas, em geral, a forma
analtica da funcao f n
ao e conhecida, nao sendo possvel portanto determinar nem f (n+1) e,
conseq
uentemente, nem En (x). Ainda assim, mesmo quando se conhece a forma analtica de f ,

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

142

Introduca
o ao C
alculo Numerico

Interpolac
ao

n
ao se sabe o valor de e, portanto, n
ao se pode calcular En (x) exatamente. Entretanto, pode-se
delimitar o erro pela desigualdade:
| En (x) | | (x x0 ) (x x1 ) (x x2 ) . . . (x xn ) | max
xI

| f (n+1) (x) |
.
(n + 1)!

(7.28)

Exemplo 7.11 Seja o problema de se obter ln(3, 7) por interpolac


ao linear, onde ln(x) est
a
tabelada abaixo:
x
ln(x)

1
0

2
0, 6931

3
1, 0986

4
1, 3863

omio
Solucao:Como x = 3, 7 (3; 4) escolhe-se x0 = 3 e x1 = 4. Pela forma de Newton, o polin
interpolador e
p1 (x)

y0 +

x x0
y0
h

(1, 3863 1, 0986)


43
1, 0986 + (x 3) (0, 2877).
1, 0986 + (x 3)

=
=

Conseq
uentemente, p1 (3, 7) = 1, 3000. Neste caso, dado que, com quatro casas decimais, f (3, 7) =
ln(3, 7) = 1, 3083, tem-se condic
oes de calcular o erro exato:
E1 (3, 7) = | f (3, 7) pn (3, 7) | = | 1, 3083 1, 3 | = 0, 0083
Por outro lado, tem-se tambem a seguinte majorac
ao para o erro:


| f (x) |
2!
x[3;4]
1
| (3, 7 3) (3, 7 4) |
2
0, 105

| E1 (3, 7) | | (3, 7 3) (3, 7 4) | max

7.9.1

Estimativa para o erro

Se a funcao f (x) e dada em forma de tabela, o valor absoluto do erro En (x) so pode ser estimado,
j
a que n
ao e possvel calcular f (n+1) . Entretanto, construindo a tabela de diferencas divididas ate
ordem (n + 1), tem-se que
| En (x) | | (x x0 ) (x x1 ) . . . (x xn ) | | f [xn+1 , xn , . . . , x0 ] |

(7.29)

ou, para pontos igualmente espacados,



 n+1 y0
| En (x) | | (x x0 ) (x x1 ) . . . (x xn ) | 
(n + 1)! hn+1



,


(7.30)

j
a que
f [xn+1 , xn , . . . , x0 ] =

n+1 y0
(n + 1)! hn+1

(7.31)

para h constante.
Exemplo 7.12 Seja f (x) dada na forma
x
f (x)

0, 4
0, 27

0, 52
0, 29

0, 6
0, 32

0, 72
0, 37

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

143

Introduca
o ao C
alculo Numerico

Interpolac
ao

obter f (0, 47) utilizando um polin


omio de grau 2 e dar uma estimativa para o erro.
Solucao: A tabela de diferencas e dada por
i
0
1
2
3

xi
0, 4
0, 52
0, 6
0, 72

f [xi ]
0, 27
0, 29
0, 32
0, 37

f [xi+1 , xi ]
0, 1667
0, 375
0,4167

f [xi+2 , xi+1 , xi ]
1, 0415
0,2085

f [xi+3 , xi+2 , xi+1 , xi ]


2, 6031

Assim, usando a f
ormula de Newton,
p2 (x)

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

0, 27 + (x 0, 4) 0, 1667 + (x 0, 4)(x 0, 52) 1, 0415

de onde f (0, 47) = p2 (0, 47) = 0, 2780.


A estimativa para o erro de truncamento e
| E2 (x) |

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

| (x 0, 4) (x 0, 52) (x 0, 6) | 2, 6031 |

ou seja,
| E2 (0, 47) | 1, 184 103 .

7.10

Exerccios

Exerccio 7.1 Determine f (1, 32) a partir da tabela


x
f (x)

1, 3
3, 669

1, 4
4, 055

1, 5
4, 482

Exerccio 7.2 Considere o exemplo 7.4. O que ocorreu naquela situac


ao? Explique por que o
valor calculado n
ao coincide com o valor tabelado.
Exerccio 7.3 A integral elptica completa e denida por
 2
dx
K(k) =
1 .
2
2
0 (1 k sen k) 2
Consultando uma tabela de valores destas integrais, tem-se que
K(1) =

1, 5708

K(3) =
K(5) =

1, 5719
1, 5738

Calcule K(3, 5) usando um polin


omio interpolador do segundo grau.
Exerccio 7.4 Interpole o ponto x = 0. 5 `
a tabela
x
f (x)

0
5

1
1

3
25

4
55

utilizando o polin
omio interpolador na forma de Newton.
Exerccio 7.5 Calcule uma aproximac
ao para f (2, 3) pela forma interpoladora de Lagrange.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

144

Introduca
o ao C
alculo Numerico

Interpolac
ao

2, 0
0, 31495

x
f (x)

2, 4
0, 020561

2, 6
0, 09682

2, 8
0, 18505

Exerccio 7.6 A tabela abaixo fornece a demanda di


aria m
axima de energia eletrica em uma
cidade. Encontre a data do pico m
aximo e o valor deste pico.
x (data)
y (demanda)

5 outubro
10

15 outubro
15

25 outubro
20

4 novembro
13

Exerccio 7.7 A func


ao denida pela tabela
x
f (x)

1, 9
1, 941

2, 0
1, 000

2, 1
0, 061

2, 2
1, 248

2, 3
2, 567

tem uma raiz no intervalo (2; 2, 1). Calcule esta raiz, aproximando a func
ao por um polin
omio de
terceiro grau.
Exerccio 7.8 Dada a tabela abaixo, calcular f (0, 32) e estimar o erro de truncamento do valor
calculado.
x
f (x)

0, 2
0, 5544

0, 3
0, 5639

0, 4
0, 5735

0, 5
0, 5831

Exerccio 7.9 Dada a seguinte tabela para a func


ao f (x) = ex ,
x
ex

1
2, 718

1, 1
3, 004

1, 2
3, 320

calcule f (1, 05) e delimite o erro para o valor interpolado, utilizando aritmetica de ponto utuante
com quatro algarismos signicativos.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

145

Captulo 8

Ajuste de dados experimentais


8.1

Introdu
c
ao

Uma forma de trabalhar com uma funcao denida por uma tabela de valores e a interpolacao
polinomial. Entretanto esta nao e aconselhavel quando:
1. e preciso obter um valor aproximado da funcao em algum ponto fora do intervalo de tabelamento, ou seja, quando se quer extrapolar;
2. os valores tabelados s
ao resultado de algum experimento fsico ou de alguma pesquisa,
porque, nestes casos, estes valores podem conter erros inerentes que, em geral, nao sao
previsveis.
Surge, ent
ao, a necessidade de se ajustar a estas funcoes tabeladas uma funcao que seja uma
boa aproximacao para os valores tabelados e que permita extrapolar com certa margem de
seguranca.
Exemplo 8.1 Considere um teste de desempenho de um autom
ovel. Este e acelerado a partir do
repouso e depois viaja com acelerac
ao m
axima ate que sua velocidade atinja 100km/h. Enquanto
isto, as leituras no velocmetro s
ao realizadas a cada 1s. Quando a velocidade e gracada como
func
ao do tempo, obtem-se um conjunto de pontos. Seria esperado que estes pontos denissem
uma curva suave. No entanto, erros de medida e outros fatores fazem com que os pontos n
ao
quem t
ao bem arranjados: alguns dos valores registrados para a velocidade cam muito altos e
outros, muito baixos.
Supondo que se desejasse determinar a velocidade aos 6, 5s, seria possvel interpolar entre as
leituras feitas aos 6s e 7s, mas como provavelmente existe algum erro nestas medidas, o valor
assim obtido poderia n
ao ser uma boa aproximac
ao para o valor desejado. O que fazer?
A solucao para o problema e tentar ajustar uma prov
avel curva ao conjunto de dados. Como
e possvel que v
arios destes dados n
ao sejam precisos, esta curva n
ao precisa, necessariamente,
passar por nenhum dos pontos. Por outro lado, como os erros de medida provavelmente n
ao sao
t
ao grandes, a curva deveria pelo menos passar perto de cada ponto: provavelmente acima de uns
e abaixo de outros. Na verdade, ao inves de procurar a funcao f que passa por cada um dos dados
experimentais, calcula-se a funcao que melhor se ajusta a eles.
Exemplo 8.2 Suponha que os dados abaixo temperatura T a cada perodo de tempo t foram
obtidos em um experimento num laborat
orio:
t
T

1
2
3
4
5
15, 0 28, 4 45, 3 58, 6 77, 4

e o gr
aco exibido na gura 8.2 sugere que esses dados podem ser aproximados razoavelmente bem
por uma reta. Assim, se for necess
ario saber o valor de T no tempo t = 1, 5, podemos obter a
146

Introduca
o ao C
alculo Numerico

Ajuste de dados experimentais

Figura 8.1: Gr
aco v t, com erros nas medidas de v.

Figura 8.2: Dados experimentais.


equac
ao da reta que melhor aproxima os pontos obtidos experimentalmente e, ent
ao, calcular o
valor de T de acordo com aquela reta.
A pergunta que surge e: dado um conjunto de dados, como fazer o ajuste? Ao aproximar uma
funcao f por uma funcao g de uma famlia G, e introduzido um certo erro r, denominado resduo,
isto e,
r(x) = f (x) g(x)
(8.1)

Aparentemente, uma boa aproximacao seria obtida fazendo x r(x) = 0. No entanto, isto
n
ao e verdade. Suponha que, em um certo experimento, foram obtidos os pontos p1 , p2 , p3 e
omeno e descrito por uma reta, esta e determinada de modo a satisfazer
p4 . Sabendo que o fen

r(x)
=
0.
Pode-se
observar
na gura abaixo que as retas que foram tracadas obedecem tal
x

criterio, o que mostra que x r(x) = 0 n
ao e uma boa escolha.
O problema enfrentado com este criterio e o cancelamento dos erros positivos com os negativos.
Uma maneira de evitar este cancelamento e trabalhar com o quadrado do resduo e exigir que

2
nimo. O metodo para aproximar uma funcao f por uma g G utilizando este
x r (x) seja m
u
ltimo criterio e denominado metodo dos mnimos quadrados.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

147

Introduca
o ao C
alculo Numerico

Ajuste de dados experimentais

Figura 8.3: Qual a melhor aproximac


ao, nesse caso?

8.2

Mnimos quadrados - domnio discreto

Para aproximar uma funcao y = f (x) tabelada em n pontos distintos xi , i = 0, 1, 2, . . . , n, por


uma funcao g da forma
m

ak gk (x)
(8.2)
k=0

Precisa-se determinar a0 , a1 , . . . , am que minimizam a soma dos quadrados dos resduos


M (a0 , a1 , . . . , am )
nos pontos xi , i = 0, 1, 2, . . . , n. Para minimizar
M (a0 , a1 , . . . , am ) =

n


ri2 (x) =

i=0

n


(f (xi ) g(xi ))2

(8.3)

M
= 0,
am

(8.4)

i=0

e preciso que
M
=0
a1

M
=0
a0

...

Por outro lado, certamente existem processos naturais que tem um comportamento exponencial,
possvel, para um conjunto de dados experimentais,
potencial e quadr
atico, dentro outros. E
calcular o qu
ao boa e uma determinada aproximacao, escolhida previamente. A seguir, veremos
como determinar os coecientes de uma determinada funcao de ajuste.

8.3

Ajuste linear

Neste caso, determina-se os parametros a0 e a1 da reta a0 +a1 x de modo que a soma dos quadrados
em cada ponto seja mnima. Em outras palavras, deseja-se determinar a0 e a1 que minimizem
M (a0 , a1 ) =

n


ri2 (x) =

i=0

n


(yi a0 a1 xi )2

(8.5)

i=0

Para isto, e necessario que


M
a0
M
a1

= 0

= 0

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

(8.6)
(8.7)

148

Introduca
o ao C
alculo Numerico

Ajuste de dados experimentais

ou seja, que
M
a0

M
a1

2
2

n

i=0
n


(yi a0 a1 xi ) (1) = 0

(8.8)

(yi a0 a1 xi ) (xi ) = 0

(8.9)

i=0

Organizando estas condicoes, tem-se


 n
n
n
yi
= i=0 a0 + i=0
i=0
na1 xi 2
n
n
x
y
=
a
x
+
i=0 i i
i=0 0 i
i=0 a1 xi

(8.10)

e chega-se ao seguinte sistema linear:


 n

  n

n
1
x
y
a
i
0
i
i=0
i=0
i=0
n
n
= n
2
a1
i=0 xi
i=0 xi
i=0 xi yi

(8.11)

denominado sistema normal. Resolvendo este sistema, sao obtidos os valores de a0 e de a1 , ou


seja, determina-se a equacao (reta, no caso) de ajustamento.
Exemplo 8.3 Como resultado de algum experimento, suponha que s
ao obtidos os seguintes valores
para a func
ao f :
x
f (x)

0
0

1
1

2
1

3
4

4
4

Determine a reta que melhor se ajusta a esta func


ao segundo o metodo dos mnimos quadrados.
O sistema normal correspondente e


 

5 10
a0
10
=
10 30
a1
31
que tem soluc
ao a0 = 1/5 e a1 = 11/10. Portanto, a reta que aproxima f (x) e
g(x) =

8.4

1
11
x
10
5

Ajuste polinomial

Pode-se estender o conceito de ajustamento de uma reta por mnimos quadrados para o caso geral
omio
de um polin
omio de grau p. Neste caso, determina-se os par
ametros a0 , a1 , . . . , ap do polin
a0 + a1 x + . . . + ap xp que minimizem
M (a0 , a1 , . . . , ap ) =

n

i=0

ri2 (x) =

n


(yi a0 a1 xi . . . ap xp )2

(8.12)

i=0

Para isto, e necessario que


M
M
M
=
= ... =
=0
a0
a1
ap
de onde se obtem o sistema
n

x
n+1
n
ni=0 2i

i=0 xi
i=0 xi

..
..

.
.
n
n
p
p+1
i=0 xi
i=0 xi

n
...
xpi
ni=0 p+1
...
i=0 xi
..
..
.
.
n
2p
...
i=0 xi

a0
a1
..
.
ap

(8.13)

n
n i=0 yi
i=0 xi yi
..
n . p
i=0 xi yi

(8.14)

Resolvendo este sistema, sao obtidos os valores de a0 , a1 , . . . , ap , ou seja, os coecientes do


polin
omio de grau p.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

149

Introduca
o ao C
alculo Numerico

Ajuste de dados experimentais

Exemplo 8.4 Obtenha a express


ao da par
abola que se ajusta aos dados da tabela:
x
y

2
0, 01

1
0, 51

0
0, 82

1
0, 88

2
0, 81

3
0, 49

O sistema normal para o caso de uma par


abola (p = 2) e

3, 50
6 3 19
a0
3 19 27 a1 = 3, 48
a2
9, 00
19 27 115
A soluc
ao deste sistema indica que a par
abola que melhor se ajusta a este conjunto de dados e
g(x) = 0, 102 x2 + 0, 201 x + 0, 806.

8.5

Ajustamento por fun


c
oes n
ao lineares nos par
ametros
lineariza
c
ao

O metodo dos mnimos quadrados pode ser empregado tambem aproximar uma funcao f por uma
funcao g de uma famlia n
ao linear nos par
ametros. Exemplos destas funcoes sao as exponenciais,
hiperb
olicas e racionais, entre outras, como veremos a seguir.

8.5.1

Ajustamento por uma fun


c
ao exponencial

A funcao y = c ea x pode ser linearizada tomando-se o logaritmo de ambos os lados. No nal,


obtem-se uma relacao linear entre as vari
aveis transformadas. O primeiro passo e
ln y = ln c + a x.

(8.15)

Agora, usando a mudanca de variaveis (e de constantes)


Y = ln y,

X = x,

a0 = ln c,

a1 = a

(8.16)

chega-se `a relacao linear entre as vari


aveis X e Y :
Y = a1 X + a0 ,

(8.17)

Sendo assim, pode-se aplicar o mesmo metodo utilizado para o ajustamento de uma reta aos
dados transformados {(Xi , Yi )} = {(xi , ln yi )}. Os coecientes a0 e a1 sao encontrados pela solucao
do sistema


  n

n
(n + 1)  i=0 xi
a0
ln yi
i=0


=
(8.18)
n
n
n
2
a1
i=0 xi
i=0 xi
i=0 xi ln yi
de forma que c = ea0 e a = a1 determinam a funcao de ajustamento.
Exemplo 8.5 Ajuste os dados da tabela a uma func
ao exponencial.
x
y

0
3

0, 5
4

1
6

1, 5
9

2
12

2, 5
17

3
24

3, 5
33

4
48

O sistema linear para este caso e


 



22, 3378
9 18
a0
=
a1
55, 0903
18 51
e a sua soluc
ao e a0 = 1, 093337 e a1 = 0, 694319. Portanto, c = ea0 = 2, 984216 e a func
ao
exponencial procurada e y = 2, 984216 e0,694319.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

150

Introduca
o ao C
alculo Numerico

8.5.2

Ajuste de dados experimentais

Ajustamento por uma fun


c
ao pot
encia

A funcao y = a xb pode ser linearizada tomando-se o logaritmo: ln y = ln a + b ln x. Com isto,


mediante a mudanca de variaveis Y = ln y, X = ln x, a0 = ln a e a1 = b, o sistema normal ca

 


n
n
ln yi
a0
+ 1)
(n
n i=0 ln xi 2
= n i=0
(8.19)
n
a1
i=0 ln xi
i=0 (ln xi )
i=0 ln xi ln yi
Desta forma, os parametros sao a = ea0 e b = a1 .

8.5.3

Ajustamento por uma fun


c
ao hiperb
olica

Neste caso, y =

1
a0 +a1 x .

A linearizacao desta funcao resulta em




8.5.4

x
y

(n + 1)

n
i=0 xi

Neste caso, a linearizacao resulta


(n + 1)

n

ni=0 x2i
i=0 xi

8.5.6

1
yi
xi
yi

x
a0 +a1 x

= a0 + a1 x e o sistema obtido e dado por



 n
n
a
x
i=0
i
0
i=0
n
= n
2
x
a
1
i=0 i
i=0

Ajustamento por uma fun


c
ao do tipo y =

= a0 + a1 x e o sistema


  n
n
a0
ni=0 x2i
= ni=0
x
a
1
i
i=0
i=0

Ajustamento por uma fun


c
ao do tipo y =

Neste caso, a linearizacao e

8.5.5

(n + 1)

n
i=0 xi

1
y

1
y

xi
yi
x2i
yi


(8.20)

1
a0 +a1 x+a2 x2

= a0 + a1 x + a2 x2 e o sistema e dado por

n
ni=0 x2i
xi
i=0
n
3
i=0 xi

n 1
n
i=0 yi
x2i
a0
i=0
n xi
n
3

x
a
=
i=0 y

1
i
i=0
n x2ii
n
4
a2
i=0 xi

(8.21)

i=0 yi

Ajustamento por uma fun


c
ao do tipo y = a eb x+c x

A linearizacao e empregada da seguinte forma: Y = ln y, X = x, a0 = ln a, a1 = b e a2 = c. Sendo


assim, o sistema normal ca

n

n
n
(n + 1)  i=0 xi i=0 x2i
a0
i=0 ln yi


n
n

x2i ni=0 x3i a1 =  ni=0 xi ln yi


(8.22)
ni=0 x2i i=0
n
n
n
3
4
2
x
x
x
a
x
ln
y
2
i
i=0 i
i=0 i
i=0 i
i=0 i

8.6

Escolha do melhor ajuste

Uma vez conhecidas as diferentes formas de regressao, podemos nos indagar: para um determinado
conjunto de dados experimentais, qual e a melhor forma?
Essa pergunta pode ser respondida se considerarmos algumas medidas dos erros envolvidos nas
regressoes, essencialmente comparando o quao distante um valor experimental fi esta do valor yi
calculado atraves da equacao para as diferentes regress
oes. Basicamente, podemos considerar tres
medidas diferentes:
Erro relativo: Seleciona-se a regressao que tiver o menor erro relativo m
aximo,
m

e = max
i=1

| fi yi |
| fi |

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

(8.23)

151

Introduca
o ao C
alculo Numerico

Ajuste de dados experimentais

Desvio relativo em rela


c
ao `
a m
edia: Seleciona-se a regressao que tiver o menor desvio relativo em relacao `
a media,
|
m | yi y
t = max
(8.24)
i=1
| y |
m
onde y = m1 i=1 yi .
Coeficiente de varia
c
ao da amostra: Seleciona-se a regressao que apresentar o menor coeciente de variacao da amostra,
m
2
i=1

(yi
y)

m1

D=

(8.25)

importante notar que poder


E
a haver casos em que a escolha de uma ou outra medida favorecera
uma ou outra forma de regress
ao, conforme pode ser vericado nos exemplos que seguem.
Exemplo 8.6 Dada a tabela
x
f

1
2
3
4
5
15, 0 28, 4 45, 3 58, 6 77, 4

obtenha as quatro regress


oes linear, quadr
atica (polinomial), potencial e exponencial calculando
as medidas para escolha da melhor regress
ao.
Solu
c
ao: Calculadas as regress
oes, obtemos os seguintes valores para yi (arredondados para a
primeira casa decimal):
x
linear
quadr
atica
potencial
exponencial

1
13, 9
15, 0
14, 7
17, 4

2
29, 4
28, 9
29, 6
26, 0

3
44, 9
43, 9
44, 7
38, 8

4
60, 4
59, 9
59, 9
57, 9

5
75, 9
77, 0
75, 2
86, 4

e os correspondentes valores das medidas


linear
quadr
atica
potencial
exponencial

e
0, 0707
0, 0307
0, 0434
0, 1597

t
0, 6898
0, 7127
0, 6771
0, 9079

D
0, 2727
0, 2729
0, 2669
0, 3045

Analisando a tabela acima, vemos que, se o criterio escolhido fosse o erro relativo e, deveramos
escolher a regress
ao quadr
atica, com coecientes
a0 = 2, 04,

a1 = 12, 4143,

a2 = 0, 5143;

para as outras duas medidas, a regress


ao escolhida seria a potencial, com
a0 = 14, 6535,

a1 = 1, 0160

A gura (8.4) mostra que ambas as regress


oes, nesse caso, aproximam razoavelmente bem os
dados experimentais.
Exemplo 8.7 Suponha os dados experimentais dados por
x
f

1
2
3
4
5
2, 7183 7, 3891 20, 0855 54, 5982 148, 4132

Obtenha as quatro regress


oes linear, quadr
atica (polinomial), potencial e exponencial calculando
as medidas para escolha da melhor regress
ao.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

152

Introduca
o ao C
alculo Numerico

Ajuste de dados experimentais

Figura 8.4: Regress


ao quadr
atica versus potencial.
Solu
c
ao: Calculadas as regress
oes, obtemos os seguintes valores para yi (arredondados para a
primeira casa decimal):
x
linear
quadr
atica
potencial
exponencial

1
2
3
21, 1 12, 8 46, 6
7, 5 1, 5 18, 1
2, 0 10, 6 28, 3
2, 7
7, 4 20, 1

4
5
80, 5 114, 4
66, 2 142, 9
56, 7 97, 4
54, 6 148, 4

e os correspondentes valores das medidas


linear
quadr
atica
potencial
exponencial

e
1, 5745
1, 7618
0, 4331
0, 0000

t
1, 4519
2, 0648
1, 4977
2, 1820

D
0, 5739
0, 6415
0, 4973
0, 6476

Analisando a tabela, vemos que, se o criterio escolhido fosse o erro relativo e, deveramos
escolher a regress
ao exponencial, com coecientes
a0 = 1, 0,

a1 = 2, 7183

o que e
obvio, pois os valores tabulados representam justamente fi = exi . Se, no entanto,
utiliz
assemos como medida o desvio relativo em relac
ao `
a media, t, escolheramos a regress
ao
linear, com
a0 = 54, 9388, a1 = 33, 8599
que certamente n
ao seria uma boa escolha; nalmente, escolhendo o coeciente de variac
ao da
amostra, a regress
ao potencial seria escolhida, com
a0 = 1, 9785,

a1 = 2, 4216

Exemplo 8.8 Dada a tabela abaixo


x
f

2
1
0
1
2
8, 0064 2, 6319 0, 2337 2, 1888 8, 3132

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

153

Introduca
o ao C
alculo Numerico

Ajuste de dados experimentais

Figura 8.5: Regress


ao quadr
atica.
obtenha as quatro regress
oes linear, quadr
atica (polinomial), potencial e exponencial calculando
as medidas para escolha da melhor regress
ao.
Solu
c
ao: Calculadas as regress
oes, com excec
ao da potencial (a qual n
ao pode ser calculada sem
translaca
o devido `
a presenca de um valor nulo nos dados experimentais), obtemos os seguintes
valores para yi (arredondados para a primeira casa decimal):
x
linear
quadr
atica
exponencial

1
2
3
4
5
4, 2 4, 3 4, 3 4, 3 4, 3
8, 2 2, 3 0, 4 2, 3 8, 2
2, 5 2, 5 2, 5 2, 4 2, 4

e os correspondentes valores das medidas


linear
quadr
atica
exponencial

e
t
D
17, 2885 0, 0080 0, 0032
0, 5724 0, 9220 0, 4275
9, 5135 0, 0219 0, 0086

Analisando a tabela, vemos que, se o criterio escolhido fosse o erro relativo e, deveramos
escolher a regress
ao quadr
atica, com coecientes
a0 = 0, 3675,

a1 = 0, 0171,

a2 = 1, 9536;

j
a para as outras duas medidas, a regress
ao escolhida seria a linear, com
a0 = 4, 2748,

a1 = 0, 0171

Analisando-se o gr
aco na gura (8.5), observa-se que a regress
ao quadr
atica e melhor, evidentemente.
Os exemplos aqui apresentados mostram que o ajuste de dados experimentais e um processo
numerico que deve ser usado tomando-se cuidado ao se selecionar uma dada regressao, se possvel
fazendo-se o graco dos dados experimentais e da curva de regress
ao.

8.7

Mnimos quadrados - domnio contnuo

Mesmo no caso em que a forma analtica da funcao f e conhecida, `as vezes e de interesse aproximala no intervalo I = [xI , xF ] por uma funcao g da famlia
m


ak gk (x)

(8.26)

k=0

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

154

Introduca
o ao C
alculo Numerico

Ajuste de dados experimentais

Famlia de fun
c
oes

Condi
c
oes

Reta - y = a0 + a1 x

f [xi+1 , xi ] const.

Par
abola - y = a0 + a1 x + a2 x2

f [xi+2 , xi+1 , xi ] const.

Funcao exponencial - y = c ea x

ln yi
const.
xi

Funcao potencia - y = a xb

ln yi
const.
ln xi
1
yi
const.
xi

1
Funcao hiperb
olica - y =
a0 + a1 x

Funcao do tipo y =

xi
yi
const.
xi

x
a0 + a1 x

1
Funcao do tipo y =
a0 + a1 x + a2 x2

Funcao do tipo y = a eb x+c x

1
1

yi+1
yi
const.
xi+2 xi

ln yi+1 ln yi
const.
xi+2 xi

Tabela 8.1: Condic


oes necess
arias para se ajustar pontos.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

155

Introduca
o ao C
alculo Numerico

Ajuste de dados experimentais

` vezes, por exemplo, tem-se uma funcao com descontinuidades, mas quermais conveniente. As
se trabalhar com uma funcao contnua. A primeira vista, seria possvel recair no caso discreto
tabelando a funcao dada em alguns pontos; entretanto, isto pode causar perda de informacao sobre
o comportamento do erro.
Ao se considerar a soma dos quadrados dos resduos em todos os pontos do intervalo [xI , xF ],
tem-se, no limite, a integral do quadrado do resduo em cada ponto do intervalo em que se quer
aproximar a funcao dada. Geometricamente, isto representa a area entre as curvas f (x) e g(x).
Assim, e necessario determinar a0 , a1 , . . . , am que minimizam
 xF
M (a0 , a1 , . . . , am ) =
r2 (x) dx
x
 xI F
=
(f (x) g(x))2 dx
x
 xI F
(f (x) a0 g0 (x) a1 g1 (x) . . . am gm (x))2 dx
(8.27)
=
xI

Como no caso discreto, o ponto de mnimo e atingido quando


M
M
M
=
= ... =
=0
a0
a1
am
ou seja,
M
= 2
al

xF


f (x)

xI

2

m


ak gk (x)

gl (x) dx = 0

0 l m.

(8.28)

k=0

Usando a denicao de produto escalar de duas funcoes w(x) e q(x) no intervalo [xI , xF ] como
 xF
< w, q >=
w(x) q(x) dx
xI

tem-se que, no caso em que se quer

< g0 , g0 > < g0 , g1 >


< g1 , g0 > < g1 , g1 >

..
..

.
.
< gm , g0 >

aproximar f (x), o sistema normal ca


. . . < g0 , gm >
a0
< g0 , f >

. . . < g1 , gm >
a1 < g 1 , f >
.. =

..
..
..
.

.
.
.
< gm , g1 > . . . < gm , gm >
< gm , f >
am

(8.29)

Exemplo 8.9 Aproxime a func


ao exponencial ex no intervalo [0, 1] por uma reta utilizando o
metodo dos mnimos quadrados.
ao utilizada,
Neste caso, g(x) = a0 + a1 x. Com a notac
g0 (x) = 1
e o produto escalar,

g1 (x) = x


f (x) = ex

f (x) g(x) dx.


0

Portanto, determinar a0 e a1 pelo metodo dos mnimos quadrados e calcular a soluc


ao do
seguinte sistema normal:

 


< 1, ex >
< 1, 1 > < 1, x >
a0
.
=
< x, ex >
a1
< x, 1 > < x, x >

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

156

Introduca
o ao C
alculo Numerico

Ajuste de dados experimentais

Como


< 1, 1 > =

1 dx = 1
0

x dx =

< 1, x > =
0

< x, x > =
0


< 1, ex > =


< x, ex > =

1
2

x2 dx =

1
3

ex dx = e 1
x ex dx = 1

tem-se

1
 


2 a0
e1

a1 =
1
1

1
2 3
A soluca
o a0 = 4 e 10 e a1 = 18 6 e determina a func
ao aproximadora g(x) = 4 e 10 +
(18 6 e) x.

8.7.1

Polin
omios ortogonais

Quando se aproxima uma funcao f por uma funcao g da famlia


m


ak gk (x)

(8.30)

k=0

pelo metodo dos mnimos quadrados, e necessario resolver um sistema linear de equacoes denominado sistema normal. Se um conjunto de funcoes {gk }, k = 0, 1, . . . , m tais que
k
= l,

< gk , gl >= 0

0 k, l m

(8.31)

o sistema normal se torna diagonal e os coecientes ak da funcao aproximadora s


ao determinados
por
< gk , f >
,
0km
(8.32)
ak =
< gk , gk >
As funcoes que satisfazem a relacao (8.31) sao denominadas funcoes ortogonais. Um polin
omio
de grau k pode ser escrito na forma pk (x) = ck xk + ck1 xk1 + . . . + c1 x + c0 . Os polin
omios
ortogonais pk (x), k = 0, 1, . . . obedecem a`s seguintes relacoes:
< pk , pl >

para

k
= l

(8.33)

< pk , pk >

>

para

k = 0, 1, . . .

(8.34)
(8.35)

Exemplo 8.10 Construa os tres primeiros polin


omios ortogonais com relaca
o ao produto escalar
 1
< f, g >=
f (x) g(x) dx
0
x

e aproxime f (x) = e no intervalo [0, 1] por um polin


omio de grau 2. Para este caso, imponha a
condic
ao de que o coeciente do termo de mais alto grau de cada polin
omio seja igual a 1.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

157

Introduca
o ao C
alculo Numerico

Ajuste de dados experimentais

Sendo assim,
p0 (x)
p1 (x)

=
=

1 x0 = 1
1 x1 + c0 x0 = x + c0

p2 (x)

1 x2 + d1 x1 + d0 x0 = x2 + d1 x + d0

A constante c0 e determinada impondo-se < p1 , p0 >= 0, ou seja,


 1
1
< p1 , p0 >=
(x + c0 ) 1 dx = + c0 = 0,
2
0
Portanto, como c0 = 21 , p1 (x) = x 12 .
As outras duas constantes, d1 e d0 s
ao determinadas fazendo-se < p2 , p0 >= 0 e <
p2 , p1 >= 0, de onde se obtem p2 (x) = x2 x + 16 .
Agora, utiliza-se os polin
omios ortogonais calculados para determinar o polin
omio desejado, de
grau 2:
g(x) = a0 p0 (x) + a1 p1 (x) + a2 p2 (x)
que aproxima f (x) = ex no intervalo [0, 1].
De (8.32) tem-se
ak =

< pk , f >
< pk , pk >

Logo,


a0

< 1, e >
= 0
< 1, 1 >
0

a1

a2

ex dx
=e1

dx



1
e
x
dx
< x 12 , ex >
2
0
= 6 (3 e)
=



2
1
< x 12 , x 12 >
1
dx
x
2
0


 1
1
x
2
e

x
+
x
dx
< x2 x + 16 , ex >
6
0
= 30 (7 e 19)
=
2
 1
< x2 x + 16 , x2 x + 16 >
1
2
dx
x x+
6
0


Portanto,




1
1
2
g(x) = (e 1) + 6 (3 e) x
+ 30 (7 e 19) x x +
2
6
Um exemplo importante de uma famlia de polin
omios ortogonais e a dos polin
omios de Legendre, que obedecem `a seguinte denicao:
 1
pn (x) pm (x) dx
(8.36)
< pn , pm > =
1

se

m
= n

2
2n+ 1

se

m=n

(8.37)

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

158

Introduca
o ao C
alculo Numerico

Ajuste de dados experimentais

Usando esta denicao, pode-se construir os tres primeiros polin


omios de Legendre:
p0 (x) = 1,

p1 (x) = x,

p2 (x) =

1
(3 x2 1)
2

(8.38)

Alem desta, ainda existem outras famlias de polin


omios ortogonais, como os polin
omios de
Hermite, Chebyshev, etc. Estes polin
omios, tabelados ou previamente calculados, podem ser
empregados para ajustar uma funcao f por um polin
omio g de grau menor ou igual a m em um
intervalo [a, b].
Supondo que se tenha a disposicao uma tabela de polin
omios ortogonais em um intervalo [c, d],
e preciso fazer uma mudanca de variavel t(x) = x+ para transformar linearmente f (t), denida
no intervalo [a, b], em f (t(x)) = F (x) denida no intervalo [c, d]. Faz-se, entao, o ajuste da funcao
F (x) por um polin
omio G(x) de grau menor ou igual a m usando os polin
omios tabelados. Por
transformacao inversa de vari
avel, x(t) = t + , obtem-se a funcao aproximadora g(t) = G(x(t)).
Exemplo 8.11 Aproxime a func
ao f (t) = sen t no intervalo 0 t por uma par
abola,
utilizando os polin
omios de Legendre.
Fazendo a mudanca de vari
avel que transforma linearmente o intervalo [0, ] em [1, 1], tem-se
t(x) =

(x + 1)
2

Nestas condic
oes,
f (t(x)) = sen t(x) = sen


(x + 1) = F (x).

2
A par
abola que se quer obter pelo metodo dos mnimos quadrados e
G(x) + a0 1 + a1 x + a2

1
(3 x2 1)
2

Como os polin
omios de Legendre s
ao ortogonais, emprega-se (8.32) para determinar os coecientes
abola:
a0 , a1 e a2 da par
a0

a1

a2

<
<
<
<
<
<

F, p0
p0 , p0
F, p1
p1 , p1
F, p2
p2 , p2

2
>
=
>

>
=0
>


10
>
12
=
1 2
>

Desta forma,
G(x) =



10
2
12 1
+
(3 x2 1)
1 2

para

x [1, 1]

Voltando para o intervalo inicial [0, ] atraves da transformac


ao inversa, x(t) =
se





2
2
10
12 1
2
g(t) = +
1 2
3
t1 1

t 1, obtem-

que e a func
ao aproximadora desejada.

8.8

Exerccios

Exerccio 8.1 Utilize o metodo dos mnimos quadrados para encontrar a reta que melhor se ajusta
aos pontos da tabela.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

159

Introduca
o ao C
alculo Numerico

Ajuste de dados experimentais


1
10

x
y

0
9

1
7

2
5

3
4

4
3

5
0

6
1

Exerccio 8.2 Encontre a func


ao exponencial que melhor se ajusta aos pontos (0; 1, 5), (1; 2, 5),
(2; 3, 5), (3; 5) e (4; 7, 5).
Exerccio 8.3 Encontre a par
abola que melhor se ajusta aos pontos (3; 3), (0; 1), (2; 1) e (4; 3).
Exerccio 8.4 Encontre a hiperbole que melhor se ajusta aos pontos (0; 0, 2), (1; 0, 11), (2; 0, 08),
(3; 0, 06) e (4; 0, 05).
Exerccio 8.5 Considere a variac
ao da viscosidade em func
ao da temperatura:
T

7, 5
1409

10, 9
1276

14, 0
1175

15, 0
1148

16, 0
1121

18, 0
1069

21, 0
990

Encontre a melhor func


ao de ajustamento e determine a viscosidade para T = 4 C e T =
25 C.

Exerccio 8.6 Admita que a venda de peixes de um determinado mercado seja conforme a tabela
dia
n
umero de peixes

1
70

5
30

10
55

15
25

Determine a func
ao que melhor se ajusta aos dados.
Exerccio 8.7 Ajuste os dados da tabela utilizando
1. uma func
ao exponencial;
2. uma func
ao potencia.
x
y

1
0, 6

2
1, 9

3
4, 3

4
7, 6

5
12, 6

Depois, utilize o criterio dos mnimos quadrados para determinar qual das curvas, (1) ou (2),
e melhor.
Exerccio 8.8 Considere a incidencia de c
ancer, problemas cardacos e complicac
oes respirat
orias
em pacientes, conforme a idade, mostrados na tabela (por mil habitantes).
idade
5
15
25
35
45
55
65

incidencia
de c
ancer
0
0
1
3
6
12
30

problemas
cardacos
0
1
5
12
30
79
140

complicac
oes
respirat
orias
1
3
5
7
10
12
14

Identique as func
oes que melhor se ajustam aos problemas indicados conforme a idade.
Exerccio 8.9 Encontre a constante de acelerac
ao da gravidade g para o seguinte conjunto de
dados:
t
x

0, 200
0, 1960

0, 400
0, 7835

0, 600
1, 7630

0, 800
3, 1345

1, 000
4, 8975

Exerccio 8.10 Aproxime a func


ao 4 x3 por um polin
omio de primeiro grau, uma reta, no intervalo
[xI , xF ] = [0, 1].
Exerccio 8.11 Repita o exemplo 8.9 utilizando os polin
omios ortogonais obtidos acima e verique
que o resultado obtido e o mesmo.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

160

Captulo 9

Integra
c
ao Num
erica
9.1

Introdu
c
ao

A integrac
ao numerica e o processo computacional capaz de produzir um valor numerico para a
integral de uma funcao sobre um determinado conjunto. Ela difere do processo de antidiferenciac
ao,
aprendido em C
alculo, na medida em que nao se procura uma funcao F tal que F  = f ; aqui,
vamos procurar substituir f por uma outra funcao, g tal que f g mais amena `a integracao
(por exemplo, g e um polin
omio). Nesse caso, a solucao numerica de


f (x) dx

(9.1)

ser
a obtida calculando-se

g(x) dx,

gf

Veremos, a seguir, o processo de integracao numerica via interpolac


ao polinomial e os diferentes
metodos da derivados.

9.2

Integra
c
ao num
erica via interpola
c
ao polinomial

Suponha a integral (9.1); podemos selecionar um conjunto de n


os x0 , x1 , . . ., xn no intervalo [a, b]
e interpolar a funcao f (x) atraves dos polin
omios de Lagrange, os quais sao expressos como
p(x) =

n


f (xi )li (x)

(9.2)

i=0

onde
li (x) =

n

x xj
,
x
i xj
j=0

i = 0, 1, . . . , n

(9.3)

j=i

Agora, substitumos f (x) por p(x), de tal forma que





f (x) dx

p(x) dx =
a

n

i=0

f (xi )

li (x) dx

(9.4)

a qual pode ser usada para calcular a integral de qualquer funcao. A equacao acima pode ser
reescrita na forma
 b
n

f (x) dx
Ai f (xi )
(9.5)
a

i=0

161

Introduca
o ao C
alculo Numerico

Integrac
ao Numerica

Figura 9.1: A regra do trapezio.


onde


Ai =

li (x) dx
a

a qual e conhecida como a forma de Newton-Cotes, se os pontos xi forem igualmente espacados.


A partir da equacao (9.5), pode-se derivar v
arias regras de integracao, dependendo do grau do
polin
omio de Lagrange.

9.2.1

Regra do Trap
ezio

Se tomarmos n = 1, e usarmos como nos os pontos extremos do intervalo, i.e. x0 = a, x1 = b,


obtemos a chamada regra do trapezio. Nesse caso, os polinomios interpoladores s
ao
l0 (x) =
de onde

bx
,
ba

l1 (x) =

1
l0 (x) dx = (b a) =
2

A0 =
a

xa
ba
b

l1 (x) dx = A1
a

Assim, escrevendo a equacao (9.5) para esse caso particular, temos




f (x) dx

ba
(f (a) + f (b))
2

(9.6)

a qual dene a regra do trapezio. Essa f


ormula e exata para qualquer polin
omio de grau igual a
1, no m
aximo; o erro associado a essa aproximacao e dado por

1
(b a)3 f  (),
12

a<<b

(9.7)

Ao usarmos a regra do trapezio, estamos substituindo a funcao f por uma reta, no intervalo
claro que essa aproximacao pode ser bastante crua, se | b a | e
[a, b], conforme a gura 9.1. E
grande (o contr
ario tambem e verdade).

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

162

Introduca
o ao C
alculo Numerico

Integrac
ao Numerica

Exemplo 9.1 Calcule a integral

A=

x2 + 3x dx

usando a regra do trapezio.


Solu
c
ao: Usando a f
ormula (9.6), temos
A=
Como a antiderivada F (x) =
denida, temos

x3
3

21
14
(4 + 10) =
=7
2
2

+ 3x2 e conhecida, podemos avaliar o erro. Calculando a integral


2
3x2 
x3
+
x + 3x dx =
= 6, 8333
3
2 1

de onde podemos calcular o erro como sendo igual a 6, 8333 7 = 0, 1667. Usando a f
ormula
(9.7), com f  = 2, obtemos o valor

1
1
(2 1)3 2 = = 0, 1667
12
6

o qual e igual ao calculado anteriormente.


Podemos, evidentemente, obter uma melhor aproximacao se subdividirmos o intervalo [a, b],
calculando n
os x0 , x1 , . . ., xn satisfazendo
a = x0 < x1 < . . . < xn = b
e aplicando a regra do trapezio a cada subintervalo (nao necessariamente de mesmo tamanho).
Essa estrategia nos leva `a regra composta do trapezio,


f (x) dx

n 


xi

f (x) dx

xi1

i=1

1
(xi xi1 ) (f (xi1 ) + f (xi ))
2 i=1
n

(9.8)

A regra composta do trapezio nos leva a` aproximacao da funcao f (x) por um conjunto de retas
unindo cada um dos n
os xi , dois a dois, conforme a gura 9.2-a.
Se o espacamento entre os nos e igual, i.e. xi = a+ih, h = ba
ao obtemos a regra composta
n , ent
uniforme do trapezio,

 n1


 b

h
f (a) + 2
f (x) dx
f (a + ih) + f (b)
(9.9)
T (f, h) =
2
a
i=1
conforme a gura 9.2-b. O erro de truncamento E(f, h) associado a essa aproximacao e estimado
por
h2
(b a) max | f  (x) |.
(9.10)
E(f, h)
12
x[a,b]
Exemplo 9.2 Calcule a integral


A=

x2 + 3x dx

usando as regras composta e composta uniforme do trapezio.


Solu
c
ao:

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

163

Introduca
o ao C
alculo Numerico

Integrac
ao Numerica

1. Usando a f
ormula (9.8), para n = 2 e usando x0 = 1, x1 = 1, 1 e x2 = 2, temos
A=

1
[(1, 1 1)(4 + 4, 51) + (2 1, 1)(4, 51 + 10)] = 6, 9550
2

e o erro, comparado com o valor da integral denida (= 6, 8333), e de 0, 1217.


2. Usando a f
ormula (9.9), para n = 2 e usando x0 = 1, x1 = 1, 5 e x2 = 2, temos
A=

1
[(1, 5 1)(4 + 6, 75) + (2 1, 5)(6, 75 + 10)] = 6, 8750
2

e o erro, comparado com o valor da integral denida (= 6, 8333), e de 0, 0417.


Note que, em ambos os casos, a aproximac
ao com a regra composta e melhor do que usando a
regra simples do trapezio.
Exemplo 9.3 Considere a tabela abaixo, que fornece a velocidade (km/h) de um certo objeto em
func
ao do tempo e determine qual e a dist
ancia percorrida pelo objeto ao nal de 2 h.
t
v(t)

0, 00
6, 0

0, 25
7, 5

0, 50
8, 0

0, 75
9, 0

1, 00
8, 5

1, 25
10, 5

1, 50
9, 5

1, 75
7, 0

2, 00
6, 0

Como a dist
ancia percorrida (d) e calculada como


d=

v(t) dt,
0

pode-se empregar a regra dos trapezios com n = 8, h = 0, 25, de forma que


A=

0, 25
[6 + 2 (7, 5 + 8, 0 + 9, 0 + 8, 5 + 10, 5 + 9, 5 + 7, 0)) + 6] .
2

Portanto, uma aproximac


ao para a dist
ancia total percorrida no intervalo de tempo [0, 2] e
d A = 16, 5km.
Exemplo 9.4 Considere as integrais denidas
 3
x
dx
e
2
1 1+x

3
1

dx
72x

As tabelas 9.1 e 9.2 mostram as aproximac


oes obtidas usando a regra dos trapezios com n =
1, 2, 4, 8, 16, 32 subintervalos e o erro na aproximac
ao. Note que, a
` medida que n cresce, h e
sucessivamente dividido por 2 e cada erro e aproximadamente 14 do erro anterior.
n
1
2
4
8
16
32

h
2, 0
1, 0
0, 5
0, 25
0, 125
0, 0625

A
0, 800000
0, 800000
0, 803183
0, 804311
0, 804615
0, 804693

E(f, h)
0, 004719
0, 004719
0, 001536
0, 000408
0, 000104
0, 000026

Tabela 9.1: Aproximacao para

3

x
1 1+x2

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

dx.

164

Introduca
o ao C
alculo Numerico

Integrac
ao Numerica

n
1
2
4
8
16
32

h
2, 0
1, 0
0, 5
0, 25
0, 125
0, 0625

A
1, 200000
0, 933333
0, 841667
0, 814484
0, 807203
0, 805343

E(f, h)
0, 395281
0, 128614
0, 036948
0, 009765
0, 002484
0, 000624
3

dx
1 72 x .

Tabela 9.2: Aproximacao para

9.2.2

M
etodo dos Coeficientes a Determinar

A equacao (9.5) (f
ormula de Newton-Cotes) e um caso particular do metodo dos coecientes a
determinar.
Suponha, por exemplo, que n = 2 e [a, b] = [0, 1]. Nesse caso, os polinomios de Lagrange,
escritos para os n
os 0, 12 e 1, sao
1
l0 (x) = 2(x )(x 1),
2

l1 (x) = 4x(x 1),

1
l2 (x) = 2x(x )
2

de onde podemos escrever



A0


A1

=
0

l0 dx =

1
6

l1 dx =

2
3

l2 dx =

1
6

=


A2

Os mesmos coecientes Ai podem ser obtidos usando o metodo aqui descrito. Suponha que

 1
1
f (x) dx A0 f (0) + A1 f
+ A2 f (1)
2
0
a qual deve ser exata para qualquer polin
omio de grau igual ou inferior a 2. Para determinar os
coecientes, usamos as funcoes base 1, x e x2 i.e., p(x) = c0 + c1 x + c2 x2 e escrevemos



0

0
1

dx

1 = A0 + A1 + A2

x dx

1
1
= A1 + A2
2
2

x2 dx

1
1
= A1 + A2
3
4

0
1

o que nos leva ao sistema de equacoes lineares

A0 + A1 + A2
1
2 A1 + A2

1
4 A1 + A2

=
=
=

1
2
1
3

o qual tem a seguinte solucao: A0 = 16 , A1 = 23 , A2 = 16 .

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

165

Introduca
o ao C
alculo Numerico

9.2.3

Integrac
ao Numerica

Regra de Simpson

A regra de Simpson e obtida a partir do metodo dos coecientes a determinar, generalizada para
um intervalo de integracao [a, b] qualquer. Ela e obtida a partir da integral de um polin
omio
interpolador de segundo grau p2 (x) que passa por tres pontos igualmente espacados, (a, f (a)),
(m, f (m)), e (b, f (b)), onde m = (a + b)/2. Assim, tomando h = ba
2 , tem-se

 b
 b
2 f (a)
f (a)
+ (x a)(x m)
p2 (x) dx =
f (a) + (x a)
dx
(9.11)
h
2 h2
a
a
Para facilitar o calculo, faz-se a mudanca de variavel x() = a + h. Assim, enquanto x
percorre o intervalo [a, b], percorre o intervalo [0, 2] e dx = h d. Desta maneira,

 2
 b
2 f (a)
p2 (x) dx =
f (a) + f (a) + ( 1)
hd
2
a
0
h
[f (a) + 4 f (m) + f (b)]
(9.12)
=
3
de onde a f
ormula de Simpson pode ser escrita como




 b
ba
a+b
h
f (x) dx [f (a) + 4 f (m) + f (b)] =
f (a) + 4f
+ f (b)
3
6
2
a

(9.13)

a qual e exata para polin


omios de grau n 2 (conforme visto na secao anterior) e, inesperadamente,
tambem para n 3. O erro associado `a regra de Simpson e

1
(b a)5 f (4) (),
90

a<<b

(9.14)

Usando a mesma estrategia da regra composta uniforme do trapezio, podemos obter a regra
composta uniforme de Simpson, para um n
umero n par 1 de subintervalos. Nesse caso, temos
 x2
 x4
 xn
 b
f (x) dx =
f (x) dx +
f (x) dx + . . . +
f (x) dx
a

x0



x2

n
2

x2i

i=1

x2i2

xn2

f (x) dx

de onde, aplicando a regra de Simpson a cada um dos subintervalos, obtemos

n
n
 b
2
2


h
f (x) dx f (x0 ) + 2
f (x2i2 ) + 4
f (x2i1 ) + f (xn )
S(f, h) =
3
a
i=2
i=1
O erro associado e

1
(b a)h4 f (4) (),
180

Exemplo 9.5 Calcule a integral


A=

a<<b

(9.15)

(9.16)

x2 + 3x dx

usando a regra de Simpson.


Solu
c
ao: Usando a f
ormula (9.13), temos
A=

21
[4 + 4 6, 75 + 10] = 6, 8333
6

e o erro e nulo, comparado com o valor da integral denida (= 6, 8333). Note que, para a func
ao
ao da integral pela regra de Simpson deve ser exata.
em quest
ao, f (4) = 0 e, portanto, a aproximac
1E

necess
aria essa restric
ao devido `
a forma como a regra de Simpson foi definida.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

166

Introduca
o ao C
alculo Numerico

Integrac
ao Numerica

Exemplo 9.6 Use a f


ormula de Simpson para encontrar a a
rea sob a curva y = f (x) que passa
sob os tres pontos (0, 2), (1, 3) e (2, 2).
Como n = 1 e h = 1, calcula-se
area S(f, h) =

1
16
h
[f (0) + 4 f (1) + f (2) ] = [2 + 12 + 2] =
.
3
3
3

Exemplo 9.7 O volume de um s


olido de revoluc
ao e dado por


volume =

[R(x)]2 dx,

onde o s
olido e obtido pela rotac
ao da regi
ao sob a curva y = R(x), a x b, em torno do eixo
x. Use a f
ormula de Simpson para aproximar o volume do s
olido de revoluc
ao, onde o raio R(x)
da posica
o ao longo do eixo x e dado na tabela
x
R(x)

0
6, 2

1
5, 8

2
4, 0

3
4, 6

4
5, 0

5
7, 6

6
8, 2

Usando a regra de Simpson com n = 3 e h = 1, o valor aproximado da integral e calculado por


volume

9.2.4

2
2
2
2
2
2
2
[f (x0 ) + 4 (f (x1 ) + f (x3 ) + f (x5 ) ) + 2 (f (x2 ) + f (x4 ) ) + f (x6 ) ]
3

[(6, 2)2 + 4 ((5, 8)2 + (4, 6)2 + (7, 6)2 ) + 2 ((4, 0)2 + (5, 0)2 ) + (8, 2)2 ]

[38, 44 + 4 (33, 64 + 21, 16 + 57, 76) + 2 (16, 00 + 25, 00) + 67, 24]

3
668, 03

Regra de Simpson com exatid


ao crescente

Esta regra calcula uma aproximacao por Simpson com uma combinacao linear de f
ormulas dos
trapezios, {T (J)}. Para J 1, divide-se o intervalo [a, b] em 2 n = 2J subintervalos de igual
e usa-se os pontos a = x0 < x1 < . . . < x2 n = b, xk = a + h k para k =
espacamento h = ba
2J
0, 1, . . . , 2 n. A regra dos trapezios T (f, h) e T (f, 2 h) para espacamentos h e 2 h, respectivamente,
obedece a relacao
n

T (f, 2 h)
+h
f (x2 k1 ).
(9.17)
T (f, h) =
2
k=1

h
2 (f (a)

+ f (b)), ent
ao para qualquer inteiro positivo J dene-se T (J) = T (f, h)
Denindo T (0) =
e T (J 1) = T (f, 2 h), o que permite escrever a f
ormula acima como
n

T (J 1)
+h
T (J) =
f (x2 k1 )
2

para

J = 1, 2, . . .

(9.18)

k=1

Assim, a regra de Simpson S(J) = S(f, h) para 2J subintervalos e obtida de T (J) e de T (J 1)


pela f
ormula
4 T (J) T (J 1)
para
J 1
(9.19)
S(J) =
3
Exemplo 9.8 Use a regra de Simpson com exatid
ao crescente para calcular aproximac
oes S(1),
S(2) e S(3) para

1

dx
x

Solu
c
ao: Neste caso, a = 1, b = 5 e f (x) = x1 .
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

167

Introduca
o ao C
alculo Numerico

Integrac
ao Numerica

1. C
alculo de S(1): Para calcular a primeira aproximac
ao, S(1), e preciso conhecer T (0) e
T (1):
(a) C
alculo de T (0): se J = 0, conseq
uentemente h = b a = 4. Logo,
T (0) = 4

1
1

+
2

1
5

= 2, 4

(b) C
alculo de T (1): se J = 1, conseq
uentemente n = 1 e h =
x1 = a + h = 3,

ba
21

= 2. Logo, com

2, 4
T (0)
1
+ h f (x1 ) =
+ 2 = 1, 866666
2
2
3

T (1) =
Assim,

S(1) =

4 T (1) T (0)
= 1, 688888
3

2. C
alculo de S(2): como T (1) j
a e conhecido, calcula-se apenas T (2) com n = 2, h =
x1 = a + h = 2 e x3 = a + 3 h = 4:

ba
22

= 1,

T (2) =
=
=
de forma que
S(2) =

T (1) 
+
[f (x1 ) + f (x3 )]
2
k=1


1 1
1, 866666
+
+
2
2 4
1, 683333
4 T (2) T (1)
= 1, 622222
3

3. C
alculo de S(3): como T (2) j
a e conhecido, calcula-se T (3) com n = 4, h =
x1 = a + h = 1, 5, x3 = a + 3 h = 2, 5, x5 = a + 5 h = 3, 5 e x7 = a + 7 h = 4, 5:

ba
23

= 0, 5,

T (3) =
=
=

T (2) 
+
[f (x1 ) + f (x3 ) + f (x5 ) + f (x7 )]
2
k=1


1
1
1
1
1, 683333
+ 0, 5
+
+
+
2
1, 5 2, 5 3, 5 4, 5
1, 628968

ou seja,
S(3) =

9.2.5

4 T (3) T (2)
= 1, 610846
3

Mudan
ca do intervalo de integra
c
ao

Algumas regras de integracao sao denidas em termos de um intervalo de integracao xo por


exemplo, [1, 1]. Caso se deseje utilizar uma dessas regras para se resolver a integral (9.1), pode-se
proceder a uma mudanca linear de vari
aveis.
Suponha uma regra de integracao numerica dada por

c

f (t) dt

n


Ai f (ti )

(9.20)

i=0

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

168

Introduca
o ao C
alculo Numerico

Integrac
ao Numerica

a qual e exata para polin


omios de grau igual ou inferior a m. Considere, agora, que o intervalo de
integracao desejado e [a, b]; para usarmos a formula (9.20), devemos denir uma funcao (t) que
associe c a a e d a b. Essa funcao pode ser dada por
(t) =

ad bc
ba
t+
,
dc
dc

ctd

(9.21)

Escrevendo, agora, x = (t), temos dx =  (t) dt = (b a)(d c)1 dt, de onde escrevemos a
integral (9.1) como


ba
dc

f (x) dx

ba
dc

de onde


a

1 (b)=d

f ((t)) dt
1 (a)=c
n


Ai f ((ti ))

i=0

ba 
f (x) dx
Ai f
dc
n

i=0

ba
ad bc
ti +
dc
dc


(9.22)

A funcao de transformacao (t) deve ser linear de forma que f ((t)) seja polinomial e de mesmo
grau que f .

9.2.6

Quadratura Gaussiana

As regras de integracao vistas nas secoes anteriores sao todas baseadas na determinacao de
coecientes Ai tal que a aproximacao da funcao integranda f e exata para polin
omios de grau
igual ou inferior a n.
No entanto, e possvel escolher outros nos que levem a uma reducao no volume de c
alculo
ao a forma de Newton-Cotes (9.5) pode ser
necessario. Por exemplo, se Ai = c, 0 i n, ent
escrita como
 b
n

f (x) dx c
f (xi)
(9.23)
a

i=0

o que elimina n multiplicacoes no processo de integracao numerica.


As formas de quadratura de Chebyshev sao um exemplo da equacao (9.23); elas existem apenas
para n = 0, 1, 2, 3, 4, 5, 6 e 8. Outras formas de quadratura existem, como, por exemplo, as de
Hermite e as de Gauss.
A regra de integracao de Gauss e expressa para o caso geral como


f (x)w(x) dx

n


Ai f (xi )

(9.24)

i=0

onde w e uma funcao positiva de ponderacao. Assumindo que (9.24) e exata para qualquer funcao
polinomial de grau menor ou igual a n, isso nos leva a determinar os coecientes Ai como

Ai =

w(x)
a

n

x xj
dx
x
i xj
j=0
j=i

Carl Friedrich Gauss (1777-1855) mostrou que e possvel determinar-se esses coecientes de tal
forma que a aproximacao para f seja exata para polin
omios de grau igual ou inferior a 2n + 1,
mas com apenas n avaliacoes.
As f
ormulas de Gauss para a integracao de f sao exatas para polin
omios de grau menor
ou igual a 2 n + 1, de forma que a determinacao dos pontos x0 , x1 , . . . , xn em que e necessario

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

169

Introduca
o ao C
alculo Numerico

Integrac
ao Numerica

conhecer o valor de f (x) sera funcao do grau do polin


omio interpolador e da f
ormula especca a
ser considerada. Estas formulas s
ao do tipo


f (x) dx = w0 f (x0 ) + w1 f (x1 ) + . . . + wn f (xn )

(9.25)

Para construir a formula da quadratura gaussiana para n = 1 e necessario determinar w0 , w1 ,


x0 e x1 tais que
 b
f (x) dx = w0 f (x0 ) + w1 f (x1 )
(9.26)
a

seja exata para polin


omios de grau menor ou igual a 3.
Para simplicar os c
alculos, determina-se esta formula considerando [a, b] = [1, 1]. No caso
de um intervalo [a, b] generico efetua-se a mudanca de variaveis: para t [1, 1] corresponde
x [a, b] onde
ba
1
e
dx =
dt
x = [a + b + t (b a)]
2
2
de forma que
 b

ba 1
f (x) dx =
F (t) dt
(9.27)
2
a
1
onde F (t) = f (x(t)).
Dizer que a f
ormula e exata para polin
omios de grau menor ou igual a 3 equivale a dizer que
a f
ormula e exata para
g(t) 1,

g(t) t2 e

g(t) t,

g(t) t3

ou seja


1 dt

= w0 g(t0 ) + w1 g(t1 ) = w0 + w1 = 2

t dt

= w0 g(t0 ) + w1 g(t1 ) = w0 t0 + w1 t1 = 0

1
 1

1
1

1
 1

t2 dt

= w0 g(t0 ) + w1 g(t1 ) = w0 t20 + w1 t21 = 2/3

t3 dt

= w0 g(t0 ) + w1 g(t1 ) = w0 t30 + w1 t31 = 0

Desta forma, obtem-se o seguinte sistema nao linear:

=
w0 + w1

w0 t0 + w1 t1 =
w0 t20 + w1 t21 =

w0 t30 + w1 t31 =

2
0
2/3
0

(9.28)

cuja solucao fornece


t0 =

3
3

t1 =

3
3

w0 = w1 = 1,

Assim, a formula gaussiana para n = 1 e


 
 
3
3
+F
F (t) dt = F
3
3
1

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

(9.29)

170

Introduca
o ao C
alculo Numerico

Integrac
ao Numerica

O mesmo procedimento pode ser usado para determinar a formula geral (9.25). Supondo que
F (t) represente os polinomios especiais tk para k = 0, 1, . . . , 2n + 1, observa-se que



k

t dt =
1

0
2
k+1

se k e mpar
(9.30)

se k e par

e a solucao do sistema n
ao linear que se origina destas equacoes e bastante complicada. Usando
ent
ao a teoria dos polin
omios ortogonais, pode ser visto que os tk sao as razes de polin
omios de
Legendre2 e os coecientes wk devem ser obtidos pela solucao do sistema de equacoes. Alguns
dos valores de tk e wk sao mostrados na tabela 9.3; para quadraturas de maior ordem, pode-se
recorrer aos valores tabelados em varios livros de referencia.
n
1

tk
0, 57735027
0, 57735027
0, 77459667
0, 00000000
0, 77459667
0, 86113631
0, 33998104
0, 86113631
0, 33998104
0, 90617985
0, 53846931
0, 00000000
0, 90617985
0, 53846931

wk
1, 00000000
1, 00000000
0, 55555555
0, 88888888
0, 55555555
0, 34785485
0, 65214515
0, 34785485
0, 65214515
0, 23692689
0, 47862867
0, 56888889
0, 23692689
0, 47862867

k
0
1
0
1
2
0
1
2
3
0
1
2
3
4

Tabela 9.3: Pesos e n


os da quadratura Gaussiana, para n = 1, 2, 3, 4.
O erro associado `a quadratura Gaussiana e dado pela f
ormula
f (2n) ()
(2n)!

q (x)w(x) dx,
a

q(x) =

n1


(x xi ), a < < b

(9.31)

i=0

O algoritmo 9.2.1 faz uso da tecnica de troca de intervalos e da simetria entre os n


os e
coecientes, a m de se calcular a integral (9.1) atraves da quadratura Gaussiana para n = 4.
Na pr
atica, a execucao do algoritmo que calcule a integral (9.1) por quadratura Gaussiana sempre
incorrer
a em erros de ponto-utuante, principalmente se os valores dos n
os e coecientes nao forem
utilizados com uma precis
ao adequada, como pode ser visto no exemplo a seguir.
2 Os

polin
omios de Legendre s
ao definidos pela seguinte f
ormula de recorrencia:
p0 (x)

p1 (x)

pm+1 (x)

1
{(2 m + 1) x pm (x) m pm1 (x)} ,
m+1

m = 1, 2, . . .

Suas razes s
ao todas reais e distintas e situam-se no intervalo [1, 1]. Estas razes est
ao simetricamente situadas
com respeito `
a origem e se m
e mpar, uma raiz de pm (x)
e sempre x = 0.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

171

Introduca
o ao C
alculo Numerico

Integrac
ao Numerica

Algoritmo 9.2.1 Quadratura Gaussiana de 4 pontos


proc quadratura gaussiana 4(input: a, b, f ; output: S)
x0 0
x1 0, 5384 6931 0105 683
x2 0, 9061 7984 5938 664
w0 0, 5688 8888 8888 889
w1 0, 4786 2867 0499 366
w2 0, 2369 2688 5056 189
u ((b a)x0 + a + b)/2
S w0 f (u)
for i = 1, 2 do
u ((b a)xi + a + b)/2
v ((b a)xi + a + b)/2
S S + wi (f (u) + f (v))
endfor
S (b a)S/2
endproc
Exemplo 9.9 Calcule a integral

A=

x2 + 3x dx

usando a quadratura de Gauss, com n = 4.


Solu
c
ao: Usando o algoritmo 9.2.1, temos
A = 6, 833333335
e o erro e igual a 2 109 , comparado com o valor da integral denida (= 6, 8333).
Exemplo 9.10 Integre f (t) = t4 +1 no intervalo (1, 1) usando quadratura gaussiana para n = 2.


I=
1

(t4 + 1) dt = w0 f (t0 ) + w1 f (t1 ) + w2 f (t2 )

Da tabela 9.3, sabe-se que


t0 = 0, 77459667

w0 = 0, 55555555

t1 = 0, 00000000
t2 = 0, 77459667

w1 = 0, 88888888
w2 = 0, 55555555

Logo,
I



= 0, 55555556 (0, 77459667)4 + 1


+ 0, 88888889 (0, 00000000)4 + 1


+ 0, 55555556 (0, 77459667)4 + 1
= 2, 4

Sugestao: Calcule esta integral com o metodo de Simpson e compare os resultados.


Exemplo 9.11 Use quadratura gaussiana com tres pontos para aproximar a integral

1

dx
x

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

172

Introduca
o ao C
alculo Numerico

Integrac
ao Numerica

Como o intervalo e I = [1, 5], e preciso fazer mudanca de vari


avel. Por isto, calcula-se a
integral desejada como
 5

dx
ba 1
=
F (t) dt
x
2
1
1
com a mudanca de vari
avel




51
ba
a+b
5+1
=t
= 2t+3
x=t
+
+
2
2
2
2

1

dx
x

51
[w0 F (t0 ) + w1 F (t1 ) + w2 F (t2 )]
2


51
1
1
1

0, 55555556
+ 0, 88888889
+ 0, 55555556
2
2 t0 + 3
2 t1 + 3
2 t2 + 3
1, 602694

onde t0 = 0, 77459667, t1 = 0, 00000000 e t2 = 0, 77459667.

9.3

Integra
c
ao de fun
c
oes mal comportadas

Funcoes mal comportadas (ou mal condicionadas) s


ao aquelas que possuem algum tipo de caracterstica especial e que, portanto, requerem cuidados especiais quando se quer integr
a-las.
Exemplo 9.12 Calcule a integral de


1
0

ex
d x.
x

Solu
c
ao:Como esta func
ao tem uma singularidade, e preciso fazer uma mudanca de vari
avel que
a elimine. Neste caso, pode-se fazer
x = u2

dx = 2u du

de forma que

0

ex
dx
x

= 2
0


= 2

eu
udu
u
2

eu d u

Como o integrando agora e uma func


ao bem comportada, pode-se escolher um dos metodos
estudados para calcular esta u
ltima integral.
Exemplo 9.13 Calcule


sen x dx

Solu
c
ao:Como o integrando possui uma tangente vertical, a velocidade de integrac
ao ca muito
lenta. Se o metodo escolhido fosse trapezios, por exemplo, seriam necess
arias mais de 500 subdivis
oes
do intervalo de integrac
ao [0, 1] para que se obtivesse quatro casas decimais repetidas.
Neste caso, tambem e possvel fazer a mudanca de vari
avel,
sen x = u2

2u du
dx =
,
1 u4

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

173

Introduca
o ao C
alculo Numerico

de maneira que

Integrac
ao Numerica

sen x dx = 2

sen 1

u2
du.
1 u4

Outra alternativa seria utilizar a func


ao inversa para resolver o problema:


sen x dx =

9.4

0,3

sen x dx + 0, 3 sen 0, 3

sen 0,3

arcsin y 2 dy

Intervalos de integra
c
ao infinitos

Quando um ou os dois limites de integracao de uma funcao sao , e necessario combinar o


processo de integracao numerica com uma manipulacao algebrica adequada da funcao integranda,
ou, alternativamente, determinar um valor que aproxime a regi
ao abaixo da curva da funcao a
partir de um valor de x (ver [2]).
Considere a integral

1
dx
(9.32)
x
x + e + x2
b
onde pode-se observar que e 0. Uma alternativa para se calcular (9.32) e notar que a curva
da funcao
1
x + x2
aproxima relativamente bem a funcao integranda em (9.32), como pode-se ver na gura 9.3. Nesse
caso, pode-se escrever


1
1
dx
<
dx = ln b + ln(1 + b).
(9.33)
x
2
x+e +x
x + x2
b
b
a que esse valor poderia ser
Uma alternativa seria substiturmos ex em (9.32) por eb , j
considerado n
ao t
ao desprezvel. Nesse caso, teramos




1
2b+ 1
1
b 1) 2 arctan(

)
dx
=
csgn(
4
e
(9.34)
b
2
b
x+e +x
4e 1
(4 + eb ) eb
b
1
e bastante complicado, e, algumas vezes,
Note que, nesse caso, calcular a antiderivada de x+eb
+x2
a aproximacao obtida com (9.33) e suciente, como mostra o exemplo abaixo.

Exemplo 9.14 Seja b = 10 em (9.32). Calculando a aproximac


ao dessa integral atraves de
(9.33), obtemos o valor 0, 095310180; utilizando (9.34), o valor obtido e .09531016670. Note que
ao justicar o uso da
o erro relativo entre ambas aproximac
oes e da ordem de 105 , o que pode n
segunda aproximaca
o.

9.5

Exerccios

Exerccio 9.1 Calcule a integral de f (x) = 6 x + 5 no intervalo [1, 9] com a f


ormula dos
trapezios considerando h = 1 e depois delimite o erro de truncamento para este caso.
Exerccio 9.2 Determine h de tal forma que a regra dos trapezios forneca o valor de


ex dx

com um erro de truncamento menor do que 104 .

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

174

Introduca
o ao C
alculo Numerico

Integrac
ao Numerica

Exerccio 9.3 Calcule

10

log x dx
6

utilizando a f
ormula de Simpson para 8 subintervalos e delimite o erro de truncamento.
Exerccio 9.4 Encontre n e h tal que o erro para a f
ormula de Simpson seja menor do que
5 109 quando se quer aproximar
 7
dx
x
2
Depois, faca o mesmo para a f
ormula dos trapezios e compare os resultados.
Exerccio 9.5 Calcular uma aproximac
ao de
 1
0

1
dx
1 + x2

pela regra de Simpson com exatid


ao crescente com no mnimo 5 DIGSE.
Exerccio 9.6 Usando quadratura de Gauss, calcule:


x2 dx

com 4 pontos

Exerccio 9.7 Usando quadratura de Gauss, calcule:




10

ex dx

com 2 pontos

Depois, calcule o erro exato (diferenca entre o valor da integral calculada com as regras do
C
alculo e o valor obtido por quadratura) e use este valor para estimar o n
umero mnimo de pontos
necess
arios para calcular esta integral com a regra dos trapezios.
Exerccio 9.8 Sugira uma mudanca de vari
avel adequada para o c
alculo da integral:
 1
sen x

dx.
1 x2
0
Depois, encontre uma aproximac
ao para o seu valor.
Exerccio 9.9 Utilize a regra de Simpson com exatid
ao crescente para calcular
 1
x
dx
4

x2
0

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

175

Introduca
o ao C
alculo Numerico

Integrac
ao Numerica

Figura 9.2: A regra do trapezio composta: (a) subintervalos de qualquer tamanho, (b) subintervalos
de tamanhos iguais.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

176

Introduca
o ao C
alculo Numerico

Figura 9.3: Gr
aco de

Integrac
ao Numerica

1
x+ex +x2

() e

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

1
x+x2

().

177

Captulo 10

Solu
c
ao Num
erica de Equa
c
oes
Diferenciais Ordin
arias
10.1

Introdu
c
ao

Equacoes diferenciais aparecem com grande freq


uencia em modelos que descrevem quantitativamente fenomenos em diversas areas, como por exemplo mecanica dos uidos, uxo de calor,
vibracoes, reacoes qumicas e nucleares, economia, biologia, etc. A motivacao para a construcao
dos primeiros computadores foi ocasionada, em grande parte, pela necessidade de serem calculadas
trajetorias balsticas de uma forma precisa e rapida. Hoje em dia, os computadores est
ao sendo
muito empregados na solucao de equacoes relacionadas com os foguetes balsticos, com a teoria
de satelites articiais, com o estudo de redes eletricas, curvaturas de vigas, estabilidade de avi
oes,
teoria de vibracoes e outras aplicacoes.
Exemplo 10.1 Considere a equac
ao
dy
= 1 et .
dt

(10.1)

Esta e uma equaca


o diferencial porque envolve a derivada dd yt de y = y(t). Apenas a vari
avel
independente t aparece do lado direito da equac
ao (10.1). Portanto, uma soluc
ao e a antiderivada
de 1 et e as regras de integraca
o podem ser empregadas para determinar y(t):
y(t) = t + et + c,

(10.2)

onde c e a constante de integraca


o. Todas as func
oes em (10.2) s
ao soluc
oes de (10.1) porque
satisfazem a condic
ao y  (t) = 1 et . Na verdade, elas formam uma famlia de curvas.1
Exemplo 10.2 Considere a temperatura y(t) de um objeto sob processo de resfriamento. A taxa
de variac
ao de temperatura do corpo est
a relacionada com a diferenca de temperatura entre a sua
temperatura e a do meio que o cerca. Este fen
omeno pode ser expresso pela equac
ao diferencial
dy
= k (y A)
dt
onde A e a temperatura do meio, y e a temperatura do objeto no tempo t e k e uma constante
a negativo quando a temperatura
positiva. O sinal negativo e necess
ario para garantir que dd yt ser
do corpo superar a temperatura do meio.
1 A varia
c
ao do valor de c representa um movimento da curva soluc
ao para cima ou para baixo e e possvel
encontrar uma determinada curva que passe pelos pontos desejados.

178

Introduca
o ao C
alculo Numerico

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

Se a temperatura do objeto e conhecida no tempo t = 0, diz-se que esta e uma condic


ao inicial
e inclui-se esta informaca
o na formulac
ao do problema, que ca:
dy
= k (y A) com y(0) = y0 ,
dt
Pode-se usar a tecnica de separac
ao de vari
aveis para encontrar a soluc
ao
y = A + (y0 A) ek t .
ao ser
a diferente, como mostra a gura. Pode-se observar
Para cada escolha de y0 a curva soluc
que, a
` medida que o tempo passa, a temperatura do objeto se aproxima da temperatura do meio.
ao o objeto est
a sendo aquecido, e n
ao resfriado.
Se y0 < A ent
Uma equacao envolvendo uma relacao entre uma funcao desconhecida e uma ou mais de suas
derivadas e denominada equacao diferencial. Assim, uma equacao diferencial ordin
aria (que tem
apenas uma variavel independente) de ordem n tem a forma


y (n) = f (x, y, y  , y . . . , y (n1) ).

(10.3)

Sua solucao e uma funcao (x) n vezes diferenciavel em um intervalo determinado e que satisfaz
(10.3), isto e,

(10.4)
(n) = f (x, ,  , . . . , (n1) ).
Exemplo 10.3
dy
= x + y equac
ao diferencial ordin
aria
dx
2u 2u
+ 2 = 0 equac
ao diferencial parcial
x2
y
Diz-se que a ordem de uma equac
ao diferencial e a ordem da mais alta derivada que aparece
na equac
ao. Uma equaca
o diferencial e linear se a func
ao e suas derivadas aparecem linearmente
na equaca
o.
Exemplo 10.4
x y = x y


y + (1 y ) y + y = 0

equac
ao diferencial linear
equac
ao diferencial n
ao linear

Se, dada uma equac


ao de ordem m, a func
ao, assim como as suas derivadas ate ordem m 1
s
ao especicadas em um mesmo ponto, ent
ao tem-se um problema de valor inicial PVI. Se, em
problemas envolvendo equac
oes diferenciais ordin
arias de ordem m 2, as m condico
es fornecidas
para busca da soluc
ao u
nica n
ao s
ao todas dadas em um mesmo ponto, ent
ao tem-se um problema
de valor de contorno PVC.
Exemplo 10.5
 
y (x) = y
e um PVI
y(0) = 1
(4)
y (x) + k y(x) = q
y(0) = y  (0) = 0


y(L) = y (L) = 0

e um PVC

Embora existam v
arias tecnicas para solucionar, de forma aproximada, algumas classes selecionadas
de equacoes diferenciais, a grande maioria das equacoes encontradas na pr
atica n
ao podem ser
solucionadas analiticamente. N
ao existe, por exemplo, nenhuma expressao fechada para a
solucao de y  = x3 + y 2 com y(0) = 0. Neste caso, os recursos disponveis sao os metodos
numericos, que aproximam a solucao desejada.
Um procedimento numerico para calcular a solucao de um dado PVI e um algoritmo para
calcular os valores aproximados y0 , y1 , y2 , . . . , yn , . . . da solucao y = (t) em um conjunto de
pontos t0 < t1 < t2 < . . . < tn . . ., conforme a gura 10.1.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

179

Introduca
o ao C
alculo Numerico

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

Figura 10.1: Aproximac


ao da soluc
ao em um PVI.

10.2

Problema de Valor Inicial

Suponha o seguinte problema de valor inicial (PVI)



x = f (t, x)
x(t0 ) = x0
onde x e uma funcao de t, com x =
exemplo,


d
dt x(t).

(10.5)

A funcao f d
a a inclinacao de x no ponto t. Por

x = tan(t + 3)
x(1) = 1

(10.6)

A partir da equacao (10.5), pretende-se determinar x em um intervalo contendo o ponto inicial


t0 . Como a solucao analtica do PVI (10.6) e x(t) = sec(t+3), podemos ver que /2 < t+3 < /2,
j
a que sec t e indenida para t = /2.
Esse exemplo e muito particular, pois a sua solucao analtica nos permite calcular valores para
x. Tipicamente, no entanto, problemas da forma (10.5) n
ao tem soluc
ao analtica, e metodos
numericos devem ser utilizados para obter-se uma solucao aproximada, como nos exemplos a
seguir:
ao tem solucao elementar;
1. A equacao y  = x2 + y 2 n
2. A equacao y  a(y  )2 + by = 0, a qual descreve vibracoes com amortecimento proporcional
ao quadrado da velocidade, n
ao pode ser solucionada de forma analtica;
3. Um problema de grande interesse historico a solucao das equacoes diferenciais que governam
o movimento de tres corpos sujeitos a`s suas proprias atracoes gravitacionais tambem nao
tem solucao analtica.
Em outras situacoes, e mais simples recorrer-se a uma solucao numerica de um problema desse
tipo, utilizando-a para obter valores de uma solucao particular, como em
aveis, pode ser resolvida em termos
1. A equacao y  = xy, sujeita a uma transformacao de vari
de funcoes de Bessel;
2. Uma tabela de integrais elpticas pode ser usada para resolver equacoes do tipo  = sen.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

180

Introduca
o ao C
alculo Numerico

10.2.1

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

Exist
encia da Solu
c
ao

Cabe, agora, uma pergunta: ser


a que todo e qualquer problema na forma (10.5) apresenta solucao?
A resposta e n
ao e, mesmo assim, dependendo de certas consideracoes feitas a respeito de f , a
solucao, se existir, s
o sera considerada na vizinhanca de t0 . Por exemplo, considere

x = 1 + x2
(10.7)
x(0) = 0
A inclinacao em t = 0 e 1 (i.e. x (0) = 1). Como a inclinacao e positiva, podemos dizer que x(t)
esta crescendo perto de t = 0; logo, tambem 1 + x2 cresce. Ora, como x e x crescem, para algum
valor de t n
ao haver
a solucao, qual seja, x(t) = +; no entanto, o problema (10.7) apresenta
como solucao analtica x(t) = tan t.
Vejamos entao alguns teoremas que garantem a existencia e a unicidade da solucao (as provas
dos mesmos podem ser vericadas em [10]).
Teorema 10.2.1 Se f e contnua em um ret
angulo R centrado em (t0 , x0 ), R = {(t, x) : | tt0 |
, | x x0 | }, ent
ao o problema (10.5) tem uma soluc
ao x(t) para | t t0 | min(, /M ),
onde M e o m
aximo de | f (x, t) | no ret
angulo R.
Teorema 10.2.2 Se f e f
ao contnuas no ret
angulo R, ent
ao o problema (10.5) tem uma
x s
soluca
o u
nica no intervalo | t t0 | < min(, /M ).
Teorema 10.2.3 Se f e contnua na tira a t b, < x < e satisfaz a condic
ao de
Lipschitz em x,
| f (t, x1 ) f (t, x2 | L| x1 x2 |
ent
ao o problema (10.5) tem uma soluc
ao u
nica em [a, b].

10.2.2

Erros na solu
c
ao num
erica

Ao se aproximar numericamente a solucao de uma equacao diferencial atraves de um processo


de integracao numerica uma serie de erros surgem, os quais podem ser classicados como:
Erro de truncamento local (ETL): e o erro existente em uma iteracao da integracao numerica
ao substituirmos um processo innito por um nito;
Erro de arredondamento local (EAL): e causado pela precisao nita do computador em uso;
Erro de truncamento global (ETG): e a acumulacao dos ETL ao longo do processo de integracao; porem, ele existiria mesmo que se utilizasse uma aritmetica de precis
ao innita, pois
e inerente ao metodo e independente do computador utilizado;
Erro de arredondamento global (EAG): e a acumulacao de todos os EAL;
Erro total (ETT): e a soma dos ETG e EAG.
A seguir, apresentaremos alguns dos diferentes metodos numericos para se obter uma aproxima
ccao para a solucao de (10.5).

10.2.3

M
etodo da S
erie de Taylor

Usualmente, um metodo numerico para a solucao de uma equacao diferencial produz um conjunto
de valores; em nosso caso, para o problema (10.5), teramos os pares (t0 , x0 ), (t1 , x1 ), . . ., (tm , xm ).
Isso nos mostra que a solucao numerica e sempre discreta; obviamente, uma expressao analtica,
contnua, pode ser obtida atraves da interpolacao de uma spline ou outra funcao aos pontos
calculados (ver Captulo 7).

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

181

Introduca
o ao C
alculo Numerico

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

Mais uma vez, consideremos o problema (10.5); f e uma funcao de duas vari
aveis, e (t0 , x0 )
um ponto u
nico atraves do qual passa a curva solucao. Essa soluc
ao e uma funcao x(t) tal que
dx(t)
= f (t, x(t))t,
dt

| t t0 |
1

com x(t0 ) = x0 .
O metodo da serie de Taylor consiste em obtermos uma expansao em x de f (x, t), de acordo com
a serie de Taylor, ate um determinado n
umero de termos; uma vez obtida a expansao, integramo-la
num intervalo [t0 , t1 ] e [x0 , x1 ]. Considere, entao, o problema

x = cos t senx + t2
(10.8)
x(1) = 3
Escrevendo a serie de Taylor para x, temos
x(t + h) = x(t) + hx (t) +

h2 
h3
h4
x (t) + x (t) + x(4) (t) + . . .
2!
3!
4!

de onde, para o problema (10.8), vem2


x
x

=
=

sent x cos x + 2t
cos t x cos x + (x )2 senx + 2

(10.9)
(10.10)

x(4)

sent x cos x + 3x x senx + (x )3 cos x

(10.11)

Obviamente, cada termo de ordem superior a 4 ser


a cada vez mais extenso; no entanto, pode-se
observar que (10.11) e escrita em termos de (10.10) a qual, por sua vez, e escrita em termos de
(10.9) a qual e escrita, tambem, em termos de x , dada no problema.
Utilizando apenas os termos acima, dizemos que o metodo de Taylor correspondente e de
quarta ordem (de forma generica, o metodo de Taylor de n-esima ordem inclui todos os termos ate
hn (n)
(t)). Os termos descartados (ordem superior a n) constituem o ETL. Na serie de Taylor, o
n! x
ETL e dado por
1
hn+1 x(n+1) (t + h), 0 < < 1
(10.12)
ET Ln =
(n + 1)!
O processo de integracao consiste em se avaliar a serie truncada de Taylor em diferentes pontos
(t, x). Deve-se xar o intervalo de integrac
ao em t, i.e. t0 t t1 , bem como o passo de integra0
c
ao, h, tal que o n
umero de iteracoes sera t1 t
, pode-se dizer que o ETG e, no mnimo, de
h . Da
ordem O(hn ).
Pode-se armar que o metodo de Taylor e extremamente dependente do problema a ser
resolvido, pois e necessario escrever explicitamente as derivadas (parciais) de x(t). Dessa forma,
o algoritmo mostrado a seguir e apenas um modelo para o metodo de Taylor de quarta ordem, o
qual deve ser adaptado para cada problema especco.
2 Note

que ao diferenciar termos como senx em relac


ao a t, devemos ter

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

dsen x(t)
,
dt

aplicando a regra da cadeia.

182

Introduca
o ao C
alculo Numerico

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

Algoritmo 10.2.1 Metodo de Taylor de 4a Ordem


proc taylor 4(input: h, t0 , t1 , x0 ; output: x)
0|
n | t1| t
h|
t t0
x x0
for k 0, 1, . . . , n do
% Inclua as derivadas de f (x, t) nas linhas abaixo
x1 . . .
x2 . . .
x3 . . .
x4 . . . 



x x + h x1 + h2 x2 + h3 x3 + h4 x4
tt+h
endfor
endproc
Note que o algoritmo 10.2.1 avalia a expans
ao de Taylor utilizando um esquema de multiplicacao
aninhada, como no metodo de Horner (vide Secao 3.5). Alem disso, o erro de truncamento local
(i.e. a cada t) e da ordem de h5 . Se usarmos, por exemplo, um passo de integracao h = 102 ,
esse erro ser
a de 1010 a cada iteracao em t; e possvel, para k muito grande, que esses erros,
acumulados, contaminem o processo de integracao numerica.
10.2.3.1

Vantagens e desvantagens

O metodo de Taylor exige a existencia de derivadas parciais de f na regi


ao onde a curva solucao
passa no plano t x. Veja que esta exigencia n
ao e necessaria para a existencia de solucao. Alem
disso, cada derivada parcial deve ser individualmente codicada.
Como vantagens, o metodo e extremamente simples e, se for possvel utilizar derivadas de
maior ordem, a precis
ao do metodo e potencialmente alta.

10.2.4

M
etodo de Euler

O metodo de Euler e uma simplicacao do metodo de Taylor, e nada mais e do que um metodo
de Taylor de 1a ordem, i.e.
xt+h = x(t) + hf (t, x)
(10.13)
O metodo de Euler, o qual pode ser expresso atraves do algoritmo 10.2.2, e bastante utilizado, por
n
ao exigir mais do que e expresso na denicao de um problema do tipo (10.5), apesar de apresentar
um ETL de ordem O(h).
Cabe ressaltar que a primeira tentativa de resolucao numerica de uma equacao diferencial foi
feita por Euler, por volta de 1768 D.C.
Algoritmo 10.2.2 Metodo de Euler
proc euler(input: h, t0 , t1 , x0 ; output: x)
0|
n | t1| t
h|
t t0
x x0
for k 0, 1, . . . , n do
x x + hf (t, x)
tt+h
endfor
endproc

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

183

Introduca
o ao C
alculo Numerico

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

Exemplo 10.6 Considere o problema


y

y(0) =

1t+4y

(10.14)

(10.15)

A equac
ao (10.14) e do tipo diferencial linear de primeira ordem, sendo f
acil vericar que a
soluca
o que cumpre a condic
ao inicial (10.15) e
y = (t) =

1
3
19 4 t
t
+
e .
4
16 16

Assim, com a f
ormula de Euler e um incremento h = 0, 1 e possvel determinar um valor
aproximado para a soluc
ao em t = 0, 2 do PVI acima.
Neste caso, f (t, y) = 1 t + 4 y. Para usar a aproximac
ao de Euler, calcula-se inicialmente
f0 = f (0, 1) = 5. Ent
ao:
y1

= y0 + h f (0, 1)
= 1 + (0, 1) (5)
= 1, 5,

Na etapa seguinte,
y2

=
=

y1 + h f (t1 , y1 )
1, 5 + (0, 1) f (0, 1 , 1, 5)

=
=

1, 5 + (0, 1) (6, 9)
2, 19,

Este resultado pode ser comparado com o valor exato de (0, 2) que e (0, 2) = 2, 5053299.
Logo, o erro e aproximadamente 2, 51 2, 19 = 0, 32. Um erro desta grandeza (erro percentual de
12%) n
ao e normalmente aceit
avel.
Sugest
ao: Experimente refazer seus c
alculos considerando espacamentos progressivamente menores
e observe o que acontece.

10.2.5

M
etodo de Heum

Este metodo introduz uma ideia nova para a construcao de um algoritmo para solucao do problema
de valor inicial
y  (t) =

f (t, y(t))

y(t0 ) =

y0

no intervalo [a, b].


Para obter o ponto (t1 , y1 ), usa-se o teorema fundamental do c
alculo e integra-se y  (t) sobre
[t0 , t1 ]:
 t1
y  (t) dt = y(t1 ) y(t0 ),
(10.16)
t0


onde a antiderivada de y (t) e a funcao desejada, y(t). Quando a equacao (10.16) e resolvida para
y(t1 ) o resultado e
 t1
f (t, y(t)) dt.
(10.17)
y(t1 ) = y(t0 ) +
t0

Agora, usando integracao numerica, pode-se aproximar a integral denida em (10.17). A regra
dos trapezios com passo h = t1 t0 fornece
y(t1 ) y(t0 ) +

h
[f (t0 , y(t0 )) + f (t1 , y(t1 ))] .
2

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

(10.18)
184

Introduca
o ao C
alculo Numerico

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

Note que esta formula ainda envolve o valor de y(t1 ), que n


ao e conhecido. Por isto, usa-se a
f
ormula de Euler para estimar este valor. Substituindo o valor de y(t1 ) calculado pela formula de
Euler na equacao (10.18), a f
ormula resultante e chamada de metodo de Heum:
y1 = y0 +

h
[f (t0 , y0 ) + f (t1 , y0 + h f (t0 , y0 ))] .
2

(10.19)

Este processo e repetido, gerando uma seq


uencia de pontos que aproximam a solucao y = (t).
A cada passo, o metodo de Euler e usado como um preditor e a regra dos trapezios, como uma
correcao para que o valor nal seja obtido.
A f
ormula geral para o metodo de Heum e entao dada por
pn+1
yn+1
10.2.5.1

= yn + h f (tn , yn )
h
= yn + [f (tn , yn ) + f (tn+1 , pn+1 )]
2

(10.20)
(10.21)

Erro de truncamento para o m


etodo de Heum

O erro de truncamento local para este metodo e da forma


| en |


h3
max (t)
tI
12

(10.22)

onde y = (t) e a solucao exata e o erro de truncamento global, ou seja, o erro acumulado depois
de m passos, e da forma
| En | C h2
onde C e uma constante. Portanto, quando o passo h e reduzido por um fator de 12 , pode-se
esperar que o erro de truncamento global seja reduzido por um fator de 14 .
Observaca
o: A f
ormula de Heum e um exemplo de um metodo em dois estagios: calcula-se primeiro
ormula de Euler e depois utiliza-se este resultado para calcular yn+1 com a equacao
yn + h fn pela f
(10.21). O aprimoramento da equacao (10.21) em relacao `a f
ormula de Euler esta no fato de que
o erro de truncamento local da equacao (10.21) e O(h3 ), ao passo que, para o metodo de Euler,
este e O(h2 ). Note que esta melhoria de precisao e conseguida com maior esforco computacional,
pois e preciso estimar f (t, y) duas vezes a m de passar de tn para tn+1 .
Se f (t, y) depender exclusivamente de t e nao de y, a resolucao da equacao diferencial y  =
f (t, y) se reduz `a integracao de f (t). Neste caso, o metodo de Heum reduz-se a
h
[f (tn ) + f (tn+1 )] ,
2
que e a regra dos trapezios para integracao numerica.
yn+1 = yn +

Exemplo 10.7 Use o metodo de Heum com h = 1 para aproximar y(2) para o problema
ty
2
y(0) = 1
y

O primeiro passo e calcular p1 com o metodo de Euler:


y0 + h f (t0 , y0 )
01
= 0, 5
= 1+1
2
Agora, utiliza-se efetivamente a f
ormula de Heum para calcular y1 , que e uma aproximac
ao para
a soluca
o em t = 1:
p1

y1

=
=

h
[f (t0 , y0 ) + f (t1 , p1 )]
2
1
1 + (0, 5 + 0, 25) = 0, 875
2

y0 +

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

185

Introduca
o ao C
alculo Numerico

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

Para aproximar y(2), calcula-se p2 e y2 :


p2

=
=

y1 + h f (t1 , y1 )
1 0, 875
= 0, 9375
0, 875 + 1
2

e
y2

=
=

10.2.6

h
[f (t1 , y1 ) + f (t2 , p2 )]
2
1
0, 875 + (0, 0625 + 0, 53125) = 1, 171875
2

y1 +

M
etodos de Runge-Kutta

Os metodos de Runge-Kutta sao similares ao metodo da serie de Taylor, com a vantagem de n


ao
necessitarem das derivadas de ordem superior a 1, Vejamos isso atraves do metodo de Runge-Kutta
de segunda ordem.
Escrevendo a serie de Taylor para x(t + h), vem
x(t + h) = x(t) + hx (t) +

h2 
h3
x (t) + x (t) + . . .
2!
3!

(10.23)

e, valendo-nos do PVI (10.5), temos, usando a regra de cadeia,


x (t) =


x (t) =
x (t) =

f
ft + fx x = ft + fx f
ftt + ftx f + (ft + fx f )fx + f (fxt + fxx f )

onde o subscrito indica derivacao parcial em relacao `aquela vari


avel. Da, os primeiros tres termos
de (10.23) podem ser reescritos como
1
x(t + h) = x + hf + h2 (ft + f fx ) + O(h3 )
2
1
1
= x + hf + h(f + hft + hf fx) + O(h3 )
2
2

(10.24)

onde x x(t) e f f (t, x). Podemos eliminar de (10.24) os termos envolvendo as derivadas
parciais ft , fx , usando os primeiros termos da serie de Taylor em duas variaveis,
f (t + h, x + hf ) = f + hft + hf fx + O(h2 )
de onde (10.24) pode ser reescrita como
1
1
x(t + h) = x + hf + hf (t + h, x + hf ) + O(h3 )
2
2
e, descartando O(h3 ), escrevemos
1
x(t + h) = x(t) + (F1 + F2 ),
2

F1 = hf (t, x),

F2 = hf (t + h, x + F1 )

(10.25)

a qual e a f
ormula para o metodo de Runge-Kutta de segunda ordem, tambem chamado de metodo
de Heum.
De forma geral, temos
x(t + h) = x + w1 hf + w2 hf (t + h, x + hf ) + O(h3 )

(10.26)

onde w1 , w2 , e sao par


ametros a escolher.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

186

Introduca
o ao C
alculo Numerico

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

Reescrevendo (10.26) usando a serie de Taylor em duas vari


aveis, temos
x(t + h) = x + w1 hf + w2 h(f + hft + hf fx ) + O(h3 )

(10.27)

e, comparando (10.24) com (10.27), vemos que as seguintes condicoes devem ser impostas:

w1 + w2 = 1
w2
= 12
(10.28)

w2
= 12
e, em (10.25), temos w1 = w2 = 1/2, = = 1.
10.2.6.1

M
etodo modificado de Euler

O metodo modicado de Euler e obtido com w1 = 0, w2 = 1 e = = 1/2,




1
1
x(t + h) = x(t) + F2 , F1 = hf (t, x), F2 = hf t + h, x + F1
2
2
10.2.6.2

(10.29)

M
etodo de Runge-Kutta de 4a Ordem

O metodo de Runge-Kutta de 4a ordem pode ser escrito como


x(t + h) =

10.2.6.3

F1

F2

F3

F4

1
x(t) + (F1 + 2F2 + 2F3 + F4 )
6
hf (t, x)


1
1
hf t + h, x + F1
2
2


1
1
hf t + h, x + F2
2
2
hf (t + h, x + F3 )

(10.30)

Erros do m
etodo de Runge-Kutta

Mais uma vez, nos deparamos com um ETL, o qual e da ordem de O(h5 ) para o metodo de
Runge-Kutta de 4a ordem. Vejam que no primeiro passo, um valor x
(t0 + h) e calculado; existe
tambem um valor x(t0 + h), o qual e o valor exato (e desconhecido), tal que o erro e = x x e
Ch5 , para h
1. O valor de C independe de h mas depende de t0 e de x.
Para estimar Ch5 , assumamos que C n
ao muda quando h e somado a t0 ; chamemos de u o
valor da solucao em t0 + h e de v o valor da solucao em t0 + h2 + h2 . Temos, entao,
x(t0 + h) =
x(t0 + h) =

v + Ch5
 5
h
u + 2C
2

e, subtraindo v de u, obtemos

uv
(10.31)
1 24
Com isso, e possvel estimar o ETL, calculando-se | u v |, e vericando se ele encontra-se abaixo
ao estiver, ent
ao o passo h pode
de uma toler
ancia pre-especicada (por exemplo, 105 ). Se n
ser reduzido (normalmente pela metade); caso contr
ario, se o ETL e muito menor do que aquela
tolerancia, h pode ser aumentado (multiplicando-o por dois, normalmente).
Ch5 =

10.2.6.4

Avalia
c
ao da Fun
c
ao versus Ordem do M
etodo Runge-Kutta

A tabela 10.1 mostra que, ao se aumentar a ordem do metodo, o n


umero de vezes que a funcao
deve ser avaliada cresce rapidamente. Essa e a principal razao pela qual n
ao se utilizam metodos
de Runge-Kutta de ordem muito grande.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

187

Introduca
o ao C
alculo Numerico

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

Ordem
Avaliacao

1
1

2
2

3
3

4
4

4
5

5
6

6
7

6
8

Tabela 10.1: N
umero de vezes que f (t, x) deve ser avaliada nos metodos de Runge-Kutta.
i
1
2
3
4
5
6

ai

ai b i

16
135

1
360

6656
12825
28561
56430
9
50
2
55

128
4275
2197
75240
1
50
2
55

ci
0

di1
0

1
4
3
8
12
13

1
4
3
32
1932
2197
439
216
8
27

1
1
2

di2
9
32
7200
2197

8
2

di3

di4

7296
2197
3680
513
3544
2565

845
4104
1859
4104

di5

11
40

Tabela 10.2: Coecientes do metodo Runge-Kutta-Fehlberg.


10.2.6.5

M
etodo Adaptativo de Runge-Kutta-Fehlberg

Em 1969, Fehlberg prop


os um metodo que permite ajustar o passo de integracao num metodo de
Runge-Kutta, de forma adaptativa. Esse metodo baseia-se na combinacao do metodo de RungeKutta de quarta ordem com cinco avaliacoes, com o metodo de Runge-Kutta de quinta ordem com
` primeira vista, tal metodo abreviado por RKF e desvantajoso com relacao ao
seis avaliacoes. A
metodo cl
assico; porem, ele combina as constantes envolvidas nos dois metodos de Runge-Kutta
utilizados, de forma a obter duas f
ormulas, de diferentes ordens, as quais envolvem valores de
f (t, x) avaliadas nos mesmos pontos.
O metodo RKF e de quinta ordem e obtem duas aproximacoes diferentes para a solucao, x(t+h)
ex
(t + h), dadas por
x(t + h) = x(t) +

ai Fi

(10.32)

bi Fi

(10.33)

i=1

x
(t + h) = x(t) +

Fi

i=1

= hf t + ci h, x +

i1

dij Fj ,

i = 1, 2, . . . , 6

(10.34)

j=1

onde os valores dos coecientes presentes nas equacoes (10.32)-(10.33) sao dados na tabela 10.2.
A equacao (10.32) e de quinta ordem e a equacao (10.33) e de quarta ordem. O ETL do metodo
RKF e dado pela diferenca entre ambas,
e = x(t + h) x
(t + h) =

(ai bi )Fi

(10.35)

i=1

e, portanto, e pode ser usado para se monitorar o comportamento do algoritmo.


O algoritmo adaptativo procura ajustar o valor do passo, h, sempre que o erro, e, tornar-se
maior do que uma toler
ancia , pre-especicada. Procura-se, ent
ao, uma solucao x no intervalo
(t0 ) = x0 . O passo do metodo pode ser alterado sempre que o erro exceder ao
t0 t t1 , com x
ETL (Ch5 ); nesse caso, devemos reduzir o passo (pela metade, por exemplo). Note que, sempre
que o passo for reduzido, deve-se descartar os u
ltimos valores de t e x.
Por outro lado, a escolha de h pode ter sido muito conservadora, i.e. o valor de h e pequeno
demais para aquele problema; nesse caso, podemos aumentar h, dobrando-o, sempre que C(2h)5 <

5
4 , ou seja, Ch < 128 .
O algoritmo 10.2.3 ilustra o metodo de Runge-Kutta-Fehlberg, incorporando o controle do
passo apresentado.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

188

Introduca
o ao C
alculo Numerico

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

Algoritmo 10.2.3 Metodo de Runge-Kutta-Fehlberg


proc runge kutta fehlberg(input: h, t0 , t1 , x0 , ; output: x)
% Inicializa ai , ai bi , ci , di
% de acordo com a tabela 10.2
0|
n | t1| t
h|
t t0
x x0
k0
while k n do

i1
Fi hf t + ci h, x + j=1 dij Fj , i = 1, 2, . . . , 6
x
x
6
x x + i=1 ai Fi
6
e i=1 (ai bi )Fi
t1 t
if | | | h | then
h
endif
t t
if | e | then
h h2
x x
t t
nn+1
endif

if | e | < 128
then
h 2h
endif
endwhile
endproc

10.2.7

M
etodos de passo m
ultiplo

Os metodos da serie de Taylor e de Runge-Kutta s


ao chamados de metodos de passo simples, pois
apenas x(t) e utilizado para se obter x(t + h).
Suponhamos agora que, para um conjunto de n
os t0 , t1 , . . ., tn , tenhamos calculado os valores
f (t0 , x), f (t1 , x), . . ., f (tn , x). Note que o espacamento entre os nos nao e necessariamente o
mesmo. Chamando de x(t) a solucao ao PVI (10.5), ent
ao


tn+1

x (t)dt = x(tn+1 ) x(tn )

tn

de onde podemos escrever

tn+1

x(tn+1 ) = x(tn ) +

f (t, x(t))dt

(10.36)

tn

Para aproximar a integral em (10.36), usaremos




tn+1

f (t, x(t))dt h(Afn + Bfn1 + Cfn2 + Dfn3

(10.37)

tn

onde fi f (ti , x(ti )), e A, B, C e D sao coecientes obtidos exigindo-se que (10.37) seja exata
sempre que o integrando seja um polinomio de grau menor ou igual a 3. Usando a base de Newton
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

189

Introduca
o ao C
alculo Numerico

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

para representar o espaco polinomial 3 ,

p0 (t)

p1 (t)
p2 (t)

p3 (t)

=
=
=
=

1
t
t(t + 1)
t(t + 1)(t + 2)

e tomando t0 = 0, h = 1, podemos aproximar o membro esquerdo de (10.37) por



0

pi (t)dt = Api (0) + Bpi (1) + Cpi (2) + Dpi (3),

i = 0, 1, . . . n

o que nos leva a um sistema de cinco equacoes a cinco variaveis:

1

Ap0 (0) + Bp0 (1) + Cp0 (2) + Dp0 (3) = 0 p0 (t)dt

1

Ap1 (0) + Bp1 (1) + Cp1 (2) + Dp1 (3) =


p (t)dt
0 1
.. . .
..

. .
.

1

Ap3 (0) + Bp3 (1) + Cp3 (2) + Dp3 (3) = 0 p3 (t)dt

(10.38)

Como os pi sao conhecidos, o termo independente do sistema tem seus elementos perfeitamente
determinados:
 1
1 dt = 1
0

t dt

1
2

t(t + 1) dt

5
6

t(t + 1)(t + 2) dt

9
4




1
0

Podemos, portanto, escrever o sistema (10.38) na

1
1
1
1

1 2 3

2
6
6

forma matricial

1
A
1
B
= 25

C
6
9
D
4

cuja solucao e
55
59
37
9
,B= ,C=
,D= .
24
24
24
24
Assim, podemos escrever (10.37) como
A=

tn+1

f (t, x(t))dt

tn

h
(55fn 59fn1 + 37fn2 9fn3 )
24

e, substituindo em (10.36), temos


xn+1 = xn +

h
(55fn 59fn1 + 37fn2 9fn3 )
24

(10.39)

ormula de Adams-Bashforth de 4a ordem.


com ti = t0 + ih, 0 i n, a qual e conhecida como f
De forma a aumentar a exatid
ao da solucao, a f
ormula de Adams-Bashforth e usada em conjunto
com outras formulas, de maior ordem. Por exemplo, se incluirmos o termo fn+1 na aproximacao

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

190

Introduca
o ao C
alculo Numerico

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

para a integral em (10.36), e descartarmos o termo fn4 , podemos obter, de forma semelhante, a
f
ormula de Adams-Moulton de 4a ordem,
xn+1 = xn +

h
(9fn+1 + 19fn 5fn1 + fn2 )
24

(10.40)

Veja que a equacao (10.40) n


ao pode ser usada para se obter xn+1 a partir de xn , pois fn+1
e calculada em xn+1 . Mas, se usarmos a f
ormula de Adams-Bashforth (10.39) para predizer um
valor x
n+1 para xn+1 , e usarmos (10.40) para corrigir x
n+1 (com fn+1 f (tn+1 , x
n+1 ), obtemos
um algoritmo altamente ecaz, chamado de previsor-corretor. Inicialmente, e necessario obter
valores para x1 , x2 , x3 e x4 usualmente atraves do metodo de Runge-Kutta e, entao, estimar
xn+1 atraves de (10.39), corrigindo essa estimativa com (10.40).
Exemplo 10.8 Considere o problema de valor inicial
y =
y(0) =

1t+4y
1

Determine um valor aproximado da soluc


ao y(t) com um incremento h = 0, 1 em t = 0, 4. Use as
f
ormulas de quarta ordem de Adams-Bashforth, de Adams-Moulton e de predic
ao-correc
ao.
Solu
c
ao: Como dados iniciais, usa-se os valores iniciais y1 , y2 e y3 determinados com o auxlio
do metodo de Runge-Kutta de quarta-ordem. Em seguida, calculando os valores correspondentes
de f (t, y), obtem-se
y0 = 1

f0 = 5

y1 = 1, 6089333
y2 = 2, 5050062

f1 = 7, 3357332
f2 = 10, 820025

y3 = 3, 8294145

f3 = 16, 017658

1. Usando a f
ormula de Adams-Bashforth, determina-se que y4 = 5, 7836305.
2. A f
ormula de Adams-Moulton leva a
` equac
ao
y4 = 4, 9251275 + 0, 15 y4,
de onde y4 = 5, 7942676.
3. Finalmente, usando o resultado da f
ormula de Adams-Bashforth como preditor, pode-se usar
a f
ormula (10.40) como corretor. O valor do preditor, y4 = 5, 7836305, leva a f4 = 23, 734522
e, de acordo com a equac
ao (10.39), o valor corrigido de y4 e 5, 7926721.
Considerando que o valor da soluc
ao exata no ponto t = 0, 4 seja (0, 4) = 5, 7942260, o
metodo de Adams-Bashforth, embora seja o mais simples e r
apido (j
a que envolve o uso de uma
u
nica f
ormula explcita), e o menos preciso. O uso da f
ormula de Adams-Moulton como correc
ao
aumenta o n
umero de c
alculos necess
arios, mas o metodo continua a ser explcito. Neste problema,
o erro no valor corrigido de y4 (y4 = 5, 7926721) e reduzido aproximadamente sete vezes em
relac
ao ao erro no valor do preditor (y4 = 5, 7836305). O metodo de Adams-Moulton sozinho
(y4 = 5, 7942676) e o que fornece o resultado mais preciso, com erro 40 vezes menor que o
necess
erro associado ao metodo preditor-corretor. E
ario n
ao esquecer, porem, que o metodo de
Adams-Moulton e implcito, o que signica que e preciso resolver uma equac
ao em cada passo.
Neste problema em quest
ao, a equac
ao e linear, de modo que a soluca
o n
ao e difcil de encontrar.
Entretanto, em outros problemas esta parte do processo pode ser muito mais demorada.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

191

Introduca
o ao C
alculo Numerico

10.2.7.1

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

Converg
encia, Estabilidade e Consist
encia

Todo metodo de passo m


ultiplo pode ser descrito por uma equacao do tipo
ak xn + ak1 xn1 + . . . + a0 xnk = h(bk fn + bk1 fn1 + . . . + b0 fnk )

(10.41)

onde x0 , x1 , . . ., xk1 sao obtidos por algum outro metodo, e (10.41) e usada com n = k, k + 1,
. . .. A equacao (10.41) e dita ser implcita se bk = 0, pois xn aparecera em ambos os lados da
igualdade; caso contr
ario, o metodo e dito explcito.
Um metodo de passo m
ultiplo denido por (10.41) e dito ser convergente se
lim x(h, t) = x(t)

(10.42)

h0

com t xo, e h livre, para todo t num intervalo t0 t tm , desde que os valores iniciais satisfacam
a mesma equacao e f satisfaca o teorema basico de existencia de solucao (10.2.1), i.e.
lim x(h, t0 + nh) = x0 ,

h0

0n<k

(10.43)

Para se analisar a estabilidade e a consistencia de um metodo de passo m


ultiplo, utilizamos
dois polin
omios, associados `a equacao (10.41):

p(z) = ak z k + ak1 z k1 + . . . + a0
(10.44)
q(z) = bk z k + bk1 z k1 + . . . + b0
Ent
ao, as condicoes necessarias para a estabilidade e consistencia podem ser escritas como:
Estabilidade: O metodo e dito est
avel se todas as razes de p estao contidas em um disco de raio
| z | 1 e se cada raiz de modulo 1 e simples.
Consist
encia: O metodo e dito consistente se p(1) = 0 e p (1) = q  (1).
O teorema a seguir estabelece que a convergencia de um metodo de passo m
ultiplo depende
da estabilidade e da consistencia.
Teorema 10.2.4 Um metodo de passo m
ultiplo conforme a equac
ao (10.41) e convergente se e
somente se ele e estavel e consistente.
A prova pode ser consultada em [10].
De posse desses resultados, podemos vericar se um metodo e convergente, como mostra o
exemplo a seguir.
Exemplo 10.9 O metodo de Milne,

xn xn2 = h

1
4
1
fn + fn1 + fn2
3
3
3

e um metodo implcito, caracterizado por



p(z) = z 2 1
q(z) = 13 z 2 + 43 z +


(10.45)

1
3

cujas razes de p(z) s


ao +1 e 1 (ambas simples). Como p (z) = 2z, p (1) = 2 e q(1) = 2, o
metodo e estavel e consistente, logo e convergente.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

192

Introduca
o ao C
alculo Numerico

10.2.7.2

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

Erros de truncamento

Suponha que a equacao (10.41) foi utilizada para se calcular xn , e que xn1 , xn2 , . . . sao exatos,
i.e. xi = x(ti ) para i < n, onde x(t) e a solucao da equacao diferencial. Ent
ao, o ETL e denido
como e = x(tn ) xn . Este erro n
ao e devido a erros de arredondamento mas sim devido a`
formulacao (10.41).
Podemos denir um operador funcional linear L, correspondente a (10.41), dado por
Lx =

(ai x(ih) hbi x (ih))

(10.46)

i=0

assumindo, por simplicidade, k = n e t = 0. A operacao Lx pode ser aplicada a qualquer funcao


x diferenci
avel. Representando x por uma expansao de Taylor em t = 0, L pode ser expresso por
Lx = d0 x0 + d1 hx (0) + d2 hx (0) + . . .

(10.47)

onde os coecientes di sao obtidos rearranjando os termos h, ao substituirmos na equacao (10.46)


as express
oes para x e x , na forma de Taylor:
x(ih) =

(ih)j
j=0

x (ih) =

j!

(ih)j
j=0

j!

x(j) (0)
x(j+1) (0)

resultando, ent
ao, em

k
d0 = i=0 ai

k

d1 = i=0 (ia
i bi ) 

k  i2

d2 = i=0 2 ai ibi

..

j


d = k
i
ij1
j
i=0 j! ai (j1)! bi ,

(10.48)
j = 1, 2, . . .

De posse desses coecientes, podemos estabelecer a ordem do erro de truncamento local.


Teorema 10.2.5 Se (10.41) e de ordem m, x ICm+2 , f
e contnua, e xn1 , xn2 , . . . s
ao
x
exatos, ent
ao


dm+1 m+1 (m+1)
x(tn ) xn =
h
x
tnk + O hm+2
ak
 m+1 
e o ETL e, portanto, de ordem O h
.
10.2.7.3

Erros de truncamento globais

Suponha que todos os c


alculos foram efetuados com precis
ao innita (sem erros de arredondamento), e que em tn temos calculado o valor de xn , o qual difere da solucao exata x(tn ). Note que
xn e diferente de x(tn ) pois ele e obtido por uma aproximacao a uma serie de Taylor.
O ETG e denido como x(tn ) xn , e ele nao e simplesmente a soma de todos os erros locais.
Como na iteracao usamos o valor xn1 para aproximar xn , e xn1 tem um erro, entao o processor
numerico esta, na verdade, seguindo uma curva solucao errada. O que acontece, entao, quando
duas diferentes condicoes iniciais sao utilizadas?
Consideremos o PVI
 
x = f (t, x)
(10.49)
x(0) = s
com fx =

f
x

contnua e fx (t, x) em 0 t T , < x < .

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

193

Introduca
o ao C
alculo Numerico

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

A solucao de (10.49) e uma funcao em t, dependente do valor inicial s, e a denotamos entao

como x(t, s); denimos, ainda, u(t) = s


x(t, s). Podemos obter uma equacao diferencial para u
diferenciando (10.49) em relacao a s,
 
u = fx (t, x)u
(10.50)
u(0) = 1
a qual e chamada de equac
ao variacional. O exemplo a seguir ilustra como obter u.
Exemplo 10.10 Determine u explicitamente no PVI
 
x = x2
x(0) = s
Solu
c
ao: A derivada de f em relac
ao a x e fx = 2x, logo a equac
ao variacional e
 
u = 2xu
u(0) = 1
A soluc
ao do PVI e x(t) = s(1 st)1 , logo

u(t) = 2s(1 st)1 u(t)
u(0) = 1
de onde u(t) = 1(1 st)2 .
Os teoremas que seguem permitem estabelecer a ordem do ETG.
Teorema 10.2.6 Se fx , ent
ao a soluc
ao da equac
ao variacional satisfaz | u(t) | et , para
t 0.
Prova: Por (10.50), vem
u
= fx = (t)
u
onde (t) 0. Integrando, vem
 t
log | u | = t
( ) d
0

e, como t 0, a integral na equac


ao acima e maior ou igual a zero; conseq
uentemente, log | u |
t. Como a func
ao exponencial e crescente para t 0, | u | et . 
Teorema 10.2.7 Se a equac
ao (10.49) e resolvida com valores iniciais s e s+, as curvas soluc
ao
em t diferem de, no m
aximo, | |et .
Prova: Usando o teorema do valor medio e o teorema 10.2.6,





| x(t, s) x(t, s + ) | =  x(t, s + )  | | = | u(t) || | | |et 
s
ao excedem em magnitude,
Teorema 10.2.8 Se os erros de truncamento locais em t1 , t2 , . . ., tn n
ent
ao o ETG em tn n
ao exceder
a (enh 1)(eh 1)1 .
Prova: Sejam 1 , 2 , . . . os ETLs associados aos pontos t1 , t2 , . . . Ao calcular x2 , havia
o inicial e, pelo teorema 10.2.7, o efeito deste erro em t2 e de, no m
aximo,
um erro 1 na condica
| 1 |eh , ao qual e adicionado o ETL em t2 . Logo, o ETG nesse n
o e de, no m
aximo, | 1 |eh + 2 ;
ao
por analogia, em t3 teremos (| 1 |eh + 2 )eh + | 3 | e, ent
n

k=1

|, k |e(nk)h

n1

k=0

ekh =

enh 1
eh 1



Teorema 10.2.9 Se o ETL e de ordem O hm+1 , ent
ao o ETG e de ordem O (hm ).
m+1
Prova: No teorema 10.2.8, seja de ordem O h
. Como ez 1 e de ordem O(z) e nh = t,
temos uma reduca
o de uma unidade na ordem, usando a f
ormula no teorema 10.2.8. 
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

194

Introduca
o ao C
alculo Numerico

10.2.8

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

Sistemas de Equa
c
oes Diferenciais Ordin
arias

Um sistema de equacoes diferenciais ordinarias e expresso como



x1 = f1 (t, x1 , x2 , . . . , xn )

x2 = f2 (t, x1 , x2 , . . . , xn )
..


xn = fn (t, x1 , x2 , . . . , xn )

(10.51)

ao funcoes da vari
avel independente
onde n funcoes x1 , x2 , . . ., xn devem ser determinadas. Elas s
d
xi . Como exemplo, considere
t e xi = dt
 
x = x + 4y et
(10.52)
x = x + y + 2et
cuja solucao geral e

x = 2ae3t 2bet 2et


y = ae3t + bet + 14 et

onde a e b sao constantes arbitr


arias. Note que (10.52) e um sistema linear em x e y.
Uma das raz
oes para se utilizar um sistema (10.51) e quando temos de resolver uma EDO
n
ao-linear. Suponha
y (n) = f (t, y, y  , . . . , y (n1) )
com y (i) =

di
dti y.

Escrevendo
x1 = y,

temos

x2 = y  ,

x3 = y  ,

...,

xn = y n1


x1 = x2

x2 = x3
x3 = x4

..


xn = f (t, x1 , x2 , . . . , xn )

Tal substituicao de vari


aveis e necessaria em muitos casos, de forma a poder utilizar algum
software que nao resolve uma EDO n
ao-linear, porem oferece a solucao de sistemas de EDOs.
Vejamos alguns exemplos:
Exemplo 10.11 Obtenha o sistema de EDOs correspondente `
a equac
ao
sen(t)y  + cos(ty) + sen(t2 + y  ) + (y  )3 = log t
Solu
c
ao: Introduzindo as vari
aveis x1 = y, x2 = y  e x3 = y  , temos

x1 = x2
x = x3
2
x3 = (log t x32 sen(t2 + x3 cos(tx1 ))(sent)1
Exemplo 10.12 Converta o sistema de EDOs n
ao-linear abaixo para um sistema de EDOs lineares:
  2
(x ) + tey + y  = x x
y  y  cos(xy) + sen(tx y) = x
Solu
c
ao: Introduzindo as vari
aveis x1 = x, x2 = x , x3 = y e x4 = y  , temos

x =x

2
1
x2 = x2 x1 x4 tex3
x = x4

3
x4 = (x1 sen(tx2 x3 ) + cos(x1 x3 ))x1
4
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

195

Introduca
o ao C
alculo Numerico

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

Podemos representar de maneira compacta o sistema (10.51) utilizando uma notacao matricial.
Seja entao X um vetor cujas componentes s
ao x1 , x2 , . . ., xn , os quais sao funcoes de t, e F o
ao, um PVI para sistema de EDOs pode ser escrito
vetor com componentes f1 , f2 , . . ., fn . Ent
como
 
X = F (t, X)
(10.53)
X(t0 ) = X0
10.2.8.1

M
etodo da S
erie de Taylor

O metodo da serie de Taylor, visto na secao 10.2.3, pode ser utilizado nesse caso, devidamente
adaptado. Escreve-se a expansao em serie para cada variavel,
h2 
x (t) + O(h3 )
2! i
e, escrevendo o sistema resultante em forma matricial, vem
xi (t + h) = xi (t) + hxi (t) +

h2 
X (t) + O(h2 )
(10.54)
2!
Note que as derivadas em (10.54) podem necessitar ser calculadas em uma determinada ordem,
devido a dependencias existentes entre as mesmas, no sistema considerado.
Teoricamente, as equacoes no sistema (10.54) n
ao necessitam conter t explicitamente. Podemos
escreve-las na forma
xi = fi (x0 , x1 , . . . , xn )
X(t + h) = X(t) + hX  (t) +

com x0 t cuja equacao diferencial correspondente e x0 = 1. O sistema (10.54) pode entao ser
escrito na forma aut
onoma
(10.55)
X  = F (X)
onde X = (x0 , x1 , . . . , xn )T . O exemplo a seguir ilustra essa tecnica.
Exemplo 10.13 Escreva o sistema

(sent)y  + cos(ty) + sen(t2 + y  ) + (y  )3 = log t

y(2) = 7

(2) = 3
y


y (2) = 4
na forma aut
onoma.
Solu
c
ao: Escrevendo x0 = t, x1 = y, x2 = y  e x3 = y  , vem

x =1

0
x1 = x2
x = x3

2
x3 = (log x0 x32 sen(x20 + x3 ) cos(x0 x1 ))(senx0 )1
com condica
o inicial X0 = (2, 7, 3, 4)T .
10.2.8.2

M
etodo de Runge-Kutta

Se um sistema de EDOs em um PVI encontra-se na forma autonoma (10.55), o metodo de RungeKutta de quarta ordem pode ser escrito como
X(t + h) =
F1

F2

F3

F4

X(t) +

h
(F1 + 2F2 + 2F3 + F4 )
6

(10.56)

hF (X)


1
hF X + F1
2


1
hF X + F2
2
hF (X + F3 )

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

196

Introduca
o ao C
alculo Numerico

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

De forma similar, podemos obter variacoes dos metodos de Runge-Kutta-Fehlberg e de passo


m
ultiplo para um sistema de EDOs na forma aut
onoma.

10.2.9

Solu
c
ao via decomposi
c
ao em autovalores e autovetores

Seja um sistema de equacoes diferenciais ordinarias lineares com coecientes constantes, expresso
na forma aut
onoma:


x1 = a11 x1 + a12 x2 + . . . + a1n xn


..
(10.57)
.


xn = an1 x1 + an2 x2 + . . . + ann xn
ou,
X  = AX
(10.58)
Se procuramos obter um vetor solucao X e tomamos como tal um vetor na forma X(t) = et v,
com IR e v um vetor constante, e substitumos em (10.58), obtemos
et v = et Av

(10.59)

e, se
Av = v
t

for satisfeita, entao a funcao vetorial e v e solucao de (10.58). Agora, para qual essa igualdade
e satisfeita? Os teoremas a seguir qualicam esse escalar e o vetor v.
Teorema 10.2.10 Se e um autovalor de A e v o autovetor correspondente, ent
ao X(t) = et v

e soluc
ao de X = AX.
Teorema 10.2.11 Se Ann tem um conjunto de autovetores v1 , v2 , . . ., vn linearmente independentes,
ao o espaco soluc
ao da equac
ao X  = AX tem uma base xi = ei t vi , para
com Avi = i vi , ent
1 i n.
Se A tem a propriedade expressa no teorema 10.2.11, entao existe uma matriz n
ao-singular V
cujas colunas sao os vetores v1 , v2 , . . ., vn ,

v11 v12 . . . v1n


v21 v22 . . . v2n

(10.60)
Vnn = .
..
..
.. .
..
.
.
.
vn1 vn2 . . . vnn
Em forma matricial, podemos escrever Avi = i vi como
AV = V
onde

nn =

(10.61)

2
..

(10.62)

n
Agora, a resolucao da equacao (10.58) pode ser bastante simplicada se zermos a troca de
vari
aveis X = V Y . Como V e nao-singular, podemos escrever
Y  = V 1 X  = V 1 AX = V 1 AV Y = Y
a qual e uma equacao muito mais simples de se resolver, dada a forma de . As equacoes em
Y  = Y sao ditas desacopladas e podem ser resolvidas separadamente, como mostra o exemplo
a seguir.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

197

Introduca
o ao C
alculo Numerico

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

Exemplo 10.14 Resolva o PVI X  = AX com

1 0
1
A= 0 0
0 ,
0 0 1

5
X(0) = 7
6

Solu
c
ao: Os autovalores de A s
ao 1 = 1, 2 = 0 e 3 = 1; seus autovetores correspondentes
s
ao v1 = (1, 0, 0)T , v2 = (0, 1, 0)T e v3 = (1, 0, 2)T . Logo,

1
1 0
1 0
1
2
0
0 , V 1 = 0 1
V = 0 1
0 0 2
0 0 21
Se Y = (y1 , y2 , y3 )T , ent
ao Y  = Y , com

1 0
0
= 0 0
0 = V 1 AV
0 0 1
de onde podemos escrever:

y1 = y1
y = 0
,
2
y3 = y3

8
Y (0) = V 1 X(0) = 7
3

cuja soluc
ao e
y1 = 8et ,

y3 = 3et .

y2 = 7,

Como X = V Y , a soluca
o e, por m,
x1 = 8et 3et ,

x2 = 7,

x3 = 6et

.
10.2.9.1

O expoente de uma matriz

A solucao da equacao (10.58) pode ser expressa atraves da forma eA , a qual e denida como
eA = I + A +

1 2 1 3
A + A + ...
2!
!

(10.63)

e, para t IR, ent


ao tA = At, de onde
eAt =

t
k=0

k!

Ak

(10.64)

e, diferenciando em relacao a t, temos


d At
e = AeAt
dt

(10.65)

X(t) = eAt X(0)

(10.66)

Assim, a solucao do problema (10.5) e

Se a matriz A for diagonaliz


avel, i.e., AV = V , com V e denidos conforme (10.60) e
(10.62), ent
ao a solucao de (10.5) pode ser escrita como

1 t
e

e2 t


1

X = V Y = V et V 1 X(0) = V
(10.67)
V X(0)
..

.
en t
Em caso contr
ario, uma an
alise atraves da forma de Jordan da matriz A deve ser realizada.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

198

Introduca
o ao C
alculo Numerico

10.2.10

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

Equa
c
oes rgidas

A rigidez em um sistema de equacoes diferenciais refere-se a uma grande disparidade nas escalas
de tempo dos componentes do vetor solucao. Como conseq
uencia, metodos numericos que s
ao
satisfat
orios para outros sistemas, normalmente falham em sistemas rgidos; isto acontece quando
a estabilidade no processo numerico ocorre apenas quando passos de integracao muito pequenos
podem ser empregados. Tais sistemas surgem em diferentes areas de aplicacao:
Controle de naves espaciais: a trajet
oria de voo para re-entrada na atmosfera deve ser suave,
mas rapidas correcoes devem ser feitas caso ocorrer qualquer desvio;
Monitora
c
ao de processos qumicos: quaisquer mudancas de natureza fsica e qumica podem
ter uma grande variacao nas escalas de tempo envolvidas;
Circuitos eletr
onicos: transientes da ordem de microssegundos sao impostos ao circuito como
um todo.
Como exemplo, vejamos o comportamento do metodo de Euler (10.13) para o problema
 
x = x
(10.68)
x(0) = 1
o qual pode ser escrito, nesse caso, como
xn+1 = xn + hxn = (1 + h)xn ,

x0 = 1

(10.69)

Ent
ao, na n-esima iteracao,
xn = (1 + h)n

(10.70)

mas a solucao de (10.68) e


x(t) = et
a qual tende a zero, se < 0, quando t tende a innito. Ora, a equacao (10.70) so tende a zero
se e somente se | 1 + h | < 1. Somos, ent
ao, obrigados a escolher h tal que 1 + h > 1; como
< 0, temos que h < 2/.
Por exemplo, se = 20, h < 0, 1, apesar da solucao que queremos obter ser praticamente
plana (e quase zero) imediatamente ap
os t = 0, quando x = 1 (note que x(t) = e20t 2, 1
9
10 | t 1). O metodo de Euler, ent
ao, proceder
a com passos pequenos, quando o problema
indica que passos grandes devem ser tomados isso e um aspecto que caracteriza a rigidez do
problema. A funcao e20t e dita transiente porque seu efeito fsico e de pouca duracao (pois decai
rapidamente para zero). Desejamos entao um procedimento numerico que permita acompanhar
funcoes transientes com passos pequenos ate que o efeito transiente seja desprezvel, quando ent
ao
passos grandes podem ser tomados.
J
a o metodo implcito de Euler, denido por
xn+1 = xn + hf (tn+1 , xn+1 ),

n0

(10.71)

apresentar
a, para esse problema, uma restricao que e satisfeita para quaisquer valores de h > 0.
Para o problema em questao, o metodo implcito e escrito como
xn+1 = xh + hxn+1 ,
ou
de onde, na n-esima iteracao,

x0 = 1

xn+1 = (1 h)1 xn
xn = (1 h)n

e, para < 0, e necessario satisfazer | 1 h |1 < 1, o que e verdadeiro para qualquer valor
positivo de h.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

199

Introduca
o ao C
alculo Numerico

10.3

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

Problemas de Valor de Fronteira

Um problema de valor de fronteira (PVF) caracteriza-se pela especicacao de valores para a funcao
x(t) nos extremos do intervalo de integracao em t,
 
x = f (t, x, x )
(10.72)
x(a) = , x(b) =
Esse tipo de problema e mais difcil de ser resolvido do que um PVI, conforme veremos a seguir.
Para um PVI, havamos assumido que, se a funcao x(t) fosse suave, entao provavelmente
(sujeito tambem a outras condicoes), o problema teria solucao. Em um PVF, no entanto, isto n
ao
se aplica, como pode-se ver no exemplo a seguir.
Exemplo 10.15 Considere o PVF


x = x
x(0) = 3, x() = 7

(10.73)

cuja soluc
ao e x(t) = Asent + B cos t. Usando essa express
ao e igualando aos valores especicados
para x, vem

3 = x(0) = Asen0 + B cos 0 = B
7 = x() = Asen + B cos = B
o que e uma contradica
o e, logo, o PVF (10.73) n
ao tem soluc
ao, apesar de f ser uma func
ao
suave.
O teorema a seguir, por Keller (1968), fala da existencia de solucao de um PVF escrito numa
forma bastante particular.
Teorema 10.3.1 O problema de valor de fronteira
 
x = f (t, x)
x(0) = 0, x(1) = 0
tem soluc
ao u
nica se

f
x

e contnua, n
ao-negativa, e limitada na tira 0 t 1, < x < .

Considere ent
ao o exemplo a seguir:
Exemplo 10.16 O PVF

x = (5x + sen(3x))et


x(0) = x(1) = 0

t
e contnua em 0 t 1, < x < .
tem soluc
ao u
nica, pois f
x = (5 + 3 cos(3x))e , a qual
Alem disso, e limitada por 8e e n
ao assume valores negativos, pois 3 cos(3x) 3.

O teorema 10.3.1 apresenta o PVF em uma forma bastante particular. A m de podermos


utiliz
a-lo para problemas mais gerais, e necessario fazer uma troca de variaveis. Considere, ent
ao,
o PVF
 
x = f (t, x)
(10.74)
x(a) = , x(b) =
com x = x(t). Escrevendo t = a + (b a)s, reduzimos (10.74) a` forma requerida pelo teorema
10.3.1 (note que s = 0 corresponde a t = a e s = 1 a t = b). Escrevendo, agora,
y(s) = x(a + s)
com = b a, obtemos
y
y 

= x (a + s)
= 2 x (a + s)

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

200

Introduca
o ao C
alculo Numerico

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

e y(0) = x(a) = , y(1) = x(b) = . Ent


ao, se x e solucao de (10.74), y e solucao de
 
y (s) = 2 f (a + s, y(s))
y(0) = , y(1) =
e, se y e solucao de (10.75),


x(t) = y

ta
ba

(10.75)

e solucao de (10.74), conforme o teorema a seguir.


Teorema 10.3.2 Considere os seguintes PVF:
 
x = f (t, x)
x(a) = , x(b) =
 
y = g(t, y)
y(0) = , y(1) =

(10.76)

(10.77)

ao, se y e soluc
ao de (10.77),
onde g(p, q) = (b a)2 f (a + (b a)p, q). Ent


ta
x(t) = y
ba
e soluc
ao de (10.76); e, se x e soluca
o de (10.76), ent
ao
y(a + (b a)t)
e soluc
ao de (10.77).
Prova:
x(a)

x(b) =
x (t) =
x (t) =
=
=


aa
= y(0) =
ba


ba
= y(a) =
y
ba


ta
1
y
ba ba





ta
ta
ta
1
1

,y
y
=g
2
b a (b a)
ba
ba
(b a)2



ta
1
ta
,y
(b a)2 f a + (b a)
ba
ba
(b a)2
f (t, x(t)) 
y

A seguir, veremos alguns dos metodos disponveis para resolver um PVF.

10.3.1

M
etodo do disparo

Considere o problema (10.72). Uma maneira de resolve-lo e atraves da resolucao do problema


(relacionado) de valor inicial
 
x = f (t, x, x )
(10.78)
x(a) = , x (a) = z
e integrar a equacao no intervalo a t b, a m de obter uma solucao aproximada, na esperanca
de que x(b) = . Se tal n
ao ocorrer, a estimativa para x (a) pode ser modicada, e o processo de
integracao repetido novamente.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

201

Introduca
o ao C
alculo Numerico

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

A solucao de (10.78) e xz , onde o subscrito em z indica a derivada. A ideia, aqui, e relacionar


z tal que xz (b) = . Escrevendo
(10.79)
(z) = xz (b)
podemos reduzir o problema de resolver (10.72) a encontrar a raiz da funcao n
ao-liner (z), para
o qual metodos como o da bisseccao, secante e de Newton (vide Captulo 2) podem ser utilizados.
Note, no entanto, que a funcao e custosa de se avaliar, pois envolve a solucao de um PVI! Por
isso, deve-se procurar minimizar seu impacto no metodo como um todo, por exemplo, utilizando
passos de integracao pequenos apenas quando (z) e pr
oximo de zero.
Para problemas lineares, o metodo da secante obtem a solucao exata em uma u
nica iteracao.
Se o PVF tiver a forma
 
x = u(t) + v(t)x + w(t)x
(10.80)
x(a) = , x(b) =
com u, v e w func
oes contnuas em a x b. Suponha que (10.80) foi resolvida para duas
condicoes iniciais diferentes, obtendo solucoes x1 e x2 ,

x1 (a) = , x1 (a) = z1
(10.81)
x2 (a) = , x2 (a) = z2
Combinando linearmente x1 e x2 , temos
y(t) = x1 (t) + (1 )x2 (t)

(10.82)

com um par
ametro. Note que y(a) = , satisfazendo uma das condicoes de (10.81) (independente
do valor de ). Para a outra condicao, selecionamos tal que y(b) = , i.e.
= y(b) = x1 (b) + (1 )x2 (b)
=

x2 (b)
x1 (b) x2 (b)

(10.83)

Assim, podemos obter ambas as solucoes ao mesmo tempo, resolvendo dois PVI simultaneamente:
 
 
x = f (t, x, x )
x = f (t, x, x )

x(a) = , x (a) = 0
x(a) = , x (a) = 1
onde f (t, x, x ) = u(t) + v(t)x + w(t)x , cujas solucoes sao x1 e x2 , respectivamente. Procedemos
ent
ao a` formulacao de um sistema de EDOs na forma autonoma,

x0 = 1

x1 = x3
x2 = x4
(10.84)

x
=
f
(x
,
x
,
x
)

0
1
3
3


x4 = f (x0 , x2 , x4 )
e, para resolvermos (10.80), executamos os seguintes passos:
1. Resolver (10.84), com os valores discretos de x1 (ti ) e x2 (ti ) para a t0 ti tm = b, os
quais devem ser armazenados em vetores;
2. Calcular o valor de por (10.83);
3. Calcular y(ti ) por (10.82), para cada ti .
O teorema a seguir enuncia a solucao do PVF linear.
ao, ou x1 (b) x2 (b) = 0 e
Teorema 10.3.3 Se o PVF linear tem soluc
ao, ent
ao x1 e uma soluc
y e uma soluc
ao.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

202

Introduca
o ao C
alculo Numerico

10.3.2

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

M
etodo de Newton

O metodo de Newton (vide secao 2.4) pode ser usado para resolver o PVF nao-linear. Seja xz a
solucao do problema
 
xz = f (t, xz , xz )
(10.85)
xz (a) = , xz (a) = z
e z e tal que (z) = xz (b) = 0. Relembrando, a equacao governante do metodo de Newton
para a funcao e
(zn )
zn+1 = zn 
(10.86)
(zn )
A derivada  e determinada diferenciando parcialmente com respeito a z as funcoes componentes
em (10.85):

f t
f xz
xz
z = t z + xz z


z xz (a) = 0, z xz (a)

Introduzindo a vari
avel v =

xz
z

f
+ x

z
=1

xz
z

(10.87)

e simplicando, vem

v  = fxz (t, xz , xz )v + f xz (t, xz , xz )v 


v(a) = 0, v  (a) = 1

(10.88)

a qual e denominada de primeira equac


ao variacional. A equacao (10.88) pode ser resolvida, a
cada iteracao, juntamente com a equacao (10.85). Ao nal, v(b) sera obtida, i.e.
xz (b)
=  (z)
z

v(b) =

10.3.3

M
etodo da coloca
c
ao

O metodo da colocac
ao e aplic
avel a muitos problemas. Suponha que e dado um operador linear
L (integral ou diferencial) e desejamos resolver a equacao
Lu = w

(10.89)

com w conhecido. Procuramos, ent


ao, resolve-la selecionando um conjunto de vetores V = {v1 ,
v2 , . . ., vn } e, combinando-os linearmente, obter a solucao u, na forma
u = c1 v1 + c2 v2 + . . . + cn vn

(10.90)

Como L e um operador linear, podemos escrever


Lu =

cj Lvj

j=1

logo,

cj Lvj = w

(10.91)

j=1

De forma geral, usualmente n


ao podemos resolver (10.91) e obter os coecientes ci ; porem,
podemos exigir que os dois termos em (10.91) sejam identicos em determinados pontos. No metodo
da colocac
ao, os vetores u, w e vj sao funcoes no mesmo domnio, e temos
n

cj (Lvj )(ti ) = w(ti ),

1in

(10.92)

j=1

o qual reduz-se a um sistema de n equacoes lineares. As funcoes vj e os pontos ti devem ser


ao-singular.
escolhidos tal que a matriz cujas entradas s
ao (Lvj )(ti ) seja n
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

203

Introduca
o ao C
alculo Numerico

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

Podemos usar diferentes funcoes para calcular os vetores vj , porem as chamadas B-splines
sao bastante adequadas. Suponha um problema na forma
 
u + pu + qu = w
(10.93)
u(a) = , u(b) =
onde Lu = u + pu + qu. Como necessitamos de funcoes com as primeira e segunda derivadas
contnuas, vamos considerar aqui as B-splines Bik c
ubicas, apesar de nada impedir que se usem
aquelas de grau k maior. Assumimos, tambem, que os nos ti da B-spline s
ao igualmente
ao os pontos de colocacao.
espacados: ti+1 ti = h, e os nos ser
Seja n o n
umero de funcoes a serem usadas e, portanto, o n
umero de coecientes a serem
determinados; logo, necessitamos de n condicoes para determina-los. O problema (10.93) apresenta
duas condicoes de fronteira, as quais devem satisfazer
n

cj (Lvj )(a) = ,

j=1

cj (Lvj )(b) =

(10.94)

1in2

(10.95)

j=1

Para as demais n 2 condicoes, temos


n

cj (Lvj )(ti ) = w(ti ),

j=1

e podemos, entao, denir


h=
ti = a + (i 1)h,

ba
n3
i = 0, 1, 2, . . .

(10.96)
(10.97)

Os n
os ti pertencentes ao intervalo [a, b] sao
a = t1 < t2 < . . . < tn3 < tn2 = b
os quais sao os pontos de colocaca
o. Para denirmos as B-splines Bj3 , necessitamos de alguns
pontos fora do intervalo [a, b] os quais, por (10.97), encontram-se dispostos assim:
t3 < t2 < t1 < t0 <

a
b
< t2 < t3 < . . . < tn4 < tn3 <
< tn2 < tn2 < tn1 < tn < tn+1
t1
tn2

Ora, as B-splines c
ubicas tem a forma segundo a gura 10.2, e estamos interessados naquelas

Figura 10.2: Forma das B-splines c


ubicas.
3
3
, B1
, B03 , B13 ,
que n
ao sao identicamente nulas no intervalo [a, b], as quais s
ao as B-splines B2
3
. . ., Bn3 . Assim, podemos escrever
3
vj = Bj3
,

1 j n.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

204

Introduca
o ao C
alculo Numerico

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

Como utilizamos espacamento igual entre os n


os, podemos deni-las atraves de uma u
nica
formulacao, B 3 (t), dada por
(t+2)3
,
2 t 1

1+3(t+1)+3(t+1)2 3(t+1)3

, 1 t 0

6
1+3(1t)+3(1t)2 3(1t)3
B 3 (t) =
(10.98)
, 0t1
6

(2t)

,
1t2

0,
c.c.
a qual tem a forma

Figura 10.3: B-spline c


ubica: (a) (t + 2)3 )/6, (b) (1 + 3(t + 1) + 3(t + 1)2 3(t + 1)3 )/6, (c)
2
(1 + 3(1 t) + 3(1 t) 3(1 t)3 )/6, (d) ((2 t)3 )/6.
O exemplo a seguir mostra como obter os n
os.
Exemplo 10.17 Suponha que desejamos obter m pontos de colocac
ao, com m = 4. Como dois
pontos extras s
ao dados pelas condic
oes de fronteira, teremos quatro pontos internos e, como cada
B-spline c
ubica necessita de cinco pontos, teremos de obter dois pontos a mais em cada extremo
do intervalo [a, b]. Como m = 6, teremos n = 8 pontos, de onde h = 1/5 e os n
os ser
ao:
i
ti

10.3.4

1
2/5

0
1/5

1
0

2
1/5

3
2/5

4
3/5

5
4/5

6
1

7
6/5

8
7/5

Derivac
ao num
erica

Um problema num domnio contnuo pode ser discretizado de forma que as variaveis dependentes
sejam consideradas existentes apenas para pontos discretos. Desta maneira, as derivadas sao
aproximadas por diferencas. O metodo de diferencas nitas e baseado em algumas propriedades
da serie de Taylor e em aplicacoes diretas da denicao de derivadas. Ele e o mais antigo dos
metodos aplicados na obtencao de solucoes numericas de equacoes diferenciais. A ideia deste
metodo de aproximacao e bastante simples.
Como exemplo, toma-se a derivada de uma funcao f (x) no ponto x, que e denida por
f  (x) = lim

h0

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

(10.99)

Se h e sucientemente pequeno, a express


ao do lado direito e uma aproximacao para o valor
exato de f  (x). Esta aproximacao pode ser melhorada com a reducao de h. Entretanto, para
qualquer valor nito de h, um erro, que tende a zero para h tendendo a zero, e introduzido. Este
e o chamado erro de truncamento. A potencia de h com a qual ele tende a zero e chamada de
ordem da aproximac
ao a diferencas e pode ser obtida atraves de um desenvolvimento em serie de
Taylor de f (x + h) em torno do ponto x. Desenvolvendo f (x + h), obtem-se
f (x + h) = f (x) + h f  (x) +

h2 
f (x) + . . .
2

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

(10.100)
205

Introduca
o ao C
alculo Numerico

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

e portanto,

f (x + h) f (x)
h 
= f  (x) + f (x) + . . . .
h
2
Diz-se que essa aproximacao para f  (x) e de primeira ordem em h e escreve-se
f  (x) =

f (x + h) f (x)
+ O(h),
h

(10.101)

(10.102)

indicando que o erro de truncamento e de O(h), isto e, tende a zero quando h tende a zero.
Para entender como estas formulas sao aplicadas na aproximacao das derivadas considera-se
uma discretizacao do eixo x. O domnio contnuo e substitudo por um conjunto discreto de n + 1
pontos xi , i = 0, 1, . . . , n, com espacamento constante e igual a h entre os pontos, conforme representacao na gura 10.4. Denota-se por fi os valores da funcao f (x) nos pontos xi = ih (ou seja,
fi e igual a f (xi )).

i1
xh

i+1

x+h

Figura 10.4: Representac


ao esquem
atica dos pontos no eixo das abscissas.
As seguintes aproximacoes em diferencas nitas podem ser denidas para a primeira derivada
no ponto x = xi , f  (x)i :
fi

fi

fi+1 fi
+ O(h),
h
fi fi1
+ O(h).
h

(10.103)
(10.104)

A primeira formula e denominada diferenca ascendente e a segunda, diferenca descendente.


Ambas sao aproximacoes de primeira ordem para f  (x)i . Outras f
ormulas, com diferentes ordens
de aproximacao, podem ser obtidas. A mais comum e a de segunda ordem, obtida conforme
descricao abaixo.
Fazendo duas expans
oes diferentes em serie de Taylor para a primeira derivada,
f (x + h) = f (x) + h fx (x) +

h2 
f (x)(x) + . . .
2

(10.105)

h2 
f (x) + . . . ,
2

(10.106)

e
f (x h) = f (x) h fx (x) +
e subtraindo (10.106) de (10.105), obtem-se
f  (x) =

f (x + h) f (x h)
+ O(h2 ),
2h

(10.107)

que e uma aproximacao de segunda ordem para f  (x). Na notacao de diferencas nitas, esta
expressao ca
fi =

fi+1 fi1
+ O(h2 ),
2h

(10.108)

cuja ordem de precis


ao e maior do que em (10.103) e (10.104).
Uma ilustracao gr
aca para os tres tipos de aproximacoes para a derivada de primeira ordem,
dados por (10.103), (10.104) e (10.108), e fornecida pela gura (10.5).

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

206

Introduca
o ao C
alculo Numerico

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

Figura 10.5: Ilustracao gr


aca para as derivadas de primeira ordem [8].
Ainda, para exemplicar outras f
ormulas de diferencas nitas, s
ao apresentadas as aproximacoes centrais de segunda ordem para as derivadas abaixo:
(2)

fi

(3)

fi

(4)

fi

fi+1 2 fi + fi1
+ O(h2 ),
h2
fi+2 2 fi+1 + 2 fi1 f i 2
+ O(h2 ),
2 h3
fi+2 4 fi+1 + 6 fi 4 fi1 + fi2
+ O(h2 ),
h4

=
=
=

(10.109)
(10.110)
(10.111)

Na verdade, f
ormulas em diferencas para a aproximacao de derivadas podem ser construdas
com um n
umero arbitr
ario de pontos adjacentes. Na pr
atica, em qualquer esquema numerico, e
preciso fazer o balanco entre a ordem de precisao e o n
umero de pontos simultaneamente envolvidos
nos calculos.
Exemplo 10.18 A partir dos valores abaixo, calcular f  (1, 4) usando diferencas ascendentes,
descendentes e centrais.
x
f (x)

1, 2
1, 5095

1, 3
1, 6984

1, 4
1, 9043

1, 5
2, 1293

1, 6
2, 3756

1. Diferencas ascendentes:
f  (1, 4) =

f (1, 5) f (1, 4)
= 2, 2500
0, 1

f  (1, 4) =

f (1, 4) f (1, 3)
= 2, 059
0, 1

f  (1, 4) =

f (1, 5) f (1, 3)
= 2, 1545
2 0, 1

2. Diferencas descendentes:

3. Diferencas centrais:



Exemplo 10.19 Seja f (x) = cos x. Calcule aproximac


oes para f (0, 8) com h = 0, 1, h = 0, 01,

h = 0, 001. Utilize 9 casas decimais em seus c
alculos. Depois, compare com o valor real f (0, 8) =
cos 0, 8.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

207

Introduca
o ao C
alculo Numerico

10.3.5

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

Solu
c
ao por diferencas-finitas

Considere novamente o problema (10.72). Podemos resolve-lo se substituirmos as derivadas por


aproximacoes em diferencas-nitas, conforme visto anteriormente.
Para tanto, particionamos o intervalo [a, b] nos pontos ti ,
a = t0 < t1 < . . . < tn < tn+1 = b
espacados igualmente entre si, i.e.
ti = a + ih,

h=

ba
,
n+1

0in+1

Denotando o valor aproximado x(ti ) por yi , podemos reescrever o problema (10.72) na forma
discreta

y0 =


yi1 2yi +yi+1
yi1
, 1in
= f ti , yi , yi+12h
(10.112)
2
h

yn+1 =
onde as derivadas y  e y  sao aproximadas por aproximacoes centrais, conforme as equacoes
(10.108) e (10.109).
De forma geral, o problema (10.112) reduz-se a um sistema n
ao-linear de equac
oes, como pode
ser visto no exemplo a seguir.
Exemplo 10.20 Suponha f (t, x, x ) = xt + 2x . Usando (10.112), para n = 2, temos:

y0 =


 y0 

y0 2y1 + y2 = h2 y1t1 + 2  y22h



y1
y1 2y2 + y3 = h2 y2t2 + 2 y32h

y3 =
e, procedendo `
as substituic
oes possveis, chegamos ao seguinte sistema n
ao-linear de equac
oes:

y0
1

y t1 ((1 + h)
)
(1

h)
(2
+
h

1t =

y 2 (h 1)
(1 + h)
(2 + h2 )
2
1

y3
o qual deve ser resolvido atraves de um metodo especco como, por exemplo, o metodo de Newton.
10.3.5.1

O caso linear

Se o PVF e da forma (10.80), ent


ao o sistema (10.112) reduzir-se-
a a um conjunto de equacoes
lineares, as quais podem ser escritas como

y0 =
(10.113)
ai yi1 + di yi + ci yi+1 = bi 1 i n

yn+1 =
com
ui

= u(ti )

vi
wi

= v(ti )
= w(ti )

ai

= 1

di
ci
bi

h
wi+1
2
2
= 2 + h vi
h
= 1 + wi
2
= h2 ui

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

208

Introduca
o ao C
alculo Numerico

o que nos permite

d1
a1

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

escrever o sistema de equacoes lineares

y1
c1
y2
d2 c2

y3
a2 d3
c3

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

an2 dn1 cn1 yn1


an1
dn
yn

como





=


b 1 a0
b2
b3
..
.
bn1
b n cn

(10.114)

o qual apresenta as seguintes caractersticas:


tridiagonal;
1. E
2. Se h e pequeno e vi > 0, ent
ao (10.114) e diagonal dominante, pois
 



h 
h  
2

| 2 + h vi | >  1 + wi  +  1 wi  = 2,
2
2
assumindo que | hwi /2 | 1.
3.

10.4




h
h
| di | | ci | | ai1 | = 2 + h2 vi 1 wi 1 + wi = h2 vi
2
2

Exerccios

Exerccio 10.1 O n
ucleo radioativo do plut
onio decai de acordo com a equac
ao diferencial
dQ
= 0, 0525 Q
dt
Se 50 mg de plut
onio 241 estiverem presentes numa amostra no dia de hoje, determine quanto
plut
onio existir
a daqui a 2 anos. Considere h = 1 e h = 0, 5. Discuta seus resultados.
Exerccio 10.2 Um capital de R$1000, 00 e depositado em uma conta. Sabendo que sobre ele
incide uma taxa de 10% de juros compostos ao ano, determine qual ser
a o saldo na conta ao nal
de 5 anos.
Exerccio 10.3 Em psicologia, a lei de Weber-Fechner para a resposta-estmulo diz que a taxa
de variaca
o dd R
c
ao R e inversamente proporcional ao estmulo. O valor inicial e o nvel
S da rea
mnimo de estmulo que pode ser consistentemente detectado. O problema de valor inicial para
este modelo e
R
R(s0 )

k
S
= 0

Suponha que s0 = 0, 1 e use o metodo de Heun com h = 0, 1 para resolver


R

R(0, 1) =

1
S
0

no intervalo [0, 1; 0, 5].

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

209

Introduca
o ao C
alculo Numerico

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias

Exerccio 10.4 Usar o metodo de Taylor de 4a ordem para resolver



x = cos t senx + t2
x(1) = 3
com h = 102 , t0 = 1, t1 = 1 e x0 = 3. Ap
os, usar a soluc
ao obtida como um novo valor de x0 ,
e repetir o processo, desta vez com x0 = 102 . Explique o que ocorre.
Exerccio 10.5 Um paraquedista salta de um avi
ao e ate o momento que ele abre o p
ara-quedas,
3
a resistencia do ar e proporcional a v 2 . Assuma que o intervalo de tempo e [0, 2] e que a equac
ao
diferencial para a direc
ao vertical e
v

v(0) =

32 0, 032 v 2
0

Use o metodo de Taylor de segunda ordem com h = 0, 5 e encontre a soluc


ao para este problema.
Exerccio 10.6 Assuma que a curva P (t) para uma determinada populac
ao obedeca a equac
ao
diferencial para uma curva logstica P  = a P b P 2 . Seja t o tempo em anos e h = 10 o passo.
Os valores a = 0, 02 e b = 0, 00004 produzem um modelo para a populac
ao. Considerando que no
ano de 1990 a populac
ao era 76, 1 milh
oes, obtenha, usando o metodo de Heun, uma estimativa
para esta populac
ao no ano de 2010.
Exerccio 10.7 Resolva o exerccio 10.4 usando o metodo de Runge-Kutta de 2a ordem.
Exerccio 10.8 Resolva o exerccio 10.4 usando o metodo de Runge-Kutta de 4a ordem.
Exerccio 10.9 Use o metodo de Runge-Kutta 4a ordem para resolver

x = ext + cos(x t)
x(1) = 3
com h = 0, 01. Apresente o u
ltimo valor para x antes de ocorrer overow.
Exerccio 10.10 Supondo o metodo de Runge-Kutta de 3a ordem,
x(t + h) =
F1

F2

F3

1
x(t) + (2F1 + 3F2 + 4F3 )
9
hf (t, x)


1
1
hf t + h, x + F1
2
2


3
3
hf t + h, x + F2
4
4

mostre que, para x = x + t, ele e equivalente ao metodo de Taylor de 3a ordem.


Exerccio 10.11 Em uma reac
ao qumica, uma molecula de A se combina com uma molecula de
B para formar uma molecula do produto qumico C. Sabe-se que a concentrac
ao, y(t), no tempo
t, e a soluc
ao do problema de valor inicial:
y  = k (a y) (b y)
y(0) = 0
onde k e uma constante positiva e a e b s
ao as concentrac
oes iniciais de A e de B, respectivamente.
Suponha que k = 0, 01, a = 70 milimoles/litro e b = 50 milimoles/litro. Use os metodos de RungeKutta de ordem N = 2 e N = 4 com h = 0, 5 para encontrar a soluc
ao em [0, 2].
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

210

Introduca
o ao C
alculo Numerico

Soluc
ao Numerica de Equac
oes Diferenciais Ordin
arias


Exerccio 10.12 Resolva o PVI

x = x2
x(0) = 1
no intervalo 0 t 2 usando o metodo de Runge-Kutta-Fehlberg. Compare com a soluc
ao
analtica dada por x(t) = (1 t)1 . Explique o que ocorre perto da discontinuidade em t = 1,
quando se usa o algoritmo 10.2.3.
Exerccio 10.13 Determine as caractersticas numericas do metodo de passo m
ultiplo cuja equac
ao e
xn + 4xn1 5xn2 = h(4fn1 + 2fn2 )
Exerccio 10.14 Resolva o sistema
 
x1 = senx1 + cos(tx2 )
, x1 (1) = 2, 37, x2 (1) = 3, 48
x2 = sen(tx1 )t1
usando o metodo de Euler, para 1 t 1 e h = 0, 01.
Exerccio 10.15 Seja o sistema
 
x1 = (1 9c2 + 12sc)x1 + (12c2 + 9sc)x2
, x1 (0) = 2, x2 (0) = 1
x2 = (12s2 + 9s)x1 + (1 9s2 12sc)x2
onde c = cos(6t), s = sen(6t). Para 0 t 10, h = 0, 01, responda:
1. Compare a soluca
o numerica com a soluc
ao analtica,

x1 = e13t (s 2c)
x2 = e13t (2s + c)
2. Recalcule a soluca
o numerica, para 0, 01 t 10 e 0, 02 t 10. Houve diferenca da
soluc
ao obtida no item 1? Explique.

Exerccio 10.16 Uma das equac


oes b
asicas dos circuitos eletricos e
di
+Ri = E
dt
onde L e a indut
ancia, R e a resistencia, i e a corrente e E, a forca eletromotriz. Considere
L = 3 H, R = 15 , E = 110 V e i = 0 quando t = 0. Determine o valor da corrente quando
t = 0, 5 s, tomando h = 0, 1 s e usando o metodo de predic
ao-correc
ao de quarta ordem.
L

Exerccio 10.17 Um exemplo de um sistema de equac


oes diferenciais n
ao lineares e o modelo
presa-predador. Seja x(t) a populac
ao de coelhos no tempo t e y(t) a de raposas. O modelo
presa-predador exige que x(t) e y(t) satisfacam
x

= Ax B xy

= C xy Dy

Para ns de simulaca
o numerica, pode-se considerar os coecientes:
A=2

B = 0, 02

C = 0, 0002

D = 0, 8,

Use o metodo de Runge-Kutta para resolver a equac


ao diferencial no intervalo [0, 5] se
1. x(0) = 3000 coelhos e y(0) = 120 raposas;
2. x(0) = 5000 coelhos e y(0) = 100 raposas.
Exerccio 10.18 Resolva o PVF linear
 
x = et3 + (t2 + 2)x + (sent)x
x(2, 6) = 7, x(5, 1) = 3
usando as equac
oes (10.80)-(10.84). O PVI associado dever
a ser resolvido pelo metodo de RungeKutta-Fehlberg.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

211

Captulo 11

Solu
c
ao Num
erica de Equa
c
oes
Diferenciais Parciais
11.1

Introdu
c
ao

Uma equacoes diferencial parcial (EDP) pode ser escrita na forma geral
a

2
2

+c 2 +d
+e
+ f + g = 0
+b
2
x
xy
y
x
y

(11.1)

onde a, b, c, d, e, f e g podem ser funcoes das vari


aveis independentes x e y e da vari
avel dependente
, em uma regiao no plano R2 , em coordenadas cartesianas.
As EDPs podem ser classicadas em elpticas, parab
olicas ou hiperb
olicas, dependendo do valor
de b2 4ac ser negativo, zero ou positivo, respectivamente.
Como exemplos de EDPs elpticas podemos citar a equaca
o de Poisson

e de Laplace

2 2
+ 2 =g
x2
y

(11.2)

2 2
+ 2 =0
x2
y

(11.3)

as quais sao associadas geralmente a problemas em equilbrio. Uma maneira de se expressar o


potencial de velocidade de um uido incompressvel, n
ao-viscoso, em regime estavel e atraves da
equacao de Laplace: a taxa com a qual tal uido entra em uma determinada regi
ao e igual a`quela
com a qual ele sai.
J
a na teoria eletromagnetica, o teorema de Gauss nos diz que o uxo eletrico que passa atraves
de uma superfcie fechada e igual a` carga total dentro da superfcie; isto pode ser expresso por
uma equacao de Poisson,
2V
2V

(11.4)
+
+ =0
2
2
x
y

onde V e o potencial eletrico associado a uma distribuicao bi-dimensional de carga de densidade
e  e a constante dieletrica.
Ate hoje, apenas um n
umero limitado de equacoes elpticas foram resolvidas analiticamente,
com sua utilidade restrita a casos onde a regi
ao de estudo considerada tem uma forma geometrica
simples. O mesmo pode ser dito de equacoes parab
olicas e hiperb
olicas. Por essa razao, a solucao
dessas equacoes e feita, essencialmente, de forma numerica, com metodos especcos para cada
tipo de EDP.

212

Introduca
o ao C
alculo Numerico

11.2

Soluc
ao Numerica de Equac
oes Diferenciais Parciais

Equa
c
oes parab
olicas

Comecaremos investigando a solucao numerica de EDPs parab


olicas com um dos mais simples
exemplos: a equacao adimensional
U
2U
=
(11.5)
t
x2
a qual expressa a distribuicao de temperatura U em uma barra isolada termicamente ao longo
de seu comprimento, x, t segundos apos ter sido aquecida (ou resfriada). Em tal problema, as
temperaturas nos dois extremos da barra s
ao conhecidas ao longo do tempo ou seja, as condic
oes
tambem usual conhecer a distribuicao de temperatura na barra
de fronteira sao conhecidas. E
em um certo instante, o qual e chamado de tempo zero; essa distribuicao e chamada de condic
ao
inicial.
Vejamos, entao, um diagrama que explica o processo de integracao a ser efetuado (ver [14]).
Suponha uma barra de comprimento l, C uma curva de fronteira e S a regi
ao englobada por essa
curva, conforme a gura 11.1. Veja que C e uma curva aberta no plano x t; e a area S limitada
t
C
s
f s
r s
o s
n s
t
e s
i s
r s

a s

s
C

s(i,j) s

s
s
valores iniciais
l

C
s
s f
sr
so
s nt
se
s i
sr

sa

s C

linha i+1, valores a determinar


linha i, valores conhecidos

Figura 11.1: Malha de pontos para uma EDP parab


olica.
por 0 t < , 0 x l. O processo de integracao em S atraves de diferencas-nitas consiste
em colocar-se uma malha com espacamento k e h nas direcoes t e x respectivamente, e aproximar
as derivadas em cada um dos pontos de interseccao nessa malha.

11.2.1

M
etodo explcito

Para a equacao (11.5), aproximaremos as derivadas de primeira e de segunda ordem atraves de


diferencas-nitas (vide secao 2.5), i.e.
u
ui+1,j ui,j

t
k
ui+1,j 2ui,j + ui,j+1
2u

t2
h2
onde k e h sao os espacamentos nas direcoes t e x, respectivamente. Substituindo essas aproximacoes em (11.5), vem
ui+1,j 2ui,j + ui,j+1
ui+1,j ui,j
=
k
h2
e, isolando o termo ui+1,j , obtemos
ui+1,j = rui,j1 + (1 2r)ui,j + rui,j+1 ,

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

r=

k
h2

(11.6)

213

Introduca
o ao C
alculo Numerico

Soluc
ao Numerica de Equac
oes Diferenciais Parciais

a qual nos d
a a temperatura U em cada ponto j no (i + 1)-esimo tempo. Note que os pontos
discretos sao xj = jh e ti = ik. Os exemplos a seguir mostram como resolver problemas com base
na equacao (11.6).
Exemplo 11.1 Suponha uma barra de metal isolada termicamente, com as suas duas extremidades
em contato com blocos de gelo a 0o C, e aquecida instantaneamente em seu ponto medio por um
macarico. Qual a temperatura da barra ap
os um certo tempo?
Solu
c
ao: Note que, como a barra permanece em contato com gelo durante toda a simulac
ao,
devemos esperar que, ap
os ter sido instantaneamente aquecida, sua temperatura dever
a cair ate
0o C, depois de um certo tempo.
Suponha que a distribuic
ao inicial de temperatura na barra seja dada por
1
1
; u = 2(1 x),
x1
2
2
ao, podemos
Pela formulac
ao do problema, vemos que os extremos da barra est
ao a 0o C. Ent
especicar as condicoes iniciais (CI) e de fronteira (CF) como:

u = 2x, 0 x 12
, t=0
CI :
u = 2(1 x), 12 x 1

u = 0, x = 0
CF :
, t>0
u = 0, x = 1
u = 2x,

0x

Dividamos ent
ao a barra em dez pedacos e integremos a equac
ao (11.5) em mil passos, i.e.,
ao (11.6) pode ser simplicada
tomemos h = 1/10 e k = 1/1000, tal que r = k/h2 = 1/10. A equac
e escrita como
1
(ui,j1 + 8ui,j + ui,j+1 )
ui+1,j =
(11.7)
10
e, identicando as vari
aveis envolvidas na malha, vemos que o c
alculo dos ui+1,j corresponde `
a
seguinte molecula, onde os n
umeros dentro de cada
atomo s
ao os fatores multiplicadores de
u nos pontos da malha, indicados ao lado de cada
atomo:


ui+1,j
1




1

10
10
10

ui,j1
ui,j ui,j+1

Figura 11.2: Molecula computacional para o metodo explcito, r = 1/10.


Agora, aplicando a equaca
o (11.7), obtemos alguns valores, mostrados na tabela 11.1.
x
t=0
t = 0, 001
t = 0, 002
t = 0, 003

0, 1
0
0
0
0

0, 2
0, 2
0, 2
0, 2
0, 2

0, 3
0, 4
0, 4
0, 4
0, 4

0, 4
0, 6
0, 6
0, 6
0, 5996

0, 4
0, 8
0, 8
0, 7960
0, 7896

0, 5
1, 0
0, 96
0, 9280
0, 9016

0, 6
0, 8
0, 8
0, 7960
0, 7896

Tabela 11.1: Alguns valores para a equac


ao (11.7), com r = 1/10.
Considerando que a soluc
ao analtica para o problema, sujeita `
aquelas CI e CF, e dada por
u(x, t) =

2 2
n 
8  1 
sen
(sennx)en t
2
2
i=1 n
2

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

214

Introduca
o ao C
alculo Numerico

Soluc
ao Numerica de Equac
oes Diferenciais Parciais

podemos calcular os erros correspondentes a


` soluc
ao numerica para alguns pontos, conforme mostra
a tabela 11.2. Nota-se que, para x = 0, 3, o erro e pequeno; j
a para x = 0, 5, o erro e maior,
x = 0, 3

t
0, 005
0, 01
0, 02
0, 1

numerica
0, 5971
0, 5822
0, 5373
0, 2472

analtica
0, 5966
0, 5799
0, 5334
0, 2444

erro (%)
0, 08
0, 4
0, 7
1, 1

0, 005
0, 01
0, 02
0, 1

0, 8597
0, 7867
0, 6891
0, 3056

0, 8404
7743
0, 6809
0, 3021

2, 3
1, 6
1, 2
1, 2

x = 0, 5

Tabela 11.2: Erros na aproximac


ao numerica da equac
ao (11.7), com r = 1/10.
particularmente devido `
as CI, pois



u 
u 
=
2
=

2
=
.
x x= 1
x x= 1 +
2

No entanto, `
a medida que o processo de integrac
ao prossegue, o erro diminui.
Richtmeyer e Morton (1967) mostraram que, para o esquema em diferencas-nitas utilizado
no exemplo 11.1, se a funcao inicial e suas p 1 primeiras derivadas s
ao contnuas, e a p-esima
derivada e discontnua de forma ordin
aria (i.e., varia em saltos nitos), ent
ao, para k pequeno, o
erro e menor ou igual a
p+2
k p+4
3

No exemplo 11.1, p = 1, ent


ao o erro e k 5 = 0, 016; comparando com os valores presentes na
tabela 11.2, vemos que essa condicao e satisfeita.
Exemplo 11.2 Para o mesmo problema no exemplo 11.1, utilize h = 1/10 e k = 5/1000.
Solu
c
ao: Nesse caso, r = 1/2. A equac
ao (11.6) reduz-se a
ui+1,j =

1
(ui,j1 + ui,j+1 )
2

(11.8)

Alguns dos valores calculados s


ao mostrados na tabela 11.3; os erros em x = 0, 3 s
ao mostrados
na tabela 11.4. Comparando com os dados na tabela 11.2, vemos que os erros aumentaram; isso
x
t=0
t = 0, 005
t = 0, 010
t = 0, 015

0, 1
0
0
0
0

0, 2
0, 2
0, 2
0, 2
0, 2

0, 3
0, 4
0, 4
0, 4
0, 4

0, 4
0, 6
0, 6
0, 6
0, 55

0, 4
0, 8
0, 8
0, 7
0, 7

0, 5
1, 0
0, 8
0, 8
0, 7

0, 6
0, 8
0, 8
0, 7
0, 7

Tabela 11.3: Alguns valores para a equac


ao (11.8), com r = 1/2.
nos leva a supor que o valor de k est
a intimamente ligado ao erro existente na soluc
ao.
Exemplo 11.3 Para o mesmo problema no exemplo 11.1, utilize h = 1/10 e k = 1/100.
Solu
c
ao: Nesse caso, r = 1. A equac
ao (11.6) reduz-se a
ui+1,j = ui,j1 ui,j + ui,j+1

(11.9)

A tabela 11.5 mostra alguns dos valores calculados os quais, obviamente, n


ao representam o
comportamento fsico esperado.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

215

Introduca
o ao C
alculo Numerico
x = 0, 3

Soluc
ao Numerica de Equac
oes Diferenciais Parciais
t
0, 005
0, 01
0, 02
0, 1

numerica
0, 6
0, 6
0, 55
0, 2484

analtica
0, 5966
0, 5799
0, 5334
0, 2444

erro (%)
0, 57
3, 5
3, 1
1, 6

Tabela 11.4: Erros na aproximac


ao numerica da equaca
o (11.8), com r = 1/2.
x
t=0
t = 0, 01
t = 0, 02
t = 0, 03
t = 0, 04

0, 1
0
0
0
0
0

0, 2
0, 2
0, 2
0, 2
0, 2
0, 2

0, 3
0, 4
0, 4
0, 4
0, 4
0, 0

0, 4
0, 6
0, 6
0, 6
0, 2
1, 4

0, 4
0, 8
0, 8
0, 4
1, 2
1, 2

0, 5
1, 0
0, 6
1, 0
0, 2
2, 6

0, 6
0, 8
0, 8
0, 4
1, 2
1, 2

Tabela 11.5: Alguns valores para a equac


ao (11.9), com r = 1.
O metodo explcito expresso pela equacao (11.6) e computacionalmente simples, porem ele
apresenta uma restricao. O passo de integracao temporal, k, deve ser necessariamente pequeno,
uma vez que o processo de integracao so v
alido quando
k

h2
2

(11.10)

Alem disso, o particionamento em x deve ser sucientemente grande levando a um h pequeno


para que as aproximacoes das derivadas espaciais, usando diferencas-nitas, sejam aceitaveis. No
exemplo 11.3, a condicao (11.10) foi violada, levando a resultados incorretos (do ponto de vista
fsico).
A m de remover essa restricao no passo de integracao temporal, devemos recorrer a um outro
metodo, conforme descrito a seguir.

11.2.2

M
etodo de Crank-Nicolson

Em 1947, Crank e Nicolson propuseram um metodo v


alido para
 valores nitos de r.
 quaisquer
Eles consideraram que a EDP (11.5 e satisfeita no ponto medio i + 12 k, jh , ou seja,


u
t

=
i+ 12 ,j

2u
x2

i+ 12 ,j

e, substituindo estas derivadas pelas expressoes em diferencas nitas j


a vistas, temos


ui+1,j ui,j
1 ui+1,j1 2ui+1,j + ui+1,j+1
ui,j1 2ui,j + ui,j+1
=
+
k
2
h2
h2
ou
rui+1,j1 + (2 + 2r)ui+1,j rui+1,j = rui,j1 + (2 2r)ui,j + rui,j+1

(11.11)

onde r = k/h2 . Na equacao (11.11), temos tres termos conhecidos e tres a determinar, os quais
referem-se ao tempo i + 1; da, o metodo de Crank-Nicolson e dito ser implcito.
Se cada linha da malha tiver n pontos, ent
ao (11.11) e um sistema de equacoes lineares de n
equacoes a n vari
aveis, onde o termo independente de cada sistema, onde calculamos u no tempo
i + 1, e composto pelos valores de u no tempo i. Note que a resolucao do sistema de equacoes
deve ser efetuada a cada passo de integrac
ao no tempo. O exemplo a seguir mostra como utilizar
o metodo.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

216

Introduca
o ao C
alculo Numerico

Soluc
ao Numerica de Equac
oes Diferenciais Parciais

Exemplo 11.4 Resolva o problema no exemplo 11.1 com o metodo de Crank-Nicolson, usando
h = 1/10.
Solu
c
ao: Ao selecionarmos k, devemos vericar que uma escolha cuidadosa de r permite
simplicar a equac
ao (11.11); p.ex., com r = 1, o termo ui,j e removido. Para esse valor de r,
temos k = 1/100. Ent
ao, a equac
ao governante, nesse caso, e
ui+1,j1 + 4ui+1,j ui+1,j+1 = ui,j1 + ui,j+1
cuja molecula computacional e mostrada na gura 11.3. Devido `
a simetria do problema, em

u
ui+1,j+1
i+1,j1
ui+1,j
1
1
4



1
1

ui,j1
ui,j+1
Figura 11.3: Molecula computacional para o metodo de Crank-Nicolson, r = 1.
relac
ao ao quinto ponto, x = 1/2, conforme mostrado na gura 11.4, podemos reduzir o esforco
computacional necess
ario; basta obter os valores de ui+1,1 , ui+1,2 , ui+1,3 , ui+1,4 e ui+1,5 . O
u=0
0

u1

u2

u3

u4

u5

u4 u3 u2 u1

1
10

2
10

3
10

4
10

5
10

6
10

7
10

8
10

9
10

u=0
1

Figura 11.4: Disposic


ao dos pontos na malha.
sistema de equac
oes correspondente pode ser escrito na forma matricial como:

ui,1
ui+1,1
4 1
1
ui+1,2 ui,2
4 1

ui+1,3 = ui,3
1
4
1

1
4 1 ui+1,4 ui,4
2
4
ui+1,5
ui,5
cuja matriz de coecientes e levemente n
ao-simetrica, apresentando domin
ancia diagonal.
11.2.2.1

Aproxima
c
ao ponderada

Se considerarmos que a EDP (11.5) e satisfeita, agora, num ponto (i + k, jh), 0 1, obtemos
uma generalizacao do metodo de Crank-Nicolson:
ui+1,j ui,j
1
= 2 ((ui+1,j1 2ui+1,j + ui+1,j+1 ) + (1 )(ui,j1 2ui,j + ui,j+1 )) (11.12)
k
h
A equacao (11.12) corresponde ao metodo explcito, para = 0; ao de Crank-Nicolson, para
= 1/2; e a um metodo completamente implcito, para = 1. Para 1/2 1, (11.12) e estavel
para qualquer valor de r; para 0 1/2, devemos ter r (2(1 2))1 .

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

217

Introduca
o ao C
alculo Numerico

11.2.3

Soluc
ao Numerica de Equac
oes Diferenciais Parciais

Condi
c
oes de fronteira

O principal problema, ao se resolver uma equacao diferencial parcial, e o tratamento adequado


das condicoes de fronteira.
Condicoes simples, como as de Dirichlet (u = 0), sao facilmente tratadas. Por exemplo,
considere a aproximacao central por diferencas nitas da derivada u/x,
uj+1 uj1
.
2h
Se a condicao e u = 0 em x = 0, ent
ao para o ponto na malha em j = 0, u0 = 0. Da, a
aproximacao para a derivada no primeiro ponto, x = h, i.e. j = 1, passa a ser
u1 0
2h
O mesmo procedimento e valido para outras aproximacoes em diferencas nitas, como visto nos
exemplos 11.1-11.3.
Condicoes de fronteira envolvendo derivadas ocorrem com freq
uencia, normalmente para indicar
a inexistencia de uxo naquela parte da regi
ao em estudo, ou a taxa com a qual uma dada
quantidade varia. Por exemplo, quando a superfcie de um objeto condutor de calor e termicamente
isolado, podemos dizer que
U
=0
n
i.e., a derivada de U na direcao normal `a superfcie (indicada por n) e nula.
Um outro exemplo refere-se a` transmissao de calor. A taxa com que o calor e transferido por
irradiacao de uma superfcie quente para o meio ao seu redor, e uma temperatura v, e normalmente
assumida como proporcional a U v. Como na teoria de conducao de calor a premissa fundamental
e de que o calor que ui atraves de uma superfcie e igual a U
n unidades de calor por unidade
de tempo na direcao normal a` superfcie, podemos escrever a condicao de fronteira como

U
= H(U v)
n

onde e a constante de condutividade termica do material e H e a constante de transferencia de


calor da superfcie. O sinal e tomado de forma a indicar que o uxo de calor e na direcao oposta
aquela em que U cresce algebricamente. Podemos, entao, simplicar a condicao de fronteira acima
`
para
U
= s(U v), s > 0,
n
Considere, entao, uma barra na, termicamente isolada, e que irradia calor no seu extremo
x = 0. A temperatura nesse extremo, em t = 0, e, portanto, desconhecida, e necessitamos de uma
outra equacao; essa pode ser a propria condicao de fronteira, se usarmos uma aproximacao frontal
para a derivada em U , pois
U
= s(U v)

x
ser
a aproximado por
ui,1 ui,0
= s(ui,0 v)
h
Um sinal negativo deve ser associado `a derivada pois a normal, apontando para fora da barra, em
x = 0, tem a direcao x.
Se desejarmos aproximar a derivada U/x por uma aproximacao central, ent
ao e necessario
introduzir uma celula ctcia ui,1 , imaginando-se que a barra estende-se ate h, conforme a
gura 11.5. Podemos, ent
ao, escrever
ui,1 ui,1
= s(ui,0 v)
2h
porem, agora, devemos eliminar ui,1 , j
a que ele e ctcio, conforme mostra o exemplo a seguir.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

218

Introduca
o ao C
alculo Numerico
u1

u0

Soluc
ao Numerica de Equac
oes Diferenciais Parciais
u1
h

u2

2h

un1

un

un+1 un+2

(n 1)h nh (n + 1)h (n + 2)h

Figura 11.5: Malha com pontos ctcios.


Exemplo 11.5 Seja uma barra na, termicamente isolada, a uma temperatura diferente da temperatura
ambiente, a qual irradia calor atraves das suas duas extremidades. A EDP e
2U
U
=
t
t2
sujeita `
as
CI
CF

: U = 1, 0 x 1, t = 0
 U
x = 0, t > 0
x = U,
:
U
=
U,
x = 1, t > 0
x

Obtenha as equaco
es governantes de acordo com o metodo explcito.
Solu
c
ao:Usando a equac
ao (11.6), podemos escrever, em x = 0,
ui+1,0 = ui,0 + r(ui,1 2ui,0 + ui,1 )
A CF em x = 0, usando uma aproximac
ao central, e
ui,1 ui,1
= ui,0
2h
de onde ui,1 = ui,1 2hui,0 ; substituindo na equac
ao para ui,0 , temos
ui+1,0

=
=

ui,0 + r(ui,1 2hui,0 2ui,0 + ui,1 ) =


ui,0 = 2r(ui,1 (1 + h)ui,0 )

De forma similar, em x = 1, temos como CF


ui,n+2 ui,n
= ui,n+1
2h
e, como a equac
ao (11.5) e expressa no ponto x = 1 como
ui+1,n+1 = ui,n+1 + r(ui,n 2ui,n+1 + ui,n+2 )
podemos eliminar ui,n+2 , tal que
ui+1,n+1 = ui,n+1 + 2r(ui,n (1 + h)ui,n+1 )
Para resolver esse problema, ent
ao, vamos utilizar tres equac
oes: uma para o ponto ui+1,0 , outra
para o ponto ui+1,n+1 e a equac
ao (11.6) para os pontos ui+1,j , 1 j n.

11.3

Equa
c
oes diferenciais parciais elpticas

As EDPs elpticas sao normalmente relacionadas a problemas em equilbrio e as suas solucoes


representam um maximo ou mnimo da integral que representa a energia do sistema. As mais
conhecidas, e importantes sao as equacoes de Poisson (11.2) e de Laplace (11.3). Suas aplicacoes
sao as mais variadas: p.ex., a equacao de Poisson representa o movimento de um uido viscoso
incompressvel, a baixa velocidade; a equacao de Laplace e empregada para descrever o potencial
eletromagnetico, dentre outras.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

219

Introduca
o ao C
alculo Numerico

Soluc
ao Numerica de Equac
oes Diferenciais Parciais

O intervalo de integracao de uma EDP elptica e sempre uma area S cercada por uma curva
fechada C. As condicoes de fronteira especicam ou o valor da funcao ou de sua derivada em cada
ponto de C; e comum, tambem, que em certas regioes de C seja especicado o valor da funcao e,
noutras, o da sua derivada.
A solucao de uma EDP elptica atraves de sua discretizacao em diferencas nitas leva `a solucao
de um sistema de equacoes lineares, tipicamente grande e esparso, para os quais os metodos
iterativos, apresentados no Captulo 4, s
ao particularmente indicados.
Considere a equacao
2 u = f (x, y)
(11.13)
na regi
ao R = [0, 1] [0, 1] (i.e., o quadrado unit
ario), sujeita `as condicoes de fronteira u = 0 em
R.
Discretizamos, entao, a regi
ao com uma malha cartesiana com espacamento h = 1/m, identico
nas direcoes x e y, conforme o diagrama da gura 11.6. Note que temos n = m 1 pontos ao
s
s
s
s
iy s

j
x

s
s
s
s
s

s pontos na fronteira
pontos ui,j

Figura 11.6: Malha de pontos para uma EDP elptica.


longo de cada direcao, totalizando n2 pontos ui,j onde obteremos a aproximacao para a EDP.
Aproximando as derivadas parciais de segunda ordem por diferencas nitas, temos
ui,j1 2ui,j + ui,j+1
ui1,j 2ui,j + ui+1,j
+
= f (jh, ih),
h2
h2

0 < i, j < m

(11.14)

onde jh = xj e ih = yi . Usando um ordenamento natural dos pontos ui,j na malha, ao longo


das linhas verticais, obtemos um n
umero k = (i 1)n + j, tal que ui,j uk , conforme mostrado
na gura 11.7. O ordenamento natural ao longo das linhas horizontais e equivalente: nesse caso,
teramos k = (j 1)n + i. Avaliando a equacao (11.14) em cada um dos pontos i, j, obteremos
3 6 9
2 5 8
1 4 7
iy

j
x
Figura 11.7: Ordenac
ao natural dos pontos na malha.
um sistema de equacoes lineares, conforme mostra o exemplo abaixo.
Exemplo 11.6 Calcule u que satisfaca a EDP
2 u = 2(x2 + y 2 )
na regi
ao R = [0, 1] [0, 1], sujeita a u = 0 nas linhas x = 0 e y = 0; u = y 2 na linha x = 1 e
2
u = x na linha y = 1.
Solu
c
ao: Apenas para ns de explanac
ao, vamos utilizar uma malha quadrada com m = 4,
mas cabe ressaltar que, tipicamente, devemos utilizar m 100. Dessa forma, estaremos avaliando
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

220

Introduca
o ao C
alculo Numerico

Soluc
ao Numerica de Equac
oes Diferenciais Parciais

a EDP acima em n2 = (m 1)2 = 9 pontos, o que nos levar


a a um sistema de equac
oes lineares
de 9 equac
oes a 9 vari
aveis. O espacamento e h = 1/4.
Escrevendo, ent
ao, a equac
ao (11.14) para cada um dos pontos, utilizando o ordenamento
natural conforme mostrado na gura 11.7, temos:
1 : (0 + 2u1 u4 ) + (0 + 2u1 u2 ) = 2h2 (h2 + h2 )
2 : (0 + 2u2 u5 ) + (u1 + 2u2 u3 ) = 2h2 (h2 + 4h2 )
3 : (0 + 2u3 u6 ) + (u2 + 2u3 h2 ) = 2h2 (h2 + 9h2 )
4 : (u1 + 2u4 u7 ) + (0 + 2u4 u5 ) = 2h2 (4h2 + h2 )
5 : (u2 + 2u5 u8 ) + (u4 + 2u5 u6 ) = 2h2 (4h2 + 4h2 )
6 : (u3 + 2u6 u9 ) + (u5 + 2u6 4h2 ) = 2h2 (4h2 + 9h2 )
7 : (u4 + 2u7 h2 ) + (0 + 2u7 u8 ) = 2h2 (9h2 + h2 )
8 : (u5 + 2u8 4h2 ) + (u7 + 2u8 u9 ) = 2h2 (9h2 + 4h2 )
9 : (u6 + 2u9 9h2 ) + (u8 + 2u9 9h2 ) = 2h2 (9h2 + 9h2 )
onde os valores 0 correspondem `
aqueles pontos na fronteira, pois u = 0 e a condic
ao de fronteira.
Multiplicando por 1 todas as equac
oes e combinando os termos, obtemos o seguinte sistema de
equac
oes, na forma matricial:


u1
0, 0156
4 1
1
u2 0, 0391
1
4 1
1


u3 0, 0156

1
4
1


u4 0, 0391
1
4 1
1


u5 = 0, 0625

1
1
4 1
1
(11.15)


u6 0, 1484

1
1
4
1


u7 0, 0156

1
4 1

1
1
4 1 u8 0, 1484
0, 9144
1
4
4
u9
cuja soluc
ao e
u = (0, 0039, 0, 0156, 0, 0352, 0, 0156, 0, 0625, 0, 1406, 0, 0352, 0, 1406, 0, 3164)
Note que, pela denic
ao do problema, temos u = x2 y 2 ; podemos conrmar que os valores
obtidos como soluca
o do sistema (11.15) satisfaz a EDP, como mostra a tabela 11.6.
k
1
2
3
4
5
6
7
8
9

x
0, 25
0, 25
0, 25
0, 50
0, 50
0, 50
0, 75
0, 75
0, 75

y
0, 25
0, 50
0, 75
0, 25
0, 50
0, 75
0, 25
0, 50
0, 75

u = x2 y 2
0, 0039
0, 0156
0, 0352
0, 0156
0, 0625
0, 1406
0, 0352
0, 1406
0, 3164

uk
0, 0039
0, 0156
0, 0352
0, 0156
0, 0625
0, 1406
0, 0352
0, 1406
0, 3164

erro relativo
0, 6661 1015
0, 4441 1015
0
0, 2220 1015
0, 1110 1015
0
0
0, 1974 1015
0

Tabela 11.6: Comparaca


o entre os valores calculados para u pela soluc
ao direta do sistema e a
soluc
ao exata.
Como as matrizes que surgem da discretizacao em diferencas nitas de uma EDP s
ao esparsas,
e comum se utilizar metodos iterativos na resolucao do sistema de equacoes lineares, como mostra
o exemplo a seguir.
A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

221

Introduca
o ao C
alculo Numerico

Exemplo 11.7 Resolvendo o sistema 11.15 atraves do metodo dos Gradientes-Conjugados (vide
sec
ao 4.7 e algoritmo 4.7.1), a uma toler
ancia de 1010 , obtem-se como soluc
ao
u = (0, 0039, 0, 0156, 0, 0352, 0, 0156, 0, 0625, 0, 1406, 0, 0352, 0, 1406, 0, 3164)
A tabela 11.7 mostra que os erros relativos dessa soluc
ao tambem s
ao aceit
aveis.
k
1
2
3
4
5
6
7
8
9

x
0, 25
0, 25
0, 25
0, 50
0, 50
0, 50
0, 75
0, 75
0, 75

y
0, 25
0, 50
0, 75
0, 25
0, 50
0, 75
0, 25
0, 50
0, 75

u = x2 y 2
0, 0039
0, 0156
0, 0352
0, 0156
0, 0625
0, 1406
0, 0352
0, 1406
0, 3164

uk
0, 0039
0, 0156
0, 0352
0, 0156
0, 0625
0, 1406
0, 0352
0, 1406
0, 3164

erro relativo
0, 1332 1014
0, 0555 1014
0, 0197 1014
0, 0555 1014
0, 0222 1014
0, 0197 1014
0, 0395 1014
0, 0197 1014
0, 0175 1014

Tabela 11.7: Comparac


ao entre os valores calculados para u pela soluc
ao iterativa do sistema,
atraves do metodo dos Gradientes-Conjugados, e a soluc
ao exata.
Assim como nas equacoes parab
olicas, pode-se especicar condicoes de Neumann (envolvendo
derivadas) na fronteira.

11.4

Exerccios

Exerccio 11.1 Considere a equaca


o
2U
U
= 2,
t
x

<1

Estabeleca a condic
ao necess
aria para convergencia de um metodo explcito e mostre o que acontece
quando = 0, 5 e = 106 .
Exerccio 11.2 Calcule a soluc
ao aproximada de
2U
U
2U
U
sen(x)
=0
+
+ cos(y)
2
2
x
y
x
y
no ret
angulo unit
ario, com condico
es de Dirichlet na fronteira. Resolva o problema atraves de
uma aproximac
ao em diferencas-nitas, utilizando diferencas ascendentes para as derivadas de
primeira ordem.
Exerccio 11.3 Resolva o exerccio 11.2 utilizando diferencas centrais para as derivadas de primeira
ordem. Explique o que ocorre.

A.L. de Bortoli, C. Cardoso, M.P.G. Fachin, R.D. da Cunha

222