特殊関数表記は以下の通りです:
bessel_j (index, expr) 第一種ベッセル関数 bessel_y (index, expr) 第二種ベッセル関数 bessel_i (index, expr) 第一種変形ベッセル関数 bessel_k (index, expr) 第二種変形ベッセル関数 hankel_1 (v,z) 第一種ハンケル関数 hankel_2 (v,z) 第二種ハンケル関数 struve_h (v,z) シュトルーベH関数 struve_l (v,z) シュトルーベL関数 assoc_legendre_p[v,u] (z) 位数v、次数uのルジャンドル関数 assoc_legendre_q[v,u] (z) 第二種ルジャンドル関数 %f[p,q] ([], [], expr) 一般化超幾何関数 gamma() ガンマ関数 gamma_incomplete_lower(a,z) 第一種不完全ガンマ関数 gammaincomplete(a,z) 第二種不完全ガンマ関数 hypergeometric(l1, l2, z) 超幾何関数 slommel %m[u,k] (z) 第一種Whittaker関数 %w[u,k] (z) 第二種Whittaker関数 erfc (z) 相補誤差関数 ei (z) 指数積分 (?) kelliptic (z) 第一種完全楕円積分 (K) parabolic_cylinder_d (v,z) 放物円筒D関数
次数\(v\)と独立変数\(z\)の第一種ベッセル関数。
bessel_jは以下のように定義されます。
inf
==== k - v - 2 k v + 2 k
\ (- 1) 2 z
> --------------------------
/ k! gamma(v + k + 1)
====
k = 0
計算のために無限級数は使われませんが。
次数\(v\)と独立変数\(z\)の第二種ベッセル関数
\(v\)が整数でない時、
bessel_yは以下のように定義されます。
cos(%pi v) bessel_j(v, z) - bessel_j(-v, z)
-------------------------------------------
sin(%pi v)
\(v\)が整数\(n\)の時、 \(v\)が\(n\)に近づく極限が取られます。
次数\(v\)、独立変数\(z\)の第一種変形ベッセル関数
bessel_iは以下のように定義されます。
inf
==== - v - 2 k v + 2 k
\ 2 z
> -------------------
/ k! gamma(v + k + 1)
====
k = 0
無限級数は計算には使われませんが。
次数\(v\)、独立変数\(z\)の第二種変形ベッセル関数
\(v\)が整数の時
bessel_kは以下のように定義されます。
%pi csc(%pi v) (bessel_i(-v, z) - bessel_i(v, z))
-------------------------------------------------
2
もし\(v\)が整数\(n\)でないなら、 \(v\)が\(n\)に近づく極限が取られます。
次数\(v\)、独立変数\(z\)の第一種ハンケル関数 (A&S 9.1.3)。
hankel_1は以下のように定義されます。
bessel_j(v,z) + %i * bessel_y(v,z)
Maximaは、
浮動小数点精度の実数次数\(v\)と複素独立変数\(z\)に対して
hankel_1を数値的に評価します。
多倍長浮動小数点精度の数値評価と複素次数\(v\)はサポートされていません。
besselexpandがtrueの時、
次数\(v\)が奇数の1/2の時hankel_1は初等関数の項に展開されます。
besselexpandを参照してください。
Maximaはhankel_1の独立変数\(z\)に関する導関数を知っています。
例:
数値評価:
(%i1) hankel_1(1,0.5); (%o1) .2422684576748738 - 1.471472392670243 %i (%i2) hankel_1(1,0.5+%i); (%o2) - .2558287994862166 %i - 0.239575601883016
複素次数\(v\)はサポートされていません。 Maximaは名詞形を返します:
(%i3) hankel_1(%i,0.5+%i); (%o3) hankel_1(%i, %i + 0.5)
besselexpandがtrueの時のhankel_1の展開:
(%i4) hankel_1(1/2,z),besselexpand:true;
sqrt(2) sin(z) - sqrt(2) %i cos(z)
(%o4) ----------------------------------
sqrt(%pi) sqrt(z)
hankel_1の独立変数\(z\)に関する導関数。
次数\(v\)に関する導関数はサポートされていません。
Maximaは名詞形を返します:
(%i5) diff(hankel_1(v,z),z);
hankel_1(v - 1, z) - hankel_1(v + 1, z)
(%o5) ---------------------------------------
2
(%i6) diff(hankel_1(v,z),v);
d
(%o6) -- (hankel_1(v, z))
dv
次数\(v\)、独立変数\(z\)の第二種ハンケル関数 (A&S 9.1.4)。
hankel_2は以下のように定義されます。
bessel_j(v,z) - %i * bessel_y(v,z)
Maximaは、
浮動小数点精度の実数次数\(v\)と複素独立変数\(z\)に対して
hankel_2を数値的に評価します。
多倍長浮動小数点精度の数値評価と複素次数\(v\)はサポートされていません。
besselexpandがtrueの時、
次数\(v\)が奇数の1/2の時hankel_2は初等関数の項に展開されます。
besselexpandを参照してください。
Maximaはhankel_2の独立変数\(z\)に関する導関数を知っています。
例はhankel_1を参照してください。
デフォルト値: false
次数が半奇数の時のベッセル関数の展開を制御します。
この場合、ベッセル関数は他の初等関数で展開することができます。
besselexpandがtrueの時、
ベッセル関数は展開されます。
(%i1) besselexpand: false$
(%i2) bessel_j (3/2, z);
3
(%o2) bessel_j(-, z)
2
(%i3) besselexpand: true$
(%i4) bessel_j (3/2, z);
sin(z) cos(z)
sqrt(2) sqrt(z) (------ - ------)
2 z
z
(%o4) ---------------------------------
sqrt(%pi)
次数\(v\)、独立変数\(z\)のスケールされた第一種変形ベッセル関数。
すなわち、\(scaled_bessel_i(v,z) = exp(-abs(z))*bessel_i(v, z)\)。
この関数は、大きな\(z\)に関する\(bessel_i\)―これはおおきくなりますーの計算に
特に役に立ちます。
しかしながら、そうでなければ、Maximaはこの関数についてあまり知りません。
数式処理のためには、式exp(-abs(z))*bessel_i(v, z)を使って取り組むのが多分望ましいです。
scaled_bessel_i(0,z)と同一です。
scaled_bessel_i(1,z)と同一です。
Lommelの小s[u,v](z)関数。 多分Gradshteyn & Ryzhik 8.570.1.
エアリー関数Ai(x)とBi(x)は、Abramowitz and Stegun, Handbook of Mathematical Functions, Section 10.4の中で定義されています。
y = Ai(x)とy = Bi(x)は、
エアリー微分方程式diff (y(x), x, 2) - x y(x) = 0の
2つの線形独立な解です。
もし引数xが実数もしくは複素数の浮動小数点数なら、
関数の数値が返されます。
エアリー関数Ai(x)。 (A&S 10.4.2)
導関数diff (airy_ai(x), x)は、airy_dai(x)です。
airy_bi, airy_dai, airy_dbiも参照してください。
エアリー関数Ai airy_ai(x)の導関数。
airy_aiを参照してください。
エアリー関数Bi(x)。 (A&S 10.4.3)
導関数diff (airy_bi(x), x)はairy_dbi(x)です。
airy_ai, airy_dbiを参照してください。
エアリーBi関数airy_bi(x)の導関数。
airy_aiとairy_biを参照してください。
ガンマ関数と、関連したベータ、プサイ、不完全ガンマ関数は Abramowitz and Stegun, Handbook of Mathematical Functions, Chapter 6の中で定義されています。
階乗(シフトガンマ)関数の多倍長浮動小数点バージョン。 2番目の引数は、保持し返すディジットの数です。 少しの余分を要請するのはいい考えです。
bfpsiは、実引数zと整数次数nの多ガンマ関数です。
bfpsi0はディガンマ関数です。
bfpsi0 (z, fpprec)はbfpsi (0, z, fpprec)と同値です。
これらの関数は多倍長浮動小数点値を返します。 fpprecは戻り値の多倍長浮動小数点精度です。
複素多倍長浮動小数点の階乗です。
load ("bffac")はこの関数をロードします。
ガンマ関数の基本的な定義 (A&S 6.1.1) は、
inf
/
[ z - 1 - t
gamma(z) = I t %e dt
]
/
0
です。
Maximaは、正の整数と正負の有理数に関して、gammaを整理します。
半整数値に関して、結果は有理数掛けるsqrt(%pi)です。
整数値に関する整理は、factlimによって制御されます。
factlimより大きな整数に関して、
階乗関数ーgammaを計算するのに使われますーの数値的な結果はオーバーフローします。
有理数に関する整理は、内部オーバーフローを避けるために、
gammalimによって制御されます。
factlimとgammalimも参照してください。
負の整数に関して、gammaは未定義です。
Maximaは、浮動小数点および多倍長浮動小数点の実数値および複素数値に関して、
gammaを数値的に評価できます。
gammaは鏡像対称性を持ちます。
gamma_expandがtrueの時、
Maximaは、
引数z+nとz-n―nは整数―のgammaを
展開します。
Maximaは、gammaの導関数を知っています。
例:
整数、半整数、有理数に関する整理:
(%i1) map('gamma,[1,2,3,4,5,6,7,8,9]);
(%o1) [1, 1, 2, 6, 24, 120, 720, 5040, 40320]
(%i2) map('gamma,[1/2,3/2,5/2,7/2]);
sqrt(%pi) 3 sqrt(%pi) 15 sqrt(%pi)
(%o2) [sqrt(%pi), ---------, -----------, ------------]
2 4 8
(%i3) map('gamma,[2/3,5/3,7/3]);
2 1
2 gamma(-) 4 gamma(-)
2 3 3
(%o3) [gamma(-), ----------, ----------]
3 3 9
実数と複素数の数値評価:
(%i4) map('gamma,[2.5,2.5b0]);
(%o4) [1.329340388179137, 1.329340388179137b0]
(%i5) map('gamma,[1.0+%i,1.0b0+%i]);
(%o5) [.4980156681183558 - .1549498283018108 %i,
4.980156681183561b-1 - 1.549498283018107b-1 %i]
gammaは鏡像対称性を持ちます:
(%i6) declare(z,complex)$ (%i7) conjugate(gamma(z)); (%o7) gamma(conjugate(z))
gamma_expandがtrueの時
Maximaは、gamma(z+n)とgamma(z-n)を展開します:
(%i8) gamma_expand:true$
(%i9) [gamma(z+1),gamma(z-1),gamma(z+2)/gamma(z+1)];
gamma(z)
(%o9) [z gamma(z), --------, z + 1]
z - 1
gammaの導関数:
(%i10) diff(gamma(z),z);
(%o10) psi (z) gamma(z)
0
makegammaも参照してください。
オイラー-マスケローニ定数は%gammaです。
ガンマ関数の自然対数。
第二種不完全ガンマ関数 A&S 6.5.2:
inf
/
[ a - 1 - t
gamma_incomplete(a, z) = I t %e dt
]
/
z
正則第二種不完全ガンマ関数 A&S 6.5.1:
gamma_incomplete_regularized(a, z) =
gamma_incomplete(a, z)
----------------------
gamma(a)
一般化不完全ガンマ関数
gamma_incomplete_generalized(a, z1, z2) =
z2
/
[ a - 1 - t
I t %e dt
]
/
z1
デフォルト値: 1000000
gammalimは、整数と有理数引数に関してガンマ関数の整理を制御します。
もし引数の絶対値がgammalimよりも大きくないなら、
整理が行われます。
factlimスイッチは、
整数引数のgammaの結果の整理を制御します。
factlimスイッチは、
整数引数のgammaの結果の整理も制御することに注意してください。
exprの中の2項、階乗、ベータ関数のインスタンスをガンマ関数に変換します。
makefactも参照してください。
ベータ関数は、gamma(a) gamma(b)/gamma(a+b)
(A&S 6.2.1)として定義されます。
Maximaは、正の整数と、合計すると整数になる有理数についてベータ関数を整理します。
beta_args_sum_to_integerがtrueの時、
Maximaは、和が整数になる一般式も整理します。
aもしくはbがゼロに等しい時には、ベータ関数は未定義です。
一般にベータ関数は、負の整数の引数で未定義です。 例外は、a=-n―nは正の整数―かつbがb<=nの正の整数で、 解析接続を定義することが可能です。 Maximaはこの場合結果を与えます。
beta_expandがtrueの時、
nを整数とするbeta(a+n,b)とbeta(a-n,b)、
もしくはbeta(a,b+n)とbeta(a,b-n)
のような式は整理されます。
Maximaは、実数値と複素数値のベータ関数を浮動小数点と多倍長浮動小数点精度で評価できます。
数値評価のために、Maximaはlog_gammaを使います:
- log_gamma(b + a) + log_gamma(b) + log_gamma(a)
%e
Maximaは、ベータ関数が対称で、鏡像対称性を持つことを知っています。
Maximaは、aまたはbに関するベータ関数の導関数を知っています。
ベータ関数をガンマ関数の比として表現するには、makegammaを参照してください。
例:
引数の1つが整数の時の整理:
(%i1) [beta(2,3),beta(2,1/3),beta(2,a)];
1 9 1
(%o1) [--, -, ---------]
12 4 a (a + 1)
2つの有理数引数の和が整数になる時の整理:
(%i2) [beta(1/2,5/2),beta(1/3,2/3),beta(1/4,3/4)];
3 %pi 2 %pi
(%o2) [-----, -------, sqrt(2) %pi]
8 sqrt(3)
beta_args_sum_to_integerをtrueに設定した時、
引数の和が整数の時、さらに一般的な式が整理されます:
(%i3) beta_args_sum_to_integer:true$
(%i4) beta(a+1,-a+2);
%pi (a - 1) a
(%o4) ------------------
2 sin(%pi (2 - a))
引数の1つが負の整数の時、可能な結果:
(%i5) [beta(-3,1),beta(-3,2),beta(-3,3)];
1 1 1
(%o5) [- -, -, - -]
3 6 3
beta_expandがtrueの時、
nが整数のbeta(a+n,b)またはbeta(a-n)は整理されます:
(%i6) beta_expand:true$
(%i7) [beta(a+1,b),beta(a-1,b),beta(a+1,b)/beta(a,b+1)];
a beta(a, b) beta(a, b) (b + a - 1) a
(%o7) [------------, ----------------------, -]
b + a a - 1 b
引数の1つがゼロの時、ベータは未定義です:
(%i7) beta(0,b); beta: expected nonzero arguments; found 0, b -- an error. To debug this try debugmode(true);
実数値と複素数値の浮動小数点または多倍長浮動小数点精度での数値評価:
(%i8) beta(2.5,2.3); (%o8) .08694748611299981 (%i9) beta(2.5,1.4+%i); (%o9) 0.0640144950796695 - .1502078053286415 %i (%i10) beta(2.5b0,2.3b0); (%o10) 8.694748611299969b-2 (%i11) beta(2.5b0,1.4b0+%i); (%o11) 6.401449507966944b-2 - 1.502078053286415b-1 %i
ベータは対称で、鏡像対称性を持ちます:
(%i14) beta(a,b)-beta(b,a); (%o14) 0 (%i15) declare(a,complex,b,complex)$ (%i16) conjugate(beta(a,b)); (%o16) beta(conjugate(a), conjugate(b))
aに関するベータ関数の導関数:
(%i17) diff(beta(a,b),a);
(%o17) - beta(a, b) (psi (b + a) - psi (a))
0 0
不完全ベータ関数の基本定義(A&S 6.6.1)は、以下の通りです。
z
/
[ b - 1 a - 1
I (1 - t) t dt
]
/
0
この定義は、\(realpart(a)>0\)かつ\(realpart(b)>0\)かつ\(abs(z)<1\)で可能です。 他の値では不完全ベータ関数は一般化超幾何関数を通じて定義することができます。
gamma(a) hypergeometric_generalized([a, 1 - b], [a + 1], z) z
(不完全ベータ関数の完全な定義については、functions.wolfram.comを参照してください。 )
負の整数\(a = -n\)と正の整数\(b=m\)で、\(m<=n\)の場合、 不完全ベータ関数は以下を通して定義されます。
m - 1 k
==== (1 - m) z
n - 1 \ k
z > -----------
/ k! (n - k)
====
k = 0
Maximaは、
負の整数aに関するbeta_incompleteを整理するために、この定義を使います。
aが正の整数の時、
任意の引数b, zに関して、
bが正の整数の時、
非負の整数a, 任意のzに関して、
beta_incompleteは整理されます。
\(z=0\)かつ\(realpart(a)>0\)の時、beta_incompleteは特別な値ゼロを取ります。
z=1かつ\(realpart(b)>0\)の時、
beta_incompleteはベータ関数beta(a,b)に整理されます。
Maximaは、浮動小数点か多倍長浮動小数点精度の実数値と複素数値に対して、
beta_incompleteを数値的に評価します。
数値評価に関して、
不完全ベータ函数の連分数展開を使います。
オプション変数beta_expandがtrueの時、
Maximaはbeta_incomplete(a+n,b,z)やbeta_incomplete(a-n,b,z)のような式を展開します。ここでnは正の整数です。
Maximaはbeta_incompleteの変数a, b, zについての導関数と
変数zについての積分を知っています。
例:
正の整数aに関する整理:
(%i1) beta_incomplete(2,b,z);
b
1 - (1 - z) (b z + 1)
(%o1) ----------------------
b (b + 1)
正の整数bに関する整理:
(%i2) beta_incomplete(a,2,z);
a
(a (1 - z) + 1) z
(%o2) ------------------
a (a + 1)
正の整数a, bに関する整理:
(%i3) beta_incomplete(3,2,z);
3
(3 (1 - z) + 1) z
(%o3) ------------------
12
aが負の整数かつ\(b<=(-a)\)の時、Maximaは整理します:
(%i4) beta_incomplete(-3,1,z);
1
(%o4) - ----
3
3 z
特定の値\(z=0\)と\(z=1\)に関して, Maximaは整理します:
(%i5) assume(a>0,b>0)$ (%i6) beta_incomplete(a,b,0); (%o6) 0 (%i7) beta_incomplete(a,b,1); (%o7) beta(a, b)
浮動小数点または多倍長浮動小数点精度の数値評価:
(%i8) beta_incomplete(0.25,0.50,0.9); (%o8) 4.594959440269333 (%i9) fpprec:25$ (%i10) beta_incomplete(0.25,0.50,0.9b0); (%o10) 4.594959440269324086971203b0
\(abs(z)>1\)の時、beta_incompleteは複素数を返します:
(%i11) beta_incomplete(0.25,0.50,1.7); (%o11) 5.244115108584249 - 1.45518047787844 %i
もっと一般的な複素引数に関する結果:
(%i14) beta_incomplete(0.25+%i,1.0+%i,1.7+%i); (%o14) 2.726960675662536 - .3831175704269199 %i (%i15) beta_incomplete(1/2,5/4*%i,2.8+%i); (%o15) 13.04649635168716 %i - 5.802067956270001 (%i16)
beta_expandがtrueの時の展開:
(%i23) beta_incomplete(a+1,b,z),beta_expand:true;
b a
a beta_incomplete(a, b, z) (1 - z) z
(%o23) -------------------------- - -----------
b + a b + a
(%i24) beta_incomplete(a-1,b,z),beta_expand:true;
b a - 1
beta_incomplete(a, b, z) (- b - a + 1) (1 - z) z
(%o24) -------------------------------------- - ---------------
1 - a 1 - a
beta_incompleteの微分と積分:
(%i34) diff(beta_incomplete(a, b, z), z);
b - 1 a - 1 (%o34) (1 - z) z
(%i35) integrate(beta_incomplete(a, b, z), z);
b a
(1 - z) z
(%o35) ----------- + beta_incomplete(a, b, z) z
b + a
a beta_incomplete(a, b, z)
- --------------------------
b + a
(%i36) factor(diff(%, z));
(%o36) beta_incomplete(a, b, z)
beta_incomplete_regularized(a, b, z) =
beta_incomplete(a, b, z)
------------------------
beta(a, b)
として定義された正則不完全ベータ関数 A&S 6.6.2。
beta_incomplete同様、この定義は完全ではありません。
beta_incomplete_regularizedの完全な定義については、functions.wolfram.comを参照してください。
beta_incomplete_regularizedは、aまたはbが正の整数の時
整理されます。
\(z=0\)かつ\(realpart(a)>0\)の時、
beta_incomplete_regularizedは、具体的な値0を持ちます。
z=1かつ\(realpart(b)>0\)の時、
beta_incomplete_regularizedは、1に整理されます。
Maximaは、実数と複素数の引数について、
浮動小数点と多倍長浮動小数点精度でbeta_incomplete_regularizedを評価します。
beta_expandがtrueの時、
Maximaは、
nは整数として、引数\(a+n\)または\(a-n\)に関して
beta_incomplete_regularizedを展開します。
Maximaは、変数a, b, zに関する
beta_incomplete_regularizedの導関数と、
変数zに関する積分を知っています。
例:
aまたはbが正の整数の時の整理:
(%i1) beta_incomplete_regularized(2,b,z);
b
(%o1) 1 - (1 - z) (b z + 1)
(%i2) beta_incomplete_regularized(a,2,z);
a
(%o2) (a (1 - z) + 1) z
(%i3) beta_incomplete_regularized(3,2,z);
3
(%o3) (3 (1 - z) + 1) z
特定の値\(z=0\), \(z=1\)について、Maximaは整理します:
(%i4) assume(a>0,b>0)$ (%i5) beta_incomplete_regularized(a,b,0); (%o5) 0 (%i6) beta_incomplete_regularized(a,b,1); (%o6) 1
実数と複素数引数に関する浮動小数点または多倍長浮動小数点精度の数値評価:
(%i7) beta_incomplete_regularized(0.12,0.43,0.9); (%o7) .9114011367359802 (%i8) fpprec:32$ (%i9) beta_incomplete_regularized(0.12,0.43,0.9b0); (%o9) 9.1140113673598075519946998779975b-1 (%i10) beta_incomplete_regularized(1+%i,3/3,1.5*%i); (%o10) .2865367499935403 %i - 0.122995963334684 (%i11) fpprec:20$ (%i12) beta_incomplete_regularized(1+%i,3/3,1.5b0*%i); (%o12) 2.8653674999354036142b-1 %i - 1.2299596333468400163b-1
beta_expandがtrueの時の展開:
(%i13) beta_incomplete_regularized(a+1,b,z);
b a
(1 - z) z
(%o13) beta_incomplete_regularized(a, b, z) - ------------
a beta(a, b)
(%i14) beta_incomplete_regularized(a-1,b,z);
(%o14) beta_incomplete_regularized(a, b, z)
b a - 1
(1 - z) z
- ----------------------
beta(a, b) (b + a - 1)
zに関する微分と積分:
(%i15) diff(beta_incomplete_regularized(a,b,z),z);
b - 1 a - 1
(1 - z) z
(%o15) -------------------
beta(a, b)
(%i16) integrate(beta_incomplete_regularized(a,b,z),z);
(%o16) beta_incomplete_regularized(a, b, z) z
b a
(1 - z) z
a (beta_incomplete_regularized(a, b, z) - ------------)
a beta(a, b)
- -------------------------------------------------------
b + a
一般化不完全ベータ関数の基本的な定義は、以下の通りです。
z2
/
[ b - 1 a - 1
I (1 - t) t dt
]
/
z1
Maximaは、
aとbが正の整数の時、
beta_incomplete_regularizedを整理します。
\(realpart(a)>0\)かつ\(z1=0\)または\(z2=0\)の時、
Maximaは、
beta_incomplete_generalizedをbeta_incompleteに整理します。
\(realpart(b)>0\)かつ\(z1=1\)またはz2=1の時、
Maximaは、betaとbeta_incompleteを含む式に整理します。
Maximaは、実数値と複素数値に関して、浮動小数点と多倍長浮動小数点精度で
beta_incomplete_regularizedを評価します。
beta_expandがtrueの時、
nを正の整数とすると、
Maximaは、\(a+n\)や\(a-n\)に関してbeta_incomplete_generalized
を整理します。
Maximaは、
変数a, b, z1, z2に関する
beta_incomplete_generalizedの微分を知っており、
変数z1やz2に関する積分を知っています。
例:
Maximaは、aとbが正の整数の時、
beta_incomplete_generalizedを整理します:
(%i1) beta_incomplete_generalized(2,b,z1,z2);
b b
(1 - z1) (b z1 + 1) - (1 - z2) (b z2 + 1)
(%o1) -------------------------------------------
b (b + 1)
(%i2) beta_incomplete_generalized(a,2,z1,z2);
a a
(a (1 - z2) + 1) z2 - (a (1 - z1) + 1) z1
(%o2) -------------------------------------------
a (a + 1)
(%i3) beta_incomplete_generalized(3,2,z1,z2);
2 2 2 2
(1 - z1) (3 z1 + 2 z1 + 1) - (1 - z2) (3 z2 + 2 z2 + 1)
(%o3) -----------------------------------------------------------
12
特定の値\(z1=0\), \(z2=0\), \(z1=1\)または\(z2=1\)に関する整理:
(%i4) assume(a > 0, b > 0)$ (%i5) beta_incomplete_generalized(a,b,z1,0); (%o5) - beta_incomplete(a, b, z1) (%i6) beta_incomplete_generalized(a,b,0,z2); (%o6) - beta_incomplete(a, b, z2) (%i7) beta_incomplete_generalized(a,b,z1,1); (%o7) beta(a, b) - beta_incomplete(a, b, z1) (%i8) beta_incomplete_generalized(a,b,1,z2); (%o8) beta_incomplete(a, b, z2) - beta(a, b)
浮動小数点もしくは多倍長浮動小数点精度での実数値引数に関する数値評価:
(%i9) beta_incomplete_generalized(1/2,3/2,0.25,0.31); (%o9) .09638178086368676 (%i10) fpprec:32$ (%i10) beta_incomplete_generalized(1/2,3/2,0.25,0.31b0); (%o10) 9.6381780863686935309170054689964b-2
浮動小数点もしくは多倍長浮動小数点精度での複素数値引数に関する数値評価:
(%i11) beta_incomplete_generalized(1/2+%i,3/2+%i,0.25,0.31); (%o11) - .09625463003205376 %i - .003323847735353769 (%i12) fpprec:20$ (%i13) beta_incomplete_generalized(1/2+%i,3/2+%i,0.25,0.31b0); (%o13) - 9.6254630032054178691b-2 %i - 3.3238477353543591914b-3
beta_expandがtrueの時、
nを正の整数とする、
\(a+n\)または\(a-n\)に関する整理:
(%i14) beta_expand:true$
(%i15) beta_incomplete_generalized(a+1,b,z1,z2);
b a b a
(1 - z1) z1 - (1 - z2) z2
(%o15) -----------------------------
b + a
a beta_incomplete_generalized(a, b, z1, z2)
+ -------------------------------------------
b + a
(%i16) beta_incomplete_generalized(a-1,b,z1,z2);
beta_incomplete_generalized(a, b, z1, z2) (- b - a + 1)
(%o16) -------------------------------------------------------
1 - a
b a - 1 b a - 1
(1 - z2) z2 - (1 - z1) z1
- -------------------------------------
1 - a
変数z1に関する微分とz1やz2に関する積分:
(%i17) diff(beta_incomplete_generalized(a,b,z1,z2),z1);
b - 1 a - 1
(%o17) - (1 - z1) z1
(%i18) integrate(beta_incomplete_generalized(a,b,z1,z2),z1);
(%o18) beta_incomplete_generalized(a, b, z1, z2) z1
+ beta_incomplete(a + 1, b, z1)
(%i19) integrate(beta_incomplete_generalized(a,b,z1,z2),z2);
(%o19) beta_incomplete_generalized(a, b, z1, z2) z2
- beta_incomplete(a + 1, b, z2)
デフォルト値: false
beta_expandがtrueの時、
\(a+n\)や\(a-n\)のような引数に対して
beta(a,b) と、関連した関数は展開されます。
ここで\(n\)は整数です。
デフォルト値: false
beta_args_sum_to_integerがtrueの時、
引数aとbの和が整数の時、
Maximaはbeta(a,b)を整理します。
log (gamma (x))の次数n+1の導関数。
例えば、
psi[0](x)は1階微分、
psi[1](x)は2階微分など。
Maximaは、一般に、psiの数値を計算する方法を知りませんが、
有理数の引数に関してはいくつかの厳密な値を計算することができます。
いくつの変数は、psiが可能なら厳密な値を返す有理数の引数の範囲を制御します。
maxpsiposint,
maxpsinegint, maxpsifracnum, maxpsifracdenomを参照してください。
すなわち、xは、maxpsinegintとmaxpsiposintの間になければいけません。
もしxの小数部分の絶対値が有理数で、かつ分子がmaxpsifracnumより小さく、
分母がmaxpsifracdenomより小さければ、
psiは厳密な値を返します。
bffacパッケージの中の
関数bfpsiは数値を計算できます。
デフォルト値: 20
maxpsiposintは、
psi[n](x)が厳密な値を計算しようとする
最も大きな正の値です。
デフォルト値: -10
maxpsinegint
psi[n](x)が厳密な値を計算しようとする
最も大きな負の値です。
従って、もし
xがmaxnegintよりも小さければ、
たとえ可能でも、
psi[n](x)は整理された答えを返しません。
デフォルト値: 6
xを1より小さい、形式p/qの有理数とします。
もしpがmaxpsifracnumより大きいなら
psi[n](x)は、
整理された値を返そうとしません。
デフォルト値: 6
xを1より小さい、形式p/qの有理数とします。
もしqがmaxpsifracdenomより大きいなら
psi[n](x)は、
整理された値を返そうとしません。
exprの中の二項、ガンマ、ベータ関数のインスタンスを階乗に変換します。
makegammaも参照してください。
式exprを掛ける数値因子を返します。 式exprは単一項でなければいけません。
contentは、輪の中のすべての項の最大公約数を返します。
(%i1) gamma (7/2);
15 sqrt(%pi)
(%o1) ------------
8
(%i2) numfactor (%);
15
(%o2) --
8
指数積分と、関連した関数は、 Abramowitz and Stegun, Handbook of Mathematical Functions, 5章の中で定義されています。
指数積分E1(z) (A&S 5.1.1)
指数積分Ei(z) (A&S 5.1.2)
指数積分Li(z) (A&S 5.1.3)
指数積分 En(z) (A&S 5.1.4)
指数積分 Si(z) (A&S 5.2.1)
指数積分 Ci(z) (A&S 5.2.2)
指数積分 Shi(z) (A&S 5.2.3)
指数積分 Chi(z) (A&S 5.2.4)
デフォルト値: false
指数積分の表現を、 gamma_incomplete, expintegral_e1, expintegral_ei, expintegral_li, expintegral_trig, expintegral_hyp に変えます。
デフォルト値: false
Expand the Exponential Integral 半整数値の指数積分E[n](z)をErfcもしくはErfの項で展開し、 整数値のそれをEiの項で展開します。
誤差関数と、関連した関数は、 Abramowitz and Stegun, Handbook of Mathematical Functions, 7章で定義されています。
誤差関数erf(z) (A&S 7.1.1)
See also flag erfflag.
相補誤差関数erfc(z) (A&S 7.1.2)
erfc(z) = 1-erf(z)
虚数誤差関数
erfi(z) = -%i*erf(%i*z)
一般化誤差関数Erf(z1,z2)
フレネル積分C(z) = integrate(cos((%pi/2)*t^2),t,0,z) (A&S 7.3.1)
フラグtrigsignがtrueの時、
整理 fresnel_c(-x) = -fresnel_c(x)
が適用されます。
フラグ%iargsがtrueの時、
整理 fresnel_c(%i*x) = %i*fresnel_c(x)
が適用されます。
フラグerf_representationとhypergeometric_representationを参照してください。
フレネル積分S(z) = integrate(sin((%pi/2)*t^2),t,0,z). (A&S 7.3.2)
フラグtrigsignがtrueの時、
整理fresnel_s(-x) = -fresnel_s(x)
が適用されます。
フラグ%iargsがtrueの時、
整理 fresnel_s(%i*x) = %i*fresnel_s(x)
が適用されます。
フラグerf_representationとhypergeometric_representationを参照してください。
デフォルト値: false
trueの時、 erfc, erfi, erf_generalized, fresnel_s, fresnel_c
は、erfに変換されます。
デフォルト値: false
fresnel_sとfresnel_cに関して超幾何表現への変換を可能にします。
シュトルーベ関数はAbramowitz and Stegun, Handbook of Mathematical Functions, 12章で定義されています。
Maximaは、これらの関数の非常に限られた知識を持っています。
それらは、関数hgfredから返されることができます。
次数v, 独立変数zのシュトルーベ関数H (A&S 12.1.1)
次数v、独立変数zの変形シュトルーベ関数L (A&S 12.2.1)
超幾何関数はAbramowitz and Stegun, Handbook of Mathematical Functions, 13章15章で定義されています。
Maximaは、これらの関数の非常に限られた知識を持っています。
それらは、関数hgfredから返されることができます。
Whittaker M関数
M[k,u](z) = exp(-z/2)*z^(1/2+u)*M(1/2+u-k,1+2*u,z).
(A&S 13.1.32)
Whittaker W関数 (A&S 13.1.33)
pFq(a1,a2,..ap;b1,b2,..bq;z)超幾何関数。
ここで、aは長さpのリストで、
bは長さqのリストです。
超幾何関数。
Maximaの%f超幾何関数と違って,
関数hypergeometricは整理関数です;
hypergeometricは複素倍精度と多倍長浮動小数点評価もサポートします。
ガウスの超幾何関数、すなわち、\(p = 2\)かつ\(q = 1\)、
に関しては、
単位円の外側の浮動小数点評価はサポートされていますが、
一般にはサポートされていません。
オプション変数expand_hypergeometricがtrue(デフォルトはfalse)で、
独立変数a1からapの1つが負の整数の時(多項式の場合)、
hypergeometricは展開された多項式を返します。
例:
(%i1) hypergeometric([],[],x); (%o1) %e^x
expand_hypergeometricがtrueの時、多項式の場合は自動的に展開されます:
(%i2) hypergeometric([-3],[7],x); (%o2) hypergeometric([-3],[7],x) (%i3) hypergeometric([-3],[7],x), expand_hypergeometric : true; (%o3) -x^3/504+3*x^2/56-3*x/7+1
倍精度と多倍長浮動小数点評価の両方がサポートされています:
(%i4) hypergeometric([5.1],[7.1 + %i],0.42);
(%o4) 1.346250786375334 - 0.0559061414208204 %i
(%i5) hypergeometric([5,6],[8], 5.7 - %i);
(%o5) .00737582400977495 - 0.001049813688578674 %i
(%i6) hypergeometric([5,6],[8], 5.7b0 - %i), fpprec : 30;
(%o6) 7.37582400977494674506442010824b-3
- 1.04981368857867315858055393376b-3 %i
放物円筒関数はAbramowitz and Stegun, Handbook of Mathematical Functions, 19章で定義されています。
Maximaは、これらの関数の非常に限られた知識を持っています。
それらは、関数hgfredから返されることができます。
放物円筒関数parabolic_cylinder_d(v,z). (A&s 19.3.1)
exprの変数tに関するラプラス変換を計算します。
以下の特殊関数はspecintで扱われます:
不完全ベータ関数、誤差関数
(誤差関数erfiではないです。erfiは例えば、erfに変換することは簡単です。)、
指数積分、(ベッセル関数の積を含む)ベッセル関数、ハンケル関数、エルミートおよびラーゲル多項式。
更に、specintは、超幾何関数%f[p,q]([],[],z)、
第一種Whittaker関数%m[u,k](z)第二種Whittaker関数%w[u,k](z)を
扱うことができます。
結果は、特殊関数の項になるかもしれませんし、未整理の超幾何関数を含むかもしれません。
laplaceがラプラス変換を見つけることに失敗した時、
specintがコールされます。
laplaceはラプラス変換に関するもっと一般的な規則を知っているので、
specintではなくlaplaceを使うのが望ましいです。
demo(hypgeo)は、specintによって計算されたラプラス変換のいくつかの例を表示します。
例:
(%i1) assume (p > 0, a > 0)$
(%i2) specint (t^(1/2) * exp(-a*t/4) * exp(-p*t), t);
sqrt(%pi)
(%o2) ------------
a 3/2
2 (p + -)
4
(%i3) specint (t^(1/2) * bessel_j(1, 2 * a^(1/2) * t^(1/2))
* exp(-p*t), t);
- a/p
sqrt(a) %e
(%o3) ---------------
2
p
指数積分の例:
(%i4) assume(s>0,a>0,s-a>0)$
(%i5) ratsimp(specint(%e^(a*t)
*(log(a)+expintegral_e1(a*t))*%e^(-s*t),t));
log(s)
(%o5) ------
s - a
(%i6) logarc:true$
(%i7) gamma_expand:true$
(%i8) radcan(specint((cos(t)*expintegral_si(t)
-sin(t)*expintegral_ci(t))*%e^(-s*t),t));
log(s)
(%o8) ------
2
s + 1
(%i9) ratsimp(specint((2*t*log(a)+2/a*sin(a*t)
-2*t*expintegral_ci(a*t))*%e^(-s*t),t));
2 2
log(s + a )
(%o9) ------------
2
s
gamma_incompleteの展開を使った時と、
expintegral_e1への表現の変形を使った時のの結果:
(%i10) assume(s>0)$
(%i11) specint(1/sqrt(%pi*t)*unit_step(t-k)*%e^(-s*t),t);
1
gamma_incomplete(-, k s)
2
(%o11) ------------------------
sqrt(%pi) sqrt(s)
(%i12) gamma_expand:true$
(%i13) specint(1/sqrt(%pi*t)*unit_step(t-k)*%e^(-s*t),t);
erfc(sqrt(k) sqrt(s))
(%o13) ---------------------
sqrt(s)
(%i14) expintrep:expintegral_e1$
(%i15) ratsimp(specint(1/(t+a)^2*%e^(-s*t),t));
a s
a s %e expintegral_e1(a s) - 1
(%o15) - ---------------------------------
a
一般化超幾何関数を他のより簡単な形式に整理します。 aは分子パラメータのリストで、bは分母パラメータのリストです。
もしhgfredが超幾何関数を整理できなければ、
形式%f[p,q]([a], [b], x)の式を返します。
ここでpはaの中の要素の数で、
qはbの中の要素の数です。
これは、通常のpFq一般化超幾何関数です。
(%i1) assume(not(equal(z,0)));
(%o1) [notequal(z, 0)]
(%i2) hgfred([v+1/2],[2*v+1],2*%i*z);
v/2 %i z
4 bessel_j(v, z) gamma(v + 1) %e
(%o2) ---------------------------------------
v
z
(%i3) hgfred([1,1],[2],z);
log(1 - z)
(%o3) - ----------
z
(%i4) hgfred([a,a+1/2],[3/2],z^2);
1 - 2 a 1 - 2 a
(z + 1) - (1 - z)
(%o4) -------------------------------
2 (1 - 2 a) z
以下の例が示すように、orthopolyもロードすることは有益なことがあります。 Lは、一般化ラーゲル多項式であることに注意してください。
(%i5) load("orthopoly")$
(%i6) hgfred([-2],[a],z);
(a - 1)
2 L (z)
2
(%o6) -------------
a (a + 1)
(%i7) ev(%);
2
z 2 z
(%o7) --------- - --- + 1
a (a + 1) a
ランバートW関数W(z)の主枝、
z = W(z) * exp(W(z))の解。
プラズマ分散関数
nzeta(z) = %i*sqrt(%pi)*exp(-z^2)*(1-erf(-%i*z))
realpart(nzeta(z))を返します。
imagpart(nzeta(z))を返します。