このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。
expint
指数積分関数
説明
例
浮動小数点数およびシンボリック数の 1 引数の指数積分
浮動小数点数について指数積分を計算します。これらの数値はシンボリック オブジェクトではないため、結果は浮動小数点数となります。
s = [expint(1/3), expint(1), expint(-2)]
s = 0.8289 + 0.0000i 0.2194 + 0.0000i -4.9542 - 3.1416i
同じ数値をシンボリック オブジェクトに変換して指数積分を計算します。正の値 x
に対し、expint(x)
は -ei(-x)
を返します。負の値の x
に対しては、-pi*i - ei(-x)
を返します。
s = [expint(sym(1)/3), expint(sym(1)), expint(sym(-2))]
s = [ -ei(-1/3), -ei(-1), - ei(2) - pi*1i]
vpa
を使用して 10 桁の精度でこの結果を近似します。
vpa(s, 10)
ans = [ 0.8288877453, 0.2193839344, - 4.954234356 - 3.141592654i]
浮動小数点数およびシンボリック数の 2 引数の指数積分
2 引数の指数積分を計算するときは、数値をシンボリック オブジェクトに変換します。
s = [expint(2, sym(1)/3), expint(sym(1), Inf), expint(-1, sym(-2))]
s = [ expint(2, 1/3), 0, -exp(2)/4]
vpa
を使用して 25 桁の精度でこの結果を近似します。
vpa(s, 25)
ans = [ 0.4402353954575937050522018, 0, -1.847264024732662556807607]
最初の引数が非正である 2 引数の指数積分
2 引数の指数積分を計算します。n
が非正の整数の場合、expint(n, x)
は陽的な表現を exp(-x)*p(1/x)
という形式で返します。ここで、p
は 1 - n
次の多項式です。
syms x expint(0, x) expint(-1, x) expint(-2, x)
ans = exp(-x)/x ans = exp(-x)*(1/x + 1/x^2) ans = exp(-x)*(1/x + 2/x^2 + 2/x^3)
指数積分の導関数
1 引数の指数積分の 1 次、2 次および 3 次導関数を計算します。
syms x diff(expint(x), x) diff(expint(x), x, 2) diff(expint(x), x, 3)
ans = -exp(-x)/x ans = exp(-x)/x + exp(-x)/x^2 ans = - exp(-x)/x - (2*exp(-x))/x^2 - (2*exp(-x))/x^3
2 引数の指数積分の 1 次導関数を計算します。
syms n x diff(expint(n, x), x) diff(expint(n, x), n)
ans = -expint(n - 1, x) ans = - hypergeom([1 - n, 1 - n], [2 - n, 2 - n],... -x)/(n - 1)^2 - (x^(n - 1)*pi*(psi(n) - ... log(x) + pi*cot(pi*n)))/(sin(pi*n)*gamma(n))
入力引数
ヒント
シンボリック オブジェクトではない数値について
expint
を呼び出すと、MATLAB® 関数expint
が呼び出されます。この関数では 1 つの引数だけが受け入れられます。2 引数の指数積分を計算するには、sym
を使用して数値をシンボリック オブジェクトに変換してから、それらシンボリック オブジェクトに対してexpint
を呼び出します。vpa
を使用して、結果を浮動小数点数で近似することができます。指数積分の以下の値は、MATLAB 関数
expint
によって返される値とは異なります。expint(sym(Inf)) = 0
,expint(-sym(Inf)) = -Inf
,expint(sym(NaN)) = NaN
.正の実数
x
に対しては、expint(x) = -ei(-x)
です。負の実数x
に対しては、expint(x) = -pi*i - ei(-x)
です。一方の入力引数がスカラーであり、もう一方の入力引数がベクトルまたは行列である場合、
expint(n,x)
によってスカラーは、すべての要素がそのスカラーと等しい、もう一方の引数と同じサイズのベクトルまたは行列に拡張されます。
アルゴリズム
関数 expint
と ei
の関係は、以下のとおりです。
expint(1,-x) = ei(x) + (ln(x)-ln(1/x))/2 - ln(-x)
関数 ei(x)
および expint(1,x)
には共に、原点および負の実数軸に沿う分枝切断において対数特異性があります。関数 ei
は、この分枝切断の上方または下方からの接近時に不連続です。
関数 expint
は、次のように上側不完全ガンマ関数 igamma
に関連しています。
expint(n,x) = (x^(n-1))*igamma(1-n,x)
バージョン履歴
R2013a で導入