2016-09-16 3 views
0

ich die ungefähre Summe der Exponentialfunktion finden wollen, sieht mein Code wie folgt aus:ungefähre Summe der Exponentialfunktion in Python

import numpy as np 
import matplotlib.pyplot as plt 
import math 

N = input ("Please enter an integer at which term you want to turncate your summation") 
x = input ("please enter a number for which you want to run the exponential summation e^{x}") 

exp_sum =0.0 

for n in range (0, N): 
    factorial = math.factorial(n) 
    power  = x**n 
    nth_term = power/factorial 
    exp_sum = exp_sum + nth_term 

print exp_sum 

Nun testete ich es für ein Paar (x, N) = (1 , 20) und es gibt 2,0 zurück. Ich habe mich gefragt, ob mein Code in diesem Kontext richtig ist. Wenn ja, wie viele Begriffe sollte ich dann als e = 2,71 ... n betrachten? Wenn mein Code falsch ist, bitte hilf mir das zu beheben.

+0

Fügen Sie dies als erste Zeile Ihres Codes hinzu, 'from __future__ import division'. –

Antwort

1

Welche Version von Python verwenden Sie? Die Division, die nth_term findet, gibt unterschiedliche Ergebnisse in Python 2.x und Version 3.x.

Es scheint, als ob Sie Version 2.x verwenden. Die Division, die Sie verwenden, gibt nur ganzzahlige Ergebnisse, also nach den ersten zwei Zeilen Schleifen (1/Fakultät (0) + 1/Fakultativ (1)) fügen Sie nur Nullen hinzu.

Also entweder Gebrauch Version 3.x oder ersetzen Sie diese Zeile mit

nth_term = float(power)/factorial 

Oder, wie ein Kommentar schon sagt, Python 2.x auszukommen Teilung wie 3.x, indem Sie die Zeile

from __future__ import division 

am oder sehr nahe am Anfang des Moduls.