求极限:limn→∞nn+n1/2+...+n1/n
1.和的分段估计
在这个问题当中,我们无非就是要估计Sn:=∑k≤nn1/k目标精度为o(n)。因为这样的话我们可以得到一个关于n1Sn的一个精度为o(1)的估计,从而得到极限。
通过对求和对象的简单观察,我们发现这些被求和对象的增长速度完全不同。第一项n,第二项n都是很大的,而最后一项n1/n∼1相对而言又特别小。因此直接进行逐项估计显然是不合适的,误差会特别大。同时,假设我们对于这些被求和对象n1/k又没有特别好的估计(实际上我们有办法),想要改进精度只能从逐项估计的“底”下手。于是联想到1.3 为了控制底而进行分段。
- 关于”底乘以高”的原理与逐项估计之间的关系,参考逐项估计的开头。
- 第一项n完全不动,因为n1Sn第一项就是1,不动它精度就是最好的。
- 在[2,n]∩N中间我们需要找一个断点1≪φ(n)≪n,这样我们可以把求和写成两段∑2≤k≤n=∑2≤k<φ(n)+∑φ(n)≤k≤n然后两端分开用不同的方式进行估计。
- 关于φ(n)的选择:正是因为我们对求和对象n1/k的无能为力(假设如此,实际上我们有办法),所以这里的分段放缩非常粗糙,精度控制全部由“底”的长度,以及分段点的位置决定。其中第一段的误差可以被这一段当中被求和对象的“振幅”乘以这一段的长度来控制,即Error1≤(n1/φ(n)−n)×(φ(n)−2)=(1+O(φ(n)log(n))−n)×(φ(n)−2)=O(nφ(n))第二段的误差也可以用类似的式子控制Error2≤(n1/n−n1/φ(n))×(n−φ(n)+1)=O(φ(n)log(n))×(n−φ(n)+1)=o(n)所以总的来说,只要控制好第一段我们就能得到想要的估计。
- 首先我们尝试φ(n)=nr,0<r<1。带入上述估计结果当中得到Error1≤O(n1/2+r)因此只要0<r<1/2整个估计就能成功。
- 这里我们用到了n1/φ(n)=1+O(φ(n)log(n))这一来自于Taylor展开的结果(假设1≪φ(n)≪n)。
现在我们执行上述方案,不妨令φ(n)=n1/3,于是Sn=n+∑2≤k≤nn1/k=n+∑2≤k<n1/3n1/k+∑n1/3≤k≤nn1/k于是做放缩的话会发现Sn<n+n(n1/3−2)+n1/n1/3(n−n1/3+1)=2n+o(n)以及Sn>n+n1/n1/3(n1/3−2)+n1/n(n−n1/3+1)=2n+o(n)综上所述Sn=2n+o(n)于是nSn=2+o(1)于是limn→∞nn+n1/2+...+n1/n=2
2. 基于Taylor展开的逐项估计
首先被求和对象n1/k=eklog(n)我们打算对被求和对象做Taylor展开。不过此处由于eklog(n)的指数部分是有可能无界的(随着n增大),因此我们需要小心控制其余项。这里考虑带Lagrange余项的Taylor展开eklog(n)=1+klog(n)+21(klog(n))2exp(ξk,n)其中0<ξk,n<klog(n)。如果我们用Rn,k去表示余项,那么Rn,k≤2k2log2(n)n1/k这样的误差累积起来的估计为k=2∑nRn,k≤21log2(n)k=2∑nk2n1/k≤21log2(n)nk=2∑nk21=O(nlog2(n))
利用这个式子做逐项估计,并提前提出较为麻烦的第一项,我们得到Sn=n+k=2∑nn1/k=n+k=2∑n(1+klog(n)+Rn,k)=2n−1+log(n)(Hn−1)+k=2∑nRn,k=2n+log2(n)+O(log(n))+O(nlog2(n))=2n+O(nlog2(n))=2n+o(n)因此我们同样得到了关于Sn的精度为o(n)的估计。
事实上我们还可以继续写下去:Sn=n+k=2∑nn1/k=n+n+k=3∑n(1+klog(n)+Rn,k)=2n−2+n+log(n)(Hn−H2)+k=3∑nRn,k=2n+n+O(n1/3log2(n))
3. 和的积分估计
因为对于固定的n被求和对象n1/k是单调减少的,因此我们想到可以用1. 和的简单积分估计:Sn=n+k=2∑nn1/k=n+∫2nn1/xdx+O(n+n1/n)=n+∫2nn1/xdx+o(n)于是只要我们可以得到含参数积分In:=∫2nn1/xdx的精度为o(n)的估计我们就可以完成整个估计任务。
转化为积分是明智的选择,因为不像离散的和,对于连续的积分我们可以通过“换元”来把难以处理的积分估计转换为容易的积分估计。例如这个问题,我们可以通过换元t=xlog(n)来使得原本的被积分对象n1/x=exp(xlog(n))变得简单,换元后的积分变成了In=log(n)∫nlog(n)2log(n)t2etdt新的被积函数t2et看起来就要正常多了。然后对于这个积分而言t的大小至关重要:
- 当n足够大的时候,实际上nlog(n)非常接近于0,这时候被积函数中对积分有影响的主要是t21。
- 而另一头2log(n)是无界的,此时被积函数中虽然t21是衰减的,但是相较于et的增长而言又是微不足道的。
因此为了精度考量,此处的分段估计是十分必要的,被积分函数t2et在两段当中的行为如此不同以至于忽略差异性会导致误差巨大。
-
第一段[1,2log(n)]此时由于t≥1于是∫12log(n)t2etdt≤∫12log(n)etdt=e2log(n)−e=O(n)
-
第二段[nlog(n),1)此时t<1,由于t有界于是我们此段可以考虑逐项估计,由于et=1+t+2t2+O(t3)于是t2et=t21+t1+21+O(t)于是这一段的积分我们有∫nlog(n)1t2etdt=∫nlog(n)1t21+t1+21+O(t)dt=log(n)n+O(log(n))
合并以上两段的估计,我们得到In=n+O(log2(n))+O(nlog(n))=n+o(n)综上所述Sn=2n+o(n)
所以nSn=2+o(1)→2。
-
当然这个例子当中还不足以观察出把和的估计转换为积分估计的优势。但是如果我们把问题变得更困难一些,例如体现积分估计相较于和的估计优势的一个问题当中,我们要估计Sn:=n+∑k=3nnlog2k1那么此时就足以体现出“转换为积分估计,然后通过换元来简化问题”这一思路的优势。