Les polynômes de Tchebychev, comme mentionné dans une autre réponse, sont les polynômes où la plus grande différence entre la fonction et le polynôme est aussi petite que possible. C'est un excellent début.
Dans certains cas, l'erreur maximale n'est pas celle qui vous intéresse, mais l'erreur relative maximale. Par exemple pour la fonction sinus, l'erreur près de x = 0 devrait être beaucoup plus petite que pour des valeurs plus grandes; vous voulez une petite erreur relative . Donc, vous calculeriez le polynôme de Tchebychev pour sin x / x, et multiplieriez ce polynôme par x.
Ensuite, vous devez comprendre comment évaluer le polynôme. Vous voulez l'évaluer de telle manière que les valeurs intermédiaires soient petites et donc que les erreurs d'arrondi soient petites. Sinon, les erreurs d'arrondi pourraient devenir beaucoup plus importantes que les erreurs dans le polynôme. Et avec des fonctions comme la fonction sinus, si vous êtes insouciant, il peut être possible que le résultat que vous calculez pour sin x soit supérieur au résultat pour sin y même lorsque x <y. Il faut donc choisir soigneusement l'ordre de calcul et le calcul des limites supérieures pour l'erreur d'arrondi.
Par exemple, sin x = x - x ^ 3/6 + x ^ 5/120 - x ^ 7/5040 ... Si vous calculez naïvement sin x = x * (1 - x ^ 2/6 + x ^ 4 / 120 - x ^ 6/5040 ...), alors cette fonction entre parenthèses est en baisse, et il va arriver que si y est le numéro suivant plus à x, alors le péché parfois y sera plus petit que le péché x. Au lieu de cela, calculez sin x = x - x ^ 3 * (1/6 - x ^ 2/120 + x ^ 4/5040 ...) où cela ne peut pas se produire.
Lors du calcul des polynômes de Chebyshev, vous devez généralement arrondir les coefficients pour doubler la précision, par exemple. Mais alors qu'un polynôme de Chebyshev est optimal, le polynôme de Chebyshev avec des coefficients arrondis à la double précision n'est pas le polynôme optimal avec des coefficients de double précision!
Par exemple, pour sin (x), où vous avez besoin de coefficients pour x, x ^ 3, x ^ 5, x ^ 7 etc. vous procédez comme suit: Calculez la meilleure approximation de sin x avec un polynôme (ax + bx ^ 3 + cx ^ 5 + dx ^ 7) avec une précision supérieure à la double, puis arrondissez de a à la double précision, ce qui donne A. La différence entre a et A serait assez grande. Calculez maintenant la meilleure approximation de (sin x - Ax) avec un polynôme (bx ^ 3 + cx ^ 5 + dx ^ 7). Vous obtenez des coefficients différents, car ils s'adaptent à la différence entre a et A. Arrondissez b à une double précision B. Puis approximez (sin x - Ax - Bx ^ 3) avec un polynôme cx ^ 5 + dx ^ 7 et ainsi de suite. Vous obtiendrez un polynôme qui est presque aussi bon que le polynôme original de Chebyshev, mais bien meilleur que Chebyshev arrondi à la double précision.
Ensuite, vous devez prendre en compte les erreurs d'arrondi dans le choix du polynôme. Vous avez trouvé un polynôme avec une erreur minimale dans le polynôme en ignorant l'erreur d'arrondi, mais vous souhaitez optimiser le polynôme plus l'erreur d'arrondi. Une fois que vous avez le polynôme de Chebyshev, vous pouvez calculer les limites de l'erreur d'arrondi. Supposons que f (x) est votre fonction, P (x) est le polynôme et E (x) est l'erreur d'arrondi. Vous ne voulez pas optimiser | f (x) - P (x) |, vous souhaitez optimiser | f (x) - P (x) +/- E (x) |. Vous obtiendrez un polynôme légèrement différent qui essaie de limiter les erreurs polynomiales là où l'erreur d'arrondi est importante et assouplit un peu les erreurs polynomiales là où l'erreur d'arrondi est petite.
Tout cela vous permettra d'obtenir facilement des erreurs d'arrondi d'au plus 0,55 fois le dernier bit, où +, -, *, / ont des erreurs d'arrondi d'au plus 0,50 fois le dernier bit.