lambertw
람베르트 W 함수
설명
예제
람베르트 W 함수 W(x)는 방정식 x = W(x)eW(x)의 해 집합입니다.
아래의 방정식을 풉니다. 해는 람베르트 W 함수입니다.
syms x W eqn = x == W*exp(W); solve(eqn,W)
ans = lambertw(0, x)
람베르트 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 1lambertw는 해당 인수에 따라 부동소수점 결과를 반환할 수도 있고 정확한 기호 결과를 반환할 수도 있습니다.
다음 숫자에 대해 람베르트 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기호 객체로 변환된 숫자에 대해 람베르트 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
람베르트 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')

복소 평면 위에 람베르트 W 함수의 주 분지를 플로팅합니다.
fmesh를 사용하여 람베르트 W 함수의 실수 값을 플로팅합니다. 'ShowContours'를 'On'으로 설정하여 등고선을 함께 플로팅합니다.
syms x y f = lambertw(x + 1i*y); interval = [-100 100 -100 100]; fmesh(real(f),interval,'ShowContours','On')

람베르트 W 함수의 허수 값을 플로팅합니다. 플롯에는 음의 실수축을 따라 분지 절단이 있습니다. 등고선을 따로 플로팅합니다.
fmesh(imag(f),interval)

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

람베르트 W 함수의 절댓값을 플로팅합니다.
fmesh(abs(f),interval,'ShowContours','On')

입력 인수
입력값으로, 숫자, 벡터, 행렬, 배열로 지정되거나 기호 숫자, 기호 변수, 기호 배열, 기호 함수, 기호 표현식으로 지정됩니다.
적어도 하나의 입력 인수는 스칼라여야 합니다. 그렇지 않으면 두 인수가 동일한 크기의 벡터 또는 행렬이어야 합니다. 하나의 입력 인수가 스칼라이고 다른 인수는 벡터 또는 행렬인 경우 lambertw는 스칼라를 다른 인수와 동일한 크기의 벡터 또는 행렬로 확장하는데 이때 모든 요소는 해당 스칼라의 값을 갖습니다.
람베르트 W 함수의 분지로, 정수, 정수로 구성된 벡터나 행렬, 기호 정수 또는 정수로 구성된 기호 벡터나 행렬로 지정됩니다.
적어도 하나의 입력 인수는 스칼라여야 합니다. 그렇지 않으면 두 인수가 동일한 크기의 벡터 또는 행렬이어야 합니다. 하나의 입력 인수가 스칼라이고 다른 인수는 벡터 또는 행렬인 경우 lambertw는 스칼라를 다른 인수와 동일한 크기의 벡터 또는 행렬로 확장하는데 이때 모든 요소는 해당 스칼라의 값을 갖습니다.
세부 정보
람베르트 W 함수 W(x)는 임의의 복소수 x에 대한 방정식 의 해 y를 나타냅니다.
복소수 x에 대해, 방정식은 무한한 개수의 해 y = lambertW(k,x)를 갖습니다. 여기서 k의 범위는 모든 정수입니다.
x ≥ 0인 모든 실수에 대해, 방정식은 정확히 하나의 실수 해 y = lambertW(x) = lambertW(0,x)를 갖습니다.
인 실수 x에 대해, 방정식은 정확히 두 개의 실수 해를 갖습니다. 큰 해는 y = lambertW(x)로 나타나고 작은 해는 y = lambertW(–1,x)로 나타납니다.
에 대해, 방정식은 정확히 하나의 실수 해 y = –1 = lambertW(0, –exp(–1)) = lambertW(–1, -exp(–1))을 갖습니다.
참고 문헌
[1] Corless, R.M., G.H. Gonnet, D.E.G. Hare, D.J. Jeffrey, and D.E. Knuth. "On the Lambert W Function." Advances in Computational Mathematics, Vol. 5, pp. 329–359, 1996.
버전 내역
R2006a 이전에 개발됨
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)