Das Kefk Network Wiki befindet sich im Testbetrieb.


Lambert-W-Funktion

Aus Kefk.

Wechseln zu: Navigation, Suche
Der Graph von W(x) für -1/e ≤ x ≤ 4
Der Graph von W(x) für -1/e ≤ x ≤ 4

In der Mathematik ist Lamberts W-Funktion, benannt nach Johann Heinrich Lambert, die Umkehrfunktion von

f(x):= x\cdot\mathrm e^x

in der ex die Exponentialfunktion und x eine beliebige komplexe Zahl ist. Lamberts W-Funktion, auch Omega Funktion genannt, wird meistens als W(x) geschrieben. Es gilt

z = \mathrm W(z)\mathrm e^{\mathrm W(z)}, z\in\mathbb C

Da die Funktion f auf dem Intervall \left(-\infty,0\right] nicht injektiv ist, besitzt die Lambert W-Funktion auf dem Intervall \left[-\frac{1}{\mathrm e},0\right) zwei Funktionsäste. Mit W(x) wird aber in der Regel der obere der Äste bezeichnet. Die W-Funktion kann nicht als elementare Funktion ausgedrückt werden. Zumeist wird sie in der Kombinatorik verwendet.

Die Ableitungsfunktion der W-Funktion kann mit Hilfe des Satzes über die Ableitung der Umkehrfunktion gefunden werden.


\mathrm W'(x)=\frac{\mathrm W(x)}{x(1+\mathrm W(x))}

Eine Stammfunktion ergibt sich durch Substitution des gesamten Integranden.


\int \mathrm W(x)\, \mathrm dx =
x \left( \mathrm W(x) - 1 + \frac{1}{\mathrm W(x)} \right) 
+ C

Durch implizite Differentiation kann man zeigen, dass W folgender Differentialgleichung genügt:

z(1+\mathrm W)\frac{\mathrm d\mathrm W}{\mathrm dz}=\mathrm W\quad\mathrm{mit\ }z\neq -\frac{1}{\mathrm e}

Die Taylor-Reihe von W in x0=0 ist gegeben durch


\mathrm W (x) = \sum_{n=1}^\infty \frac{(-n)^{n-1}}{n!}\ x^n = x - x^2 + \frac{3}{2}x^3 - \frac{8}{3}x^4 + \frac{125}{24}x^5 - \cdots

Der Konvergenzradius beträgt 
\frac{1}{\mathrm e}.

Inhaltsverzeichnis

Spezielle Werte

\mathrm W\left(-\frac{\pi}{2}\right) = \frac{i\pi}{2}
\mathrm W\left(-{1\over \mathrm e}\right) = -1
\mathrm W\left(-\frac{\ln 2}{2}\right)= -\ln 2
\mathrm W(0) = 0\,
\mathrm W(\mathrm e) = 1\,
\mathrm W(1) = \Omega\, (die Omega Konstante)

Verwendung außerhalb der Kombinatorik

Die Lambert W-Funktion kann gebraucht werden, um Gleichungen vom Typus

a(x)ea(x) = y

zu lösen (a(x) ist ein beliebiger, von x abhängiger Ausdruck).

Auch die Gleichung

xx = z

kann mit Hilfe der Lambert W-Funktion gelöst werden. Die Lösung lautet

x=\frac{\ln z}{\mathrm W(\ln z)}=\exp\left(\mathrm W(\ln z)\right)

Der infinite Exponentialturm

\operatorname{exptower}(x):=x^{x^{x^{\cdots}}}

kann an den konvergenten Stellen mit der W-Funktion in geschlossene Form gebracht werden, was auch die Ableitung ermöglicht.

\operatorname{exptower}(x)=\frac{\mathrm W(-\ln x)}{-\ln x}

Numerische Berechnung

Die W-Funktion kann rekursiv mithilfe der Beziehung


w_{j+1}=w_j-\frac{w_j e^{w_j}-z}{e^{w_j}(w_j+1)-\frac{(w_j+2)(w_je^{w_j}-z)}
{2w_j+2}}

berechnet werden[1].

Die folgende Implementation in Python berechnet eine Lösung x > 1 / e und enthält eine Fehlerschätzung nach Chapeau-Belandeau und Monir[2]:

import math

class Error(Exception):
	pass

def lambertW(x, prec=1e-12):
	w = 0
	for i in xrange(100):
		wTimesExpW = w*math.exp(w)
		wPlusOneTimesExpW = (w+1)*math.exp(w)
		if prec>abs((x-wTimesExpW)/wPlusOneTimesExpW):
			break
		w = w-(wTimesExpW-x)/(
			wPlusOneTimesExpW-(w+2)*(wTimesExpW-x)/(2*w+2))
	else:
		raise Error, "W doesn't converge fast enough for %f"%x
	return w

Die folgende Näherung in geschlossener Form[3] kann verwendet werden, wenn keine hohe Genauigkeit benötigt wird, oder kann als Ausgangswert für obigen Code verwendet werden, um dessen Konvergenzgeschwindigkeit zu erhöhen.

 double
 desy_lambert_W(double x) {
       double  lx1;
       if (x <= 500.0) {
               lx1 = log(x + 1.0);
               return 0.665 * (1 + 0.0195 * lx1) * lx1 + 0.04;
       }
       return log(x - 4.0) - (1.0 - 1.0/log(x)) * log(log(x));
 }


Quellen

  1. Corless et al. "On the Lambert W function" Adv. Computational Maths. 5, 329 - 359 (1996)
  2. Chapeau-Blondeau, F. and Monir, A: "Evaluation of the Lambert W Function and Application to Generation of Generalized Gaussian Noise With Exponent 1/2", IEEE Trans. Signal Processing, 50(9), 2002
  3. http://www.desy.de/~t00fri/qcdins/texhtml/lambertw/
Wikipedia
Dieses Dokument entstammt in seiner ersten oder einer späteren Version der deutschsprachigen Wikipedia. Es ist dort zu finden unter dem Stichwort Lambert-W-Funktion, die Liste der bisherigen Autoren befindet sich in der Versionsliste; die Originalfassung kann dort auch bearbeitet werden. Alle Texte der Wikipedia und ihre Derivate stehen unter der GNU-Lizenz für freie Dokumentation.
Persönliche Werkzeuge