W-функция Ламберта

W {\displaystyle W} -функция Ламберта определяется как обратная функция к f ( w ) = w e w {\displaystyle f(w)=we^{w}} , для комплексных w {\displaystyle w} . Обозначается W ( x ) {\displaystyle W(x)} или LambertW ( x ) {\displaystyle \operatorname {LambertW} (x)} . Для любого комплексного z {\displaystyle z} она определяется функциональным уравнением:

z = W ( z e z ) {\displaystyle z=W(ze^{z})}

W {\displaystyle W} -функция Ламберта не может быть выражена в элементарных функциях. Она применяется в комбинаторике, например, при подсчёте числа деревьев, а также при решении уравнений.

История

Функция изучалась ещё в работе Леонарда Эйлера 1779-го года, но не имела самостоятельного значения и названия вплоть до 1980-х годов. Как самостоятельная функция была введена в системе компьютерной алгебры Maple, где для неё использовалось имя LambertW. Имя Иоганна Генриха Ламберта было выбрано, поскольку Эйлер ссылался в своей работе на труды Ламберта, и поскольку «называть ещё одну функцию именем Эйлера было бы бесполезно»[1].

Многозначность

Основная W 0 {\displaystyle W_{0}} (синяя) и дополнительная W 1 {\displaystyle W_{-1}} (фиолетовая) ветви функции W ( x ) {\displaystyle W(x)}
График W0(x) для −1/ex ≤ 4

Поскольку функция f ( w ) {\displaystyle f(w)} не является инъективной на интервале ( , 0 ) {\displaystyle (-\infty ,0)} , W ( z ) {\displaystyle W(z)} является многозначной функцией на ( 1 e , 0 ) {\displaystyle (-{\frac {1}{e}},0)} .

  • Если ограничиться вещественными z = x 1 / e {\displaystyle z=x\geqslant -1/e} и потребовать w 1 {\displaystyle w\geqslant -1} , будет определена однозначная функция W 0 ( x ) {\displaystyle W_{0}(x)} — основная ветвь функции W ( x ) {\displaystyle W(x)} .
  • Если ограничиться вещественными z = x 1 / e {\displaystyle z=x\geqslant -1/e} , z = x < 0 {\displaystyle z=x<0} и потребовать w 1 {\displaystyle w\leqslant -1} , будет определена однозначная функция W 1 ( x ) {\displaystyle W_{-1}(x)} — дополнительная ветвь функции W ( x ) {\displaystyle W(x)} .

Асимптотики

Полезно знать асимптотики функции при стремлении к некоторым ключевым точкам. Например, для ускорения сходимости при выполнении рекуррентных расчётов.

W ( z ) | z = log ( z ) log ( log ( z ) ) {\displaystyle \left.W(z)\right|_{z\to \infty }=\log(z)-\log(\log(z))}

W ( z ) | z 1 e = 2 ( e z + 1 ) 1 {\displaystyle \left.W(z)\right|_{z\to -{\frac {1}{e}}}={\sqrt {2(ez+1)}}-1}

Другие формулы

0 π W ( 2 cot 2 ( x ) ) sec 2 ( x ) d x = 4 π {\displaystyle \int _{0}^{\pi }W{\bigl (}2\cot ^{2}(x){\bigr )}\sec ^{2}(x)\;\mathrm {d} x=4{\sqrt {\pi }}}
0 + W ( 1 x 2 ) d x = 2 π {\displaystyle \int _{0}^{+\infty }W\left({\frac {1}{x^{2}}}\right)\;\mathrm {d} x={\sqrt {2\pi }}}
0 + W ( x ) x x d x = 2 2 π {\displaystyle \int _{0}^{+\infty }{\frac {W(x)}{x{\sqrt {x}}}}\mathrm {d} x=2{\sqrt {2\pi }}}

Свойства

С помощью дифференцирования неявной функции можно получить, что при z 1 e {\displaystyle z\neq -{\tfrac {1}{e}}} функция Ламберта удовлетворяет следующему дифференциальному уравнению:

d W d z = 1 z W ( z ) W ( z ) + 1 . {\displaystyle {dW \over dz}={\frac {1}{z}}{\frac {W(z)}{W(z)+1}}.}

С помощью теоремы об обращении рядов можно получить выражение для ряда Тейлора; он в окрестности нуля сходится при | z | < 1 e {\displaystyle |z|<{\tfrac {1}{e}}} :

W 0 ( x ) = n = 1 ( n ) n 1 n !   x n = x x 2 + 3 2 x 3 8 3 x 4 + 125 24 x 5 . {\displaystyle W_{0}(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 .}

С помощью интегрирования по частям можно найти интеграл от W(z):

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

Значения в некоторых точках

W ( π 2 ) = i π 2 {\displaystyle W\left(-{\frac {\pi }{2}}\right)={\frac {i\pi }{2}}}
W ( 1 ) 0.31813 + 1.33723 i {\displaystyle W(-1)\approx -0.31813+1.33723i}
W ( 1 e ) = 1 {\displaystyle W\left(-{1 \over e}\right)=-1}
W ( ln a a ) = ln a {\displaystyle W\left(-{\frac {\ln a}{a}}\right)=-\ln a} , при 1 e a e {\displaystyle {\frac {1}{e}}\leq a\leq e}
W ( 0 ) = 0 {\displaystyle W(0)=0}
W ( e ) = 1 {\displaystyle W(e)=1}
W ( 1 ) = Ω 0,567 14329 {\displaystyle W(1)=\Omega \approx 0{,}56714329} (постоянная Омега)

Формулы

W ( x e x ) = x , x > 0 {\displaystyle W(xe^{x})=x,\,x>0}

W 0 ( x e x ) = x , x 1 {\displaystyle W_{0}(xe^{x})=x,\,x\geqslant -1}

W 1 ( x e x ) = x , x 1 {\displaystyle W_{-1}(xe^{x})=x,\,x\leqslant -1}

e n W ( x ) = ( x W ( x ) ) n {\displaystyle e^{n\cdot W(x)}=\left({\frac {x}{W(x)}}\right)^{n}}

ln W ( x ) = ln x W ( x ) , x > 0 {\displaystyle \ln W(x)=\ln x-W(x),\,x>0}

W ( n x n W ( x ) n 1 ) = n W ( x ) , n > 0 , x > 0 {\displaystyle W\left({\frac {nx^{n}}{W(x)^{n-1}}}\right)=nW(x),\,n>0,x>0}

W ( x ) + W ( y ) = W ( x y ( W ( x ) + W ( y ) W ( x ) W ( y ) ) ) , x > 0 , y > 0 {\displaystyle W(x)+W(y)=W\left(xy\left({\frac {W(x)+W(y)}{W(x)W(y)}}\right)\right),\,x>0,y>0}

Решение уравнений с помощью W-функции

Решения многих трансцендентных уравнений могут быть выражены в форме W-функции.

Пример 1: x a x = b {\displaystyle x\cdot a^{x}=b}

x ln a e x ln a = b ln a {\displaystyle x\ln a\cdot e^{x\ln a}=b\ln a} , следовательно, x ln a = W ( b ln a ) {\displaystyle x\ln a=W(b\ln a)} , откуда x = W ( b ln a ) ln a {\displaystyle x={W(b\ln a) \over \ln a}} .

Пример 2: x x = a {\displaystyle x^{x}=a}

x ln x = ln a {\displaystyle x\cdot \ln x=\ln a} , следовательно, ln a x = W ( ln a ) {\displaystyle {\ln a \over x}=W(\ln a)} , откуда x = ln a W ( ln a ) {\displaystyle x={\ln a \over W(\ln a)}} .

Пример 3: a x = b x {\displaystyle a^{x}=bx}

1 b = x a x {\displaystyle {1 \over b}=xa^{-x}} , тогда ln a b = x ln a e x ln a {\displaystyle -{\ln a \over b}=-x\ln a\cdot e^{-x\ln a}} , следовательно, W ( ln a b ) = x ln a {\displaystyle W\left(-{\ln a \over b}\right)=-x\ln a} , откуда x = 1 ln a W ( ln a b ) {\displaystyle x=-{1 \over \ln a}W\left(-{\ln a \over b}\right)} .

Обобщённые применения W-функции Ламберта

Стандартная W-функция Ламберта показывает точные решения трансцендентных алгебраических уравнений формы:

e c x = a o ( x r )     ( 1 ) {\displaystyle e^{-cx}=a_{o}(x-r)~~\quad \qquad \qquad \qquad \qquad (1)}

где a0, c и r являются вещественными константами. Решением такого уравнения является x = r + 1 c W ( c e c r a o ) {\displaystyle x=r+{\frac {1}{c}}W{\Big (}{\frac {c\,e^{-cr}}{a_{o}}}{\Big )}} . Ниже перечислены некоторые из обобщённых применений W-функции Ламберта:[2][3][4]

e c x = a o ( x r 1 ) ( x r 2 )     ( 2 ) {\displaystyle e^{-cx}=a_{o}(x-r_{1})(x-r_{2})~~\qquad \qquad (2)}
и где константы r1 и r2, являются корнями этого квадратичного многочлена. В данном случае решением этого уравнения является функция с аргументом x , а ri и ao являются параметрами этой функции. С этой точки зрения, несмотря на то, что данное обобщённое применение W-функции Ламберта напоминает гипергеометрическую функцию и функцию «Meijer G», оно принадлежит к другому типу функций. Когда r1 = r2, то обе стороны уравнения (2) могут быть упрощены к уравнению (1), и таким образом общее решение упрощается к стандартной W-функцией. Уравнение (2) показывает определяющие отношения в скалярном поле дилатонноя, из чего следует решение задачи измерения линейной гравитации парных тел в 1+1 измерениях (измерение пространства и измерение времени) в случае неравных масс, а также решение задачи двумерного стационарного уравнения Шрёдингера с потенциалом в виде дельта-функции Дирака для неодинаковых зарядов в одном измерении.
  • Эта функция может быть использована для решения частной задачи внутренних энергий квантовой механики, состоящей в определении относительного движения трёх тел, а именно трёхмерной молекулярный ион водорода[6][7]. В этом случае правая сторона уравнения (1) (или (2)) теперь становится отношением двух беспредельных многочленов по переменной x:
e c x = a o i = 1 ( x r i ) i = 1 ( x s i ) ( 3 ) {\displaystyle e^{-cx}=a_{o}{\frac {\displaystyle \prod _{i=1}^{\infty }(x-r_{i})}{\displaystyle \prod _{i=1}^{\infty }(x-s_{i})}}\qquad \qquad \qquad (3)}
где ri и si константы, а x является функцией между внутренней энергией и расстоянием внутри ядра R. Уравнение (3), а также его упрощённые формы, выраженные в уравнениях (1) и (2), относятся к типу дифференциальных уравнений с запозданием.

Применения W-функции Ламберта в основных проблемах физики не ограничиваются стандартным уравнением (1), как было недавно показано в областях атомной, молекулярной и оптической физики[8] и критерий «Кейпер-Ли» для Гипотеза Римана[9].

Вычисление

W {\displaystyle W} -функция может быть приблизительно вычислена с помощью рекуррентного соотношения[1]:

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

Пример программы на языке Python:

import math

def lambertW(x, prec=1e-12):
    w = 0
    for i in range(100):
        wTimesExpW = w * math.exp(w)
        wPlusOneTimesExpW = (w + 1) * math.exp(w)
        w -= (wTimesExpW - x) / (wPlusOneTimesExpW - (w + 2) * (wTimesExpW - x) / (2 * w + 2))
        if prec > abs((x - wTimesExpW) / wPlusOneTimesExpW):
            break
    if prec <= abs((x - wTimesExpW) / wPlusOneTimesExpW):
        raise Exception("W(x) не сходится достаточно быстро при x=%f" % x)
    return w

Для приближённого вычисления можно использовать следующую формулу[10]. W ( x ) { 0,665 ( 1 + 0,019 5 ln ( x + 1 ) ) ln ( x + 1 ) + 0 , 04   :   0 < x 500 ln ( x 4 ) ( 1 1 ln x ) ln ln x   :   x > 500 {\displaystyle W(x)\approx \left\{{\begin{matrix}0{,}665\cdot (1+0{,}0195\ln(x+1))\ln(x+1)+0{,}04&\ :\ &0<x\leq 500\\\ln(x-4)-(1-{1 \over \ln x})\ln \ln x&\ :\ &x>500\\\end{matrix}}\right.} Приведённая функция похожа, но более чем на 10 % отличается от функции Ламберта.

Примечания

  1. 1 2 Corless et al. On the Lambert W function (неопр.) // Adv. Computational Maths.. — 1996. — Т. 5. — С. 329—359. Архивировано 18 января 2005 года.
  2. T. C. Scott, R. B. Mann. General Relativity and Quantum Mechanics: Towards a Generalization of the Lambert W Function (англ.) // AAECC (Applicable Algebra in Engineering, Communication and Computing) : journal. — 2006. — Vol. 17, no. 1. — P. 41—47. — doi:10.1007/s00200-006-0196-1. Архивировано 11 июня 2019 года.
  3. T. C. Scott, G. Fee, J. Grotendorst. Asymptotic series of Generalized Lambert W Function (англ.) // SIGSAM (ACM Special Interest Group in Symbolic and Algebraic Manipulation) : journal. — 2013. — Vol. 47, no. 185. — P. 75—83. Архивировано 14 июля 2014 года.
  4. T. C. Scott, G. Fee, J. Grotendorst, W.Z. Zhang. Numerics of the Generalized Lambert W Function (неопр.) // SIGSAM. — 2014. — Т. 48, № 1/2. — С. 42—56. Архивировано 14 июля 2014 года.
  5. P. S. Farrugia, R. B. Mann, T. C. Scott. N-body Gravity and the Schrödinger Equation (англ.) // Classical and Quantum Gravity : journal. — 2007. — Vol. 24, no. 18. — P. 4647—4659. — doi:10.1088/0264-9381/24/18/006. Архивировано 6 апреля 2019 года.
  6. T. C. Scott, M. Aubert-Frécon, J. Grotendorst. New Approach for the Electronic Energies of the Hydrogen Molecular Ion (англ.) // Chem. Phys.[англ.] : journal. — 2006. — Vol. 324. — P. 323—338. — doi:10.1016/j.chemphys.2005.10.031. Архивировано 18 января 2016 года.
  7. Maignan, Aude; Scott, T. C. Fleshing out the Generalized Lambert W Function (неопр.) // SIGSAM. — 2016. — Т. 50, № 2. — С. 45—60. — doi:10.1145/2992274.2992275.
  8. T. C. Scott, A. Lüchow, D. Bressanini, J. D. Morgan III. The Nodal Surfaces of Helium Atom Eigenfunctions (англ.) // Phys. Rev. A : journal. — 2007. — Vol. 75. — P. 060101. — doi:10.1103/PhysRevA.75.060101.
  9. R.C. McPhedran; T. C. Scott; Aude Maignan. The Keiper-Li Criterion for the Riemann Hypothesis and Generalized Lambert Functions (неопр.) // ACM Commun. Comput. Algebra. — 2016. — Т. 57, № 3. — С. 85-110. — doi:10.1145/3637529.3637530.
  10. Double precision function LAMBERTW(X) Архивная копия от 2 сентября 2005 на Wayback Machine в пакете QCDINS Архивная копия от 4 апреля 2005 на Wayback Machine