lambertw

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

Синтаксис

lambertw(x)
lambertw(k,x)

Описание

пример

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')

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

Постройте действительное значение функции Ламберта В при помощи fmesh. Одновременно постройте контуры по установке 'ShowContours' к 'On'.

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

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

fmesh(imag(f),interval)

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

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

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

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

свернуть все

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

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

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

Функции

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