100
Tópicos Computação Científica Tópicos - Cálculo numérico - Representação e conversão de números - Representação de números em diferentes bases - Conversão de números da base decimal para uma qualquer base b - Conversão de números de uma qualquer base b para a base decimal - Aritmética de ponto flutuante - Operações com números em binário - Representação de números em computadores digitais - Análise e representação de erros - Fontes de erros e incertezas - Tipos de erros - Precisão e exatidão - Valores aproximados e erros - Erros de arredondamento - Erros de truncatura Capítulo 2. Computação Numérica - Cálculo Numérico 1/2

Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

  • Upload
    others

  • View
    6

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Tópicos Computação Científica

Tópicos

- Cálculo numérico

- Representação e conversão de números

- Representação de números em diferentes bases

- Conversão de números da base decimal para uma qualquer base b

- Conversão de números de uma qualquer base b para a base decimal

- Aritmética de ponto flutuante

- Operações com números em binário

- Representação de números em computadores digitais

- Análise e representação de erros

- Fontes de erros e incertezas

- Tipos de erros

- Precisão e exatidão

- Valores aproximados e erros

- Erros de arredondamento

- Erros de truncatura

Capítulo 2. Computação Numérica - Cálculo Numérico 1/2

Page 2: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Cálculo numérico Computação Científica

Cálculo numérico

- Cálculo Numérico é uma metodologia para resolver problemas/modelos matemáticos com o computador.

- Uma solução obtida via Cálculo Numérico é sempre numérica (solução aproximada).

- Os métodos exatos (analíticos) fornecem normalmente o resultado em termos de funções matemáticas.

- Uma solução numérica

- é uma aproximação do resultado exato,

- pode ser obtida com um elevado grau de exatidão.

- Para computar (calcular por meio de um computador) uma solução numérica, são necessárias operações

- aritméticas (adição, subtração, multiplicação e divisão) e

- lógicas (comparação, conjunção, disjunção e negação).

- Considerando que estas são as únicas operações matemáticas que os computadores são capazes de

realizar, então os Computadores e o Cálculo Numérico formam uma combinação perfeita.

Capítulo 2. Computação Numérica - Cálculo Numérico 2/2

Page 3: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Representação de números em diferentes bases Computação Científica

Representação de números em diferentes bases

- É comum para a maioria dos computadores, o uso de uma base numérica distinta da base decimal.

- Em geral, os números são armazenados na

- base 2 (binária) – mais comum

- base 8 (octal) ou

- base 16 (hexadecimal).

- Representação de números

- sistema posicional

- forma polinomial

- A representação de números inteiros é ligeiramente distinta da representação de números reais.

- Representação de números inteiros

- formato de Sinal e Magnitude

- Representação de números reais

- formato de ponto fixo

- formato de ponto flutuante

Capítulo 2. Computação Numérica - Representação e conversão de números 1/60

Page 4: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Representação de números em diferentes bases – Números inteiros Computação Científica

Representação de números em diferentes bases –

Números inteiros

- Um número inteiro N é representado, na base b, por um conjunto de dígitos ai em que

- ai { 0,1,…, b-1 }

- i assume um intervalo de valores que depende da base em uso.

- As bases mais utilizadas:

b Nome ai

2 binária 0,1

8 octal 0, 1, 2, 3, 4, 5, 6, 7

10 decimal 0, 1, 2, 3, 4, 5, 6, 7, 8, 9

16 hexadecimal 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

Capítulo 2. Computação Numérica - Representação e conversão de números 2/60

Page 5: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Representação de números em diferentes bases – Números inteiros Computação Científica

- Representação de um número inteiro em formato de Sinal e Magnitude

- no sistema posicional

- na forma polinomial

- No sistema posicional

- os dígitos são agrupados numa sequência,

- a dimensão da contribuição de cada dígito no número depende da posição que ocupa;

- um número N (na base decimal) é escrito com o seguinte formato:

N10 = (an an-1 ... a1 a0)b

- Exemplo:

16310 (243)8

- Na forma polinomial

- fica claramente explicitada a contribuição de cada dígito para o valor de N;

- um número N (na base decimal) é escrito com o seguinte formato:

N10 = an bn + an-1 bn-1 + ... + a1 b + a0

- Exemplo:

16310 (2x82 + 4x81 + 3x80)8

Capítulo 2. Computação Numérica - Representação e conversão de números 3/60

Page 6: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Representação de números em diferentes bases – Números reais Computação Científica

Representação de números em diferentes bases –

Números reais

- Um número pode ser representado usando dois formatos:

- com ponto fixo (por exemplo, 12.34);

- com ponto flutuante ou vírgula flutuante (por exemplo, 0.4273x102).

Capítulo 2. Computação Numérica - Representação e conversão de números 4/60

Page 7: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Representação de números em diferentes bases – Números reais Computação Científica

- Representação de números reais em formato com ponto fixo

- Na representação de um número real X no formato com ponto fixo, este é composto por

- uma parte inteira Xi (número inteiro)

- uma parte fracionaria Xf (número real)

tal que

Xf = X – Xi.

- Por exemplo, para X = 12.34,

- Xi = 12

- Xf = 0.34 (= 12.34 - 12)

Capítulo 2. Computação Numérica - Representação e conversão de números 5/60

Page 8: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Representação de números em diferentes bases – Números reais Computação Científica

- Representação de um real em formato com ponto flutuante

- notação semelhante à notação científica:

.d1d2d3...dp × be,

em que

- dk (k = 1,2,...,p) são os dígitos da parte fracionária com dk { 0, ..., b-1 } e d1 ≠ 0 (se normalizado),

- b é o valor da base (geralmente 2, 8, 10 ou 16),

- p é o número de dígitos da parte fracionária, e

- e é um expoente inteiro.

- Um número real em formato com ponto flutuante é composto por três partes:

- o sinal,

- a parte fracionária (significando ou mantissa) e

- o expoente.

- Estas três partes tem um comprimento total fixo que depende

- do computador e

- do tipo de número (precisão simples, dupla ou estendida).

Capítulo 2. Computação Numérica - Representação e conversão de números 6/60

Page 9: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Representação de números em diferentes bases – Números reais Computação Científica

- Por exemplo, o número 0.4273x102

- representado por

- d1 = 4; d2 = 2; d3 = 7; d4 = 3

- b = 10

- p = 4

- e = 2

- composto por

- sinal: + (omitido)

- mantissa: 4273

- expoente: 2

Capítulo 2. Computação Numérica - Representação e conversão de números 7/60

Page 10: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Representação de números em diferentes bases – Números reais Computação Científica

- A representação de um número pode ser diferente entre os fabricantes do computadores; logo

- um mesmo programa implementado em computadores que utilizam formatos diferentes

pode fornecer resultados diferentes.

- O formato utilizado pela maioria dos computadores é padrão IEEE 754 (para binários):

PropriedadePrecisão

Simples Dupla Estendida

Comprimento total 32 64 80

bits na mantissa 23 52 64

bits no expoente 8 11 15

bits no sinal 1 1 1

expoente máximo 127 1023 16383

expoente mínimo -126 -1022 -16382

maior número (valor absoluto) 3.40 x 1038 1.80 x 10308 1.19 x 104932

menor número (valor absoluto) 1.18 x 10-38 2.123 x 10-308 3.36 x 10-4932

dígitos decimais (precisão) 7 16 19

Capítulo 2. Computação Numérica - Representação e conversão de números 8/60

Page 11: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Conversão de números da base decimal para uma base b Computação Científica

Conversão de números da base decimal para uma base b

- Conversão de números inteiros

- Conversão de números reais

- formato de ponto fixo

- formato de ponto flutuante

Capítulo 2. Computação Numérica - Representação e conversão de números 9/60

Page 12: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Conversão de números da base decimal para uma base b - Números inteiros Computação Científica

Conversão de números da base decimal para uma base b -

Números inteiros

- Considere-se a conversão de um inteiro da base decimal para a base binária

- Um dos métodos é o das divisões sucessivas que consiste no seguinte (para um número N):

- N (base decimal) e os sucessivos quocientes qi são divididos por 2 (base binária),

- são guardados os restos ri { 0, 1 } até que o último quociente seja qn = 1;

- ou seja,

N = 2 q1 + r0; q1 = 2 q2 + r1; q2 = 2 q3 + r2; ... ; qn-1 = 2 qn + rn-1

- o último quociente somente será 0 se N = 0 (qn = 0 N = 0);

- então,

N = (qn rn-1 ... r1 r0)2 (sistema posicional)

N = qn 2n + rn-1 2n-1 + rn-2 2n-2 + ... + r1 21 + r0 (forma polinomial)

Capítulo 2. Computação Numérica - Representação e conversão de números 10/60

Page 13: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Conversão de números da base decimal para uma base b - Números inteiros Computação Científica

- Método das divisões sucessivas para converter um inteiro N (decimal) para uma qualquer base b:

- divide-se N e os sucessivos quocientes qi por b

- guarda-se os restos ri {0, ..., b-1} até que o último quociente seja qn {1, ..., b-1};

- ou seja,

N = b q1 + r0; q1 = b q2 + r1; q2 = b q3 + r2; ... ; qn-1 = b qn + rn-1

- o último quociente somente será 0 se N = 0 (qn = 0 N = 0);

- então,

N = (qn rn-1 ... r1 r0)b (sistema posicional)

N = qn bn + rn-1 bn-1 + rn-2 bn-2 + ... + r1 b1 + r0 b0 (forma polinomial)

Capítulo 2. Computação Numérica - Representação e conversão de números 11/60

Page 14: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Conversão de números da base decimal para uma base b - Reais em formato com ponto fixo Computação Científica

Conversão de números da base decimal para uma base b -

Reais em formato com ponto fixo

- Considere-se a conversão de um real da base decimal para a base binária

- Dado um número real X, este é composto por

- uma parte inteira Xi (número inteiro) e

- uma parte fracionaria Xf

- Para se converter este número X na base binária utiliza-se

- o método das divisões sucessivas para converter Xi e

- o método das multiplicações sucessivas para converter Xf

- O método das multiplicações sucessivas consiste em

- multiplicar-se Xf por 2, extraindo-se a parte inteira do resultado (que pode ser 0),

- a parte fracionária é também multiplicada por 2;

- o processo repete-se até que

- a parte fracionária seja 0, ou

- se obtenha um padrão repetitivo (o número fracionário é periódico).

Capítulo 2. Computação Numérica - Representação e conversão de números 12/60

Page 15: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Conversão de números da base decimal para uma base b - Reais em formato com ponto fixo Computação Científica

- Exemplo 1:

- Seja Xf = 0.8125, então

0.8125 x 2 = 1.6250;

0.6250 x 2 = 1.2500;

0.2500 x 2 = 0.5000;

0.5000 x 2 = 1.0000

- Ou seja,

0.8125 = (0.1101)2

Capítulo 2. Computação Numérica - Representação e conversão de números 13/60

Page 16: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Conversão de números da base decimal para uma base b - Reais em formato com ponto fixo Computação Científica

- Exemplo 2:

- Considere o número Xf = 0.1

0.1 x 2 = 0.2;

0.2 x 2 = 0.4;

0.4 x 2 = 0.8;

0.8 x 2 = 1.6;

0.6 x 2 = 1.2;

0.2 x 2 = 0.4;

...

o processo de multiplicações sucessivas repete a sequencia de dígitos 0011 infinitamente.

- Portanto,

0.1 = (0.0001100110011...)2

Capítulo 2. Computação Numérica - Representação e conversão de números 14/60

Page 17: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Conversão de números da base decimal para uma base b - Reais em formato com ponto fixo Computação Científica

- Estes exemplos mostram que num computador, onde o espaço para representação de um número é

finito, estes números terão que ser arredondados.

- A forma polinomial de um número fracionário na base 2 é dada por:

Xf = 1 2-1 + 2 2-2 + 3 2-3 + ...

- Portanto, um número real X = Xi + Xf pode ser representado na base 2 por

- Forma polinomial:

X = an 2n + an-1 2n-1 + an-2 2n-2 + ... + a1 21 + a0 20 + 1 2-1 + 2 2-2 + 3 2-3 + …

- Sistema posicional:

X = (an an-1 ... a1 a0 . 1 2 3 ...)2

Capítulo 2. Computação Numérica - Representação e conversão de números 15/60

Page 18: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Conversão de números da base decimal para uma base b - Reais em formato com ponto flutuante Computação Científica

Conversão de números da base decimal para uma base b -

Reais em formato com ponto flutuante

- Seja um computador com

- dois dígitos (p = 2),

- base b = 2,

- expoente e { -1, 0, 1, 2 }.

- Como os números reais são normalizados (d1 ≠ 0) todos eles serão da forma:

.102 × 2e ou .112 × 2e , e ∈ {−1, 0,1,2}.

- Considerando a conversão de binário para decimal de um número positivo menor do que 1:

.102 = 1 × 2−1 + 0 × 2−2 = 1/2 + 0 = 1/2, e

.112 = 1 × 2−1 + 1 × 2−2 = 1/2 + 1 /4 = 3/4,

Capítulo 2. Computação Numérica - Representação e conversão de números 16/60

Page 19: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Conversão de números da base decimal para uma base b - Reais em formato com ponto flutuante Computação Científica

- Os únicos números positivos representáveis neste computador são:

.102 × 2−1 = 1/2 × 1/2 = 1/4 .112 × 2−1 = 3/4 × 1/2 = 3/8

.102 × 20 = 1/2 × 1 = 1/2 .112 × 20 = 3/4 × 1 = 3/4

.102 × 21 = 1/2 × 2 = 1 .112 × 21 = 3/4 × 2 = 3/2

.102 × 22 = 1/2 × 4 = 2 .112 × 22 = 3/4 × 4 = 3

- O zero é representado de uma forma especial:

- todos os dígitos dk da mantissa são nulos,

- o expoente é nulo;

- ou seja,

.002 x 20

- O mais importante a reter sobre os números em formato com ponto flutuante é que

- são discretos e

- não contínuos como na Matemática.

Capítulo 2. Computação Numérica - Representação e conversão de números 17/60

Page 20: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Conversão de números da base decimal para uma base b - Reais em formato com ponto flutuante Computação Científica

- O conceito de existir sempre um número real entre dois números reais quaisquer não é válido.

- As consequências da falha deste conceito podem ser desastrosas (verificar com o exemplo):

- considere-se as seguintes representações em binário:

0.610 = 0.1001100110011...2 e

0.710 = 0.1011001100110...2

- se estes dois números forem armazenados naquele hipotético computador (dois dígitos para a mantissa),

eles serão igualmente representados por:

.102 x 20

- isto significa que tanto 0.610 como 0.710 são vistos como 0.510 por aquele computador.

- Esta é uma das grandes causas da ocorrência de erros de arredondamento nos processos numéricos.

Capítulo 2. Computação Numérica - Representação e conversão de números 18/60

Page 21: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Conversão de números de uma base b para a base decimal Computação Científica

Conversão de números de uma base b para a base decimal

- Conversão de números inteiros

- Conversão de números reais fracionários

- Número binário infinito

Capítulo 2. Computação Numérica - Representação e conversão de números 19/60

Page 22: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Conversão de números de uma base b para a base decimal - Números inteiros Computação Científica

Conversão de números de uma base b para a base decimal -

Números inteiros

- Considere-se a conversão da base binária para a decimal.

- Seja o número N representado na base binária por

N = (am am-1 ... a1 a0)2

- A sua representação na base decimal pode ser obtida simplesmente pelo polinómio

N = am 2m + am-1 2m-1 + ... + a1 2 + a0

- A operacionalização deste polinómio pode ser obtida

- pelo Algoritmo de Horner e

- pela Divisão de Ruffini.

Capítulo 2. Computação Numérica - Representação e conversão de números 20/60

Page 23: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Conversão de números de uma base b para a base decimal - Números inteiros Computação Científica

Algoritmo de Horner

- Seja

N = (am am-1 ... a1 a0)2

- O número N pode ser obtido na base decimal através do cálculo da sequência:

cm = am

cm-1 = am-1 + 2 x cm

cm-2 = am-2 + 2 x cm-1

... ...

c1 = a1 + 2 x c2

c0 = a0 + 2 x c1

e então,

N = c0

Capítulo 2. Computação Numérica - Representação e conversão de números 21/60

Page 24: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Conversão de números de uma base b para a base decimal - Números inteiros Computação Científica

Algoritmo de Horner

- Exemplo:

Seja o número N = (11101)2 = (a4 a3 a2 a1 a0)2

c4 = a4 = 1

c3 = a3 + 2 x c4 = 1 + 2 x 1 = 3

c2 = a2 + 2 x c3 = 1 + 2 x 3 = 7

c1 = a1 + 2 x c2 = 0 + 2 x 7 = 14

c0 = a0 + 2 x c1 = 1 + 2 x 14 = 29

portanto,

(11101)2 = 2910

Capítulo 2. Computação Numérica - Representação e conversão de números 22/60

Page 25: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Conversão de números de uma base b para a base decimal - Números inteiros Computação Científica

Algoritmo de Horner

- Generalizando esta metodologia para converter um inteiro na base b para decimal:

- Seja

N = (am am-1 ... a1 a0)b

- A sua representação na base decimal pode ser obtida da seguinte forma:

cm = am

cm-1 = am-1 + b x cm

cm-2 = am-2 + b x cm-1

... ...

c1 = a1 + b x c2

c0 = a0 + b x c1

então,

N = c0

Capítulo 2. Computação Numérica - Representação e conversão de números 23/60

Page 26: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Conversão de números de uma base b para a base decimal - Números inteiros Computação Científica

Divisão de Ruffini

- Equivalente ao algoritmo de Horner,

- Difere apenas na disposição dos coeficientes ai e ci

- Seja

N = (am am-1 ... a1 a0)2

- A sua representação na base decimal pode ser obtida da seguinte forma:

am am-1 ... a2 a1 a0

2 2 x cm ... 2 x c3 2 x c2 2 x c1

cm cm-1 ... c2 c1 c0

am am-1 + 2 x cm a2 + 2 x c3 a1 + 2 x c2 a0 + 2 x c1

Então,

N = c0

Capítulo 2. Computação Numérica - Representação e conversão de números 24/60

Page 27: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Conversão de números de uma base b para a base decimal - Números inteiros Computação Científica

Divisão de Ruffini

- Exemplo:

Seja o número N = (11101)2 = (a4 a3 a2 a1 a0)2

a4 a3 a2 a1 a0

1 1 1 0 1

22 x c4 2 x c3 2 x c2 2 x c1

1 2 x 1 2 x 3 2 x 7 2 x 14

c4 c3 c2 c1 c0

1 1 + 2 1 + 6 0 + 14 1 + 28

1 3 7 14 29

Portanto,

(11101)2 = 2910

Capítulo 2. Computação Numérica - Representação e conversão de números 25/60

Page 28: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Conversão de números de uma base b para a base decimal - Números inteiros Computação Científica

Divisão de Ruffini

- Generalizando esta metodologia para converter um inteiro na base b para decimal.

- Seja

N = (am am-1 ... a1 a0)b

- A sua representação na base decimal pode ser obtida da seguinte forma:

am am-1 ... a2 a1 a0

b b x cm ... b x c3 b x c2 b x c1

cm cm-1 ... c2 c1 c0

am am-1 + b x cm a2 + b x c3 a1 + b x c2 a0 + b x c1

Portanto,

N = c0

Capítulo 2. Computação Numérica - Representação e conversão de números 26/60

Page 29: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Conversão de números de uma base b para a base decimal - Números reais Computação Científica

Conversão de números de uma base b para a base decimal -

Números reais

- Considere-se um número fracionário com representação finita na base binária:

Xf = (0.a1a2…an)2

- O valor de Xf na base decimal será dado por

Xf = 1 2-1 + 2 2-2 + … + n 2-n

- Esta soma pode ser calculada

- diretamente, ou

- utilizando Algoritmo de Horner e a Divisão de Ruffini com algumas modificações.

Capítulo 2. Computação Numérica - Representação e conversão de números 27/60

Page 30: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Conversão de números de uma base b para a base decimal - Números reais Computação Científica

- Algoritmo de Horner (caso de um número fracionário na base 2):

Seja N = (0.a1a2…an)2

cn = an

cn-1 = an-1 + (1/2) x cn

cn-2 = an-2 + (1/2) x cn-1

... ...

c2 = a2 + (1/2) x c3

c1 = a1 + (1/2) x c2

c0 = (1/2) x c1

Então,

N = c0

Capítulo 2. Computação Numérica - Representação e conversão de números 28/60

Page 31: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Conversão de números de uma base b para a base decimal - Números reais Computação Científica

- Exemplo (algoritmo de Horner):

Converter o número N = (0.10111)2 = (0.a1 a2 a3 a4 a5)2

c5 = a5 = 1

c4 = a4 + (1/2) x c5 = 1 + (1/2) x 1 = 3/2

c3 = a3 + (1/2) x c4 = 1 + (1/2) x (3/2) = 7/4

c2 = a2 + (1/2) x c3 = 0 + (1/2) x (7/4) = 7/8

c1 = a1 + (1/2) x c2 = 1 + (1/2) x (7/8) = 23/16

c0 = (1/2) x c1 = (1/2) x (23/16) = 23/32

Então,

(0.10111)2 = 23/32 = 0.71875

Capítulo 2. Computação Numérica - Representação e conversão de números 29/60

Page 32: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Conversão de números de uma base b para a base decimal - Números reais Computação Científica

- Divisão de Ruffini (caso de um número fracionário na base 2)

Seja N = (0.a1a2…an)2

an an-1 ... a2 a1

1/2 (1/2) x cm ... (1/2) x c3 (1/2) x c2 (1/2) x c1

cn cn-1 ... c2 c1 c0

an an-1 + 1/2 x cm a2 + 1/2 x c3 a1 + 1/2 x c2 1/2 x c1

Então,

N = c0

Capítulo 2. Computação Numérica - Representação e conversão de números 30/60

Page 33: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Conversão de números de uma base b para a base decimal - Números reais Computação Científica

- Exemplo:

Converter o número N = (0.10111)2 = (0.a1 a2 a3 a4 a5)2

a5 a4 a3 a2 a1

1 1 1 0 1

1/2(1/2) x c5 (1/2) x c4 (1/2) x c3 (1/2) x c2 (1/2) x c1

1 (1/2) x 1 (1/2) x (3/2) (1/2) x (7/4) (1/2) x (7/8) (1/2) x (23/16)

c5 c4 c3 c2 c1 c0

1 1 + 1/2 1 + 3/4 0 + 7/8 1 + 7/16 23/32

1 3/2 7/4 7/8 23/16 23/32

Então,

(0.10111)2 = 23/32 = 0.71875

Capítulo 2. Computação Numérica - Representação e conversão de números 31/60

Page 34: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Conversão de números de uma base b para a base decimal - Número binário infinito Computação Científica

Conversão de números de uma base b para a base decimal -

Número binário infinito

- Uma outra situação que pode ocorrer é quando o número binário for infinito:

Xf=(0.α1α2...αn β1β2...βm)2em que

β1β2...βm indica que a sequência de dígitos β1β2...βm se repete infinitamente.

- Em geral, um número fracionário tem representação infinita periódica na base b da seguinte forma:

Xf = (α1b−1 + α2b−2 + ... + αnb−n) + (β1b−1 + β2b−2 + ... + βmb−m) bm−n

bm−1

onde as expressões entre parênteses podem ser calculadas

- diretamente ou

- utilizando qualquer um dos métodos descritos anteriormente.

Capítulo 2. Computação Numérica - Representação e conversão de números 32/60

Page 35: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Aritmética de ponto flutuante Computação Científica

Aritmética de ponto flutuante

- OVERFLOW: ocorre quando uma operação aritmética resultar num número que seja maior, em valor

absoluto, que o maior número representável.

- UNDERFLOW: ocorre quando uma operação aritmética resultar num número que seja menor, em valor

absoluto, que o menor número representável diferente de zero.

- Seja um hipotético computador com

- dois dígitos da mantissa (p = 2),

- base b = 10,

- expoente e {-5, …, 5};

.d1d2 x 10e

- Quando dois números são somados ou subtraídos, o processo é o seguinte:

- os dígitos do número de menor expoente são deslocados para alinhar as casas decimais;

- o resultado é então normalizado (o expoente é ajustado de forma a normalizar a mantissa, d1 ≠ 0);

- por fim, o resultado é arredondado para dois dígitos para caber na mantissa (p = 2).

Capítulo 2. Computação Numérica - Representação e conversão de números 33/60

Page 36: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Aritmética de ponto flutuante Computação Científica

- Exemplo 1: 4.32 + 0.064

- os números são armazenados no formato especificado,

- as casas decimais são alinhadas,

- a operação de adição é efetuada;

- por fim, o resultado é então normalizado e arredondado para dois dígitos:

4.32 + 0.064 = .43 x 101 + .64 x 10-1 = .43 x 101

+ .0064 x 101

= .4364 x 101

.44 x 101

O resultado da adição é 4.4 em vez de 4.384.

Capítulo 2. Computação Numérica - Representação e conversão de números 34/60

Page 37: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Aritmética de ponto flutuante Computação Científica

- Exemplo 2: 372.0 – 371.0

- os números são armazenados no formato especificado,

- as casas decimais são alinhadas e

- a operação de adição é efetuada;

- O resultado é então normalizado e arredondado para dois dígitos:

372.0 – 371.0 = .37 x 103 - .37 x 103 = .37 x 103

- .37 x 103

= .00 x 103

.00 x 100

O resultado da subtração é 0.0 em vez de 1.0

Capítulo 2. Computação Numérica - Representação e conversão de números 35/60

Page 38: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Aritmética de ponto flutuante Computação Científica

- Exemplo 3: 1234.0 x 0.016

- os números são armazenados no formato especificado,

- a multiplicação é efetuada utilizando 2p = 4 dígitos na mantissa;

- o resultado é então normalizado e arredondado para dois dígitos:

1234.0 x 0.016 = .12 x 104 x .16 x 10-1 = .12 x 104

x .16 x 10-1

= .0192 x 103

.19 x 102

O resultado da multiplicação é 19.0 em vez de 19.744.

Capítulo 2. Computação Numérica - Representação e conversão de números 36/60

Page 39: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Aritmética de ponto flutuante Computação Científica

- A perda de precisão quando dois números aproximadamente iguais são subtraídos é das maiores

fontes de erro nas operações de ponto flutuante.

- Uma das causas de se cometer erros quando se usa um computador deve-se à conversão de base:

- um número é fornecido ao computador na base 10 e

- armazenado na base 2.

- Enquanto que

- para um número inteiro, a representação é exata; por exemplo, 4410 = 1011002.

- para um número real com parte fracionária, a representação

- pode ter que ser arredondado para ser armazenado em formato com ponto flutuante.

Capítulo 2. Computação Numérica - Representação e conversão de números 37/60

Page 40: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Operações com números em binário - Adição binária Computação Científica

Operações com números em binário -

Adição binária

- Uma adição no sistema binário é realizada da mesma forma que a adição no sistema decimal.

- A adição é realizada de acordo com as seguintes regras (considerando os dois operandos positivos):

0 + 0 = 0

0 + 1 = 1

1 + 0 = 1

1 + 1 = 0 (e “vai 1” para o dígito de ordem superior)

1 + 1 + 1 = 1 (e “vai 1” para o dígito de ordem superior)

- Para somar números com mais de 2 algarismos,

- utiliza-se o mesmo processo de transporte para a coluna posterior, usado na adição decimal.

Exemplo: 1012 + 0112 = 10002 (510 + 310 = 810)

[1] [1] [1]

1 0 1

+ 0 1 1

1 0 0 0

Capítulo 2. Computação Numérica - Representação e conversão de números 38/60

Page 41: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Operações com números em binário - Adição binária Computação Científica

- Quando um dos operandos são números binários negativos, o processo a aplicar é o seguinte:

- dois operandos negativos:

- adicionam-se os dois números considerando o valor absoluto de cada um deles e

- atribui-se o sinal de negativo;

- um deles é negativo:

- verifica-se qual dos dois números tem maior valor absoluto,

- subtraí-se o menor valor absoluto ao maior e,

- atribui-se o sinal do maior em valor absoluto.

Capítulo 2. Computação Numérica - Representação e conversão de números 39/60

Page 42: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Operações com números em binário - Subtração binária Computação Científica

Operações com números em binário -

Subtração binária

- A subtração é análoga à adição, sendo realizada de acordo com as seguintes regras:

0 - 0 = 0

0 - 1 = 1 (e “pede emprestado 1” para o dígito de ordem superior)

1 - 0 = 1

1 - 1 = 0

- A operação 0 - 1 resulta em 1, mas com o transporte de 1 para a coluna à esquerda, que deve ser

- acumulado ao subtraendo e, por consequência,

- subtraído do minuendo

(em a-b, a o minuendo e b é o subtraendo).

Exemplo 1: 1012 - 0112 = 0102 (510 - 310 = 210)

[1]

1 0 1

- 0 1 1

0 1 0

Capítulo 2. Computação Numérica - Representação e conversão de números 40/60

Page 43: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Representação de números em computadores digitais Computação Científica

Representação de números em computadores digitais

- As representações de números inteiros e reais apresentadas na secção anterior não são suficientes,

pois é necessário distinguir-se, por exemplo, o sinal do número.

- Como não existe a representação do sinal + ou - na memória de um computador, o recurso utilizado é

acrescentar um bit ao número para representar o sinal; este bit é denominado de bit de sinal.

- Representação de inteiros pode ser:

- em Sinal-Módulo e

- em Complemento à base (a b e a b-1)

- Representação de números reais pode ser:

- em ponto flutuante normalizado

Capítulo 2. Computação Numérica - Representação e conversão de números 41/60

Page 44: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Representação de números em computadores digitais - Números inteiros (em Sinal-Módulo) Computação Científica

Representação de números em computadores digitais -

Números inteiros (em Sinal-Módulo)

- A representação mais direta de inteiros é a de Sinal-Módulo (ou Sinal-Magnitude), onde

- o valor absoluto do número inteiro é obtido diretamente a partir dos algoritmos discutidos antes, e

- o sinal é representado por um dígito adicional colocado à esquerda do número.

- Na representação binária, o bit de sinal ocupa a posição do bit mais significativo.

- Supondo que o computador dispõe de q dígitos para a representação, um inteiro na base b será

representado no computador através da seguinte sequência de dígitos (denominada palavra):

aq-1 aq-2 ...a1 a0

em que

{ a0, a1, …, aq-2 } { 0, 1, …, b-1 } e

aq-1 { 0, 1 } representa o sinal do número.

- Por exemplo, no sistema binário convenciona-se usar

- aq-1 = 0 para “+” e

- aq-1 = 1 para “-”.

Capítulo 2. Computação Numérica - Representação e conversão de números 42/60

Page 45: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Representação de números em computadores digitais - Números inteiros (em Sinal-Módulo) Computação Científica

- A conversão do número internamente representado por aq-1 aq-2 ...a1 a0 para o sistema decimal é

realizado através de uma fórmula semelhante à forma polinomial:

N = (−1)a

q−1 × ∑k=0

q−2

(ak× bk),

em que,

N o número inteiro na base decimal

q-2 é o índice do dígito mais à esquerda que representa o valor absoluto de N

b a base, às vezes denominada de radix (um inteiro maior que 1)

ak um dígito válido na representação (ak { 0, ..., b-1 }), k = 0, 1, …, q-2

aq-1 { 0, 1 } e representa o bit de sinal

- Os valores para as quantidades expressas dependem da arquitetura e do compilador utilizado.

Capítulo 2. Computação Numérica - Representação e conversão de números 43/60

Page 46: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Representação de números em computadores digitais - Números inteiros (em Sinal-Módulo) Computação Científica

- Por exemplo, um dado compilador possui 4 modelos de representação de inteiros com 1, 2, 4 e 8 bytes,

também denominados de espécies.

- Sendo para todos os casos b = 2, o valor absoluto do maior número inteiro que pode ser representado

internamente para cada espécie Nmaxp , (p = 1, 2, 4, 8) é o seguinte:

Nmaxp = ∑

k=0

8p−2

2k = 20 + 21 + 22 + ... + 28p−2 = 28p−1 − 1 = {127 (p=1)32767 (p=2)2147483647 (p=4)9223372036854775807 (p=8)

Capítulo 2. Computação Numérica - Representação e conversão de números 44/60

Page 47: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Representação de números em computadores digitais - Números inteiros (em Complemento a b-1) Computação Científica

Representação de números em computadores digitais -

Números inteiros (em Complemento a b-1)

- A representação de números inteiros positivos em Complemento a b-1 é idêntica à em Sinal-Módulo.

- A representação dos números negativos é obtida efetuando-se:

(b - 1) menos cada algarismo do número.

- Por exemplo, calcular o complemento a b–1 do número -29710

- b = 10, logo complemento a b-1 será complemento a 9;

- como 999 – 297 = 702, o complemento a 9 do número -297 é 702.

Capítulo 2. Computação Numérica - Representação e conversão de números 45/60

Page 48: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Representação de números em computadores digitais - Números inteiros (em Complemento a b-1) Computação Científica

- Para se obter o complemento a b–1 de um número binário,

- deve-se subtrair cada algarismo de 1 (b - 1 = 1);

- como se trata de binários, basta inverter todos os bits.

- Por exemplo,

- o complemento a 1 (C1) do número 00112 (usando 4 dígitos) é 11002 : 11112 – 00112 = 11002

- Quantidade de números inteiros diferentes que se podem representar com n posições num sistema de

base b:

- total: bn

- Por exemplo, na base 2, podem-se representar os seguintes números:

- 21 = 2 números com um dígito (0, 1),

- 22 = 4 números com dois dígitos (00, 01, 10, 11),

- 23 = 8 números com três dígitos (000, 001, 010, 011, 100, 101, 110, 111),

- . . .

Capítulo 2. Computação Numérica - Representação e conversão de números 46/60

Page 49: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Representação de números em computadores digitais - Números inteiros (em Complemento a b-1) Computação Científica

- A tabela seguinte apresenta a representação em C1 dos números binários de 4 dígitos:

Decimal

(positivo)

Binário em C1

(igual a sinal-módulo)

Decimal

(negativo)Binário em C1

0 0000 0 1111

1 0001 -1 1110

2 0010 -2 1101

3 0011 -3 1100

4 0100 -4 1011

5 0101 -5 1010

6 0110 -6 1001

7 0111 -7 1000

- Note-se que há 2 representações para o zero.

Capítulo 2. Computação Numérica - Representação e conversão de números 47/60

Page 50: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Representação de números em computadores digitais - Números inteiros (em Complemento a b-1) Computação Científica

- A representação na base b = 10 com 3 dígitos varia de 000 a 999 (103 = 1000 representações),

- representando os números de -499 a -1 com 500 a 998;

- representando os números de +1 a +499 com 1 a 499;

- representando o zero (0) com 000 ou 999.

- Faixa de representação em C1 dos números binários com n dígitos:

- menor inteiro negativo: -(2n-1 – 1)

- maior inteiro positivo: 2n-1 – 1

Capítulo 2. Computação Numérica - Representação e conversão de números 48/60

Page 51: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Representação de números em computadores digitais - Números inteiros (em Complemento a b-1) Computação Científica

- Na aritmética em complemento a b-1,

- basta somar os números,

- sendo que um número negativo será representado por seu complemento a b–1.

- Por exemplo, a soma decimal de 123 com -418 é:

- Sinal-Módulo

-418 + 123 = -295

- Complemento a 9 (b - 1)

-418 é representado por 999 - 418 = 581

581 + 123 = 704

999 - 704 = 295, em que 704 é o C9 de -295 (704 está na faixa negativa).

Capítulo 2. Computação Numérica - Representação e conversão de números 49/60

Page 52: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Representação de números em computadores digitais - Números inteiros (em Complemento a b) Computação Científica

Representação de números em computadores digitais -

Números inteiros (em Complemento a b)

- A representação dos números negativos em complemento a b é obtida

- subtraindo-se da base b cada algarismo do número.

- Por exemplo, na base b = 10 com 3 dígitos: 1000 – x.

- Uma forma alternativa é

- subtrair cada algarismo de (b – 1), isto é, calcular o complemento a b-1, e depois

- somar 1 ao resultado.

- Por exemplo, calcular o complemento a b (base = 10) do número 29710 com 3 dígitos:

- usando C10: 1000 – 297 = 703;

- representar o número em C9 e somar 1 ao resultado: 999 – 297 = 702 702 + 1 = 703

- Por exemplo, calcular o complemento a 2 (base = 2) do número 00112 com 4 dígitos:

- usando C2: 10000 – 0011 = 1101;

- representar o número em C1 e somar 1: 1111 – 0011 = 1100 1100 + 0001 = 1101.

Capítulo 2. Computação Numérica - Representação e conversão de números 50/60

Page 53: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Representação de números em computadores digitais - Números inteiros (em Complemento a b) Computação Científica

- Tabela com a representação em C2 dos números binários de 4 dígitos:

Decimal

(positivo)

Binário em C2

(igual a sinal-módulo)

Decimal

(negativo)Binário em C2

0 0000 -1 1111

1 0001 -2 1110

2 0010 -3 1101

3 0011 -4 1100

4 0100 -5 1011

5 0101 -6 1010

6 0110 -7 1001

7 0111 -8 1000

- Comparando com a tabela anterior (para C1),

- os números positivos têm a mesma representação de C1 e

- o zero passou a ter apenas uma representação,

- o que permitiu representar mais um número (neste caso, mais um negativo, o -8).

- A faixa de representação em C2 dos números binários com n dígitos é a seguinte:

menor inteiro negativo: - 2n-1,

maior inteiro positivo: 2n-1 – 1.

Capítulo 2. Computação Numérica - Representação e conversão de números 51/60

Page 54: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Representação de números em computadores digitais - Números reais Computação Científica

Representação de números em computadores digitais -

Números reais

- Representação de números reais em computadores denomina-se por

- representação de ponto flutuante normalizado.

- Nesta representação um número é representado internamente através de uma notação científica:

- um bit de sinal s (interpretado como positivo ou negativo),

- um expoente inteiro exato e

- uma mantissa inteira positiva M,

sendo que apenas um número limitado de dígitos é permitido para e e M.

Capítulo 2. Computação Numérica - Representação e conversão de números 52/60

Page 55: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Representação de números em computadores digitais - Números reais Computação Científica

- Tomando todas estas quantidades juntas, estas representam o número

x = s × (0.d1d2...dn)× be

em que,

- s é o sinal do número,

- os dígitos d1, d2, …, dn

- formam a mantissa M = 0.d1d2...dn e

- são limitados pela base b (0 di b-1, i = 1, …, n e d 1 0),

- o expoente e é limitado ao intervalo e { emin, ..., emax },

- n ≥ 1

- denomina-se de número de dígitos do sistema e

- define o tamanho da mantissa M

- O valor zero não pode ser normalizado e tem representação especial:

- com mantissa nula (todos dígitos iguais a zero) e

- expoente o menor possível.

Capítulo 2. Computação Numérica - Representação e conversão de números 53/60

Page 56: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Representação de números em computadores digitais - Números reais Computação Científica

- O conjunto formado pelo zero e por todos os números em notação de ponto flutuante

- é chamado de Sistema de Ponto Flutuante na base b com n algarismos significativos, e

- denota-se por F(b, n, emin, emax).

- Um computador apenas pode representar os valores de e e M com os dígitos na base b.

- Um computador digital (b = 2) dispõe sempre de um tamanho de palavra finito:

- o número total de bits que podem ser utilizados para representar s (1 bit),

- o expoente e

- a mantissa,

é sempre fixo, para um dado tipo de números reais.

- Por exemplo, um número real de precisão simples é normalmente representado por 4 bytes (32 bits):

- 1 bit é utilizado para representar o sinal,

- 8 bits são utilizados para representar o expoente e

- os restantes 23 bits para representar a mantissa.

Capítulo 2. Computação Numérica - Representação e conversão de números 54/60

Page 57: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Representação de números em computadores digitais - Números reais Computação Científica

- Um número real será representado na memória do computador como

x = s e7 e6 ... e1e0 d1d2...d22d23,

em que

s ,e0 ,... ,e7,d1, ... ,d23 ∈ { 0, 1 }.

- Exemplo:

- Considere-se dois números binários com 8 algarismos significativos em F(2, 8, -3, 4):

- n1 = 0 010 111001102 => (-1)0 x 22 x (0.11100110) = 3.5937510

- n2 = 0 010 111001112 => (-1)0 x 22 x (0.11100111) = 3.60937510 .

- Observe que, no sistema de representação utilizado,

- n1 e n2 são dois números consecutivos, ou seja

- não se pode representar nenhum outro número que tenha valor intermédio.

- Portanto, por exemplo, a quantidade 3.60000

- não tem representação exata neste sistema, sendo representada por n1 ou n2,

- o que gerará um erro, denominado Erro de Arredondamento.

Capítulo 2. Computação Numérica - Representação e conversão de números 55/60

Page 58: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Representação de números em computadores digitais - Números reais Computação Científica

- Assim,

- os números reais podem ser representados por uma reta contínua,

- em notação de ponto flutuante apenas se podem representar pontos discretos da reta real.

- Conversão de um número x representado na base b para a base decimal:

x = (−1)s × be × ∑k=1

n

(dk × b−k).

- A tabela mostra alguns valores para um dado computador que usa o padrão IEEE 754.

Espécie REAL (4) REAL (8) REAL (10)

n

emin

emax

Xmin

Xmax

Xeps

23

-126

127

1.1754944 x 10-38

3.4028235 x 1038

1.1920929 x 10-7

52

-1022

1023

2.225073858507201 x 10-308

1.797693134862316 x 10308

2.220446049250313 x 10-16

64

-16382

16383

3.362103143112093506... x 10-4932

1.189731495357231765... x 104932

1.925929944387235853... x 10-34

Capítulo 2. Computação Numérica - Representação e conversão de números 56/60

Page 59: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Representação de números em computadores digitais - Números reais Computação Científica

- Como no sistema normalizado d1 ≠ 0 e dado que a base é 2,

- então primeiro dígito da mantissa no sistema normalizado será sempre igual a 1 e

- por esta razão não é armazenado (é o denominado bit escondido).

- Esta normalização permite um ganho na precisão, pois pode-se considerar que a mantissa é armazenada

em 24 bits.

- Os números do sistema F = F ( b, n, emin, emax ) contêm as características:

- O menor número positivo que pode ser representado neste sistema é

xmin = 0.1 × bemin

Isto significa que qualquer número x tal que

−xmin < x < xmin

não poderá ser representado pelo computador - ocorre underflow.

Os compiladores podem ser instruídos para

- terminar o processamento neste ponto, disparando uma mensagem de erro, ou

- seguir o processamento arredondando x = 0

Capítulo 2. Computação Numérica - Representação e conversão de números 57/60

Page 60: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Representação de números em computadores digitais - Números reais Computação Científica

- O maior número positivo que pode ser representado neste sistema é

xmax = 0.(b−1)(b−1)...(b−1)n vezes

× bemax = (b−1) × (∑k=1

n

b−k)× bemax = (1 −b−n) b

emax

Isto significa que qualquer número x tal que

x < −xmax ou x > xmax não poderá ser representado pelo computador – ocorre overflow.

Os compiladores normalmente tomam duas possíveis providências quando detetam um overflow:

- param o processamento do programa emitindo uma mensagem de erro, ou

- continuam o processamento atribuindo a x o valor simbólico -Infinito ou Infinito.

- O maior número que pode ser somado ou subtraído a 1.0, em que o resultado permanece inalterado (i.é, a

diferença entre 1.0 e o número que lhe sucede em F), é

xeps = 0.10... 01n vezes

× b1 − 0.10...0 0n vezes

× b1 = b1−n

em que xeps é denominada de epsilon da máquina, , ou de ϵ precisão da máquina.

O epsilon da máquina, , também pode ser definido como o menor número de ponto flutuante, tal que: ϵ

1 + > 1. ϵ

Esta quantidade é da maior importância na análise de erros de arredondamento.

Capítulo 2. Computação Numérica - Representação e conversão de números 58/60

Page 61: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Representação de números em computadores digitais - Números reais Computação Científica

- De uma forma mais geral, para um número em ponto flutuante x F define-se∈

ulp(x) = (0.00...01)b x be = b-n x be = x be

em que ulp é a abreviatura para unit in the last place.

Se x > 0, então ulp(x) é a distância entre x e o número que lhe sucede em F;

Se x < 0, então ulp(x) é a distância entre x e o número que o antecede em F.

- Apenas um conjunto finito RF de números racionais podem ser representados na forma apresentada:

- estes números denominam-se de números de ponto flutuante.

- Para uma representação normalizada (d1 ≠ 0), este conjunto contém precisamente

2 (b−1) bn−1 (emax − emin + 1)+ 1 números racionais.

Capítulo 2. Computação Numérica - Representação e conversão de números 59/60

Page 62: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Representação de números em computadores digitais - Números reais Computação Científica

- Exemplo: considere o sistema de representação numérica F(2, 4, -5, 6).

Para este sistema:

- O menor número positivo possível é:

xmin = (0.1000)2 × 2−5 = 2−5−1 =164

;

ou seja, a região de underflow consiste no intervalo

−164

< x <164

- O maior número positivo possível é:

xmax = (0.1111)2 × 26 = (1 − 2−4) × 26 = 60;

ou seja, as regiões de overflow consistem nos intervalos

x < −60 e x > 60.

- O maior número que pode ser somado ou subtraído de 1.0 tal que mantém o resultado inalterado é:

xeps = 21−4 = 2−3 = 18

.

- O número de elementos em RF é:

2 × 1 × (6 + 5 + 1)× 24−1 + 1 = 193.

Capítulo 2. Computação Numérica - Representação e conversão de números 60/60

Page 63: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Tópicos Computação Científica

Tópicos

- Fontes de erros e incertezas

- Incerteza

- Precisão e exatidão

- Tipos de erros

- Valores aproximados e erros

- Erros de arredondamento

- Erros de truncatura

- Condicionamento e estabilidade

- Análise de erros

Capítulo 2. Computação Numérica - Análise e representação de erros 1/38

Page 64: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Fontes de erros e incertezas Computação Científica

Fontes de erros e incertezas

- Embora se procure soluções “exatas” dos problemas reais, raramente este objetivo é atingido.

- Erros e incertezas podem ser introduzidos em qualquer etapa da resolução dos problemas.

- Esta secção aborda

- a natureza das incertezas que surgem quando se procura a solução de um problema;

- os erros introduzidos pela computação numérica para determinar a solução desejada.

- Não serão considerados erros triviais que podem ser evitados, tais como

- copiar uma fórmula erroneamente, ou

- efetuar um erro de sintaxe na programação.

- Serão abordados os erros que resultam de forma inevitável, dada a própria natureza da

- representação de números num computador, e/ou

- implementação numérica de um determinado cálculo.

Capítulo 2. Computação Numérica - Análise e representação de erros 2/38

Page 65: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Incerteza Computação Científica

Incerteza

- A incerteza é uma característica intrínseca dos problemas reais

- surgem de múltiplas origens, e

- possuem natureza distinta.

- A incerteza emerge da cada vez maior complexidade dos sistemas reais

- As incertezas introduzidas

- contaminam a solução e é importante tentar-se balancear as incertezas,

- ocorrem em todas as etapas do processo de resolução de um problema.

- Geralmente, é impraticável que os modelos matemáticos possam

- capturar todos os fenómenos inter-relacionados relevantes presentes,

- chegar até toda a informação necessária,

- dar conta das alterações e/ou hesitações relacionadas com a expressão das preferências de quem decide.

- Um modelo matemático pode incluir vários tipos de incerteza, a qual pode ocorrer

- nos dados do modelo,

- na precisão do modelo usado para descrever o sistema, ou

- na sequência de acontecimentos que podem ocorrer num sistema.

Capítulo 2. Computação Numérica - Análise e representação de erros 3/38

Page 66: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Incerteza Computação Científica

- A incerteza pode ser incluída no modelo de duas forma:

- no fim do processo (pós-otimização),

- incorporada explicitamente no modelo (é intrínseca ao modelo).

A importância da construção de modelos que incorporem explicitamente a incerteza está no facto de a

maioria dos problemas reais não poderem ser modelados deterministicamente (de forma exata).

- Algumas razões da necessidade deste tipo de modelos são as seguintes:

- a natural incerteza das previsões relativas ao futuro;

- a impossibilidade de medir os conceitos do mundo real com a precisão exigida pelo modelo matemático;

- a impossibilidade de implementar uma solução com a precisão obtida através do modelo matemático;

- a natural e constante alteração do mundo real onde a solução é implementada;

- o facto das expressões matemáticas associadas ao modelo serem apenas traduções aproximadas

- dos objetivos e

- das restrições do problema real.

Capítulo 2. Computação Numérica - Análise e representação de erros 4/38

Page 67: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Incerteza Computação Científica

- São várias e distintas as causas da incerteza:

- falta de informação

- não tem qualquer informação sobre os dados,

- tem apenas as probabilidades de ocorrência dos dados.

- excesso de informação, os dados são processados pelo analista que

- os transforma em dados percetíveis,

- centra a sua atenção nos aspetos que lhe parecem ser os mais importantes (diferentes do AD).

- provas em conflito, perante a mesma situação há diferentes interpretações, devido

- a parte da informação disponível ao analista estar errada (mas não identificável como tal),

- às características da informação serem irrelevantes para o sistema,

- ao modelo que o analista tem do sistema ser incorreto.

Capítulo 2. Computação Numérica - Análise e representação de erros 5/38

Page 68: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Incerteza Computação Científica

- São várias e distintas as causas da incerteza (cont):

- ambiguidade, situações em que certas informações têm

- significados totalmente diferentes (em termos linguísticos),

- uma correspondência de um para vários (matematicamente falando).

- medições, se uma dada propriedade exata não puder ser medida com precisão,

- tem-se alguma incerteza relativamente à medição real,

- conhece-se apenas uma medida indicativa.

- crença

- situações em que a informação disponível ao analista é subjetiva (crença numa certa circunstância).

Capítulo 2. Computação Numérica - Análise e representação de erros 6/38

Page 69: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Precisão e exatidão Computação Científica

Precisão e exatidão

- Precisão:

- refere-se ao quão próximo um número representado pelo computador representa o número que

ambiciona representar;

- é caracterizada pelo número de dígitos usados na representação e nas operações algébricas;

- por exemplo, será representada com maior precisão utilizando 8 bytes do que com 4 bytes.

- Exatidão:

- refere-se a quão próximo um número representado pelo computador está do valor correto do número

que ele almeja representar;

- é caracterizada pelos erros (de truncatura e arredondamento) no método numérico.

Capítulo 2. Computação Numérica - Análise e representação de erros 7/38

Page 70: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Precisão e exatidão Computação Científica

- Exemplo:

Os números

1 = 3.141630496

2 = 3.141580949

almejam representar

= 3.141592654…

1 e 2 possuam a mesma precisão:

10 dígitos significativos

o número 2 possui maior exatidão do que 1 :

| - 1| = 0.000037842

| - 2| = 0.000011705

- Os conceitos de precisão e exatidão são muitas vezes confundidos entre si.

- É frequente referir-se à precisão quando o correto seria referir-se à exatidão de um resultado.

Capítulo 2. Computação Numérica - Análise e representação de erros 8/38

Page 71: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Tipos de erros Computação Científica

Tipos de erros

- Durante as etapas de resolução de um problema, surgem erros de várias origens que podem alterar

profundamente os resultados (soluções) obtidos.

- Em função das suas origens, pode-se considerar dois tipos de erros:

- erro exterior ao processo de cálculo, e

- erro que ocorre durante o processo de cálculo.

- O erro exterior ao processo de cálculo podem ser

- inicial (associado aos dados e aos parâmetros do modelo),

- de modelação (inerente à construção dos modelos matemáticos), e

- grosseiro (inerente à elaboração e implementação dos algoritmos);

- Os erros que ocorrem durante o processo de cálculo podem ser

- de arredondamento, que é inerente

- à representação de entidades numéricas nas máquinas e

- às operações que um computador pode realizar,

- de truncatura (associado ao uso de métodos numéricos).

- Como consequência destes erros, as soluções numéricas obtidas são, em geral, aproximadas.

Capítulo 2. Computação Numérica - Análise e representação de erros 9/38

Page 72: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Tipos de erros Computação Científica

- Erros nas diversas etapas do processo de resolução de problemas:

Capítulo 2. Computação Numérica - Análise e representação de erros 10/38

Page 73: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Tipos de erros - erro inicial (nos dados do modelo) Computação Científica

Tipos de erros - erro inicial (nos dados do modelo)

- Na modelação matemática, muitas vezes é necessário usar dados obtidos experimentalmente.

- Nesta fase, pode ocorrer

- uma modelação incorreta (a expressão matemática não reflete adequadamente o fenómeno físico), ou

- os dados terem sido obtidos com pouca exatidão.

- Nestes casos, é necessária a realização de testes para verificar o quanto os resultados são sensíveis às

alterações dos dados fornecidos (análise de sensibilidade).

- Grandes alterações nos resultados devido a pequenas variações nos dados

- são sintomas de um mal condicionamento do modelo proposto,

- havendo então necessidade de uma nova modelação do problema.

- Um problema matemático diz-se

- mal condicionado:

- se a solução obtida é muito sensível a pequenas variações nos dados e nos parâmetros do problema;

- bem condicionado:

- se pequenas variações nos dados e nos parâmetros induzem sempre pequenas variações na solução.

Capítulo 2. Computação Numérica - Análise e representação de erros 11/38

Page 74: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Tipos de erros - erro de modelação (ou de formulação) Computação Científica

Tipos de erros - erro de modelação (ou de formulação)

- Está relacionado com o facto de não estar completo, com rigor, o modelo matemático.

- Nesta situação, deve-se ter consciência que se está a trabalhar com um modelo

- mal construído e

- não adequado à realidade física.

- Desta forma, nenhum método numérico poderá originar resultados precisos.

Capítulo 2. Computação Numérica - Análise e representação de erros 12/38

Page 75: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Tipos de erros - erro grosseiro Computação Científica

Tipos de erros - erro grosseiro

- A possibilidade de um computador cometer um erro é muito baixa.

- No entanto, podem ser cometidos erros na elaboração do algoritmo

- na sua implementação, e

- na introdução dos dados iniciais.

- Executar o programa com dados iniciais cujos resultados (solução) são conhecidos,

- ajuda a detetar erros e a removê-los, mas

- demonstra, apenas, que o programa está correto para aquele conjunto de dados (por isso, é que estes

dados devem ser específicos);

- o ideal seria elaborar uma prova de correção de programa, o que não é uma tarefa trivial.

Capítulo 2. Computação Numérica - Análise e representação de erros 13/38

Page 76: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Tipos de erros - erro de arredondamento Computação Científica

Tipos de erros - erro de arredondamento

- Um qualquer número decimal pode não ser representado exatamente num computador porque tem

que ser

- convertido em binário (base 2), e

- armazenado num número finito de bits.

- O erro causado pela imperfeição na representação de um número chama-se erro de arredondamento

Capítulo 2. Computação Numérica - Análise e representação de erros 14/38

Page 77: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Tipos de erros - erro de truncatura Computação Científica

Tipos de erros - erro de truncatura

- O erro de truncatura é devido à aproximação de um problema por outro.

- Por exemplo, a substituição de um problema contínuo por um discreto.

- Para avaliar uma função matemática no computador,

- apenas podem ser requeridas as operações aritméticas e lógicas (as operações que é capaz de efetuar).

- Por exemplo, para avaliar f(x) = sen(x) esta tem que ser aproximada por uma série (de Taylor),

sen(x) = ∑n=0

∞(−1)n

x2n+1

(2n+1)!= x −

x3

6+

x5

120−

x7

5040+ ... , 0 ≤ x ≤ π

4

(à medida que n aumenta, mais o valor da série se aproxima do valor real)

Capítulo 2. Computação Numérica - Análise e representação de erros 15/38

Page 78: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Tipos de erros - erro de truncatura Computação Científica

- A tabela que se segue

- mostra a diferença (para n de 0 até 2, 3 e 4) entre

- o valor obtida pela série de sen(x) e

- um valor mais exato.

- Verifica-se que quando n aumenta, o erro de truncatura diminui, ficando claro que estes erros são

devidos às várias truncaturas da série.

∑n=0

∞(−1)n

x2n+1

(2n+1)!−sen(x )

x n = 0, ..., 2 n = 0, …, 3 n = 0, …, 4

0 0 0 0

/16 2.4 x 10-6 2.2 x 10-9 1.2 x 10-12

/8 7.8 x 10-5 2.9 x 10-7 6.1 x 10-10

/6 3.3 x 10-4 2.1 x 10-6 8.1 x 10-9

/4 2.5 x 10-3 3.6 x 10-5 3.1 x 10-7

Capítulo 2. Computação Numérica - Análise e representação de erros 16/38

Page 79: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Valores aproximados e erros Computação Científica

Valores aproximados e erros

- Ao resolver um problema numérico no computador

- obtém-se, em geral, um valor aproximado da solução exata do problema.

- Assim sendo, é importante poder avaliar-se a qualidade da aproximação.

- Isto é, estimar ou limitar a discrepância entre

- a solução aproximada calculada e

- a solução exata.

- Esta qualidade pode ser medida através do cálculo dos erros

- absoluto e

- relativo

Capítulo 2. Computação Numérica - Análise e representação de erros 17/38

Page 80: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Valores aproximados e erros - Erro absoluto Computação Científica

Valores aproximados e erros - Erro absoluto

- Seja,

- X o valor exato de um número e

- fl(X) o seu valor aproximado por uma representação de ponto flutuante.

- O erro absoluto (EAX) é definido como

- o valor absoluto da diferença entre o valor exato e o valor aproximado:

EAX = | X - fl(X) |

- Ou seja, conhecendo-se fl(X) e EAX, pode-se afirmar que

X = fl(X) EAX

Capítulo 2. Computação Numérica - Análise e representação de erros 18/38

Page 81: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Valores aproximados e erros - Erro absoluto Computação Científica

- Como para a maior parte dos problemas X é desconhecido,

- não é possível calcular o erro absoluto,

- sendo apenas possível estimar-se o seu valor.

- Geralmente conhece-se a quantidade não negativa dX, tal que

EAX = | X - fl(X) | ≤ dX

que se denomina por um limite superior do erro absoluto.

- Desta relação pode-se concluir que o valor exato pertence ao intervalo

fl(X) - dX ≤ X ≤ fl(X) + dX

Capítulo 2. Computação Numérica - Análise e representação de erros 19/38

Page 82: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Valores aproximados e erros - Erro relativo Computação Científica

Valores aproximados e erros - Erro relativo

- Seja,

- X o valor exato de um número e

- fl(X) o seu valor aproximado,

- O erro relativo (ERX) pode ser definido como o erro absoluto dividido por X:

ERX =EAX

∣X ∣= ∣X − fl(X)

X ∣ ≤δX

∣X ∣.

- Como para a maior parte dos problemas X é desconhecido, é usual substituí-lo pelo valor aproximado

fl(X) no denominador da expressão para o erro relativo:

ERX =EAX

∣ fl(X)∣= ∣X − fl(X)

fl(X) ∣ ≤δX

∣ fl(X)∣.

- O erro relativo

- não tem dimensão e, em geral

- só é conhecido o limite superior do seu valor, X, que se define como ERX ≤ X

- Em geral, a melhor medida para se estimar a precisão de uma aproximação é o erro relativo, pois

este indica diretamente o número de dígitos significativos corretos na aproximação.

Capítulo 2. Computação Numérica - Análise e representação de erros 20/38

Page 83: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Valores aproximados e erros - Número de dígitos significativos Computação Científica

Valores aproximados e erros - Número de dígitos significativos

- Quando se contabiliza o número de dígitos de um valor numérico,

- não se deve incluir os zeros no início do número,

- uma vez que estes zeros apenas ajudam a localizar a posição ideal do ponto decimal.

- Caso se pretenda contabilizar o número de decimais,

- então os zeros à direita do ponto decimal devem ser incluídos.

- Exemplos:

- o número 0.00147 é dado com três dígitos significativos mas possui cinco decimais.

- o número 12.34 é dado com quatro dígitos significativos, mas possui apenas dois decimais.

Capítulo 2. Computação Numérica - Análise e representação de erros 21/38

Page 84: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Valores aproximados e erros - Número de dígitos significativos Computação Científica

- Uma maneira alternativa de

se estimar a qualidade da aproximação, ou seja, a exatidão do número,

consiste em calcular o número de dígitos significativos corretos da representação.

- Os algarismos significativos

- são o conjunto de algarismos corretos de uma medida

- mais um último algarismo, que é o duvidoso (zeros à direita são algarismos significativos e zeros à esquerda

não são).

- O dígito significativo do valor aproximado que se encontra

- mais à esquerda é chamado de digito mais significativo e o

- mais à direita digito menos significativo.

- O número de dígitos significativos de um valor aproximado dá boa informação sobre a qualidade dessa

aproximação (exatidão do número).

Capítulo 2. Computação Numérica - Análise e representação de erros 22/38

Page 85: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Valores aproximados e erros - Número de dígitos significativos Computação Científica

- Dada uma representação decimal:

1.O algarismo zero que correspondem às ordens maiores não são significativos.

Exemplos:

001234.56 os 2 primeiros zeros não são significativos, o número tem 6 algarismos significativos; →

0.000443 os 4 primeiros zeros não são significativos, o número tem 3 algarismos significativos. →

2.O algarismo zero que corresponde às menores ordens, se elas são fracionárias, são significativos.

Exemplo:

12.00 os 2 últimos zeros são significativos, o número tem 4 números significativos.→

3.Os algarismos de 1 a 9 são sempre significativos.

Exemplos:

641 o número tem 3 números significativos; →

38.984 o número tem 5 algarismos significativos.→

4.Zeros entre algarismos de 1 a 9 são significativos.

Exemplo:

1203.4 todos os 5 algarismos são significativos.→

Capítulo 2. Computação Numérica - Análise e representação de erros 23/38

Page 86: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Valores aproximados e erros - Número de dígitos significativos Computação Científica

5.Os zeros que completam números múltiplos de potências de 10 são ambíguos: a notação não permite dizer

se eles são ou não significativos.

Exemplo:

800 pode ter um algarismo significativo (8), dois algarismos significativos (80) ou três algarismos→

significativos (800).

Esta ambiguidade deve ser corrigida usando-se notação científica para representar estes números,

- 8x102 tem um algarismo significativo,

- 8.0x102 tem dois algarismos significativos, e

- 8.00x102 tem três algarismos significativos.

6.As constantes têm um número arbitrariamente elevado de algarismos significativos;

Exemplo:

o número π.

- Exemplos:

- 0.00023 tem dois algarismos significativos, que são → 23;

- 052.6 tem 3 algarismos significativos; →

- 0.000200 tem três algarismos significativos, já que tem zeros à direita; →

- 755555.66 tem 8 algarismos significativos. →

Capítulo 2. Computação Numérica - Análise e representação de erros 24/38

Page 87: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Erro de arredondamento Computação Científica

Erro de arredondamento

- O tamanho finito da palavra utilizada num computador digital para a representação de números de

ponto flutuante provoca o aparecimento de diversos tipos de erros.

- Uma estratégia para reduzir estes erros, usada na maioria dos computadores,

- consiste em utilizar números de ponto flutuante normalizados,

- isto é, números cuja mantissa M está sempre dentro do intervalo

b−1 =1b

≤ M < 1 = b0,

ou seja, 0.5 M 1 para computadores de base b = 2.

- Esta estratégia,

- diminui o número de zeros à direita do ponto e

- maximiza o número de dígitos não nulos utilizados para representar um número.

- No entanto, mesmo num sistema com representação normalizada, nem todos os números reais podem

ser representados.

Capítulo 2. Computação Numérica - Análise e representação de erros 25/38

Page 88: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Erro de arredondamento Computação Científica

- Exemplo:

- considere-se no sistema F(2, 4, -5, 6) o número racional

y = 0.12345999...

- A forma de representar y na base 2 é:

y = 0.12345999... = (0.000111111001101...)2.

- Para escrever y de acordo com aquele sistema, deve-se primeiro normalizar segundo as operações:

Y = 2−4 + 2−5 + 2−6 + 2−7 + 2−8 + 2−9 + 2−12 + 2−13 + 2−15 + ... = (0.111111001101... ) × 2−3,

- Pode-se então identificar

M = 0.111111001101... ; e = -3.

- Como para o sistema F(2, 4, -5, 6) a mantissa tem apenas 4 dígitos, uma possível aproximação para y é:

fl(y) = (0.1111) x 2-3,

que corresponde ao seguinte número na base 10:

fl(y) = 0.1171875… ,

resultando nos seguintes erros absoluto e relativo:

EAy = 6.272 x 10-3

ERy = 5.3525 x 10-2 = 5.35%.

Capítulo 2. Computação Numérica - Análise e representação de erros 26/38

Page 89: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Erro de arredondamento Computação Científica

- Considere-se X na forma normalizada e sem representação exata no sistema F(b, n, emin, emax)

- Pode-se escrever X como

X = 0.d1 d2 ...dndn+1... be = (0.d1 d2...dn) be + (0.0...0dn+1...) be =

= (0.d1d2...dn) be + (0.dn+1 ...) be−n

- Ou seja,

X = (0.d1 d2 ...dn) be + gX be−n

com

gX = (0.dn+1...) e ∣gX ∣< 1

em que

gX be-n é a parcela de X que não é incluída na sua representação.

- Existem duas formas de se realizar a aproximação:

- arredondamento por defeito (ou corte do número) e

- arredondamento simétrico.

Capítulo 2. Computação Numérica - Análise e representação de erros 27/38

Page 90: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Arredondamento por defeito (ou corte do número) Computação Científica

Arredondamento por defeito (ou corte do número)

- O arredondamento por defeito consiste simplesmente em ignorar gX.

- Assim,

fl(X) = (0.d1d2...dn) be

o qual é representável no sistema.

- O erro absoluto cometido por corte é

EAX = ∣X − fl(X)∣ = ∣gX ∣be−n < be−n

pois |gX| < 1, obtendo-se, desta forma, um limite superior para o erro absoluto.

- O erro relativo cometido por corte é

ERX =EAX

∣fl(X)∣=

gX be−n

(0.d1d2 ...dn) be=

gX be−n b−e

(0.d1d2 ...dn)<

b−n

b−1= b1−n

- pois (0.d1 d2...dn) ≥b−1 e ∣ gX ∣< 1 (d1 ≠ 0),

- obtendo-se, desta forma, um limite superior para o erro relativo ou unidade de erro de corte.

Capítulo 2. Computação Numérica - Análise e representação de erros 28/38

Page 91: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Arredondamento simétrico Computação Científica

Arredondamento simétrico

- No arredondamento simétrico, executa-se a seguinte operação:

fl(X) = {(0.d1d2...dn) be , se ∣gX ∣<12

(0.d1d2...(dn+1)) be , se ∣gX ∣≥ 12

- Neste caso, o erro absoluto cometido por arredondamento simétrico é

EAX = {∣gX ∣be−n, se ∣gX ∣<12

∣gX − 1∣be−n, se ∣gX ∣≥12

(<12

be−n),

de onde se obtém uma estimativa superior para o erro absoluto.

Capítulo 2. Computação Numérica - Análise e representação de erros 29/38

Page 92: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Arredondamento simétrico Computação Científica

- O erro relativo cometido por arredondamento simétrico é

ERX = {12

be−n

(0.d1d2... dn) be, se ∣gX ∣< 1

2

12

be−n

(0.d1d2...(dn+1)) be, se ∣gX ∣≥ 1

2

(<

12

be−n

(0.1)b be=

12

b1−n)- o qual fornece uma estimativa superior para o erro relativo,

- ao qual também se dá o nome de unidade de erro de arredondamento.

- No exemplo acima, como gy > 1⁄2,

- deve-se somar 1 ao dígito d4 resultando, com o auxílio da tabela de adição de binários,

fl(y) = (0.1111) 2−3 + (0.0001) 2−3 = (1.0000) 2−3 = (0.1000) 2−2,

- Neste caso, obtém-se

fl(y) = 0.125,

o qual possui um erro relativo de 1,2% de y, bem menor que o erro obtido com o arredondamento por

defeito, que foi de 5,35%.

Capítulo 2. Computação Numérica - Análise e representação de erros 30/38

Page 93: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Erro de truncatura Computação Científica

Erro de truncatura

- O erro de truncatura, surge com a utilização de certos métodos numéricos para a resolução do

problema matemático.

- Assim, originam estes erros deste tipo

- a substituição de um problema contínuo por um problema discreto ou

- de um processo de cálculo infinito por um finito, de modo que o método de resolução envolva apenas uma

sequência finita de operações aritméticas.

Capítulo 2. Computação Numérica - Análise e representação de erros 31/38

Page 94: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Cálculo de valores de funções transcendentes Computação Científica

Cálculo de valores de funções transcendentes

- As funções transcendentes

- devem ser aproximadas por funções racionais

- para que aproximações para os seus valores possam ser calculados no computador.

Capítulo 2. Computação Numérica - Análise e representação de erros 32/38

Page 95: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Discretização Computação Científica

Discretização

- Ao usar-se o teorema do valor médio para aproximar o integral de f(x) tem-se

∫a

b

f (x) dx = h ∑i=0

n−1

f (xi)+ R, com

x0 ,x1,..., xn ∈ [a,b] , x0 = a, xi = a + i h (i=1,2,...,n) e h=(b−a)/n,

onde, pelos teoremas do valor médio para integrais e do valor médio para a soma se tem

R = (h/2) (b – a) f'(), [a, b].

- Se R for suficientemente pequeno, então

∫a

b

f (x) dx h ∑i=0

n−1

f (xi).

- Ao usar-se

- a expressão da direita para calcular um valor aproximado para a expressão da esquerda

- está-se a substituir o problema contínuo do cálculo do integral pelo problema discreto do cálculo da soma

- O erro que se originou, R, é o erro de truncatura.

Capítulo 2. Computação Numérica - Análise e representação de erros 33/38

Page 96: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Condicionamento e estabilidade Computação Científica

Condicionamento e estabilidade

- Devido à existência dos chamados erros iniciais,

- os dados e parâmetros do problema matemático que se resolve (modelo matemático) não coincidem, em

geral, com os dados e parâmetros do problema real.

- Assim,

- se a solução exata do problema real for muito diferente da solução exata do problema matemático,

seja qual for o método usado para o resolver,

- então os resultados obtidos não terão interesse.

- Um modelo matemático cuja solução é muito sensível a variações nos seus dados e parâmetros diz-se

mal condicionado (ou matematicamente instável).

- Um problema diz-se bem condicionado (ou matematicamente estável) se pequenas variações nos dados

e parâmetros induzem sempre pequenas variações na solução.

Capítulo 2. Computação Numérica - Análise e representação de erros 34/38

Page 97: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Condicionamento e estabilidade Computação Científica

- A resolução de um problema numérico requer, em geral,

- a execução de um grande número de operações aritméticas e,

- originando cada uma delas um erro de arredondamento,

- a acumulação destes erros pode afetar significativamente o resultado obtido.

- Um método numérico diz-se instável, ou que apresenta instabilidade induzida,

- se a acumulação dos erros durante o cálculo pode ter grande influência no resultado final.

- Um método estável produz sempre bons resultados (com problemas bem condicionados).

Capítulo 2. Computação Numérica - Análise e representação de erros 35/38

Page 98: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Análise de erros Computação Científica

Análise de erros

- Na resolução numérica de um problema matemático num computador ocorrem erros.

- Para estimar ou limitar o efeito da acumulação desses erros nos resultados obtidos deve ser feito a

análise de erros.

- Existem algumas técnicas de análise de erros, tais como a direta e a inversa.

- Análise de erros direta

- Um algoritmo numérico define uma sequência finita de operações aritméticas.

- É assim possível, teoricamente, usando limites para os erros,

- limitar ou estimar a cada passo o erro do resultado intermédio e

- consequentemente o erro do resultado final.

- Na análise de erros inversa

- o resultado calculado de um problema numérico é interpretado como o resultado exato do problema que

resulta de uma alteração nos dados e parâmetros do problema real.

Capítulo 2. Computação Numérica - Análise e representação de erros 36/38

Page 99: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Conclusão Computação Científica

Conclusão

- A figura ilustra a ocorrência de erros no processo de resolução de um problema matemático

- Os erros de modelação (iniciais) são inerentes ao problema,

- Os erros de truncatura são inerentes ao método,

- Os erros de arredondamento ocorrem no processo de cálculo de uma solução numérica no computador.

Capítulo 2. Computação Numérica - Análise e representação de erros 37/38

Page 100: Tópicos - UBIcbarrico/Disciplinas... · 2019. 9. 30. · Representação de números em diferentes bases – Números reais Computação Científica-Representação de um real em

Conclusão Computação Científica

- Em geral, a magnitude destes erros quando se originam é pequena.

- A maneira como se acumulam e se propagam pode afetar significativamente o resultado final.

- Assim,

- a formulação matemática do problema e

- a escolha do método numérico

são aspetos muito importantes a considerar.

- O primeiro porque

- se um problema é mal condicionado é muito sensível a variações nos seus dados e parâmetros.

- Neste caso, os erros de modelação (iniciais) propagar-se-ão, a solução do problema matemático pode ser

diferente da solução do problema real.

- A escolha de um método estável é fundamental

- para que se possa garantir a precisão dos resultados calculados.

Capítulo 2. Computação Numérica - Análise e representação de erros 38/38