Log-Gamma Funktion Rechner
Logarithmische Gamma-Funktion für numerische Stabilität
Geben Sie das Argument (x) ein und klicken Sie auf Berechnen um die Log-Gamma-Funktion zu ermitteln. Die Log-Gamma-Funktion ist der natürliche Logarithmus der Gamma-Funktion und bietet numerische Stabilität bei großen Argumenten, wo die Gamma-Funktion selbst zu Overflow führen würde.
💡 Log-Gamma-Funktion
\(\ln \Gamma(x) = \ln\left(\int_0^\infty t^{x-1} e^{-t} \, dt\right)\)
📊 Visualisierung
Die Log-Gamma-Funktion zeigt ein glattes Verhalten ohne die extremen Werte der regulären Gamma-Funktion.
Die Log-Gamma-Funktion verstehen
Die Log-Gamma-Funktion ist der natürliche Logarithmus der Gamma-Funktion und spielt eine zentrale Rolle in der numerischen Mathematik. Sie bietet entscheidende Vorteile: numerische Stabilität bei großen Argumenten, Vermeidung von Overflow-Problemen und direkte Berechenbarkeit durch spezielle Algorithmen. Die Funktion ist essentiell in der statistischen Datenanalyse, Wahrscheinlichkeitstheorie und überall dort, wo große Faktorialwerte auftreten.
📊 Definition
Logarithmische Form:
📊 Eigenschaften
- • Numerisch stabil
- • Vermeidet Overflow
- • Glatte Funktion
- • Direkt berechenbar
🔬 Vorteile
- • Keine Overflow-Probleme
- • Bessere Konditionierung
- • Effiziente Algorithmen
- • Numerische Präzision
⭐ Anwendungen
- • Statistische Modelle
- • Bayesianische Inferenz
- • Numerische Integration
- • MCMC-Algorithmen
Mathematische Grundlagen
📊 Grunddefinition
Die Log-Gamma-Funktion und ihre Eigenschaften:
\[\text{Definition für } x > 0: \ln \Gamma(x) = \ln\left(\int_0^\infty t^{x-1} e^{-t} \, dt\right)\] \[\text{Funktionalgleichung: } \ln \Gamma(x+1) = \ln x + \ln \Gamma(x)\] \[\text{Für natürliche Zahlen: } \ln \Gamma(n) = \ln((n-1)!) = \sum_{k=1}^{n-1} \ln k\] \[\text{Spezialwerte: } \ln \Gamma(1) = 0, \quad \ln \Gamma(1/2) = \frac{1}{2}\ln \pi\]
🔄 Binet-Formel
Integraldarstellung der Log-Gamma-Funktion:
\[\ln \Gamma(z) = \left(z - \frac{1}{2}\right) \ln z - z + \frac{1}{2}\ln(2\pi) + 2\int_0^\infty \frac{\arctan(t/z)}{e^{2\pi t} - 1} \, dt\] \[\text{Diese Darstellung ist für die analytische Fortsetzung wichtig}\] \[\text{und bietet eine alternative Berechnungsmethode}\]
📊 Stirling-Asymptotik
Asymptotische Entwicklung für große Argumente:
\[\ln \Gamma(z) \sim \left(z - \frac{1}{2}\right) \ln z - z + \frac{1}{2}\ln(2\pi) + \sum_{k=1}^N \frac{B_{2k}}{2k(2k-1)z^{2k-1}}\] \[\text{Wobei } B_{2k} \text{ die Bernoulli-Zahlen sind:}\] \[B_2 = \frac{1}{6}, \quad B_4 = -\frac{1}{30}, \quad B_6 = \frac{1}{42}, \quad B_8 = -\frac{1}{30}, \ldots\] \[\text{Erste Korrekturterme: } \frac{1}{12z} - \frac{1}{360z^3} + \frac{1}{1260z^5} - \ldots\]
Praktische Berechnungsbeispiele
📝 Beispiel 1: Große Fakultäten
Aufgabe: Berechnung von ln(100!)
Problem: 100! ist zu groß für direkte Berechnung
Lösung:
\[\ln(100!) = \ln \Gamma(101) = \sum_{k=1}^{100} \ln k\] \[\text{Direkte Summation: } \ln(100!) = \ln 1 + \ln 2 + \cdots + \ln 100\] \[\approx 363{,}7394 \text{ (exakter Wert)}\] \[\text{Stirling-Approximation: } \ln \Gamma(101) \approx 100{,}5 \ln(100) - 100 + 0{,}5 \ln(200\pi)\] \[\approx 100{,}5 \cdot 4{,}605 - 100 + 2{,}83 \approx 363{,}734\] \[\text{Relativer Fehler: } < 0{,}001\%\]
Vorteil: Numerisch stabile Berechnung ohne Overflow
📝 Beispiel 2: Statistische Anwendung
Aufgabe: Log-Likelihood einer Gamma-Verteilung
Dichte: f(x|α,β) = (β^α/Γ(α)) x^(α-1) e^(-βx)
Berechnung:
\[\text{Log-Likelihood für } n \text{ Beobachtungen:}\] \[\ell(\alpha, \beta) = \sum_{i=1}^n \ln f(x_i|\alpha, \beta)\] \[= \sum_{i=1}^n [\alpha \ln \beta - \ln \Gamma(\alpha) + (\alpha-1) \ln x_i - \beta x_i]\] \[= n\alpha \ln \beta - n \ln \Gamma(\alpha) + (\alpha-1) \sum_{i=1}^n \ln x_i - \beta \sum_{i=1}^n x_i\] \[\text{Der Term } -n \ln \Gamma(\alpha) \text{ erfordert stabile Berechnung}\]
Wichtigkeit: Ohne Log-Gamma wäre Maximum-Likelihood-Schätzung problematisch
📝 Beispiel 3: Digamma-Funktion
Aufgabe: Ableitung der Log-Gamma-Funktion
Definition: ψ(x) = d/dx ln Γ(x)
Berechnung:
\[\text{Digamma-Funktion: } \psi(x) = \frac{d}{dx} \ln \Gamma(x) = \frac{\Gamma'(x)}{\Gamma(x)}\] \[\text{Rekursionsrelation: } \psi(x+1) = \psi(x) + \frac{1}{x}\] \[\text{Asymptotische Entwicklung: } \psi(x) \approx \ln x - \frac{1}{2x} - \frac{1}{12x^2} + \frac{1}{120x^4} - \ldots\] \[\text{Spezialwerte: } \psi(1) = -\gamma \text{ (Euler-Mascheroni-Konstante)}\] \[\psi(1/2) = -\gamma - 2\ln 2, \quad \psi(2) = 1 - \gamma\]
Anwendung: Optimierung statistischer Modelle, Variationsparameter
Numerische Aspekte
✅ Vorteile der Log-Gamma-Funktion
Numerische Vorteile gegenüber der regulären Gamma-Funktion:
\[\text{✓ Keine Overflow-Probleme bei großen Argumenten}\] \[\text{✓ Bessere numerische Stabilität}\] \[\text{✓ Effiziente Berechenbarkeit durch Stirling-Approximation}\] \[\text{✓ Direkte Verwendung in Log-Likelihood-Funktionen}\] \[\text{✓ Glatte Funktion ohne extreme Steigungen}\] \[\text{✓ Additive Eigenschaften: } \ln \Gamma(x+1) = \ln x + \ln \Gamma(x)\]
⚠️ Numerische Herausforderungen
Aspekte, die beachtet werden müssen:
\[\text{⚠ Pole bei negativen ganzen Zahlen bleiben bestehen}\] \[\text{⚠ Benötigt spezielle Algorithmen für kleine Argumente}\] \[\text{⚠ Analytische Fortsetzung für komplexe Argumente komplex}\] \[\text{⚠ Asymptotische Reihen sind divergent}\]
Vergleichstabelle der Werte
📊 Log-Gamma Werte
x | Γ(x) | ln(Γ(x)) | Exakter Ausdruck |
---|---|---|---|
0.5 | √π ≈ 1.772 | 0.572 | ½ ln(π) |
1 | 1 | 0 | 0 |
1.5 | √π/2 ≈ 0.886 | -0.120 | ½ ln(π) - ln(2) |
2 | 1 | 0 | 0 |
3 | 2 | 0.693 | ln(2) |
5 | 24 | 3.178 | ln(4!) = ln(24) |
10 | 362880 | 12.802 | ln(9!) |
100 | ~9.33×10¹⁵⁷ | 363.739 | ln(99!) |
Anwendungen in verschiedenen Bereichen
📊 Statistik & Datenanalyse
- • Maximum-Likelihood-Schätzung
- • Bayesianische Inferenz
- • Gamma- und Beta-Verteilungen
- • Dirichlet-Verteilungen
🧮 Numerische Mathematik
- • MCMC-Algorithmen
- • Numerische Integration
- • Approximationsverfahren
- • Wissenschaftliches Rechnen
🔬 Wissenschaftliche Anwendungen
- • Physikalische Modellierung
- • Bioinformatik
- • Quantenstatistik
- • Thermodynamik
💼 Praktische Bereiche
- • Finanzmodellierung
- • Risikomanagement
- • Maschinelles Lernen
- • Optimierung
Implementierung und Code
💻 Code-Implementierungen
Effiziente Implementierung der Log-Gamma-Funktion:
Python (SciPy):
from scipy.special import loggamma, digamma, polygamma
import numpy as np
# Log-Gamma-Funktion
result = loggamma(x) # ln(Γ(x))
digamma_val = digamma(x) # ψ(x) = d/dx ln(Γ(x))
# Eigene Implementation (vereinfacht)
def log_gamma_stirling(x):
"""Stirling-Approximation für ln(Γ(x))"""
if x < 1:
# Rekursion: ln(Γ(x)) = ln(Γ(x+1)) - ln(x)
return log_gamma_stirling(x + 1) - np.log(x)
# Stirling-Approximation
return (x - 0.5) * np.log(x) - x + 0.5 * np.log(2 * np.pi)
R:
result <- lgamma(x) # Log-Gamma
digamma_val <- digamma(x) # Digamma
trigamma_val <- trigamma(x) # Trigamma
MATLAB:
result = gammaln(x); % Log-Gamma
psi_val = psi(x); % Digamma (in Statistics Toolbox)
🎯 Hochpräzise Implementation
Professionelle Implementierung mit Fehlerbehandlung:
C++ (Numerically Stable):
#include <cmath>
#include <stdexcept>
double log_gamma(double x) {
if (x <= 0) {
if (x == floor(x)) {
throw std::domain_error("log_gamma: pole at negative integer");
}
// Reflection formula: ln(Γ(x)) = ln(π) - ln(sin(πx)) - ln(Γ(1-x))
return log(M_PI) - log(sin(M_PI * x)) - log_gamma(1 - x);
}
// For x > 0, use Stirling series or Lanczos
if (x < 12) {
// Use recurrence to get x >= 12
double result = 0;
while (x < 12) {
result -= log(x);
x += 1;
}
return result + log_gamma_stirling(x);
}
return log_gamma_stirling(x);
}
double log_gamma_stirling(double x) {
// Stirling series with correction terms
double inv_x = 1.0 / x;
double inv_x2 = inv_x * inv_x;
return (x - 0.5) * log(x) - x + 0.5 * log(2 * M_PI) +
inv_x / 12 - inv_x2 * inv_x / 360 + inv_x2 * inv_x2 * inv_x / 1260;
}
🎯 Statistische Anwendung
Verwendung in statistischen Modellen:
Gamma-Verteilung Log-Likelihood:
def gamma_log_likelihood(data, alpha, beta):
"""Log-Likelihood für Gamma-Verteilung"""
n = len(data)
sum_log_x = np.sum(np.log(data))
sum_x = np.sum(data)
return (n * alpha * np.log(beta) -
n * loggamma(alpha) +
(alpha - 1) * sum_log_x -
beta * sum_x)
Beta-Funktion über Log-Gamma:
def log_beta(a, b):
"""Logarithmische Beta-Funktion"""
return loggamma(a) + loggamma(b) - loggamma(a + b)
Multinomial-Koeffizient:
def log_multinomial_coeff(n, k_list):
"""Log des multinomialen Koeffizienten"""
return loggamma(n + 1) - np.sum([loggamma(k + 1) for k in k_list])
💡 Wichtige Eigenschaften der Log-Gamma-Funktion:
- Numerische Stabilität: Vermeidet Overflow-Probleme bei großen Argumenten
- Direkte Berechenbarkeit: Effiziente Algorithmen ohne Umweg über Γ(x)
- Additive Eigenschaften: ln Γ(x+1) = ln x + ln Γ(x)
- Glatte Funktion: Keine extremen Steigungen wie bei der regulären Gamma-Funktion
🔬 Anwendungsgebiete der Log-Gamma-Funktion:
- Statistik: Maximum-Likelihood-Schätzung, Bayesianische Inferenz
- Numerik: MCMC-Algorithmen, wissenschaftliches Rechnen
- Wahrscheinlichkeitstheorie: Gamma-, Beta-, Dirichlet-Verteilungen
- Angewandte Mathematik: Kombinatorik, asymptotische Analysis
acos - Arkuskosinus
acot - Arkuskotangens
acsc - Arkuskosekans
asec - Arkussekans
asin - Arkussinus
atan - Arkustangens
atan2 - Arkustangens von y/x
cos - Kosinus
cot - Kotangens
csc - Kosekans
sec - Sekans
sin - Sinus
sinc - Kardinalsinus
tan - Tangens
hypot - Hypotenuse
deg2rad - Grad in Radiant
rad2deg - Radiant in Grad
Hyperbolik
acosh - Arkuskosinus hyperbolikus
asinh - Areasinus hyperbolikus
atanh - Arkustangens hyperbolikus
cosh - Kosinus hyperbolikus
sinh - Sinus hyperbolikus
tanh - Tangens hyperbolikus
Logarithmus
log - Logarithmus zur angegebene Basis
ln - Natürlicher Logarithmus zur Basis e
log10 - Logarithmus zur Basis 10
log2 - Logarithmus zur Basis 2
exp - Exponenten zur Basis e
Aktivierung
Softmax
Sigmoid
Derivate Sigmoid
Logit
Derivate Logit
Softsign
Derivate Softsign
Softplus
Logistic
Gamma
Eulersche Gamma Funktion
Lanczos Gamma-Funktion
Stirling Gamma-Funktion
Log Gamma-Funktion
Beta
Beta Funktion
Logarithmische Beta Funktion
Unvollstaendige Beta Funktion
Inverse unvollstaendige Beta Funktion
Fehlerfunktionen
erf - Fehlerfunktion
erfc - komplementäre Fehlerfunktion
Kombinatorik
Fakultät
Semifakultät
Steigende Fakultät
Fallende Fakultät
Subfakultät
Permutationen und Kombinationen
Permutation
Kombinationen
Mittlerer Binomialkoeffizient
Catalan-Zahl
Lah Zahl