51
Atelier de Computação e Cultura da UFCG Marcelo Alves de Barros, Bruno C. N. Queiroz, J. Antão B. Moura José Eustáquio R. de Queiroz, Ulrich Schiel, Marcus Salerno Cálculo Numérico Erros Em Cálculo Numérico

Calc Numerico Erros UFCG

Embed Size (px)

Citation preview

Page 1: Calc Numerico Erros UFCG

Atelier de Computação e Cultura da UFCG Marcelo Alves de Barros, Bruno C. N. Queiroz, J. Antão B. Moura

José Eustáquio R. de Queiroz, Ulrich Schiel, Marcus Salerno

Cálculo Numérico

Erros Em Cálculo Numérico

Page 2: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

– Absoluto

– Relativo

Quanto menor for o erro, mais preciso

será o resultado da operação

Truncamento

Arredondamento

Page 3: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

• Erro Absoluto = Valor Exato – Valor Aproximado

EAx = x –

• Erro Relativo = Erro Absoluto / Valor Aproximado

ERx = (x – ) /

Obs.: Erro Porcentualx = ERx x 100

x

xx

Page 4: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Em geral, não é possível obter EAx, pois não se conhece x.

A solução é obter um limitante superior ou uma

estimativa do erro absoluto. |EAx| = |x - | < limitante superior

EX. 01: Para (3.14 ,3.15)

|EA | = | | < 0.01

x

ππ

Page 5: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Ex. 04: Para = 2112,9 com |EAx| < 0.1

temos x (2112,8, 2113),

Para = 5.3 com |EAx| < 0.1

temos y (5.2,5.4)

Temos mesmos limitantes superiores. Pode-se

afirmar que x e y são representados com a mesma

precisão?

É preciso comparar a ordem de grandeza de x e y.

x

y

Page 6: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Dependendo da ordem de grandeza o erro

absoluto não é suficiente para descrever a

precisão de um cálculo.

Erro Relativo

Page 7: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Ainda, no Ex. 04:

Para = 2112,9 com |EAx| < 0.1

|ERx| = |x - | / | | = 0.1/2112.9 4.7 x 10-5

Para = 5.3 com |EAx| < 0.1

|ERy| = |y - | / | | = 0.1/5.3 0.02

Mostramos que X é representado com maior precisão que y

x

y

yy

xx

Page 8: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Ex. 05: Seja: calcular em uma máquina digital

Não existe uma forma de representar um número

irrracional com um número finito de algarismos.

Portanto, o número apresentado pela

calculadora é uma aproximação do valor real de

= 1,4142136 (ao invés de 1,41421356....). O erro

introduzido é chamado erro de arredondamento

2

2

Page 9: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Ex. 06: Seja: calcular o valor de .

Sabemos que a exponencial é uma função que

pode ser representada por uma série infinita,

.....4!

x

3!

x

2!

xx1e

432x

xe

Page 10: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

na prática, é impossível calcular seu valor

exato. Tem que se fazer uma aproximação, que

levará a um erro no resultado final de ex. O erro

introduzido é chamado erro de truncamento.

.....4!

x

3!

x

2!

xx1e

432x

Page 11: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Em um sistema que opera em ponto flutuante de t dígitos, na base 10.

Erro de truncamento (e=dígitos inteiros):

e

Erro de arredondamento:

e

te

x 10EA 1t

x 10ER

1t

x 102

1ER

te

x 102

1EA

Page 12: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Demonstração: Erros de Arredondamento e de truncamento

Em um sistema que opera em ponto flutuante de t dígitos, na base 10,

Seja: x = fx x10e + gx x10e-t onde 0.1fx 1 e 0.1gx1

Ex.:Para t = 4 e x = 234.57, então

x = 0.2345 x 103 + 0.7 x 10-1,

temos fx = 0.2345 e gx = 0.7

Page 13: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

No truncamento gx x10e-t é desprezado e

Temos:

visto que gx<1

,

pois 0.1 é o menor valor possível para fx

tete

xx 1010gxxEA

e

x 10fx

1t

e

te

e

x

te

xx

x 10100.1

10

10f

10gEAER

x

Page 14: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

No arredondamento tipo simétrico (forma mais utilizada):

se, (gx é desprezado)

se, (soma “1” ao último

dígito de fx)

tee

x

e

x

1010f

10f

x

2

1g x

2

1g x

Page 15: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Se , teremos

2

1g x

1t

e

te

e

x

te

xx

x 102

1

100.1

105.0

10f

10gEAER

x

tete

xx 102

110gxxEA

Page 16: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Erros – Arredondamento

Se

e

2

1g x

tee

x

te

x

e

xx 1010f10g10fxxEA

1t

e

te

e

te

e

x

tex

x 102

1

101.0

102/1

10fx

102/1

1010f

102/1

x

EAER

te

tetete

xx 102

1te101gx1010gEA

Page 17: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Cenário: sistema de aritmética de ponto flutuante

de 4 dígitos, precisão dupla.

Ex. 07: Seja x = 0.937 x 104 e y = 0.1272 x 102 .

Calcular x + y.

Geralmente, o resultado exato de uma operação (OP) é normalizado e arredondado ou truncado para t dígitos - (OP)ª

Page 18: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Alinhar os pontos decimais antes da soma (A

adição aritmética de PF requer o alinhamento dos

pontos decimais dos dois números)

x = 0.937 x 104 e y = 0.001272 x 104,

x+y = 0.938272 x 104

Resultado com 4 dígitos

Arredondamento : (X+Y)a = 0.9383 x 104

Truncamento: (X+Y)a = 0.9382 x 104

Page 19: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Arredondamento : (X.Y)a = 0.1192 x106 Truncamento: (X.Y)a = 0.1191 x106

Mesmo que as parcelas ou fatores de uma operação

possam ser representados exatamente no sistema, não

se pode esperar que o resultado armazenado seja

exato. No exemplo, x e y tinham representação exata,

mas o resultado x+y teve representação aproximada

Page 20: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Propagação

Page 21: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Ex. 08: Seja: calcular o valor de - e3

(erro de arredondamento)

e3 (erro de truncamento)

Os erros nos valores de e e3

se propagam para o resultado de - e3

Page 22: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Ao se resolver um problema numericamente, a cada etapa e

a cada operação realizada, devem surgir diferentes tipos de

erros gerados das mais variadas maneiras, e estes erros se

propagam e determinam o erro no resultado final obtido.

Conhecer os efeitos da propagação de erros é muito

importante pois, além de determinar o erro final de uma

operação numérica, pode-se conhecer a sensibilidade de

um determinado problema ou método numérico.

Page 23: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Ex.09: Dados a = 50 ± 3 e b = 21 ± 1 ,

Calcular: a + b, a – b e a x b

a pode variar de 47 a 53

b pode variar de 20 a 22.

• O menor valor da soma seria 47 + 20 = 67 e o maior valor seria 53 + 22 = 75.

Logo, a + b = (50 + 21) ± 4 = 71 ± 4, variando de 67 a 75.

Page 24: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Ex.09: Dados a = 50 ± 3 e b = 21 ± 1 ,

a pode variar de 47 a 53

b pode variar de 20 a 22.

O menor valor da subtração seria 47 – 22 = 25 e o

maior valor da subtração seria 53 – 20 = 33. Logo, a – b = (50 – 21) ± 4 = 29 ± 4 , variando de 25 a 33.

Observe que na subtração, os erros absolutos se somam, pois

sempre se admite o pior caso; nunca se subtraem erros, contando

com a sorte; prevê-se, sempre, o caso mais desfavorável

Page 25: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Ex.09: Dados a = 50 ± 3 e b = 21 ± 1 ,

a pode variar de 47 a 53

b pode variar de 20 a 22.

O menor valor do produto seria 47 x 20 = 940 e o maior valor do produto seria 53 x 22 = 1166.

Logo, a x b = (50 ± 3) x (21 ± 1) 1050 ± (3 x 21 + 50 x 1) 1050 ± 113. Despreza-se o produto 3 x 1, por ser muito pequeno diante de (3 x 21 + 50 x 1 ) = 113. Assim, o produto ficaria entre 937 e 1163,

ligeiramente diferente do verdadeiro intervalo, exatamente pelo abandono do produto 1 x 3, considerado desprezível

Page 26: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Análise de Erros nas Operações Aritméticas de

Ponto Flutuante

O erro total em uma operação aritmética é

composto pelo erro das parcelas ou fatores e

pelo erro no resultado da operação.

Page 27: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Operações Aritméticas em PF – Erros Absolutos

yxyx EAEAyxEAyEAxyx

yyx EAEAyxEAyEAxyx x

Page 28: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Operações Aritméticas em PF – Erros Absolutos

yxyxyx EAx.EAEAxEA.yy.xEAy.EAxy.x

yxyx EAxEA.yy.xEAy.EAxy.x

muito pequeno

Page 29: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Operações Aritméticas em PF – Erros Absolutos

y

EA1

1.

y

EAx

EAy

EAx

y

x

y

x

y

x

2

yx

2

x

y

EAyEA.y

y

EAyx

y

EA

y

x

y

x

................y

EA

y

EA

y

EA1

y

EA1

13

y

2

yy

y

(despreza-s os termos de potência >1)

Simplificação:

Page 30: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Operações Aritméticas em PF – Erros Relativos

Soma:

Subtração:

yx

yER

yx

xER

yx

EAER yx

yx

yx

yx

yER

yx

xER

yx

EAEAER yx

yx

yx

Page 31: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Operações Aritméticas em PF – Erros Relativos

Multiplicação:

Divisão:

yxy.x ERERER

yxx/y ERERER

Page 32: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Cenário: sistema de aritmética de ponto flutuante

de 4 dígitos, precisão dupla.

Ex.10: Seja x = 0.937 x 104 e y = 0.1272 x 102

Calcular x + y e ER(x+y)sabendo que x, y estão

exatamente representados.

Page 33: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Solução:

Alinhar os pontos decimais antes da soma

x = 0.937 x 104 e y = 0.001272 x 104,

x+y = 0.938272 x 104

Resultado com 4 dígitos

Arredondamento : = 0.9383 x 104

yx

Page 34: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Cálculo de ER(x+y)

Temos:

Como x e y são representados exatamente, ERx+y se resume ao Erro Relativo de Arredondamento (RA) no resultado da soma.

RAER

RAyx

EAER

yx

yx

yx

EAx=EAy= 0, Eay+y=0

1t

yx 102

1RAER

Page 35: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Oficina

Seja x = 0.937 x 104 e y = 0.1272 x 102

Calcular x - y e ER(x-y)sabendo que x, y e estão

exatamente representados.

Page 36: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Ex.11: Seja x = 0.937 x 104 e y = 0.1272 x 102

Calcular x . y e ER(x+y)sabendo que x, y e estão exatamente representados.

Page 37: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Solução: x.y = (0,937 x 104 )x(0,1272 x 102 ) = 0,1191864 x 106

6100,1192y.x

RARAy.x

EAER

y.x

y.x Temos:

(arredondamento)

1t

yx 102

1RAER

Page 38: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Oficina

Seja x = 0.937 x 104 e y = 0.1272 x 102

Calcular x / y e ER(x/y)sabendo que x, y e estão exatamente representados.

Page 39: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Oficina:

Seja x = 0,937x104 y = 0,1272x102 e z = 0,231x101

Calcular x + y+z e ER(x+y+z)sabendo que x, y e z estão exatamente representados.

Solução:

Alinhando as vírgulas decimais

x = 0.937x104 y = 0.001272x104 e z=0,000231

A soma é feita por partes: (X+Y)+Z

Page 40: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

No Ex 10 encontramos: x+y = 0.9383 x 104 e Calcular w = x + y+ z? e ER(x+y+z)? Seja s= x+y s+z= 0,9383 x 104 + 0,000231 x 104 = 0,938531x 104 s+z= 0,9385x 104 (arredondamento)

1t

yx 102

1RAER

x+y+z= 0,9385x 104

Page 41: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros Erros – Análise

Temos: EAz=0,

ERz=0

1zs

s

zs

sER

zs

sERER

zs

zER

zs

sERER

szs

szs

szs

RARARA

RA

RAz

1t

zs 102

11

zs

sER

Page 42: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

1t

zs 102

11

zs

sER

3

10

2

11

100,9385

100,9383ER

4

4

zs

3

zs 100,9998ER

Page 43: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Ex.12:

Supondo que x é representado num computador por , que é obtido por arredondamento. Obtenha os limites superiores para os erros relativos de

x

x2.u x x w e

Page 44: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Solução:

1t

u 10ER

1t

x2.

x2x2.

102

12.ER

RA2.RARARAERERER

Temos:

a) x2.u

Page 45: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

x x w b)

RAxx

xER

xx

xERER

xxw

RA2.RAxx

xRA2.ER w

1t1t

w 10102

12.RA2.ER

1t

uw 10ERER Então:

Page 46: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Oficina

II.1- Seja um sistema de aritmética de ponto flutuante de quatro dígitos,

sem circuito arredondador, base decimal e com acumulador de precisão

dupla. Dados os números:

X=0,7237x104 y=0,2145x10-3 e z=0,2585x101

Efetue as seguintes operações e obtenha o erro relativo no resultado,

supondo que x, u, e z estão exatamente representados.

a)x+y+z b)x-y-z c)x/y

d)(x.y)/z e)x.(y/z) f) (x+y).z

Page 47: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

II.02- Supondo que x é representado num computador por , onde é obtido por arredondamento, obtenha os limites superiores para os erros relativos de

x

x3.u x x x w

II.03- Idem para

x.u 4 x x x x w e

e

x

Page 48: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

II-04: Sejam e as representações de x e y obtidas por arredondamento em um computador. Deduza expressões de limitante de erro para mostrar que o limitante de erro relativo de

x y

é menor do que o de y. x x x v y. x 3. u

Page 49: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Etapas de um cálculo numérico envolvendo dois números A e B

representados em sistema de ponto flutuante.

1. A é transferido da memória ou da unidade E/S para uma entrada do acumulador

(ULA).

2. B é transferido da memória ou da unidade E/S para a outra entrada do

acumulador (ULA). .

3. O acumulador normaliza número com expoente menor da base para ambos

ficarem com o mesmo expoente maior de base e realiza a operação. O número

resultante é transferido para a saída do acumulador com a precisão do mesmo

(dupla, tripla, etc).

4. Número resultante é adaptado (truncado ou arredondado) para o limite do

sistema de vírgula flutuante do computador e é transferido para a memória.

5. Se houver uma nova operação, o computador repete os passos 1 a 4.

6. O resultado final do conjunto de operações é transferido para a unidade de E/S

(para o usuário do software de cálculo numérico)

,

Page 50: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

E/S Memória

ULA

1 2

3

5

4

+ ,

1. A é transferido da memória ou da

unidade E/S para uma entrada do

acumulador (ULA).

2. B é transferido da memória ou da

unidade E/S para a outra entrada do

acumulador (ULA). .

3. O acumulador normaliza número com

expoente menor da base para ambos

ficarem com o mesmo expoente maior

de base e realiza a operação. O número

resultante é transferido para a saída do

acumulador com a precisão do mesmo

(dupla, tripla, etc).

4. Número resultante é adaptado (truncado

ou arredondado) para o limite do sistema de

vírgula flutuante do computador e é

transferido para a memória.

5. Se houver uma nova operação, o

computador repete os passos 1 a 4.

6. O resultado final do conjunto de operações

é transferido para a unidade de E/S (para o

usuários do software de cálculo numérico)

Page 51: Calc Numerico Erros UFCG

Cálculo Numérico

Estudo de Erros

Oficina

1. Desenhe um sistema computacional de aritmética de ponto flutuante de

quatro dígitos, sem circuito arredondador, com base decimal e com

acumulador de precisão dupla.

2. Indique no seu projeto arquitetural com um * o local exato da fonte de erros

por restrição física deste sistema e justifique esta fonte.

3. Dados os números:

X=0,7237x104 y=0,2145x10-1 e z=0,2585x101 +- 0,00071

Efetue a seguinte operação e obtenha o erro relativo no resultado, supondo que

x e y estão exatamente representados.

s = x+y+z+ 2.y