+1 Daumen
4,8k Aufrufe

habe heute beim rumrechnen eine interessante Formel für die Berechnung von e gefunden. Kennt jemand das schnellste Verfahren, um e computertechnisch zu berechnen? Ist z. B.

e= Σ 1/k!  (mit k=0 bis ) schneller als die bei Wiki angegebene Kettenbruchentwicklung:

e = [2;1,2,1,1,4,1,1,6,1,1,8,1,1,10,1,1,...]

https://de.wikipedia.org/wiki/Eulersche_Zahl

wobei die Fakultäten der einzelnen k nicht bereits definiert sind sondern erst vom Computer berechnet werden müssen?

Avatar von

1 Antwort

0 Daumen
Wie ist das mit der Definition als Grenzwert ?

e = (1 + 1/n)^n für n gegen Unendlich ?

Sollte das nicht vermutlich nicht noch schneller zu berechnen sein?

Wobei n möglichst eine Zweierpotenz sein sollte für die schnelle Berechnung am PC.
Avatar von 477 k 🚀

Es entstehen dann ja n Produktterme (Faktoren) und diese Folge strebt nach meinem Mathebuch langsamer gegen e als die Summe. Ich habe nun versucht ein Programm (C++) zu schreiben, dass mir ausgeben soll wieviel Zeit der Computer für z.B. n=10000000 benötigt. Leider zeigt er mir jedoch immer 0.000000 sek. an, d.h. er benötigt wohl extrem wenig Zeit dafür. Offenbar* wird das Potenzieren im Rechner anders durchgeführt als per Hand. Vielleicht habe ich auch irgendwo einen Fehler bei der Zeitanzeige drin:

#include "stdafx.h"
#include
#include
#include

double e;
int n=10000000;

void main(void)
{clock_t t;t=clock();
e=pow(1+1/double(n),n);t=clock()-t;
printf("Berechnungsdauer %f\n",((float)t)/CLOCKS_PER_SEC);
printf("e=%f",e);Sleep(10000);
}

Habe hier etwas dazu gefunden: http://superuser.com/questions/452498/how-can-computers-calculate-exponential-math-without-overflow-errors

Also im Prinzip müse ich meine Frage anders formulieren. Mit welcher Methode errechnet man e bis auf eine gewünschte Stelle hinter dem Komma am schnellsten, entweder per Hand oder per Computer, wenn dieser die Rechnung durchführen würde wie mit per Hand. Oder noch einfacher: welche Methode konvergiert am schnellsten gegen e?

Bei dir hast du erstmal eine Summe und alleine im höchsten Summanden befinden sich n Produktterme. nämlich k!.

Allerdings ist meines auch keine Reihenentwicklung von n.

Und ich brauche für a^128 nicht notwendigerweise 128 Multiplikationen. Ich kann ja auch wie folgt rechnen

a^128 = ((((((a^2)^2)^2)^2)^2)^2)^2

Es sind also 7 Multiplikationen dafür notwendig.

Ich habe mich anfangs etwas missverständlich ausgedrückt. Mit ''Formel gefunden'' meinte ich nicht die bekannte Summendarstellung, sondern ich habe selbst eine Formel herausgefunden. Daher wollte ich wissen welche Formel für e am schnellsten konvergiert um sie mit der Konvergenzgeschwindigkeit meiner Formel vergleichen zu können.

Doch nochmal zurück zu der Summe und deiner Aussage, dass im genannten Beispiel (n=128) nur 7 Multiplikationen notwendig sind. Ich bin jetzt keine Mathematiker, doch die Faktoren sind dann ja auch größer, von daher wäre der Rechenaufwand eventuell weniger, jedoch nicht sehr viel weniger als wenn ich die Faktoren einzeln schreibe. Wie gesagt, das ist nur 'ne Vermutung. Ein anderer wichtiger Punkt jedoch ist, dass die Konvergenz langsamer ist als bei der Summendarstellung, d.h. ich bekomme bereits für n=7 eine genauere Näherung für e als für n=128 in der (1+1/n)^n Darstellung. Vergleich:

e = 2.718281828

Summendarstellung (n=7): 2.718253968

(1+1/n)^n (mit n=128): 2,70773902

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Mathelounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community