Avançar para o conteúdo principal

Conversão de ângulos e erro computacional.

Conversão de ângulos e erro computacional.


Como é sabido os computadores pelo seu modo de cálculo interno acumulam erros.

No caso de um programa que estou a desenvolver, é necessário converter ângulos entre diversos sistemas, em particular entre o sistema sexagesimal e o centesimal para graus.


Como dados de partida, os ângulos:

A = 60º 12'21.5"

B = 70º 35'51.7"


A conversão para centesimais feita pela linguagem de programação e por uma calculadora de bolso mostra-se a seguir:


A = 60.20603º   60.20597º

B = 70.59784º   70.59769º


Pode-se verificar que para o ângulo A, o valor obtido pela linguagem de programação é superior em 0.00006 graus. Já para o ângulo B o valor obtido pela linguagem de programação é superior em 0.00015 .


Podemos pensar que são diferenças muito pequenas, mas se tomarmos como exercício, o cálculo de um desvio em XX (por exemplo para Topografia), em que se medir uma distância de 1000 metros, o desvio deste ângulo A é de 1 mm, já o do ângulo B é de 2.6 mm. Ok continua a ser praticamente desprezável o erro de cálculo face por exemplo ao erro de observação.


E se em vez de Topografia considerarmos a disciplina de Astrofísica?


E se continuarmos na linguagem de programação com cálculos em cima de resultados assim obtidos... podemos imaginar que a magnitude deste erro aumenta.


Como resolver? Recorrendo se necessário a estratégias de cálculo, e/ou a linguagens de programação ou bibliotecas que permitam trabalhar com precisões de cálculo superiores.


Para o dia a dia, o que podemos esperar numa linguagem de programação é o suficiente em precisão, no entanto, atenção, se compararmos


if (60.20603 == 60.20597) obtemos um FALSE que para uma análise humana seria TRUE.

Comentários

Enviar um comentário

Obrigado pelo seu contacto.

Mensagens populares deste blogue

C# - Viadutos Excel - ISPOL

C# - Viadutos Excel - ISPOL Ler dados do Excel e passar a informação para o ISPOL é um ganho de produtividade e organização. Desta vez, apresento uma utilidade que lê um ficheiro Excel, e transforma os dados para o menu de estruturas do ISPOL. Partindo de um Excel organizado, por pks eixos e espessuras da estrutura etc... como o seguinte: Elaborei um programita em CSharp: Este programa funciona em modo "DOS" não tem uma interface gráfica de janelas: O programa cria os ficheiros necessários, o Excel pode estar organizado por eixos, e o programa guarda um ficheiro para cada eixo: O resultado depois de abrir o ficheiro em ISPOL é o seguinte: Com as alterações ao projecto pode-se manter um ficheiro de apresentação e controlo em Excel.

ISPOL - Representação de Gabaris

ISPOL - Representação de Gabaris No ISPOL podemos representar ao longo do traçado um contorno e até realizar variações. A representação de um contorno ou gabari pode ser realizada no ISPOL de um modo simples, usando por exemplo um Símbolo (bloco) da biblioteca, ou um ou vários criados à medida para atender aos casos necessários. Na imagem abaixo um exemplo da biblioteca do ISPOL, representado no perfil transversal. Estas secções são constituídas por símbolos/blocos: Podem-se desenhar ao longo do eixo proporcionando a vista típica destas situações, uma espécie de sólido que enche o traçado. Além desta representação "simples" o ISPOL permite realizar transições entre símbolos diferentes, por exemplo para representar os diferentes gabaris em recta e curva. Ou outras situações que se achem necessárias. Permite ainda condicionar a representação destes símbolos por valores de raio. Isto é para um determinado raio. Pode ser usado para indicar de forma automática ao programa que em r...

Python - Automatização em ISPOL

Python - Automatização em ISPOL Com o uso de PyAutoGui podemos automatizar tarefas repetitivas no ISPOL ISTRAM. No trabalho actual, é necessário converter mais de 300 ficheiros. Já houve um trabalho prévio de ler e transformar dados de directrizes em Excel para ficheiros compatíveis com a conversão presente. Este trabalho prévio foi também feito com programação. Tendo os muitos ficheiros com formato TXT que o ISPOL pode ler e converter para CEJ, é necessário ir ao menu de Conversores do ISTRAM e digitar os dados para ler a localização dos ficheiros, número de eixo etc... um trabalho repetitivo. Sendo repetitivo uma hipótese que deve surgir é se existe forma de automatizar / programar. O ISTRAM ISPOL não permite o uso de plugins (como o CAD), por tanto a via seria pela automatização dos movimentos. O pacote PyAutoGUI para Python permite esta simulação de movimentos. https://pyautogui.readthedocs.io/en/latest/ Basicamente "guiamos" o cursor para onde deve clicar e o que introdu...