You are on page 1of 60

Clculo Numrico Conceitos Bsicos

Profs.: Bruno C. N. Queiroz J. Anto B. Moura Ulrich Schiel Maria Izabel C. Cabral

DSC/CCT/UFCG

Princpios usados em CN
Comuns anlise matemtica, C&T 1. Iterao ou aproximao sucessiva

Partindo-se de soluo aproximada, inicial, repetem-se mesmas aes/processos para refinar soluo inicial OBS: para evitar trabalho sem fim (e de graa), deve-se determinar se a iterao converge (nem sempre o caso...) e condies de parada

Princpios usados em CN
2. Discretizao

Na resoluo de problemas contnuos (aqueles definidos matematicamente com uma passagem ao limite), inverte-se a passagem ao limite, discretizando o problema Ex: e dx ~
x2

...

Princpios usados em CN
3. Aproximao

Substituir uma funo ou modelo por outro que oferea comportamento (de interesse) semelhante, mais simples de manipular f(x) g(x) Ex: assntotas ilustram comportamento no limite de uma funo (complexa) de interesse

Princpios usados em CN
4. Transformao

Dado um problema P, desmembra-se P em dois problemas mais simples de resolver, P1 e P2

rea de um trapzio por retngulo (P1) e tringulos (P2)

Princpios usados em CN
5. Diviso e Conquista

Resolver um problema P, por partes ou etapas

Exemplo anterior (rea do trapzio) Aulas nesta disciplina de CN

Sistemas de numerao

Representao no posicional

romanos

MDCCCXLIX e MMCXXIV Como seria MDCCCXLIX + MMCXXIV ?

Representao semi-posicional

hebraicos

1= ( aleph), 2= ( beth), 10= ( yod),

100= (kuph), 11= , 101= 15=( 9+6)

Sistemas de numerao

alemo

Vinte e um = ein-und-zwanzig
Noventa = quatre-vingt-dix

francs

Sistemas de numerao

Representao posicional

Base decimal (10)


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

Sistemas de numerao

Representao de inteiros

Base binria (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 Ou, melhor 1x23 + 0x22 + 1x21 + 1x20 = 1 + 2(1+2(0+2(1))) = 11

Sistemas de numerao

Representao de 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

Sistemas de numerao

Representao de nmeros fracionrios

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 + 1x22 = 2+0+1/2+1/4 = 2,75 na base decimal

Outros sistemas de numerao

Maior interesse em decimal (10)

Nossa anatomia e cultura Uso nos computadores Octal (8), {0,1,2, ... , 7} Hexadecimal (16), {0,1,2, ... , 9, A,B,C,D,E,F} Dodecimal (relgio, calendrio)

e binrio (2)

Outros sistemas

Alguns sistemas numricos


Decimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 . . . Binrio 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 . . . Octal 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 . . . Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F . . .

Converso de sistema ou base

Uma caixa aliengena com o nmero 25 gravado na tampa foi entregue a um grupo de cientistas. Ao abrirem a caixa, encontraram 17 objetos. Considerando que o aliengena tem um formato humanide, quantos dedos ele tem nas duas mos?

Converso de base

17 = 25 17 = 2xb1 + 5xb0 17 = 2b + 5 b = (17-5)/2 = 6

10 b

Converso de base

Um sistema ternrio tem 3 "trits", cada trit assumindo o valor 0,1 ou 2. Quantos "trits" so necessrios para representar um nmero de seis bits?

bits para trits


6 2

= 64 = 3y y = maior inteiro {6xlog22/log23} y = 4

y 3

(33=27 < 64 < 34=81)

Converso de Inteiro

Binrio para decimal

J visto Diviso inteira (do quociente) sucessiva por 2, at que resto 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.

Inteiro decimal para binrio

Converso de inteiro

Exemplo: Converter 25 decimal para binrio

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
25 / 2 = 12 (quociente) e resto
= 1x24 + 1x24 + 0x22 + 0x21 + 1x20 = 16 + 8 + 0 + 0 + 1 = 25 decimal

Converso de Inteiros entre Sistemas

Procedimentos bsicos: - diviso - polinmio - agrupamento de bits

Converso (Inteiros) entre sistemas

Converso (Inteiros) entre sistemas


a) (1011110010100111)2 = ( ? )16 b) (A79E)16 = ( ? )2

Converso (Inteiros) entre sistemas


Converso octal

hexadecimal

No realizada diretamente no h relao de potncias entre as bases oito e dezesseis. Semelhante converso entre duas bases quaisquer base intermediria (base binria) Converso em duas etapas:

1 - nmero: base octal (hexadecimal) binria. 2 - resultado intermedirio: binria hexadecimal (octal).

Joseana M. Fechine

Converso de frao

Operao inversa: multiplicar parte fracionria por 2 at que parte fracionria do resultado seja 0 (zero) Bits da parte fracionria derivados das partes inteiras das multiplicaes Bit imediatamente direita da vrgula = Parte inteira da primeira multiplicao

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 (1,25-1=0,25) 0,25 x 2 = 0,5 segunda casa 0 ; resto 0,5 0,5 x 2 = 1,0 terceira casa 1 ; resto zero.
Resultado: 0,62510 = 0,1012

Converso partes inteira,fracionria juntas

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

Converso partes inteira,fracionria juntas


(8,375)10 = ( ? )2

Exerccios

Mostre que:

5,8 = 101,11001100... , uma dzima. 11,6 = 1011,10011001100...

a vrgula foi deslocada uma casa para a direita, pois 11,6 = 2 x 5,8 .

Representao em Complemento de 2 de um nmero


Partindo-se da representao do negativo do valor a ser achado, nega-se este nmero
(negar inverter e somar 1) Exemplo 1: -5 em Complemento de 2 (com 1 bit de sinal de 4 para a magnitude) Partindo-se da representao do 510 = 001012 (invertendo os bits) = 11010 (somando 1) = 110112 = - 5 em Complemento de 2 Exemplo 2: +5 em Complemento de 2 (com 1 bit de sinal de 4 para a magnitude) Partindo-se da representao do -510 = 110112 (invertendo os bits) = 001002 (somando 1) = 001012 = +5 em Complemento de 2

Representao em ponto (vrgula) flutuante - float

Representao pode variar (flutuar) a posio da vrgula, ajustando potncia da base. 0 1 54,32 = 54,32 x 10 = 5,432 x 10 = 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

Representao em ponto (vrgula) flutuante - float

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 (10)11 = 1,10101x(10)101 = 0,0110101x(10)111

Na representao normalizada, h apenas um 1 antes da vrgula

Exemplo: 1,10101x(10)101

Representao em ponto (vrgula) flutuante - float

Algumas definies

No nmero 1,10101x(10)101 , tomado como referncia:


1,10101 = significando (ou mantissa) 101 = expoente

OBS:

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

Representao em ponto (vrgula) flutuante - float

Representao genrica

d0,d1d2...dtx(b)exp ,

t o nmero de dgitos da mantissa d1d2...dt = mantissa, com 0 di (b-1) exp = expoente (inteiro com sinal)

OBS:

a base no precisa ser explicitada

Armazenamento de floats

Na organizao/arquitetura do computador, definir:


Nmero de bits da mantissa (preciso, p) Nmero de bits do expoente Um bit de sinal (0 para + e 1 para -) para o nmero (geralmente o primeiro, da esquerda)

Armazenamento de floats
Ilustrao Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

Sinal

Expoente (+/-)

Significando

Sinal do nmero: 0 = + e 1 = Expoentes: 8 combinaes possveis


000 e 111 especiais (ver adiante) 011 (310) = expoente zero 001 e 010 = expoente 2 e 1 (abaixo de zero) 100, 101 e 110 = expoentes 1, 2 e 3 (acima zero) OBS: No podem seguir aritmtica normal!

Armazenamento de floats
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Sinal Expoente (+/-) Significando
0=+ 1=-

000 001 010 011 100 101 110 111

(especial) (2-2) (2-1) (2 0) (2 1) (2 2) (2 3) (especial)

1,0000 1,0001 .... .... 1,1111 1 = bit escondido

Armazenamento de floats

Ainda os expoentes na ilustrao...

Maior nmero positivo (lembre do bit escondido)

0 110 1111 = + 23 x 1,1111 = 23 x (2- 2-4 ) = 1111,1 = 15,5 decimal 0 001 0000 = + 2-2 x 1,0000 = 2-2 x 20 = 0,01 ou 0,25 decimal

Menor nmero positivo (lembre do bit escondido)

Armazenamento de floats

Combinaes especiais dos expoentes na ilustrao...

000 representao NO normalizada


Significando passa a ser 0,_ _ _ ... Expoente (000) = -2 Menor nmero positivo passa a ser 0 000 0001 = 2-2 x 0,0001 = 2-2 x 2-4 = 2-6 = 0,015625

Armazenamento de floats

Ainda as combinaes especiais...


Normalizao no permite representar zero! 000 representao NO normalizada


00000000 = + 0 decimal 10000000 = - 0 decimal So iguais em comparaes

Armazenamento de floats

Ainda as combinaes especiais...

111 representaes de infinito

01110000 = + infinito 11110000 = - infinito 11111000 = indeterminao Outras combinaes 11111_ _ _ = Not A Number (NANs)

Padro IEEE para floats

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.

OBS: Padro 854 (base = 10 ou 2, nem especifica layout dos bits)

Padro IEEE para floats

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 Simples Dupla
(32bits)

Expoente(+/-) Significando 8
[bits30-23] [bits62-52]

1 1

[bit31] [bit63]

23 52

[bits22-00] [bits51-00]

(64 bits)

11

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

IEEE 754 com preciso simples

Expoentes na preciso simples c/256 combinaes

1111 1111

sinal=1 e significando = 0...0 : -infinito sinal=0 e significando = 0...0 : +infinito sinal=1 e significando =10...0: indeterminado c/outras combinaes: NAN

IEEE 754 com preciso simples

Expoentes na preciso simples c/256 combinaes


0111 1111 (12710) = expoente zero (bias = polarizao) 0000 0001 = menor expoente = 126 (abaixo de um) 1111 1110 = maior expoente = +127 (acima de um)
OBS: Expoente vale ( Nmero em binrio MENOS 127)

0000 0000

sinal=1 e significando = 0...0 : -zero sinal=0 e significando = 0...0 : +zero

IEEE 754 com preciso simples

Expoentes na preciso simples c/256 combinaes (0) 0000 0000 (1) 0000 0001 .............. 0111 1100 (125) 0111 1101 (126) 0111 1110 (especial) (2-126) menor expoente (2-2) (2-1)

(127) 0111 1111 (20)

(128) 1000 0000 (21) (129) 1000 0001 (22) 1000 0010 ............. (254) 1111 1110 (2127) maior expoente (255) 1111 1111 (especial)

IEEE 754 com preciso simples

Menor nmero positivo (lembre do bit escondido e no normalizada)

0 00000000 00.01 = 2-126 x 2-23 = 2-149 0 1111110 11...11 = 2127 x (2-2-23)

Maior nmero positivo (lembre do bit escondido)

A faixa de nmeros negativos :

de (2-2-23) x 2127 a 2-149

IEEE 754 com preciso dupla

No formato (preciso) duplo, o menor expoente representado por 00000000001, valendo -1022, e o maior expoente representado por 11111111110, valendo +1023. Em ambos os casos, o expoente vale o nmero representado em binrio menos 1023 (este o valor da bias = zero).

IEEE 754 com preciso dupla


Verifique: Menor nmero positivo (lembre do bit escondido e no normalizada)

0 00000000000 00.01 = 2-1022 x 2-52 = 2-1074


0 1111110 11...11 = 21023 x (2-2-52) de (2-2-52) x 21023 a 2-1074

Maior nmero positivo (lembre do bit escondido)

A faixa de nmeros negativos :

IEEE 754 com preciso simples

Expoentes na preciso dupla c/2048 combinaes 00000000000 (especial) 00000000001 (2-1022) menor expoente .............. 01111111100 01111111101 (2-2) (1022) 01111111110 (2-1)
(1023) 01111111111 (20)

(0) (1)

(1024 10000000000 (21) 10000000001 (22) 10000000010 ............. (2046) 11111111110 (21023) maior expoente (2047) 11111111111 (especial)

Quadro resumo IEEE 754


No normalizado Simples 2-149
a (1-2-23) x 2-126

Normalizado
2-126 a (2-2-23) x 2127 2-1022 a (2-2-52)x21023

Decimal
~10-44.85 a ~1038.53 ~10-323.3 a ~10308.3

Dupla

2-1074 a (1-2-52)x2-1022

Erro na representao de floats

Nmero finito de bits na representao (nmero apenas maior na preciso dupla), implica em truncamento (ou arredondamento) do nmero real a ser representado. Truncamento introduz erro na representao. Casos especiais:

Overflow: nmero a representar maior que

maior nmero possvel de ser representado Underflow: nmero a representar menor que menor nmero possvel de ser representado

Limite no erro na representao de um float

A forma normalizada do nmero N 1,n x 2e

Supe-se que e esteja dentro dos limites dessa representao (ou ocorreria overflow). Se n no couber no nmero de bits da representao (preciso) do significando, p, haver truncamento, introduzindo erro.

Limite no erro na representao de um float


A forma normalizada do nmero N 1,n x 2e Ex: N = 1,101011110100101 x 2e e que p nmero de bits (preciso) do significando seja 4.

A representao de N seria 1,1010 x 2e gerando um ErroN = 0,11110100101 x 2c-4 O erro relativo definido como EN = ErroN / N , ou:
0,11110100101 x 2c-4 / 1,101011110100101 x 2e

= 0,11110100101 x 2-4 / 1,101011110100101

Limite no erro na representao de um float

Note que EN ser mximo quando o numerador for mximo e o denominador for mnimo, ou seja:

EN (max) = 0,1111111.. x 2-4 / 1,0000000 Lembrando que 0,11111. < 1 , tem-se: EN (max) < 2-4 , onde 4 est representando p, nmero de bits (preciso) do significando.
p,

Portanto, EN (max) < 2 normalizadas.

para representaes

Aritmtica com floats

Conhecidos os erros em dois nmeros, possvel determinar o erro de uma operao entre eles, como adio, subtrao, multiplicao e diviso.

Erro depende de mtodo / procedimentos empregados

Aritmtica com floats

Padro IEEE 754 define algoritmo para adio, subtrao, multiplicao, diviso e raiz quadrada e exige que implementaes produzam o(s) mesmo(s) resultado(s).

Igualdade dos bits (resultados) em vrias processadores Transportabilidade de software Vide prximo mdulo

Exerccio Nr. 1
Seja a seguinte representao de nmeros positivos em ponto flutuante:
Bit 7. Sinal do expoente Bit 6. Bit 5 Bit 4 EXPOENTE Bit 3 Bit 2 Bit 1 Bit 0 MANTISSA

Sendo que o expoente representado diretamente pelo respectivo nmero binrio e os nmeros so normalizados pela primeira casa decimal, ou seja 4.5 representado como 0.45 101 ou, em binrio, 100.1 representado por 0.1001 211 o que daria 00111001 na representao acima. 1) Qual o maior e o menor nmero positivo que podem ser representados neste formato? Mostre o resultado em decimal, binrio e na representao interna. 2) Com fica a situao do nmero 0? Sugira uma soluo. 3) Represente, neste formato os nmeros (decimais) 13, 0.12 e 3.501. Em quais nmeros ocorreram erros de representao? 4) Seja a representao 00101000. Ela representa qual nmero? Se eu subtrair 0.1 2 deste nmero, como seria representado o nmero resultante?

Exerccio Nr. 2
1) Repita os itens 3 e 4 do exerccio anterior, agora usando a representao em ponto flutuante de 8 bits vista anteriormente neste documento.

2)

Determine, para ambas as representaes, a densidade dos nmeros maiores que 1, ou seja, a distncia entre dois nmeros subseqentes. SUGESTO: tome a representao de um nmero qualquer some 0.0001 mantissa e calcule a diferena entre estes dois nmeros .

You might also like