Seite 1 von 1

e hoch x berechnen

Verfasst: Dienstag 25. Oktober 2016, 18:26
von krinust
Hallo! Ich soll an der Uni Fortran lernen und möchte privat gerne Python lernen. Deshalb würde ich gerne die Programmieraufgaben sowohl in Fortran als auch in Python lösen und hier die Python-Variante kontrollieren lassen (falls das in Ordnung ist :wink: ).

Ok, meine erste Aufgabe: Ein Programm schreiben, welches e hoch x mit Hilfe der Taylor-Reihe (Summe über x^(i)/i!) mit doppelt genauer reeller Gleitkommaarithmetik berechnet. Dabei soll ich die Summation abbrechen, sobald die Summanden bei der Rechnung so klein werden, dass keine Veränderung der Summe mehr auftritt.

Hier mein Versuch:

Code: Alles auswählen

def e_hoch_x(x):
	y = 1.0
	summe = 0
	i = 1
	while True:
		alte_summe = summe
		y = y*x/i
		summe += y
		if alte_summe == summe:
			break
		i += 1
	return summe


def main():
	x = int(raw_input("x = "))
	print "e^{}: {}".format(x, e_hoch_x(x))


if __name__ == '__main__':
	main()
Leider stimmt das Ergebnis nicht, für e hoch 2 kommt z.B. 6.38905609893 raus, also 1 zu wenig.

Re: e hoch x berechnen

Verfasst: Dienstag 25. Oktober 2016, 18:36
von Sirius3
@krinust: die Summe fängt ja auch bei i=0 mit x^0/0! an.

Re: e hoch x berechnen

Verfasst: Dienstag 25. Oktober 2016, 19:48
von krinust
Vielen Dank, das hat das Problem beseitigt :)