Русская Википедия:W-функция Ламберта

Материал из Онлайн справочника
Перейти к навигацииПерейти к поиску

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

<math>z=W(z) e^{W(z)}</math>

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

История

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

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

Файл:Mplwp lambert W branches.svg
Основная <math>W_0</math> (синяя) и дополнительная <math>W_{-1}</math> (фиолетовая) ветви функции <math>W(x)</math>
Файл:Lambertw.png
График W0(x) для −1/ex ≤ 4

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

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

Асимптотики

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

<math>\left.W(z)\right|_{z \to \infty} = \log(z)-\log( \log(z) )</math>

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

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

<math>\int_{0}^{\pi} W\bigl( 2\cot^2(x) \bigr)\sec^2(x)\;\mathrm dx = 4\sqrt{\pi}</math>
<math>\int_{0}^{+\infty} W\left(\frac{1}{x^2}\right)\;\mathrm dx = \sqrt{2\pi}</math>
<math>\int_{0}^{+\infty} \frac{W(x)}{x\sqrt{x}}\mathrm dx = 2\sqrt{2\pi}</math>

Свойства

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

<math>{dW\over dz} = \frac{1}{z} \frac{W(z)}{W(z)+1}.</math>

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

<math>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.</math>

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

<math>\int W(x)\, dx = x \left( W(x) - 1 + \frac{1}{W(x)} \right) + C.</math>

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

<math>W\left(-\frac{\pi}{2}\right) = \frac{i\pi}{2}</math>
<math>W(-1) \approx -0.31813+1.33723i</math>
<math>W\left(-{1\over e}\right) = -1</math>
<math>W\left(-\frac{\ln a}{a}\right)= -\ln a</math>, при <math>\frac{1}{e}\le a\le e</math>
<math>W(0) = 0</math>
<math>W(e) = 1</math>
<math>W(1) = \Omega \approx 0{,}56714329</math> (постоянная Омега)

Формулы

<math>W(xe^x)=x, \,x>0</math>

<math>W_0(xe^x)=x, \,x\geqslant-1</math>

<math>W_{-1}(xe^x)=x, \,x\leqslant-1</math>

<math>e^{n\cdot W(x)}=\left(\frac{x}{W(x)}\right)^n</math>

<math>\ln W(x)=\ln x-W(x), \, x>0</math>

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

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

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

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

Пример 1: <math>x\cdot a^x = b</math>

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

Пример 2: <math>x^x = a</math>

<math>\ln x \cdot e^{\ln x} = \ln a</math>, следовательно, <math>\ln x = W(\ln a)</math>, откуда <math>x = e^{W(\ln a)}</math>.

Пример 3: <math>a^x = b x</math>

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

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

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

<math> e^{-c x} = a_o (x-r) ~~\quad\qquad\qquad\qquad\qquad(1)</math>

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

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

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

Вычисление

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

<math>

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}} </math>

Пример программы на языке 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

Для приближённого вычисления можно использовать формулу[9]: !!!Приведенная функция похожа, но более чем на 10 % отличается от функции Ламберта

<math>

W(x) \approx \left\{ \begin{matrix} 0{,}665\cdot (1+0{,}0195\ln(x+1))\ln(x+1) + 0{,}04 & \ :\ & 0<x\le500 \\ \ln(x-4) - (1-{1\over\ln x}) \ln\ln x & \ :\ & x>500 \\ \end{matrix} \right. </math>

Ссылки

Шаблон:Примечания