Ao avaliar harmónicas cilíndricas, é preciso avaliar funções trigonométricas e sin ( m θ ) , potencialmente para grande número inteiro m e θ ∈ [ - π , π ] . Qual é a melhor maneira de fazer isso no código C? Atualmente, eu apenas avalio no ângulo m θ , mas eu suspeitaria que as bibliotecas padrão perdem precisão em argumentos grandes. Eu estava pensando em usar fórmulas de ângulo duplo e similares para reduzir recursivamente a magnitude dos argumentos, mas estou pensando se isso acaba causando mais erros.
fonte
Já encontrei um problema semelhante antes, mas estava mais preocupado com velocidade do que com precisão (consulte o documento aqui ). Se o seu ângulo for o resultado de um arco ( ⋅ ) , o que geralmente ocorre em cálculos geométricos, você pode usar os polinômios de Chebyshev, definidos comoϑ arccos( ⋅ )
e pode ser avaliado rapidamente e de forma estável usando a relação de recorrência de três períodos
fonte
A recorrência (efetivamente igual ao exemplo 4 em Bulirsch / Stoer, veja que para uma análise detalhada) ocorre da seguinte maneira:
onde temos as constantes pré-computadas
fonte