ランベルトのW関数
ランベルトのW関数(ランベルトのだぶりゅーかんすう、Lambert's W function) とは、次の関数の逆関数である。
概要
「ランベルトのW関数」という名前は、ヨハン・ハインリッヒ・ランベルト にちなんで名づけられた。また、オメガ関数(―かんすう、Omega function)、対数積(たいすうせき、product log) という呼び名もある。
ランベルトのW関数は、通常 と表記される。ここで、任意の複素数 に対して、次式が成立する。
関数 f は (−∞, 0) において単射ではないため、関数 W は [-1⁄e, 0) で多価となる。もし、定義域を実数 x ≥ −1⁄e、値域を w ≥ − 1 に制限するとすれば (これを分岐 (branch cut, en) と呼ぶ)、グラフで示した一価の関数 W0(x) が定義される。特に、W0(0)=0, W0(−1⁄e)=−1 である。
ランベルトのW関数は、初等関数では表現できない。これは、木の数え上げなどの、組合せ論の分野において有用である。また、これは、指数関数を含む様々な方程式を解くのに使われたり、y′(t) = ay(t−1) のような遅延微分方程式(time-delayed differential equations) の解に現れたりする。
陰関数の微分公式によって、W を次のような微分方程式を満たすものとして表示できる。
W0 の 0 近傍におけるテイラー級数は、ラグランジュ逆定理を用いると求めることができ、次式で与えられる。
ダランベールの収束判定法によると、収束半径は 1⁄e である。この級数によって定義された関数は、定義域が複素数全体で、分岐を区間 (−∞, 1⁄e] に持つ正則関数に拡張することができる。この関数は、ランベルトのW関数の主値として定義される。
方程式の求解への応用
指数関数を含む方程式の多くは、W関数を用いることで解くことができる。主な方針は、未知数を含む項を方程式の左辺(あるいは右辺)に寄せ、W関数で解を表現できる x ex の形にすることである。例えば、方程式 を解くには、両辺を 2t で割り、1=5 te(−ln(2) t) と変形する。そして両辺を 5 で割り、−ln(2) を掛ける。すると、−ln(2)⁄5 = −ln(2) t e(−ln(2) t) となる。ここで、W関数を用いれば、−ln(2) t = W(−ln(2)⁄5)、即ち t = −W(-ln(2)⁄5)/ln(2) となる。
同様の方法で、xx = z の解は、
あるいは
x=exp(W(ln(z)))
となる。
複素数の無限回の累乗
が収束するとき、ランベルトのW関数を用いれば、その極限値を次のように表現できる。
関数 、あるいは を使って表現される関数の積分は、多くの場合 (即ち、) と置換することで解ける。
特殊値
一般化
この項目は翻訳が不適切であるため、 |
標準的なランベルトのW関数を用いることで、次の形の(xに関する)"超越代数"方程式の厳密解が表示される。
ここで、a0, c と r は実数の定数であり、解は となる。 Lambert W関数の一般化[1][2][3]は以下の状況がある。
- 低次元空間における一般相対性理論と量子力学 (量子重力理論) の応用は実にこれまで違ったようにこの2領域に繋がっている。例えば、”Journal of Classical and Quantum Gravity”[4]で示しているように、(1)のイコールの右にある部分は二次元多項式 ’’x’’で、
- となる。そのうち、 r1 と r2 は 別々の定数であって、二次元多項式の根でもある。関数の解には x という単一引数があったが、ri と ao は関数の媒介変数である。そうすれば、”hypergeometric”(超幾何級数)のような関数(超幾何分布)と”Meijer G”は異なった階層の関数に属している。r1 = r2 のようになると、(2)の両側の式を(1)に分解できる。したがって、その解を簡素化して標準的W関数にすることができる。(2)の式は”dilaton”(アクシオン) の方程式を表していて、そしてそれは一次元空間に不均質にチャージする為の量子力学におけるダブルウェールディラックによるデルタ関数モデルの固有エネルギーと同様に不均等な残りの総体の為に1+1 次元(一次元空間及び一次元時間)の中にある、R=Tか二体重力の問題の測定基準によって導き出された。
- 量子力学における三体問題の特別な場合、即ち(三次元)水素分子イオン[5]における固有エネルギーの解析解に関して。この場合式(1)(あるいは(2))の右辺は、x についての無限次元多項式の比によって次のようになる。
- ここで ri と si は異なる実数の定数であり、x は固有エネルギーと核間距離 R の関数である。式(3)とその特別な場合である式(1)(2)は、大きなクラスの遅延微分方程式と関係がある。
物理学の基礎的な問題におけるランベルトのW関数の応用はまだ出尽くしていない。これは近年原子・分子・光物理学で見られるような、式(1)で表される標準的な問題についても言える。[6]
数値計算
W関数は、漸化式
を用いることで数値計算することができる。この計算法は、コーレス(Corless) らによって与えられた。これを計算する Python のコードを以下に示す。誤差の評価には、シャポー゠ブロンドー(Chapeau-Blondeau) と モニール(Monir) によるものを用いている。
#!/usr/bin/env python2
import math
class Error(Exception):
pass
def lambertW(x, prec=1e-12):
w = 0
for i in xrange(100):
wTimesExpW = w * math.exp(w)
wPlusOneTimesExpW = (w+1) * math.exp(w)
if prec > abs((x-wTimesExpW) / wPlusOneTimesExpW):
break
w = w - (wTimesExpW-x)/(
wPlusOneTimesExpW - (w+2)*(wTimesExpW-x)/(2*w+2))
else:
raise Error("W doesn't converge fast enough for {}".format(x))
return w
これは、 における主値を計算するものである。初期値の選び方次第で、性能を上げることができる。
以下に示す閉じた形の近似は、さほど精度を要求ない場合や、上のコードに少ない反復回数で優れた初期値を与える際に用いる。
double
desy_lambert_W(double x) {
double lx1;
if (x <= 500.0) {
lx1 = log(x + 1.0);
return 0.665 * (1 + 0.0195 * lx1) * lx1 + 0.04;
}
return log(x - 4.0) - (1.0 - 1.0/log(x)) * log(log(x));
}
(http://www.desy.de/~t00fri/qcdins/texhtml/lambertw/ より)
Mathematica には ProductLog という名前で実装されており、値を対話的な操作で計算したり、解析的な演算 (不定積分、微分など) をしたり、プロットしたりできる[7]。またフリーのC言語のライブラリである GNU Scientific Library では gsl_sf_lambert_W0 という名前などで実装されている[8]。
関連項目
脚注
- ^ Scott, T.C.; Mann, R.B.; Martinez Ii, Roberto E. (2006). “General Relativity and Quantum Mechanics: Towards a Generalization of the Lambert W Function”. AAECC (Applicable Algebra in Engineering, Communication and Computing) 17 (1): 41–47. arXiv:math-ph/0607011. doi:10.1007/s00200-006-0196-1.
- ^ Scott, T. C.; Fee, G.; Grotendorst, J. (2013). “Asymptotic series of Generalized Lambert W Function”. SIGSAM (ACM Special Interest Group in Symbolic and Algebraic Manipulation) 47 (185): 75–83 .
- ^ Scott, T. C.; Fee, G.; Grotendorst, J.; Zhang, W.Z. (2014). “Numerics of the Generalized Lambert W Function”. SIGSAM 48 (188): 42–56 .
- ^ P.S. Farrugia, R.B. Mann, and T.C. Scott, N-body Gravity and the Schrödinger Equation, Class. Quantum Grav. vol. 24, (2007), pp. 4647-4659, [1]; Arxiv [2]
- ^ T.C. Scott, M. Aubert-Frécon and J. Grotendorst, New Approach for the Electronic Energies of the Hydrogen Molecular Ion, Chem. Phys. vol. 324, (2006), pp. 323-338, [3]; Arxiv [4]
- ^ T.C. Scott, A. Lüchow, D. Bressanini and J.D. Morgan III, The Nodal Surfaces of Helium Atom Eigenfunctions, Phys. Rev. A 75, (2007), p. 060101, [5]
- ^ Wolfram research の解説ページ (英語)
- ^ GSL reference manual の Lambert W Functions の項 (英語)
参考文献・外部リンク
- Corless et al. "On the Lambert W function" Adv. Computational Maths. 5, 329 - 359 (1996) (PostScript)
- Chapeau-Blondeau, F. and Monir, A: "Evaluation of the Lambert W Function and Application to Generation of Generalized Gaussian Noise With Exponent 1/2", IEEE Trans. Signal Processing, 50(9), 2002
- MathWorld - Lambert W-Function
- Lambert function from Wolfram's function site.
- Francis et al. "Quantitative General Theory for Periodic Breathing" Circulation 102 (18): 2214. (2000). Use of Lambert function to solve delay-differential dynamics in human disease.
- Extreme Mathematics. Monographs on the Lambert W function, its numerical approximation and generalizations for W-like inverses of transcendental forms with repeated exponential towers.
- Computing the Lambert Wfunction