Fractions continues

Le Javascript suivant donne la décomposition en fraction continue d'une valeur numérique.
La valeur peut être définie par une expression.
Les termes successifs sont entre [ ], ε = x - P/Q

valeur

Syntaxe :
Opérations +, -, *, /, %, parenthèses ( ).
x%y est x modulo y (reste de la division de x par |y|, du signe de x). x%1 est la partie fractionnaire, alias frac(x)
Nota : l'opération x^y doit être écrite pow(x, y). "x^y" représente le ou exclusif binaire !
Constantes pi = π = 3.1415..., e = 2.71828...
Valeurs numériques comme entiers signés ou virgule flottante [+/-]xxx[.yyy][E[+/-]nn], ex : 3.14, 1.54E-4, -12345 ...
(attention 'e' est compris comme la constante e, utiliser obligatoirement E majuscule ici)
log( ) = log en base 10, ln( ) = log en base e, log2( ) = log en base 2
exp(x) = ex, pow(x, y) = xy, sqrt(x) = x
sin( ), cos( ), tan( ), asin( ), acos( ), atan( ), abs(x), max(x, y), min(x, y)
ceil(x) est le plus petit entier relatif (dans Z) ≥ x,
floor(x) le plus grand entier relatif ≤x
round(x) l'entier relatif le plus proche de x

A cause de la précision limitée des nombres en virgule flottante de Javascript, les dernières réduites (avec de grandes valeurs de P, Q) ne sont pas garanties.
Un calcul d'erreur doit être fait au cas par cas, en considérant que les nombres en virgule flottante de Javascript sont avec une précision de ≈ 10-16.

Fractions continues particulières

Nombres rationnels : Les fractions continues correspondantes sont finies, voir algorithme d'Euclide
Irrationnels quadratiques : fraction continue périodique, voir algorithme PQA
Nombre e = [2,1,2,1,1,4,1,...,1,2n,1,...]
ln(1 + x) = x/(1 + x/(2 + x/(3 + 4x/(4 + 4x/(5 + 9x/(6 + 9x/(7 + ...
Ce n'est pas une fraction continue unitaire, mais permet d'obtenir les réduites exactement par la formule de récurence :
P[i] = a[i]P[i-1] + b[i]P[i-2], Q[i] = a[i]P[i-1] + b[i]Q[i-2]
a[i] = i+1 = 1,2,3,4,5,6,...
b[0] = x, b[i] = floor((i+1)/2)²x = x, x, x, 4x, 4x, 9x, 9x, 16x, 16x, 25x, 25x,...
de la même façon que pour les réduites d'une fraction unitaire où tous les b[i] = 1
La même méthode donne les réduites exactes de π = 4/(1 + 1/(2 + 3²/(2 + 5²/(2 + 7²/(2 + ...

 

Accueil Arithmétiques Géométrique Divers Thèmes Scripts Jeux Exercices Sujet précédent Sujet suivant