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

Cálculo Numérico - Versão Scilab

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−1⋯d−id−i−1⋯d−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,d1d2…dk−1dkdk+1…dn × 10e (2.33)

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

1.
Arredondamento por truncamento (ou corte): aproximamos x por
x̄ = ±d0,d1d2…dk × 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,d1d2…dk × 10e (2.35)

senão aproximamos x por7

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

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

x̄ = ±(d0,d1d2…dk + 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,d1d2…dk × 10e (2.40)

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

x̄ = ±(d0,d1d2…dk + 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.

No Scilab, temos:

-->round(1.49)  
 ans  =  
    1.  
-->round(1.50)  
 ans  =  
    2.  
-->round(2.50)  
 ans  =  
    3.

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)

    No Scilab, podemos obter a representação de x3 = −0,675 fazendo:

    -->format(’v’,5)  
    -->-int(0.675*1e2)/1e2  
     ans  =  
      - 0.67

    e, em notação normalizada, temos:

    -->format(’e’,8)  
    -->-int(0.675*1e2)/1e2  
     ans  =  
      - 6.7D-01

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

    No Scilab, a representação de números por arredondamento por proximidade com desempate par é o padrão. Assim, para obtermos a representação desejada de x3 = 0,675 fazemos:

    -->format(’v’,5)  
    -->-0.675  
     ans  =  
      - 0.68

    e, em notação normalizada, temos:

    -->format(’e’,8)  
    -->-0.675  
     ans  =  
      - 6.8D-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 Scilab usa arredondamento por proximidade com desempate par como padrão. Assim sendo, por exemplo

--> printf(’%1.1e\n’, 1.25)  
1.2e+00

Agora:

--> printf(’%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 19/8/2020 às 17:36:32.

Informe erros ou edite você mesmo!