BellY
予備知識
- BellYは,指定された変数
または行数が
である行列
に対する部分Bell多項式
,または任意の行列
に対する一般化Bell多項式
を返す.ここで,
であり,この総和は,
が
および
を満たす非負整数列すべてついて取られる.これによって部分Bell多項式
は,
個のオブジェクトを
個の空でない部分集合
へと分割する方法を,
という形の項の総和を通して符号化する.これは,
通りの方法で,
個のオブジェクトをそれぞれ
,
個の部分集合,
,
個の部分集合等々に分割する場合を表す(このとき,
かつ
であることが必要である).例えば,
は,6個のオブジェクトを2つの空でない部分集合に分ける際に,それぞれ3個のオブジェクトから成る2つの部分集合で構成される分割が10通り,2個と4個のオブジェクトから成る部分集合で構成される分割が15通り,1個と5個のオブジェクトから成る部分集合で構成される分割が6通り存在することを示す. - Faà di Brunoの公式は,微分法則の連鎖率を一般化し,2つの関数の合成関数の

階微分を部分Bell多項式で表現するものであり,その明示的な形は
で与えられる.さらに,この連鎖率は,
階微分について
個の関数の合成に対しても一般化される.この場合,一般化Bell多項式
を用いる.これは,関係式
を満たす唯一の関数として定義される(例えば,
は通常の連鎖率による).さらに,一般化された部分Bell多項式
は,一般化Bell多項式
を用いて
と定義される.したがって,拡張されたFaà di Brunoの公式
が成り立つ. - いくつかの著名な整数列は,部分Bell多項式
を特定の引数に適用することによって得られる.StirlingS1およびStirlingS2で与えられる
および
を,それぞれ第1種および第2種のスターリング数を表すものとすると,
および
が得られる.さらに,
および
を,それぞれ第
Bell多項式および第 
Bell数を表し,これらはいずれもBellBで与えられるものとするならば,
および
が得られる.
例題
すべて開く すべて閉じる例 (3)
BellY[4, 2, {Subscript[x, 1], Subscript[x, 2], Subscript[x, 3]}]BellY[4, 2, {{Subscript[x, 1], Subscript[x, 2], Subscript[x, 3]}, {Subscript[y, 1], Subscript[y, 2], Subscript[y, 3]}}]BellY[{{Subscript[x, 1], Subscript[x, 2], Subscript[x, 3]}, {Subscript[y, 1], Subscript[y, 2], Subscript[y, 3]}, {Subscript[z, 1], Subscript[z, 2], Subscript[z, 3]}}]アプリケーション (13)
微積分 (3)
一般化された連鎖規則では,BellYを使って
の
次導関数を直接計算することができる,つまり
である.記号的な
と
で,低次の
についてこれを確かめる:
GeneralizedChainRule[{f_, g_}, {x_, n_}] :=
Sum[Derivative[k][f][g[x]]BellY[n, k, Table[D[g[x], {x, i}], {i, n - k + 1}]], {k, n}]GeneralizedChainRule[{f, g}, {x, 1}]D[f[g[x]], x]
のときは,ファー・ディ・ブルーノの公式と呼ばれるものになる:
D[f[g[x]], {x, 2}]GeneralizedChainRule[{f, g}, {x, 2}]D[f[g[x]], {x, 3}]GeneralizedChainRule[{f, g}, {x, 3}]この式から,
では,導関数が,
で多項式である係数を持ち,線形であることが直接見て取れる.ただし,
は
の多項式係数である.ベル係数をパネルにして,この関係が明白となるタイプセットの規則を定義する:
pnl[e_Plus, col_] := Panel[Row[{"(", e, ")"}], Background -> col];
pnl[e_, col_] := Panel[e, Background -> col];
ChainRuleTypeset[{f_, g_}, {x_, n_}] := Row[Table[Row[{pnl[BellY[n, k, Table[D[g[x], {x, i}], {i, n - k + 1}]], StandardBlue], pnl[Derivative[k][f][g[x]], StandardOrange]}, " "], {k, n}], "+"]ChainRuleTypeset[{f, g}, {x, 2}]ChainRuleTypeset[{f, g}, {x, 3}]ChainRuleTypeset[{f, g}, {x, 4}]ChainRuleTypeset[{f, g}, {x, 5}]BellY多項式を使ってGamma関数の四次導関数を計算する:
Gamma[n]BellY[Table[{1, PolyGamma[k - 1, n]}, {k, 4}]]//ExpandD[Gamma[n], {n, 4}]n = 4;
(x/C[1]) + Underoverscript[∑, j = 2, n](x^j/C[1]^jj!)BellY[Table[{Pochhammer[j, k - 1], -(k - 1)! (C[k]/C[1])}, {k, 2, j}]] + O[x]^n + 1//SimplifyInverseSeriesの結果と比較する:
InverseSeries[Underoverscript[∑, j = 1, n]C[j]x^j + O[x]^n + 1]//Simplify組合せ論 (6)
Table[BellY[n, k, Table[(-1)^jj!, {j, 0, n}]], {n, 0, 5}, {k, 0, n}]Table[StirlingS1[n, k], {n, 0, 5}, {k, 0, n}]Table[BellY[n, k, ConstantArray[1, n]], {n, 0, 5}, {k, 0, n}]Table[StirlingS2[n, k], {n, 0, 5}, {k, 0, n}]Table[BellY[ConstantArray[1, {n, 2}]], {n, 10}]Table[BellB[n], {n, 10}]一般化されたベル多項式を使ってベル多項式BellB[n,z]を計算する:
Table[BellY[ConstantArray[{1, z}, n]], {n, 5}]Table[BellB[n, z], {n, 5}]一般化されたベル多項式を使ってカタラン(Catalan)数を計算する:
Table[BellY[Transpose[{1 / Range[n, 1, -1]!, Range[n]!}]], {n, 10}]Table[CatalanNumber[n], {n, 10}]Table[BellY[ConstantArray[1, {n, n}]], {n, 1, 10}]sm = Table[StirlingS2[s, t], {s, 10}, {t, 10}];Table[MatrixPower[sm, n][[n, 1]], {n, 10}]n = 5;
vars = Table[Subscript[x, k], {k, n}];
BellY[Transpose[{ConstantArray[(1/n!), n], Range[0, n - 1]!vars}]]CycleIndexPolynomialの結果と比較する:
CycleIndexPolynomial[SymmetricGroup[n], vars]BellY[Transpose[{Table[(1 + (-1)^n + k/n!), {k, n}], Range[0, n - 1]!vars}]]CycleIndexPolynomialの結果と比較する:
CycleIndexPolynomial[AlternatingGroup[n], vars]ベルの部分多項式からの6つの要素の集合を2つの部分集合に分割する方法がいくつあるか求める:
BellY[6, 2, Array[x, 6]]AdjoinElement[s_, el_] := Table[Sequence@@Join[Table[Insert[o, el, {k, -1}], {k, Length[o]}], {Insert[o, {el}, -1]}], {o, s}]SetPartitions[{}] := {{}};
SetPartitions[s_List] := AdjoinElement[SetPartitions[Most[s]], Last[s]]6つの要素を持つ集合を3要素ずつの2つの部分集合に分割する方法は10通りある:
Count[SetPartitions[Range[6]], x_ /; Sort[Length /@ x] == {3, 3}]6要素を持つ集合を4要素と2要素の2つの部分集合に分割する方法は15通りある:
Count[SetPartitions[Range[6]], x_ /; Sort[Length /@ x] == {2, 4}]6要素を持つ集合を5要素と1要素の2つの部分集合に分割する方法は6通りある:
Count[SetPartitions[Range[6]], x_ /; Sort[Length /@ x] == {1, 5}]その他のアプリケーション (4)
bellComplete[vars__] := With[{tmp = {vars}}, BellY[Transpose[{ConstantArray[1, Length[tmp]], tmp}]]]{bellComplete[x], bellComplete[x, y], bellComplete[x, y, z], bellComplete[x, y, z, w]}//ColumnBellY[Table[{1, Cumulant[k]}, {k, 3}]]MomentConvert[Moment[3], "Cumulant"]BellY[Table[{(-1)^k - 1(k - 1)!, Moment[k]}, {k, 3}]]MomentConvert[Cumulant[3], "Moment"]p[n_Integer ? NonNegative, x_] := Sum[BellY[n, k, Array[a, n]]x ^ k, {k, 0, n}]Table[p[n, x + y] == Sum[Binomial[n, k]p[k, x]p[n - k, y], {k, 0, n}]//Simplify, {n, 0, 10}]BellB[n,z]を特別なケースとして回復する:
Table[p[n, z], {n, 5}] /. a[_] -> 1Table[BellB[n, z], {n, 5}]n
番目の初等対称多項式はBellYによって定義できる:
ee[n_, vars_] := BellY[Table[{(1/n!), (-1)^k - 1(k - 1)!Total[vars^k]}, {k, n}]]変数が5つのケースについてSymmetricPolynomialと比較する:
Table[ee[k, {x, y, z, u, v}] == SymmetricPolynomial[k, {x, y, z, u, v}]//Simplify, {k, 5}]特性と関係 (6)
With[{n = 7, k = 2},
Sum[n!Apply[Times, ((Array[, n]/Range[n]!))^m(1/m!)], {m, FrobeniusSolve[Range[n], n]⋂FrobeniusSolve[ConstantArray[1, n], k]}]]BellYと比較する:
With[{n = 7, k = 2}, BellY[n, k, Array[, n]]]Cvijovićの反復和の式を使って部分ベル多項式を計算する:
With[{n = 7, k = 2},
Sum[(Binomial[n, i[1]]/k!)[n - i[1]][i[k - 1]]Underoverscript[∏, r = 1, k - 2]Binomial[i[r], i[r + 1]][i[r] - i[r + 1]], Evaluate[Sequence@@Prepend[Table[{i[r + 1], k - r - 1, i[r] - 1}, {r, k - 2}], {i[1], k - 1, n - 1}]]]]BellYと比較する:
With[{n = 7, k = 2}, BellY[n, k, Array[, n]]]n = 5;
Sum[C[k]BellY[n, k, Table[[k], {k, n}]], {k, n}]BellY[Table[{C[k], [k]}, {k, n}]]%% == %//Simplifyn = 4;k = 3;
mat = (| | |
| ------- | ------- |
| [1, 1] | [1, 2] |
| [2, 1] | [2, 2] |
| [3, 1] | [3, 2] |
| [4, 1] | [4, 2] |);
BellY[n, k, mat]これは,単にベクトルを列として先頭に加えることで一般化されたベル多項式によって計算することができる:
BellY[Join[Transpose[{UnitVector[n, k]}], mat, 2]]行列の一般化された部分ベル多項式の線形結合は,行列の係数を列として先頭に加えることで一般化されたベル多項式として表現できる:
Sum[C[k]BellY[n, k, mat], {k, n}] == BellY[Join[Transpose[{Table[C[k], {k, n}]}], mat, 2]]//SimplifySum[Derivative[k][f][g[z]] BellY[3, k, {Derivative[1][g][z], Derivative[2][g][z], Derivative[3][g][z]}], {k, 1, 3}]BellY[{{Derivative[1][f][g[z]], Derivative[1][g][z]}, {Derivative[2][f][g[z]], Derivative[2][g][z]}, {Derivative[3][f][g[z]], Derivative[3][g][z]}}]D[f[g[z]], {z, 3}]n = 5;
yk = Table[BellY[Table[{1, [j]}, {j, k}]], {k, n}]Table[BellY[Table[{(-1)^j - 1(j - 1)!, Subscript[yk, [[j]]]}, {j, k}]], {k, n}]//Simplifyおもしろい例題 (2)
一般化されたベル多項式を用いてベルヌーイ(Bernoulli)数を生成する:
SeriesCoefficient[(Exp[t] - 1/t), {t, 0, r}, Assumptions -> r ≥ 0]r!SeriesCoefficient[u^-1, {u, 1, r}, Assumptions -> r ≥ 0]r!Table[BellY[Table[{%, %%}, {r, n}]], {n, 20}]Table[BernoulliB[n], {n, 20}]SeriesCoefficient[Cosh[t], {t, 0, r}, Assumptions -> r ≥ 0]r!//SimplifySeriesCoefficient[u^-1, {u, 1, r}, Assumptions -> r ≥ 0]r!Table[BellY[Table[{%, %%}, {r, n}]], {n, 20}]Table[EulerE[n], {n, 20}]関連項目
関連するガイド
-
▪
- 組合せ関数
テキスト
Wolfram Research (2010), BellY, Wolfram言語関数, https://reference.wolfram.com/language/ref/BellY.html.
CMS
Wolfram Language. 2010. "BellY." Wolfram Language & System Documentation Center. Wolfram Research. https://reference.wolfram.com/language/ref/BellY.html.
APA
Wolfram Language. (2010). BellY. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/BellY.html
BibTeX
@misc{reference.wolfram_2026_belly, author="Wolfram Research", title="{BellY}", year="2010", howpublished="\url{https://reference.wolfram.com/language/ref/BellY.html}", note=[Accessed: 16-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_belly, organization={Wolfram Research}, title={BellY}, year={2010}, url={https://reference.wolfram.com/language/ref/BellY.html}, note=[Accessed: 16-June-2026]}
![D_t^nf_1(f_2(...f_m(t)...))⩵TemplateBox[{{{{{{f, _, 1}, '}, {(, {{f, _, 2}, (, {..., , {{f, _, m}, (, t, )}, ...}, )}, )}}, , {{{f, _, 2}, '}, {(, {{f, _, 3}, (, {..., , {{f, _, m}, (, t, )}, ...}, )}, )}}, , ..., , {{{f, _, m}, '}, {(, t, )}}}, ; , {{{{f, _, 1}, ''}, {(, {{f, _, 2}, (, {..., , {{f, _, m}, (, t, )}, ...}, )}, )}}, , {{{f, _, 2}, ''}, {(, {{f, _, 3}, {(, {..., , {{f, _, m}, (, t, )}, ...}, )}}, )}}, , ..., , {{{f, _, m}, ''}, {(, t, )}}}, ; , {|, , |, , ..., , |}, ; , {{{{f, _, 1}, ^, {(, {(, n, )}, )}}, (, {{f, _, 2}, (, {..., , {{f, _, m}, (, t, )}, ...}, )}, )}, , {{{f, _, 2}, ^, {(, {(, n, )}, )}}, (, {{f, _, 3}, (, {..., , {{f, _, m}, (, t, )}, ...}, )}, )}, , ..., , {{{f, _, m}, ^, {(, {(, n, )}, )}}, (, t, )}}}}, BellY1] D_t^nf_1(f_2(...f_m(t)...))⩵TemplateBox[{{{{{{f, _, 1}, '}, {(, {{f, _, 2}, (, {..., , {{f, _, m}, (, t, )}, ...}, )}, )}}, , {{{f, _, 2}, '}, {(, {{f, _, 3}, (, {..., , {{f, _, m}, (, t, )}, ...}, )}, )}}, , ..., , {{{f, _, m}, '}, {(, t, )}}}, ; , {{{{f, _, 1}, ''}, {(, {{f, _, 2}, (, {..., , {{f, _, m}, (, t, )}, ...}, )}, )}}, , {{{f, _, 2}, ''}, {(, {{f, _, 3}, {(, {..., , {{f, _, m}, (, t, )}, ...}, )}}, )}}, , ..., , {{{f, _, m}, ''}, {(, t, )}}}, ; , {|, , |, , ..., , |}, ; , {{{{f, _, 1}, ^, {(, {(, n, )}, )}}, (, {{f, _, 2}, (, {..., , {{f, _, m}, (, t, )}, ...}, )}, )}, , {{{f, _, 2}, ^, {(, {(, n, )}, )}}, (, {{f, _, 3}, (, {..., , {{f, _, m}, (, t, )}, ...}, )}, )}, , ..., , {{{f, _, m}, ^, {(, {(, n, )}, )}}, (, t, )}}}}, BellY1]](Files/BellY.ja/10.png)