Os polinômios de Chebyshev, como mencionado em outra resposta, são os polinômios em que a maior diferença entre a função e o polinômio é a menor possível. Esse é um excelente começo.
Em alguns casos, o erro máximo não é o que você está interessado, mas o erro relativo máximo. Por exemplo, para a função seno, o erro próximo de x = 0 deve ser muito menor do que para valores maiores; você quer um pequeno erro relativo . Portanto, você calcularia o polinômio de Chebyshev para sin x / x e multiplicaria esse polinômio por x.
Em seguida, você precisa descobrir como avaliar o polinômio. Você deseja avaliá-lo de forma que os valores intermediários sejam pequenos e, portanto, os erros de arredondamento sejam pequenos. Caso contrário, os erros de arredondamento podem se tornar muito maiores que os erros no polinômio. E com funções como a função seno, se você for descuidado, pode ser possível que o resultado que você calcule para o pecado x seja maior que o resultado para o pecado y mesmo quando x <y. Portanto, é necessária uma escolha cuidadosa da ordem de cálculo e do cálculo dos limites superiores para o erro de arredondamento.
Por exemplo, sen x = x - x ^ 3/6 + x ^ 5/120 - x ^ 7/5040 ... Se você calcular ingenuamente sin x = x * (1 - x ^ 2/6 + x ^ 4 / 120 - x ^ 6/5040 ...), então essa função em parênteses está diminuindo, e isso vai acontecer que, se y é o próximo número maior para x, então às vezes pecam y será menor do que o pecado x. Em vez disso, calcule sin x = x - x ^ 3 * (1/6 - x ^ 2/120 + x ^ 4/5040 ...) onde isso não pode acontecer.
Ao calcular polinômios de Chebyshev, você geralmente precisa arredondar os coeficientes para dobrar a precisão, por exemplo. Mas enquanto um polinômio de Chebyshev é ideal, o polinômio de Chebyshev com coeficientes arredondados para precisão dupla não é o polinômio ideal com coeficientes de precisão dupla!
Por exemplo, para sin (x), onde você precisa de coeficientes para x, x ^ 3, x ^ 5, x ^ 7 etc., faça o seguinte: Calcule a melhor aproximação do pecado x com um polinômio (ax + bx ^ 3 + cx ^ 5 + dx ^ 7) com precisão maior que o dobro, depois arredonde a para precisão dupla, dando A. A diferença entre a e A seria muito grande. Agora calcule a melhor aproximação de (sin x - Ax) com um polinômio (bx ^ 3 + cx ^ 5 + dx ^ 7). Você obtém coeficientes diferentes, porque eles se adaptam à diferença entre a e A. Arredonde b para dobrar a precisão B. Em seguida, aproxime (sen x - Ax - Bx ^ 3) com um polinômio cx ^ 5 + dx ^ 7 e assim por diante. Você obterá um polinômio quase tão bom quanto o polinômio Chebyshev original, mas muito melhor que o Chebyshev arredondado para dobrar a precisão.
Em seguida, você deve levar em consideração os erros de arredondamento na escolha do polinômio. Você encontrou um polinômio com erro mínimo no polinômio que ignora o erro de arredondamento, mas deseja otimizar o polinômio mais o erro de arredondamento. Depois de obter o polinômio Chebyshev, você pode calcular os limites para o erro de arredondamento. Digamos que f (x) é sua função, P (x) é o polinômio e E (x) é o erro de arredondamento. Você não quer otimizar | f (x) - P (x) |, você deseja otimizar | f (x) - P (x) +/- E (x) | Você obterá um polinômio ligeiramente diferente que tenta manter os erros polinomiais baixos onde o erro de arredondamento é grande e relaxa os erros polinomiais um pouco, onde o erro de arredondamento é pequeno.
Tudo isso fará com que você facilmente arredonde erros de no máximo 0,55 vezes o último bit, onde +, -, *, / tenha erros de arredondamento de no máximo 0,50 vezes o último bit.