Sunteți pe pagina 1din 74

Clculo Numrico

Teoria dos Erros

Prof. Wellington Passos de Paula


wpassos@gmail.com

Programa
1. Conceitos Bsicos
a) Representao de nmeros
b) Converso de nmeros
c) Aritmtica de ponto flutuante

2. Erros
a) Erros absolutos e relativos
b) Erros de arredondamento e truncamento
c) Anlise de erros

Clculo Numrico
Teoria dos Erros Conceitos Bsicos

Prof. Wellington Passos de Paula


wpassos@gmail.com

Representao de nmeros
Sistema Decimal (10)
10 dgitos disponveis [0,1,2, ... ,9]
Posio indica potncia positiva de 10
5432 = 5x103 + 4x102 + 3x101 + 2x100

Sistema Binrio (2)


2 bits disponveis [0,1]
Posio indica potncia positiva de 2
1011 na base 2 = 1x23 + 0x22 + 1x21 + 1x20
8+0+2+1 = 11 na base decimal

Representao de nmeros
Frmula Geral
Base

k = i,..., j :

, (a j a j 1...a2 a1a0 ) , 0 ak ( 1)

a j j + a j 1 j 1 + ... + a2 2 + a1 1 + a0 0

Representao de nmeros
Representao Nmeros Fracionrios
Base Decimal (10)
Posio da parte inteira indica potncia positiva de 10
Potncia negativa de 10 para parte fracionria
54,32 = 5x101 + 4x100 + 3x10-1 + 2x10-2
Base Binria (2)
Posio da parte inteira indica potncia positiva de 2
Potncia negativa de 2 para parte fracionria
10,11 na base 2 = 1x21 + 0x20 + 1x2-1 + 1x2-2
2+0+1/2+1/4 = 2,75 na base decimal

Outros sistemas de numerao


Maior interesse em decimal (10)
Nossa anatomia e cultura
Binrio (2) uso nos computadores

Outros Sistemas
Octal (8), {0,1,2, ... , 7}
Hexadecimal (16), {0,1,2, ... , 9, A,B,C,D,E,F}
Dodecimal (relgio, calendrio)

Alguns sistemas numricos

Converso de nmeros - inteiros


Binrio para decimal
J visto

Inteiro decimal para binrio


Diviso inteira (do quociente) sucessiva por 2, at que
este seja = 0 ou 1
Binrio = composio do ltimo quociente (Bit Mais
Significativo BMS) com restos (primeiro resto bit
menos significativo bms)
Em ingls, Most Significant Bit MSB e least significat bit
lsb, respectivamente.

Converso de nmeros - inteiros


Exemplo: Converter 25 decimal para binrio
25 / 2 = 12 (quociente) e resto 1 = bms
12 / 2 = 6 (quociente) e resto 0
6 / 2 = 3 (quociente) e resto 0
3 / 2 = 1 (ltimo quociente=BMS) e resto 1
Binrio = BMS ... bms = 1 1 0 0 1
11001 = 1x24 + 1x23 + 0x22 + 0x21 + 1x20 =
16 + 8 + 0 + 0 + 1 = 25 decimal

Converso de inteiros entre sistemas


Procedimentos Bsicos
Divises sucessivas pela base do sistema para o qual se
deseja converter o nmero
Decomposio polinomial do nmero a ser convertido
Agrupamento de bits

Converso de inteiros entre sistemas

Converso de inteiros entre sistemas


(1011110010100111)2 = ( ? )16

(A79E)16 = ( ? )2

Converso de frao
Operao inversa: multiplicar parte fracionria por 2 at
que parte fracionria do resultado seja 0 (zero)
X,XXX
Bits da parte fracionria do nmero binrio so obtidos
das partes inteiras geradas aps as multiplicaes do
nmero fracionrio na base 10
X,XXX
Bit imediatamente direita da vrgula = Parte inteira da
primeira multiplicao
No h inverso na ordem dos bits encontrados

Converso de frao
Exemplo: converter 0,625 decimal para binrio
0,625 x 2 = 1,25, logo a primeira casa fracionria 1;
nova frao (resto) 0,25 (agregamos o bit 1 ao
nmero na base 2)
0,25 x 2 = 0,5 segunda casa 0;
nova frao (resto) 0,5 (pois j agregamos o bit 0 ao
numero na base 2)
0,5 x 2 = 1,0 terceira casa 1;
nova frao (resto) 0,0 (pois j agregamos o bit 1 ao
numero na base 2)
Resultado: 0,62510 = 0,1012

Converso partes inteira e fracionria


juntas
Para converter um nmero com parte inteira e parte
fracionria, fazer a converso de cada parte,
separadamente

Converso partes inteira e fracionria


juntas
(8,375)10 = ( ? )2

Exerccios
Transforme em binrio:
5,8
Resposta 5,8 = 101,11001100... , uma dzima.
11,6
Resposta 11,6 = 1011,10011001100...
a vrgula foi deslocada uma casa para a direita,
pois 11,6 = 2 x 5,8

Aritmtica de ponto flutuante


Representao pode variar (flutuar) a posio da
vrgula, ajustando potncia da base.
54,32 = 54,32 x 100 = 5,432 x 101 = 0,5432 x 102 =
5432,0 x 10-2

Forma normalizada usa um nico dgito antes da


vrgula, diferente de zero
Exemplo: 5,432 x 101

Aritmtica de ponto flutuante


No sistema binrio:
110101 = 110,101x23 = 1,10101x25 = 0,0110101x27
No caso dos nmeros serem armazenados em um
computador, os expoentes sero tambm gravados na
base dois
Como 310 = 112 e 7=1112
110,101 x (2)11 = 1,10101x(2)101 = 0,0110101x(2)111

Na representao normalizada, h apenas um 1


antes da vrgula
Exemplo: 1,10101x(2)101

Aritmtica de ponto flutuante


Algumas definies
No nmero 1,10101x(2)101 , tomado como referncia:
1,10101 = significando (ou mantissa)
101 = expoente

Observao
A base binria no precisa ser explicitada (o computador
usa sempre a mesma)
O 1 antes da vrgula, na representao normalizada se
esta for adotada, tambm pode ficar implcito,
economizando um bit (bit escondido).

Representao aritmtica de ponto


flutuante no computador

(.d1d 2 ...d t ) e
onde:

a base em que o computador opera;

o nmero de dgitos na mantissa

0 d j ( 1), j = 1,..., t , d1 0;
o expoente (inteiro com sinal)

Representao aritmtica de ponto


flutuante no computador
O nmero de bits disponveis para representar os
nmeros no computador no infinito
O padro IEEE 754 para ponto (vrgula) flutuante a
representao mais comum para nmeros reais em
computadores de hoje, incluindo PC's compatveis com
Intel, Macintosh, e a maioria das plataformas Unix/Linux.
O padro (ou norma) IEEE 754 define dois formatos
bsicos para os nmeros em ponto flutuante:
O formato ou preciso simples, com 32 bits; e,
O duplo com 64 bits

Padro IEEE 754 para floats

Sinal: 0 = + e 1 = Combinaes: Sinal + Expoente + Mantissa

Limitaes na representao de floats


A quantidade finita de bits na representao pode
implicar nos seguintes erros:
Truncamento ou Arredondamento
Overflow
Underflow

Limitaes na representao de floats


Exemplo: Mquina no seguinte sistema:

= 10; t = 3; e [ 5, 5].
Logo o formato dos nmeros nesse sistema:

0. d1d 2 d 3 10e , 0 d j 9, d1 0, e [ 5, 5]
Menor valor representado:

m = 0.1000 10 5 = 10 6

Maior valor representado:

M = 0.999 105 = 99900

Limitaes na representao de floats


Situaes possveis:
a)

x. = 235.89 = 0.23589 103


Nmero contm 5 digitos na mantissa
Possveis Solues:

0.235 103
Arredondamento: 0.236 103
Truncamento:

Assunto do prximo tpico

Limitaes na representao de floats


Situaes possveis:
7
b) x. = 0.345 10
Expoente no pode ser representado na mquina pois
menor que o mnimo (-5)
Erro de underflow
c)

.x = 0.875 109
Expoente no pode ser representado na mquina pois
maior que o mximo (5)
Erro de overflow

Clculo Numrico
Teoria dos Erros Erros

Prof. Wellington Passos de Paula


wpassos@gmail.com

Erros - Tipos
Preciso
Absoluto
Relativo

Representao
Arredondamento
Truncamento

Erro Absoluto
Diferena entre o valor exato de um nmero e o seu
valor aproximado (em mdulo)

EAx = |x x |

Erro Absoluto - Consideraes


EAx s poder ser determinado se x for conhecido
com exatido
Na prtica, costuma-se trabalhar com um limitante
superior para o erro, ao invs do prprio erro ( |E |
< , sendo o limitante)
Ex: Para (3,14; 3,15)

EA = - <0,01

Erro Absoluto - Consideraes


Ex.: Sejam a = 3876,373 e e = 1,373
Considerando-se a parte inteira de a como o erro
absoluto ser:

EAa = a a = 0,373
e a parte inteira de e, , o erro absoluto ser:

EAe = e e = 0,373

Erro Absoluto - Consideraes


Obviamente, o resultado do erro absoluto o mesmo
nos dois casos
Podemos ento dizer que a e e esto representados
com a mesma preciso?
No, pois o peso da aproximao em e maior do que
em a

Erro absoluto no suficiente para descrever a preciso


de um clculo

Erro Relativo
Razo entre o erro absoluto e o valor aproximado do
nmero considerado (em mdulo)

|x x |
ERx =
|x |

Erro Relativo - Consideraes


O erro relativo pode, entretanto, traduzir perfeitamente
este fato, pois:

0,373
ERa =
0,000096 10 4
3876

0,373
ERe =
0 ,373 5 10 1
1
ERx x 100 = Erro Percentual

Erro Relativo - Consideraes


Ex. : Clculo do erro relativo na representao dos
nmeros = 2112,9 e = 5,3, sendo |EA| < 0,1

ERa =

ERe =

aa
a
ee
e

0,1
=
4,7 10 5
2112,9
0,1
=
0,02
5,3

Concluso: a representado com maior preciso do que e

Erros de Arredondamento
Ex. Clculo de 2 utilizando uma calculadora digital
Valor apresentado: 1,4142136
Valor real: 1,41421356...
Inexistncia de forma de representao de nmeros
irracionais com uma quantidade finita de algarismos
Apresentao de uma aproximao do nmero pela
calculadora
Erro de Arredondamento

Erros de Truncamento
Descarte dos dgitos finais de uma representao exata
por limitaes de representao em vrgula flutuante
Ex.: Representao truncada de 2 em vrgula
flutuante com 7 dgitos
Valor apresentado: 1,4142135
Valor real: 1,41421356...

Representao aritmtica de ponto


flutuante no computador Relembrando...

(.d1d 2 ...d t ) e
onde:

a base em que o computador opera;

o nmero de dgitos na mantissa

0 d j ( 1), j = 1,..., t , d1 0;
o expoente (inteiro com sinal)

Erros de Arredondamento e Truncamento


Erros de Truncamento e Arredondamento em um
sistema de aritmtica de ponto flutuante:
Em um sistema que opera em ponto flutuante de t dgitos
na base 10, e seja x:
x = fx x 10e + gx x 10e-t (0,1 fx < 1 e 0,1 gx <1)
Para t = 4 e x = 234,57, logo:
x = 0,2345 x 103 + 0,7 x 10-1
fx = 0,2345
gx = 0,7

Para t = 5 e x = 1234,568, logo:


x = 0,12345 x 104 + 0,68 x 10-1
fx = 0,12345
gx = 0,68

Erros - Truncamento
No truncamento, gx x 10e-t desprezado e

x = f x 10 + g x 10
e

e t

x = f x 10

EAx = x x = f x 10 e + g x 10 e t f x 10 e

EAx = g x 10 e t < 10 e t , visto que |gx| < 1

ERx =

EAx
x

g x 10 e t
f x 10 e

10 e t
10 e t
t +1
<
=
=
10
0,1 10 e 1,0 10 1 10 e

pois 0,1 o menor valor possvel para fx

Erros Arredondamento
No arredondamento simtrico (forma mais utilizada):

f x 10

x=
f 10 e + 10 e t
x
e

, se

1
gx <
2

(gx desprezado)

, se

1
gx
2

(soma 1 ao ltimo

dgito de fx)

Erros - Arredondamento

1
Se g x <
, ento:
2
EAx = x x = f x 10 e + g x 10 e t f x 10 e
EAx = g x 10
ERx =

EAx
x

e t

1
< 10 e t , visto que |gx| < 1/2
2

g x 10 e t
f x 10 e

0,5 10 e t
1 / 2 10 e t
1
t +1
<
=
=

10
0,1 10 e 1,0 10 1 10 e 2

Erros Arredondamento
1
Se g x , ento:
2

) (

EAx = x x = f x 10 e + g x 10 e t f x 10 e + 10 e t
EAx = g x 10

e t

10

e t

= ( g x 1) 10

e t

e
1/2 10 et
1/2 10 et
ERx =

<
e
e t
f x 10 e
f x 10 + 10
x
EAx

1/2 10 et
1/2 10 et
1
t + 1
ERx <
=
=

10

e
1
e
0,1 10
1,0 10 10 2

1
10 e t
2

Arredondamento e Truncamento
Erros de Truncamento e Arredondamento em um
sistema de aritmtica de ponto flutuante:
Sistema operando em ponto flutuante - Base 10
Erro de Truncamento

EAx < 10

e t

ERx < 10 t +1

Erro de Arredondamento

1
EAx 10 e t
2

1
ERx < 10 t +1
2

Arredondamento gera erros menores, mas aumenta o


tempo de execuo
uso do Truncamento

Anlise de Erros
Sistema de aritmtica de ponto flutuante de 4 dgitos,
preciso dupla
Ex.: Seja x = 0,937 x104 e y = 0,1272 x102.
Calcular x+y.
Alinhamento dos pontos decimais antes da soma ( Alinhar
sempre para o maior expoente dentre os operadores )
x = 0,937 x 104 e y = 0,001272 x 104,
x+y = 0,937 x 104 + 0,001272 x 104,
x+y = 0,938272 x 104
Resultado com 4 dgitos
Arredondamento:

x+y = 0,9383 x 104

Truncamento:

x+y = 0,9382 x 104

Anlise de Erros
Sistema de aritmtica de ponto flutuante de 4 dgitos,
preciso dupla
Ex. : Seja x = 0,937 x 104 e y = 0,1272 x102. Calcular x.y
x.y = (0,937 x 104) x (0,1272 x 102)
x.y = (0,937 x 0,1272) x 106 x.y = 0,1191864 x 106
Resultado com 4 dgitos
Arredondamento:

x.y = 0,1192 x 106

Truncamento:

x.y = 0,1191 x 106

Anlise de Erros
Consideraes
Ainda que as parcelas ou fatores de uma operao
possam ser representados exatamente no sistema, no se
pode esperar que o resultado armazenado seja exato.
x e y tinham representao exata, mas os resultados x+y
e x.y tiveram representao aproximada.
Durante as operaes aritmticas de um mtodo, os erros
dos operandos produzem um erro no resultado da
operao
Propagao ao longo do processo

Anlise de Erros Propagao


Ex. : Sejam as operaes a seguir processadas em
uma mquina com 4 dgitos significativos e, fazendose: a = 0,3491 x 104 e b = 0,2345 x 100.
(b + a) a = b + (a a) ?
Observao: Alinhar sempre para o maior expoente
dentre os operadores.
(b + a) a = (0,2345 x100+0,3491x104) 0,3491x104 =
(0,00002345 x104+0,3491x104) 0,3491x104
(0,34912345 x104) 0,3491x104 (arredodamento)
0,3491 x 104 0,3491 x104 = 0,0000
b + (a a) = 0,2345x100 + (0,3491 x 104 0,3491x104)=
0,2345 x 100 +(0,0000 x 104)= 0,2345 x 100

Anlise de Erros Propagao


Os dois resultados so diferentes, quando no
deveriam ser.
(b + a) a = 0,0000 e b + (a a) = 0,2345 x 100
Causa
Arredondamento da adio (b + a), a qual tem 8 dgitos
A mquina s armazena 4 dgitos (desprezando os
menos significativos)

Anlise de Erros Propagao


Resoluo numrica de um problema
Importncia do conhecimento dos efeitos da propagao
de erros
Determinao do erro final de uma operao
Conhecimento da sensibilidade de um determinado
problema ou mtodo numrico

Anlise de Erros Propagao


Anlise dos Erros Absoluto e Relativo
Expresses para o determinao dos erros nas
operaes aritmticas
Erros presentes na representao das parcelas ou
fatores, assim como no resultado da operao
Supondo um erro final arredondado, sendo x e y, tais que:

x = x + EAx e y = y + EAy

Anlise de Erros Propagao


Adio
Erro Absoluto

x + y = (x + EAx ) + (y + EAy ) =
(x + y) + (EAx + EAy )

EAx + y = EAx + EAy


Erro Relativo

ERx + y =

ERx + y

EAx + y
x+y

EAx + EAy
x+y

EAx x EAy

+
=
x x+y
y

EAy
EAx
=
+
=
x+y x+y

y
x
y

= ERx
+ ERy

x+y
x+y
x+y

Anlise de Erros Propagao


Subtrao
Erro Absoluto

x y = (x + EAx ) (y + EAy ) =
(x y) + (EAx EAy )

EAx y = EAx EAy


Erro Relativo

ERx y =

ERx y

EAx y
xy

EAx EAy
xy

EAx x EAy


=
x xy
y

EAy
EAx
=

=
xy xy

y
x
y

= ERx
ERy

xy
xy
xy

Anlise de Erros Propagao


Multiplicao
Erro Absoluto

x.y = (x + EAx ) ( y + EAy ) = x y + x EAy + y EAx + (EAx EAy )

x.y ( x + EAx ) ( y + EAy ) = x y + x EAy + y EAx

muito pequeno

EAx.y xEAy + yEAx


Erro Relativo

ERx.y =

EAx. y
xy

xEAy + yEAx

ERx.y = ERx + ERy

xy

xEAy

yEAx EAx EAy


=
+
=
+
xy
xy
x
y

Anlise de Erros Propagao


Diviso

Prova

Erro Absoluto

x (x + EAx ) (x + EAx ) 1
=
=

EAy
y ( y + EAy )
y
1+
y

y em evidncia:

1 1

EAy
y
1
+

y
1
1
= 1
=
y y + EAy y y + EAy

Simplificao::

x (x + EAx ) (x + EAx ) 1
=
=

EAy
y ( y + EAy )
y
1
+

EAy EAy EAy


1

+ ...
= 1
+
EAy
y
y
y

1+
y

(desprezam-se os termos de potncia >1)

x ( x + EAx ) EAy x EAx EAy


= +

1
y
y
y y
y
y

Anlise de Erros Propagao


Diviso
Erro Absoluto

x ( x + EAx ) EAy x EAx EAy


= +

1
y
y
y y
y
y

x x x EAy EAx EAx EAy


2 +

y y
y
y
y2
muito pequeno

x x EAx x EAy
+
2
y y
y
y

EAx / y

yEAx x EAy
y2

Anlise de Erros Propagao


Diviso
Erro Relativo

ERx/y =

EAx / y
x
y

y
= EAx / y
x

yEAx x EAy y
=

2
y

EAx EAy
ERx/y =

= ERx ERy
x
y

Anlise de Erros - Propagao


Erro Relativo da Adio Soma dos erros relativos de
cada parcela, ponderados pela participao de cada
parcela no total da soma.
x
y
+ ERy

ERx
x+y
x+y

Erro Relativo da Subtrao Diferena entre os erros


relativos do minuendo e do subtraendo, ponderados
pela participao de cada parcela no resultado da
subtrao.

x
y

ERy
ERx
xy
xy

Anlise de Erros - Propagao


Erro Relativo da Multiplicao
relativos dos fatores.

Soma dos erros

ERx.y = ERx + ERy


Erro Relativo da Diviso
dividendo e do divisor

Soma dos erros relativos do

ERx/y = ERx ERy

Anlise de Erros - Propagao


Nos erros anteriormente formulados, ainda
consideramos o erro de arredondamento ou
truncamento no resultado final
A anlise completa da propagao do erro se faz
considerando os erros nas parcelas ou fatores e no
resultado de cada operao efetuada

Anlise de Erros - Propagao


Ex.: Dada a soma x+y (x e y representados exatamente),
faa o clculo de ER(x+y)

ERx + y =

EAx + y
x+ y

+ RA

ERx + y = RA
ERx + y

EAx= EAy = 0,
EAx+y = 0

1
= RA < 10 t +1
2

Como x e y so exatamente representados, ERx+y se


resume ao Erro Relativo de Arredondamento (RA) no
resultado da soma.

Anlise de Erros - Propagao


Sistema de aritmtica de ponto flutuante de 4 dgitos,
preciso dupla
Ex.: Seja x = 0,937 x104, y = 0,1272 x102 e
z = 0,231 x101, calcular x+y+z e ER(x+y+z), sabendo
que x, y e z esto exatamente representados.
Soluo:
Alinhando as vrgulas decimais ( Alinhar sempre
para o maior expoente dentre os operadores ) :
x = 0,937000 x104
y = 0,001272 x104 e
z = 0,000231 x104

Anlise de Erros - Propagao


Ex.: Seja x = 0,937 x104, y = 0,1272 x102 e
z = 0,231 x 101, calcular x+y+z e ER(x+y+z), sabendo
que x, y e z esto exatamente representados.
Soluo:
A soma feita por partes: (x+y)+z
x+y = 0,937000 x104 + 0,001272 x104
x+y = 0,938272 x104 (arredondamento)
x+y = 0,9383 x 104 = s
s+z = 0,9383 x 104 + 0,000231 x 104
s+z = 0,938531 x 104 (arredondamento)
x+y+z = 0,9385 x 104

Anlise de Erros - Propagao


Soluo:
s = x+y = ento s = x + y = 0,9383 x 104

x
y
+ RAs
+ ERy
ERs = ERx

x
+
y
x
+
y

ERs = RAs

ERx + y + z = ERs + z + RA
ERx + y + z

s
z

+ RA
= ERs
+
ER
z

s+z
s
z
+

EAx=EAy=0,
ERx+y=0

Anlise de Erros - Propagao


Soluo:

ERx + y + z

s
z
+ ERz
+ RA
= ERs

s+z
+
s
z

ERx + y + z

x+ y

+ RA
= ERs
+ ERz

x+ y+ z
x+ y+ z

ERx + y + z

x+ y
+ RA
= ERs

x+ y+z

ERx + y + z

x+ y

x+ y

+ RA = RA
+
1
= RAs

x
+
y
+
z
x
+
y
+
z

EAz=0,
ERz=0

Anlise de Erros - Propagao


Soluo:
ERx + y + z

x+ y
x+ y

= RAs
+ RA = RA
+ 1

x+ y+z
x+ y+ z

ERx + y + z

x+ y
1

<
+ 1 10 t +1
x+ y+z
2

ERx + y + z

0,9383 10 4
1
3

<
+
1

10
4
2
0
,
9385
10

ERx + y + z < 0,9998.10 3

Anlise de Erros - Propagao


Ex. : Supondo que u representado em um
computador por , que obtido por arredondamento.
Obter os limites superiores para os erros relativos de
v = 2 e w = + .

Anlise de Erros - Propagao


Ex. :
Soluo:

v = 2u
ER2u = ER2 + ERu + RA = RA + RA = 2 RA
ER2u

1
t +1
< 2 10
2

ERv < 10

t +1

Anlise de Erros - Propagao


Ex. :
Soluo:

w = u +u

u
u
+ ERu
+ RA
ERw = ERu

u
+
u
u
+
u

u
+ RA
ERw = 2 RA

+
u
u

u
ERw = 2 RA + RA = 2 RA
2u
1
ERw < 2 RA < 2 10 t +1 = 10 t +1
2

ERw = ERv < 10 t +1

Erros Exerccio 1
Seja um sistema de aritmtica de ponto flutuante de 4
dgitos, base decimal e com acumulador de preciso
dupla. Dados os nmeros x = 0,7237x104, y = 0,2145 x103
e z = 0,2585 x101, efetuar as seguintes operaes e
obter o erro relativo nos resultados, supondo que x, y, e z
esto exatamente representados.
a) x+y+z

b) x/y

c) (xy)/z

Erros Exerccio 2
Considere uma mquina cujo sistema de representao
de nmeros definido por b=10, t=5, -7<e<7.
Pede-se:
a) O maior e menor nmero em mdulo, representados
nesta mquina?
b) Como ser representado o nmero 392,856 nesta
mquina, se for usado o arredondamento e o
truncamento?
c) Se a=356555 e b=2, qual o resultado da
operao a+b?

Erros Exerccios Complementares Livro


Capitulo 1
1, 2, 3 (letras faltantes), 5, 9

Entrega dos Exerccios At dia 16/01/2013

S-ar putea să vă placă și