Une suite harmonique
Résolu
BoudineJean-Pierre
-
BoudineJean-Pierre Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
BoudineJean-Pierre Messages postés 5 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaite construire des suites "harmoniques" c'est à dire que, si a,h,b, sont trois termes consécutifs, h est la moyenne harmonique de a et b.
Pour construire, je fixe a et h et j'ai b = a*h/(2*a-h).
Ce script :
a,h,c=14,15,1
while c<5:
(a,h)= (h,a*h/(2*a-h))
print h
c = c+1
fonctionne très bien, mais je préférerais les résultats sous forme de fractions rationnelles et quand je tente d'introduire "Fraction(h,a*h/(2*a-h))", j'ai un message d'erreur dont je ne me sort pas...
Je souhaite construire des suites "harmoniques" c'est à dire que, si a,h,b, sont trois termes consécutifs, h est la moyenne harmonique de a et b.
Pour construire, je fixe a et h et j'ai b = a*h/(2*a-h).
Ce script :
a,h,c=14,15,1
while c<5:
(a,h)= (h,a*h/(2*a-h))
print h
c = c+1
fonctionne très bien, mais je préférerais les résultats sous forme de fractions rationnelles et quand je tente d'introduire "Fraction(h,a*h/(2*a-h))", j'ai un message d'erreur dont je ne me sort pas...
A voir également:
- Une suite harmonique
- Moyenne harmonique excel - Guide
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonsoir, peux-tu montrer ton programme complet, et nous indiquer quel message d'erreur tu as sur quelle ligne?
que veux-tu représenter sous forme de fraction rationnelle?
à ta place, moi je commencerais avec
que veux-tu représenter sous forme de fraction rationnelle?
à ta place, moi je commencerais avec
a=Fraction(1,14) h=Fraction(1,15) c=1
h étant la moyenne harmonique de a et b, je ne calcule pas h avec a et b, je pose a et h et je calcule b, puis, b est la moyenne harmonique de h et un h' que je calcule, et ainsi de suite. Si on commence avec 1 et 1/2, on trouve la suite 1/n.
Si on commence avec 14 et 15, on continue avec 210/13 , 35/2 ; 210/11, etc.
le script me donne ça, mais sous forme décimale : 14,15, 16.1538...,17.5, etc.
Je voudrais la suite sous forme de fractions (celles ci-dessus, je les calcule à la main). le message d'erreur est :TypeError 'float' object cannot be interpreted as an index
a,h,c=14,15,1
while c<50:
(a,h)= (h, Fraction(a*h/(2*a-h)))
print h
c = c+1
JP
from fractions import *
a,h,c=14,15,1
while c < 11:
g=a*h/(2*a-h)
(a,h)=(h,g)
e=Fraction.from_float(g)
print e
c=c+1
cette fois, les réponses sont sous forme de fraction ... mais le numérateur et le dénominateur ont douze chiffres chacun ! Ces fractions semblent correctes (le développement décimal est le même que celui de la fraction exacte (par exemple 210/13. Mais soit, elles ne sont pas réduites, soit le processus de calcul par Python donne une fraction très très proche, mais différente.