Métodos Numéricos Turma CI-202-X Josiney de Souza ... · e expoente de β, ... Variável ainda em...

24
Métodos Numéricos Turma CI-202-X Josiney de Souza [email protected]

Transcript of Métodos Numéricos Turma CI-202-X Josiney de Souza ... · e expoente de β, ... Variável ainda em...

Métodos Numéricos

Turma CI-202-X

Josiney de Souza

[email protected]

Agenda do Dia – Aula 3 (10/08/15)

Aritmética de ponto flutuante Representação de ponto flutuante Normalização

Binária Decimal

Situações durante a representação

Ponto Fixo X Ponto Flutuante

Em máquinas, usamos duas formas de representar números: Ponto fixo: para valores inteiros Ponto flutuante: para valores reais

Em uma máquina de calcular ou computador digital, representa-se um número real com a aritmética de ponto flutuante

Representação de Ponto Flutuante

β Base onde máquina opera→ → números inteiros contidos no intervalo 0 ≤

≤ (β-1); d ≠ 0 e expoente de β, assume valores I ≤ e ≤ S→ I, S limites inferior e superior para variação →

do expoente

x=±[d 1

β1 +d 2

β2 +d 3

β3 +...+d t

βt ]∗βe

di

di

Representação de Ponto Flutuante

→ mantissa. Parte do número que representa seus dígitos significativos

t número de dígitos significativos dos →sistema de representação, comumente chamado de precisão da máquina

x=±[d 1

β1 +d 2

β2 +d 3

β3 +...+d t

βt ]∗βe

[ d1

β1 +d2

β2 +d3

β3 +...+d t

βt ]

Representação de Ponto Flutuante

Representação 2: Representação 3: F (β, t, I, S)

x=±[d 1

β1 +d 2

β2 +d 3

β3 +...+d t

βt ]∗βe

±[.d1d2d3 ...d t ]∗βe

Representação de Ponto Flutuante

Exemplo 1: No sistema decimal, β = 10, tem-se:

Deve-se normalizar os números

0,12510=(1∗10−1+2∗10−2+5∗10−3)∗100

3,141510=(3∗10−1+1∗10−2+4∗10−3+1∗10−4+5∗10−5)∗101

Normalização Decimal

Normalização: Também chamada de notação científica Utilizada nas operações com ponto flutuante A mantissa é escrita entre 0 e 1 Exemplos: 3,1415 10,053

Normalização Decimal

Normalização: Também chamada de notação científica Utilizada nas operações com ponto flutuante A mantissa é escrita entre 0 e 1 Exemplos: 3,1415 10,053

3,1415 = 0,31415 * 10

10,053 = 1,0053 * 10¹ = 0,10053 * 10²

Normalização Binária

Normalização em base binária: Segue o mesmo raciocínio da base 10 Primeiro, converter o número decimal em

binário Exemplos: 10 4

Normalização Binária

Normalização em base binária: Segue o mesmo raciocínio da base 10 Primeiro, converter o número decimal em

binário Exemplos: 10 4

10 = 1010₂ = 101,0 * 2¹ = 10,10 * 2² = 1,010 * 2³ = 0,1010 * 2⁴

4 = 100₂ = 10,0 * 2¹ = 1,00 * 2² = 0,100 * 2³

Normalização Binária

Exercício: Determinar a representação do número 25 em uma máquina de calcular cujo sistema de representação utilizado tenha Base: β = 2 Precisão (dígitos significativos): t = 10 Menor valor de expoente: I = -15 Maior valor de expoente: S = 15

Normalização Binária

Exercício: Determinar a representação do número 25 em uma máquina F(2, 10, -15, 15) São necessários 16 bits nessa máquina:

10 bits para precisão (bits 1-10) 4 para expoente (bits 12-15) 1 para sinal da precisão (bit 0) 1 para sinal do expoente (bit 11)

0 1 1 0 0 1 0 0 0 0 0 0 0 1 0 1

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Normalização Binária

Exercício: Determinar a representação do número 25 em uma máquina F(2, 10, -15, 15) Maior valor (32736):

Menor valor (-32736):

1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Normalização Binária

Exercício: Determinar a representação do número 25 em uma máquina F(2, 10, -15, 15) Ainda, o valor de zero seria:

Próximo número positivo (0,000015259):

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

0 1 0 0 0 0 0 0 0 0 0 1 1 1 1 1

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Normalização Binária

Exercício: Determinar a representação do número 25 em uma máquina F(2, 10, -15, 15) Segundo número positivo (0,000015289):

0 1 0 0 0 0 0 0 0 0 1 1 1 1 1 1

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

Normalização Binária

Através do exemplo, observa-se: Os números representáveis são um

subconjunto dos números reais Subconjunto representável está dentro de um

intervalo

Situações Durante as Representações

Considerar: F(10, 3, -5, 5) Menor número em valor absoluto:

Maior número em valor absoluto:M = 0,999 * 10⁵ = 99900

Conjunto G = { x є R / m ≤ |x| ≤ M }

Várias situações podem ocorrer...

m=0,100∗10−5=10−6=0,000001

Situações Durante as Representações

Considerar: F(10, 3, -5, 5) Conjunto G = { x є R / m ≤ |x| ≤ M }

1: x є G

2: |x| < m

3: |x| > M

Situações Durante as Representações

1: x є G X está no conjunto representável Exemplo: 235,89 = 0,23589 * 10³ Número tem 5 dígitos na mantissa Máquina consegue representar 0,235 * 10³ e

0,236 * 10³ 0,235 * 10³ representação por truncamento→ 0,236 * 10³ representação por arredondamento→

Situações Durante as Representações

2: |x| < m X está abaixo do limite inferior representável Exemplo: Número não pode ser representado Expoente é menor que -5 Máquina acusa Underflow

0,345∗10−7

Situações Durante as Representações

3: |x| > M X está acima do limite superior representável Exemplo: 0,875 * 10⁹ Número não pode ser representado Expoente é maior que 5 Máquina acusa Overflow

Situações Durante as Representações

Algumas linguagens de programação permitem declarar variáveis de precisão dupla

Variável ainda em aritmética de ponto flutuante, mas com aproximadamente o dobro de dígitos disponíveis na mantissa

Nesse caso, o tempo de execução e requerimento de memória aumentam de forma significativa

Em C/C++: float 32 bits; double 64 bits→ → Em Pascal: real, double 32 bits; extended 64 → →

bits

Próxima Aula

Situações durante a representação de números

Conceitos de erros: Absolutos Relativos De Arredondamento De Truncamento Propagação de erros