前言
据说这个东西是 19~20 初世纪数学研究的重大成果与主要研究方向。但是很可惜,由于世界形势的变化,以德国为中心的的超几何函数、椭圆函数研究开始没落于集中于美国、苏联的数学研究飞向。
第一章
定义超几何函数
F(a1,a2…an;b1,b2…bm;z)=∑k≥0a¯¯¯k1…a¯¯¯knzkb¯¯¯k1…b¯¯¯knk!
其中 bi 不为非正的整数。
举出若干简单例子:
F(1;1;z)=ez,F(1,1;1;z)=11−z
F(a,1;1;z)=∑k(a+k−1k)=1(1−z)a
定义高斯超几何函数:
F(a,b;c;z)=∑k≥0a¯¯¯kb¯¯¯kzkc¯¯¯kk!
一般的形式多少有点吓人。现在我们考察如何把一个函数/和式变成超几何形式:
考虑
F=∑k≥0tk,tk=a¯¯¯k1…a¯¯¯knzkb¯¯¯k1…b¯¯¯knk!
tk+1tk=(k+a1)…(k+an)z(k+b1)…(k+bm)(k+1)
同时 t0=1。不为一的话在展开式外面乘上应该的 t0 即可。
来试试手:
∑k≤n(r+kk)=(r+n+1n)
使 k 最小值为 0,令 k=n−k。
tk=(r+n−k)!r!(n−k)!,tk+1tk=n−kr+n−k=(k+1)(k−n)(1)(k−r−n)(k+1)
=F(1,−n;−n−r;1)
∴F(1,−n;−n−r;1)=r+n+1r+1
根据范德蒙德卷积,有:
∑k(rk)(sn−k)=(r+sn)
改写为超几何形式有:
(sn)F(−r,−n;s−n+1;1)=(r+sn)
这时,我们发现可以改写 r,s,n。
于是可以得到高斯超几何函数的 z=1 的通用形式:
F(a,b;c;1)=(c−a−b−1)!(c−1)!(c−a−1)!(c−b−1)!
这里 b 为非正的整数,或者 c>a+b(事实上是他们的实部),否则原级数不收敛。
而假设 b=−n,有一个看起来更好的形式:
F(a,−n;c;1)=(c−a)¯¯¯nc¯¯¯n
事实上,这个东西能秒掉一些组合数题。
这里还有一个库莫尔公式:
F(a,b;1−a+b;−1)=(b/2)!b!(b−a)b/2––––
在特殊情况有:
F(1−c−2n,−2n;c;−1)=(−1)n(2n)!(c−1)!n!(c+n−1)!,n∈Z+
还有一个可以由之前某道组合例题推广的Saalschütz公式:
F(a,b,−n;c,a+b−n−c+1;1)=(c−a)¯¯¯n(c−b)¯¯¯n(−c)¯¯¯n(c−a−b)¯¯¯n
在上述过程中,注意到我们不知道什么是负数的阶乘。所以有必要插入一段关于阶乘的探讨(关于 Γ 函数的更多东西可以移步 欧拉积分)。
对于阶乘函数,有两种本质等价的定义方法:
1z!=limn→+∞(n+zn)n−z
z!=Γ(z+1)=∫+∞0tze−tdt,Real(z)>−1
事实上,对于第二种,可以利用 z!=z(z−1)! 延拓其定义域。
有余元公式:
Γ(1−z)Γ(z)=(−z)!Γ(z)=πsinπz=πsinπz
不难发现,z! 为 0 当且仅当 z 为负整数。
第二章
反射定律:
1(1−z)aF(a,b;c;−z1−z)=F(a,c−b;c;z)
微分方法:(这里非正式的把算子运算写作乘号)
定义 D 算子为 ddz,ϑ 算子(vartheta)为 zddz=zD。
考察这几种算子的作用:
DF(a1,a2,…an;b1,b2…bm;z)=∑k≥1a¯¯¯k1…a¯¯¯knzk−1b¯¯¯k1…b¯¯¯km(k−1)!
=∑k≥0a¯¯¯¯¯¯¯¯¯¯k+11…a¯¯¯¯¯¯¯¯¯¯k+1nzkb¯¯¯¯¯¯¯¯¯¯k+11…b¯¯¯¯¯¯¯¯¯¯k+1mk!=∑k≥0a1(a1+1)¯¯¯k…an(an+1)¯¯¯kzkb1(b1+1)¯¯¯k…bm(bm+1)¯¯¯kk!
=a1…anb1…bmF(a1+1,…,an+1;b1+1…,bm+1;z)
那么 ϑ 也就很显然了。
ϑF=∑k≥0a¯¯¯k1…a¯¯¯knzkb¯¯¯k1…b¯¯¯km(k−1)!
但如果我们用 ai 去加上 ϑ,就会得到更好的结果(此处认为 ai 算子的作用是 aiF=ai×F)。
(ϑ+ai)=∑k≥0(k+ai)a¯¯¯k1…a¯¯¯knzkb¯¯¯k1…b¯¯¯kmk!=aiF(a1…ai+1…an;b1…bm;z)
同样不难发现
(ϑ+bi−1)=(bi−1)F(a1…an;b1…bi−1…,bm;z)
把他们都作用于每个上参数和下参数:
∏(ϑ+ai)×F=∏ai×F(a1+1,…,an+1;b1,…,bm;z)
∏(ϑ+bi−1)×F=∏(bi−1)×F(a1,…,an;b1−1,…,bm−1;z)
不难发现,上面一行是下面一行的导数。则有:
D∏(ϑ+bi−1)×F=∏(ϑ+ai)×F
ϑ∏(ϑ+bi−1)×F=z∏(ϑ+ai)×F
可以证明,满足某个特定这种微分方程的函数是唯一的,就是唯一的超几何函数。
同样可以证明,只有以下形式的微分方程对应 max(n,m+1)=N 的超几何函数。其中 n 是上参数个数,m 是下参数个数。
zN−1(βN−zαN)F(N)(z)+⋯+zN−1(β1−zα1)F′(z)−α0F(z)=0
那么可以证明高斯恒等式:
F(2a,2b;a+b+12;z)=F(a,b;a+b+12;4z(1−z))
第三章
只用奇技淫巧是不足以称得上成就的。我们有一个 Gosper 算法,可以求出 ∑f(k)δk,其中 f 是超几何项的一般函数类。
这里首先设 F(…;…;z)k 为 zk[zk]F。对于超几何项求和:
∑Fkδk=cF′k+C
Gosper 算法给出 c 和 F′ 的各项参数,或说明其不存在。这里 ′ 不是求导。
若 t(k+1)t(k) 是不恒为 0 的有理函数,我们就称 t(k) 为一个超几何项。
第一步:令
t(k+1)t(k)=p(k+1)p(k)q(k)r(k+1)
看起来很没道理。但是他们需要满足这样的条件:
r(k) 和 q(k) 的任意根的差不是正整数。
考虑构造。先令 p(k)=1。然后按照超几何函数来拆开他们:
q(k)=z∏(k+ai),r(k)=k∏(k+bi−1)
如果违反了条件,则有 q(k) 整除 (k+A),r(k) 整除 (k+B),且 A−B=d>0。
则令 q(k)(k+A−1)d−1–––––→q(k)。
此时 q(k+1)q(k) 变化了 k+Ak+B+1,是正确的。
第二步:
求超几何项 ΔT(k)=t(k)。
你知道吗?把大象塞进冰箱只需要三步
令 T(k)=r(k)s(k)t(k)p(k)
此时,
t(k)=T(k+1)−T(k)=r(k+1)s(k+1)t(k+1)p(k+1)−r(k)s(k)t(k)p(k)
注意到
t(k+1)p(k+1)=t(k)p(k)q(k)r(k+1)
则
t(k)=q(k)s(k+1)t(k)p(k)−r(k)s(k)t(k)(k)
那么
p(k)=q(k)s(k+1)−r(k)s(k)
假设 T 是超几何项,那么显然 s 是多项式的商;可以依据前面的条件进一步证明,s 就是多项式。
下试证明这个结论。
不妨设 s(k)=f(k)g(k),且 f,g 没有公共根。
若 g(k) 为常数,那么结论得证;否则,设 (k+β) 是 g(k) 的一因式,使得 N 最大。
其中N 为最大的,使 (k+β+N−1) 为 g(k) 因式的正整数。显然 N=1 时成立。
那么 g(−β)=g(1−N−β)=0。
将 p(k)=q(k)s(k+1)−r(k)s(k) 两边同时乘上 g(k)g(k+1),得到:
p(k)g(k)g(k+1)=q(k)f(k+1)g(k)−r(k)g(k+1)f(k)
令 k=−β,得到 r(−β)g(1−β)f(−β)=0。
注意到 f(−β)≠g(−β)=0,且 g(1−β)≠0,因为如果其为零 N 不满足最大性质。
故 r(−β)=0。
令 k=−β−N,得到 q(−β−N)f(1−β−N)g(−β−N)=0。
同样的,可知 q(−β−N)=0。注意到 −β−(−β−N)=N,为正整数。
则 r(k) 和 q(k) 存在差为 N 的根。不符合前设。
那么可以写出 s 的表达式:
s(k)=d∑i=0aiki
那么如何确定 d 呢?
改写 p(k)=q(k)s(k+1)−r(k)s(k) 为:
2p(k)=(q(k)−r(k))(s(k+1)+s(k))+(q(k)+r(k))(s(k+1)−s(k))
设 Q(k)=q(k)−r(k),R(k)=q(k)+r(k)。
容易发现,若 degQ≥degR,则 degs=degp−degQ。
如果 degQ<degR=d′,则 degQ=d′−1。
设 [kd′]R(k)=A,[kd′−1]Q(k)=B,[kd]s(k)=C。
则有 [kd+d′−1]右式=(BdC+2AC)。
如果 Bd+2A≠0,那么 degs=degp−degQ。
否则,d=−2AB。这两种可能都是合法的,但是第一种情况满足就不需要考虑第二种。
那么只需要带入 p(k)=q(k)s(k+1)−r(k)s(k) 若干个值,得到一个线性方程组,然后求出结果。
下面证明
∑(nk)δk
(其中 n 是非负整数)不存在封闭形式。
t(k)=(nk)=n!(n−k)!k!
那么 t(k+1)t(k)=n−kk+1
设 p(k)=1,q(k)=n−k,r(k)=k。
于是
T(k)=k(nk)s(k)n−k
有 Q(k)=n−2k,R(k)=n。
于是 degs=degp−degQ=−1。
显然,deg 的值域为 N,所以不能求出其封闭形式。
唯一略显遗憾的是,绝大部分题目的最后结果并不是一个封闭形式,所以在 OI 中应用并不广泛根本没用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通