Alguns cuidados a se tomar com cálculo numérico e simulação computacional

Cuidado com a confiabilidade dos seus resultados

Erbe Pandini Rodrigues
Computação para físicos
2 min readApr 30, 2017

--

1. Precisão numérica nos cálculos

Todos os números utilizados para cálculo no computador precisam ser armazenados na memória previamente. A memória do computador é limitada, portanto, existe um limite para precisão dos números utilizados, ou seja, quantas casas existem após o ponto decimal (o ponto é usado no lugar da vírgula em programação). Ao escrever seu programa, você precisa saber qual precisão é suficiente para que seus cálculos estejam corretos.

Suponha, por exemplo, que seus cálculos exijam dez casas decimais de precisão para fornecer resultados com boa precisão. Se o seu equipamento oferecer somente quatro casas decimais, erros de arredondamento de cálculo podem introduzir erro nos seus cálculos, fornecendo resultados imprecisos ou mesmo não realísticos para o seu modelo. Portanto, procure informações sobre precisão numérica do equipamento que você usa bem como informações sobre o seu compilador. Tome cuidado ao executar seu programa em máquinas diferentes. Modificar o tipo de hardware pode modificar os resultados do seu programa. Saiba mais em http://www.scientificcomputing.com/article/2009/06/numerical-precision-how-much-enough e http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html

2. Geração de números aleatórios

Números aleatórios (pseudo-aleatórios em muitos casos) são utilizados em muitos modelos físicos de simulação computacional. É importante se informar sobre a qualidade das rotinas de geração destes números que você vai utilizar. Algumas rotinas não fornecerão sequências destes números com qualidade necessária para garantir bons resultados. Entenda a diferença entre números aleatórios e pseudo-aleatórios neste clicando no link.

3. Otimização

Compiladores podem oferecer parâmetros de otimização. Alguns destes podem diminuir o desempenho às custas do aumento da precisão dos cálculos e vice-versa. Pode ser que exista algum parâmetro para otimizar operações com números de ponto flutuante no compilador que você utiliza. Procure se informar sobre otimização do seu compilador.

--

--