Web log de Serge Boisse
On line depuis 1992 !
Si cette page vous a plu, Copiez son adresse et partagez-la !
http://sboisse.free.fr/technique/info/fractions-continues-gnuplot.php
Auteur: Serge Boisse
Date: Le 31/03/2023 à 18:03
Type: web/MOC
Tags: programme,maths,fractions-continues
pub: oui
commentaires: oui
L'application suivante permet de calculer les fractions entières les plus proches d'un réel donné de manière interactive, ou si vous voulez de convertir un nombre décimal en fraction :
Entrez un nombre décimal positif non entier (par exemple 3.141592653)
Intéressant, non ? Ce programme utilise, de manière interne, un algorithme de calcul de fractions continues. Il donne les meilleures approximations possibles du nombre décimal que vous avez entré, tant que les entiers qui figurent dans la fraction résultante a/b restent inférieurs à dix milliards. Essayez avec 1.252525252525, c'est amusant...
Juste pour le fun, voici un petit groupe de fonctions qui permettent simplement de calculer la ou les fractions entières les plus proches d'un réél donné avec gnuplot, un logiciel que j'adore, de manière interactive :
pfrac(a,b)="".a."/".b
cfrac(r) = cfraci(r,3)
cfraci(r,i)=cfr(r,i,floor(r),0,1,1,0)
cfr(r,i,a,h2,k2,h1,k1)=(i<=0)?pfrac((a*h1+h2),(a*k1+k2)):cfr(1./(r-a),i-1,floor(1./(r-a)),h1,k1,a*h1+h2,a*k1+k2)
print cfrac(pi)
355/113`
La fonction **cfrac(r)**
donne la fraction entière la plus simple qui approxime le réél r. Le résultat de la fonction est la chaîne de caractères "a/b" où a/b est la fractions d'entiers la plus proche de r avec une précision correcte (3 itérations de l'algorithme).
La fonction cfraci(r,i) permet de préciser le nombre d'itérations de l'algorithme, donc la précision requise.
La fonction pfrac(a,b) rend la chaîne de caractères "a/b"
Exemples :
print cfraci(pi,0)
3/1
print cfraci(pi,1)
22/7
print cfraci(pi,2)
333/106
print cfraci(pi,3)
355/113
print cfraci(pi,4) 103993/33102 `
Voila, c'est tout ! Retour aux pages "maths"
ou bien retour à Mes pages "informatique"
Commentaires (1) :
Page : [1]Le 08/11/2021 à 19h00
Ajouter un commentaire (pas besoin de s'enregistrer)
En cliquant sur le bouton "Envoyer" vous acceptez les conditions suivantes : Ne pas poster de message injurieux, obscène ou contraire à la loi, ni de liens vers de tels sites. Respecter la "netiquette", ne pas usurper le pseudo d'une autre personne, respecter les posts faits par les autres. L'auteur du site se réserve le droit de supprimer un ou plusieurs posts à tout moment. Merci !Ah oui : le bbcode et le html genre <br>, <a href=...>, <b>b etc. ne fonctionnent pas dans les commentaires. C'est voulu.