| | | | |

1.3 Notação Científica e Arredondamento

Ajude a manter o site livre, gratuito e sem propagandas. Colabore!

Enquanto que a manipulação computacional de números decimais é feita usando-se da aritmética em ponto flutuante, a interpretação dos parâmetros dos problemas de interesse e seus resultados é normalmente feita com poucos dígitos. Nesta seção, introduziremos algumas notações que serão utilizadas ao longo deste material.

A notação científica é a representação de um dado número na forma

dnd2d1d0,d1d2d3×10E, (1.77)

onde di, i=n,,1,0,1,, são algarismos da base 10. A parte à esquerda do sinal × é chamada de mantissa do número e E é chamado de expoente (ou ordem de grandeza).

Exemplo 1.3.1.

O número 31.515 pode ser representado em notação científica das seguintes formas

31.415×100 =3.1415×101 (1.78)
=314.15×101 (1.79)
=0.031415×103, (1.80)

entre outras tantas possibilidades.

Em Python, usa-se a letra e para separar a mantissa do expoente na notação científica. Por exemplo

1# 31.415 X 10^0
231.415e0
31.515
1# 3.1415 X 10^1
23.1415e1
31.515
1# 314.15 X 10^-1
2314.15e-1
31.515
1# 0.031415 X 10^3
20.031415e3
31.415

No exemplo anterior (Exemplo 1.3.1), podemos observar que a representação em notação científica de um dado número não é única. Para contornar isto, introduzimos a notação científica normalizada, a qual tem a forma

d0,d1d2d3×10E, (1.81)

com d0055endnote: 5No caso do número zero, temos d0=0..

Exemplo 1.3.2.

O número 31.415 representado em notação científica normalizada é 3.1415×101.

Em Python, podemos usar de strings formatadas para imprimir um número em notação científica normalizada. Há várias especificações de formatação disponíveis66endnote: 6Consulte na web por Python Docs:String: Format Specification Mini-Language para uma lista completa.. Por exemplo, temos

1x = 31.415
2print(f"{x:e}")
3.141500e+01

Como vimos na seção anterior, usamos da aritmética de ponto flutuante nas computações, com a qual os números são representados com muito mais dígitos dos quais costumeiramente estamos interessados na interpretação dos resultados. Isto nos leva de volta a questão do arredondamento.

Dizemos que um número está representado com n dígitos significativos (na notação científica normalizada) quando está escrito na forma

d0,d1d2dn1×10E, (1.82)

com d00.

Exemplo 1.3.3.

Estudamos as seguintes representações do número 31.415:

  1. a)

    com 5 dígitos significativos

    1x = 31.415
    2print(f"{x:.4e}")
    3.1415e+01
    
  2. b)

    com 6 dígitos significativos

    1print(f"{x:.5e}")
    3.14150e+01
    
  3. c)

    com 4 dígitos significativos

    1print(f"{x:.3e}")
    3.142e+01
    

    Neste último caso, fez-se necessário arredondar o número.

1.3.1 Arredondamento

Observamos que pode ocorrer a necessidade de se arredondar um número para obter sua representação com um número finito de dígitos significativos. Por exemplo, para representarmos o número x=3.1415×101 com 3 dígitos significativos, precisamos determinar de que forma vamos considerar a contribuição de seus demais dígitos a direita. Isto, por sua vez, é determinado pelo tipo de arredondamento que iremos utilizar.

O tipo de arredondamento mais comumente utilizado é o chamado arredondamento por proximidade com desempate par. Neste, a representação escolhida é aquela mais próxima do número dado. Por exemplo, a representação de

x=3.1415×101 (1.83)

com três dígitos significativos é

x=3.14×101. (1.84)

Agora, sua representação com apenas dois dígitos significativos é

x=3.1×101. (1.85)

No caso de empate, usa-se a seguinte regra: 1) se o último dígito significativo ser par, este é mantido; 2) se o último dígito significativo ser ímpar, este é acrescido de uma unidade. Por exemplo, no caso do número x=3.1415×101, sua representação com 4 dígitos significativos é

x=3.142×101. (1.86)
Observação 1.3.1.

O arredondamento por proximidade com desempate par é o padrão do IEEE 75477endnote: 7Para mais detalhes, consulte IEEE 754: Wikipedia.. No entanto, devemos lembrar que a maioria dos números decimais não tem representação exata no sistema de ponto flutuante. Por exemplo,

1x = 31.415
2print(f'{x:.3e}')
3.141e+01

Embora o arrendamento não seja o esperado, o que ocorre é que x=31.415 não tem representação exata em ponto flutuante, de fato

1print(f'{x:.25e}')
3.1414999999999999147348717e+01

No restante deste material estaremos assumindo a notação científica normalizada com arredondamento por proximidade com desempate par.

1.3.2 Exercícios Resolvidos

ER 1.3.1.

Faça o cálculo exato e a computação de

0.33411×102271.28×1012000×103 (1.87)

Forneça os resultados com 4 dígitos significados.

Solução.
  • Por cálculo exato.

    0.33411×102271.28×1012000×103 (1.88)
    =334.11×101271.28×1012×100 (1.89)
    =63.83×1012 (1.90)
    =31.415×101 (1.91)

    Arredondando o resultado para 4 dígitos significativos, obtemos 3.142.

  • Por computação.

    1x = (0.33411e2 - 271.28e-1)/2000e-3
    2x
    3.1415000000000006
    
    1print(f'{x:.3e}')
    3.142e+00
    
ER 1.3.2.

Obtenha os arredondamentos dos seguintes números decimais para quantidade de dígitos significativos indicada em cada caso. Então, compare com a computada em ponto flutuante.

  1. a)

    2.7128 com 4 dígitos significativos.

  2. b)

    2.7128 com 2 dígitos significativos.

  3. c)

    1.9910 com 3 dígitos significativos.

  4. d)

    1.9910 com 2 dígitos significativos.

  5. e)

    5.5555 com 4 dígitos significativos.

  6. f)

    5.6555 com 4 dígitos significativos.

Solução.
  1. a)

    2.7128 com 4 dígitos significativos = 2.713

    1f'{2.7128:.3e}'
    ’2.713e+00’
    
  2. b)

    2.7128 com 2 dígitos significativos = 2.7

    1f'{2.7128:.1e}'
    ’2.7e+00’
    
  3. c)

    1.9910 com 3 dígitos significativos = 1.99

    1f'{1.9910:.2e}'
    ’1.99e+00’
    
  4. d)

    1.9910 com 2 dígitos significativos = 2.0

    1f'{1.9910:.1e}'
    ’2.0e+00’
    
  5. e)

    5.5555 com 4 dígitos significativos = 5.556

    1f'{5.5555:.3e}'
    ’5.556e+00’
    
  6. f)

    5.6555 com 4 dígitos significativos = 5.556

    1f'{5.6555:.3e}'
    ’5.655e+00’
    

1.3.3 Exercícios

E. 1.3.1.

Obtenha a representação dos seguintes números decimais em notação científica normalizada com a quantidade de dígitos indicada em cada caso. Então, compare com o arredondamento computado em ponto flutuante. Caso haja diferença, explique.

  1. a)

    π com 6 dígitos significativos.

  2. b)

    π/10 com 6 dígitos significativos.

  3. c)

    2/3 com 7 dígitos significativos.

Resposta.

a) 3.14159×100, 3.14159e00+; b) 3.14159×101, 3.14159e-01; c) 8.164922×101, 8.164966e-01

E. 1.3.2.

Compute a seguinte expressão

πln(0.9)75cos(π4). (1.92)

Forneça a resposta com 7 dígitos significativos.

Resposta.

3.540841×101

E. 1.3.3.

Forneça o arredondamento dos seguintes números decimais para 2 dígitos significativos. Então, compare com o arrendamento computado em ponto flutuante. Caso haja diferença, explique.

  1. a)

    0.625

  2. b)

    0.615

  3. c)

    0.635

Resposta.

a) 6.2×101, 6.2e-01; b) 6.2×101, 6.1e-01; c) 6.4×101; 6.4e-01

E. 1.3.4.

Seja fs a função que recebe número decimal e retorna sua aproximação por arrendamento com 2 dígitos significativos. Calcule

  1. a)

    fs(2πe)

  2. b)

    2fs(π)fs(e)

  3. c)

    Por que fs(2πe)2fs(π)fs(e)?

Resposta.

a) 3.5; b) 3.6; c) Operar sobre números arredondados acarreta perda de exatidão.

E. 1.3.5.

Explique o porquê de

1np.sqrt(3)**2 == 3
False
Resposta.

Dica: 3 não tem representação exata em ponto flutuante.


Envie seu comentário

As informações preenchidas são enviadas por e-mail para o desenvolvedor do site e tratadas de forma privada. Consulte a Política de Uso de Dados para mais informações. Aproveito para agradecer a todas/os que de forma assídua ou esporádica contribuem enviando correções, sugestões e críticas!