Salut
Ben...
O(x^n), c'est une fonction, cette notation, c'est une des notations de Landau :
http://fr.wikipedia.org/wiki/Notations_de_Landau
En fait, on note
O(x^n) (ici on devrait préciser pour
x→+∞), toute fonction
f telle que
f(x)/x^n est bornée (ici en l'occurrence quand
x→+∞).
On note
o(x^n) (dans le cas qui nous intéresse, pour
x→+∞), toute fonction
f telle que
lim (f(x)/x^n) = 0 (et donc ici, quand
x→+∞).
Ta formule est pas fausse mais on peut la raffiner un peu.
exp(x) = 1 + (x/1!) + (x^2/2!) + (x^3/3!) + ... + (x^n/n!) + O(x^(n+1))
Ou
exp(x) = 1 + (x/1!) + (x^2/2!) + (x^3/3!) + ... + (x^n/n!) + o(x^n)
Bref, ici donc, ton
O(x^(n+1)) ou ton
o(x^n), c'est
(x^(n+1)/(n+1)!) + (x^(n+2)/(n+2)!) + (x^(n+3)/(n+3)!) + ... (jusqu'à
+∞)
Parce qu'en fait, la formule que t'as écrite, c'est juste une écriture moins précise de
exp(x) = 1 + (x/1!) + (x^2/2!) + (x^3/3!) + ... + (x^n/n!) + ... (jusqu'à
+∞)
Du coup pour ton programme tu t'en occupes pas trop. Tu choisis un
n assez grand et tu calcules ta somme jusqu'à
n.
Tu peux améliorer le programme en choisissant le
n en fonction de
x. En effet, un
n qui va te donner des résultats très précis pour un
x pas trop grand, va donner des résultats beaucoup moins satisfaisants pour un
x plus grand. Du coup, tu peux sommer jusqu'à ce que le premier terme du reste (
(x^(n+1)/(n+1)!)) soit inférieur à un petit nombre donné.
Par contre, si tu vas jusqu'à des
n relativement grands, pense à utiliser une exponentiation rapide.
http://fr.wikipedia.org/wiki/Exponentiation_rapide
Sinon ça va ramer...
Et dernière chose, je pense que si t'essaies de calculer l'exponentielle d'un grand nombre de cette manière (Quel sera exactement "grand" ? Ben je sais pas trop...), tu vas rapidement avoir des soucis. En effet,
x^n→+∞) (tout au moins pour
x > 1) et
n!→+∞.
En théorie
(x^n/n!)→+0 mais numériquement, tu vas avoir à évaluer le quotient de deux grands nombres et t'auras des erreurs numériques monstrueuses. Et en plus, passé
n=170, le résultat du calcul de
n! sera tout simplement
+∞.
Voilà... Amuse-toi bien ! ;-)