闲话
好久没写闲话了。大家是不是都忘记我了?
大家好啊,我是[数据删除];今天来点大家[已编辑]想看的东西啊。
可能这个方法很古老,但是多个方法多条路(?)
推歌:愿望幽灵 by 不鱼p feat. 星尘Minus
浅谈如何用 50 多年前的学术界分析方法求二元生成函数的对角线
抄一点复变函数基础
复分析是研究 C 上的函数——即复变函数,特别是亚纯函数、复解析函数等函数——的理论。下文默认读者拥有高中级别的复数知识,或阅读过此 OI Wiki 页面。
(开)圆盘:一个以 z0 为圆心、r 为半径的开圆盘为集合 D(z0,r)={z:|z−z0|<r}。特别的,D(0,1) 被称为单位圆盘。
区域:S⊂C 是区域,当且仅当其是一个非空的道路连通开集,即 ∀z∈S,∃r>0,D(z,r)⊂S,且任意 S 内两点都可以被有限条完全包含在 S 内的线段首尾连接地相连。
边界:对区域 S,记其边界为 ∂S。z0 在 S 的边界 ∂S 上(或称 z0 是 S 的边界点),当且仅当 z0 满足 ∀r>0,D(z0,r)∩S≠∅ 且 D(z0,r)∩(C∖S)≠∅。
曲线:一条曲线 γ 形如 z=z(t),t∈[a,b]。若 z(a)=z(b) 那么其是闭曲线。若 ∀t1∈(a,b),t2∈[a,b],t1≠t2→z(t1)≠z(t2),那么曲线是简单的。
有限区域的边界 ∂D:z=z(t),t∈[a,b] 是一条简单闭曲线。规定其方向是逆时针的,即随着 t 的增大,z(t) 从某点开始,沿着逆时针方向(向下一刻所在位置看去,此时位置的左侧是区域内部)绕简单闭曲线一圈。
曲线积分:复变函数 f(z) 沿曲线 γ 的曲线积分为
∫γf(z)dz=∫baf(z(t))z′(t)dt=F(z(b))−F(z(a))
其中 F 为 f 的原函数(不一定存在)。
定义 1 (复导数,全纯函数)
设映射 f:U→C,其中 U⊂C 为开集。设 z0∈U,则 f 在 z0 处的复导数(若存在)定义为
f′(z0)=limz→z0f(z)−f(z0)z−z0
其中 z 可以从各个方向任意地趋近 z0。若 ∃r>0,f 在 D(z0,r) 内都有复导数,就称 f 在 z0 处解析。若 f 在 U 中每点都有复导数,就说 f 为 U 上的全纯函数。
整(entire)函数是在 C 上全纯的函数。注意:函数只能是开区域上的全纯函数,若区域内有边界点,这个点处的复导数是不存在的。
Cauchy-Riemann 方程:将复平面的坐标写作 z=x+iy,考虑开集上的复变函数 f(x,y)=u(x,y)+iv(x,y),其中 u,v 是实值函数,那么 f 全纯当且仅当其满足 Cauchy-Riemann 方程
⎧⎪
⎪
⎪⎨⎪
⎪
⎪⎩∂u∂x=∂v∂y∂u∂y=−∂v∂x
定理 1 (Cauchy 定理)
设 f 在圆盘 D 上全纯,闭曲线 γ⊂D,那么
∫γf(z)dz=0
这可以推知,若 f 在包含了圆周 C 和其内部的区域上全纯,那么 ∫Cf(z)dz=0。
奇点(singular):f 在该点不全纯。
- 可去奇点:若 U⊂C 是开集,z0 是 U 中一点,f:(U∖{z0})→C 是全纯函数,若存在一个在 U 上全纯的函数 g(z),使得 ∀z∈(U∖{z0}),f(z)=g(z),那么 z0 是 f 的一个可去奇点,并称 f 在 z0 点可以全纯延拓。(其等价于 (z−z0)f(z) 在 z0 处的极限为 0)
- 极点(poles):若存在 m∈N,(z−a)m+1f(z) 在不可去极点 z0 处的极限为 0,那么称 z0 为 f 的一个极点,最小的满足上述条件的 m 称为 z0 的阶。由此也知道可去极点恰为零阶奇点。(在极点附近全纯的函数在趋近极点时一致发散到无穷远处)
- 本性奇点:若 f 的一个孤立奇点既非可去奇点,也非极点,那么其即为本性奇点。
半纯函数:除了可数个奇点外全纯的函数。
定理 2 (Laurent 展开)
设 f(z) 在以 z0 为圆心的圆环 {z:r<|z−z0|<R} 上解析,那么对环内部任意一点 z,都可以找到一个(唯一的)级数,满足
f(z)=∞∑n=−∞cn(z−z0)n
cn 可为 0。其中 n≥0 的部分被称为正则部分(normal part,或解析部分),其在 D(z0,R) 内绝对收敛;n<0 的部分被称为主要部分(简称主部),其在 D(z0,r) 外绝对收敛。
无穷远处展开:设 f(z) 在圆环 {z:r<|z−z0|<∞} 上解析,那么令 s=1/z,g(s)=f(1/z) 在 D(0,1/r)∖{0} 上解析,将 g 在 0 处展开,得到 g(s)=∑ncnsn,且当 z→∞ 时 f(z) 与 s→0时 g(s) 的极限状态相同,故 f 在无穷远处的 Laurent 级数为 ∑nc−nzn。
我们也可以用函数的 Laurent 展开考察奇点的情况。若 f 在 z0 处的 Laurent 展开式不含负次幂项,则 z0 为 f 的可去奇点;若只有有限个负次幂项,则为极点;若有无限个负次幂项,则为本性奇点。
定义 2 (留数)
若 f 的一个孤立奇点为 z0,那么 ∃r>0,f 在 D(z0,r)∖{z0} 上解析,Laurent 展开式为 ∑ncn(z−a)n,那么 f 在 z0 处的留数
Res(f,z0)=c−1=∫γf(z)dz
其中 γ 为 D(z0,r)∖{z0} 中的一条逆时针可求长曲线。
对无穷远处的留数的定义类似。
由上可知,若 z0 为 f 的 m 阶极点,那么
Res(f,z0)=1(m−1)!limz→z0dm−1dzm−1(z−z0)mf(z)
定理 3 (留数定理)
设 D⊂C 是由有限条可求长简单闭曲线围成的区域,若 f 在 D 上除孤立奇点 z1,…,zn 外都是全纯的,且连续到 ∂D,那么
12πi∫∂Df(z)dz=n∑k=1Res(f,zk)
抄自 M. L. J. Hautus and D. A. Klarner, The diagonal of a double power series, Duke Math. J. 38 (1971), 229–235.
定义二元序列 {fm,n∣m,n∈N} 的对角线序列为 {fn=fn,n∣n∈N}。本文提出了一种通过 fm,n 的二元生成函数的积分表示 fn 的生成函数的方法。由于这个方法依赖于二元生成函数的封闭形式,一般 fm,n 具有某些递归关系。
令 A(z),B(z) 为 {an},{bn} 的普通生成函数,且 A(z),B(z) 在 z=0 的邻域内解析,那么必然存在正实数 α,β,使得
A(z)=∑n≥0anznB(z)=∑n≥0bnzn
的 Taylor 展开形式分别在圆盘 {z:|z|<α},{z:|z|<β} 上成立。那么在圆盘 {z:|z|<αβ} 上级数
C(z)=∑n≥0anbnzn
一致绝对收敛,故这个级数表示一个在圆盘上解析的函数 C(z)。在 Hadamard 乘积定理的证明中,也证明了 C(z) 的一个积分表示。由于我们关注于这个结论的推广形式,下面会一并写出证明。
证明:我们断言,对所有复数 z s.t. |z|<αβ,有
C(z)=12πi∫CA(s)B(zs)dss
其中 C={s:|s|=(α+|z|/β)/2}。当然,这里的 C 也可以换成任意满足 A(s) 在内部解析、B(z/s) 在外部解析、包含原点的周线。
注意到 Laurent 级数
A(s)B(zs)1s=∞∑k=−∞∑nan+k+1bnznsk
在圆环 D={s:|z|/β<|s|<α} (由于 |z|<αβ,|z|/β<αβ/β=α,故 D 非空)上一致绝对收敛,故级数在 D 上表示对应函数。这是由于 A(s) 的 Laurent 级数在 {s:|s|<α} 上收敛,且 B(zs)1s 的 Laurent 级数对所有满足 ∣∣zs∣∣<β 的 s 都收敛,即在圆盘 {s:|s|<|z|/β} 外收敛,故二者的乘积也收敛,重排即可得到上方式子。
若 B(z/s) 只有孤立奇点,那么它们都在 {s:|s|=|z|/β} 内部,故在 C 内部。只要 A(s) 的奇点和 B(zs)1s 的奇点在不同的区域内,那么无论路径 C 如何变形,积分的值都不会变化。这一点很重要,因为上面的积分有时可以通过求 A(s)B(zs)1s 在 B(zs)1s 被 C 包含在内的奇点处的留数之和来计算。
对 Laurent 级数两侧同时对 s 沿 C 积分,RHS 在 C 内部只有 s=0 一个奇点,那么据留数定理,得到的 s−1 项系数就是对所有 |z|<αβ 的 z 都适用的 C(z) 的 Taylor 级数表示。□
定理 1
令
F(x,y)=∞∑m=0∞∑n=0fm,nxmyn
对所有满足 |x|<α,|y|<β 的 x,y 收敛,那么对所有满足 |z|<αβ 的 z,有
G(z)=∞∑n=0fn,nzn=12πi∫CF(s,zs)dss
其中 C:={s:|s|=(α+|z|/β)/2}。进一步的,若 F(s,zs)1s 在 C 内部只有孤立奇点,那么上述积分可以通过求这些奇点处的留数之和来计算。
证明:F(x,y) 的级数形式对所有满足 |x|<α,|y|<β 的 x,y 一致绝对收敛,那么 G(z) 的级数形式对所有满足 |z|<αβ 的 z 一致绝对收敛。不妨取 z 满足 |z|<αβ,那么
s−1∞∑m=0∞∑n=0fm,nsm(zs)n
对所有 |s|<α,|z/s|<β 都显然一致绝对收敛,这样的 s 形成了非空圆环 D={s:|z|/β<|s|<α}。那么可以重排上面的各项得到
∞∑k=−∞∑nfn+k+1,nznsk
该级数对所有 D 中的 s 都一致绝对收敛,值与 F(s,zs)1s 相同。那么两侧对 s 沿 C 积分即可得到 G(z) 满足的所有性质。□
既然有了一个方法,我们就要用一下子。论文中给出了一个 general case:F(x,y)=(1−ax−by−cxy)−1,但我们不分析那么难的情况,而是看一个经典问题。(原题是愿望幽灵)
快进到生成函数阶段。要求一行 an=[zn](1+2cz)n(1−z)−n−1,不妨建立二元生成函数
F(z,t)=∑n≥0(1+2cz)n(1−z)−n−1tn=11−z−t−2czt
那么 an=[zntn]F,即 F 的对角线。根据上面的定理,有
G(z)=12πi∫C11−s−z/s−2czdss=12πi∫C−dsz+(2cz−1)s+s2
显然这个复变函数的两个瑕点是 p(s)=z+(2cz−1)s+s2 的两个根
⎧⎪
⎪
⎪
⎪⎨⎪
⎪
⎪
⎪⎩α(z)=1−2cz+√(2cz−1)2−4z2β(z)=1−2cz−√(2cz−1)2−4z2
但是这两个根都在 C 的内部吗?这可不一定。显然 z→0 时 α(z)→1,β(z)→0,那么由于 F(0,0)≠0,取一定的 A>0,B>0 去卡圆盘,β(z) 一定在 C 内部,但 α(z) 不在。故据留数定理,G(z)=Res(−1/p(s),β(z))。由于 p(s)=[s−α(z)][s−β(z)],这个提取其实很简单。作换元 x=s−β(z),
G(z)=[x−1]−1x(x+β(z)−α(z))=[x0]−1x+β(z)−α(z)=1α(z)−β(z)=1√(1−2cz)2−4z
和 Alpha1022 得到的结果相同。
此外,论文得到了 F(x,y)=(1−ax−by−cxy)−1 的对角线的生成函数是
G(z)=1√1−2(c+2ab)z+c2z2
导出方法完全相同。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
2023-01-23 闲话 23.1.23