Pour une fonction comme f (x) = sqrt (1 + x) - sqrt (1-x), nous obtenons des résultats non désirés pour une certaine plage de valeurs x. Cependant, nous pouvons réécrire l'équation par morceaux pour utiliser l'équation originale dans certains cas et la nouvelle équation dans d'autres.Instabilité arithmétique des virgules flottantes
Comment puis-je déterminer la plage de valeurs x et trouver une autre expression pour des questions comme celles-ci? (De la recherche en ligne, j'ai trouvé que vous ne voulez pas que les fonctions "s'annulent" pour certaines valeurs, mais est-ce tout ce que nous cherchons? Par exemple, dans f (x) = e^x - 1, TOUJOURS juste chercher autour de f (x) = 0?)
Cette question est beaucoup trop large comme écrit. Pourriez-vous être plus précis? –
Pouvez-vous fournir une plage de valeurs de x où f (x) = sqrt (1 + x) - sqrt (1-x) donne de mauvais résultats lorsqu'il est évalué à l'aide de l'arithmétique en virgule flottante? Fournissez une expression alternative pour f (x) pour ces valeurs de x afin que "l'erreur d'annulation" ne se produise pas. – Brainpower2049
@ Brainpower2049: les petits 'x' sont problématiques. Par exemple, 'f (1e-16)' donne '1.1102230246251565e-16', tandis que' f (1e-17) 'donne' 0.0'. Une expression qui est mathématiquement mais non numériquement équivalente est '2 * x/(sqrt (1 + x) + sqrt (1-x))'. Cela donne de bons résultats numériquement sur l'ensemble du domaine '[-1.0, 1.0]'. –