lambertw

Функция Ламберта В

Синтаксис

Описание

пример

lambertw(x) возвращает основную ветвь функции Ламберта В. Этот синтаксис эквивалентен lambertw(0,x).

пример

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

Примеры

свернуть все

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

Решите это уравнение. Решение является функцией Ламберта В.

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

Проверьте, что ветви функции Ламберта В являются допустимыми решениями уравнения 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 может возвратить или точные символьные результаты с плавающей точкой.

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

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

Вычислите функции Ламберта В для чисел, преобразованных в символьные объекты. Для большинства символьных (точных) чисел, 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(W0)
ans =
   0.0000 + 0.0000i  -1.0000 + 0.0000i
   1.0737 + 0.0000i   0.3747 + 0.5764i

Постройте две основных ветви, W0(x) и W-1(x), из функции Ламберта В.

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 object. The axes object with title Lambert W function, two main branches contains 2 objects of type functionline. These objects represent k=0, k=1.

Постройте основную ветвь функции Ламберта В на комплексной плоскости.

Постройте вещественное значение функции Ламберта В при помощи 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 object. The axes object contains an object of type functionsurface.

Постройте мнимое значение функции Ламберта В. График имеет разрез вдоль отрицательной вещественной оси. Постройте контуры отдельно.

fmesh(imag(f),interval)

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

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

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

Постройте абсолютное значение функции Ламберта В.

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

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

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

свернуть все

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

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

Ветвь Ламберта В функционирует в виде целого числа, вектора или матрицы целых чисел, символьного целого числа или символьного вектора или матрицы целых чисел.

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

Больше о

свернуть все

Ламберт В Фанкшн

Функция Ламберта В 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., Г.Х. Гоннет, D.E.G. Заяц, Д.Дж. Джеффри и Д. Нут. "На Функции Ламберта В". Усовершенствования в Вычислительной Математике, Издании 5, стр 329–359, 1996.

Смотрите также

Функции

Представлено до R2006a