Enunciado
Cálculo Numérico - Ruggiero - Aspectos Teóricos e Computacionais- Ed: 2º - Capítulo 1.Exercícios - Ex. 9
Considere uma máquina cujo sistema de representação de números é definido por:
Pede-se:
- qual o menor e o maior número em módulo representados nesta máquina?
- como será representado o número 73.758 nesta máquina, se for usado o arredondamento? E se for usado o truncamento?
- se a= 42450 e b = 3 qual o resultado de a+ b?
- qual o resultado da soma
- idem para a soma:
- o resultado da operação: wz/t pode ser obtido de várias maneiras, bastando modificar a ordem em que os cáLculos são efetuados. Para determinados valores de w, z e t, uma seqüência de cálculos pode ser melhor que outra. Faça uma anáLise para o caso em que w = 100. z = 3500 e t = 7.
nesta máquina?
(Obviamente o resultado deveria ser o mesmo. Contudo, as operações devem ser realizadas na ordem em que aparecem as parcelas, o que conduzirá a resultados distintos).
Passo 1
letra a:
Vamo lá, a gente sabe que:
então o menor número a ser representado por:
e o maior número vai ser representado por:
Passo 2
letra b:
Então, temos o número
A primeira coisa que teríamos que fazer é alinhar os pontos decimais, ficaria então
O problema é que essa máquina só suporta quatro dígitos, então arredondando, ficaria:
Já para truncar, teríamos que remover a parte depois do 4º dígito.
Passo 3
letra c:
temos que e
A primeira coisa que temos que fazer é alinhar os pontos decimais, então:
Agora é só somar
Como o resultado deve ser armazenado com apenas quatro dígitos, poderíamos arredondar ou truncar, no caso o resultado seria o mesmo, de:
Passo 4
letra d:
Vamos lá a soma é essa daqui
então começaremos com , mas pera aí…
se fizermos que e
A primeira coisa que temos que fazer é alinhar os pontos decimais, então:
Agora é só somar
Como o resultado deve ser armazenado com apenas quatro dígitos, poderíamos arredondar ou truncar, no caso o resultado seria o mesmo, de:
então se continuarmos somando, podemos ver que o valor dessa soma final vai ser sempre o mesmo!
Passo 5
letra e:
Agora as coisas mudam um pouco, começaremos fazendo a seguinte soma:
começamos como sempre, alinhando os pontos decimais…
A primeira soma fica:
O número vai ser armazenado com 4 dígitos na mantissa, assim:
Agora vamos fazer um pouco mais rápido pra não ficar enrolado:
, como o resultado dessa soma em específico vai se manter sempre dentro da distância de quatro dígitos, em relação a cada termo , podemos pular essa parte e verificar que, .
Agora precisamos somar com 42450, vamos já deixar na forma bonitinha, com todos os pontos alinhados e já na forma que o número é armazenado, com 4 dígitos na mantissa.
Agora é só alinhar as casas decimais…
Passo 6
Letra f:
Vamos lá, temos que resolver isso daqui:
No caso a gente tem duas operações, podemos resolver isso de três formas diferentes:
,
Não tá vendo diferença? TEM DIFERENÇA SIM!
No primeiro caso, a gente multiplica em cima primeiro e depois divide, enquanto que no segundo dividimos por primeiro e depois multiplicamos por No terceiro caso, dividimos por e depois de tudo isso, multiplicamos por .
Vamos ver o primeiro caso .
Primeiro vamos multiplicar , deixando tudo no formato bonitinho…
Quando esse número for armazenado, , mas pera aí!!!!!!!!!
o expoente do ultrapassa o valor máximo de armazenamento… ISSO DEU OVERFLOW!
Então, nesse sistema, fazer a operação nessa ordem DA PANE NO SISTEMA, o sistema provavelmente retornaria um erro de overflow.
Enfim, continuando nossa análise.
Para o caso em que , temos que resolver primeiro…
Agora, vamos multiplicar :
Ou seja, menor que o valor mínimo de overflow e com erro nulo!!
Para o caso em que , temos que resolver primeiro…
Agora chegamos em uma bifurcação, ou o sistema vai truncar, ou ele vai arredondar, vamos analisar os dois casos:
Agora, vamos multiplicar :
Vai ter um erro de 0.04% seja por arredondamento ou truncamento.
Dessa maneira, é possível observar que a conta pode ser feita na ordem com erro nulo e com erro de 0.04%, mas a multiplicação impede a execução da ordem por overflow!
Resposta
- A conta pode ser feita na ordem com erro nulo e com erro de 0.04%, mas a multiplicação impede a execução da ordem por overflow!