Escolar Documentos
Profissional Documentos
Cultura Documentos
NOTAS2010Teresa PDF
NOTAS2010Teresa PDF
NOTAS DE AULAS
M. Teresa Diogo
Departamento de Matemática
Instituto Superior Técnico, Lisboa, Portugal
Murilo Tomé
Instituto de Ciências Matemáticas e Computação
USP de São Carlos, Brasil
versão 2009
Índice
1.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3.1 Bases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.3 Arredondamentos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
1.5.1 Condicionamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2
2.3 EXERCÍCIOS RESOLVIDOS . . . . . . . . . . . . . . . . . . . . . . . . . . 57
3
7 EXERCÍCIOS PROPOSTOS 150
Bibliografia 154
1 Conceitos Básicos da Teoria dos Erros
1.1 Introdução
Neste curso de Análise Numérica, vamos estudar métodos que permitem resolver problemas
cientı́ficos usando um computador. Podemos considerar três fases distintas no processo de
resolução. A primeira fase consiste em expressar matematicamente o problema cientı́fico.
Obtem-se assim um modelo matemático, que podemos definir como sendo uma expressão
matemática que relaciona grandezas (fı́sicas, de engenharia, de economia, etc). Um exemplo
dum modelo matemático será a expressão da segunda lei de Newton do movimento
d2
m x(t) = F (t) (1.1)
dt2
que relaciona a posição, num instante t, dum corpo com massa m, com uma força aplicada F .
Obtencao
Problema Modelo
da Solucao
Fisico Matematico
Metodo
Numerico
2
Tipos de erros num processo de cálculo
Para analisar a qualidade dum resultado numérico, devemos estar cientes das possı́veis
fontes de erro ao longo de todo o processo. Podemos considerar basicamente três tipos de
erros: erros inerentes, erros do método e o erro computacional. Fazemos notar que é o efeito
do erro total, o qual engloba todos os tipos de erros originados ao longo dum processo,
que afecta a qualidade duma solução aproximada. Há certos problemas nos quais a um
”pequeno” erro introduzido num certo passo dos cálculos, corresponde um erro ”grande” na
solução final. Um problema deste tipo diz-se mal condicionado.
Erros inerentes
Erros do método
Uma outra classe de erros resulta do uso de fórmulas que nos dão valores aproximados e
não exactos. Por exemplo, consideremos a série de MacLaurin para representar ex
x2 xn
ex = 1 + x + + ··· + + ···
2! n!
Se quisermos aproximar o valor eα , onde α é um número real, teremos de nos limitar a usar
um número finito de termos da série
α2 αk
eα ' 1 + α + + ··· +
2! k!
O erro que cometemos é chamado erro de truncatura e corresponde neste exemplo ao resto
de ordem k da série.
Erro computacional
3
1.2 Erro absoluto e erro relativo
Seja x o valor exacto duma grandeza real e seja x̃ uma aproximação de x, ou seja x ' x̃.
Designa-se por ex
ex = x − x̃ (1.2)
o erro de x̃ em relação a x. Ao valor |ex | chama-se erro absoluto de x̃. Se x 6= 0, denota-se
por δx
x − x̃
δx = (1.3)
x
e chama-se a |δx | o erro relativo de x̃ .
Observamos que o erro absoluto pode não ser de grande utilidade para informar sobre a
qualidade duma aproximação, se não se souber a ordem de grandeza da quantidade a medir.
Basta dizer que um erro de um metro na medição da distância da Terra a Saturno seria
óptimo, mas se um cirurgião cometesse um erro dessa ordem ao fazer uma incisão seria um
desastre possivelmente até fatal ! Incluı́mos ainda o seguinte exemplo.
1.3.1 Bases
A base decimal é aquela com que estamos mais familiarizados. Todo o número inteiro se
pode representar como uma combinação linear de potências de 10, com coeficientes variando
4
entre 0 e 9. Por exemplo, o número 415 pode-se escrever na forma
415 = 400 + 10 + 5
= 4 × 102 + 1 × 101 + 5 × 100 .
o que se representa simbolicamente por (4 1 5)10 (na prática omite-se o 10). De modo geral,
usa-se a notação
σ(bm bm−1 · · · b1 b0 )10
para representar o valor (inteiro)
σ(bm 10m + bm−1 10m−1 + · · · + b1 101 + b0 100 ),
com σ ∈ {+, −} e 0 ≤ bi ≤ 9, bm 6= 0.
Os números fraccionários podem ser representados na base 10, usando o ponto decimal.
Um número entre 0 e 1 pode ser escrito na forma
(0.a1 a2 · · · an · · ·)10
que representa o valor
a1 10−1 + a2 10−2 + · · · + an−1 10−n+1 + an 10−n + · · ·
Finalmente, um número real qualquer não nulo pode ser representado no sistema decimal
por
σ(bm bm−1 · · · b1 b0 .a1 a2 · · · an · · ·)10
Por exemplo, 12.34 representa
1 × 101 + 2 × 100 + 3 × 10−1 + 4 × 10−2 .
Outras bases, tais como 2, 12, 20 e 60 foram usadas por civilizações anteriores para
representação dos números. De modo geral, um número real X 6= 0 pode ser representado
numa base β por
X = σ(bm β m + bm−1 β m−1 + · · · + b1 β 1 + b0 β 0 + a1 β −1 + a2 β −2 + · · · + an−1 β −n+1 + an β −n + · · ·),
ou, simbolicamente, por
σ(bm bm−1 · · · b1 b0 .a1 a2 · · · an−1 an · · ·)β ,
onde os bi , ai são inteiros compreendidos entre 0 e β − 1.
Exemplo 1.2
(101)2 representa 1 × 22 + 1 × 20 = 5
(1100)2 representa 1 × 23 + 1 × 22 = 12
(0.101)2 representa 1 × 2−1 + 1 × 2−3 = 0.625
(0.000110011 · · ·)2 representa 0.1
5
1.3.2 Sistemas de vı́rgula flutuante
Num computador, os números reais são em geral representados em vı́rgula flutuante na base
β = 2. Outras bases usadas por computadores são β = 8 e β = 16. De modo geral, um
número de vı́rgula flutuante na base β e com n dı́gitos é um número que pode ser escrito na
forma
x = σ (0.a1 a2 · · · an )β × β t , σ ∈ {+, −}, (1.4)
onde 0 ≤ ai ≤ β − 1, i = 1, 2, · · · , n, t1 ≤ t ≤ t2 , sendo t, t1 e t2 inteiros.
1.3.3 Arredondamentos
Para representar este número em vı́rgula flutuante com n dı́gitos, podemos simplesmente
desprezar os dı́gitos an+1 an+2 · · · Este processo é conhecido por arredondamento por corte.
O número x passa a ser representado por
f l(x) = σ (0.a1 a2 · · · an )β × β t . (1.6)
6
Exemplo 1.3 Suponhamos β = 10 e n = 2
(
2 0.67 × 100 arred. simétrico
f l( ) =
3 0.66 × 100 arred. por corte
(
−0.84 × 103 arred. simétrico
f l(−838) =
−0.83 × 103 arred. por corte
(
0.10 × 103 arred. simétrico
f l(99.5) =
0.99 × 102 arred. por corte
Seja x = σ(0.a1 a2 · · · an an+1 · · ·) × 10t , e suponhamos que f l(x) é obtido por arredonda-
mento simétrico.
7
Para obter um majorante do erro relativo, notemos que a1 6= 0 implica |x| ≥ 0.1 × 10t .
Então
|x − f l(x)| 0.5 × 10t−n
≤ = 5 × 10−n = 0.5 × 101−n . (1.10)
|x| 0.1 × 10t
A análise efectuada para um sistema VF decimal estende-se ao caso duma base β par.
Seja x um número da forma (1.33). No caso de arredondamento por corte, tem-se
|x − f l(x)| ≤ β t−n (1.13)
|x − f l(x)|
≤ β 1−n . (1.14)
|x|
No caso de arredondamento simétrico, obtém-se
|x − f l(x)| ≤ (1/2) β t−n (1.15)
|x − f l(x)|
≤ (1/2) β 1−n . (1.16)
|x|
É interessante notar que nenhum dos majorantes dos erros relativos depende de x, mas
apenas da base β, do número de dı́gitos n usado pelo computador e, é claro, do processo de
arredondamento utilizado.
Assim, se f l(x) é a representação em VF dum número real x, o seu erro relativo não
excede U. É por isso fundamental conhecer a unidade de arredondamento do sistema de
vı́rgula flutuante do computador que se usa.
8
1.3.5 Algarismos significativos
x̃ = σ (0.a1 a2 · · · an ) × 10t
Concluimos que se
1
|ex | = |x − x̃| ≤ 10t−n , (1.18)
2
os n algarismos de x̃ são significativos.
Exercı́cio
Em vı́rgula flutuante com 4 dı́gitos, sejam x = 0.4537 × 104 e x̃ = 0.4501 × 104 . Determine
o número de algarismos significativos de x̃.
Tem-se que
|ex | = 0.0036 × 104 = (0.36 × 10−2 ) × 104 ,
logo verifica-se (1.17) com i = 1, 2. Como além disso
Uma questão importante em Análise Numérica é a do modo como um erro num certo
passo dos cálculos se vai propagar. Interessa-nos saber se o efeito desse erro se tornará maior
ou menor, à medida que vão sendo efectuadas as restantes operações.
9
1.4.1 Cálculo de valores funcionais usando dados com erros
com ξ ∈ I = int(x, x̃) = (min {x, x̃} , max {x, x̃}), donde
|ex | ≤ η ⇔ x̃ − η ≤ x ≤ x̃ + η
Note que
I = int(x, x̃) ⊆ [x̃ − η, x̃ + η] ⇒ max |f 0 (t)| ≤ max |f 0 (t)|.
t∈I t∈[x̃−η,x̃+η]
A fórmula (1.20) diz respeito ao erro absoluto de f . Pode obter-se um majorante para o
erro relativo de f , do modo seguinte
ef |ex | |x| |x|
|δf | = | | ≤ max |f 0 (t)| = max |f 0 (t)| |δx |
f (x) t∈I |x| |f (x)| t∈I |f (x)|
Exercı́cio. Suponha que estamos a trabalhar num sistema decimal com 4 √ dı́gitos. √
De-
termine um majorante do erro (absoluto) que se comete ao aproximar o valor x por x̃,
onde x̃ = 0.4000 × 10 é um valor aproximado de x com 3 algarismos significativos.
10
Como x̃ tem 3 algarismos significativos, |η| ≤ 0.5 × 10−2 e então
1
|ef | ≤ √ 0.5 × 10−2 ' 0.12508 × 10−2 .
2 3.995
donde concluimos que, neste caso, a fórmula (1.22) dá uma estimativa do erro absoluto por
excesso.
Consideremos agora o seguinte problema mais geral, de uma função de 2 variáveis. Supon-
hamos que se pretende calcular o valor de f (x, y) usando os valores aproximados x̃, ỹ em vez
de x, y, respectivamente. Supondo que fx0 e fy0 são contı́nuas, tem-se
onde ξ1 ∈ int(x, x̃) e ξ2 ∈ int(y, ỹ). Se |ex | ≤ ηx e |ey | ≤ ηy e, por outro lado, max|fx0 | ≤ Mx
e max|fy0 | ≤ My no intervalo [x̃ − ηx , x̃ + ηx ] × [ỹ − ηy , ỹ + ηy ], obtém-se a seguinte fórmula
Adição
ex+y = ex + ey . (1.24)
11
Subtracção
De maneira análoga
ex−y = ex − ey . (1.25)
Multiplicação
donde
ex.y ' x̃ey + ỹex . (1.26)
Divisão
Tem-se sucessivamente
x̃ + ex
x/y =
ỹ + ey
x̃ + ex 1
= ( ).
ỹ 1 + ey /ỹ
Substituindo acima e desprezando os termos que involvem potências de |ey /ỹ| superiores a
um, obtem-se a estimativa
x x̃ ex x̃
' + − ey .
y ỹ ỹ (ỹ)2
Daqui resulta
1 x̃
ex/y ' ex − ey . (1.27)
ỹ (ỹ)2
Note-se que as fórmulas (1.24)-(1.27) dão-nos uma indicação sobre o erro no resultado
de cada uma das operações aritméticas, admitindo que não houve arredondamento depois de
efectuada a operação.
12
Exercı́cio
Determine o número de algarismos significativos que se pode garantir para x̃ + ỹ como
aproximação de x + y, sabendo que x̃ = 0.425 × 103 e ỹ = 0.326 × 103 têm os três algarismos
significativos (despreze os erros de arredondamento).
x̃ + ỹ = 0.751 × 103 .
As fórmulas (1.24)-(1.27) dizem respeito à propagação dos erros nas quatro operações ar-
itméticas. A partir destas obtêm-se as seguintes estimativas para as quantidades δx4y =
ex4y /(x 4 y) (4 designa uma operação aritmética).
ex+y x̃ ỹ
δx+y = ' δx + δy (1.28)
x+y x̃ + ỹ x̃ + ỹ
ex−y x̃ ỹ
δx−y = ' δx − δy (1.29)
x−y x̃ − ỹ x̃ − ỹ
ex.y
δx.y = ' δx + δy (1.30)
xy
ex/y
δx/y = ' δx − δy . (1.31)
x/y
Estas estimativas foram calculadas usando x̃ e ỹ em vez de x e y (ver Nota, parágrafo 1.2).
As fórmulas (1.28)-(1.31) dão-nos uma indicação sobre o erro no resultado de cada uma
das operações aritméticas, como funções de x̃ e ỹ, δx e δy , admitindo que não houve arredonda-
13
mento depois de efectuada a operação. Se no entanto quisermos saber como o erro deste re-
sultado se propaga em ainda outras operações aritméticas subsequentes, teremos de adicionar
o erro de arredondamento explicitamente.
Exercı́cio
Seja v = xy + z e sejam os números de vı́rgula flutuante x̃, ỹ e z̃ valores aproximados de x, y
e z, com erros relativos |δx |, |δy | e |δz |, respectivamente. Determine uma estimativa do erro
relativo no cálculo de v, num computador com unidade de arredondamento U, e usando os
valores aproximados.
u = xy
v = u + z. (1.32)
14
1.5 Condicionamento e estabilidade
1.5.1 Condicionamento
1 1 41
x1 + x2 =
20 21 420
1 1 43
x1 + x2 = (1.35)
21 22 462
com solução exacta x1 = x2 = 1.
Tem-se
1 1 1
= 0.05 = 0.0476190... = 0.0454545...
20 21 22
e
41 43
= 0.09761... = 0.0930736...
420 462
Consideremos ainda o sistema
15
e
|x2 − x̃2 |
|δx2 | = ' 1.18 ⇒ 118% de erro
|x2 |
Ou seja, uma pequena mudança relativa nos dados correspondeu uma grande mudança rel-
ativa na solução.
Um problema cuja solução é muito sensı́vel a variações ou mudanças nos dados e parâmetros
diz-se mal condicionado. Um problema diz-se bem condicionado se pequenas variações nos
dados e parâmetros produzem sempre pequenas variações na solução.
20.422 + 0.999201 i, 20.422 − 0.999201 i, como mostra o gráfico seguinte. Conclui-se que
as raizes de p são extremamente sensı́veis a variações nos coeficientes.
5
4
3
2
1
16
Número de condição
Para alguns problemas é possı́vel definir um ”número de condição”, que se utiliza como
indicador de mau-condicionamento.
Suponhamos que pretendemos calcular o valor de uma função f num ponto x. Põe-se a
questão: se x for ligeiramente perturbado, qual o efeito em f (x) ?
Designando x̃ = x + h, vem
" #µ ¶
f (x̃) − f (x) (x̃ − x) f 0 (x) x f 0 (x) x̃ − x
≈ = (1.40)
f (x) f (x) f (x) x
Ou seja " #µ ¶
f (x̃) − f (x) x f 0 (x) x̃ − x
≈ (1.41)
f (x) f (x) x
Tomando módulos: ¯ ¯ ¯ ¯
¯ f (x̃) − f (x) ¯ ¯ x f 0 (x) ¯ ¯¯ x̃ − x ¯¯
¯ ¯ ¯ ¯¯ ¯,
¯ ¯≈¯ ¯ (1.42)
¯ f (x) ¯ ¯ f (x) ¯ ¯ x ¯
ou seja, em termos dos erros relativos de f (x̃) e de x̃
|δf (x) | ≈ condf |δx |. (1.43)
Acima designámos por condf o valor |x f 0 (x)/f (x)|, a que se chama número de condição.
A fórmula (1.43) permite relacionar o erro relativo de f (x̃) com o erro relativo de x̃. Se
condf = 1 então o erro relativo de f (x̃) é igual ao de x. No caso dum valor superior a 1, o
erro relativo de f (x̃) vem maior do o de x̃. Se para certos valores de x o número de condição
é muito grande (≈ infinito) temos uma situação de mau condicionamento.
Tem-se
x f 0 (x) x
=√
f (x) 1 − x2 (arcsin(x))
Para valores de x perto de 1, arcsin(x) ≈ π/2. Então
√ √
x/( 1 − x2 (arcsin(x))) ≈ 2x/(π) 1 − x2
e, assim, o número de condição torna-se infinito à medida que x se aproxima de 1. Podemos
concluir que pequenos erros relativos em x levam a grandes erros relativos em arcsin(x),
para valores de x perto de 1.
17
1.5.2 Estabilidade de um algoritmo
Algoritmo instável
Uma maneira de gerar os termos da sucessão (1.44) é usar a seguinte fórmula de recorrência
1
x0 = 1, x1 =
3 (1.45)
10
xn+1 = xn − xn−1 , n ≥ 1.
3
Verifica-se facilmente, por indução, que esta relação de recorrência gera a sucessão (1.44).
Com efeito, para n = 0 e n = 1 (1.44) verifica-se. Supondo que (1.44) é válida para n ≤ m,
tem-se
µ ¶ µ ¶m−1
10 10 1 m 1
xm+1 = xm − xm−1 = −
3 3 3 3
µ ¶m−1 · ¸ µ ¶m+1
1 10 1
= −1 =
3 9 3
18
n Algor. (1.45)(5 dı́gitos) Algor. (1.45)(16 dı́gitos) valores exactos
0 0.10000 × 101 0.10000 × 101 x0 = 0.10000 × 101
1 0.33333 × 100 0.33333 × 10 0
x1 = 0.33333 × 100
2 0.11110 × 100 0.11111 × 100 x2 = 0.11111 × 100
3 0.37000 × 10−1 0.37037 × 10−1 x3 = 0.37037 × 10−1
4 0.12230 × 10−1 0.12346 × 10 −1
x4 = 0.12346 × 10−1
5 0.37660 × 10−2 0.41152 × 10−2 x5 = 0.41152 × 10−2
6 0.32300 × 10−3 0.13717 × 10−2 x6 = 0.13717 × 10−2
7 −0.26893 × 10−2 0.45725 × 10 −3
x7 = 0.45725 × 10−3
8 −0.92872 × 10−2 0.15242 × 10−3 x8 = 0.15242 × 10−3
9 −0.28268 × 10−1 0.50805 × 10 −4
x9 = 0.50805 × 10−4
10 −0.84939 × 10−1 0.16935 × 10−4 x10 = 0.16935 × 10−4
.. .. ..
. . .
18 −0.5573 × 103 −0.54587 × 10 −8
x18 = 0.25812 × 10−8
.. .. ..
. . .
30 −0.29611 × 109 −0.42727 × 10−2 x30 = 0.48569 × 10−14
.. .. ..
. . .
Note que de (1.44) se tem limn→∞ xn = 0, sendo isso ilustrado na coluna 4 da tabela. Tal
não acontece com os valores obtidos com a fórmula de recorrência (1.45), independentemente
do número de dı́gitos usado nos cálculos (ver colunas 2 e 3 da tabela).
Verificamos que x1 foi arredondado com erro |δx1 | ≤ 0.5 × 10−4 . Esse erro propagou-se
aos valores seguintes, alterando por completo os resultados. Por exemplo, com 5 dı́gitos,
em vez do valor x8 = 0.15242 × 10−3 obteve-se −0.92872 × 10−2 , o que apresenta um erro
absoluto de 0.00943962 e um erro relativo de 59.9, ou seja, cerca de 6000% de erro. Usando
maior precisão não resolve o problema, só que o efeito da acumulação de erros aparece mais
à frente. Por exemplo, comparando as colunas 3 e 4, vemos que com 16 dı́gitos os resultados
são similares até mais tarde do que no caso de se usarem 5 dı́gitos . Mas já em vez de
x18 = 0.25812 × 10−8 , obteve-se −0.54587 × 10−8 , a que corresponde um erro relativo de
cerca de 3, ou seja, 300% de erro. Prosseguindo, as coisas pioram e o valor −0.42727 × 10−2
é uma aproximação para x30 com erro relativo de ' 8.8 × 1011 .
Pode-se dizer que (1.45), depois de implementado, traduziu-se num algoritmo instável.
Algoritmo estável
19
Cancelamento subtractivo
Exemplo 1.9
Exemplo 1.10
20
2 Resolução de equações não lineares
Dada uma função f definida num intervalo [a, b], pretendemos determinar as raı́zes da
equação f (x) = 0 (ou os zeros da função f ), isto é, os valores z tais que f (z) = 0. Neste
capı́tulo estudaremos métodos para a obtenção de valores aproximados de z.
Primeiramente há que determinar, para cada raiz, um intervalo que a contenha. Isso pode
ser feito recorrendo ao estudo gráfico e teórico de f . Exemplificamos em seguida.
a1 b1 a2 b2 a3 b3
Z1 Z2 Z3 X
Análise gráfica
21
1
0.75
0.5
0.25
-0.5
Gráfico da função f (x) = (x/2)2 − sin x
Neste caso é possı́vel ver pelo gráfico de f que a raiz positiva de f (x) = 0 está no intervalo
[π/2, 2.0]. Na verdade, ela parece próxima de 1.9.
Exemplo 2.2 Uma outra maneira de proceder é reescrever a equação numa forma equiva-
lente. Tem-se
µ ¶2 µ ¶2 (
x x y = (x/2)2
− sin x = 0 ⇐⇒ = sin x ⇐⇒
2 2 y = sin x
O gráfico sugere que a equação f (x) = 0 tem uma raiz no intervalo [π/2, 2.0]; corresponde
à projecção, no eixo dos xx, da intersecção dos gráficos das funções y = (x/2)2 e y = sin x.
1.25
0.75
0.5
0.25
22
Análise teórica
Na análise teórica, são usados os seguintes Teoremas, que são corolários, respectivamente,
do Teorema do valor intermédio para funções e do Teorema de Rolle.
Teorema 2.1 Seja f (x) ∈ C[a, b]. Se f (a) × f (b) < 0 então existe pelo menos um z ∈]a, b[
tal que f (z) = 0.
0
Teorema 2.2 Seja f (x) ∈ C[a, b]. Se f (x) existe e tem sinal constante em ]a, b[ então f
não pode ter mais de um zero em ]a, b[.
Para a função f (x) = (x/2)2 − sin x do exemplo 2.1, tem-se f (π/2) = (π 2 )/16 − 1 < 0
e f (2) = 1 − sin 2 > 0. Logo podemos concluir que f tem pelo menos um zero no intervalo
0 0
I=[π/2, 2]. Além disso, tem-se f (x) = x/2 − cos x e f 00 (x) = 1/2 + sin x > 0 em I. Logo f (x)
é monótona crescente em I e, como f 0 (π/2) = π/4 > 0, então f 0 não se anula no intervalo I.
Conclui-se que a raiz da equação nesse intervalo é única.
Escolhida uma aproximação ”grosseira” para a raiz z, contida no intervalo obtido na secção
2.1, pretende-se melhorar essa aproximação utilizando um método iterativo.
Dada a aproximação inicial x0 ∈ [a, b], um método iterativo (convergente) permite obter
sucessivas aproximações para z:
x1 , x 2 , x 3 , · · · , x m , · · ·
onde limm→∞ xm = z. O processo pára quando uma certa precisão for atingida; são
exemplos de critérios de paragem:
ou
2. |f (xm )| ≤ ² (ii)
Observação É importante notar que os dois critérios acima não são equivalentes, ou
seja, que nem sempre é possı́vel satisfazer (i) e (ii) simultâneamente.
23
2.2.1 Método da bissecção
O método da bissecção é um dos métodos numéricos mais antigos, permitindo uma inter-
pretação geométrica simples.
Seja f (x) contı́nua em [a, b] com f (a)f (b) < 0 e suponhamos que z é a única raiz em
[a, b].
f(b)
I1
a0= a x1 x 3 I3
x2 b0= b
I2
f(x 1 )
f(a)
Toma-se para aproximação seguinte o ponto médio do intervalo I0 , isto é, faz-se x1 =
(b + a)/2. Em seguida analisa-se o sinal da função f nos pontos a, x1 , b para decidir de que
lado de x1 se encontra z. Suponhamos, como é o caso da figura, que f (x1 ) × f (a) > 0 e
que f (x1 ) × f (b) < 0. Então z ∈ [x1 , b] e define-se I1 = [a1 , b1 ] = [x1 , b]. O comprimento
de I1 é agora (b − a)/2 e o seu ponto médio é x2 = (b1 + a1 )/2. Procedendo como para I0 ,
suponhamos que f (a1 )×f (x2 ) < 0 e que f (x2 )×f (b1 ) > 0. Então z ∈ I2 = [a2 , b2 ] = [a1 , x2 , ].
E o processo continua. Abaixo ilustramos esquematicamente estas ideias.
24
I0 = [a, b], |I0 | = b − a
b+a b−a
x1 = , |I1 | =
2 2
b1 + a 1 b−a
x2 = |I2 | =
2 22
b2 + a 2 b−a
x3 = |I3 | =
2 23
.. ..
. .
bk−1 + ak−1 b−a
xk = |Ik | = k
2 2
Obtiveram-se intervalos, contendo z, de amplitude cada vez mais pequena. São válidos
os seguintes majorantes para os erros das sucessivas aproximações de z.
z, x1 ∈ I0 =⇒ |ex1 | = |z − x1 | ≤ (b − a)/2
z, x2 ∈ I1 =⇒ |ex2 | = |z − x2 | ≤ (b − a)/22
z, x3 ∈ I2 =⇒ |ex3 | = |z − x3 | ≤ (b − a)/23
..
.
de modo geral
Da relação
b−a
0 ≤ |exk | = |z − xk | ≤ −→ 0
2k
concluı́mos que
k→∞
x1 , x2 , x3 , . . . , xk . . . −→ z. Temos assim o seguinte resultado.
Teorema 2.3 Seja f (x) contı́nua em [a, b] com f (a)f (b) < 0 e seja z a única raiz de f em
[a, b]. Então o método da bissecção converge e tem-se a seguinte estimativa de erro
b−a
|exk | = |z − xk | ≤ (2.2)
2k
25
Qual o número de iterações necessárias para se obter a precisão desejada ?
Exemplo 2.3
Finalizamos esta secção com uma tabela que mostra os resultados numéricos obtidos pelo
método da bissecção aplicado à equação
µ ¶2
x
f (x) = − sin x = 0, x ∈ [1.5, 2].
2
Começando com I0 = [1.5, 2], foram obtidos os intervalos Ik−1 = [ak−1 , bk−1 ], cujo ponto
médio é xk = (bk + ak )/2.
26
2.2.2 Método do ponto fixo
g(x) = x, (2.3)
já que, como veremos, os métodos do ponto fixo foram concebidos para equações deste
tipo especial. Os resultados obtidos poderão depois ser aplicados a qualquer equação geral
f (x) = 0, depois de esta ser reescrita na forma g(x) = x. Notemos que a construção de tal
g(x) é sempre possı́vel mas não é única. Vejamos exemplos.
Exemplo 2.4
A equação
x3 − 3 x + 1 = 0. (2.4)
é equivalente a
1 + x3
i) = x
3 }
| {z
g(x)
Atendendo a que
x3 − 3 x + 1 = 0 ⇐⇒ x(x2 − 3) + 1 = 0,
podemos ainda reescrever (2.4) na forma
1
ii) = x
3 − x2
| {z }
g(x)
Exemplo 2.5
i) − ln x = x ou :
| {z }
e−x = x.
ii) |{z}
g(x) g(x)
27
Exemplo 2.6
Definição 2.1 : As raı́zes de uma equação da forma g(x) = x chamam-se pontos fixos
da função g. Ou seja, z é ponto fixo de g se o valor de g em z for igual ao próprio z.
Interpretação geométrica
y(x) = g(x)
z1
z2
y (x) = x
z1 , z2 pontos fixos de g
28
Exemplo 2.7
1.5
0.5
-0.5
Exemplo 2.8
A função g(x) = x2 + 1 não tem pontos fixos, já que a equação x2 + 1 = x não tem soluções
reais.
1.5
0.5
-1 -0.5 0.5 1
-0.5
-1
Exemplo 2.9
No caso da função g(x) = x, todo o número real é ponto fixo de g. Ou seja, o conjunto
dos pontos fixos de g é R.
29
Exemplo 2.10
0.3
0.2
0.1
-0.1
-0.2
-0.3
A função g tem múltiplos pontos fixos
Existência e unicidade
O nosso primeiro objectivo é deduzir condições que garantam que uma dada função g
tenha pelo menos um ponto fixo. Ou seja, quando poderemos concluir que o gráfico de g
intersecta o gráfico da recta y = x pelo menos uma vez ?
Do exemplo 2.9 concluimos que, para tal, não basta f ser uma função contı́nua. Mas se
juntarmos mais uma condição, obtemos o seguinte.
Teorema 2.4 (Existência) Seja g definida e contı́nua em I = [a, b] e tal que g(I) ⊂ I.
Então g tem pelo menos um ponto fixo z ∈ I.
y=x
b
B
g
A
a
a b
30
Intuitivamente, vemos que para ir de A a B, o gráfico de g tem de cortar o da recta y = x
pelo menos uma vez. Provemos esta afirmação matematicamente.
Excluı́do este caso trivial, seja g(a) 6= a e g(b) 6= b. Então g(a) > a e g(b) < b, donde
g(a) − a > 0 e g(b) − b < 0. Isto implica que a função h(x) = g(x) − x vai ter sinais
contrários em a e b. Sendo h contı́nua, vai existir um z ∈]a, b[ tal que h(z) = 0. Esse z
verifica g(z) − z = 0, ou seja, trata-se de um ponto fixo de g. 2
Para garantir que o gráfico de g intersecte o da recta y = x uma só vez, o exemplo 2.10
sugere que se imponha alguma restrição sobre a variação de g.
Teorema 2.5 (Existência e unicidade) Seja g definida e diferenciável em I = [a, b], tal
que:
g(I) ⊂ I (2.5)
0
max |g (x)| = L, 0 < L < 1. (2.6)
x∈[a,b]
Então g tem exactamente um ponto fixo em I. Ou seja, existe um único z ∈ [a, b] tal que
g(z) = z.
0
|z1 − z2 | ≤ max |g (x)||z1 − z2 | ≤ L|z1 − z2 |
x∈[a,b]
Como 0 < L < 1, resulta a relação |z1 − z2 | < z1 − z2 |. Assim, a hipótese z1 6= z2 conduziu
a um absurdo, pelo que só poderá ter-se z1 = z2 . 2
Estabelecemos condições suficientes para que g tenha um único ponto fixo em I = [a, b].
Seja z esse ponto fixo, isto é, g(z) = z.
O método que vamos empregar é chamado método (ou iteração) do ponto fixo e é dado
pelo seguinte algoritmo:
31
Começando com x0 escolhido em I, faz-se
Vamos em seguida mostrar que, nas condições do Teorema 2.5, a sucessão (2.7) converge
e determinaremos um majorante para o erro ao fim de m passos.
Então
(a) g tem exactamente um ponto fixo em I. Ou seja, existe um único z ∈ [a, b] tal que
g(z) = z.
(b) Dada uma qualquer aproximação inicial x0 ∈ [a, b], a sucessão xm+1 = g(xm ), m=
0, 1, 2, . . . converge para o ponto fixo z.
Dem: A parte (a) já foi provada. Vejamos (b). Começamos por notar que, da condição
g(I) ⊂ I, resulta que se x0 ∈ I, então todas as iteradas xm , m = 1, 2, . . . também estão
contidas em I. Tem-se
|z − xm+1 | ≤ L |z − xm | m = 0, 1, 2, . . . (2.10)
e, sendo 0 < L < 1, resulta que |z − xm+1 | < |z − xm |. Isto permite concluir que xm+1 é
melhor aproximação para z do que xm .
32
Para provar que xm → z, ou seja, que z − xm −→ 0, apliquemos sucessivamente (2.10).
Vem
|z − x1 | ≤ L |z − x0 |
|z − x2 | ≤ L |z − x1 | ≤ L2 |z − x0 |
|z − x3 | ≤ L |z − x2 | ≤ L2 |z − x1 | ≤ L3 |z − x0 |
em geral
|z − xm | ≤ Lm |z − x0 | m = 0, 1, 2, . . .
Exemplo 2.11
2
Seja a função g(x) = (x2 − 1)/3. Se g tiver pontos fixos eles são dados resolvendo x 3−1 = x.
Tem-se √
x2 − 1 2 3 ± 13
= x ⇐⇒ x − 1 − 3x = 0 ⇐⇒ x =
3 2
√
Da equação
√ anterior concluimos que g tem exactamente 2 pontos fixos. Como 13 ∈ [3, 4],
então 13/2 ∈ [1.5, 2] e uma estimativa grosseira para os pontos fixos de g (ou seja, as raı́zes
da equação x2 − 1 − 3x = 0) será a seguinte: existirá um ponto fixo z1 ∈ [−1, 0] e um outro
positivo z2 ∈ [3, 4].
-1 1 2 3 4
-1
33
0 0
(i) Tem-se g (x) = 2x/3. Então g ∈ C 1 [−1, 0], já que g e g são funções contı́nuas.
(ii) g(I) ⊂ I ?
0
Para verificar se g(I) ⊂ I, notemos que, sendo g (x) < 0 para x ∈ I, então g é uma função
decrescente em I. Como além disso g(−1) = 0 ∈ I e g(0) = −1/3 ∈ I, a monotonicidade de
g permite concluir que g(x) ∈ I, para qualquer x ∈ I.
0
(iii) maxx∈[a,b] |g (x)| = L, 0 < L < 1?
0 0
Tem-se |g (x)| = 2|x|/3 e, para −1 ≤ x ≤ 0, vem |g (x)| ≤ 2/3 < 1. Assim a condição (2.8)
é verificada com L = 2/3.
Fica assim confirmada a existência de um único ponto fixo z1 ∈ [−1, 0] para a função
g. Além disso, a sucessão xm+1 = g(xm ) = (x2m − 1)/3 converge para z1 , qualquer que
seja a aproximação inicial x0 ∈ [−1, 0]. Escolhendo, por exemplo, x0 = 0, obtém-se
02 − 1 1
x1 = g(x0 ) = = − ≈ −0.3333333
3 3
(−1/3)2 − 1
x2 = g(x1 ) = ≈ −0.296296
2
3
x −1
x3 = g(x2 ) = 2 ≈ −0.304069
3
x2 − 1
x4 = g(x3 ) = 3 ≈ −0.302514
2
3
x −1
x5 = g(x4 ) = 4 ≈ −0.302828
3
x6 = g(x5 ) ≈ −0.302765
x7 = g(x6 ) ≈ −0.302778
x8 = g(x7 ) ≈ −0.302775
Obs. 1) O Teorema do ponto fixo dá-nos apenas condições suficientes para existência
de um único ponto fixo.
(iii) Sendo g 0 (x) = 2x/3 crescente e g 0 (3) = 2 > 1, tem-se g 0 (x) > 1 para todo o x ∈ I.
34
Teorema 2.7 : (Teorema da convergência local) Seja g(x) diferenciável num intervalo
0
aberto contendo o ponto fixo z de g. Se |g (z)| < 1, então existe um ² > 0 tal que a iteração
do ponto fixo xm+1 = g(xm ), m = 0, 1, 2, . . . converge para z qualquer que seja a aproximação
inicial x0 que verifica |z − x0 | < ².
0 0
Dem: Por hipótese |g (z)| < 1. Sendo g (x) contı́nua num intervalo aberto que contém
z, então existe ² > 0 tal que
0
x ∈ I² := [z − ², z + ²] ⇒ |g (x)| ≤ K < 1.
Tem-se ainda, usando o Teorema do valor médio,
0
|g(x) − z| = |g(x) − g(z)| = |g (ξ)||x − z|
≤ K ² < ² com ξ entre x e z.
Mas a desigualdade anterior significa que g(I² ) ⊂ I² . Estão assim verificadas as hipóteses
do Teorema (2.6) para o intervalo I² , pelo que o resultado fica demonstrado. 2
Obs.: no Teorema 2.6, conclui-se convergência do método do ponto fixo para x0 perten-
cente a um dado intervalo I. Já o Teorema 2.7 apenas nos diz que existe uma vizinhança
de z onde a iteração do ponto fixo converge (não indica qual o valor de ²). Usando uma
linguagem imprecisa: se |g 0 (x)| < 1 num intervalo contendo z, então temos a garantia de que
o método converge se escolhermos x0 estiver ”suficientemente próximo” de z. Diz-se que é
um resultado de carácter ”local”.
|z − xm | ≤ Lm |z − x0 |. (2.11)
Trata-se de uma fórmula que permite estimar o erro numa certa iterada xm , à priori, isto
é, sem ter de se calcular xm . É preciso aqui uma (boa) estimativa para o erro na iterada
inicial.
II. Erro na iterada xm+1 , m > 0, em função da distância entre as iteradas xm+1 e xm
35
L
|z − xm+1 | ≤ |xm+1 − xm |, m ≥ 0. (2.12)
1−L
Trata-se de uma fórmula de majoração à posteriori, isto é, pressupôe termos já calculado
xm e xm+1 .
|z − xm+1 | ≤ L |z − xm |
= L |(z − xm+1 ) + (xm+1 − xm )|
≤ L |z − xm+1 | + L |xm+1 − xm |
Então
|z − xm+1 |(1 − L) ≤ L|xm+1 − xm |
e, sendo 0 < L < 1, 1 − L > 0. Dividindo ambos os membros da desigualdade acima por
1 − L, obtém-se (2.12). 2
Lm+1
|z − xm+1 | ≤ |x1 − x0 |, m ≥ 0. (2.13)
1−L
36
Critério de paragem
Qualquer das fórmulas de erro anteriores pode ser usada como teste para se parar o
processo iterativo.
Em geral, dado ² > 0 (pequeno), o processo iterativo deve parar quando |z − xm+1 | ≤ ².
Da fórmula (2.12) temos:
L
|z − xm+1 | ≤ |xm+1 − xm |
1−L
L
donde vemos que se |xm+1 − xm | < ² então teremos |z − xm+1 | ≤ ². Logo, para que
1−L
tenhamos um erro inferior a ² na iterada xm+1 é suficiente que
1−L
|xm+1 − xm | < ²
L
L
Obs: Se L < 1/2 então < 1 e nesse caso usa-se o critério de paragem:
1−L
|xm+1 − xm | < ².
37
Convergência e Divergência do Método do Ponto Fixo.
Ilustração Geométrica
g ’ (x) > 0
convergencia monotona
g (x)
z x3 x2 x1 x0
g ’ (x) < 0
convergencia alternada
x0 x2 x4 z x3 x1
38
g (x)
g ’ (z) > 1
metodo diverge
z
x3 x2 x1 x0
Dem. Tem-se
z − xm+1 = g(z) − g(xm ) (2.14)
39
Seja ainda o seguinte exemplo de divergência.
Exemplo 2.12
Consideremos a função g(x) = −ln(x). O gráfico abaixo mostra também a recta y = x e a sua
intersecção com o gráfico de g. Começando perto do ponto fixo, seja x0 = 0.65. Obtiveram-se
as iteradas: x1 ' 0.430783, x2 ' 0.842151, x3 = 0.171796, x4 ' 1.76145, x5 ' −0.566136.
Note que já não é possı́vel definir x6 .
1.5
0.5
-0.5
40
Ordem de Convergência do Método do Ponto Fixo.
Definição 2.2 (ordem de convergência): Seja {xn } uma sucessão que converge para z
e seja em := z − xm . Se existirem constantes reais p ≥ 1 e K∞ > 0 tais que
|em+1 |
lim = K∞ (2.15)
m→∞ |e |p
m
Rapidez de convergência: rapidez com que os erros decrescem para zero. Depende de
K∞ e p. Quanto maior for p e quanto menor for K∞ , maior é a rapidez de convergência.
41
|e1 | ≈ K∞ |e0 |
2
|e2 | ≈ K∞ |e1 | ≈ K∞ (K∞ |e0 |) ≈ K∞ |e0 |
2 3
|e3 | ≈ K∞ |e2 | ≈ K∞ (K∞ |e0 |) ≈ K∞ |e0 |
.. ..
. .
(m+1)
Em geral obtem-se que: |em+1 | ≈ K∞ |e0 |, n≥1 (1)
b) Para o método II (quadrático), suponhamos que: |ēm+1 | ≈ K̄∞ |ēm |2 , ∀m. Então,
Suponhamos agora que K∞ = K̄∞ = 0.75 e |e0 | = |ē0 | = 0.5 e calculemos e3 e ē3 utilizando
(2) e (3) respectivamente. Então, temos:
Teorema 2.9 Seja g(x) uma função verificando as condições do teorema do ponto fixo (teor.
2.6) para o intervalo [a, b], ou seja,
i) g ∈ C 1 [a, b]
Então, a sucessão definida por xm+1 = g(xm ), m = 0, 1, . . . converge para z, ∀x0 ∈ [a, b]
e tem-se:
42
|z − xm+1 |
lim = |g 0 (z)| (2.16)
n→∞ |z − x |
m
Dem:
A convergência de xm já foi provada (ver teorema do ponto fixo). Mostremos que o limite
acima é válido. Tem-se:
|z − xm+1 |
lim = lim |g 0 (ξm )| = 1 |g 0 ( lim ξm )| = 2 |g 0 (z)|
m→∞ |z − x | m→∞ m→∞
m
Convergência linear
Com efeito, neste caso tem-se uma relação do tipo (2.15), com com p = 1 e K∞ =
0
|g (z)| > 0. A convergência é, pois, linear.
Convergência supralinear
E se
|z − xm+1 |
lim = |g 0 (z)| = 0 ?
m→∞ |z − xm |
Vamos mostrar que a ordem de convergência deixa de ser linear passando a supralinear.
Consideremos o seguinte teorema geral que contempla este caso.
43
|em+1 | |g (p) (z)|
Então lim =
n→∞ |e |p p!
m
e portanto a sucessão {xm } tem ordem de convergência p e coeficiente assimptótico de con-
|g (p) (z)|
vergência K∞ = .
p!
Para x = xm , temos
g 00 (z) g (p−1) (z)
g(xm ) = g(z) + (xm − z)g 0 (z) + (xm − z)2 + . . . + (xm − z)(p−1)
2! (p − 1)!
g (p) (ξm )
+ (xm − z)p , ξm entre xm e z.
p!
Usando as hipóteses xm+1 = g(xm ), g(z) = z e g 0 (z) = g 00 (z) = . . . = g (p−1) (z) = 0, obtém-se
g (p) (ξm )
xm+1 = z + (xm − z)p , ξm entre xm e z.
p!
Daqui vem
g (p) (ξm )
z − xm+1 = − (xm − z)p , ξm entre xm e z.
p!
g (p) (ξm )
= (−1)(p+1) (z − xm )p , ξm entre xm e z.
p!
Então
(p)
z − xm+1 (p+1) g (ξm )
= (−1) , ξm entre xm e z.
(z − xm )p p!
|z − xm+1 | |g (p) (ξm )|
=⇒ = , ξm entre xm e z.
|z − xm |p p!
Passando ao limite e usando a continuidade de g (p) , vem:
|em+1 | |g (p) (ξm )| |g (p) (limm→∞ ξm )| |g (p) (z)|
lim = lim = .
m→∞ |e |p m→∞ p! p! p!
m
Assim, a sucessão {xm } converge para z com ordem de convergência p e factor assimptótico
|g (p) (z)|
de convergência K∞ = 2
p!
44
2.2.3 Método de Newton
Seja f ∈ C 2 [a, b] e suponhamos que f 0 (x) 6= 0, ∀ x ∈ [a, b], e que existe z ∈ [a, b] tal
que f (z) = 0. Como vimos anteriormente ( teor. 2.10), dada uma sucessão do ponto fixo
xm+1 = g(xm ) convergente para z, se g 0 (z) = 0 então a convergência é supralinear. Ou seja,
nesse caso a ordem é um número p ≥ 2 (conv. pelo menos quadrática).
logo g 0 (z) = 1 + A0 (z)f (z) + A(z)f 0 (z) = 1 + A(z)f 0 (z), visto f (z) = 0. Impondo g 0 (z) = 0
para se ter convergência supralinear, resulta a condição A0 (z) = −1/f 0 (z). Com a escolha
A(x) = −1/f 0 (x) somos conduzidos ao método
f (xm )
xm+1 = xm − , m = 0, 1, . . . (2.17)
f 0 (xm )
a z x2 x1 x0 = b
45
O ponto xm+1 , m ≥ 0 é calculado como sendo o ponto de intersecção, com o eixo dos xx,
da recta passando por (xm , f (xm )) com declive f 0 (xm ). Essa recta é a tangente ao gráfico de
f no ponto (xm , f (xm )) ) e a sua equação é dada por
donde
f (xm )
xm+1 − xm = −
f 0 (xm )
e obtém-se o método de Newton
f (xm )
xm+1 = xm − ,m ≥ 0
f 0 (xm )
Exemplo 2.13
√
3
Calcular 100 pelo método de Newton.
√
Solução: Seja f (x) = x3 − 100 = 0 e seja z um zero de f . Então, z 3 = 100 =⇒ z = 3
100.
Para calcularmos z, procedemos como segue:
f (4) = 64 − 100 = −36
Seja I = [4, 5]. Então, f (5) = 125 − 100 = 25
T eor1.1
logo, f (4)f (5) < 0 z}|{
=⇒ z ∈ [4, 5]
0 2 x3m − 100
Temos que f (x) = 3x e o método de Newton é dado por: xm+1 = xm − . Tomando
3x2m
x30 − 100 36
x 1 = x 0 − 2
=4+ = 4.750
3x0 48
x31 − 100 7.171875
x
2 = x 1 − 2
= 4.750 − = 4.644044
x0 = 4 vem: 3x1 67.68750
x32 − 100 0.158769
x 3 = x 2 − 2
= 4.644044 − = 4.641590
3x2 64.701434
x33 − 100 0.0000837
x
4 = x 3 − 2
= 4.641590 − = 4.6415887
3x3 64.633073
46
Fórmula do erro para o método de Newton:
max |f 00 (x)|
x ∈[a, b]
|em+1 | = |z − xm+1 | ≤ (z − xm )2
2|f 0 (xm )|
Dem:
|f 00 (ξm )|
|z − xm+1 | = (z − xm )2 , ξm entre z e xm (2.18)
2|f 0 (xm )|
(x − xm )2 00
f (x) = f (xm ) + (x − xm )f 0 (xm ) + f (ξm ), ξm entre x e xm
2!
Para x = z tem-se:
(z − xm )2 00
f (z) = f (xm ) + (z − xm )f 0 (xm ) + f (ξm ), ξm entre z e xm
2!
(z − xm )2 00
=⇒ 0 = f (xm ) + (z − xm )f 0 (xm ) + f (ξm ), ξm entre z e xm
2
00
f (xm ) f (ξm )
=⇒ 0 = 0 + z − xm + (z − xm )2 0 , ξm entre z e xm
f (xm ) 2f (xm )
00
f (xm ) f (ξm )
=⇒ z = xm − 0 −(z − xm )2 0 , ξm entre z e xm
f (xm ) 2f (xm )
| {z }
xm+1
f 00 (ξm )
=⇒ z − xm+1 = −(z − xm )2 , ξm entre z e xm
2f 0 (xm )
|f 00 (ξm )|
=⇒ |z − xm+1 | = |(z − xm )|2 0 , ξm entre z e xm
2|f (xm )|
max |f 00 (x)|
2 x∈[a,b]
|z − xm+1 | ≤ (z − xm )
2|f 0 (xm )|
2
47
Corolário 2.1 As iteradas do método de Newton satisfazem
max |f 00 (x)|
2 x∈[a,b]
| z − xm+1 | ≤ K| z − xm | onde K =
| {z } | {z } 2 min |f 0 (x)|
em+1 em x∈[a,b]
max |f 00 (x)|
(2m+1 −1) 2m+1 x∈[a,b]
|em+1 | ≤ K |e0 | onde em+1 = z − xm+1 e K = .
2 min |f 0 (x)|
x∈[a,b]
Logo, para que no método de Newton se tenha um erro inferior a ² numa iterada xm+1 , é
suficiente que:
m+1 −1) m+1 m+1 m+1
K (2 |e0 |2 < ² =⇒K −1 (K|e0 |)2 < ² =⇒ (K|e0 |)2
< K² =⇒
" #
ln(K²)
ln
ln(K²) ln(K|e0 |)
2m+1 ln(K|e0 |) < ln(K²) =⇒ 2m+1 > =⇒ m > −1
| {z } ln(K|e0 |) ln(2)
2
Começamos com uma ilustração geométrica do método de Newton, como ”método das
tangentes”, começando com x0 = 2
48
20
15
10
Por outro lado, o método de Newton é um método do ponto fixo com função iteradora
g(x) = x − (f (x)/f 0 (x)) = x − (x3 + 2x2 + 3x − 1)/(3x2 + 4x + 3). Note-se que a raiz da
equação f (x) = 0 é ponto fixo da função g: tem-se simultaneamente f (z) = 0 e g(z) = z.
Assim, ao aproximarmos o ponto fixo de g pela sucessão xm+1 = g(xm ), estamos a aproximar
a raiz da equação f (x) = 0. A figura abaixo ilustra este facto, mostrando os gráficos de f (x),
g(x) e da recta y = x.
2
1.5
1
0.5
-1 -0.5 0.5 1
-0.5
-1
-1.5
-2
49
O gráfico seguinte é uma ilustração geométrica do método de Newton como método do
ponto fixo associado à função iteradora g(x) = x − (f (x)/f 0 (x)) = x − (x3 + 2x2 + 3x −
1)/(3x2 + 4x + 3). Tomou-se para aproximação inicial x0 = 2.
1.5
0.5
0.5 1 1.5 2
Dem:
Convergência
Sabendo que o método de Newton é um método do ponto fixo, vamos mostrar que ∃ r > 0
tq. g(x) satisfaz as condições do teorema do ponto fixo em Ir = [z − r, z + r] ⊂ I. Isso vai
permitir concluir que a sucessão xm+1 = g(xm ), ou seja, o método de Newton, converge para
z , ∀x0 ∈ Ir .
Tem-se
=0
z }| {
f (z)
i) g(z) = z − = z e g ∈ C 1 (I). (desde que f ∈ C 2 (I)) =⇒ z é ponto fixo de g.
f 0 (z)
| {z }
Ã6=0 ! Ã !
0 1 0 f 00 (x) f 00 (x) f 00 (x)
ii) g (x) = 1 − f (x) − f (x) = 1 − 1 − f (x) 0 = f (x) .
f 0 (x) (f 0 (x))2 (f (x))2 (f 0 (x))2
00
f (z)
Portanto, g 0 (z) = f (z) 0 =0
| {z } (f (z))2
=0
iii) Como g 0 (z) = 0 e g 0 é continua3 , g está nas condições do Teorema (2.7). Logo a
3
f é contı́nua em x̄ ⇐⇒ dado ² > 0 (arbitrário), ∃ δ > 0 tq. |f (x) − f (x̄)| < ², sempre que |x − x̄| < δ
50
f (xm )
sucessão definida por xm+1 = xm − , n = 0, 1, . . . converge para z qualquer que seja
f 0 (xm )
a aproximação inicial x0 ∈ Ir . Ou seja, o método de Newton converge para a solução de
f (x) = 0 em Ir , ∀x0 ∈ Ir .
Ordem de convergência
|f 00 (ξm )|
lim |z − xm+1 | = lim |(z − xm )|2
m→∞ m→∞ 2|f 0 (xm )|
donde
|z − xm+1 | |f 00 (z)|
lim = (2.19)
m→∞ (z − x )2 2|f 0 (z)|
m
donde
=0
z }| { =0
f (z) f 0 (z) z }| { f 00 (z) f 00 (z)
g 00 (z) = 0 2 f 000 (z) + f 00 (z)
02 − 2 f (z)
=
f (z) f (z) f 0 3 (z) f 0 (z)
51
Condições suficientes de convergência para o método de Newton.
Por outro lado, apesar de o método de Newton ser um método do ponto fixo, ou seja
uma sucessão da forma xm+1 = g(xm ), é em geral difı́cil mostrar que g satisfaz as condições
do teorema do ponto fixo.
Então o método de Newton converge para a solução de f (x) = 0, qualquer que seja x0 ∈
[a, b].
√
Começando com x0 = −1/ 5 ' −0.4472135954999579 obtém-se:
52
Ou seja, x0 = x2 = x4 = ... e x1 = x3 = x5 = ..., o que é ilustrado graficamente na
seguinte figura:
0.4
0.3
0.2
0.1
-0.1
-0.2
-0.3
-0.4
Este é um caso em que o método de Newton claramente não converge para a raiz z = 0.
Então é porque alguma condição das hipóteses dos critérios de convergência falha. Comente.
0.4
0.2
-0.2
-0.4
A sucessão acima é uma sucessão convergente para zero. Contudo, ao tentar aplicar os
Critérios de convergência, por exemplo no intervalo [−0.4, 0.4], falha uma das condições.
53
2.2.4 Método da secante
x −1 x1 x2 z
x3 x0
Para o cálculo de x2 , considera-se a recta passando por (x0 , f (x0 )) e (x1 , f (x1 )). Intersectando
esta recta com o eixo x obtém-se x2 :
(x1 − x0 )
x2 = x1 − f (x1 )
f (x1 ) − f (x0 )
54
Em geral, xn+1 é o zero da recta secante passando por (xn−1 , f (xn−1 )) e (xn , f (xn )) donde
obtem-se a fórmula geral do método da secante:
(xn − xn−1 )
xn+1 = xn − f (xn )
f (xn ) − f (xn−1 )
f 00 (ξn1 )
z − xn+1 = − (z − xn−1 ) (z − xn ) ξn1 ∈ int (xn , xn−1 , z) ξn2 ∈ int (xn , xn−1 ) .
2f 0 (ξn2 )
max |f 00 (x)|
x∈[a, b]
|z − xn+1 | ≤ K|z − xn−1 ||z − xn | onde K =
2 min |f 0 (x)|
x∈[a, b]
à !1/p
|z − xn+1 | |f 00 (z)| 1 √
lim = p = (1 + 5) ≈ 1.618 . . .
n→∞ |z − x |p 2|f 0 (z)| 2
n
1 √
Então, se f 0 (z) 6= 0 e f 00 (z) 6= 0, a ordem de convergência é p = (1 + 5) ≈ 1.618 . . .,
2
55
Exemplo 2.16
Considere a equação
2
e−x − x2 = 0
a) Mostre que essa equação tem 2 duas raizes, z1 e z2 onde z1 ∈ [−1, 0] e z2 ∈ [0, 1].
(xn − xn−1 )
1b) Pelo método da secante temos: xn+1 = xn − f (xn ) . Tomando x−1 = 0
f (xn ) − f (xn−1 )
e x0 = 1, tem-se:
(x0 − x−1 ) (1 − 0)
x1 = x0 − f (x0 ) = 1 + 0.632121 × = 0.61270
f (x0 ) − f (x−1 ) −0.632121 − 1.0
(0.61270 − 1.0)
x2 = 0.61270 − 0.31161 × = 0.74058
0.31161 + 0.63212
0.74058 − 0.61270
x3 = 0.74058 − 0.02940 × = 0.75390
0.02940 − 0.31161
(0.75390 − 0.74058)
x4 = 0.75390 + 0.00191 × = 0.75309
−0.00191 − 0.02940
56
2.3 EXERCÍCIOS RESOLVIDOS
57
Mostre que é possı́vel obter aproximações das raı́zes positivas da equação 4.4
usando, para cada raiz, uma dessas sucessões. Indique, em cada caso, um intervalo
onde poderá escolher a iterada inicial x0 .
Solução. Note que a sucessão (S1)é da forma:
s
ex
xm+1 = g1 (xm ), com g1 (x) = . (2.21)
3
Verifique primeiramente qual a relação entre os pontos fixos de g1 (positivos) e
as raı́zes da equação. O que conclui ? Em seguida, verifique que as condições
do Teorema 2.6 (do ponto fixo) são válidas para g1 no intervalo [0, 1]. Quais as
conclusões ?
Analogamente, faça um estudo semelhante para a sucessão (S2), relativamente ao
intervalo [3, 4].
(c) Efectue duas iterações usando a sucessão (S1) com x0 = 1. Estime o número de
algarismos significativos da aproximação obtida.
(d) Será possı́vel usar a sucessão (S1) para aproximar a maior raiz positiva da equação?
E poderá usar a sucessão (S2) para aproximar a menor raiz positiva da equação?
Solução. Consideremos a raiz maior, z3 ∈ I = [3, 4] e a sucessão (S1), ou
seja, (2.21). Ao tentarmos verificar se as condições do teorema do ponto fixo são
satisfeitas por g1 em I, notamos que g1 (3) ' 2.5875, g1 (4) ' 4.2661, ambos fora
do intervalo I. Falhando a condição (ii) das hipóteses do Teorema do ponto fixo
(Teor. 2.6 ), não se pode, pois, concluir nada sobre a convergência ou divergência
da sucessão (S1).
q x
Contudo, vemos que g10 (x) = (1/2) e3 é positiva e crescente. Tem-se g10 (3) ' 1.29
e, sendo z > 3, então g10 (z) > g10 (3) q
> 1. Então, recorrendo ao Teorema 2.8,
xm
concluı́mos que a sucessão g1 (xm+1 ) = e 3 não pode convergir para z (a não ser
escolhendo x0 = z).
De modo análogo, mostre que (S2) não pode ser usada para aproximar a raiz
pertencente a [0, 1].
3. Seja a função
1
g(x) = ln(x2 + 1)
3
(a) (i)Prove que a sucessão definida por
1
xm+1 = ln(x2m + 1), m = 0, 1, 2, . . .
3
converge para um número z ∈ [−1, 1]. (ii) Determine z e a ordem de convergência.
Solução. (i) Comece por provar que g verifica as condições do Teorema do
ponto fixo no intervalo I = [−1, 1]. Isso permite concluir que existe z ∈ I tal
58
que a sucessão gerada por g converge para z, sendo que z é o único ponto fixo de
g nesse intervalo. (ii) Por um lado, g tem um único ponto fixo em I e, como
g(0) = (1/3) ln(02 + 1) = 0, isto significa que z = 0 é esse ponto fixo.
(iii) Ordem de convergência. Sabemos que a ordem de convergência é a ordem da
primeira derivada de g(x) que não se anula em x = z (ver Teorema 2.10). Neste
caso, tem-se z = 0 e
2x
g 0 (x) = =⇒ g 0 (z) = 0
3(x2 + 1)
Então a convergência é supralinear (se g 0 (z) 6= 0, seria linear, como se vê aten-
dendo ao Teorema 2.9). Calculemos g 00 (x) para depois obtermos g 00 (z). Vem
−6(x2 − 1) 2
g 00 (x) = 2 2
=⇒ g 00 (z) = g 00 (0) = 6= 0
9(x + 1) 3
Logo, a convergência é quadrática, atendendo a que (pelo Teorema 2.10)
|em+1 |g 00 (z)| 2
lim = = = 1/3 6= 0 (2.22)
m→∞ |em |2 2 (3)(2)
59
Resultam então os quocientes
|e1 |
' 0.2310491
e20
|e2 |
' 0.3247397
e21
|e3 |
' 0.3334110
e22
...
Pela teoria (ver alı́nea anterior), o limite da sucessão acima é 1/3 ' 0.33333...
(coeficiente assimptótico da convergência).
4. Pretende-se determinar, utilizando o método de Newton, a maior das duas raı́zes pos-
itivas da equação
−x3 + 14x − 1 − ex = 0.
(a) Mostre que se x0 for escolhido no intervalo I = [2.6, 3], estão asseguradas as
condições de convergência do método.
Solução.Verifiquemos que são satisfeitas, para esse intervalo I, as condições
1,2,3,4 suficientes para a convergência do método de Newton (Critério 1).
Vê-se facilmente que f ∈ C 2 (I), já que é soma de funções com derivadas contı́nuas
de todas as ordens.
1. f (2.6) ' 4.3603 e f (3) ' −6.0855, pelo que a eq. tem uma única raiz em I.
2. f 0 (x) = −3x2 + 14x − ex é diferente de zero em I ? Analisemos o seu sinal.
Como f 00 (x) = −6x − ex = −(6x + ex ) < 0 em I, então f 0 é decrescente em I.
Sendo f 0 (2.6) = −19.743... < 0, vem que f 0 (x) ≤ f 0 (2.6) < 0 para x ∈ I = [2.6, 3],
logo verifica-se 2.
3. Já provámos que f 00 tem sempre o mesmo sinal em I
4.
|f (2.6)| |f (3)|
0
= 0.220843 < (3 − 2.6) = 0.183933 < (3 − 2.6)
|f (2.6)| |f 0 (3)|
Verificando-se as condições do Critério 1, podemos concluir que o método de New-
ton (*), aplicado à equação dada, converge para a única raiz da eq. no intervalo
I = [2.6, 3], qualquer que seja x0 ∈ I.
(*) Ou seja, a sucessão definida por:
(b) Calcule um majorante para o erro da segunda iterada (não efectue iterações).
60
Solução. Sem efectuar iterações, há que utilizar a fórmula dada no Teorema
2.11, que é da forma:
|z − xm+1 | ≤ K (z − xm )2 (2.23)
Neste caso, obtenha K ' 0.965 e |z − x2 | ≤ 0.02.
√
5. Considere os seguintes métodos para obter um valor aproximado de z = 10:
(a) método de Newton aplicado à função f (x) = x2 −10. Mostre que se escolher x0 =
4∗ então o método de Newton converge e a ordem é dois. Calcule três iteradas e
determine um majorante para o erro de x3 . Quantos algarismos significativos pode
garantir ? (∗ Note que pode concluir convergência se escolher para x0 qualquer
valor ≥ 4)
√
Solução. Pretende-se aproximar z = 10, que é a raiz positiva da equação
f (x) = 0, ou seja, x2 − 10 = 0.
(i) Para provar a convergência começando com um determinado valor de x0 (neste
caso, x0 = 4), tente aplicar o Critério 2 das condições suficientes de convergência
do método de Newton. Pode usar o valor 4 para um dos extremos do intervalo
onde vai aplicar o Critério 2. (Também pode aplicar o Critério 1?).
Para provar que pode concluir convergência se escolher para x0 qualquer valor
≥ 4, note que fica garantida a convergência desde que x0 seja tal que f (x0 ) > 0
(use o Critério 2).
(ii) Para provar que a ordem de convergência é 2, pode-se usar a relação deduzida
na parte iii) da dem. do Teorema 2.12 (ver (2.19):
|z − xm+1 | |f 00 (z)|
lim = (2.24)
m→∞ (z − x )2 2|f 0 (z)|
m
Se o limite for diferente de zero, sabemos, pela, Definição 2.2, que a ordem é 2.
Neste caso, f 00 (x) = 2, logo diferente de zero para qualquer x e, em particular, em
z. A conclusão sai facilmente.
Nota: também poderia usar o facto do método de Newton ser um método do
ponto fixo, ou seja, uma sucessão do tipo xm+1 = g(xm ). (Identifique a função
g). Determinar a ordem equivale a investigar qual a primeira derivada de g que
não se anula em z (ler Obs.2.1).
(b) método de Newton aplicado à função f (x) = x−1/2 (x2 − 10). Admitindo que o
método converge, mostre que a ordem de convergência é 3.
6. Considere a equação
f (x) = x tan(x) − 1 = 0,
Prove que o método converge para a única raiz no intervalo [0.8, 0.9], quaisquer que se-
jam as aproximações iniciais x0 , x−1 nesse intervalo. Obtenha as três primeiras iteradas
para o cálculo da raiz e determine um majorante do erro do resultado obtido.
61
Solução. Verifique que o Critério 1 do método da secante é aplicável no intervalo
[0.8, 0.9]. Fazendo x−1 = 0.8, x0 = 0.9, obtém-se: x1 ' 0.856788, x2 ' 0.860127,
x3 ' 0.860335. Para obter um majorante do erro de x3 , use a fórmula
Tem-se K ' 2.063. Sugere-se que note o seguinte: |z − x2 | < |x3 − x2 | ' 0.207 × 10−3
e |z − x1 | < |x3 − x1 | ' 0.355 × 10−2 . Vai-se obter o seguinte majorante |z − x3 | ≤
0.152 × 10−5 , o que garante 5 algarismos significativos na aproximação x3 .
62
3 Resolução de Sistemas de equações
• Métodos Directos: métodos que encontram a solução (exacta) num número finito de
operações. Entre os métodos existentes, temos os seguintes: Método de Eliminação de
Gauss e os Métodos de factorização LU (Doolittle, Crout e Cholesky).
• Métodos Iterativos: métodos que encontram a solução num número infinito de operações.
Mais precisamente, num método iterativo convergente obtém-se uma sucessão de apro-
ximações convergindo para a solução exacta. Aqui estudaremos, em particular, o
método de Jacobi e o método de Gauss-Seidel.
Nestas notas começamos com uma revisão do método de Gauss e dos métodos de facto-
rização e descrevemos, em seguida, duas técnicas de pesquisa de pivot. Apresentamos dois
63
tipos de matrizes especiais e completa-se a primeira parte com uma introdução ao condi-
cionamento e análise do erro de sistemas lineares.
Para obtermos uma solução do sistema (3.1), assumiremos que a matriz A é invertı́vel
(det(A) 6= 0).
i) Ei − λEj −→ Ei
{ substituição de Ei por a combinação linear de Ei e Ej }
ii) λEi −→ Ei { substituição de Ei por λEi , λ 6= 0 }
iii) Ei ←→ Ej { substituição de Ei por Ej }
Veremos agora que a aplicação dessas operações ao sistema (3.1) conduz a um sistema equi-
valente mais fácil de se resolver.
Exemplo 3.1
64
obtém-se o sistema equivalente: A(2) x = b(2) onde
..
4 −9 2 . 2
0 1/2 3 .
.. 2
0 −1/4 5/2 . 3/2 .
| {z } . | {z }
A(2) b(2)
(2) (2)
2. a22 = 1/2 6= 0 =⇒ podemos colocar zeros abaixo de a22 .
(2)
a32 1/4 2 1
m32 = (2)
=− = − = − e efectuando a operação E3 −m32 E2 −→ E3 obtém-se
a22 1/2 4 2
o sistema equivalente A x = b(3) :
(3)
..
4 −9 2 . 2
0 1/2 3..
.
2
..
0 0 4. 5/2
| {z }
A(2) b(2)
Portanto, o sistema original foi transformado no sistema equivalente:
4 −9 2 x1 2
0 1/2 3 x2 = 2
0 0 4 x3 5/2
que tem como solução:
x3 = 5/2/4 = 5/8
1/2x2 + 3x3 = 2 =⇒ x2 = (2 − 3x3 )/1/2 = (2 − 3 × 5/8)/1/2 = 1/4
4x1 − 9x2 + 2x3 = 2 =⇒ x1 = 2 + 9x2 − 2x3 )/4 = (2 + 9 × 1/4 − 2 × 5/8)/4 = 3/4
1o (2)
¯ Passo: Ax = b −→ A x = b
(2)
65
2o (2) (2)
¯ Passo: A x = b −→ A x = b
(3) (3)
(2)
Se a22 6= 0 então calculam-se os multiplicadores
(2) (2)
mi2 = ai2 /a22 , i = 3, 4, . . . , n
e efectuam-se as operações:
Ei − mi2 E2 −→ Ei , i = 3, 4, . . . , n
É-se assim conduzido a um sistema linear equivalente ao sistema inicial, cuja matriz é
triangular superior. Este sistema pode facilmente ser resolvido, começando com:
xn = b(n) (n)
n /ann e calculando-se xn−1 , xn−2 , . . . , x1 , sucessivamente.
(k)
Obs: Se no passo k acontecer que o elemento pivot akk = 0, então procura-se um
(k)
elemento alk 6= 0 na coluna k, onde l > k e trocam-se as linhas l e k, ou seja, efectua-
se a operação Ek ←→ El .
66
Métodos de Factorização LU
(LU )x = b (3.2)
U x = g, (3.4)
a11 a12 . . . a1n l11 0 . . . . . . 0 u11 u12 . . . . . . u1n
a21 a22 . . . a2n l 0 u
21 l22 0 . . . 0 22 u23 . . . u2n
.. .. .. . .. . . . . ... ... ..
. . .
= .. . . . 0
0 .
.. .. ..
.. .. . .. 0
.. . . . . . ...
.
. . . . . .
an1 an2 . . . ann ln1 ln2 . . . . . . lnn 0 0 . . . 0 unn
| {z } | {z } | {z }
A (matriz dada) L U
vemos que temos (n2 + n)–incógnitas: lij e uij . Por outro lado, pela regra de produto de
matrizes, podemos formar n2 -equações. Uma maneira de obter n–equações adicionais é fixar
n elementos de L ou U . Em seguida consideramos alguns casos particulares.
67
Método de Doolittle (ou Factorização de Doolittle)
En geral, tem-se:
k−1
X
linha k de U : ukj = akj − lkr urj , j = k, k + 1, . . . , n
à r=1 !
k−1
X
coluna k de L : lik = aik − lir urk /ukk , i = k + 1, k + 2, . . . , n
r=1
68
Pode mostrar-se que se o método de Eliminação de Gauss for aplicado ao sistema Ax = b
sem troca de linhas, então verifica-se a igualdade A = LU , com
1 0 ... ... ... 0 a11 a12 a13 ... ... a1n
(2) (2) (2)
m21 1 0 ... ... 0 0 a22 a23 ... ... a2n
... (3) (3)
m31
m32 1 0
(n)
0 0 a33 ... ... a3n
L=
... .. .. .. .. ; U = A = .. .. .. . ..
. . . .
0
. . . . . . .. .
. .. .. .. .. .. . . . .. ..
. . . . . . .
. . 0
mn1 mn2 . . . . . . mnn−1 1 0 0 0 ... 0 a(n)
nn
Exemplo 3.2
onde
1 0 0 u11 u12 u13
L = l21 1 0 e U = 0 u22 u23
l31 l32 1 0 0 u33
Os elementos das matrizes L e U podem ser obtidos usando as fórmulas:
k−1
X
ukj = akj − lks usj , j = k, k + 1, . . . , 3
s=1
à k−1
!
X
lik = aik − lis usk /ukk , i = k + 1, k + 2, . . . , 3
s=1
• Cálculo de L e U :
¯
¯ 1a. linha de U : ¯
¯ ¯ 1a. coluna de L :
¯ u = a =⇒ u = 2 ¯
¯ 11 11 11 ¯
¯ ¯ l21 = a21 /u11 = 2/2 = 1
¯ u12 = a12 =⇒ u12 = 3 ¯
¯ ¯ l31 = a31 /u11 = 14/2 = 7
¯ u = a =⇒ u = −2
13 13 13
69
¯
¯ ¯ 2a. coluna de L :
¯ 2a. linha de U : ¯
¯ ¯ −7 − 7 × 3
¯ ¯
¯ u22 = a22 − l21 u12 =⇒ u11 = −16 − 1 × 3 = −19 ¯ l32 = a32 − l31 u12 =
¯ ¯ −19
¯ u23 = a23 − l21 u13 =⇒ u23 = 10 − 1 × −2 = 12 ¯
¯ = 28/19 = 1.47368
¯
¯ 3a. linha de U :
¯ µ ¶
¯ 28
¯
¯ u33 = a33 − l31 u13 − l32 u23 = −7 − (7 × −2) − × 12
¯ 19
¯
¯ = −7 + 14 − 17.6842 = −10.68421
Portanto,
1 0 0 2 3 −2
L= 1 1 0
e U = 0 −19 12
7 1.473681 1 0 0 −10.68421
Portanto, g = [0 − 3 4.42104]T .
2 3 −2 x1 0
0 −19 12 x
= 2 = −3
0 0 −10.68421 x3 4.42104
4.42104
x3 = = −0.413792
−10.68421
−3 − 12x3
−19x2 + 12x3 = −3 =⇒ x2 =
=⇒ −19
−3 − 12 × −0.413792
= = −0.103448
−19
2x1 + 3x2 − 2x3 = 0 =⇒ x1 = (−3x2 + 2x3 )/2
=⇒ x1 = (−3 × −0.103448 + 2 × −0.413792)/2 = −0.2586206
70
Método de Crout (ou Factorização de Crout)
k−1
X
• Coluna k de L: lik = aik − lir urk , i = k, k + 1, . . . n
r=1
à k−1
!
X
• Linha k de U ukj = akj − lkr urj /lkk , i = k, k + 1, . . . n
r=1
No caso especial em que A é uma matriz real simétrica definida positiva, a decomposição
LU pode ser modificada de maneira que L = U T , ou seja, A = LLT . As equações para obter
a matriz L seguem o mesmo procedimento do método LU , ou seja,
a11 a12 . . . a1n l11 0 . . . . . . 0 l11 l21 . . . . . . ln1
a21 a22 . . . a2n l21 l22 0 . . . 0 0 l . . . . . . ln2
22
.. .. ..
.. .. . . . . .. .. ..
. . . = . . . . 0
0 . . .
.. .. ..
.. .. ...
.. . . . . . . ..
. . . . . 0 . .
an1 an2 . . . ann ln1 ln2 . . . . . . lnn 0 0 . . . 0 lnn
| {z } | {z } | {z }
A (matriz dada) L LT
71
Cálculo da Matriz Inversa
AA−1 = I
Desta igualdade, vemos que o cálculo de A−1 equivale a resolver n sistemas lineares
(
Ax1 = e1 , Ax2 = e2 , . . . , Axn = en
onde e1 = [1 0 . . . 0]T , e2 = [0 1 . . . 0]T , en = [0 . . . 1]T
(LU )x1 = e1 , (LU )x2 = e2 , . . . , (LU )xn = en . Ou seja, faz-se a factorização LU uma
única vez e resolvem-se os n sistemas lineares cujas soluções são as colunas de A−1 .
72
Técnicas de Pesquisa de Pivot
Exemplo 3.3
73
e aplicarmos o método de Eliminação de Gauss, obtemos:
0.003000
m21 = = 0.0005670 ≈ 0.0006
5.291
e a operação E2 − m21 E1 −→ E2 conduz agora ao sistema equivalente:
Esta técnica consiste em escolher, para elemento pivot, no k-passo do método de eliminação
de Gauss, o elemento de maior valor absoluto na coluna k, ou seja,
(
Seja akrk tal que |akrk | = max{|akik |, i = k, k + 1, . . . , n}
Então, se r 6= k troca-se as linhas Erk e Ekk .
Notemos que a aplicação desta técnica, no exemplo anterior, ao sistema (3.5) conduz ao
sistema (3.7).
obs: Estudos feitos sobre o método de eliminação de Gauss mostram que se os multipli-
cadores mik são tais que |mik | ≤ 1 então o efeito da propagação dos erros de arredonda-
mento na solução é de algum modo reduzido. Esse é o objectivo da técnica de pesquisa
parcial de pivot.
Esta técnica consiste em escolher, para elemento pivot, no k-passo do método de eliminação
de Gauss, o elemento:
|akrs | = max{|akij |, i, j = k, k + 1, . . . , n}
A pesquisa total de pivot é a técnica que permite maior redução dos erros de arredondamento.
Contudo ela requer um maior tempo computacional, sendo, por isso, mais dispendiosa.
74
Matrizes Especiais
No caso de certo tipo de matrizes, que consideraremos nesta secção, o método de elimi-
nação de Gauss tem um comportamento estável, não sendo necessário recorrer ao uso de
pesquisa de pivot.
Definição 3.1 (Matriz de Diagonal Dominante): Uma matriz An×n é chamada “matriz de
diagonal dominante” se:
n
X
|aii | ≥ |aij | i = 1, 2, . . . , n diagonal dominante por linhas
j=1
j 6= i
n
X
|ajj | ≥ |aij | j = 1, 2, . . . , n diagonal dominante por colunas
i=1
i 6= j
00
com desigualdade estrita >00 válida para pelo menos um ı́ndice.
Exemplo 3.4
Considere a matriz
4 −1 0
A = −1 4 1
2 −2 4
Tem-se: |4| > | − 1| + |0|, |4| > | − 1| + |1| e |4| = |2| + |2|, donde vemos que esta matriz é de
diagonal dominante por linhas, mas não é de diagonal estritamente dominante por linhas.
Por outro lado, A é de diagonal estritamente dominante por colunas: |4| > | − 1| + |2| ,
|4| > | − 1| + | − 2| e |4| > |1| + |0|
Definição 3.3 (Matriz Definida Positiva): Seja An×n uma matriz simétrica. Se xT Ax > 0
qualquer que seja o vector não nulo x = [x1 , x2 , ..., xn ]T ∈ IRn , dizemos que A é uma matriz
definida positiva.
75
Teorema 3.1 Uma matriz An×n simétrica é definida positiva se e só se a submatriz Ak ,
constituı́da pelas k primeiras linhas e k primeiras colunas de A, verifica:
Exemplo 3.5
Para a matriz
2 −1 0
A = −1 2 −1
0 −1 2
tem-se " #
2 −1
A1 = [2], A2 = , A3 = A
−1 2
e, sendo A simétrica, com det(A1 ) = 2, det(A2 ) = 3 > 0, det(A3 ) = det(A) = 4 > 0, então
A é definida positiva.
Observações
Teorema 3.2 Seja A uma matriz de um dos dois tipos seguintes: i) simétrica definida
positiva ou ii) de diagonal estritamente dominante por linhas ou por colunas. Então A é
não singular e, além disso, o método de Eliminação de Gauss (também o método LU ) pode
ser aplicado ao sistema linear Ax = b sem troca de linhas. Ou seja, o processo é estável em
relação à propagação dos erros de arredondamento, não sendo preciso usar nenhuma técnica
de pesquisa de pivot.
Tem-se ainda
Teorema 3.3 Se A é uma matriz simétrica definida positiva então o método de Cholesky
pode ser aplicado ao sistema linear Ax = b. (existe uma única matriz triangular inferior L
tal que A = LLT ).
76
3.2 Normas vectoriais e matriciais
Normas vectoriais
Uma norma em IRn é uma função denotada por k · k com valores em IR, satisfazendo:
N2. kxk = 0 ⇐⇒ x = 0
n
X
II. kxk1 = |xi |
i=1
à n !1/2
X
III. kxk2 = |xi |2
i=1
Exemplo 3.6
à 3 !1/2
X
2 1/2 √
kxk2 = |xi | = (| − 1|2 + |2|2 + |4|2 ) = 21
i=1
77
Normas de matrizes
Uma norma matricial (ou de matrizes) é uma função definida no conjunto das matrizes
quadradas reais com valores em IR (k · k : IRn × IRn −→ IR) satisfazendo:
M1. kAk ≥ 0, ∀ A
M2. kAk = 0 ⇐⇒ A = 0
Embora uma norma matricial possa ser definida de várias maneiras, vamos considerar so-
mente normas provenientes de normas de vectores.
kAxk
kAk = max { norma natural ou induzida } (3.8)
x6=0 kxk
satisfaz as condições M1-M5 para normas de matrizes. Como vemos, a norma de matriz
definida deste modo depende da norma de vector adoptada. Vejamos alguns casos particu-
lares:
kAxk∞
kAk∞ = max . Nesse caso, pode-se provar que:
x6=0 kxk∞
Xn
kAk∞ = max |aij | { conhecida como “norma das linhas” }
1≤i≤n
j=1
Exemplo 3.7
1 3 −5 |1| + |3| + | − 5| = 8,
Se A = 1 4 2 , kAk∞ = max |1| + |4| + |2| = 7, = 18
−6 5 7 | − 6| + |5| + |7| = 18
78
n
X
2. Para a norma vectorial kxk1 = {|xi |}, tem-se:
i=1
kAxk1
kAk1 = max . e pode-se provar que:
x6=0 kxk1
( n )
X
kAk1 = max |aij | { conhecida como “norma das colunas” }
1≤j≤n
i=1
Exemplo 3.8
|1| + |1| + | − 6| = 8,
Para a matriz acima, tem-se: kAk1 = max |3| + |4| + |5| = 12, = 14
| − 5| + |2| + |7| = 14
Definição 3.4 Definição: Os valores próprios de uma matriz An×n são as raı́zes da
equação
det(A − λI) = 0
1 0 1
Exemplo 3.9 Determine os valores próprios da matriz A = 2 2 1
−1 0 0
Solução:
1−λ 0 1
A − λI = 2 2−λ 1
−1 0 −λ
¯ ¯ ¯ ¯
¯ 2−λ 1 ¯ ¯ 2 2−λ ¯
Então det(A − λI) = 0 =⇒ (1 − λ) ¯¯ ¯ ¯
¯+¯
¯
¯=0
¯ 0 −λ ¯ ¯ −1 0 ¯
=⇒ (1 − λ) [(2 − λ)(−λ)] + (2 − λ) = 0
2
=⇒ (2 − λ) [−λ(1 − λ)
√+ 1] = 0 =⇒ √(2 − λ) [λ − λ + 1] = 0
1 + 3i 1 − 3i
=⇒ λ1 = 2, λ2 = , λ3 =
2 2
Definição 3.5 Seja A uma matriz quadrada. O raio espectral de A, denotado por
ρ(A), é definido por:
79
Exemplo 3.10
Teorema 3.4 i) Qualquer que seja a norma matricial k · k, induzida por uma norma vec-
torial, tem-se, para qualquer matriz A:
ρ(A) ≤ kAk
ii) Dada uma matriz A qualquer, para todo o ² > 0, existe uma norma induzida k · k, tal
que:
kAk ≤ ρ(A) + ²
Ou seja, o raio espectral é o ı́nfimo de todas as normas induzidas (entre os valores ρ(A)
e ρ(A) + ² existe sempre uma norma de A)
80
3.3 Condicionamento de sistemas lineares
Ax = b, (3.9)
por vezes os elementos de A ou b (os dados) podem ter de ser arredondados. Também
ao utilizarmos o método de eliminação de Gauss, os erros resultantes dos arredondamentos
efectuados conduzem a erros na solução final.
Para avaliar até que ponto a solução x é sensı́vel à propagação dos erros de arredonda-
mento, podemos pensar que o sistema original é substituı́do por um outro sistema Ā x̄ = b̄,
onde Ā e b̄ são aproximações de A e b, resultantes de pequenas ”perturbações” ou ”mu-
danças” nos elementos de A e b.
Exemplo 3.11
81
este sistema tem por solução: x1 = 3.0 e x2 = 0.0.
keb k∞ 0.0002
kδb k = = ≈ 0.000067 ≈ 0.007%
kbk∞ 3.0001
e
kek∞ 2
kδx k = = = 200%
kxk∞ 1
Assim vemos que uma pequena perturbação relativa em b conduziu a uma grande per-
turbação relativa na solução x. O sistema não é bem condicionado. Trata-se dum sistema
mal condicionado.
Note-se que o número de condição cond(A) depende da norma utilizada, mas, para as normas
induzidas, é sempre maior ou igual a um.
82
Previsão do erro na solução do sistema
1 kAk
≤ (3.14)
kxk kbk
kx − x̄k kb − b̄k
≤ kA−1 k kAk (3.15)
kxk kbk
kb − b̄k
kb − b̄k = kA(x − x̄)k ≤ kAk kx − x̄k =⇒ kx − x̄k ≥ (3.16)
kAk
kx − x̄k kb − b̄k 1
≥ (3.17)
||x|| kAk ||x||
Por outro lado, de Ax = b vem:
donde:
1 1
≥ −1
(3.18)
kxk kA k kbk
83
Conjugando (3.17) por (3.18), vem:
1 kb − b̄k kx − x̄k
−1
≤ (3.19)
kAk kA k kbk kxk
Observações: Comecemos por notar que o resultado do teorema anterior compara o erro
relativo de b̄ com o erro relativo de x̄, sendo independente do método utilizado para resolver
o sistema.
1. Se cond(A) ≈ 1 (pequeno) então, se kδb k for pequeno, vem que kδx k tambem é pequeno.
Neste caso, o sistema é um sistema bem condicionado!
2. Se cond(A) >>> 1 (grande) então kδb k pequeno 6=⇒ kδx k pequeno. Ou seja, pode
haver situações em que resulte um kδx k pequeno (ver exemplo abaixo) e outras em que
o erro relativo de x̄ possa ser muito maior do que o de b̄. Na verdade é garantido isso
acontecer para certas escolhas de b e b̄, só que na prática não se sabe quais são essas
escolhas. Um número cond(A) muito grande traduz-se numa grande sensibilidade do
sistema a pequenas mudanças relativas em b, ou, por outras palavras, o sistema é mal
condicionado.
Exemplo 3.12
84
Previsão:
kx − x̄k∞ kb − b̄k
≤ 60002 ' 4.02, ou seja ' 400%
kxk∞ kbk
Pode concluir-se para este exemplo: quando o erro relativo em b̄ é 0.0067, o erro relativo
na solução pode ir até 400%. Na verdade, já tı́nhamos calculado kδx k = 2 (' 200%), o que
está de acordo com a previsão (que dá um majorante para o erro).
É fácil de verificar que kδb k ' 0.33 10−1 % e kδx k ' 0.5 10−1 %. Ou seja, agora a uma
pequena perturbação relativa em b correspondeu também uma pequena perturbação relativa
em x.
As observações acima sobre mudanças no vector b também são válidas quando há mu-
danças nos elementos da matriz A. Em particular, se compararmos as soluções de Ax = b
e Āx̄ = b, tem-se, no caso em que o erro relativo de Ā é suficientemente pequeno:
kx − x̄k cond(A) kA − Āk
≤ (3.20)
kxk 1 − cond(A) kA− Āk kĀk
kAk
Concluı́mos esta secção com a seguinte observação. Como vimos, as técnicas de pesquisa
de pivot são utilizadas para minorar as dificuldades resultantes da propagação dos erros de
85
arredondamento. Contudo, no caso de sistemas mal condicionados, a sua utilização não vai
em princı́pio melhorar grandemente os resultados, já que o mau condicionamento resulta
sempre em instabilidade numérica.
86
3.4 Métodos iterativos para sistemas lineares
Introdução
Ax − b = 0,
| {z }
(3.21)
F (x)
também começamos por obter uma equivalência x = G(x). Como veremos na secção
seguinte, em geral isso pode ser feito através duma decomposição da matriz A, a qual permite
reescrever o sistema numa forma equivalente
Ax = b ⇐⇒ x = Cx + d,
| {z }
(3.22)
G(x)
Seja
(0) (0) (0)
x(0) = [x1 x2 x3 . . . x(0)
n ]
T
x = [x1 x2 x3 . . . xn ]T ,
onde
(0)
x1 é aprox. para x1 ,
(0)
x2 é aprox. para x2 ,
.....
x(0)
n é aprox. para xn
87
Então construı́mos aproximações:
(1) (1) (1)
x(1) = [x1 x2 x3 . . . x(1)
n ]
T
..
.
x(1) = Cx(0) + d
x(2) = Cx(1) + d
x(3) = Cx(2) + d
..
.
Ou, doutro modo, interessa-nos que as ”distâncias” (medidas por intermédio duma norma)
de x às sucessivas iteradas x(k) tenda para zero:
88
3.4.1 Os Métodos de Jacobi e Gauss-Seidel
Vamos começar por apresentar dois métodos iterativos, utilizando um exemplo concreto.
O Método de Jacobi
x1 = g1 (x1 , x2 , x3 )
x2 = g2 (x1 , x2 , x3 ) ⇐⇒ x = G(x) (3.29)
x3 = g3 (x1 , x2 , x3 )
Em seguida associamos a G o método do ponto fixo x(k+1) = G(x(k) ). Isto é, no lado esquerdo
(k+1) (k)
das equações substitui-se cada xi por xi e, no lado direito, por xi . Obtém-se assim o
chamado método de Jacobi, definido por
(k+1) (k) (k) (k) (k)
x1 = (7 − 2x2 − x3 )/10 = 0.7 − 0.2x2 − 0.1x3
(k+1) (k) (k) (k) (k)
x2 = (−8 − x1 − x3 )/5 = −1.6 − 0.2x1 − 0.2x3 (3.30)
(k+1) (k) (k) (k) (k)
x3 = (6 − 2x1 − 3x2 )/10 = 0.6 − 0.2x1 − 0.3x2 ,
com k = 0, 1, 2, ... Suponhamos que se começa com uma aproximação inicial x(0) =
[0.7 − 1.6 0.6]T . Para obter as iteradas seguintes, utiliza-se (3.30), dando-se sucessivos
valores a k:
89
k = 0 (cálculo de x(1) )
k = 1 (cálculo de x(2) )
k = 2 (cálculo de x(3) )
O Método de Gauss-Seidel
(expressão de x(1) )
Passemos a deduzir a fórmula geral para obtenção de x(k+1) , a partir da expressão (3.30)
do método de Jacobi. O método de Gauss-Seidel resulta de fazer algumas modificações:
(k+1)
A expressão da componente x1 fica como no método de Jacobi. Na expressão da
(k+1) (k) (k+1) (k+1)
componente x2 , substitui-se x1 por x1 . Na expressão da componente x3 substitui-
(k) (k+1) (k) (k+1)
se x1 por x1 e x2 por x2 .
90
Com base nessas observações, o método de Gauss-Seidel para o exemplo dado é o método
iterativo definido por:
(k+1) (k) (k) (k) (k)
x1 = (7 − 2x2 − x3 )/10 = 0.7 − 0.2x2 − 0.1x3
(k+1) (k+1) (k) (k+1) (k)
x2 = (−8 − x1 − x3 )/5 = −1.6 − 0.2x1 − 0.2x3 (3.31)
(k+1) (k+1) (k+1) (k+1) (k+1)
x3 = (6 − 2x1 − 3x2 )/10 = 0.6 − 0.2x1 − 0.3x2 ,
com k = 0, 1, 2, ....
Exemplo 3.14 Consideremos de novo o exemplo (3.13) e mostremos que o método de Jacobi
(3.30) é da forma
x(k+1) = CJ x(k) + d.
Com efeito, reescrevendo a igualdade (3.30) na forma matricial, vem:
(k+1)
(k)
x 0 −0.2 −0.1 x1 0.7
1(k+1)
x =
−0.2 0 −0.2 (k)
+
x2 −1.6
⇐⇒ x
(k+1)
= Cj x(k) + d
2
x3
(k+1) −0.2 −0.3 0 (k)
x3 0.6
Exemplo 3.15 Verifique que também é possı́vel expressar o método de Gauss-Seidel (3.31)
numa forma x(k+1) = CGS x(k) + d, onde CGS é uma matriz e d um vector adequado.
Veremos que as matrizes CJ e CGS têm um papel importante na convergência dos métodos.
Dado o sistema linear Ax = b, vamos agora descrever uma maneira de se obterem métodos
iterativos da forma
x(k+1) = C x(k) + d
91
e, em particular, os métodos de Jacobi e Gauss-Seidel. Começamos por decompor a matriz
A na soma de outras duas:
donde resulta
Ax = b ⇐⇒ (M + N )x = b (3.33)
Desenvolvendo a igualdade da direita obtém-se sucessivamente
−1 −1
Ax = b ⇐⇒ M x = b − N x ⇐⇒ x = −M
| {z }
N x+M
| {z b} (3.34)
C d
Ax = b ⇐⇒ x = Cx + d (3.35)
ou seja,
x(k+1) = −M −1
| {z }
N x(k) + M −1 b (3.37)
C
(0)
k=0,1,2,... , onde x é um vector dado (aproximação inicial).
A decomposição A=L+D+U
92
associamos as matrizes L, U, D definidas do seguinte modo:
0 0 ... ... 0 0 a12 . . . . . . a1n a11 0 . . . ... 0
a21 0 0 ... 0 0 0 a 0 a
23 . . . a2n 22 0 ... 0
.. .. .. .. .. .. .. .. .. .. .. ..
. . . . . . . . .
L= . 0 ;U = 0 . ;D = 0 .
.. .. . .
.. . .. .. . .. ..
. . . 0 . . . an−1n . . . 0
an1 an2 . . . ann−1 0 0 0 ... 0 0 0 0 ... 0 ann
Então, tem-se:
A=L+D+U (3.38)
Método de Jacobi
93
Dedução da expressão geral do método de Jacobi
Exemplo 3.17 Se aplicarmos a expressão acima ao exemplo 3.13, resultam as equações já
obtidas anteriormente:
i
(k+1) (k) (k)
x1 = [7 − (2x2 + x3 ) /10
i
(k+1) (k) (k)
x2 = [−8 − (x1 + x3 ) /5
i
(k+1) (k) (k)
x3 = [6 − (2x1 + 3x2 ) /10
Na prática, é mais fácil utlizar o processo descrito no exemplo 3.13 para obter a expressão
da iterada genérica.
Método de Gauss-Seidel
94
O método de Gauss-Seidel é um método iterativo da forma (3.37), com M = D + L e N = U
e, consequentemente, matriz de iteração dada por CGS = −M −1 N = −(D + L)−1 U . Ou
seja, é o método definido por
x(k+1) = −(D + L)−1 U x(k) + (D + L)−1 b (3.42)
| {z }
CGS
A fórmula geral para o cálculo de x(k+1) pode ser obtida de maneira análoga à utilizada
para o método de Jacobi, usando a igualdade (equivalente a (3.42)):
(D + L)x(k+1) = −U x(k) − b (3.43)
donde se obtém
D x(k+1) = −L x(k+1) − U x(k) + b (3.44)
Note-se que a expressão acima também pode ser deduzida a partir da expressão geral
(3.40) do método de Jacobi, fazendo as modificações seguintes. No método de Gauss-Seidel
(k+1)
utilizam-se os valores xj , j = 1, 2, . . . , i − 1, que são aproximações actualizadas de xj , j =
(k)
1, 2, . . . , i − 1, em vez dos valores xj , j = 1, 2, . . . , i − 1.
95
Dem. Seja x a solução de (3.46) e portanto de Ax = b e seja
e(k) = x − x(k)
ou seja,
e(k+1) = Ce(k) (3.51)
Dando sucessivos valores a k obtém-se
e(1) = Ce(0)
e(2) = Ce(1) = C(Ce(0) ) = C 2 e(0)
e(3) = Ce(2) = C(C 2 e(0) ) = C 3 e(0)
.. ..
. .
e, em geral,
e(k+1) = C (k+1) e(0) (3.52)
e, notando que:
kC 2 k = kCCk ≤ kCkkCk = kCk2
kC 3 k = kCC 2 k ≤ kCkkC 2 k = kCk3
kC 4 k = kCC 3 k ≤ kCkkC 3 k = kCk4
.. ..
. .
obtém-se, em geral, para k ≥ 0: kC (k+1) k ≤ kCk(k+1) . Substituindo acima, resulta a fórmula:
As fórmulas (I) e (II) são válidas para qualquer norma vectorial e correspondente norma
matricial induzida.
96
Convergência
A fórmula (II), juntamente com a hipótese de que existe uma norma tal que kCk < 1,
pode ser utilizada para provar convergência. Com efeito, sendo kCk < 1, então
k→∞
lim kC (k+1) k = 0 =⇒ ke(k+1) k −→ 0
k→∞
k→∞ k→∞
ou seja, kx − x(k+1) k −→ 0 =⇒ x(k+1) −→ x qualquer que seja x(0) .
Portanto, provámos que o método converge para x qualquer que seja x(0) ∈ IRn
Para finalizar a demonstração do teorema, falta provar a fórmula de erro (III), ou seja, a
desigualdade (3.50), que é válida sob a hipótese de que existe uma norma tal que kCk < 1.
Corolário 3.1 O método iterativo (3.47) converge para a solução x do sistema (3.46) qual-
quer que seja o vector x(0) dado, se alguma das condições se verificar:
(1) kCk∞ < 1 (3.53)
(2) kCk1 < 1 (3.54)
Observação: Pode não se dar (1) nem (2) e o método ser convergente.
10 2 1 x1 7
Exemplo 3.18 Seja de novo o exemplo 1 5 1 x2 = −8 , cuja solução ex-
2 3 10 x3 6
1
acta é x = −2 . Mostre que o método de Jacobi converge para a solução exacta do
1
sistema e obtenha um majorante para kx − x(2) k∞
97
Já obtivémos a matriz de iteração do método de Jacobi:
0 −0.2 −0.1
−1
CJ = −D (L + U ) = −0.2 0 −0.2
−0.2 −0.3 0
Então facilmente vemos que:
Dado que x(1) = [0.960 −1.86 0.940]T e x(2) = [0.978 −1.98 0.966]T então: x(2) −x(1) =
[0.018 − 0.12 0.026]T . E temos o seguinte majorante para o erro:
kCk∞
kx − x(2) k∞ ≤ kx(2) − x(1) k∞
1 − kCk∞
0.5
kx − x(2) k∞ ≤ (0.12) = 1.0 × (0.12) = 0.12
1 − 0.5
Acima designámos por cij os elementos da matriz CJ e a relação anterior significa que
kCJ k∞ < 1. Ou seja, a condição de A ser de diagonal estritamente dominante por linhas é
equivalente a ter-se kCJ k∞ < 1. E estamos nas condições do teorema (3.6). Consequente-
mente, podemos concluir que o método de Jacobi converge, qualquer que seja o vector inicial
x(0) .
98
Passando agora à condição de A ser de diagonal estritamente dominante por colunas, é
interessante notar que ela não implica que kCJ k1 < 1. Basta considerar o exemplo:
4 4 −2
A = 1 −8 1
1 1 5
A é de diagonal estritamente dominante por colunas mas facilmente se verifica que para a
matriz CJ vem kCJ k1 > 1.
4 −1 1 x1 7
Exemplo 3.19 Seja o sistema 4 −8 1 x2 = −21 . Conclua sobre a con-
−2 1 5 x3 15
vergência ou não dos métodos de Jacobi e Gauss-Seidel.
A matriz A não é de diagonal estritamente dominante por colunas, pois falha na primeira
coluna: |a11 | = 4 < 4 + 2.
99
Concluı́mos com um resultado geral de convergência.
x1 + 3x2 = 2
x1 + 4x2 = 3
Mostre que os métodos de Jacobi e Gauss-Seidel convergem para a solução do sistema, qual-
quer que seja a aproximação inicial.
Notando que A não é de diagonal estritamente dominante por linhas nem por colunas,
nada se conclui sobre convergência ou divergência dos métodos pelos teoremas (3.7) e (3.8).
Calculemos as respectivas matrizes de iteração.
a) Método de Jacobi
" #
−1 0 −3
Tem-se CJ = −D (L + U ) =
−1/4 0
Então kCJ k∞ = max{3, 1/4} = 3 > 1, como já era de esperar, e kCJ k1 =
max{1/4, 3} = 3 > 1. Também nada se conclui pelo teorema 3.6.
Logo, ρ(CJ ) ' 0.866025 < 1, pelo que o método converge, ∀x(0) .
100
onde ² é um número real conhecido. No caso de ² = 0 justifique que o método de Jacobi
converge para a solução do sistema e, se tomarmos x(0) = 0 (vector nulo), mostre que as
iteradas satisfazem a desigualdade
µ ¶(k+1)
1
kx − x(k+1) k∞ ≤
2
Uma condição suficiente para que o método de Jacobi aplicado ao sistema linear acima
convirja para a solução do mesmo, ∀x(0) , é que kCJ k < 1 onde k · k é uma norma de
matrizes. Tem-se
0 −1/2 0
CJ = −D−1 (L + U ) = −1/3 0 0
0 −1/3 0
logo kCJ k∞ = max[1/2, 1/3, 1/3] = 1/2 < 1. Portanto, podemos concluir que o método de
Jacobi aplicado ao sistema linear converge para a solução do mesmo, qualquer que seja x(0) .
Por outro lado, se tomarmos x(0) = 0, pelo método de Jacobi obtemos x(1) = CJ x(0) +
D b = [−1/2 0 0]T . Agora, aplicando a seguinte fórmula do erro
−1
CJk+1
kx − x(k+1) k∞ ≤ kx(1) − x(0) k∞
1 − CJ
obtemos ³ ´k+1
1 µ ¶k+1
2 1
kx − x(k+1) k∞ ≤ ³ ´ (1/2 − 0) =
1− 1 2
2
101
Sistemas de equações não lineares
Um sistema de n-equações não-lineares a n-incógnitas tem a forma:
f1 (x1 , x2 , . . . , xn ) = 0
f2 (x1 , x2 , . . . , xn ) = 0
.. ..
. .
fn (x1 , x2 , . . . , xn ) = 0
x1 + x2 + x3 = 4 (
tem como solução
x1 x2 + x1 x3 + x 2 x3 = 1
x = [−1 2 3]T
x1 x2 x3 = −6
x(m+1) = G(x(m) )
onde G(x) = x − [J(x)]−1 F(x)
102
e
∂f1 ∂f1 ∂f1
...
∂x1 ∂x2 ∂xn
∂f ∂f2 ∂f2
2
...
J(x) = ∂x1 ∂x2
∂xn
.. .. ..
. . . . . .
∂fn ∂fn ∂fn
...
∂x1 ∂x2 ∂xn
∂fi
é a matriz Jacobiana de F, isto é, J(x) = , j = 1, 2, . . . , n; i = 1, 2, . . . , n.
∂xj
Dada uma aproximação inicial x(0) , as iteradas x(m+1) são calculadas através do processo
iterativo: h i−1
x(m+1) = x(m) − J(x(m) ) F(x(m) ) (3.57)
a que se chama método de Newton para sistemas não-lineares.
Cálculo de x(m+1)
De (3.57) temos:
h i−1
x(m+1) − x(m) = − J(x(m) ) F(x(m) )
Fazendo d = x(m+1) − x(m) , vem:
h i−1
d = − J(x(m) ) F(x(m) )
Obs: Se J(x(m) ) for não- singular ∀m e se x(0) estiver suficientemente perto de x, pode-se
m→∞
provar que x(m) −→ x é a convergência é quadrática.
Exemplo 3.23 : começando com uma aproximação inicial x(0) = [0 1.0]T , calcule 2 iteradas
do método de Newton para o sistema não-linear
) (
x2 − x21 + 2x1 = 0.5 f1 (x1 , x2 ) = x2 − x21 + 2x1 − 0.5 = 0
⇐⇒
x21 + 4x22 = 4 f2 (x1 , x2 ) = x21 + 4x22 − 4 = 0
103
Graficamente, as soluções do sistema são os pontos de intersecção das duas curvas
seguintes (respectivamente, prábola e elipse):
1.5
0.5
-2 -1 1 2
-0.5
-1
ou, equivalentemente, (
J(x(m) )d = −F(x(m) )
x(m+1) = x(m) + d
Cálculo de J(x(m) )
∂f1 ∂f1 " #
(m)
∂x1 ∂x2 −2x1 + 2 1
J(x(m) ) =
∂f2 ∂f2
=
(m) (m)
2x1 8x2
∂x1 ∂x2
O vector F (x(m) )
³ ´
(m) (m) (m) (m) 2 (m)
f1 (x1 , x2 ) = x2 − x1 + 2x1 − 0.5
F(x(m) ) = (m) (m)
³
(m)
´2 ³ ´
(m) 2
f2 (x1 , x2 ) = x1 + 4 x2 −4
104
Cálculo de x(1)
O vector F (x(0) )
Cálculo de x(2) :
x(2) = x(1) + d
onde d é solução do sistema linear
" #" # ³ ´
(1) (1) (1) 2 (1)
−2x1 + 2 1 d1 x2 − x1 + 2x1 − 0.5
J(x(1) ) = (1) (1) = ³ ´
(1) 2
³ ´
(1) 2
2x1 8x2 d2 x1 + 4 x2 −4
Finalmente,
(2)
x1 = −0.25 + 0.02744 = −0.22256
(2)
x2 = 1.0 − 0.00610 = 0.99390
que são as componentes da iterada x(2) pretendida.
105
4 Aproximação de funções
Introdução
Começamos por rever resultados que mostram a importância dos polinómios para aprox-
imar funções contı́nuas.
Polinómio de Taylor: Seja f (x) uma função definida em [a, b] e suponhamos que f (x) ∈
C n+1 [a, b]. Então, um polinómio que pode ser usado para aproximar f (x) é o polinómio de
Taylor de grau n em torno de x0 :
(x − x0 )2 (x − x0 )n
Pn (x) = f (x0 ) + f 0 (x0 )(x − x0 ) + f 00 (x0 ) + · · · + f (n) (x0 ) (4.1)
2 n!
e o erro é dado pelo resto de ordem n:
(x − x0 )n+1
Rn (x) = f (x) − Pn (x) = f (n+1) (ξx ) ξx entre x e x0 (4.2)
(n + 1)!
√
Exemplo 4.1 Obtenha o polinómio de Taylor √ de grau 3 da função f (x) = 1 + x, em torno
de x0 = 0, e calcule uma aproximação para 1.1.
Solução:
(x − x0 )2 (x − x0 )3
P3 (x) = f (x0 ) + f 0 (x0 )(x − x0 ) + f 00 (x0 ) + f 000 (x0 )
2 3!
f (x) = (1 + x)1/2 , f (x0 ) = f (0) = 1
1
f 0 (x) = (1 + x)−1/2 , f 0 (x0 ) = f 0 (0) = 1/2
2
1
f 00 (x) = − (1 + x)−3/2 , f 00 (x0 ) = f 00 (0) = −1/4
4
3
f 000 (x) = (1 + x)−5/2 , f 00 (x0 ) = f 00 (0) = 3/8
8
Portanto,
1 −1 1 2 3 1 3 1 −1 2 1
P3 (x) = 1 + x + x + x = 1+ x+ x + x3
2 4 2 8 3! 2 8 16
donde obtemos
√ 1 −1 2 1
f (1.1) = 1.1 ≈ P3 (1.1) = 1 + (0.1) + 0.1 + 0.13 = 1.0488125
2 8 16
106
4.1 Interpolação polinomial
Seja f uma função definida num intervalo [a, b]. Sejam x0 , x1 , · · · , xn n + 1 pontos dis-
tintos de [a, b] e defina-se fj := f (xj ), j = 0, 1, . . . , n. Uma função g tal que
g(xj ) = fj , j = 0, 1, . . . , n. (4.3)
pn (xj ) = fj , j = 0, 1, · · · , n. (4.4)
Dem.:
Seja
pn (x) := a0 + a1 x + a2 x2 + · · · + an xn , (4.5)
107
onde os coeficientes aj são constantes a determinar. As condições (4.4) traduzem-se nas n+1
equações
pn (xj ) = a0 + a1 xj + a2 x2j + · · · + an xnj , j = 0, 1, · · · , n.
Estas constituem um sistema da forma Va = f , onde V é a matriz definida por
1 x0 x20 · · · xn0
1 x1 x21 · · · xn1
. . . ··· .
1 xn x2n · · · xnn
e onde a = [a0 a1 · · · an ]T e f = [f0 f1 · · · fn ]T . A matriz V é uma matriz de Vandermonde e
pode verificar-se que o seu determinante é dado por
Y
detV = (xi − xj )
0≤j<i≤n
Sendo os xj distintos, será detV6= 0. Então V é não singular e o sistema Va = f tem uma
solução única a. Fica provada a existência dum único polinómio interpolador de grau ≤ n.
Para se obter os coeficientes a0 , a1 , · · · , an que devem ser inseridos em (4.5), é necessário
resolver o sistema Va = f . Este processo de determinar uma expressão para pn é pouco
conveniente do ponto de vista computacional. Outros modos de construir pn serão tratados
neste capı́tulo. 2
A fórmula de Lagrange
108
Quer-se provar que pn (x) = q(x). Comecemos por notar que a soma de polinómios de grau
n é um polinómio de grau ≤ n. Além disso, atendendo a (4.6) tem-se, para 0 ≤ i ≤ n,
A fórmula n
X
pn (x) = fj lj (x), (4.7)
j=0
com
Y (x − xi )
lj (x) := (4.8)
0≤i≤n
(xj − xi )
i6=j
Exemplo 4.2 Determine o polinómio interpolador de grau ≤ 2 duma certa função f nos
seguintes pontos tabelados
xi 1 −1 2
f (xi ) 0 −3 4
Utilize o polinómio obtido para aproximar o valor f (0).
Solução
Tem-se
(x + 1)(x − 2) x2 − x − 2
l0 (x) = =
(1 + 1)(1 − 2) −2
(x − 1)(x − 2) x2 − 3x + 2
l1 (x) = =
(−1 − 1)(−1 − 2) 6
(x − 1)(x + 1) x2 − 1
l2 (x) = =
(2 − 1)(2 + 1) 3
A fórmula (4.7) dá-nos então
x2 − 3x + 2 x2 − 1
p2 (x) = 0 − 3 +4 .
6 3
Usamos então o valor p2 (0) = −7/3 para aproximar o valor desconhecido f (0). Sem dis-
pormos de mais informação, não podemos avaliar se a aproximação é boa. Note que se
109
quisermos representar p2 em potências de x, basta-nos efectuar os cálculos na expressão
obtida. Tem-se, neste caso, p2 (x) = 61 (5x2 + 9x − 14), que está na forma (4.5). 2
f (n+1) (ξ)
en (x) := f (x) − pn (x) = W (x), (4.9)
(n + 1)!
onde
W (x) := (x − x0 )(x − x1 ) · · · (x − xn ).
Dem.:
onde
f (x) − pn (x)
C= .
W (x)
Tem-se
F (xj ) = f (xj ) − pn (xj ) − CW (xj ) = 0, j = 0, 1, · · · , n,
e também
F (x) = f (x) − pn (x) − CW (x) = 0,
atendendo à definição de C. A função F tem pelo menos n + 2 zeros distintos em [a, b]. Pelo
teorema de Rolle, a derivada F 0 tem pelo menos n + 1 zeros no intervalo Ip (x0 , x1 , . . . , xn , x).
110
A segunda derivada terá pelo menos n zeros e, por um processo indutivo, concluimos que a
derivada de ordem (n + 1) tem pelo menos um zero. Seja ξ esse zero. Derivando n + 1 vezes
a equação (4.10) e fazendo t = ξ, obtemos
É evidente que a equação (4.9) não pode ser usada para calcular o valor exacto do erro
en (x), visto que ξ = ξ(x) é em geral uma função desconhecida. (Uma excepção é o caso em
que a derivada de ordem (n + 1) de f é uma constante).
Porém, sendo f (n+1) contı́nua, existirá uma constante Mn+1 tal que |f (n+1) (t)| ≤ Mn+1
para qualquer t ∈ [a, b]. Isto, juntamente com a equação (4.9), resulta na fórmula
Mn+1
|en (x)| = |f (x) − pn (x)| ≤ |(x − x0 )(x − x1 ) · · · (x − xn )|, (4.11)
(n + 1)!
a qual permite obter um majorante para o erro de interpolação num certo x ∈ [a, b], fixado.
Exemplo 4.3
É claro que em (4.11) tomou-se x = 0, que é o ponto onde se pretende estimar o erro. Os
pontos de interpolação foram definidos no exemplo 4.2.
111
Mais precisamente, sejam pn−1 ∈ Pn−1 e pn ∈ Pn os polinómios interpoladores de f nos
pontos xi , para i = 0, 1, · · · , n − 1 e i = 0, 1, · · · , n, respectivamente. Vamos provar que é
possı́vel escrever
pn (x) = pn−1 (x) + Cn (x), (4.12)
onde Cn é uma função que a seguir caracterizamos.
p1 (x) = f0 + A1 (x − x0 ) (4.14)
p2 (x) = p1 (x) + A2 (x − x0 )(x − x1 )
= f0 + A1 (x − x0 ) + A2 (x − x0 )(x − x1 ) (4.15)
p3 (x) = p2 (x) + A3 (x − x0 )(x − x1 )(x − x2 )
= f0 + A1 (x − x0 ) + A2 (x − x0 )(x − x1 ) + A3 (x − x0 )(x − x1 )(x − x2 ) (4.16)
..
.
pn (x) = f0 + A1 (x − x0 ) + A2 (x − x0 )(x − x1 ) + A3 (x − x0 )(x − x1 )(x − x2 ) + · · ·
+ An (x − x0 ) · · · (x − xn−1 ) (4.17)
A1 = f [x0 , x1 ] (4.19)
112
Em seguida, substitui-se A1 pela expressão (4.18) na equação (4.15). Para se determinar
A2 , basta fazer x = x2 em (4.15) e usar o facto de p2 (x2 ) = f2 (por p2 interpolar f em
x0 , x1 , x2 . Assim, obtém-se
f1 − f0
f2 = p2 (x2 ) = f0 + (x2 − x0 ) + A2 (x2 − x0 )(x2 − x1 ) (4.20)
x1 − x0
o que, depois de simplificados os cálculos, conduz a
f0 f1 f2
A2 = + + (4.21)
(x0 − x1 )(x0 − x2 ) (x1 − x0 )(x1 − x2 ) (x2 − x0 )(x2 − x1 )
No seguimento do que foi definido atrás, usa-se a seguinte notação para designar o valor
An ,
An = f [x0 , x1 , · · · , xn ] (4.24)
a que se chama diferença dividida de ordem n da função f , associada aos pontos x0 , x1 , · · · , xn .
113
a que se chama fórmula de Newton com diferenças divididas. Por uma questão de uniformi-
dade, no lugar de f (xi ) usa-se f [xi ], a que se chama diferença de ordem zero.
Exemplos
f0 f1
f [x0 , x1 ] = +
x0 − x1 x1 − x0
o que confirma a expressão já obtida em (4.18). De modo geral, a diferença dividida de
ordem 2, nos pontos xi , xi+1 , é dada por
fi+1 − fi
f [xi , xi+1 ] = .
xi+1 − xi
Como exemplo de diferença de ordem 3, tem-se
f0 f1 f2
f [x0 , x1 , x2 ] = + +
(x0 − x1 )(x0 − x2 ) (x1 − x0 )(x1 − x2 ) (x2 − x0 )(x2 − x1 )
A seguinte propriedade permite relacionar diferenças de uma certa ordem k com diferenças
de ordem k − 1.
Resulta também de (4.23) que f [x0 , · · · , xn ] é uma função simétrica de x0 , · · · , xn , isto é,
qualquer permutação dos xi conduz ao mesmo valor da diferença dividida.
114
Tabela de diferenças divididas
f [x0 , x1 ]
x1 · · · f [x1 ] f [x0 , x1 , x2 ]
·.
f [x1 , x2 ] f [x0 , x1 , x2 , x3 ]
·.
x2 f [x2 ] f [x1 , x2 , x3 ] f [x0 , x1 , x2 , x3 , x4 ]
.·
f [x2 , x3 ] f [x1 , x2 , x3 , x4 ]
.·
x3 · · · f [x3 ] f [x2 , x3 , x4 ]
f [x3 , x4 ]
x4 f [x4 ]
115
Exemplo 4.4
xi 0 1 2
fi 1 1 2
onde x0 = 0, x1 = 1, x2 = 2.
116
Relação entre as diferenças divididas e as derivadas de f
Seja f ∈ C n+1 [a, b] e sejam x0 , x1 , · · · , xn pontos distintos de [a, b]. Usando a fórmula de
Newton com diferenças divididas, podemos escrever a igualdade
f (n+1) (ξ)
f (x) = f [x0 ]+f [x0 , x1 ](x−x0 )+· · ·+f [x0 , x1 , · · · , xn ](x−x0 ) · · · (x−xn−1 )+ W (x),
(n + 1)!
(4.27)
onde W (x) = (x − x0 )(x − x1 ) · · · (x − xn ) e ξ ∈ int(x0 , . . . , xn , x). O último termo do lado
direito da equação representa o erro de interpolação (ver eq. (4.9)).
(x − x0 )n (x − x0 )n+1
f (x) = f (x0 ) + f 0 (x0 )(x − x0 ) + · · · + f (n) (x0 ) + f (n+1) (γ) ,
n! (n + 1)!
com γ entre x0 e x, constatamos uma certa semelhança entre as duas fórmulas, sugerindo a
existência duma relação entre as diferenças divididas e as derivadas de f . Com efeito, basta
notar por exemplo que sendo
f (x1 ) − f (x0 )
f [x0 , x1 ] = ,
x1 − x0
resulta do Teorema do valor médio de Lagrange que f [x0 , x1 ] coincidirá com o valor da
derivada f 0 nalgum ponto situado entre x0 e x1 .
Teorema 4.3 Seja f ∈ C n [a, b] e x0 , x1 , · · · , xn quaisquer pontos distintos de [a, b]. Então
f (n) (ξ)
f [x0 , x1 , · · · , xn ] = , ξ ∈ int(x0 , . . . , xn , xn ). (4.28)
n!
Nota
117
4.2 Aproximação segundo o critério dos mı́nimos quadrados
Nesta secção, consideraremos outros tipos de funções aproximadoras para f (x), sem a
exigência de que elas interpolem f . Com efeito, em muitas situações não é conveniente
que a função aproximadora seja uma função interpoladora.
Por exemplo, suponhamos que a função f traduz uma relação entre duas grandezas fı́sicas,
x e f (x).
De entre essas normas, a norma euclidiana k.k2 é a que conduz a uma técnica mais simples.
Então no método dos mı́nimos quadrados, os parâmetros α0 , . . . , αm são determinados
de modo a minimizar
à n !1/2 à n !1/2
X X
||d||2 = (di )2 = (fi − gi )2
i=0 i=0
118
Isso equivale a minimizar simplesmente a quantidade
n
X
D = ||d||22 = (fi − gi )2
i=0
Exemplo 4.5
Para isso, consideremos o caso geral de obter uma função da forma (4.29), onde os valores
dos parâmetros α0 , . . . , αn pretendidos são os que tornam mı́nima a função
n
X
D(α0 , . . . , αm ) = (fi − gi )2
i=0
119
Pela teoria das funções reais em IRm+1 , impomos agora as seguintes condições sobre D:
∂D
= 0, j = 0, 1, . . . , m
∂αj
Fazendo como no exemplo acima, obtém-se o sistema:
Xn
∂D
=0⇔ 2[fi − α0 φ0 (xi ) − . . . αm φm (xi )](−φ0 (xi )) = 0
∂α0 i=0
Xn
∂D
=0⇔ 2[fi − α0 φ0 (xi ) − . . . αm φm (xi )](−φ1 (xi )) = 0
∂α1 i=0
.. ..
. .
Xn
∂D
=0⇔ 2[fi − α0 φ0 (xi ) − . . . αm φm (xi )](−φm (xi )) = 0
∂αm i=0
n
X n
X n
X n
X
α0 φ0 (xi )φ0 (xi ) + α1 φ0 (xi )φ1 (xi ) + . . . + αm φ0 (xi )φm (xi ) = fi φ0 (xi )
i=0 i=0 i=0 i=0
n
X n
X n
X n
X
α0 φ1 (xi )φ0 (xi ) + α1 φ1 (xi )φ1 (xi ) + . . . + αm φ1 (xi )φm (xi ) = fi φ1 (xi )
i=0 i=0 i=0 i=0
.. .. .. .. ..
. . . . .
n
X n
X n
X n
X
α0 φm (xi )φ0 (xi ) + α1 φm (xi )φ1 (xi ) + . . . + αm φm (xi )φm (xi ) = fi φm (xi )
i=0 i=0 i=0 i=0
120
o sistema de equações normais toma a forma
< φ0 , φ0 > < φ0 , φ1 >
< φ0 , φ2 > · · · < φ0 , φm > α0 < f , φ0 >
< φ1 , φ0 > < φ1 , φ1 >
< φ1 , φ2 > · · · < φ1 , φm > α1 < f , φ1 >
.. .. .. .. .. = ..
. . . ··· . . .
< φm , φ0 > < φm , φ1 > < φm , φ2 > · · · < φm , φm > < f , φm >αm
(4.32)
Trata-se de um sistema não homogéneo de m + 1 equações lineares nas m + 1 incógnitas
αk , k = 0, 1, . . . , m. Note-se que a matriz do sistema é simétrica. Prova-se que se as funções
φ0 (x), φ1 (x), . . . , φm (x) forem linearmente independentes então o sistema tem uma solução
única, a qual é ponto de mı́nimo de D.
Exemplo 4.6
xi −1 0 1 5
f (xi ) −2.0 −2.0 0 28.0
Solução
Vemos que a função g é do tipo (4.29). Mais precisamente, g(x) = α0 φ0 (x) + α1 φ1 (x)
onde φ0 (x) = x − 1 e φ1 (x) = (x − 1)2 . Para que g(x) aproxime f (x) segundo o critério dos
mı́nimos quadrados, os valores dos parâmetros α0 e α1 são os que minimizam a função
3
X
D= (fi − α0 (xi − 1) − α1 (xi − 1)2 )2
i=0
121
Logo, temos
(φ0 , φ0 ) = (−2)2 + (−1)2 + 02 + (4)2 = 21
(φ1 , φ0 ) = (−2)3 + (−1)3 + 03 + (4)3 = 55
(φ1 , φ1 ) = (−2)4 + (−1)4 + 04 + (4)4 = 273
(f , φ0 ) = (−2)(−2) + (−1)(−2) + 0 + (4)(28) = 118
(f , φ1 ) = (−2)2 (−2) + (−1)2 (−2) + 0 + (4)2 (28) = 438
e somos conduzidos ao sistema linear
" #" # " #
21 55 α0 118
=
55 273 α1 438
que tem como solução: α0 = 3.0 e α1 = 1.0. Finalmente, notemos que poderı́amos usar o
processo utilizado no Exemplo 4.5 para chegar ao sistema normal.
Exemplo 4.7
122
5 Integração numérica
Z b
I(f ) = f (x)dx.
a
Suponha que f (x) é uma ”função complicada” (não se conhece uma primitiva) ou que f
é conhecida somente num número finito de pontos. Uma aproximação para I(f ) pode ser
obtida como segue.
Se f ∈ C (n+1) [a, b], então f (x) = pn (x) + en (x), onde en (x) é o erro de interpolação, dado
por (4.9). Ou seja,
f (n+1) (ξ(x))
f (x) = pn (x) + (x − x0 )(x − x1 ) · · · (x − xn ) , onde ξ(x) ∈ [a, b].
(n + 1)!
Logo, Z b Z b Z b
f (x)dx = pn (x)dx + en (x)dx, (5.1)
a a a
| {z }
En (f )
onde Z b Z b
f (n+1) (ξ(x))
En (f ) := en (x)dx = (x − x0 )(x − x1 ) · · · (x − xn ) dx (5.2)
a a (n + 1)!
123
Utilizando a fórmula de Lagrange do polinómio interpolador, vem:
Z b Z b ÃX
n
!
pn (x)dx = lk (x)f (xk ) dx
a a k=0
n Z b n
ÃZ !
X X b
= lk (x)f (xk )dx = lk (x)dx f (xk ).
k=0 a k=0 | a
{z }
Ak
b−a
xj = a + jh, h= , j = 0, 1, · · · , n
n
As fórmulas de Newton-Cotes fechadas mais conhecidas são a “Fórmula dos Trapézios” e a
“Fórmula de Simpson”.
124
Cálculo de A0 e A1
Z b
(x − x1 ) 1Zb 1 (x − x1 )2 x1
A0 = dx = −
(x − x1 )dx = − |x 0
a (x0 − x1 ) h a h 2
1 (x0 − x1 )2 1 h2 h
= = =
h 2 h 2 2
Z b
(x − x0 ) 1Zb 1 (x − x0 )2 x1
A1 = dx = (x − x0 )dx = |x 0
a (x1 − x0 ) h a h 2
1 (x1 − x0 )2 1 h2 h
= = =
h 2 h 2 2
Logo, a fórmula de quadratura é dada por:
h h h
T (f ) = f (x0 ) + f (x1 ) = [f (x0 ) + f (x1 )]
2 2 2
125
No caso do integral (5.5), tem-se W (x) = (x − x0 )(x − x1 ) ≤ 0 ∀ x ∈ [x0 , x1 ]. Aplicando
o teor. valor médio para integrais
Z b
f 00 (ξ(x)) f 00 (c) Z b
(x − x0 )(x − x1 ) dx = (x − x0 )(x − x1 )dx, z ∈ [x0 , x1 ],
a 2! 2! a
onde
Z b
(x − x1 )2 x1 Z b (x − x1 )2
(x − x0 )(x − x1 )dx = (x − x0 ) |x 0 − dx
a 2 a 2
(x − x1 )3 x1 (x0 − x1 )3 h3
= − |x0 = =−
6 6 6
Obtem-se assim a seguinte fórmula para o erro da regra dos Trapézios:
T h3 00
E (f ) = − f (c) z ∈ [a, b] .
12
Fórmula de Simpson
A fórmula de Simpson é obtida ao aproximarmos I(f ) por I(p2 ), onde p2 (x) é o polinómio
interpolador de f (x) nos pontos x0 = a, x1 = a+b
2
e x2 = b. Nesse caso temos:
f (3) (ξ(x))
f (x) = p2 (x) + (x − x0 )(x − x1 )(x − x2 ) , com ξ(x) ∈ [a, b],
3!
com p2 (x) = l0 (x)f (x0 ) + l1 (x)f (x1 ) + l2 (x)f (x2 ) .
Logo,
Z b Z b Z b
f (3) (ξ(x))
f (x)dx = p2 (x)dx + (x − x0 )(x − x1 )(x − x2 ) , onde ξ(x) ∈ [a, b]
a a a 3!
(5.6)
126
Cálculo de A0 , A1 , A2
Z b
(x − x1 )(x − x2 ) 1 Zb
A0 = dx = (x − x1 )(x − x2 )dx
a (x0 − x1 )(x0 − x2 ) 2h2 a
" #
1 (x − x2 )2 b=x2 Z b (x − x2 )2
= (x − x1 ) |a=x0 − dx
2h2 2 a 2
" #
1 (x − x2 )2 b=x2 (x − x2 )3 b=x2
= (x − x1 ) |a=x0 − |a=x0
2h2 2 6
" # · ¸ · ¸
1 4h2 8h3 1 3 4 3 1 2 3 1
= 2
h − = 2 2h − h = 2 h = h
2h 2 6 2h 3 2h 3 3
Z b
(x − x0 )(x − x2 ) 1 Zb
A1 = dx − 2 (x − x0 )(x − x2 )dx
a (x1 − x0 )(x1 − x2 ) h a
" #
1 (x − x2 ) b=x2 Z b (x − x2 )2
2
= − 2 (x − x0 ) |a=x0 − dx
h 2 a 2
" #
1 (x − x2 )2 b=x2 (x − x2 )3 b=x2
= − 2 (x − x0 ) |a=x0 − |a=x0
h 2 6
" #
1 8h3 4
= − 2 − = h
h 6 3
Z b
(x − x0 )(x − x1 ) 1 Zb
A2 = dx = − 2 (x − x0 )(x − x1 )dx
a (x2 − x0 )(x2 − x1 ) 2h a
" #
1 (x − x1 ) b=x2 Z b (x − x1 )2
2
= (x − x0 ) |a=x0 − dx
2h2 2 a 2
" #
1 (x − x1 )2 b=x2 (x − x1 )3 b=x2
= (x − x0 ) |a=x0 − |a=x0
2h2 2 6
" Ã Ã !!# · ¸
1 h2 h3 h3 1 3 1 3 1
= 2
2h − − − = 2 h − h = h
2h 2 6 6 2h 3 3
127
Erro de integração
Tal como no caso da fórmula dos trapézios, o erro de integração é dado pelo integral do
erro de interpolação (compare-se (5.6)). Ou seja, supondo f ∈ C 2 [a, b],
Z b Z b
S
E (f ) = f (x)dx − p2 (x)dx
a a
Z b
f (3) (ξ(x))
= (x − x0 )(x − x1 )(x − x2 ) , onde ξ(x) ∈ [a, b]
a 3!
Pode contudo mostrar-se que, se f ∈ C 4 [a, b], é válida a seguinte fórmula para o erro de
integração:
h5 4
E S (f ) = −
f (ξ) , ξ ∈ [a, b]
90
Um majorante para o erro é então dado por:
h5
|E S (f )| ≤ max |f 4 (x)|
90 x∈[a,b]
A obtenção de uma fórmula de quadratura para um intervalo [a, b] pode ser feita de 2 modos:
128
R xj+1
Assim, para obter uma aproximação para I(f ) aplica-se a cada integral xj f (x)dx uma
fórmula de quadratura com poucos pontos e somam-se as contribuições.
Esta fórmula
R
é obtida dividindo o intervalo [a, b] em N subintervalos e aproximando cada
integral xxjj+1 f (x)dx pela regra dos trapézios.
b−a
Sejam xj = a + jh, x0 = a, h= N
, j = 0, 1, · · · , N . Então,
Z b N Z xj+1 N
" #
X X h
f (x)dx = f (x)dx ≈ (f (xj ) + f (xj+1 ))
a j=0 xj j=0 2
" # " # " #
h h h
= (f (x0 ) + f (x1 )) + (f (x1 ) + f (x2 )) + · · · + (f (xN −1 ) + f (xN ))
2 2 2
h
= [f (x0 ) + 2f (x1 ) + 2f (x2 ) + · · · + 2f (xN −1 ) + f (xN )]
2
N
X −1
h
= (f (x0 ) + f (xN )) + 2f (xj ) = TN (f )
2 j=1
Erro de integração:
T
Começamos por notar que o erro EN (f ) = I(f ) − T N (f ) é a soma dos erros cometidos em
cada subintervalo [xj , xj+1 ]. Logo, supondo f ∈ C 2 [a, b],
N −1
T
X h3 00
EN (f ) = I(f ) − TN (f ) = − f (ξj ) (5.7)
j=0 12
129
Majorante para o erro
Um majorante para o erro pode ser facilmente obtido de (5.7). Tomando módulos, vem
T h3 NX
−1
|EN (f )| ≤ |f 00 (ξj )| ≤ N h3 max |f 00 (x)| (5.8)
12 j=0 x∈[a,b]
Fórmula do erro
Como f ∈ C 2 [a, b], então existe m = min f 00 (x) e M = max f 00 (x). Logo,
x∈[a,b] x∈[a,b]
N
X −1
m ≤ f 00 (ξj ) ≤ M j = 0, 1, · · · , N − 1. =⇒ N m ≤ f 00 (ξj ) ≤ N M
j=0
N −1 N −1 00
X f 00 (ξj ) X f (ξj )
=⇒ m ≤ ≤ M =⇒ min f 00 (x) ≤ ≤ max f 00 (x)
j=0 N x∈[a,b]
j=0 N x∈[a,b]
T h3 00 (b − a) 2 00
EN (f ) = −N f (ξ) = − h f (ξ) onde ξ ∈ [a, b] . (5.11)
12 12
Note-se que as fórmulas de majoração (5.8) e (5.9) podem também ser obtidas da equação
anterior (5.11).
130
e, aplicando a formula de Simpson a cada integral, obtemos
Z b
h h
f (x)dx ≈ [f (x0 ) + 4f (x1 ) + f (x2 )] + [f (x2 ) + 4f (x3 ) + f (x4 )]
a 3 3
h
+ · · · + [f (xN −2 ) + 4f (xN −1 ) + f (xN )]
3
N/2 N/2−1
h X X
= f (x0 ) + f (xN ) + 4 f (x2j−1 ) + 2 f (x2j ) = SN (f )
3 j=1 j=1
De maneira análoga como se fez na fórmula dos trapézios composta, pode-se mostrar que é
válida a seguinte fórmula do erro para a fórmula de Simpson composta:
S h5 N/2
X N h5 (4)
EN (f ) =− f (4) (ξi ) = − f (ξ) ξ ∈ [a, b].
90 j=1 180
S N h5
|EN (f )| ≤ max |f (4) (x)|
180 x∈[a,b]
Seja a igualdade I(f ) = Q(f )+E Q (f ) onde Q(f ) é uma fórmula de quadratura que aproxima
I(f ) e E Q (f ) é o erro de integração. O grau de precisão da fórmula Q(f ) é um número r tal
que:
E Q (Pr ) = 0 ∀Pr , polinómio de grau ≤ r, e E Q (xr+1 ) 6= 0
131
Ou seja, a fórmula dos trapézios não dá o valor exacto para todo o polinómio de grau ≤ 2
(falha o x2 ) e, portanto, o grau de precisão de T (f ) é exactamente r = 1.
Como f (4) (x) = 0 se f (x) é um polinómio qualquer de grau ≤ 3 então f (4) (ξ) = 0 e tem-se
E S (f ) = 0. Ou seja, a regra S(f ) é exacta para polinómios de grau ≤ 3 e portanto o seu grau
de precisão é um número r ≥ 3. Investiguemos se pode ser superior a 3. Se for f (x) = x4
temos à !5
(4) b−a 1
f (x) = 4! ∀ x =⇒ ES (f ) = − 4! 6= 0
2 90
Isso significa que S(f ) não é exacta para todo o polinómio de grau 4 (falha no x4 ). Então
conclui-se que o grau de precisão de S(f ) é r = 3.
foram deduzidas integrando o polinómio interpolador. Isto é, por construção, Q(f ) = I(pn ),
onde pn é o polinómio interpolador de grau ≤ n de f . O método dos coeficientes indetermi-
nados é uma maneira alternativa de obter os pesos da fórmula de quadratura.
Comecemos por notar que, se f for um polinómio de grau ≤ n, ou seja f (x) = Pn (x),
então a fórmula Q dó valor exacto do integral de f . Tem-se assim
Veremos posteriormente que, impondo a condição I(Pn ) = Q(Pn ), para qualquer polinómio
de grau ≤ n, resulta num sistema de equações lineares nos coeficientes Aj .
132
Lema 5.1 A fórmula de quadratura definida por (5.12) é uma aplicação linear.
Dem.:
Obtenção de A0 , A1 , · · · , An
Q(xk ) = I(xk ), k = 0, 1, · · · , n
Ou seja, para que a fórmula Q dê o valor exacto do integral de qualquer polinómio de grau
≤ n é necessário e suficiente que dê o valor exacto dos integrais dos monómios 1, x, x2 , . . . , xn .
Impondo esta condição somos conduzidos ao sistema de equações:
133
n
X Z b
Q(1) = Aj (1) = I(1) = dx = b − a
j=0 a
=⇒A0 + A1 + · · · + An = b − a
n Z b
X x2 b2 − a2
Q(x) = Aj (xj ) = I(x) = xdx = |ba =
j=0 a 2 2
b2 − a2
=⇒ A0 x0 + A1 x1 + · · · + An xn =
2
n Z b 3
X x b3 − a3
Q(x2 ) = Aj (x2j ) = I(x2 ) = x2 dx = |ba =
j=0 a 3 3
b3 − a3
=⇒ A0 x20 + A1 x21 + · · · + An x2n =
3
.. .. .. ..
. = . . .
n Z b
X xn+1 b bn+1 − an+1
Q(xn ) = Aj (xnj ) = I(xn ) = xn dx = |a =
j=0 a n+1 n+1
bn+1 − an+1
=⇒ A0 xn0 + A1 xn1 + · · · + An xnn =
n+1
134
Exemplo 5.1
xi 0 1 2
fi 1 1 2
a) Pelo método dos coeficientes indeterminados, pretende-se obter uma fórmula de quadratura
do tipo
Q(f ) = A0 f (0) + A1 f (1) + A2 f (2)
R3
que permita aproximar o integral I(f ) = −1 f (x)dx.
Obtenha os parâmetros A0 , A1 e A2 de modo que Q(f ) tenha grau de precisão r ≥ 2.
Solução: Utilizando o método dos coeficientes indeterminados, pretende-se que Q(f )
tenha grau de precisão r ≥ 2, ou seja, que I(a0 + a1 x + a2 x2 ) = Q(a0 + a1 x +
a2 x2 ), ∀a0 , a1 , a2 . Para se ter esta igualdade é necessário e suficiente que
Z 3 Z 3 Z 3
2 2
Q(1) = I(1) = dx, Q(x) = I(x) = xdx, Q(x ) = I(x ) = x2 dx
−1 −1 −1
8 4 8
Obtém-se: A0 = , A1 = − e A2 = . Logo,
3 3 3
4
Q(f ) = [2f (0) − f (1) + 2f (2)]
3
b) Obtenha o valor aproximado do integral, no caso de f ser a função tabelada.
Solução: Utilizando os valores da tabela dada obtemos:
4
I(f ) ≈ Q(f ) = [2(1) − 1(1) + 2(2)] = 20/3
3
c) Seja f um polinómio de grau não superior a 3. Prove que o valor obtido pela regra
considerada na alı́nea a) é o mesmo que se obteria pela regra de Simpson.
Solução: A fórmula de Simpson é exacta para polinomios de grau ≤ 3 e portanto,
basta mostrarmos que o grau de precisão da fórmula obtida é r ≥ 3. Como Q(f ) tem
grau de precisão r ≥ 2 é suficiente mostrarmos que Q(x3 ) = I(x3 ). De facto, temos
4h 3 i
Q(x3 ) = 2(0 ) − (13 ) + 2(23 ) = 20
3
135
e ¯3
Z 3
x4 ¯¯ 34 − (−1)4
I(x3 ) = x3 dx = ¯ = = 20
−1 4 ¯−1 4
donde se conclui que Q(f ) tem grau de precisão r ≥ 3. Logo, se f (x) = P3 (x), temos:
136
6 Métodos numéricos para problemas de valor inicial
6.1 Introdução
Exemplo 6.1
A equação
dy
= 1 − e−x (6.1)
dx
dy
é uma equação diferencial pois envolve a derivada dx
(ou y 0 (x)) da função incógnita y(x).
Primitivando o lado direito, obtém-se
2.5
1.5
0.5
1 2 3 4
137
Exemplo 6.2
Na equação
y 0 (x) = y(x) (6.3)
o lado direito agora também envolve a função incógnita y(x). Pretende-se y(x) tal que a sua
derivada y 0 (x) coincide com a própria y(x). As soluções de (6.3) têm a forma
y(x) = C ex , C ∈ IR (6.4)
Com efeito, derivando (6.4) em ordem a x, vem y 0 (x) = Cex = y(x). Graficamente tem-se
uma famı́lia de curvas descritas por (6.4). A figura seguinte mostra algumas dessas curvas,
em particular, o caso da função y(x) = ex , que corresponde a escolher C = 1.
C=1
8
-2 -1 1 2 3 4
Ao problema da forma
(
y 0 (x) = f (x, y(x)), a≤x≤b
(6.5)
y(x0 ) = y0
chamamos problema de valor inicial. Uma solução do problema acima será uma função
diferenciável y(x) que, substituı́da em f (x, y), conduz à igualdade y 0 (x) = f (x, y(x)) e tal
que y(x0 ) = y0 . Ou seja, a curva y = y(x) deve verificar a equação diferencial e a condição
inicial.
Exemplo 6.3
138
Vimos que a solução geral de (6.3) é y(x) = Cex (cf. (6.4)). Estamos interessados na
curva y(x) que, num determinado ponto x0 , toma o valor y0 . Ela corresponde a uma escolha
bem determinada da constante C. Impondo a condição y(x0 ) = y0 , vem Cex0 = y0 , donde
C = e−x0 y0 e, finalmente, a solução do problema (6.6) é y(x) = y0 ex−x0 . Em particular, a
solução que em x0 = 1 toma o valor 1 é y(x) = ex , a qual corresponde à escolha C = 1.
Exemplo 6.4
Consideremos a equação
y 0 (x) = −K(y(x) − A), (6.7)
onde y(x) representa a temperatura, num instante x, dum objecto que está imerso num meio
à temperatura A. A equação (6.7) descreve a evolução da temperatura desse objecto, sendo
a taxa de variação da temperatura proporcional à diferença y − A.
Observação 6.1
é a seguinte:
Z x Z x
y(x) = y0 eU (x) + eU (x) v(s)e−U (s) ds, onde U (x) = u(s)ds (6.10)
x0 x0
139
Teorema (Existência e unicidade de solução)
Seja D = {(x, y) : a ≤ x ≤ b, − ∞ < y < +∞} e seja f (x, y) uma função contı́nua em
D. Se existe uma constante positiva K tal que
¯ ¯
¯ ∂f (x, y) ¯
¯ ¯
¯ ¯ ≤ K, ∀(x, y) ∈ D, (6.11)
¯ ∂y ¯
então o problema de valor inicial (6.5) tem uma única solução y(x), definida em [a, b].
Exemplo 6.5
então, pelo teorema anterior, conclui-se que o problema tem uma única solução y(x) definida
em [0, 2].
Em geral não é possı́vel determinar uma expressão explı́cita para a solução y(x) do problema
de valor inicial (6.5).
Nos métodos numéricos que vamos estudar, divide-se o intervalo [a, b] em subintervalos
de comprimento h, através de uma ”rede” ou ”malha” de pontos
140
O Método de Euler
Dado o valor inicial y(x0 ) = y0 , começa-se por obter uma aproximação, y1 , para y(x1 ).
No método de Euler, traça-se a recta r(x) tangente ao gráfico de y(x) no ponto (x0 , y(x0 )) e
| {z }
y0
toma-se para y1 o seu valor em x = x1 . Como o declive da recta tangente é dado pelo valor
da derivada naquele ponto, ou seja, y 0 (x0 ), vem
Da equação dada em (6.5), y 0 (x) = f (x, y(x)), obtém-se y 0 (x0 ) = f (x0 , y(x0 )), vem
| {z }
y0
y1 = y0 + h f (x0 , y0 ) (6.16)
Exemplo 6.6
Seja o problema
x − y(x)
y 0 (x) = (= f (x, y(x))), x ∈ [0, 3], (6.17)
2
y(0) = 1
Tem-se
x−y
f (x, y) = (6.18)
2
Além disso, x0 = 0, y0 = 1. Se considerarmos uma malha de pontos, com espaçamento
h = 1 no intervalo [0, 2], então resulta: x1 = 1, x2 = 2, x3 = 3.
Neste caso especial, a aplicação da fórmula (6.10), conduz à solução exacta: y(x) =
3e−x/2 − 2 + x. A figura seguinte mostra o gráfico de y(x) e a recta tangente r(x) definida
por (6.14). Sendo y 0 (x) = −(3/2)e−x/2 + 1, pode calcular-se o declive da tangente: y 0 (0) =
−1/2. Então a recta tangente em (0, 1) é: r(x) = 1 − x/2. Fazendo x = x1 = 1 obtém-se
y1 = 1 − 1/2 = 0.5.
141
Sol.exacta yHxL e recta tangente rHxL:
2
1.75
1.5
1.25
0.75
0.5
0.25
É claro que, na prática, para obter a aproximação y1 bastará aplicar directamente a fórmula
(6.16), do seguinte modo.
y2 , y3 , ..., yN :
y2 = y1 + h f (x1 , y1 )
y3 = y2 + h f (x2 , y2 )
y4 = y3 + h f (x3 , y3 )
yN = yN −1 + h f (xN −1 , yN −1 )
Por exemplo para obter y2 , traça-se uma recta partindo de (x1 , y1 ), com declive f (x1 , y1 ), e o
seu valor em x = x2 é y2 . Notemos que o declive da recta tangente em (x1 , y(x1 )), ao gráfico
de y(x), é agora y 0 (x1 ) = f (x1 , y(x1 )). Como não dispomos do valor exacto y(x1 ) usamos a
aproximação y1 obtida anteriormente. Vem
pelo que f (x1 , y1 ) representa, em geral, apenas uma aproximação para o declive da tangente.
Raciocı́nio semelhante pode ser aplicado na obtenção dos valores y2 , y3 , ..., yN .
142
Exemplo 6.7 A figura seguinte ilustra o que se disse acima em relação ao modo como se
obtém y2 e mostra o segmento de recta partindo de (x1 , y1 ), com declive f (x1 , y1 ):
1.75
1.5
1.25
0.75
0.5
0.25
Na figura abaixo, mostram-se os valores exactos y(1), y(2), y(3) (marcados sobre o gráfico
de y(x)) e os respectivos valores aproximados obtidos pelo método de Euler, com h = 1:
2.5
1.5
0.5
A partir de y1 podem-se obter, sucessivamente, y2 , y3 ,.... Supondo que já foram obtidas
as aproximações y1 , . . . , yn , vejamos como obter yn+1 . Geometricamente, traçamos uma recta
a partir do ponto (xn , yn ), com declive f (xn , yn ), e toma-se para yn+1 o valor da recta em
x = xn+1 .
(x − xn )2 00
y(x) = y(xn ) + (x − xn ) y 0 (xn ) + y (ξn ) (6.20)
2
143
onde ξn ∈ [xn , xn+1 ]. Fazendo x = xn+1 , obtém-se
(xn+1 − xn )2 00
y(xn+1 ) = y(xn ) + (xn+1 − xn ) y 0 (xn ) + y (ξn ) (6.21)
2
ou seja, com h = xn+1 − xn ,
h2 00
y(xn+1 ) = y(xn ) + h y 0 (xn ) + y (ξn ) (6.22)
2
h2 00
Desprezando o termo de resto T = 2
y (ξn ), obtém -se uma aproximação para y(xn+1 ):
Teorema 6.1 Considere-se o problema de valor inicial (6.5). Sejam y1 , y2 , ..., yN valores
aproximados para y(x1 ), y(x2 ), ..., y(xN ), respectivamente, obtidos pelo método de Euler.
Então, como já se disse, o problema de valor inicial (6.5) tem uma única solução y(x),
definida em [a, b]. Seja, além disso, y ∈ C 2 [a, b] tal que |y 00 (x)| ≤ M , ∀x ∈ [a, b]. Então é
válida a seguinte fórmula para o erro global |y(xn ) − yn |:
h M ³ K(xn −x0 ) ´
|en | = |y(xn ) − yn | ≤ e − 1 , n = 0, 1, . . . , N − 1. (6.27)
2K
144
A fórmula (6.27) mostra que o erro num determinado ponto x = x0 + nh satisfaz:
Quando se faz h tender para zero, o erro nesse ponto tende para zero, pelo que nas condições
do teorema enunciado, o método de Euler converge. Atendendo ao expoente unitário de h,
diz-se que o método de Euler é um método de ordem 1.
Isso tem como consequência prática o seguinte: ao diminuir-se o valor do passo h para
h/2, espera-se que os erros na solução aproximada venham aproximadamente divididos por
2.
Para obter métodos de ordens mais elevadas (em que os erros tendem para zero mais
rapidamente), consideram-se mais termos no desenvolvimento de Taylor. No método de
Taylor de ordem 2 vai-se até ao resto de ordem 3. Vejamos como, em geral, se obtém uma
aproximação para y(xn+1 ) a partir da aproximação para y(xn ). Por outras palavras, como
obter yn+1 , supondo que já foram obtidas y1 , y2 , ..., yn .
Supondo que y(x) tem derivadas contı́nuas até à terceira ordem, consideremos o desen-
volvimento de Taylor de y(x) em torno de xn :
(x − xn )2 00 (x − xn )3 000
y(x) = y(xn ) + (x − xn ) y 0 (xn ) + y (xn ) + y (ξn ) (6.30)
2 3!
onde ξn ∈ [xn , xn+1 ]. Fazendo x = xn+1 , obtém-se
h2 00 h3
y(xn+1 ) = y(xn ) + h y 0 (xn ) + y (xn ) + y 000 (ξn ) (6.32)
2 3!
h3 000
Desprezando o termo de resto, Tn+1 = y (ξn ), resulta a aproximação:
3!
145
h2 00
y(xn+1 ) ' y(xn ) + h y 0 (xn ) + y (xn ) (6.33)
2
∂f ∂f
y 00 (xn ) = (xn , y(xn )) + (xn , y(xn ))y 0 (xn ) (6.34)
∂x ∂y
∂f ∂f
' (xn , yn ) + (xn , yn )y 0 (xn ) (6.35)
∂x ∂y
" #
h2 ∂f ∂f
yn+1 = yn + h f (xn , yn ) + (xn , yn ) + (xn , yn )f (xn , yn ) , n = 0, 1, 2, ..., N − 1
2 ∂x ∂y
(6.36)
h2 00
yn+1 = yn + h yn0 + y , (6.37)
2 n
onde
yn0 = f (xn , yn ),
∂f ∂f
yn00 = (xn , yn ) + (xn , yn )f (xn , yn )
∂x ∂y
146
Exemplo 6.8
Processo 1. Com o fim de usar a fórmula (6.37), vamos começar por obter as expressões
aproximadas para as derivadas.
Tem-se
xn − y(xn ) xn − y n
y 0 (xn ) = ' (6.38)
Ã
2 !0
2
x − y(x) 1 − y 0 (x)
y 00 (x) = = (6.39)
2 2
à ! à !
00 1 − y 0 (xn ) 1 1 xn − y(xn ) 1 1 1 − yn0
y (xn ) = = − ' − (6.40)
2 2 2 2 2 2 2
Processo 2. Note-se que esta fórmula se poderia obter por aplicação de (6.36). Basta
calcular as derivadas parciais de f (x, y) = (x − y)/2 e substitui-las na expressão do método
dada por (6.36):
∂f 1 ∂f 1
(x, y) = , (x, y) = −
∂x 2 ∂y 2
Viria: µ ¶
xn − yn h2 1 1
yn+1 = yn + h + − f (xn , yn ) , (6.42)
2 2 2 2
o que conduz a (6.41).
µ ¶ µ ¶
x0 − y 0 h 2 1 x0 − y 0 x0 − y 0 1 x0 − y0
y1 = y0 + h + − = y0 + + − = 0.875
2 2 2 4 2 2 4
147
ii) Com h = 1/2, tem-se x0 = 0, x1 = 1/2, x2 = 1. O ponto 1 corresponde agora a x2 ,
pelo que se pretende y2 . Primeiramente é preciso calcular y1 . Note-se que y1 ' y(x1 ), ou
seja, atendendo a que x1 = 1/2, representa uma aproximação para y(1/2). A fórmula geral
do método agora é:
µ ¶
xn − yn 1 1 xn − y n
yn+1 = yn + + −
4 8 2 4
µ ¶
x0 − y0 1 1 x0 − y0
y1 = y0 + + − = 0.84375
4 8 2 4
µ ¶
x1 − y1 1 1 x1 − y1
y2 = y1 + + − = 0.831055
4 8 2 4
Concluı́mos estas notas sobre métodos numéricos para problemas de valor inicial com os
métodos de Runge Kutta, que conduzem à mesma precisão que os métodos de Taylor, mas
sem o inconveniente de terem de se calcular as derivadas de y(x). Apresentamos dois exem-
plos de métodos de Runge Kutta, da forma:
yn+1 = yn + h(c1 V1 + c2 V2 )
com
V1 = f (xn , yn )
V2 = f (xn + a2 h, yn + b2 h V1 )
Casos particulares
c2 c1 a 2 b2
Mét. do ponto médio 1 0 1/2 1/2
Mét. de Heun 1/2 1/2 1 1
148
Método do ponto médio (ou Euler modificado):
h h
yn+1 = yn + hf (xn + , yn + f (xn , yn )) (6.43)
2 2
Método de Heun:
h
yn+1 = yn + [f (xn , yn ) + f (xn+1 , yn + hf (xn , yn ))] (6.44)
2
Concluı́mos com um método por vezes designado ”método de Runge Kutta clássico”, o
qual é um método de Runge-Kutta de ordem 4:
h
yn+1 = yn + (V1 + 2V2 + 2V3 + V4 )
6
h h
V1 = f (xn , yn ) V2 = f (xn + , yn + V1 )
2 2
h h
V3 = f (xn + , yn + V2 ) V4 = f (xn + h, yn + hV3 )
2 2
Exemplo 6.9
(1.1)2
Vemos que precisamos do valor f (1.1, −1.1) = . Substituindo acima, obtém-se
−1.1
y1 = −1 + 0.2(−1.1) = −1.22
149
7 EXERCÍCIOS PROPOSTOS
1. Considere a equação
f (x) = x2 − cos2 (x) = 0. (7.46)
2. Considere a equação F (x) = 0, onde F (x) = (x − α)m h(x), (m > 1 inteiro), com
h(α) 6= 0 e tal que h é uma função de classe C 2 num intervalo aberto contendo α.
Prove que o método iterativo xm+1 = g(xm ), m = 0, 1, . . ., em que
F (x)
g(x) = x −
F 0 (x)
converge para α se a aproximação inicial x0 estiver suficientemente próxima de α.
Determine a ordem de convergência do método e o factor assimptótico da convergência.
3. Considere a equação
sin(x) + 1 − ax = 0
onde a é um número real conhecido.
(a) Diga, justificando, para que valores de a esta equação tem uma única raiz no
π
intervalo I = [0, ].
2
(b) Para os valores de a considerados na alı́nea anterior, mostre que o método do
1 + sin(x)
ponto fixo, com a função iteradora g(x) = , converge para a z, qualquer
a
que seja x0 ∈ I.
150
(c) No caso de a = 2, diga qual o número mı́nimo de iterações do método do ponto
fixo que deverá efectuar para garantir que o erro absoluto da aproximação obtida
seja inferior a 10−3 se x0 é qualquer número em I.
(d) No caso de a = 0, mostre que a equação tem uma única raiz w no intervalo [−π, 0].
Mostre que, se x0 estiver suficientemente próximo da raiz, então o método de
Newton converge para z, e determine a ordem de convergência.
(a) Faça λ = 1 e, usando o teorema do ponto fixo, mostre que a sucessão (1) converge
para um certo valor real z, qualquer que seja x0 pertencente ao intervalo [0, 1].
Qual a ordem de convergência deste método iterativo ?
(b) Conclua, utilizando a questão anterior, que z é a única raiz da equação
1 − x − sin x = 0 no intervalo [0, 1]. Utilizando o método obtido em a) e x0 =
1, determine, sem efectuar iterações, qual o valor de k de modo que se tenha
|z − xk | < 10−5 .
(c) Como deveria ser λ por forma a sucessão (1) convergir para z o mais rápido
possı́vel? Qual a ordem de convergência nesse caso? [1.0]
(a) Mostre que os pontos fixos de gα são as raizes da equação x2 − 78.8 = 0, indepen-
dentemente do valor do parâmetro α.
(b) Com o objectivo de aproximar a raiz positiva z dessa equação, considere a
iteração do ponto fixo, xm+1 = gα (xm ), associada a (7.48). A tabela seguinte
mostra algumas iteradas das sucessões correspondentes aos valores α = 3/2 e
α = 1/2, com iterada inicial x0 = 9.
151
i. No caso de α = 3/2, preencha o espaço em branco (obtenha x3 ). Diga o
que indicam os resultados, no que respeita à convergência ou divergência das
sucessões para a raiz z acima referida. Confirme teoricamente, em cada
caso.
ii. No caso de α = 3/2, ob obtenha um majorante para o erro absoluto da iterada
x3 .
iii. Como deveria escolher α de modo a obter convergência quadrática, supondo
x0 suf. próximo de z ?
xi −2 −1 0 1 2
f (xi ) 1 0 2 12 − 12
xi 0 1 2
fi 1 1 2
i) um spline de grau 1.
ii) um polinómio interpolador de grau 2.
ii) Sabendo que f é um polinómio do tipo
f (x) = a x3 + b x2 + c x + d,
152
9. Considere o problema de valor inicial
y 0 (x) = 1 − x + 4y(x), 0 ≤ x ≤ 1,
y(0) = 1,
(a) Obtenha um valor aproximado y2 para y(0.2) usando o método de Euler com
passo h = 0.1.
(b) Recorrendo a um resultado teórico, deduza um majorante para |y(0.2)−y2 |. Com-
pare com o valor do erro de facto cometido.
(c) Utilize o método de Taylor de ordem 2, com h = 0.1, para obter uma aproximação
de y(0.2). Compare com o resultado obtido em a).
10. Utilize o método de Runge-Kutta de ordem 2 (método do ponto médio) para obter
uma aproximação da solução do problema de valor inicial
(
y 0 (x) = x + y(x), 0 ≤ x ≤ 1,
y(0) = 0
no ponto x = 0.1 com espaçamentos h = 0.1, 0.05, 0.025. Sabendo que a solução exacta
deste problema é dada por y(x) = exp(x) − 1 − x, compare os resultados obtidos com
o valor exacto de y(0.1). Comente.
153
Bibliografia
Burden, R. & Faires, J., Numerical Analysis, 5th ed., PWS Publishing, Boston, 1993.
Chapra, S. & Canale, R., Numerical Methods for Engineers, Mc Graw Hill, 2002
Cheney, W. & Kincaid, D. Numerical Mathematics and Computing, 2ed ed., Brooks/Cole,
Monterey, CA, 1994.
Isaacson, E. & Keller, H. B., Analysis of Numerical Methods, Wiley & Sons, 1966.
Stroud, A. H., Numerical Quadrature and Solution of Ordinary Differential Equations, Ap-
plied Mathematical Sciences, vol. 10, Springer-Verlag, NY, 1974.
154