17-04-2023
-функция Ламберта определяется как обратная функция к , для комплексных . Обозначается или . Для любого комплексного она определяется функциональным уравнением:
-функция Ламберта не может быть выражена в элементарных функциях. Она применяется в комбинаторике, например, при подсчёте числа деревьев, а также при решении уравнений.
Содержание |
Функция изучалась ещё в работе Леонарда Эйлера в 1779, но не имела самостоятельного значения и названия вплоть до 1980-х. Как самостоятельная функция была введена в системе компьютерной алгебры Maple, где для неё использовалось имя LambertW. Имя Иоганна Генриха Ламберта было выбрано, поскольку Эйлер ссылался в своей работе на труды Ламберта, и поскольку «называть ещё одну функцию именем Эйлера было бы бесполезно»[1].
Поскольку функция не является инъективной на интервале , является многозначной функцией на . Если ограничиться вещественными и потребовать , будет определена однозначная функция .
Полезно знать асимптотики функции при стремлении к некоторым ключевым точкам. Например, для ускорения сходимости при выполнении рекуррентных расчетов.
С помощью дифференцирования неявной функции можно получить, что при функция Ламберта удовлетворяет следующему дифференциальному уравнению
С помощью теоремы об обращении рядов можно получить выражение для ряда Тейлора; он в окрестности нуля сходится при :
С помощью интегрирования по частям можно найти интеграл от W(z):
Решения многих трансцендентных уравнений могут быть выражены в форме W-функции.
Пример:
Пример:
Обозначим , тогда , отсюда и окончательно .
Стандартная W-функция Ламберта показывает точные решения трансцендентных алгебраических уравнений формы:
где a0, c и r являются вещественными константами. Решением такого уравнения является . Ниже перечислены некоторые из обобщенных применений W-функции[2] Ламберта:
Применения W-Функции Ламберта в основных проблемах физики не ограничиваются стандартным уравнением (1), как было недавно показано в областях атомной, молекулярной и оптической физики[5].
-функция может быть приблизительно вычислена с помощью рекуррентного соотношения[1]:
Пример программы на языке Python:
import math def lambertW(x, prec=1e-12): w = 0 for i in xrange(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
Для приближённого вычисления можно использовать формулу[6]: !!!Приведенная функция похожа, но более чем на 10% отличается от функции Ламберта
W-функция Ламберта.