Use o botão abaixo para reportar erros ou dar sugestões.

Cálculo Numérico - Versão Python

2.3 Representação decimal finita


Em computadores, é usual representarmos números usando uma quantidade de dígitos finita. A quantidade a ser usada normalmente depende da precisão com que as computações estão sendo feitas. Ocorre que quando restringimos a representação a um número finito de dígitos, muitos números não podem ser representado de forma exata, por exemplo, as dízimas infinitas e os números irracionais. Este fenômeno nos leva aos conceitos de número de dígitos significativos e de arredondamento.

Definição 2.3.1 (Número de dígitos significativos). Um número decimal x = ±d0,d-1d-id-i-1d-i-nd-i-n-1 ×10E é dito ter n dígitos significativos quando dj = 0 para j -i e j -i - n - 1.

Exemplo 2.3.1. O número 0,0602100 × 10-3 tem 4 dígitos significativos.

2.3.1 Arredondamento de números


Quando representamos um número x com uma quantidade de dígitos menor que a de dígitos significativos acabamos com uma aproximação deste. Este procedimento é chamado arredondamento de um número. Mais precisamente, seja dado

x = ±d0,d1d2dk-1dkdk+1dn × 10e (2.33)

em notação normalizada, isto é, d005. Podemos representar x com k dígitos da seguinte forma:

1.
Arredondamento por truncamento (ou corte): aproximamos x por
x̄ = ±d0,d1d2dk × 10e (2.34)

simplesmente descartando os dígitos dj com j > k.

2.
Arredondamento por proximidade6 : se dk+1 < 5 aproximamos x por
x̄ = ±d0,d1d2dk × 10e (2.35)

senão aproximamos x por7

x̄ = ±(d0,d1d2dk + 10-k) × 10e (2.37)
3.
Arredondamento por proximidade com desempate par: se dk+1 < 5 aproximamos x por
x̄ = ±d0,d1d2dk × 10e. (2.38)

Se dk+1,dd+2dk+3 > 5 aproximamos x por

x̄ = ±(d0,d1d2dk + 10-k) × 10e. (2.39)

Agora, no caso de empate, i.e. dk+1,dk+2dk+3 = 5, então x é aproximado por

x̄ = ±d0,d1d2dk × 10e (2.40)

caso dk seja par e, caso contrário, por

x̄ = ±(d0,d1d2dk + 10-k) × 10e. (2.41)

Observação 2.3.1. O arredondamento por proximidade é frequentemente empregado para arredondamentos de números reais para inteiros. Por exemplo:

  • x = 1,49 arredonda-se para o inteiro 1.
  • x = 1,50 arredonda-se para o inteiro 2.
  • x = 2,50 arredonda-se para o inteiro 3.
>>> round(1.49)  
1.0  
>>> round(1.50)  
2.0  
>>> round(2.50)  
3.0

Exemplo 2.3.2. Represente os números x1 = 0,567, x2 = 0,233, x3 = -0,675 e x4 = 0,314159265 × 101 com dois dígitos significativos por truncamento e arredondamento.

Solução. Vejamos cada caso:

  • Por truncamento:
    x1 = 0,56,x2 = 0,23,x3 = -0,67ex4 = 3,1. (2.42)

    Em Python, podemos obter a representação de x3 = -0,675 fazendo:

    >>> int(-0.675*1e2)/1e2

    e, em notação normalizada, temos:

    >>> print("%1.1e" % (int(-0.675*1e2)/1e2))  
    -6.7e-01

  • Por arredondamento:
    x1 = 0,57; x2 = 0,23; x3 = -0,68ex4 = 3,1. (2.43)

    Em Python, a representação de números por arredondamento é o padrão. Assim, para obtermos a representação desejada de x3 = 0,675 fazemos:

    >>> print("%1.2f" % (-0.675))  
    -0.68

    e, em notação normalizada:

    >>> print("%1.1e" % (-0.675))  
    -6.8e-01

Observação 2.3.2. Observe que o arredondamento pode mudar todos os dígitos e o expoente da representação em ponto flutuante de um número dado. Por exemplo, o arredondamento de 0,9999 × 10-1 com 3 dígitos significativos é 0,1 × 100.

Exercícios resolvidos


Esta seção carece de exercícios resolvidos. Clique em e inicie a editá-la agora mesmo. Veja outras formas de participar clicando aqui.

Exercícios


E 2.3.1. Aproxime os seguintes números para 2 dígitos significativos por arredondamento por truncamento.

  •  1,159
  •  7,399
  •   - 5,901

Resposta. (a) 1,1; (b) 7,3; (c)  - 5,9.

E 2.3.2. Aproxime os seguintes números para 2 dígitos significativos por arredondamento por proximidade com desempate par.

  •  1,151
  •  1,15
  •  2,45
  •   - 2,45

Resposta. (a) 1,2; (b) 1,2; (c) 2,4; (d)  - 2,4.

E 2.3.3. O Python usa arredondamento por proximidade com desempate par como padrão. Assim sendo, por exemplo

>>> print(’%1.1e\n’ % 1.25)  
1.2e+00

Agora:

>>> print(’%1.1e\n’ % 2.45)  
2.5e+00

Não deveria ser 2.4? Explique o que está ocorrendo.

Resposta.

Este exercício está sem resposta sugerida. Clique em e inicie a editá-la agora mesmo. Veja outras formas de participar clicando aqui.

Creative Commons License Este texto é disponibilizado nos termos da licença Creative Commons Atribuição-CompartilhaIgual 3.0 Não Adaptada (CC-BY-SA 3.0). Página gerada em 15/5/2019 às 15:24:50.

Informe erros ou edite você mesmo!