Você está na página 1de 34

Capítulo 1

Introdução à Análise Numérica


Neste capítulos veremos algumas revisões de análise matemática e o estudo
dos erros importantes para a compreensão da análise numérica.

1.1 Revisões de Análise Matemática

Limites e Continuidade

Os conceitos de limite e continuidade de uma função são fundamentais


para o estudo de Cálculo e estão na base para a análise de técnicas numéricas.

Denição 1. Uma função f denida num conjunto X de números reais tem


olimite L em x0 ,
lim f (x) = L,
x→x0

se, dado qualquer número real  > 0, existe um número real δ>0 tal que

|f (x) − L| < , sempre que x ∈ X, e 0 < |x − x0 | < δ.

(Ver gura 1.1)

Denição 2. Seja f uma função denida num conjunto X de números reais


e x0 ∈ X . Então f é contínua em x0 se

lim f (x) = f (x0 ).


x→x0

A função f é contínua em X se for contínua em todos os elementos de X.

O conjunto de todas as funções contínuas em X é denotado por C(X).


Quando X é um intervalo na linha real, o parêntesis nesta notação é omitido.
Por exemplo, o conjunto de todas as funções contínuas no intervalo [a, b] é
denotado C[a, b]. O símbolo R denota o conjunto dos números reais que
também pode ser representado pelo intervalo (−∞, ∞) ou ] − ∞, ∞[. Assim,

1
CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 2

Figura 1.1: Limite no ponto x0

o conjunto de todas as funções contínuas para todos os números reais é


denotado por C(R) ou por C(−∞, ∞).
O limite de uma sequência de números reais ou complexos é denido de
modo similar.

Denição 3. {xn }∞
Sejan=1 uma sequência innita de números reais. Esta
sequência tem um limite x (converge para x) se, para todo  > 0 existe
um inteiro N () tal que |xn − x| <  sempre que n > N (). A notação

lim xn = x, ou xn → x quando n → ∞,
n→∞

signica que a sequência {xn }∞


n=1 converge para x.

Teorema 1. Se f é uma função denida no conjunto de números reais X e


x0 ∈ X , então as seguintes armações são equivalentes:

a. f é contínua em x0 ;

b. Se {xn }∞
n=1 é qualquer sequência em X convergindo para x0 , então

lim f (xn ) = f (x0 ).


n→∞

Quando discutirmos métodos numéricos assumiremos que as funções con-


sideradas sejam contínuas, uma vez que este é o requerimento mínimo para
o comportamento previsível.

Diferenciabilidade

Hipóteses mais sosticadas acerca de uma função geralmente levam a


melhor aproximações. Por exemplo, uma função com um gráco suave
CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 3

Figura 1.2: Reta tangente ao gráco f no ponto (x0 , f (x0 )).

terá um comportamento mais previsível do que outro com características


irregulares. As condições de suavidade baseiam-se no conceito de derivada.

Denição 4. Seja f uma função denida num intervalo aberto contendo x0 .


A função f é diferenciável em x0 se

f (x) − f (x0 )
f 0 (x0 ) = lim
x→x0 x − x0
existe. O número f 0 (x0 ) é chamado a derivada de f em x0 . Uma função
que tem derivada em todos os números do conjunto X é diferenciável em X .
A derivada de f em x0 é o declive da reta tangente ao gráco de f no
ponto (x0 , f (x0 )), como se pode ver na gura 1.2.

Teorema 2. Se f é uma função diferenciável em x0 , então f é contínua em


x0 .
Os próximos teoremas são fundamentais na derivação de métodos para a
estimativa de erros. As demonstrações destes teoremas e de outros resultados
aqui não referenciados podem ser encontrados em qualquer livro padrão de
Cálculo.
O conjunto de todas as funções que as n primeiras derivadas contínuas
no conjunto X é denotado por C n (X), e o conjunto de todas as funções que
tem derivadas de todas as ordens em X é denotado por C ∞ (X). Funções
Polinomiais, racionais, trigonométricas, exponenciais e trigonométricas per-
tencem a C ∞ (X), onde X em todos os números para os quais a função está
denida. Quando X for um intervalo da reta real, omitiremos novamente os
parêntesis na notação.

Teorema 3. (Teorema de Rolle)


Suponhamos que f ∈ C[a, b] e que f é diferenciável em ]a, b[. Se f (a) = f (b),
então existe c ∈]a, b[ onde f 0 (c) = 0. (Ver gura 1.3)
CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 4

Figura 1.3: Teorema de Rolle

Figura 1.4: Teorema de Lagrange

Teorema 4. (Teorema de Lagrange)


Se f ∈ C[a, b] e que f é diferenciável em ]a, b[, então existe c ∈]a, b[ onde
(Ver gura 1.4)
f (b) − f (a)
f 0 (c) = .
b−a

Teorema 5. (Teorema do Valor Extremo)


Se f ∈ C[a, b], então existem c1 , c2 ∈ [a, b] onde f (c1 ) ≤ f (x) ≤ f (c2 ), para
todo x ∈ [a, b]. Além disso, se f é diferenciável em ]a, b[, então onde números
c1 e c2 ocorrem ou nos extremos do intervalo [a, b] ou onde f 0 é igual a zero.
(Ver gura 1.5)

O próximo resultado geralmente não é apresentado num curso básico


de Cálculo, mas é derivado da aplicação sucessiva do Teorema de Rolle às
funções f 0 , f 00 , . . . e nalmente até f (n−1) .
Teorema 6. (Teorema de Rolle Generalizado)
Suponhamos que f ∈ C[a, b] é n vezes diferenciável em ]a, b[. Se f (x) = 0 em
n+1 pontos distintos a ≤ x0 < x1 < . . . < xn ≤ b, então existe c ∈]x0 , xn [
onde f
(n) (c) = 0.
CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 5

Figura 1.5: Extremos de uma função

Figura 1.6: Teorema do Valor Intermédio

Vamos também recorrer frequentemente ao Teorema do Valor Intermé-


dio. Embora o seu enunciado soem razoável, a sua demonstração está para
além do âmbito de um course usual de Cálculo. No entanto, ele pode ser
encontrado na maioria dos livros de análise.

Teorema 7. (Teorema do Valor Intermédio)


Se f ∈ C[a, b] e K é qualquer número entre f (a) e f (b), então existe c ∈]a, b[
onde f (c) = K .

Na gura 1.6 é mostrado uma escolha do número que é garantido pelo


Teorema do Valor Intermédio. Neste exemplo ilustrado há duas outras pos-
sibilidades.

Exemplo 1. Mostre que x5 −2x3 +3x2 −1 = 0 tem uma solução no intervalo


[0, 1].

Solução: Considere a função denida por f (x) = x5 − 2x3 + 3x2 − 1. Esta


função é contínua no intervalo [0, 1]. Além disso,

f (0) = −1 < 0 e f (1) = 1 > 0.

O Teorema do Valor Intermédio garante que existe um número c ∈]0, 1[ para


o qualx5 − 2x3 + 3x2 − 1 = 0. 
CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 6

Figura 1.7: Integral de Riemann em [a, b]

O Teorema do Valor Intermédio é utilizado para determinar quando uma


solução para um determinado problema existe. Contudo, ele não possibilita
determinar ecientemente qual é esse valor. Este tópico será visto no próximo
capítulo.

Integração

O outro conceito básico de Cálculo que vai ser utilizado extensivamente


é o integral de Riemann.

Denição 5. O integral de Riemann de uma função f no intervalo [a, b]


é o limite seguinte, desde que exista,

Zb n
X
f (x)dx = lim f (zi )∆xi ,
max ∆xi →0
a i=1

onde os números x0 , x1 , . . . , xn satisfazem a = x0 < x1 < x2 < · · · < xn = b,


onde ∆xi = xi − xi−1 , para cada i = 1, 2, . . . , n e zi é um número escolhido
arbitrariamente no intervalo [xi−1 , xi ].

Uma função f que seja contínua no intervalo [a, b] também é Riemann


integrável em [a, b]. Isto permite-nos escolher, por conveniência computaci-
onal, os números xi uniformemente espaçados em [a, b], e escolher zi = xi
para cada i = 1, 2, . . . , n. Neste caso,

Zb n
b−aX
f (x)dx = lim f (xi ),
n→∞ n
a n=1

onde os números xi mostrados na gura 1.7 são xi = a + i(b − a)/n.


Dois outros resultados serão precisos para o nosso estudo de análise nu-
mérica. O primeiro é uma generalização do usual Teorema do Valor Médio
para integrais.
CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 7

Figura 1.8: Teorema do Valor Médio para integrais

Teorema 8. (Teorema do Valor Médio para integrais)


Suponhamos que f ∈ C[a, b], g é Riemann integrável em [a, b] e que g não
muda de sinal em [a, b]. Então existe c ∈ [a, b] onde

Zb Zb
f (x)g(x)dx = f (c) g(x)dx.
a a

Quando g(x) ≡ 1, este teorema é o usual teorema do valor médio para


integrais. Ele dá o valor médio da função f no intervalo [a, b] como pode
ser visto na gura 1.8

Zb
1
f (c) = f (x)dx.
b−a
a

Polinómios de Taylor

O último teorema nesta revisão de Cálculo descreve os polinómio de


Taylor. Estes polinómios são muito utilizados na análise numérica.

Teorema 9. (Teorema de Taylor)


Suponhamos que f ∈ C n [a, b], que f (n+1) existe em [a, b] e que x0 ∈ [a, b].
Para todo x ∈ [a, b] existe um número ξ entre x0 e x com

f (x) = Pn (x) + Rn (x),

onde

f 00 (x0 ) f (n) (x0 )


Pn (x) = f (x0 ) + f 0 (x0 )(x − x0 ) + (x − x0 )2 + · · · + (x − x0 )n
2! n!
n
X f (k) (x0 )
= (x − x0 )k
k!
k=0
CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 8

e
f (n+1) (ξ)
Rn (x) = (x − x0 )n+1 .
(n + 1)!
Pn é chamado o polinómio de Taylor de ordem n para f em
Aqui
torno de x0 e Rn é chamado o resto (ou erro de truncatura) associado a
Pn . Uma vez que o número ξ no erro de truncatura Rn depende do valor de
x onde Pn está a ser calculado, é uma função da variável x. Contudo, não
devemos esperar que seja possível determinar esta função ξ(x). O Teorema
de Taylor apenas garante que esta função existe e que o seu valor estará
entre x e x0 . De facto, um dos problemas em métodos numéricos é tentar
determinar um valor majorante realista para o valor de f (n+1) (ξ) quando x
pertence a um intervalo especíco.
As séries innitas obtidas tomando o limite de Pn quando n→∞ são
chamadas séries de Taylor de f em torno de x0 . No caso particular em
que x0 = 0, os polinómios de Taylor são chamados de polinómios de Ma-
claurin e as séries de Taylor são chamadas de séries de Maclaurin.
O termo relativo ao erro de truncatura no polinómio de Taylor refere-se
ao erro envolvido em usar a truncatura, ou soma, nita, para aproximar a
soma de uma série innita.

Exemplo 2. Seja f (x) = cos x e x0 = 0. Determine:


a. o polinómio de Taylor de ordem 2 para f em torno de x0 ;
b. o polinómio de Taylor de ordem 3 para f em torno de x0 .

Solução: Uma vez que f ∈ C ∞ (R), o Teorema de Taylor pode ser aplicado
para qualquer valor n ≥ 0. Além disso,
f 0 (x) = − sin x, f 00 (x) = − cos x, f 000 (x) = sin x e f (4) (x) = cos x,
logo,
f (0) = 1, f 0 (0) = 0, f 00 (0) = −1 e f 000 (0) = 0.
a. Para n=2 e x0 = 0, temos

f 00 (0) 2 f 000 (ξ) 3


cos x = f (0) + f 0 (0)x + x + x
2! 3!
1 1
= 1 − x2 + x3 sin(ξ),
2 6
onde xi é algum (geralmente desconhecido) número entre 0 e x. (Ver
gura 1.9)

b. Como f 000 (0) = 0, o polinómio de Taylor de ordem 3 em torno de x0 = 0


é
1 1
cos x = 1 − x2 + x4 cos(ξ),
2 24
onde xi é algum número entre 0 e x. 
CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 9

Figura 1.9: Aproximação de cos x pelo polinómio de Taylor de ordem 2 em


torno de x0 = 0

Exercícios 1.1

1. Mostre que as seguintes equações têm pelo menos uma solução nos
intervalos dados.

a. x cos x − 2x2 + 3x − 1 = 0, [0.2, 0.3] e [1.2, 1.3]


b. (x − 2)2 − ln x = 0, [1, 2] e [e, 4]
c. 2x cos(2x) − (x − 2)2 = 0, [2, 3] e [3, 4]
d. x− (ln x)x = 0, [4, 5]

2. Encontre intervalos contendo soluções para as seguintes equações.

a. x − 3−x = 0
b. 4x2 − ex = 0
c. x3 − 2x2 − 4x + 2 = 0
d. x3 + 4.001x2 + 4.002x + 1.101 = 0

3. Mostre que f 0 (x) é igual a zero pelo menos uma vez no intervalo indi-
cado.

a. f (x) = 1 − ex + (e − 1) sin(πx/2), [0, 1]


b. f (x) = (x − 1) tan x + x sin(πx), [0, 1]
c. f (x) = x sin(πx) − (x − 2) ln x, [1, 2]
d. f (x) = (x − 2) sin x ln(x + 2), [−1, 3]

4. Encontre o polinómio de Taylor de ordem 3,


√ P3 , para a função f (x)
√ =
√ x + 1 em torno do ponto x0 = 0. Calcule a aproximação para
√ √ 0.5,
0.75, 1.25 e 1.5 usando P3 e calcule o erro cometido.
CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 10

5. Encontre o polinómio de Taylor de ordem 2, P2 , para a função f (x) =


ex cos x em torno do ponto x0 = 0.
a. Utilize P2 (0.5) para aproximação f (0.5). Encontre um majorante
para o erro |f (0.5)−P2 (0.5)| utilizando a fórmula do erro e compare
com o erro atual.

b. Encontre um majorante para o erro |f (x)−P2 (x)| no intervalo [0, 1].


c.
R1 R1
Aproxime
0 f (x)dx usando
0 P2 (x)dx.
d. Encontre um majorante para o erro cometido na alínea (c) usando
R1
0 |R2 (x)|dx e compare com o erro realmente cometido.

1.2 Estudos dos erros

Um método numérico é um método não analítico, que tem como objectivo


determinar um ou mais valores numéricos, que são soluções de um certo
problema.
Ao contrário das metodologias analíticas, que conduzem a soluções exac-
tas para os problemas, os métodos numéricos produzem, em geral, apenas
soluções aproximadas. Por este facto, antes da utilização de qualquer mé-
todo numérico é necessário decidir qual a precisão dos cálculos com que se
pretende obter a solução numérica desejada. A precisão dos cálculos numé-
ricos é também, como veremos, um importante critério para a selecção de
um algoritmo particular na resolução de um dado problema.
A aritmética efetuada por uma calculadora ou um computador é diferente
da aritmética dos cursos de álgebra e cálculo. É de esperar que as sentenças
√ 2
2 + 2 = 4, 4 × 2 = 8 e 3 =3 sejam sempre verdadeiras. Contudo, com a
aritmética do computador, esperamos que as sentenças 2+2 = e 4×2 = 8
√ 2
sejam verdadeiras, mas não teremos precisamente 3 = 3. Para entender-
mos a razão disto acontecer, temos que explorar o mundo da aritmética com
um número nito de dígitos.
No nosso mundo tradicional da matemática, permitimos que os números
tenham um número innito de dígitos. A aritmética neste mundo dene

3 como o único número positivo que quando multiplicado por ele mesmo
produz o número inteiro 3. Contudo, no mundo computacional todo número
que pode ser representado tem apenas um número xo e nito de dígitos.
Isto signica, por exemplo, que apenas os números racionais  e nem todos

 podem ser representados exatamente. Uma vez que 3 não é racional,
é dada uma representação aproximada, uma cujo quadrado não seja bem
igual a 3, embora esteja sucientemente próxima de 3 para que seja aceitável
no maior número de casos. Então, na maior parte das vezes, esta aritmé-
tica computacional é satisfatória e passa despercebida ou sem preocupação,
embora possam surgir problemas por causa desta discrepância.
CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 11

Estes erros ocorrem porque a aritmética efetuada numa máquina en-


volve números com um número nito de dígitos, com o resultado que tais
cálculos são efetuados apenas com representantes aproximados dos números
atuais. Num computador, apenas um conjunto relativamente pequeno dos
números reais são utilizados para representar todos os números reais. Este
subconjunto contêm apenas números racionais, ambos positivos e negativos,
e armazena a parte fracional juntamente com uma parte exponencial.
Os números apresentados no computador são representados na forma
decimal normalizada denominada notação em vírgula utuante

±0.d1 d2 . . . dk × 10n , 1 ≤ d1 ≤ 9, e 0 ≤ di ≤ 9,

para cada i = 2, . . . , k . Números nesta forma são denominados números-


máquina com k-dígitos.
Qualquer número real dentro da capacidade da máquina pode ser nor-
malizado de maneira única na forma

y = 0.d1 d2 . . . dk dk+1 dk+2 . . . × 10n .

À parte fracional chamamos de mantissa e à letra n chamamos de expo-


ente.
A notação em vírgula utuante de y, representada por f l(y) (do inglês
oating point ), é obtida terminando a mantissa de y com k dígitos decimais.
Existem duas maneiras de realizar esta operação. Um método, denominado
truncatura, é fazer cair os dígitos dk+1 dk+2 . . .. Isto produz a notação em
vírgula utuante
f l(y) = 0.d1 d2 . . . dk × 10n .
O outro método, denominado arredondamento, resulta na seguinte nota-
ção em vírgula utuante

f l(y) = 0.δ1 δ2 . . . δk × 10n ,

onde os δi são tais que se dk+1 ≥ 5, adicionamos uma unidade a dk (isto


é, arredondamos para cima ) e se dk+1 < 5, truncamos o número com k
dígitos (isto é, arredondamos para baixo ). Se arredondamos para baixo,
então δi = di , para i = 1 . . . k. Contudo, se arredondamos para cima, os
dígitos ( e mesmo o expoente) podem mudar.

Exemplo 3. Determine (a) a truncatura e (b) o arredondamento do número


π com cinco dígitos.

Solução: O número π sendo irracional, tem uma expansão innita decimal


da forma π = 3.14159265 . . .. Escrito na forma decimal normalizada, temos

π = 0.31415265 . . . × 101 .
CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 12

(a) A notação em vírgula utuante de π usando a truncatura com cinco


dígitos é
f l(π) = 0.31415 × 101 = 3.1415.

(b) O sexto dígito da expansão decimal do π é igual a 9. Como é maior do


que 5, o arredondamento de π com cinco dígitos é

f l(π) = 0.31416 × 101 = 3.1416.




Denição 6. Suponhamos que p∗ seja uma aproximação para p. O erro


absoluto é Ea (p) = |p − p∗ | e o erro relativo é Er (p) = Ea|p|(p) = |p−p
∗|

|p| ,
desde que p 6= 0.
Vamos determinar o erro absoluto e o erro relativo em representar p por
p∗ no próximo exemplo.

Exemplo 4. Determine o erro absoluto e o erro relativo quando aproxima-


mos p por p∗ nos seguintes casos:

(a) p = 0.3000 × 101 e p∗ = 0.3100 × 101 ;


(b) p = 0.3000 × 10−3 e p∗ = 0.3100 × 10−3 ;
(c) p = 0.3000 × 104 e p∗ = 0.3100 × 104 .

Solução:

(a) Para p = 0.3000 × 101 e p∗ = 0.3100 × 101 o erro absoluto é Ea (p) = 0.1
e o
−1
erro relativo é Er (p) = 0.3333 × 10 .

(b) Para p = 0.3000 × 10−3 e p∗ = 0.3100 × 10−3 o erro absoluto é Ea (p) =


0.1 × 10−4 e o erro relativo é Er (p) = 0.3333 × 10−1 .
(c) Para p = 0.3000 × 104 e p∗ = 0.3100 × 104 o erro absoluto é Ea (p) =
0.1 × 103 e o erro relativo é Er (p) = 0.3333 × 10−1 .
Este exemplo mostra que o mesmo erro relativo ocorre para um número
de erros absolutos. Assim, como medida de precisão, o erro absoluto pode
ser enganoso e o erro relativo mais signicativo, porque o erro relativo leva
em consideração o tamanho do valor. 

Denição 7. O número p∗ é dito que aproxima p em t casas decimais


corretas, se t é o maior inteiro não negativo para o qual

Ea (p) ≤ 0.5 × 10−t .


CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 13

A denição seguinte utiliza o erro relativo para dar uma medida dos
algarismos signicativos corretos para uma aproximação.

Denição 8. O número p∗ é dito que aproxima p em t dígitos signica-


tivos corretos, se t é o maior inteiro não negativo para o qual
Er (p) ≤ 5 × 10−t .

A precisão de um número aproximado não depende do número dos seus


algarismos signicativos, mas antes do número dos seus algarismos signi-
cativos corretos. Quando um resultado contém algarismos signicativos
incorretos procede-se ao seu arredondamento, retendo-se apenas algarismos
signicativos corretos, ou, relaxando-se um pouco esta exigência, adoptar-
se-á a seguinte regra prática: Os resultados intermédios não devem conter
mais do que 1 ou 2 algarismos signicativos incorretos.
Retornando à representação dos números nas máquinas, vemos que a
notação em vírgula utuante f l(y) do número y tem um erro relativo

y − f l(y)
.
y

Se k dígitos decimais e o truncamento são utilizados para a representação


computacional de

y = 0.d1 d2 . . . dk dk+1 dk+2 . . . × 10n ,

então

y − f l(y) 0.d1 d2 . . . dk dk+1 . . . × 10n − 0.d1 d2 . . . dk × 10n


=
y 0.d1 d2 . . . × 10n
0.dk+1 dk+2 . . . × 10n−k 0.dk+1 dk+2 . . .
= n
= × 10−k .
0.d1 d2 . . . × 10 0.d1 d2 . . .

Como d1 6= 0, o menor valor do denominador é 0.1. O numerador é


majorado por 1. Assim,

y − f l(y) 1
≤ × 10−k = 101−k .
y 0.1

Execício 1. Prove que o limite superior do erro relativo quando é utilizado


o arredondamento com k dígitos é 0.5 × 101−k .
CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 14

Observe que os limites para o erro relativo utilizando uma aritmética


com k dígitos é independente do número que está sendo representado. Este
resultado têm a ver com a maneira como os números são representados na
máquina. Por causa da forma exponencial, a mesma quantidade de números
são representados em cada um dos intervalos [0.1, 1], [1, 10] e [10, 100]. De
facto, dentro dos limites da máquina, a quantidade de números no intervalo
[10n , 10n+1 ] é constante para todos os valores de n.

Operações-Máquina em Vírgula Flutuante

Além da falta de precisão na representação dos números, a aritmética


efetuada num computador não é exata. Embora a aritmética que aqui ire-
mos apresentar não dê a imagem exata, esta será suciente para explicar os
problemas que ocorrerem.
Assuma que os números em vírgula utuante f l(x) e f l(y) representem
os números x e y e que os símbolos ⊕, , ⊗ e representem as operações
de adição, subtração, multiplicação e divisão da máquina, respectivamente.
Vamos assumir que as operações-máquina em vírgula utuante são dadas
por

x ⊕ y = f l(f l(x) + f l(y)), x ⊗ y = f l(f l(x) × f l(y)),


x y = f l(f l(x) − f l(y)), x y = f l(f l(x) ÷ f l(y)).

Esta aritmética corresponde a efetuar a aritmética exata com os números


em vírgula utuante do x e y e depois convertendo o resultado exato para a
sua notação em vírgula utuante correspondente.

Exemplo 5. Suponha que x = 75 e y = 13 . Utilize a truncatura com 5 dígitos


para calcular x + y , x − y , x × y e x ÷ y . Calcule o erro absoluto e o erro
relativo para cada uma das operações.

Solução: Note que

5 1
x= = 0.714285 e y= = 0.3
7 3
implica que os valores de xey na notação em vírgula utuante com 5 dígitos
e por truncatura são

f l(x) = 0.71428 × 100 e f (y) = 0.33333 × 100 .

Assim,

x ⊕ y = f l(f l(x) + f l(y)) = f l(0.71428 × 100 + 0.33333 × 100 )


= f l(1.04761 × 100 ) = 0.10476 × 101 .
CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 15

5 1 22
O valor exato é x+y = 7 + 3 = 21 , e por isso temos

22
Ea (x + y) = − 0.10476 × 101 = 0.190 × 10−4
21
e
0.190 × 10−4
Er (x + y) = = 0.182 × 10−4 .
22/21
A tabela seguinte lista os valores deste cálculo e dos restantes.

Operação Resultado Valor Exato Ea Er


x⊕y 0.10476 × 101 22/21 0.190 × 10−4 0.182 × 10−4
x y 0.38095 × 100 8/21 0.238 × 10−5 0.625 × 10−5
x⊗y 0.23809 × 100 5/21 0.524 × 10−5 0.220 × 10−4
x y 0.21428 × 101 15/7 0.571 × 10−4 0.267 × 10−4

O maior erro relativo para as operações no exemplo anterior é 0.267 ×


10−4 , logo a aritmética produz resultados satisfatórios neste exemplo. Este
não é o caso no próximo exemplo.

Exemplo 6. Suponha que além de x= 5


7 temos

u = 0.714251, v = 98765.9, e w = 0.111111 × 10−4 ,

de tal modo que

f l(u) = 0.71425×100 , f l(v) = 0.98765×105 , e f l(w) = 0.11111×10−4 .

Determine os valores de x u, (x u) w, (x u) ⊗ v e u⊕v recorrendo


à truncatura e utilizando números-máquina com 5-dígitos.

Solução: Estes números foram escolhidos para ilustrar alguns problemas que
podem ocorrer na aritmética das operações-máquina em vírgula utuante.
Como x e u são praticamente iguais, a sua diferença é pequena. O erro
absoluto para x u é

|(x − u) − (x u)| = |(x − u) − f l(f l(x) − f l(u))|


 
5
= − 0.714251 − f l(0.71428 × 100 − 0.71425)
7
= 0.347143 × 10−4 − f l(0.00003 × 100 ) = 0.47143 × 10−5 .

Esta aproximação tem um erro absoluto pequeno, mas um erro relativo grande

0.47143 × 10−5
≤ 0.136.
0.347143 × 10−4
CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 16

A subsequente divisão pelo número pequeno w or multiplicação pelo número


grande v ampliam o erro absoluto sem modicar o erro relativo. A soma dos
números u e v, um grande e um pequeno, produz um erro absoluto grande,
mas um erro relativo pequeno. Estes cálculos podem ser visto na tabela se-
guinte.

Operação Resultado Valor Exato Ea Er


x u 0.30000 × 10−4 −4
0.34714 × 10 0.471 × 10−5 0.136 × 100
(x u) w 0.27000 × 101 0.31242 × 101 0.424 × 100 0.136 × 100
(x u) ⊗ v 0.29629 × 101 0.34285 × 101 0.465 × 100 0.136 × 100
u⊕v 0.98765 × 105 0.98766 × 105 0.161 × 101 0.136 × 10−4

Um dos erros mais comuns proveniente dos cálculos envolve o cancela-
mento de dígitos signicativos devido à subtração de números praticamente
iguais. Suponhamos que dois números praticamente iguais x e y , com x > y ,
tenham as seguintes representações em números-máquina com k -dígitos
f l(x) = 0.d1 d2 . . . dp αp+1 αp+2 . . . αk × 10n ,
e
f l(x) = 0.d1 d2 . . . dp βp+1 βp+2 . . . βk × 10n .
A notação em vírgula utuante para x−y é

f l (f l(x) − f l(y)) = 0.σp+1 σp+2 . . . σk × 10n−p ,


onde
0.σp+1 σp+2 . . . σk = αp+1 αp+2 . . . αk − βp+1 βp+2 . . . βk .
O número em vírgula utuante utilizado para representar x−y tem no
máximo k−p dígitos signicativos. Contudo, na maioria das máquinas, a
x−y serão atribuídos k dígitos, onde os últimos p serão zeros ou escolhidos
aleatoriamente. Qualquer outro cálculo envolvendo x − y retêm o problema
de ter apenas k −p dígitos signicativos, uma vez que uma cadeia de cálculos
não pode ser mais precisa do que a sua pior parcela.
Se uma representação com um número nito de dígitos ou um cálculo
introduz um erro, este erro crescerá quando dividido por um número de
pequena magnitude ou multiplicado por um número de grande magnitude.
Suponhamos, por exemplo, que o número z é representado aproximadamente
por z + δ, onde o erro delta é introduzido pela representação do número ou
por cálculos prévios. Dividindo agora por ε = 10−n , onde n > 0, temos
 
z f l(z)
≈ fl = (z + δ) × 10n .
ε f l(ε)
O erro absoluto nesta aproximação, |δ| × 10n , é o erro absoluto original, |δ|,
n
multiplicado pelo fator 10 .
CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 17

Exemplo 7. Sejam p = 0.54617 e q = 0.54601. Utilize a aritmética com


4 dígitos para aproximar p − q e determine o erro absoluto e o erro relativo
utilizando (a) o arredondamento e (b) a truncatura.

Solução: O valor exato de r =p−q é r = 0.00016.


(a) Suponhamos que a subtração é efetuada utilizando a aritmética com qua-
tro dígitos e aproximando por arredondamento. Arredondando p e q para
∗ ∗
quatro dígitos dá-nos p = 0.5462 e q = 0.5460, respectivamente, e
∗ ∗ ∗
r = p − q = 0.0002 é a aproximação para r. Como
r − r∗ 0.00016 − 0.0002
= = 0.25,
r 0.00016
o resultado têm apenas um dígito signicativo, enquanto que p∗ e q∗
tinham quatro e cinco dígitos signicativos, respectivamente.

(b) Se a truncatura é utilizada para os quatro dígitos, as aproximações para


p, q e r são p∗ = 0.5461, q ∗ = 0.5460 e r∗ = p∗ − q ∗ = 0.0001. Isto
dá-nos
r − r∗ 0.00016 − 0.0001
= = 0.375,
r 0.00016
que também resulta numa precisão com apenas um único dígito signi-
cativo.


A perda de precisão devido a aproximações às vezes pode ser evitada
através de uma reformulação dos cálculos como será ilustrado na próxima
observação.

Observação 1. A fórmula resolvente dá-nos as raízes da equação quadrática


ax2 + bx + c = 0, quando a 6= 0,
√ √
−b + b2 − 4ac −b − b2 − 4ac
x1 = e x2 = . (1.1)
2a 2a
Considere esta fórmula aplicada à equação x2 + 62.01x + 1 = 0, cujas
raízes são aproximadamente

x1 = −0.01610723 e x2 = −62.08390.

Vamos utilizar novamente a aritmética com 4 dígitos e a aproximação por


arredondamento para determinar a raiz. Nesta equação, b2 é muito maior do
que 4ac. Assim, o numerador no cálculo de x1 envolve a subtração de dois
números quase iguais. Temos
p p
b2 − 4ac = (62.10)2 − (4.000) ∗ (1.000) ∗ (1.000)
√ √
= 3856. − 4.000 = 3852. = 62.06.
CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 18

Logo,
−62.10 + 62.06 −0.04000
f l(x1 ) = = = −0.02000,
2.000 2.000
que é uma aproximação pobre para x1 = −0.01611, pois tem um grande erro
relativo,
−0.01611 + 0.02000
≈ 2.4 × 10−1 .
−0.01611
Por outro lado, o cálculo de x2 envolve a adição de dois números pra-

ticamente iguais, −b e b2 − 4ac. Isto não representa qualquer problema,
pois
−62.10 − 62.06 −124.2
f l(x2 ) = = = −62.10
2.000 2.000
que tem um erro relativo pequeno

−62.08 + 62.10
≈ 3.2 × 10−4 .
−62.08
Podemos obter uma aproximação mais precisa utilizando os mesmo 4
dígitos e o arredondamento, se mudarmos a forma da fórmula resolvente
através da racionalização:

√ √ !
−b + b2 − 4ac −b − b2 − 4ac b2 − (b2 − 4ac)
x1 = √ = √ ,
2a −b − b2 − 4ac 2a(−b − b2 − 4ac)

que simplica para

−2c
x1 = √ . (1.2)
b + b2 − 4ac
Usando (1.2) obtemos

−2.00 −2.000
f l(x1 ) = = = −0.01610,
62.10 + 62.06 124.2
que tem o pequeno erro relativo 6.2 × 10−4 .
A técnica de racionalização também pode ser utilizada para o cálculo de
x2 ,
−2c
x2 = √ . (1.3)
b − b2 − 4ac
Esta fórmula é a que devemos utilizar se b for um número negativo. A
utilização incorreta desta fórmula resultaria não apenas na subtração de dois
números muito próximos, mas também na divisão por essa pequena diferença.
A imprecisão que esta combinação produz,

−2.000 −2.000
f l(x2 ) = = = −50.00,
62.10 − 62.06 0.04000
CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 19

tem um grande erro relativo 1.9 × 10−1 .

• Lição: Pense antes de calcular!

Aritmética Aninhada

A perda de precisão devido ao erro de aproximação também pode ser


reduzida através do rearranjo dos cálculos, como mostramos no próximo
exemplo.

Exemplo 8. Calcule o valor da função f (x) = x3 − 6.1x2 + 3.2x + 1.5 em


x = 4.71 utilizando a aritmética com três dígitos.

Solução: Na tabela seguinte mostramos os cálculos intermédios.

x x2 x3 6.1x2 3.2x
Exato 4.71 22.1841 104.487111 135.32301 15.072
Truncatura (3 dígitos) 4.71 22.1 104. 134. 15.0
Arredondamento (3 dígitos) 4.71 22.2 105. 135. 15.1

Para ilustrar os cálculos, vejamos aqueles envolvidos com x3 utilizando a


aproximação por arredondamento com três dígitos. Primeiro encontramos

x2 = 4.712 = 22.1841 que se arredonda para 22.2.

Depois utilizamos este valor para encontrar

x3 = x2 · x = 22.2 · 4.71 = 104.562 que se arredonda para 105.

Do mesmo modo,

6.1x2 = 6.1 · 22.2 = 135.42 que se arredonda para 135.,

e
3.2x = 3.2 · 4.71 = 15.072 que se arredonda para 15.1.
O valor exato é

f (4.71) = 104.487111 − 135.32301 + 15.072 + 1.5 = −14.263899.

Utilizando a aritmética com um número nito de dígitos, a maneira como


adicionamos as parcelas pode inuenciar o resultado nal. Suponhamos que
CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 20

adicionamos da esquerda para a direita. Então a aproximação por truncatura


é
f (4.71) = ((104. − 134.) − 15.0) − 1.5 = −13.5,
e a aproximação por arredondamento é

f (4.71) = ((105. − 135.) + 15.1) + 1.5 = −13.4.

(Devem vericar com cuidado estas contas para ter certeza que a vossa
notação de aritmética com número nito de dígitos está correta.)
Os erros relativos para estes dois métodos são

−14.263899 + 13.5
Truncatura: ≈ 0.5,
−14.263899
e
−14.263899 + 13.4
Arredondamento: ≈ 0.6.
−14.263899


Ilustração 1. Uma abordagem alternativa, é escrever o polinómio do exem-


plo anterior numa maneira aninhada
f (x) = x3 − 6.1x2 + 3.2x + 1.5 = ((x − 6.1)x + 3.2)x + 1.5.

Utilizando a aproximação por truncatura com três dígitos produz

f (4.71) = ((4.71 − 6.1)4.71 + 3.2)4.71 + 1.5 = ((−1.39)(4.71) + 3.2)4.71 + 1.5


= (−6.54 + 3.2)4.71 + 1.5 = (−3.34)4.71 + 1.5 = −15.7 + 1.5 = −14.2.

De um modo semelhante, obtemos a aproximação por arredondamento


com três dígitos −14.3. Os erros relativos são

−14.263899+14.2
Três dígitos (truncatura):
−14.263899 ≈ 0.0045;
−14.263899+14.3
Três dígitos (arredondamento):
−14.263899 ≈ 0.0025.

O aninhamento reduziu o erro relativo para a aproximação por truncatura


para menos de 10% daquela obtida inicialmente. Para a aproximação por
arredondamento, a melhoria foi ainda mais dramática; o erro neste caso foi
reduzido em mais de 95%.

Os polinómios deveriam ser sempre expressos na forma aninhada antes


de fazer cálculos, porque esta forma minimiza o número de operações arit-
méticas. O decréscimo no erro na ilustração é devido à redução nos cálculos
de quatro multiplicações e três adições para duas multiplicações e três adi-
ções. Uma maneira de reduzir os erros de aproximação é reduzir o número
de computações.
CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 21

Exercícios 1.2

1. Calcule o erro absoluto e o erro relativo em aproximar p por p∗ .

a. p = π , p∗ = 22/7 b. p = π , p∗ = 3.1416

c. p = e, p∗ = 2.718 d. p = 2, p∗ = 1.414
e. p = e10 , p∗ = 22000 f. p = 10π , p∗ = 1400

g. p = 8!, p∗ = 39900 h. p = 9!, p∗ = 18π(9/e)9

2. Encontre o maior intervalo ao qual deve pertencer p∗ para aproximar p


com um erro relativo no máximo igual a 10
−4 para cada um dos valores

de p.

a. p=π b. p=e
√ √
c. p= 2 d. p= 37

3. Suponha que p∗ deve aproximar p com um erro relativo no máximo


igual a 10
−3 . Encontre o maior intervalo ao qual p∗ deve pertencer
para cada um dos seguintes p.

a. p = 150 b. p = 900
c. p = 1500 d. p = 90

4. Efetue os seguintes cálculos (i) de modo exato, (ii) aproximando por


truncatura com três dígitos e (iii) aproximando por arredondamento
com três dígitos. (iv) Calcule os erros relativos cometidos em (ii) e
(iii).

a. 4
5 + 1
3 b. 4
5 · 1
3
c. 1 3 3
d. 1 3 3
 
3 − 11 + 20 3 + 11 − 20

5. Aproxime os cálculos seguintes por arredondamento com três dígitos.


Calcule o erro absoluto e o erro relativo comparado com o valor exato
calculado com pelo menos cinco dígitos.

a. 133 + 0.921 b. 133 − 0.499


c. (121 − 0.327) − 119 d. (121 − 119) − 0.327
13
− 76
e. 14
2e−5.4 f. −10π + 6e − 3
62
π− 22
g. 2
9 · 9
7 h. 7
1
17
CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 22

6. Repita o Exercício 5 aproximando por arredondamento com quatro


dígitos.

7. Repita o Exercício 5 aproximando por truncatura com três dígitos.

8. Repita o Exercício 5 aproximando por truncatura com quatro dígitos.

9. Os três primeiros termos não nulos da série de Maclaurin para a função


x3 x5
arcotangente são x− 3 + 5 . Calcule o erro absoluto e o erro rela-
tivo nas seguintes aproximações para o número π quando utilizamos o
polinómio no lugar do arcotangente:
    
1 1
a. 4 arctan + arctan
2 3
   
1 1
b. 16 arctan − 4 arctan
5 239
P∞
10. O número de Neper, e, pode ser denido por e= n=0 (1/n!), onde
n! = n(n − 1) · · · 2 · 1 para n 6= 0 e 0! = 1. Calcule o erro absoluto e o
erro relativo nas seguintes aproximações para e:
5 10
a. 1
b. 1
P P
n! n!
n=0 n=0

11. Seja
x cos x − sin x
f (x) = .
x − sin x
a. Calcule limx→0 f (x).
b. Aproxime por arredondamento com quatro dígitos o valor de f (0.1).
c. Substitua cada função trigonométrica pelo correspondente polinó-
mio de Maclaurin de ordem 3 e repita a alínea (b).

d. O valor exato de f (0.1) = −1.99899998. Calcule o erro relativo


para os valores obtidos nas (b) e (c).

12. Seja
ex − e−x
f (x) = .
x
a. Calcule limx→0 f (x).
b. Aproxime por arredondamento com três dígitos o valor de f (0.1).
c. Substitua cada função trigonométrica pelo correspondente polinó-
mio de Maclaurin de ordem 3 e repita a alínea (b).

d. O valor exato de f (0.1) = 2.003335000. Calcule o erro relativo para


os valores obtidos nas (b) e (c).
CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 23

13. Utilize o arredondamento com 4 dígitos e as fórmulas (1.1), (1.2) e (1.3)


para encontrar as aproximações mais precisas às equações quadráticas
seguintes. Calcule os erros absolutos e os erros relativos.

a. 1 2
3x
123
− 1
4 x+ 6 =0
b. 1 2
3x + 123 1
4 x− 6 =0
c. 1.002x2 − 11.01x + 0.01265 =0
d. 1.002x2 + 11.01x + 0.01265 = 0

14. Repita o Exercício 13 aproximando por truncatura com quatro dígitos.

15. a. Mostre que a técnica de aninhamento descrita no Exemplo 8 tam-


bém pode ser aplicado no cálculo de

f (x) = 1.01e4x − 4.62e3x − 3.11e2x + 12.2ex − 1.99.

b. Use a aproximação por arredondamento com três dígitos, a assunção


que e1.53 = 4.62 e o facto que enx = (ex )n para calcular f (1.53) da
forma dada na alínea (a).

c. Refaça os cálculos na alínea (b) aninhando primeiro os cálculos.

d. Compare as aproximações obtidas nas alíneas (b) e (c) com o valor


exato com três dígitos f (1.53) = −7.61.

1.3 Algoritmos e Convergência

Ao longo do texto examinaremos procedimentos de aproximação chamados


algoritmos envolvendo sequências de cálculos. Um algoritmo é um pro-
cedimento que descreve, numa forma inequívoca, uma sequência nita de
passos a ser realizada numa determinada ordem. O objetivo do algoritmo é
implementar o procedimento para resolver um problema ou aproximar uma
solução para um problema.
Utilizamos um pseudocódigo para descrever os algoritmos. Este pseu-
docódigo especica a forma das entradas (input) a serem fornecidas e a forma
da saída (output) pretendida. Nem todos os procedimentos numéricos dão
outputs satisfatórios para inputs arbitrariamente escolhidos. Consequente-
mente, uma técnica de paragem independente da técnica numérica é incor-
porada para cada algoritmo para evitar ciclos innitos.
Dois símbolos de pontuação são utilizados em algoritmos:

• o ponto nal (.) indica o m de um passo,

• o ponto e vírgula (;) separam tarefas dentro de um mesmo passo.


CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 24

A indentação é utilizada para indicar que os grupos de declarações estão a


ser tratadas como uma única entidade.
Técnicas de looping nos algoritmos são controladas por um contador, tais
como,

For i = 1, 2, . . . , n
Set xi = a + i · h
ou controladas por uma condição, tais como,

While i<N efetuar passos 3-6.

Para permitir a execução condicional, usamos as construções habituais

If ... then ou If ... then

else.

Os algoritmos são propositadamente apresentados com comentários. Es-


tes são escritos em itálico e contidos entre parênteses para distingui-los das
declarações algorítmicas.

N
Ilustração 2.
P
O algoritmo seguinte calcula x1 +x2 +· · ·+xN = xi , dados
i=1
N e os números x1 , x2 , . . . , xN .

INPUT N, x1 , x2 , . . . , xN .
SU M = N
P
OUTPUT i=1 xi .
Passo 1 Set SU M = 0. (Iniciar o acumulador )

Passo 2 For i = 1, 2, . . . , N do

Set SU M = SU M + xi . (Adicionar o termo seguinte.)

Passo 3 OUTPUT(SU M ).

STOP.

Exemplo 9. O polinómio de Taylor de ordem N para a função f (x) = ln x


em torno do ponto x=1 é

N
X (−1)i+1
PN (x) = (x − 1)i ,
i
i=1

e o valor de ln 1.5 com oito casas decimais é 0.40546511. Construa um


algoritmo para determinar o menor valor de N tal que

| ln(1.5) − PN (1.5)| < 10−5 ,


CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 25

sem utilizar o termo do erro de truncatura do Teorema de Taylor. Imple-


mente este algoritmo numa linguagem, ou efetue as contas à mão, e deter-
mine o valor de N.

Solução:
P∞
Do Cálculo sabemos que se n=1 an é uma série alternante com
limiteA cujos termos decrescem em magnitude, então A e a soma parcial
= N
P
AN n=1 an diferem por menos do que a magnitude do termo N + 1, isto
é,
|A − AN | ≤ |aN +1 |.
O próximo algoritmo utiliza este majorante.

INPUT valor x, tolerância T OL, o máx. de iterações


n M .

OUTPUT grau N do polinómio or mensagem de erro.

Passo 1 Set N = 1;
y = x − 1;
SU M = 0;
P OW ER = y ;
T ERM = y ;
SIGN = −1. (alternância de sinal )
Passo 2 While N ≤ M do Passos 3-5.

Passo 3 Set SIGN = −SIGN ; (alterna sinais.)

SU M = SU M + SIGN · T ERM ; (acumula termos.)

P OW ER = P OW ER · y ;
T ERM = P OW ER/(N + 1). (calcula próximo termo.)

Passo 4 If T ERM < T OL then (testa precisão.)

OUTPUT (N );

STOP. (procedimento ok )

Passo 5 Set N = N + 1. (prepara próxima iteração.)

Passo 6 OUTPUT ('Método falhou!'); (procedimento sem sucesso.)

STOP.
O input para o nosso problema é x = 1.5, tol = 10−5 e talvez M = 15.
Esta escolha de M fornece um limite superior para o número de cálculos
que estamos dispostos a realizar, reconhecendo que o algoritmo é susceptível
de falhar se este limite for excedido. Se o output é um valor para N ou a
mensagem de erro depende da precisão do dispositivo computacional.
Implementando, por exemplo, no Python, temos
CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 26

def taylor (x,tol ,M=20):


N=1
y=x −1
soma =0
power=y
termo=y
sign=−1
while N <= M:
sign=− sign
soma=soma+termo ∗ sign
power=power ∗ y
termo=power /(N+1)
if termo < tol:
return N
N=N+1
return ’Metodo falhou !’
Executando o comando taylor(1.5,10**(-5)) obtemos o seguinte valor
12 para N. 

Caracterizando Algoritmos

Ao longo do texto vamos considerar uma variedade de problemas de apro-


ximação e em cada caso nós precisamos determinar métodos de aproximação
que produzam resultados precisos para uma vasta variedades de problemas.
Devido às diferentes formas em que os métodos de aproximação são deriva-
dos, precisamos de uma variedade de condições para categorizar a sua pre-
cisão. Nem todas essas condições serão adequadas para qualquer problema
em particular.
Um critério que vamos impor num algoritmo, sempre que seja possível, é
que pequenas mudanças nos dados iniciais produzam correspondentemente
pequenas mudanças nos resultados nais. Um algoritmo que satisfaça esta
propriedade é chamada estável; caso contrário, é instável. Alguns algorit-
mos são estáveis apenas para certas escolhas de dados iniciais, e são chamados
condicionalmente estáveis. Sempre que possível, vamos caracterizar as
propriedades de estabilidade dos algoritmos.
Para analisar melhor o tema do crescimento erro de arredondamento e a
sua conexão com estabilidade do algoritmo, suponhamos que um erro com
magnitude E0 > 0 é introduzido em algum momento nos cálculos e que a
magnitude do erro após n operações subsequentes é denotado por En . Os
dois casos que surgem na maioria das vezes, na prática, são denidos como
se segue.
CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 27

Figura 1.10: Crescimento linear vs exponencial

Denição 9. Suponhamos que E0 > 0 seja um erro introduzido em algum


momento nos cálculos e que En represente a magnitude do erro após n ope-
rações subsequentes.

• Se En ≈ CnE0 , onde C é uma constante independente de n, então o


crescimento do erro é dito linear.
• Se En ≈ C n E0 , para algum C > 1, então o crescimento do erro é dito
exponencial.
O crescimento linear do erro geralmente é inevitável, e quando C e E0 são
pequenos, os resultados são geralmente aceitáveis. O crescimento exponen-
cial do erro deve ser evitado, porque o termo C n torna-se grande, mesmo para
n.
valores relativamente pequenos de Isto leva a imprecisões inaceitáveis, in-
dependentemente do tamanho de E0 . Como consequência, um algoritmo que
apresenta um crescimento linear do erro é estável, enquanto que um algo-
ritmo que apresenta um crescimento exponencial do erro é instável. (Veja a
Figura 1.10).

Ilustração 3. Para quaisquer constantes c1 e c2 ,


 n
1
pn = c1 + c2 3n ,
3

é uma solução da equação recursiva

10
pn = pn−1 − pn−2 , para n = 2, 3, . . . .
3
CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 28

Isto pode ser visto com um pouco de álgebra


"   # "   #
10 10 1 n−1 n−1 1 n−2 n−2
pn−1 − pn−2 = c1 + c2 3 − c1 + c2 3
3 3 3 3
 n−2    
1 10 1 10
= c1 · − 1 + c2 3n−2 ·3−1
3 3 3 3
 n−2    n
1 1 1
= c1 + c2 3n−2 (9) = c1 + c2 3n = pn .
3 9 3

Suponhamos que nos é dado p0 = 1 e p1 = 13 . Isto determina de uma


1 n

maneira única o valor das constantes c1 = 1 e c2 = 0. Assim, pn = 3
para todos os valores de n.
Se uma aproximação por arredondamento com cinco dígitos é utilizada
para calcular os termos da sequência por esta equação, então pb0 = 1.0000
epb1 = 0.33333, que requer mudar as constante para c1 = 1.0000 e b
b c2 =
−0.12500 × 10−5 . A sequência {bp n }∞
n=0 gerada é então dada por
 n
1
pbn = 1.0000 − 0.12500 × 10−5 (3)n ,
3
que tem erro de arredondamento,

pn − pbn = 0.12500 × 10−5 (3n ).

Este procedimento é instável porque o erro cresce exponencialmente com


n, que se reete na imprecisão extrema após os primeiros termos, conforme
pode ser visto na tabela.

n pbn pn Erro relativo

0 0.10000 × 101 0.100000 × 101


1 0.33333 × 100 0.33333 × 100
2 0.11110 × 100 0.11111 × 100 9 × 10−5
3 0.37000 × 10−1 0.37037 × 10−1 1 × 10−3
4 0.12230 × 10−1 0.12346 × 10−1 9 × 10−3
5 0.37660 × 10−2 0.41152 × 10−2 8 × 10−2
6 0.32300 × 10−3 0.13717 × 10−2 8 × 10−1
7 −0.26893 × 10−2 0.45725 × 10−3 7 × 100
8 −0.92872 × 10−2 0.15242 × 10−3 6 × 101

Agora considere a equação recursiva

pn = 2pn−1 − pn−2 , para n = 2, 3, . . . .


CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 29

Esta equação recursiva tem a solução pn = c1 + c2 n para quaisquer cons-


tantes c1 e c2 , porque

para n = 2, 3, . . . . = 2(c1 + c2 (n − 1)) − (c1 + c2 (n − 2))


= c1 (2 − 1) + c2 (2n − 2 − n + 2) = c1 + c2 n = pn .
1
Se nos for dado que p0 = 1 e p1 = 3 , então as constantes nesta equação
2 2
são c1 = 1 e c2 = − 3 . Isto implica que pn = 1 − 3 n.
Se uma aproximação por arredondamento com cinco dígitos é utilizada
para calcular os termos da sequência por esta equação, então pb0 = 1.0000 e
pb1 = 0.33333. Consequentemente, as constante passam a ser c1 = 1.0000
b e
c2 = −0.66667. Assim,
b
 n
1
pbn = 1.0000 − 0.66667n,
3
que tem erro de arredondamento,
 
2
pn − pbn = 0.66667 − n.
3
Este procedimento é estável porque o erro cresce linearmente com n, con-
forme se pode ver reetido na tabela.

n pbn pn Erro relativo

0 0.10000 × 101 0.100000 × 101


1 0.33333 × 100 0.33333 × 100
2 −0.33330 × 100 −0.33333 × 100 9 × 10−5
3 −0.10000 × 101 −0.10000 × 101 0
4 −0.16667 × 101 −0.16667 × 101 0
5 −0.23334 × 101 −0.23333 × 101 4 × 10−5
6 −0.30000 × 101 −0.30000 × 101 0
7 −0.36667 × 101 −0.36667 × 101 0
8 −0.43334 × 101 −0.43333 × 101 2 × 10−5

Os efeitos do erro de arredondamento podem ser reduzidos utilizando


aritmética de alta ordem de dígitos tal como a dupla ou múltipla precisão,
opção disponível na maioria dos computadores. Desvantagens na utilização
de dupla precisão aritmética é que é preciso mais tempo de computação e o
crescimento do erro de arredondamento não é totalmente eliminado.
Uma abordagem para estimar os erros de arredondamento é usar aritmé-
tica intervalar (isto é, para reter os maiores e menores valores possíveis em
CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 30

cada passo), de modo que, no nal, obtém-se um intervalo que contém o va-
lor verdadeiro. Infelizmente, um intervalo muito pequeno pode ser necessário
para uma implementação razoável.

Taxas de Convergência

Uma vez que as técnicas iterativas envolvendo sequências são usadas com
frequência, esta seção conclui com uma breve discussão de algumas termi-
nologias usadas para descrever a taxa a que ocorre a convergência. De um
modo geral, gostaríamos que a técnica convergisse o mais rapidamente possí-
vel. A seguinte denição é utilizada para comparar as taxas de convergência
de sequências.

Denição 10. ∞
Suponhamos que {βn }n=0 é uma sequência que sabemos que

converge para zero e {αn }n=0 converge para um número α. Se existir uma
constante positiva K tal que

|αn − α| ≤ K|βn |, para grande valores de n,

então dizemos que a sequência {αn }∞


n=0 α com a taxa de
converge para
convergência (ordem de convergência) O(βn ). (Esta expressão lê-se
Oh grande de βn ) Isto é indicado escrevendo αn = α + O(βn ).

Embora a Denição 10 permita que a sequência {αn }∞


n=0 seja comparada

com uma sequência arbitrária {βn }n=0 , em quase todas as situações usamos

1
βn = ,
np
para algum número p > 0. Geralmente estamos interessados no maior p com
αn = α + O(1/np ).
Exemplo 10. Suponhamos que, para n ≥ 1,
n+1 n+3
αn = e α
bn = .
n2 n3
Ambos limn→∞ αn = 0 e limn→∞ α
bn = 0, mas a sequência {b
αn } converge
para este limite muito mais rapidamente do que a sequência {αn }. Utilizando
a aproximação por arredondamento com cinco dígitos, temos os valores con-
forme podemos ver na tabela abaixo. Determine a taxa de convergência destas
duas sequências.

n 1 2 3 4 5 6 7

α 2.0000 0.75000 0.44444 0.31250 0.24000 0.19444 0.16327


α
bn 4.0000 0.62500 0.22222 0.10938 0.06400 0.041667 0.029155
CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 31

Solução: Consideremos as sequências βn = 1/n e βbn 1/n2 . Então

n+1 n+n 1
|αn − 0| = 2
≤ 2
= 2 · = 2βn
n n n
e
n+3 n + 3n 1
|b
αn − 0| = 3
≤ 3
= 4 · 2 = 4βbn .
n n n
Logo, a taxa de convergência de {αn } para zero é similar à taxa de con-
1
vergência de { n } para zero, enquanto que {bαn } converge para zero a uma
1
taxa similar à sequência de maior taxa de convergência { 2 }. Expressamos
n
isto escrevendo
   
1 1
αn = 0 + O e α
bn = 0 + O ,
n n2

ou simplesmente,
   
1 1
αn = O e α
bn = O .
n n2

Também utilizamos a notação O-grande para descrever a taxa a que as


funções convergem.

Denição 11. Suponhamos que limh→0 G(h) = 0 e limh→0 F (h) = L. Se


existir uma constante positiva K tal que

|F (h) − L| ≤ K |G(h)| , para h sucientemente pequeno,

então escrevemos F (h) = L + O(G(h)).

As funções que utilizamos para comparação geralmente têm a forma


G(h) = hp , onde p > 0. Estamos interessados no maior valor de p para
p
o qual F (h) = L + O(h ).

Exemplo 11. Utilize o polinómio de Taylor de ordem 3 em torno de h=0


1 2 4
da função cos x para mostrar que cos h + 2 h = 1 + O(h ).

Solução: No Exemplo 2 (b) da seção 1.1 encontrámos que este polinómio é

1 1
cos h = 1 − h2 + h4 cos ξ,
2 24
para algum número ξ entre 0 e h. Isto implica que

1 1
cos h + h2 = 1 + h4 cos ξ.
2 24
CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 32

Assim,  
1 1 1
cosh + h2 −1 = cos ξ h4 ≤ h4 ,
2 24 24
1 2
logo, quando h → 0, cos h + 2 h converge para o seu limite, tão rapidamente
4
quanto h converge para 0. Isto é,

1
cos h + h2 = 1 + O(h4 ).
2


O site da WolframAlpha utiliza a notação O-grande para indicar a forma


do erro nos polinómios de Taylor e em outras situações. Por exemplo, po-
deremos recorrer ao WolframAlpha para encontrar o resultado do exemplo
anterior. Para isso, basta escrever na linha de comando do WolframAlpha a
instrução

taylor cosx, x=0, order 2,

cuja resposta é
1
cos x = 1 − x2 + O(x4 ).
2
para indicar que o termo de menor grau no erro de truncatura é x4 .

Exercícios 1.3

P∞
1. O número de Neper, e, é denido por e = n=0 (1/n!), onde n! =
n(n−1)(n−2) . . . 2 · · · 1 para n 6= 0 e 0! = 1. Utiliza a aproximação por
truncatura com quatro dígitos para calcular as seguintes aproximações
para e, determinando também os erros absolutos e relativos.

5 5
a. 1
b. 1
P P
e≈ n! e≈ (5−j)!
n=0 j=0
10 10
c. 1
d. 1
P P
e≈ n! e≈ (10−j)!
n=0 j=0
CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 33

2. A série de Maclaurin para a função arcotangente converge para −1 ≤


x≤1 e é dada por

n
X x2i−1
arctan x = lim Pn (x) = lim (−1)i+1 .
n→∞ n→∞ 2i − 1
i=1

a. Use o facto de tan π/4 = 1 para determinar o número de termos n


da série que são necessários para garantir que |4Pn (1) − π| < 10−3 .
b. A linguagem C++ requer que o valor de π tenha precisão no mínimo
de
−10 . Quantos termos da série seriam necessários para atingir tal

precisão?

3. O exercício anterior detalha um modo ineciente para obter uma apro-


ximação para π . O método pode ser substancialmente melhorado ob-
servando que π/4 = arctan 21 + arctan 13 e realizando as séries para o
1 1
arcotangente em
2 e 3. Determine o número de termos necessários
para garantir a aproximação ao número π com precisão no mínimo de
10−3 .

4. Outra fórmula para calcular π pode ser deduzida da identidade π/4 =


4 arctan 15 −arctan 239
1
. Determine o número de termos necessários para
garantir a aproximação ao número π com precisão no mínimo de 10
−3 .

5. Determine as taxas de convergência das seguintes sequências quando


n → ∞.

a. lim sin n1 = 0
n→∞
b. lim sin n12 = 0
n→∞

c. d.
2
lim sin n1 = 0 lim [ln(n + 1) − ln(n)] = 0
n→∞ n→∞

6. Determine as taxas de convergência das seguintes sequências quando


h → 0.
sin h 1 − cos h
a. lim =1 b. lim =0
h→0 h h→0 h
sin h − h cos h 1 − eh
c. lim =0 d. lim = −1
h→0 h h→0 h

7. Sejam P (x) = an xn + an−1 xn−1 + · · · + a1 x + a0 um polinómio e x0


um valor dado. Construa um algoritmo para calcular P (x0 ) usando a
aritmética aninhada.
CAPÍTULO 1. INTRODUÇÃO À ANÁLISE NUMÉRICA 34

8. As fórmulas (1.2) e (1.3) na Seção 1.2 dão uma forma alternativa para
as raízes x1 e x2 ax2 + bx + c = 0. Construa um
da equação quadrática
algoritmo com input a, b, c e output x1 , x2 que calcule as raízes x1 e x2
(que podem ser iguais ou complexos conjugados) recorrendo à melhor
fórmula para cada raiz.

Você também pode gostar