Skip to content

Lec 5 求和

求和在许多领域都非常重要,例如:

  • 求解递推关系(recurrences
  • 计数(counting
  • 概率(probability
  • 算法运行时间分析(runtime analysis
  • 大规模系统性能分析(performance of large systems
  • 机器学习(machine learning

以及更多数学与计算机科学中的应用。

一、 等比级数与年金问题

1.1 年金

贷款可以理解为:今天获得一笔一次性资金(lump sum),以后分期偿还,并且需要支付利息。 这种支付方式称为:年金 (Annuity)。

下面我们做一个简化假设:固定利率为 p 时,今天的 $1 等价于 1 年后的 $(1+p);反之,1 年后的 $1 折算为今天的 11+p

【定义】: 一个年金计划,即在每年的年初支付m美元,持续n年。假设:固定利率为p。基于复利计算的假设条件:

  • 今天的1美元在1年后会变成(1+p)
  • 今天的1美元在2年后会变成(1+p)2
  • 反之,1年后的1美元今天的等值是1/(1+p),也就是说,如果现在有1/(1+p),在1年后将会等值于1美元。十年后的 1 美元,相当于今天的(11+p)10美元,这称为 贴现(discounting
Example 假设现在有一个:共持续 n 年,每年支付 m 美元,利率为 p 的年金。例如,美国联邦储备(Federal Reserve)的利率约为 p=0.0533, 按照贴现原则,这些未来的钱折算到今天,其总价值为多少 ?

支付时间如下:

  • 现在支付m

  • 一年后支付m, 支付的现值为m/(1+p)

  • 2年后支付m,支付的现值为m/(1+p)2

  • n-1后年支付m,支付的现值为m/(1+p)n1

  • 年金的现值公式为

n=1nm/(1+p)i=mn=1nxi,其中x = 1/(1+p)

n 年、每年 m 元的年金,折算为今日现值:

V=mk=0n1xk,x=11+p

我们希望得到一个闭式(closed form)。

所谓闭式,就是:

一个没有求和符号、没有递归、没有省略号,可以直接放进计算器计算的公式

分裂法

考虑等比数列: S=1+x+x2+...+xn1

通过乘以x并移动项: xS=x+x2+...+xn1+xn

然后相减,求S得 S=1xn1x

x=11+p代入得到年金现值的闭式解:

V=m(1xn1x)=m(1+p(1/(1+p))np)

但是: 如果我们一开始不知道这个闭式公式,又该如何推导出来呢?

1.2 扰动法

(著名数学家高斯曾利用这种思想求出了求和公式)

S=k=0n1xk=1+x+x2++xn1,则

xS=x+x2++xn

两式相减:

SxS=1xn(1x)S=1xnS=1xn1x(x1)$$$|x|<1$$$k=0xk=limn1xn1x=11x

应用: p=0.0533m=50000n=20 时,V$638340​。

Example 如果改成:每年支付 1 美元,并且永远支付下去,会怎样?

结果算出来, 其今天的价值仅约为 19.76 美元。

乍一看可能令人惊讶:永远都有收入,为什么总价值却有限?原因正是:未来的钱会不断贴现,因此越遥远的钱今天越不值钱。

现实中,这种永久支付的债券(Perpetual Bond)虽然罕见,但确实存在。现存最早的一张永久债券由荷兰一家水务公司于 1624 年发行。目前已知世界上仍保存着五张。其中一张被耶鲁大学(Yale)以约 2.4 万美元购得,如今每年仍能获得约 11.35 欧元的收益。

永续年金(perpetuity):V=mp

二、多项式求和:Ansatz 方法

问题:S=k=1nk2

Ansatz(待定系数)法: 猜测答案为 nd 次多项式,代入小值解出系数。

S=an3+bn2+cn+d,代入 n=0,1,2,3

d=0,a+b+c=1,8a+4b+2c=5,27a+9b+3c=14

解得 a=13,b=12,c=16,即

k=1nk2=n(n+1)(2n+1)6

用归纳法验证对所有 n 成立即完成证明。Ansatz Method,也可以理解为试探法

注意: 空求和(empty summationk=10f(k)=0

三、双重求和

方法: 先化简内层和,再化简外层和。

Example 1.

i=1nj=1ij=i=1ni(i+1)2=12i=1n(i2+i)=n(n+1)(n+2)6

交换求和顺序(Exchange order of summation):

i=1nj=inj,求和域是 1ijn,等价地写成 1jn,1ij

i=1nj=inj=j=1ni=1jj=j=1nj2=n(n+1)(2n+1)6

引入双重求和技巧:j=1nj2j,利用 j=i=1j1 引入双重求和再交换:

j=1nj2j=j=1ni=1j2j=i=1nj=in2j=i=1n(2n+12i)=n2n+1(2n+12)=(n1)2n+1+2

四、积分估计法

对于没有闭合公式的求和(如 k=1nk),用积分给出上下界。

4.1 单调递增函数的积分界

Theorem (Integral Bound — Increasing).f:[1,n]R 弱递增,则

f(1)+1nf(x)dxk=1nf(k)f(n)+1nf(x)dx

应用: f(x)=x1nxdx=23nn23,故

1+23nn23k=1nkn+23nn23

4.2 单调递减函数的积分界

Theorem (Integral Bound — Decreasing).f:[1,n]R 弱递减,则

f(n)+1nf(x)dxk=1nf(k)f(1)+1nf(x)dx

4.3 广义积分界

Theorem (Integral Bound — Improper).f:[1,)R 弱递减,则

k=1f(k) 收敛 1f(x)dx 收敛。若均收敛,则

1f(x)dxk=1f(k)f(1)+1f(x)dx

精度改进技巧:k=1 分解为 k=1m1(直接计算)+k=m(积分估计),m 越大界越精。

Example. S=k=1k2f(x)=x2I=1x2dx=1,得 S[1,2]

拆出前三项再估计尾部可得 S[232144,241144]。(实际值 S=π26

五、关键术语速查

英文中文
Closed form闭合公式
Geometric series等比级数
Perturbation method扰动法
Annuity / Perpetuity年金 / 永续年金
Ansatz method待定系数法
Empty summation空求和(值为 0)
Double summation双重求和
Exchange order of summation交换求和顺序
Integral bound积分界
Weakly increasing / decreasing弱递增 / 递减