Use o botão abaixo para reportar erros ou dar sugestões.
Cálculo Numérico - Versão GNU Octave
Exemplo 2.9.1. Considere o seguinte processo iterativo:
Observe que , , , ou seja, temos uma sequência constante igual a . No entanto, ao calcularmos no computador, usando o sistema de numeração double, a sequência obtida não é constante e, de fato, diverge. Faça o teste no GNU Octave, colocando:
e itere algumas vezes a linha de comando:
Para compreender o que acontece, devemos levar em consideração que o número possui um representação infinita tanto na base decimal quanto na base binária. Logo, sua representação de máquina inclui um erro de arredondamento. Seja a diferença entre o valor exato de e sua representação de máquina, isto é, . A sequência efetivamente calculada no computador é:
Portanto o limite da sequência diverge,
| (2.163) |
Qual o número de condicionamento desse problema?
Exemplo 2.9.2. Observe a seguinte identidade
| (2.164) |
Calcule o valor da expressão à esquerda para , , , , e . Observe que quando se aproxima do de máquina a expressão perde o significado. Veja a Figura 2.1 com o gráfico de em escala logarítmica.
Exemplo 2.9.3. Neste exemplo, estamos interessados em compreender mais detalhadamente o comportamento da expressão
| (2.165) |
quando é um número grande ao computá-la em sistemas de numeral de ponto flutuante com acurácia finita. Um resultado bem conhecido do cálculo nos diz que o limite de (2.165) quando tende a infinito é o número de Euler:
| (2.166) |
Sabemos também que a sequência produzida por (2.165) é crescente, isto é:
| (2.167) |
No entanto, quando calculamos essa expressão no Octave, nos defrontamos com o seguinte resultado:
Podemos resumir esses dados no gráfico de em função de , veja a Figura 2.9.
Observe que quando se torna grande, da ordem de , o gráfico da função deixa de ser crescente e apresenta oscilações. Observe também que a expressão se torna identicamente igual a depois de um certo limiar. Tais fenômenos não são intrínsecos da função , mas oriundas de erros de arredondamento, isto é, são resultados numéricos espúrios. A fim de pôr o comportamento numérico de tal expressão, apresentamos abaixo o gráfico da mesma função, porém restrito à região entre e .
Para compreendermos melhor por que existe um limiar que, quando atingido torna a expressão do exemplo acima identicamente igual a , observamos a sequência de operações realizadas pelo computador:
| (2.168) |
Devido ao limite de precisão da representação de números em ponto flutuante, existe um menor número representável que é maior do que 1. Este número é eps, onde eps é chamado de épsilon de máquina e é o menor número que somado a 1 produz um resultado superior a 1 no sistema de numeração usado. O épsilon de máquina no sistema de numeração double vale aproximadamente . No GNU Octave, o épsilon de máquina é a constante eps. Observe que:
Quando somamos a um número positivo inferior ao épsilon de máquina, obtemos o número 1. Dessa forma, o resultado obtido pela operação de ponto flutuante para é 1.
Portanto, quando realizamos a sequência de operações dada em (2.168), toda informação contida no número é perdida na soma com quando é menor que o épsilon de máquina, o que ocorre quando . Assim, é aproximado para e a última operação se resume a , o que é igual a mesmo quando é grande.
Um erro comum é acreditar que o perda de significância se deve ao fato de ser muito pequeno para ser representado e é aproximando para . Isto é falso, o sistema de ponto de flutuante permite representar números de magnitude muito inferior ao épsilon de máquina. O problema surge da limitação no tamanho da mantissa. Observe como a seguinte sequência de operações não perde significância para números positivos x muito menores que o épsilon de máquina:
| (2.169) |
compare o desempenho numérico desta sequência de operações para valores pequenos de com o da seguinte sequência:
| (2.170) |
Finalmente, notamos que quando tentamos calcular para grande, existe perda de significância no cálculo de . Para entendermos isso melhor, vejamos o que acontece no GNU Octave quando :
Observe a perda de informação ao deslocar a mantissa de . Para evidenciar o fenômenos, observamos o que acontece quando tentamos recalcular subtraindo de e invertendo o resultado:
Exemplo 2.9.4 (Analogia da balança). Observe a seguinte comparação interessante que pode ser feita para ilustrar os sistemas de numeração com ponto fixo e flutuante: o sistema de ponto fixo é como uma balança cujas marcas estão igualmente espaçadas; o sistema de ponto flutuante é como uma balança cuja distância entre as marcas é proporcional à massa medida. Assim, podemos ter uma balança de ponto fixo cujas marcas estão sempre distanciadas de g (g, g, g, ..., Kg, Kg,...) e outra balança de ponto flutuante cujas marcas estão distanciadas sempre de aproximadamente um décimo do valor lido (g, g, g, g, ..., Kg, Kg, Kg, ...) A balança de ponto fixo apresenta uma resolução baixa para pequenas medidas, porém uma resolução alta para grandes medidas. A balança de ponto flutuante distribui a resolução de forma proporcional ao longo da escala.
Seguindo nesta analogia, o fenômeno de perda de significância pode ser interpretado como a seguir: imagine que você deseje obter o peso de um gato (aproximadamente Kg). Dois processos estão disponíveis: colocar o gato diretamente na balança ou medir seu peso com o gato e, depois, sem o gato. Na balança de ponto flutuante, a incerteza associada à medida do peso do gato (sozinho) é aproximadamente de Kg, isto é, g. Já a incerteza associada à medida da uma pessoa (aproximadamente Kg) com o gato é de do peso total, isto é, aproximadamente Kg. Esta incerteza é da mesma ordem de grandeza da medida a ser realizada, tornado o processo impossível de ser realizado, já que teríamos uma incerteza da ordem de Kg (devido à dupla medição) sobre uma grandeza de Kg.
ER 2.9.1. Deseja-se medir a concentração de dois diferentes oxidantes no ar. Três sensores eletroquímicos estão disponíveis para a medida e apresentam a seguintes respostas:
| (2.171) |
as tensões , e são dadas em e as concentrações em .
| (2.172) |
é inversível e sua inversa é dada por
| (2.173) |
| (2.174) |
De forma que
| (2.175) |
Portanto
Usando derivação logarítmica, temos
e
E o erro associado às medidas pode ser aproximado por
Analogamente, temos:
onde não se indicou nem pois são todos positivos.
Fazemos agora a aplicação numérica:
Caso do par 1-2:
| (2.190) |
Caso do par 1-3:
| (2.195) |
Conclusão, apesar de o sensor apresentar uma incerteza cinco vezes maior na sensibilidade, a escolha do sensor para fazer par ao sensor parece mais adequada.
E 2.9.1. Considere as expressões:
| (2.200) |
e
| (2.201) |
com . Verifique que elas são idênticas como funções reais. Teste no computador cada uma delas para , e . Qual dessas expressões é mais adequada quando é um número pequeno? Por quê?
E 2.9.2. Encontre expressões alternativas para calcular o valor das seguintes funções quando é próximo de zero.
E 2.9.3. Use uma identidade trigonométrica adequada para mostrar que:
| (2.202) |
Analise o desempenho destas duas expressões no computador quando vale , , , , , e . Discuta o resultado. Dica: Para , pode ser aproximada por com erro de truncamento inferior a .
E 2.9.4. Reescreva as expressões:
| (2.203) |
de modo que seja possível calcular seus valores para utilizando a aritmética de ponto flutuante ("Double") no computador.
e, de forma análoga:
E 2.9.5. Na teoria da relatividade restrita, a energia cinética de uma partícula e sua velocidade se relacionam pela seguinte fórmula:
| (2.207) |
onde é a energia cinética da partícula, é a massa de repouso, o módulo da velocidade e a velocidade da luz no vácuo dada por . Considere que a massa de repouso do elétron seja conhecida com erro relativo de . Qual é o valor da energia e o erro relativo associado a essa grandeza quando , , e sendo que a incerteza relativa na medida da velocidade é ?
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:34.