Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Répondre
Résumé de la discussion (messages les plus récents en premier)
- A Ratomahenina
- 29-01-2023 14:39:56
Bonjour
Voici une variante du premier calcul qui donne e avec 13 décimales donc sur 14 chiffres au total :
((3+√2E-3-1E-5-82E-10)/2(√(6^-1(2+3^-1))))+((√(6^-1(2+3^-1)))/(2-56E-12)) = 2.7182818284590
- A Ratomahenina
- 27-01-2023 14:35:06
Bonjour
Il y a une erreur dans le diviseur de la première fraction : il faut le multiplier par 2 avec toutes mes excuses ....
- yoshi
- 27-01-2023 14:05:27
Bonjour,
Il va peut-être falloir modifier le titre de ton sujet... ^_^
Ton résultat et en-dessous, 20 décimales exactes :
2.718281828456
2,71828182845904523536028
Ta douzième décimale est fausse...
@+
- A Ratomahenina
- 26-01-2023 14:38:28
Bonjour
Voici un autre calcul qui donne les mêmes résultats que le premier :
((3+√2E-3)/(√(6^-1(2+3^-1))))+((√(6^-1(2+3^-1))/(2+((1+34^-1)/2)E-4+12^2E-11)) = 2.718281828456
- A Ratomahenina
- 20-01-2023 15:55:23
Bonjour
Il est à noter qu'en soustrayant l'inverse d'un nombre à 3 chiffres au dénominateur de la deuxième fraction ceci donne :
( 2 + (( √3/2 ) - 573^-1 )E-8 )
e donne alors : 2.718281825490
- A Ratomahenina
- 16-01-2023 16:10:10
Bonjour
Alors , qu'en pensez-vous ?
- A Ratomahenina
- 12-01-2023 16:46:53
Bonjour
Je vais vous expliquer comment j'ai fait .
Pour ce calcul j'ai utilisé la formule de Héron que j'ai adapté tel que :
( 4 / ( 2 x )) + ( x / 2 ) = e
Ce qui donne :
( 2 / x ) + ( x / 2 ) = e
Ce qui donne 2 solutions x' et x'' tel que :
x'' × x'' = 4 et x'' + x'' = 2e
√(( 4/9 ) √3 ) est une approximation de x'' et la formule donne e ~ 2.71819.....
Le calculateur donne la valeur du numérateur de la première fraction : 2.000073203 ce qui ressemble à √3-1 E-4 . L'approximation donne alors :
2.71828183
Pour le diviseur de la deuxième fraction j'ai dû y aller au jugé ( √3/2 )E-8 . Le calcul de e donne :
2.7182818284551
- Matou
- 08-01-2023 18:53:38
Bonjour,
Mon calcul consiste en une sorte de rationalisation du nombre e qui sait peut-être qu'avec un certain calcul et des valeurs remarquables on tombe sur le nombre e et ce serait là une grande chance.
Euh, $e$ est transcendant, non ?
Cordialement
Matou
- yoshi
- 08-01-2023 18:43:03
RE,
Euler a donné 23 décimales, et lui non plus n'avait pas de calculatrice et il a utilisé les factorielles...
@+
- A Ratomahenina
- 08-01-2023 12:48:44
Bonjour
Oui on arrive à la valeur exacte du nombre e en calculant la somme des inversés des factorielles mais ce n'est pas le but. Mon calcul consiste en une sorte de rationalisation du nombre e qui sait peut-être qu'avec un certain calcul et des valeurs remarquables on tombe sur le nombre e et ce serait là une grande chance. Pour ma part je ne dispose que d'une calculatrice à 10 chiffres .....
- Zebulor
- 07-01-2023 20:33:21
Bonsoir,
j'ai remarqué que cette question du temps d'exécution fait parfois l'objet de questions QCM dans certains concours ...
- yoshi
- 07-01-2023 20:05:58
Bonsoir,
@Glozi : dans le 1000, bravo ! Merci pour cet utile rappel à la vigilance. Ex kendoka, J'ai oublié le zanshin de rigueur, ce n'est pas bien :-((
Je n'ai pas réfléchi : basique n'a pas pour corollaire calculs inutiles...
Version remaniée (sans la fonction fac(n) inutile) :
from math import exp
from decimal import Decimal as D, getcontext
getcontext().prec=101
e_dec=D(1)
fc=1
for n in range(1,101):
fc*=n
e_dec+=D(1)/D(fc)
print ("En Python, nativement, on a 16 décimales :")
print("exp(1) =", exp(1))
print()
print ("Euler avait calculé les 23 premières décimales :")
print("e = 2,71828182845904523536028")
print()
print ("Wolfram Mathematica donne 39 décimales :")
print ("e = 2.718281828459045235360287471352662497757")
print ()
print ("Les 100 décimales données sur Maths et tiques sont :")
print("e = 2.7182818284590452353602874713526624977572470936999595749669676277240766303535475945713821785251664274)
print()
print ("Les 100 décimales obtenues via le module decimal sont :")
print("e_dec =", e_dec)
print()
Sortie :
En Python, nativement, on a 16 décimales :
exp(1) = 2.718281828459045Euler avait calculé les 23 premières décimales :
e = 2,71828182845904523536028Wolfram Mathematica donne 39 décimales :
e = 2.718281828459045235360287471352662497757Les 100 décimales données sur Maths et tiques sont :
e = 2.7182818284590452353602874713526624977572470936999595749669676277240766303535475945713821785251664274Les 100 décimales obtenues via le du module decimal sont :
e_dec = 2.7182818284590452353602874713526624977572470936999595749669676277240766303535475945713821785251664274
@+
- Glozi
- 06-01-2023 22:58:57
Bonsoir,
Autre précision par rapport au code de Yoshi, pour avoir un code un peu plus optimal il faudrait éviter de calculer $n!$ pour tout $n$ entre $1$ et $N$ en repartant de zéro à chaque fois. En effet, cela coute $n$ multiplications pour calculer $n!$ et donc au total le programme a une complexité en $O(N^2)$.
Une manière de résoudre le "problème" serait la suivante :
from math import exp
N=20 #la somme partielle ira jusqu'au rang N
e=1
fc=1
for n in range(1,N+1):
fc*= n # à l'étape n, fc vaut n!
e+=1/fc
print("e =",e)
print("En Python nativement on a exp(1) =",exp(1))
Ce qui donne un temps d’exécution en $O(N)$.
Bonne journée
- Gui82
- 06-01-2023 22:20:16
Bonjour Yoshi,
Juste une précision pour ceux qui nous lisent : [tex]\displaystyle e=\sum_{n=0}^{+\infty}\frac{1}{n!}[/tex] ou alors la limite des sommes partielles : [tex]\displaystyle e=\lim_{n\to +\infty}\sum_{k=0}^{n}\frac{1}{k!}[/tex]
- yoshi
- 06-01-2023 21:42:34
Re,
$e=\lim\limits \sum\limits_{n=0}^{\infty} \frac{1}{n!}$
Avec Python , sans utiliser les fonctions existantes, avec un codage basique, j'ai écrit :
from math import exp
def fac(n):
fc=1
for i in range(1,n+1):
fc*=i
return fc
e=1
for n in range(1,21):
e+=1/fac(n)
print("e =",e)
print("En Python nativement on a exp(1) =",exp(1))
Sortie :
e = 2.7182818284590455
En Python, nativement, on a exp(1) = 2.718281828459045
Si maintenant, je passe par le module decimal, que je demande une précision de 102 chiffres :
from decimal import Decimal as D, getcontext
fin=102
getcontext().prec=102
def fac(fin):
fc=1
for i in range(1,fin+1):
fc*=i
return fc
e_dec=D(1)
for n in range(1,fin+1):
e_dec+=D(1)/D(fac(n))
print ("Avec Le module decimal, on a :")
print("e_dec =", e_dec)
print()
print ("Wolfram Mathematica donne :")
print ("e = 2.718281828459045235360287471352662497757")
print ()
print ("En limitant à 100 les décimales de Maths et tiques :")
print ('e = 2,7182818284590452353602874713526624977572470936999595749669676277240766303535475945713821785251664274"
N-B : la fonction factorial existe maintenant nativement en Python.
Sortie :
Avec Le module decimal, on a :
e_dec = 2.71828182845904523536028747135266249775724709369995957496696762772407663035354759457138217852516642741Wolfram Mathematica donne :
e = 2.718281828459045235360287471352662497757En limitant à 100 les décimales de Maths et tiques :
e = 2,7182818284590452353602874713526624977572470936999595749669676277240766303535475945713821785251664274
@+