lambertw

Синтаксис

Описание

пример

lambertw(x) возвращает главную ветвь функции Lambert W. Этот синтаксис эквивалентен lambertw(0,x).

пример

lambertw(k,x) является kпервая ветвь функции Lambert W. Этот синтаксис возвращает вещественные значения только в том случае, если k = 0 или k = -1.

Примеры

свернуть все

Функция Ламберта W W(x) - набор решений уравнения x = W (x) eW(x).

Решить это уравнение. Решением является функция Lambert W.

syms x W
eqn = x == W*exp(W);
solve(eqn,W)
ans =
lambertw(0, x)

Проверьте, что ветви функции Lambert W являются допустимыми решениями уравнения x = W * eW:

k = -2:2;
eqn = subs(eqn,W,lambertw(k,x));
isAlways(eqn)
ans =
  1×5 logical array
     1     1     1     1     1

В зависимости от его аргументов, lambertw может вернуть с плавающей точкой или точные символьные результаты.

Вычислите функции Lambert W для этих чисел. Поскольку числа не являются символическими объектами, вы получаете результаты с плавающей точкой.

A = [0 -1/exp(1); pi i];
lambertw(A)
ans =
   0.0000 + 0.0000i  -1.0000 + 0.0000i
   1.0737 + 0.0000i   0.3747 + 0.5764i
lambertw(-1,A)
ans =
     -Inf + 0.0000i  -1.0000 + 0.0000i
  -0.3910 - 4.6281i  -1.0896 - 2.7664i

Вычислите функции Lambert W для чисел, преобразованных в символические объекты. Для большинства символических (точных) чисел lambertw возвращает неразрешенные символические вызовы.

A = [0 -1/exp(sym(1)); pi i];
W0 = lambertw(A)
W0 =
[               0,             -1]
[ lambertw(0, pi), lambertw(0, 1i)]
Wmin1 = lambertw(-1,A)
Wmin1 =
[             -Inf,              -1]
[ lambertw(-1, pi), lambertw(-1, 1i)]

Преобразуйте символьные результаты в double при помощи double.

double(W0)
ans =
   0.0000 + 0.0000i  -1.0000 + 0.0000i
   1.0737 + 0.0000i   0.3747 + 0.5764i

Постройте график двух основных ветвей, W0(x) и W-1(x), функции Lambert W.

syms x
fplot(lambertw(x))
hold on
fplot(lambertw(-1,x))
hold off
axis([-0.5 4 -4 2])
title('Lambert W function, two main branches')
legend('k=0','k=1','Location','best')

Figure contains an axes. The axes with title Lambert W function, two main branches contains 2 objects of type functionline. These objects represent k=0, k=1.

Постройте график основной ветви функции Lambert W на комплексной плоскости.

Постройте график реального значения функции Lambert W при помощи fmesh. Одновременно постройте график контуров путем установки 'ShowContours' на 'On'.

syms x y
f = lambertw(x + 1i*y);
interval = [-100 100 -100 100];
fmesh(real(f),interval,'ShowContours','On')

Figure contains an axes. The axes contains an object of type functionsurface.

Постройте график мнимого значения функции Lambert W. График имеет срез ветви вдоль отрицательной действительной оси. Постройте графики контуров по отдельности.

fmesh(imag(f),interval)

Figure contains an axes. The axes contains an object of type functionsurface.

fcontour(imag(f),interval,'Fill','on')

Figure contains an axes. The axes contains an object of type functioncontour.

Постройте график абсолютного значения функции Lambert W.

fmesh(abs(f),interval,'ShowContours','On')

Figure contains an axes. The axes contains an object of type functionsurface.

Входные параметры

свернуть все

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

По крайней мере, один входной параметр должен быть скаляром, или оба аргумента должны быть векторами или матрицами одного размера. Если один входной параметр является скаляром, а другой - вектором или матрицей, lambertw расширяет скаляр в вектор или матрицу того же размера, что и другой аргумент со всеми элементами, равными этому скаляру.

Ветвь функции Lambert W, заданная как целое число, вектор или матрица целых чисел, символьное целое число или символьный вектор или матрица целых чисел.

По крайней мере, один входной параметр должен быть скаляром, или оба аргумента должны быть векторами или матрицами одного размера. Если один входной параметр является скаляром, а другой - вектором или матрицей, lambertw расширяет скаляр в вектор или матрицу того же размера, что и другой аргумент со всеми элементами, равными этому скаляру.

Подробнее о

свернуть все

Функция Lambert W

Функция Lambert W W (x) представляет решения y уравненияyey=x для любого комплексного числового x.

  • Для комплексных x уравнение имеет бесконечное число решений y = lambertW (k, x), где k областей значений по всем целым числам.

  • Для всех действительных x ≥ 0, уравнение имеет в точности одно действительное решение y = lambertW (x) = lambertW (0, x).

  • Для реальных x где e1<x<0, уравнение имеет в точности два действительных решения. Большое решение представлено y = lambertW (x) и меньшее решение y = lambertW (-1, x).

  • Для x=e1, уравнение имеет в точности одно действительное решение y = -1 = lambertW (0, -exp (-1)) = lambertW (-1, -exp (-1)).

Ссылки

[1] Corless, R.M., G.H. Gonnet, D.E.G. Заяц, Д. Дж. Джеффри и Д. Э. Кнут. «О функции Lambert W». Усовершенствования в вычислительной математике, том 5, стр. 329-359, 1996 год.

См. также

Функции

Представлено до R2006a
Для просмотра документации необходимо авторизоваться на сайте