BellY
背景
- BellY 返回部分贝尔多项式
,其变量为
,或者给定矩阵
的部分贝尔多项式,它有
行,或广义贝尔多项式
,适用于任意矩阵
. 这里,
,其中求和遍历所有满足条件的序列
,它们是满足
且
的非负整数序列. 由此,部分贝尔多项式
能够表征将一个含有 
个对象的集合如何划分为
个非空子集的所有可能方式
,其通过对形如 
的项进行求和来实现,其中每一种表示有
种方式将含有
个对象的集合划分为
个大小为
的子集,
个大小为
的子集,依此类推(故
且
是必须满足的条件). 例如,
表明当把一个 6 个对象的集合划分为 2 个非空子集时,存在 10 种划分方式形成两个大小为 3 的子集,15 种划分方式形成一个大小为 2 的子集和一个大小为 4 的子集,以及 6 种划分形成一个大小为 1 的子集和一个大小为 5 的子集. - 用于推广微分链式法则的 Faà di Bruno 公式,通过部分贝尔多项式将两函数复合的

阶导数表述为:
. 该链式法则可以进一步推广至
个函数复合的情形,此时需借助广义贝尔多项式
,其定义为满足以下条件的唯一函数:
(例如,
就是通过通常的链式法则得到的). 广义偏贝尔多项式
可以通过广义贝尔多项式
来定义:
因此,Faà di Bruno 公式的广义形式可写为:
成立. - 一些著名的整数数列可以通过将部分贝尔多项式
应用于特定的参数而得到. 设
和
分别表示第一类及第二类斯特林数,其由 StirlingS1 与 StirlingS2 给出,则有
与
. 进一步地,设
和
分别表示第 
个贝尔多项式和第 
个贝尔数,它们由 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 函数的 4 阶导数:
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//Simplify与 InverseSeries 的结果比较:
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}]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 个元素的集合分成两个子集的方法数量:
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]]有 10 种方法可以将一个包含 6 个元素的集合分成两个 3+3 个元素的子集:
Count[SetPartitions[Range[6]], x_ /; Sort[Length /@ x] == {3, 3}]有 15 种方法可以将一个包含 6 个元素的集合分成两个 4+2 个元素的子集:
Count[SetPartitions[Range[6]], x_ /; Sort[Length /@ x] == {2, 4}]有 6 种方法可以将一个包含 6 个元素的集合分成两个 5+1 个元素的子集:
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}]]在五个变量的情况下,与 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]]]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)
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 语言. 2010. "BellY." Wolfram 语言与系统参考资料中心. Wolfram Research. https://reference.wolfram.com/language/ref/BellY.html.
APA
Wolfram 语言. (2010). BellY. Wolfram 语言与系统参考资料中心. 追溯自 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: 17-August-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: 17-August-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.zh/10.png)