Les calculs informatiques

Comment approcher des nombres ?

Voici ci-dessous une approximation du nombre \pi avec 150 décimales exactes (les 150 chiffres après la virgule sont identiques à ceux de \pi) :

3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067982148086513282306647093844609550582231725359408128

Comment peut-on obtenir un résultat aussi précis ? Vous êtes peut-être tenté de répondre qu’il suffit d’utiliser un ordinateur afin d’effectuer des calculs et vous avez raison, néanmoins il y aura plusieurs difficultés à surmonter …

Trouver une suite de fractions

Les nombres réels comme \pi ou \sqrt{2} peuvent tous être approchés par des suites de fractions. Une première difficulté sera de déterminer une suite de fractions qui converge rapidement vers le nombre que vous souhaitez approcher. L’idéal est en effet d’avoir le moins de calculs à faire car chaque calcul nécessite du temps.

Déterminer l’erreur d’approximation

Supposons que l’on dispose maintenant d’une suite de fractions convergente vers \pi. On pourra obtenir alors une certaine fraction F très proche de \pi. Une seconde difficulté sera d’être capable d’estimer la différence entre F et \pi afin de pouvoir déterminer les décimales exactes obtenues lors du calcul de la division F.

Contourner ou maitriser les erreurs de l’ordinateur

Il y a d’autres difficultés cette fois liées au système de stockage et de calcul des nombres par l’ordinateur. Observez l’addition suivante saisie dans un ordinateur classique (fonctionnant selon la norme IEEE754 en double précision) :

0.1+0.2
>>0.30000000000000004

Pour aboutir à ce faux résultat, la machine a commencé par stocker une approximation de chacun des deux nombres à additionner en mémoire sous la forme d’une suite de 64 chiffres valant 0 ou 1 (ces chiffres sont appelés des bits). En fait, à partir du moment où vous utilisez dans vos calculs une division ou un nombre décimal (un nombre à virgule) alors l’ordinateur stockera dans sa mémoire qu’une approximation de votre nombre que l’on appelle un nombre flottant. Ce n’est pas tout car même lorsque la machine additionne deux nombres flottants elle suit certaines règles qui lui permettent d’obtenir seulement une valeur approchée de la somme. Imaginez qu’à chaque nouvelle opération, addition, soustraction, multiplication ou division il y a alors de nouvelles erreurs qui s’ajoutent aux précédentes.

Un cours interactif !

Comment peut-on remédier à tous ces problèmes et obtenir avec un temps de calcul raisonnable 150 décimales exactes de \pi ou un million de décimales exactes de \sqrt{2} ? Pourquoi l’ordinateur commet-il des erreurs pour stocker et additionner des nombres ? Les réponses se trouvent dans un cours interactif : vous aurez accès à des cellules contenant des lignes de code en Python que vous pourrez exécuter et modifier à votre guise afin de faire vos propres expériences.

Pour suivre ce cours interactif cliquez sur le bouton suivant :

Pour déterminer les décimales exactes d’une approximation d’un nombre réel on peut utiliser un théorème qui est détaillé dans le fichier joint ci-dessous.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *