Ficha1

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 7

Matemática Computacional

Ficha 1

Nota: Quando não se especica o sistema PF, assume-se que se está a usar o sistema em base
decimal.

Representação de números reais e cálculo em sistemas de ponto utuante. Erros


cometidos, algarismos signicativos

1. Os resultados aproximados da medição de uma ponte e de uma viga foram, respetivamente,


9999 cm e 9 cm. Sabendo que as respetivas medidas exatas correspondentes são 10000 cm e
10 cm, calcule:

(a) os erros absolutos dos valores medidos,

(b) as respetivas percentagens de erro.

Comente os resultados.

Solução:
x = 10000, x̃ = 9999, ex̃ = 1,
y = 10 ỹ = 9, eỹ = 1.
Contudo, δx̃ ≃ 0.0001 = 10
−4 = 0.01% e δỹ ≃ 0.1 = 10%

2. Considere o sistema PF(2, 3, −1, 2).

(a) Determine os números positivos do sistema. Comece por notar que os elementos posi-
tivos do sistema têm a forma:
(0.a1 a2 a3 )2 × 2t , t ∈ {−1, 0, 1, 2}, onde a1 = 1 (por ser a1 ̸= 0) e os outros ai podendo
tomar os valores 0 e 1.

(b) Escreva os números obtidos em base decimal normalizada.

Solução:
Por exemplo, com a mantissa (0.100)2 e variando o expoente t:
(0.100)2 × 2−1 , (0.100)2 × 20 , (0.100)2 × 21 , (0.100)2 × 22 . No total, deve obter 16 números.

3. Represente x no sistema PF(10, 4, −10, 10), com arredondamento simétrico, nos seguintes
casos:

(a) x = 1/6 (b) x = 1/9 (c) x = −95784


(d) x = −73785 (e) x = 63798 (f ) x = 0.0023296
Obtenha ainda a percentagem do erro cometido em cada caso, ao substiuir x pelo seu repre-
sentante, e compare com a estimativa teórica.
Em seguida, resolva o exercício utilizando arredondamento por corte.

Solução:

a) f l(x) = 0.1667×100 ; c) f l(x) = −0.9578×105 ; d)−0.7379×105 ; f) f l(x) = 0.2330×10−2 .

1
4. Considere um sistema que utiliza 4 dígitos na mantissa e arredondamento simétrico. Deter-
mine, nesse sistema, uma aproximação da área dum círculo de raio r = 1.
Solução: A = πr2 =⇒ Ã = 0.3142 × 101 .

1
5. Considere a operação
3 + 23 , num sistema de ponto utuante com 4 dígitos e arredondamento
1 2
por corte. Verique se a igualdade seguinte é válida:
3 + 3 = 1.
Solução:
w1 = f l(1/3) = 0.3333 × 100 , w2 = f l(2/3) = 0.6666 × 100 , w3 = f l(w1 + w2 ) = 0.9999 × 100 .
0
A solução é w3 = 0.9999 × 10 ̸= 1.

6. Quantos algarismos signicativos tem x̃ = 0.9951 como aproximação de x = 0.9949?


Solução: 3.

7. Para cada um dos números seguintes



2
i) x = 1/3 ii) x = 2111/701 iii) x=
3
(a) Represente x num sistema de ponto utuante com 6 dígitos e arredondamento simétrico.
Obtenha os erros absoluto e relativos, assim como a percentagem de erro cometido.
Solução:
i) x = 0.333333... ≈ f l(x) = 0.333333×100 , ef l(x) = 0.33×10−6 , δf l(x) = 10−6 = 10−4 %
1
ii) x = 3.0114122681... ≈ f l(x) = 0.301141 × 10 , ef l(x) = 2.27 × 10
−6 , δ
f l(x) =
−7
7.532 × 10 = 0.00007532%
0
iii) x = 0.47140452... ≈ f l(x) = 0.471405 × 10 , ef l(x) = −4.8 × 10
−7 , |e
f l(x) | =
−7 −6
4.8 × 10 , |δf l(x) | = 10 = 10 %−4

(b) Obtenha uma aproximação de x com 4 algarismos signicativos.


Sugestão: Utilize arredondamento simétrico.

8. [Matlab] Recorde que PF(2, 53, −1021, 1024), com arredondamento simétrico, é o sistema de
ponto utuante no Matlab, com precisão dupla (64 bits).

(a) [Não aval.] Represente, neste sistema, os números x = 10, y = 1 e z = 0.1 .

(b) [Não aval.] Verique se a condição lógica 3z = 0.3 dá verdadeira ou falsa. Justique.

(c) Indique quais são o maior e o menor números positivos representados no sistema.

(d) Indique qual é a unidade de arredondamento.

(e) Determine os intervalos (abertos) Ix e Iy de números cujos representantes no sistema


sejam x = 260 y = 256,
e respetivamente. Verique, com um exemplo, que se tomar
z ∈ Ix , a condição x = z é verdadeira.

(f ) Qual o número de algarismos signicativos (precisão) de y = 260 enquanto aproximação


de um número do intervalo Ix calculado na alínea anterior?

(g) No Matlab dena a = 10308 , b = 1.1 × 10308 e c = −1.001 × 10308 . Compare a + (b + c)


com (a + b) + c e justique o resultado.
O que pode concluir sobre a propriedade associativa da adição?

(h) Dena agora a = 10−16 + 1 − 10−16 , b = 10−16 − 10−16 + 1 e verique se a condição


lógica a=b é verdadeira ou falsa e justique o resultado.

2
9. [Matlab]. Considere a sequência de instruções

ˆ a = 1; b = a; count = 0;
ˆ while a + b ̸= a
ˆ b = b/2, count = count + 1

(a) Assumindo precisão total nos cálculos, o que espera quanto ao valor nal de count?
(b) Ajustando a sintaxe para Matlab, implemente as instruções acima num script com o
nome exemplo.m. Execute o script utilizando o Matlab e justique o resultado obtido
comparando com o que previu na alínea anterior.

10. [Matlab]. Considere a equação x2 + 2bx −√1 = 0, com b ≫ 1 e a fórmula (resolvente) que
permite obter a solução positiva x = −b + b2 + 1. Para b = 10
10 a solução é x = 5 × 10−11 ,

um valor muito acima do menor número representado pelo sistema de ponto utuante. No

entanto, se aplicarmos a fórmula x = −b + b2 + 1 obtemos um resultado distinto. Explique
porquê.

Condicionamento de funções. Cancelamento subtrativo. Propagação de erros

1. Determine os números de condição das funções abaixo e analise o seu condicionamento.


i) f (x) = x
ii) f (x) = exp(x)
iii) f (x) = sin(x)
iv) f (x) = xn , n ∈ N.

Solução:
iv) condf (x) = n, que não depende de x, apenas da potência n (xada). Logo o bom ou mau
condicionamento de f depende de n ≥ 1 ser pequeno ou grande. Se n igual ou próximo
de 1, f é obviamente bem condicionada para qualquer x.

2. Considere novamente a função f (x) = sin(x), cujo condicionamento foi estudado na alínea
anterior.

(a) [Matlab]. Utilizando um script em Matlab, recorra à função plot, para representar a
função f (x) = sin(x) bem como o respetivo número de condição condf (x) (questão
acima) no intervalo [−0.95π; 0.95π]. Na denição do domínio, utilize um espaçamento
de 0.01. Represente o gráco de f a linha tracejada e a vermelho. Represente o gráco de
condf a verde, utilizando marcadores do tipo circular. Ative a opção grid on. Distinga
ambos os grácos incluindo uma legenda. Comente o aumento do condicionamento em
relação com o comportamento do gráco de f.
(b) Determine uma estimativa para o erro relativo que se comete no cálculo de sin(x̃) sendo
x̃ uma aproximação para x = 3.14149 com um erro relativo |δx̃ | < 0.00005.

Solução: condf (x) = 30602.8 =⇒ |δf (x̃) | ≈ (30602.8) × (0.00005) ≈ 1.53 = 153%

3
1
3. (a) Estude a função ψ(x) = no que respeita ao condicionamento.
1−x
(b) Determine uma estimativa para o erro relativo de ψ(x̃), sendo x̃ uma aproximação para
x = 1.00000333... com um erro relativo |δx̃ | < 0.00005.
Comente o resultado.

Solução: |δψ(x̃) | ≃ 1502%.

4. Sob certas hipóteses, a velocidade de um pára-quedas pode ser determinada pela equação

gm 
1 − e−(c/m)t ,

v(t) =
c
onde g designa a aceleração da gravidade, m a designa a massa, e c é o coeciente de
resistência ao ar. Calcule o valor de v(t) em t = 6, se g = 9.8 m/s2 , m = 50 Kg e c = 12.5.
Considerando c = 12.5 como o valor correto para esse parâmetro, estime o erro relativo no
cálculo da velocidade se apenas conhecermos uma aproximação c̃ vericando |c − c̃| ≤ 2.
Sugestão: Fixe o valor t=6 e considere o lado direito de v(6) como uma função de c.

5. Considere um triângulo retângulo, em que d representa o comprimento da hipotenusa e θ um


dos seus ângulos internos agudos. O perímetro P do triângulo pode ser calculado através da
expressão
P = d × (1 + sin(θ) + cos(θ))
Admita que d = 12 e que θ é aproximado pelo valor θ̄ = π/3 e seja P̄ o valor obtido para P.
Mostre que o erro relativo de P̄ é, aproximadamente,


π(1 − 3
|δPθ̄ | ≃ √ δθ̄ ,
3(3 + 3)

qualquer que seja o valor d ̸= 0.

6. Mostre que as estimativas de erro relativo nas operações x·y e x/y podem ser dadas por

δx̃·ỹ ≈ δx̃ + δỹ

e
δx̃/ỹ ≈ δx̃ − δỹ
respetivamente.

Sugestão: Considere, para x, x̃ ∈ Rn e x ≈ x̃, a propagação de erros dada por

n ∂f
X xk ∂x k
(x)
δf (x̃) ≈ pf,k (x)δx̃k , pf,k (x) := .
f (x)
k=1

7. Sabe-se que os números ā = 3.1415 e b̄ = −3.1425 resultaram de arredondamentos simétricos


para 5 dígitos decimais. Estime o erro absoluto do valor

ȳ = tan(ā + b̄)/2.

4
8. Sejam x = π = 3.1415926... e y = 2199/700 = 3.1414285....

(a) Considere um sistema decimal que utiliza 4 dígitos na mantissa e arredondamento


simétrico. Determine aproximações x̃ e ỹ de x e y, respetivamente, nesse sistema.
Obtenha ainda z̃ = x̃ − ỹ (arredondado para 4 dígitos).
Solução: x̃ = f l(x) = 0.3142 × 101 , ỹ = f l(y) = 0.3141 × 101 . Usando esses valores,
tem-se z̃ = 0.1 × 10−2 .
(b) Determine a unidade Us de arredondamento do sistema. Calcule os erros absolutos e
relativos de x̃, ỹ , bem como as percentagens de erro. Comente.

Solução: Tem-se Us = 0.5 × 10−3 . Erros relativos: |δx̃ | ≃ 0.131 × 10−3 , |δỹ | ≃
0.137 × 10−3 .
Note que estes erros não excedem Us , como seria de esperar.
(c) Calcule os erros absoluto e relativo dez̃ em relação a z = x − y .
Solução: Tem-se |δz̃ | ≃ 5.10, ou seja, z̃ = x̃ − ỹ apresenta 510% de erro! Houve um
grande aumento do erro relativo comparativamente aos erros de x̃ e ỹ .
(d) Obtenha agora representações em vírgula utuante com 6 algarismos na mantissa de xe
y. Determine f l ( f l(x)−f l(y) ) e o respetivo erro relativo. Note que houve melhoria nos
resultados em relação a b) pelo facto de se terem utilizado mais algarismos na mantissa
(ou seja uma maior precisão).

9. Dada a função f (x) = 1 − cos(x), pretende-se determinar uma aproximação para f (10−2 ),
num sistema decimal de vírgula utuante, com 4 dígitos na mantissa e arredondamento por
corte. Calcule (use radianos) um valor aproximado para cos(10−2 ) = 0.9999500004166...
nesse sistema. Use esse valor para calcular uma aproximação para f (10
−2 ) (representando-a

também no sistema) e determine o erro relativo dessa aproximação.

Solução: Deve obter a aproximação: f (10−2 ) ≃ 0.1000 × 10−3 , com erro relativo ≃ 1.

10. Considere um sistema de ponto futuante de base 10 e 4 dígitos na mantissa, com arredonda-
√ √
mento simétrico. Dados x = 8.765 e y = 8.766, calcule uma aproximação para x− y
nesse sistema. Calcule o erro relativo dessa aproximação e compare com a estimativa obtida
utilizando a fórmula de propagação de erros.
√ √
Sugestão: Comece por obter o valor exato: f (x, y) = x− y = −1.6888 × 10−4 . Para
obter uma aproximação, comece por calcular

p
f l(x) = 0.8765 × 10 =⇒ p f l(x) = 2.96057...
p = 0.8766 × 10 p
f l(y) =⇒ f l(y) = 2.96074...
f l( f l(x)) = ..., f l( f l(y)) = ...

Complete os cálculos.

11. Sabe-se que 1.9999 e 3.14 resultaram de arredondamentos simétricos.

(a) Estime o erro absoluto do valor sin(1.9999 × 3.14).


Apresente todos os cálculos que efetuar.

(b) Diga se a função ψ(a, b) = sin(ab) é bem condicionada para pontos (a, b) ̸= (0, 0) tais
que ab ≃ 2kπ , dado k > 0. Justique a sua resposta começando por calcular o número de
condição da função ψ(a, b).

5
1 1
12. Considere a função ϕ(x) = − .
1+x x
(a) Determine o número de condição de ϕ(x). Que pode dizer sobre o condicionamento
para valores de x muito grandes?

(b) Considere o seguinte algoritmo

z1 = 1 + x, z2 = 1/x, z3 = 1/z1 , z4 = z3 − z2
i. Utilizando este algoritmo, num sistema decimal de ponto utuante com 3 algarismos
na mantissa, calculeϕ(10000).
ii. Considerando o valor exato ϕ(10000) = −9.999000099990002 × 10
−9 , calcule o erro
relativo do valor obtido na alínea anterior. Comente o resultado.

iii. Apresente uma forma alternativa de calcular ϕ(10000) que não conduza a esse tipo
de erros. Conrme efetuando os cálculos.

Solução:
(a) Tem-se
 
1 1
xϕ′ (x) x − (1+x) 2 + x2

1 1
 
x

Condϕ(x) = = 1 1 =x + = 1+ ≈ 2,
ϕ(x) 1+x − x
1+x x 1+x

se x ≫ 1. Vericamos que o cálculo de ϕ(x) quando x ≫ 1 é um problema bem condicionado.


(b)-i Cálculos: z1 = f l(10001) = 0.1 × 105 , z2 = 0.1 × 10−3 , z3 = 0.1 × 10−3 , z4 = 0.
|−9.999000099990002×10−9 −0|
(b)-ii Erro relativo:
|−9.999000099990002×10−9 |
= 1 = 100%.
1 1
No algoritmo associado à expressão ϕ(x) = − ocorre cancelamento subtrativo quando
1+x x
x ≫ 1, pois, neste caso, x + 1 ≈ x.
1
(b)-iii Notando que ϕ(x) = − , podemos considerar o algoritmo associado a esta
(1 + x)x
última expressão de ϕ(x):
z1 = 1 + x, z2 = x × z1 , z3 = −1/z2 o qual evita o cancelamento subtrativo quando

x ≫ 1. Efetuando os cálculos:

z1 = f l(1 + 10000) = 0.1 × 105 z2 = 0.1 × 105 × 0.1 × 105 = 0.1 × 109
z3 = −10−8 = −0.1 × 10−7
|−9.999000099990002×10−9 −(−10−8 )|
Erro relativo:
|−9.999000099990002×10−9 |
= 10−4 = 0.01%
Este exemplo ilustra a noção de instabilidade numérica (de um algoritmo).

13. Considere uma máquina de calcular que usa o sistema de ponto utuante

F := PF(10, 6, −30, 30) com arredondamento simétrico.

Ao calcular vários valores f (x) de uma função f nessa máquina usando o algoritmo

z 1 = x2 , z2 = z1 − 1, z3 = z2 , z4 = x − z3 ,
vericou-se que, para valores de x muito grandes, o erro relativo era elevado.

6
(a) Identique a função f.
(b) Verique que o erro é 100% para f (2000.0045) calculado em F pelo algoritmo dado.

(c) Qual a razão desse erro relativo elevado: o problema é mal condicionado ou há insta-
bilidade numérica? Justique.

(d) Apresente uma forma de calcular f (x) que não apresente erros relativos tão elevados
quando x é muito grande.

14. Pretende-se calcular z = ln(x) − ln(y), para x ≃ 2y e x ≫ 1, no sistema de ponto utuante


PF(10, 3, −30, 30), com arredondamento simétrico.

(a) Mostre que o problema é bem condicionado.

Sugestão: Calcule os pesos:

1
pf,1 (x, y) = , pf,2 (x, y) = ...
ln(x) − ln(y)

Se x ≃ 2y tem-se pf,1 (x, y) = ... e pf,2 (x, y) = ...


(b) Considerando x = 6.9205 × 106 e y = 3.4572 × 106 , calcule z neste sistema, assim como
o erro relativo do resultado obtido.

Solução:
z = x − y = 3.4633 × 106 ,
z̃ = f l(f l(x) − f l(y)) = ...
|δz̃ | ≃ 0.000952 = 0.0952%

Exercícios de Testes e Exames resolvidos em Apontamentos de Matemática Com-


putacional de Mário Graça e Pedro Lima, Dep. Mat., IST (Apêndice A).

Matéria Problema

Sistemas de ponto utuante, Erros A.2.3 - 1 a,b,c


A.2.9 - 1 a,b
A.2.12 - 1 a,b
A.2.31 - 1 a,b
A.2.35 - 1

Você também pode gostar