Next: Elliptic Functions, Previous: Polynomials [Contents][Index]
Next: Bessel Functions, Previous: Special Functions, Up: Special Functions [Contents][Index]
特殊関数表記は以下の通りです:
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関数
Next: Airy Functions, Previous: Introduction to Special Functions, Up: Special Functions [Contents][Index]
次数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.
Next: Gamma and factorial Functions, Previous: Bessel Functions, Up: Special Functions [Contents][Index]
エアリー関数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
を参照してください。
Next: Exponential Integrals, Previous: Airy Functions, Up: Special Functions [Contents][Index]
ガンマ関数と、関連したベータ、プサイ、不完全ガンマ関数は 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
Next: Error Function, Previous: Gamma and factorial Functions, Up: Special Functions [Contents][Index]
指数積分と、関連した関数は、 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の項で展開します。
Next: Struve Functions, Previous: Exponential Integrals, Up: Special Functions [Contents][Index]
誤差関数と、関連した関数は、 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に関して超幾何表現への変換を可能にします。
Next: Hypergeometric Functions, Previous: Error Function, Up: Special Functions [Contents][Index]
シュトルーベ関数は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)
Next: Parabolic Cylinder Functions, Previous: Struve Functions, Up: Special Functions [Contents][Index]
超幾何関数は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
Next: Functions and Variables for Special Functions, Previous: Hypergeometric Functions, Up: Special Functions [Contents][Index]
放物円筒関数はAbramowitz and Stegun, Handbook of Mathematical Functions, 19章で定義されています。
Maximaは、これらの関数の非常に限られた知識を持っています。
それらは、関数hgfred
から返されることができます。
放物円筒関数parabolic_cylinder_d(v,z)
. (A&s 19.3.1)
Previous: Parabolic Cylinder Functions, Up: Special Functions [Contents][Index]
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))
を返します。
Next: Elliptic Functions, Previous: Polynomials [Contents][Index]