Aula 2 - Aritmética Computacional (Bases)
Aula 2 - Aritmética Computacional (Bases)
Aula 2 - Aritmética Computacional (Bases)
Apresentação
Antes de começarmos a resolver problemas clássicos de Engenharia com suporte computacional, é importante sabermos
como os números são representados em um computador. A nal, existem diversas formas de representação, que
implicam em mudança de base, de acordo com o problema estudado. Além disso, nem sempre a representação é exata,
de modo que você precisa saber as imprecisões associadas antes de apresentar uma resposta a um problema dado.
Avançaremos nos conhecimentos em aritmética computacional a partir da identi cação dos principais sistemas de
numeração e de mudança de base, identi cando os principais padrões de representação numérica. Por m, explicaremos
os conceitos fundamentais de teoria dos erros, com destaque aos tipos de erro (arredondamento e truncamento) e suas
formas de propagação.
Objetivos
Identi car os principais sistemas de numeração e de mudança de base;
O princípio posicional pode também ser utilizado em outras bases, apenas trocando o valor 10 pelo número b equivalente à
nova base.
Os sistemas numéricos mais utilizados são b = 2 (sistema binário), 4 (sistema quaternário), 8 (octal) e 16 (hexadecimal).
Comentário
Como curiosidade, os algarismos A, B, C, D, E e F no sistema hexadecimal equivalem aos números 10, 11, 12, 13, 14 e 15 no
sistema decimal, respectivamente.
Vamos ver alguns exemplos?
(1001,101)2 = 1.23 + 0.22 + 0.21 + 1.20 + 1.2-1 + 0.2-2 + 1.2-3 = 8 + 1 + 0,5 + 0,125 = 9,625
É interessante ver que esses sistemas de numeração também se encontram disponíveis em Python:
Agora você pode estar se perguntando: como transformar um número decimal qualquer em outra base (b)? Para tanto,
precisamos primeiramente separar a parte inteira e a fracionária.
Parte Inteira
Quanto à parte inteira, trata-se de obter o resto das divisões sucessivas por b:
Assim, temos que 18 na base decimal, também expresso como (18)10 = (10010)2.
Parte Fracionária
Já para uma parte fracionária, fazemos multiplicações sucessivas. Veja o caso de 0,75:
Assim, um número 17,75 na base decimal pode ser representado como (10010,11)2.
Python oferece algumas funções para a conversão de números inteiros em base decimal não só para a base binária, mas para
uma base dada. Veja estes exemplos:
>>> print(bin(9))
0b1001
>>> print(oct(111)) #a saída será "0o157", no Python 3 ou superior
0157
>>> print(hex(48826))
0xbeba
(s dn-2 ... d1 d0)2: representação com sinal. Aqui, o bit mais signi cativo representa o sinal (0: positivo, 1: negativo)
(dn-1 dn-2 ... d1 d0)2: representação complemento de dois. Aqui, o bit mais signi cativo representa o coe ciente de
-2n-1.
Já para números reais, com partes inteira e fracionária, temos alguns sistemas de representação:
Ponto utuante: o sistema de ponto utuante não possui quantidade xa de dígitos para as partes inteira e
fracionária do número. Podemos de nir uma máquina F em ponto utuante de dois modos:
F(β,|M|,|E|,BIAS) ou F(β,|M|,EMIN,EMAX), onde:
β é a base (em geral 2 ou 10);
|M| é o número de dígitos da mantissa;
|E| é o número de dígitos do expoente;
BIAS é um valor de deslocamento do expoente;
EMIN é o menor expoente;
EMAX é o maior expoente.
Em muitos casos, é impossível determinar a solução ótima; logo, é importante que você saiba identi car as fontes e dimensionar
os erros apresentados ao nal do emprego das diferentes técnicas de resolução de problemas numéricos.
Os erros resultados podem ser sistemáticos (por exemplo, em virtude de falhas de construção ou regulagem de
equipamentos) ou fortuitos (como os provenientes de variações casuais de temperatura ou pressão para valores fora da
faixa de operação dos instrumentos de medida);
Provenientes da própria natureza dos números. Por exemplo, os valores √3 e π pertencem ao conjunto dos números
irracionais; logo, não tem jeito – você pode escolher a quantidade de casas decimais que quiser, mas sempre haverá uma
imprecisão na representação do número;
Normalmente, são apresentadas poucas casas decimais, por força da resolução em casas decimais escolhida pelo
usuário do software (por exemplo, o Microsoft Excel);
Nas operações pode ser uma fonte de erros de aproximação. Veja o cálculo da variável V , em que A = 3,6; B =
A* B
=
C
0,35; C = 2,8. Considere, no máximo, três casas decimais para representação dos valores intermediários obtidos. Se você
iniciar o cálculo pela multiplicação (A*B) e, depois, seguir para a divisão, terá que V = (A*B)/C = (3,6*0,35)/2,8 = 1,26/2,8 =
0,45. No entanto, caso você comece pela divisão (A/C) para, em seguida, efetuar a multiplicação, teremos que (A/C)*B =
(3,6/2,8)*0,35 = 1,285*0,35 = 0,44975.
Por exemplo, considere o polinômio P(x) = ax4 + bx3 + cx2 + dx + e. Para sua resolução, uma alternativa consiste em
efetuar 10 (dez) operações de multiplicação e 4 de adição. No entanto, mediante emprego da técnica de Briot-Ru ni, o
polinômio P(x) pode ser reescrito como {[(ax + b)x + c]x + d}x + e, o que acaba resultando em uma execução que demanda
tão somente 4 (quatro) operações de multiplicação e 4 (quatro) de adição. Como operações de multiplicação e divisão
podem ser fontes de erros por aproximação, a segunda estratégia de cálculo (por Briot-Ru ni) é mais adequada.
3
Erro percentual
O Erro percentual relativo é o erro relativo expresso em
percentagem.
Considere os valores Q* = 3876,373 e Q = 3876. Assim, temos que os erros absoluto, relativo e percentual relativo são
expressos por ΔQ = |3876,373 – 3876| = 0,373, SQ = |0,373/3876|= 0,000096233 e SQ% = 100* 0,000096233 = 0,0096233.
Vamos estudá-lo a partir de mais um exemplo: considere a medição de uma ta verde, conforme exposto na Figura 1, na qual
se tem uma extremidade ajustada ao marco zero de uma régua marcada em centímetros, mas em que a outra extremidade
não coincide com nenhum traço.
Assim, imagine que quatro pessoas diferentes apresentem como resultado dessa medida os seguintes valores: 4,6cm, 4,7 cm,
4,7cm e 4,8cm. É possível veri car que há concordância com relação ao algarismo 4; logo, isso ilustra o consenso de que tal
algarismo é "verdadeiro" ou "exato". Já os algarismos 6, 7 e 8 são duvidosos, pois apresentam uma incerteza, gerada pela
própria grandeza medida, pela sensibilidade do instrumento e pela perícia do observador.
Os algarismos exatos de uma medida, bem como os algarismos duvidosos, são denominados algarismos signi cativos.
No exemplo ilustrado nesta seção, o primeiro algarismo de cada medição é signi cativo exato, mas o último algarismo de cada
uma das medições (6, 7 e 8) é signi cativo duvidoso.
Os algarismos signi cativos podem ser qualquer um dos dígitos numéricos de 0 até 9. Note-se, no entanto, que o dígito “0” não
será um algarismo signi cativo quando for utilizado para xar posição de número decimal ou preencher casas decimais de
números desconhecidos ou desprezados.
Qualquer grandeza física G ou valor obtido por meio das técnicas apresentadas pode ser representado na forma G = (g ± σg),
em que g é o valor numérico e σg representa a incerteza associada à medição da grandeza G. No entanto, você não pode
escrever tal grandeza física de qualquer maneira, mas de um modo consagrado em trabalhos cientí cos – a denominada
notação cientí ca. Nessa notação escreve-se o número referindo-se à potência de dez, com a particularidade de se conservar
apenas um dígito, diferente de zero, à esquerda da vírgula.
Exemplos:
Atenção
A escolha da notação cientí ca se justi ca em função da rápida visualização da grandeza associada à medição (como exposto
pela potência de 10), bem como do número de algarismos signi cativos.
No entanto, você pode estar se perguntando: como eu consigo descobrir a quantidade de algarismos signi cativos exatos de
um número nos casos em que não é possível efetuar novas medições? Podemos fazer isso utilizando uma das duas
de nições apresentadas a seguir:
Clique nos botões para ver as informações.
De nição 1
Diz-se que os N primeiros algarismos signi cativos de um número são corretos se o erro absoluto da aproximação
obedecer à relação ΔW ≤ 0,5 x 10 m – N + 1, onde N é o número de algarismos signi cativos e m é a mais alta potência de
10 do número aproximado;
De nição 2
Se o erro relativo cometido na aproximação de um número exato W* por um aproximado W obedecer à relação
∣ ΔW ∣ ≤ ∣
∣ W ∣ ∣ α+1
1
∣. 10 1−N
∣ , onde N é o número de algarismos signi cativos e α – primeiro dígito signi cativo do número
aproximado, pode-se dizer que o número aproximado W tem N algarismos signi cativos ou que, no mínimo, o erro
absoluto cometido na aproximação varia de uma unidade no n-ésimo dígito.
Atividade
1: Assinale a única alternativa que apresenta o conceito de nido pelo valor do módulo da diferença numérica entre um número
exato (Q*) e sua representação por um valor aproximado (Q).
a) erro absoluto
b) erro relativo
c) erro percentual
d) erro fortuito
e) mensagem de erro
2: Assinale a única alternativa que apresenta o conceito de nido pelo valor do módulo do quociente entre o erro absoluto e o
número exato.
a) erro absoluto
b) erro relativo
c) erro percentual
d) erro fortuito
e) mensagem de erro
3: Assinale a única alternativa que apresenta um número do qual não se pode a rmar previamente a quantidade de algarismos
signi cativos:
a) 3,1415
b) 0,00435
c) 1,039
d) -1,098
e) 45300
4: Assinale a única alternativa que apresenta a conversão para binário do número (10)8:
a) 1010
b) 1000
c) 0100
d) 0010
e) 0001
5: Assinale a única alternativa que apresenta a conversão para decimal do número (10)8:
a) 10
b) 2
c) 1
d) 8
e) 4
Notas
Referências
JUSTO, D.A.R.; SAUTER, E.; AZEVEDO, F.S. et al. Cálculo Numérico. Um Livro Colaborativo. Versão Python. Porto Alegre: UFRGS,
2019. Disponível em: https://www.ufrgs.br/reamat/CalculoNumerico/livro-py/livro-py.pdf. Acesso em: 18 nov. 2019.
Próxima aula
Explore mais
Pesquise na internet sites, vídeos e artigos relacionados ao conteúdo visto.
Em caso de dúvidas, converse com seu professor online por meio dos recursos disponíveis no ambiente de aprendizagem.