ドキュメンテーション

最新のリリースでは、このページがまだ翻訳されていません。 このページの最新版は英語でご覧になれます。

hypergeom

説明

hypergeom(a,b,z)一般超幾何関数を表しています。

数値引数およびシンボリック引数に対する超幾何関数

入力が浮動小数点またはシンボリックであるかに応じて、hypergeom は浮動小数点解またはシンボリック解の結果を返します。

次の数値について超幾何関数を計算します。これらの数値は浮動小数点であるため、hypergeom は浮動小数点の結果を返します。

A = [hypergeom([1 2], 2.5, 2),...
     hypergeom(1/3, [2 3], pi),...
     hypergeom([1 1/2], 1/3, 3*i)]
A =
  -1.2174 - 0.8330i   1.2091 + 0.0000i  -0.2028 + 0.2405i

sym を使用して、少なくとも 1 つの入力をシンボリック型に変換することにより、シンボリック厳密解の結果を返します。ほとんどのシンボリックな (厳密な) 入力について、hypergeom は未解決のシンボリックな呼び出しを返します。

symA = [hypergeom([1 2], 2.5, sym(2)),...
        hypergeom(1/3, [2 3], sym(pi)),...
        hypergeom([1 1/2], sym(1/3), 3*i)]
symA =
[ hypergeom([1, 2], 5/2, 2), hypergeom(1/3, [2, 3], pi), hypergeom([1/2, 1], 1/3, 3i)]

vpa を使用して、シンボリックな結果を高精度浮動小数点数に変換します。

vpa(symA)
ans =
[ - 1.2174189301051728850455150601879 - 0.83304055090469367131547768563638i,...
 1.2090631887094273193917339575087,...
 - 0.20275169745081962937527290365593 + 0.24050134226872040357481317881983i]

超幾何関数の特別な値

hypergeom は、特定の入力値に対して特別な値を返すことを示します。

syms a b c d x
hypergeom([], [], x)
ans =
exp(x)
hypergeom([a b c d], [a b c d], x)
ans =
exp(x)
hypergeom(a, [], x)
ans =
1/(1 - x)^a

0 のとき超幾何関数は常に 1 であることを示します。

syms a b c d
hypergeom([a b], [c d], 0)
ans =
1

最初の 2 つの引数内の同一パラメーターが相殺された後、上部パラメーターのリストに 0 が含まれている場合、結果として得られる超幾何関数は値 1 で一定です。詳細は、アルゴリズムを参照してください。

hypergeom([0 0 2 3], [a 0 4], x)
ans =
1

最初の 2 つの引数内の同一パラメーターが相殺された後、上部パラメーターに下部パラメーターの中で最も大きな負の整数よりも大きい負の整数が含まれている場合、超幾何関数は多項式です。

hypergeom([-4 -2 3], [-3 1 4], x)
ans =
(3*x^2)/5 - 2*x + 1

超幾何関数は、特定の入力値で他の特殊関数に簡約されます。

hypergeom([1], [a], x)
hypergeom([a], [a, b], x)
ans =
(exp(x/2)*whittakerM(1 - a/2, a/2 - 1/2, -x))/(-x)^(a/2)
 
ans =
 x^(1/2 - b/2)*gamma(b)*besseli(b - 1, 2*x^(1/2))

超幾何関数を含む式の取り扱い

difftaylor など、多くのシンボリック関数は hypergeom を含む式を処理します。

次に示す超幾何関数を含む式を微分します。

syms a b c d x
diff(1/x*hypergeom([a b],[c d],x), x)
ans =
(a*b*hypergeom([a + 1, b + 1], [c + 1, d + 1], x))/(c*d*x)...
 - hypergeom([a, b], [c, d], x)/x^2

次の超幾何関数のテイラー級数を計算します。

taylor(hypergeom([1 2],3,x), x)
ans =
(2*x^5)/7 + x^4/3 + (2*x^3)/5 + x^2/2 + (2*x)/3 + 1

入力引数

すべて折りたたむ

超幾何関数の上部パラメーター。数値、変数、シンボリック式、シンボリック関数またはベクトルとして指定します。

超幾何関数の下部パラメーター。数値、変数、シンボリック式、シンボリック関数またはベクトルとして指定します。

入力。数値、ベクトル、行列、または配列、あるいはシンボリックな数値、変数、配列、関数、または式で指定されます。

詳細

すべて折りたたむ

一般超幾何関数

一般超幾何関数の階数 p、q は次のように定義されます。

Fpq(a;b;z)=Fpq(a1,,aj,,ap;b1,,bk,,bq;z)=n=0((a1)n(aj)n(ap)n(b1)n(bk)n(bq)n)(znn!).

ここで a = [a1,a2,...,ap] および b = [b1,b2,...,bq] は、長さがそれぞれ p と q のベクトルです。

(a)k および (b)k はポッホハマー記号です。

a および b が空のベクトルの場合、hypergeom は次のように定義されます。

F0q(;b;z)=k=01(b1)k(b2)k(bq)k(zkk!)Fp0(a;;z)=k=0(a1)k(a2)k(ap)k(zkk!)F00(;;z)=k=0(zkk!)=ez.

ポッホハマー記号

(x)n=Γ(x+n)Γ(x).

n が正の整数の場合、次のようになります。(x)n = x(x + 1)...(x + n - 1)

アルゴリズム

超幾何関数は次のとおりです。

Fpq(a;b;z)=Fpq(a1,,aj,,ap;b1,,bk,,bq;z)=n=0((a1)n(aj)n(ap)n(b1)n(bk)n(bq)n)(znn!).

  • 超幾何関数には、次のような収束の判断基準があります。

    • p ≤ q および |z| < ∞ であれば収束します。

    • p = q + 1 および |z| < 1 であれば収束します。|z| >= 1 の場合、この級数は発散し、解析接続によって定義されます。

    • p > q + 1 および z ≠ 0 であれば収束します。ここで、この級数は pFq(a;b;z)z = 0 近傍での漸近展開により定義されます。分枝切断は正の実数軸です。

  • aj のいずれかが非負整数の場合、関数は多項式で、超幾何多項式と呼ばれます。

  • 次の場合、関数は未定義です。

    • bk > aj を満たす任意の bk が非負整数の場合。ここで、ゼロ除算が発生するため aj も非負整数

    • 任意の bk が非負整数、かつ aj がいずれも非負整数ではない場合

  • 上部パラメーターと下部パラメーターの値が等しく相殺されるような場合、関数は低次元化されます。上部パラメーターと下部パラメーターの r の値が等しい場合 (つまり、a = [a1,…,ap - r, c1,…,cr]b = [b1,…,bq - r, c1,…,cr])、pFq(a;b;z) の次元 (p, q)(p - r, q - r) に低次元化されます。

    Fpq(a1,,apr,c1,,cr;b1,,bqr,c1,,cr;z)=Fprqr(a1,,apr;b1,,bqr;z)

    この規則は、ci のいずれかがゼロまたは負の整数の場合にも適用されます [2]。

  • pFq(a;b;z) は対称です。つまり、a における次元 a1, a2, … または bにおける次元 b1, b2, … に依存しません。

  • U(z)=Fpq(a;b;z) は z の微分方程式を満たします。

    [δ(δ+b1)z(δ+a)]U(z)=0,  δ=zz.

    ここで、(δ + a) は次を表します。

    i=1p(δ+ai).

    また、(δ + b) は次を表します。

    j=1q(δ+bj).

    したがって、この微分方程式の階数は max(p, q + 1) で、超幾何関数は複数ある解の 1 つでしかありません。p < q + 1 の場合、この微分方程式は z = 0 において確定特異点をもち、z = ∞ に不確定特異点をもちます。p = q + 1 の場合、点 z = 0z = 1、および z = ∞ は確定特異点であり、超幾何級数の収束特性を示しています。

  • 超幾何関数のこれらのパラメーターは特別な値をもちます。

    • pFp(a;a;z) = 0F0(;;z) = ez

    • pFq(a;b;z) = 1 (上部パラメーター a のリストに下部パラメーター b のリストよりも多くの 0 が含まれている場合)

    • pFq(a;b;0) = 1.

参照

[1] Oberhettinger, F. “Hypergeometric Functions.” Handbook of Mathematical Functions with Formulas, Graphs, and Mathematical Tables. (M. Abramowitz and I. A. Stegun, eds.). New York: Dover, 1972.

[2] Luke, Y.L. "The Special Functions and Their Approximations", Vol. 1, Academic Press, New York, 1969.

[3] Prudnikov, A.P., Yu.A. Brychkov, and O.I. Marichev, "Integrals and Series", Vol. 3: More Special Functions, Gordon and Breach, 1990.

R2006a より前に導入