Berechnung der Fakultät von Fließkommazahlen anhand von Stirlingformel

pkm

Bekanntes Mitglied
Wenn ich in einem Onlinetaschenrechner die Fakultät von 2,2 berechne (2,2!), ist das Ergebnis 2.42396547994.

Bei der Entwicklung einer Taschenrechnerapplikation habe ich nun die Berechnung ganzzahliger Fakultäten um die Berechnnug der Fakultät von Fließkommzahlen anhand folgender Formel / Funktion erweitert:

Java:
    private double stirlingFactorial(double n) {

        if (n == 1) {
            return 1;
        }
        
        double z;
        double e = 2.71;
        
        z = Math.sqrt(2*3.14*n) * Math.pow((n/e), n);
        return z;
    }

Diese Formel habe ich aus dem Netz gerippt, und sie liefert mit als Ergebnis von 2,2! einen anderen als den oben angegebenen Wert, nämlich: 2.349571254135079

Ist die Formel falsch, und falls ja, gibt es eine kanonische Formel zur Berechnung der Fakultät von Fließkommazahlen?
 
Probier mal mit:

Java:
    public static double stirlingFactorial(double n) {
        if (n == 1) {
            return 1;
        }
        return Math.sqrt(2 * Math.PI * n) * Math.pow((n / Math.E), n);
    }
 
Danke für die Antwort - nach wie vor weichen die Ergebnisse voneinander ab (spooky). Laut Onlinerechner ist 2,2! = 2.42396547994, mit der obigen Stirlingformel berechnet ist das Ergebnis für denselben Term: 2.334443204078601.
 
In der Wikipedia gibt es folgendes Bild:

1634549536070.png


Sprich, die einfache Stirlingformel weicht vor allem bei kleinen n ein gutes Stück vom exakten Wert ab.

6% von 2,42396547994 sind 0,14...

Damit liegt dein Wert im Rahmen der Abweichung und vermutlich hat der Taschenrechner ein genaueres Verfahren implementiert (Siehe die Verfahren hier: https://de.wikipedia.org/wiki/Stirlingformel)
 

Zurück
Oben