Programmes > Exemple : Comparaison booléenne stricte
Exemple : Comparaison booléenne stricte
Activez l'option Egalité approximative pour contrôler le niveau de précision des comparaisons booléennes et des fonctions de troncature.
1. Définissez une fonction.
2. Écrivez un programme qui implémente Newton's Method et la compare au résultat de la fonction intégrée root.
La fonction root dépend de TOL, mais ne réagit pas à une valeur TOL supérieure à 10-5.
Vérifiez que TOL porte le libellé Système.
3. Vérifiez qu'aucune des options de calcul figurant dans l'onglet Calcul, sous le groupe Paramètres du document et sous Options de calcul n'est sélectionnée. Appelez ensuite Newt et transmettez-lui le nom de la fonction, une valeur initiale et le nombre maximum d'itérations.
En utilisant la valeur par défaut de TOL (TOL:=TOL1), Newt peut lancer 50 itérations et toutes les exécuter pour atteindre le meilleur résultat approximatif dans le cadre d'une évaluation stricte.
Lorsque l'option Egalité approximative est désactivée, les nombres compris entre –10-307 et +10-307 sont considérés comme nuls. Les comparaisons sont évaluées de façon stricte, à l'aide des nombres eux-mêmes jusqu'à leur représentation en virgule flottante double précision.
4. Passez à l'étape 2 et définissez TOL sur TOL2. Newt atteint les résultats exacts en 20 itérations.
5. Passez à l'étape 2 et redonnez à TOL la valeur TOL1.
6. Dans l'onglet Calcul, dans le groupe Paramètres du document, cliquez sur Options de calcul, puis sélectionnez Egalité approximative.
La valeur renvoyée par Newton's Method passe de -0.152137970680457 à -0.152137970680580 ; ce résultat est atteint en 19 itérations.
Lorsque l'option Egalité approximative est active, la valeur absolue de la différence entre deux nombres divisés par leur moyenne doit être inférieure à 10-12 pour pouvoir établir l'égalité.
7. Vérifiez que les valeurs renvoyées passent le test d'égalité :
8. Passez à l'étape 2 et définissez TOL sur TOL2. La valeur renvoyée par root passe de -0.152137970680456 à -0.152137970680457 ; ce résultat est atteint en 19 itérations.
9. Vérifiez que les valeurs renvoyées passent le test d'égalité :