在中学我们经常看到类似这样的递推数列求极限的题目:
设,,求。
做这种问题,我们可能想都不想就直接设
解得
答案是没有问题的,但是为了严谨起见,我们最好之前说明一下
针对这道题,,很容易发现,数列有界。
再令,求导可知,
从而知道是单调有界,极限存在。
这下就圆满地解决了上述问题,但是如果有三个交织在一起的递归数列求极限该怎么办呢?下面是2009DMM(杜克数学大会)个人赛Individual round最后一题第10题。
题意:A(0)=(2,7,8)是一个有序三元组。k是n除以3的余数,A(n)是由A(n-1)把第k个位置上的数变为A(n-1)三个数的平均数而得到的。比如,A(0)三个数2、7、8的平均数为17/3,n除以3余1,所以A(1)=(17/3,7,8),同理A(2)=(17/3,62/9,8)。已知按照上述规则,三元组会收敛,三个数都是N,请问N的值是多少?
尝试计算一下可以得到A(1)到A(4)如下图:
根据题意我们可以给出如下的数学关系式。
设
可以发现,上面是三个数列交织在一起,如果设三个数列的极限都为N,也解不出来。那么该怎么办?
首先,可以相信最后的极限N应该是和初始值
进一步,在单独分析每一个
所以,现在只需要把
因为有三个未知数,那么我们就需要构造三个方程。因为我们现在只需要计算
首先设
而
因为A(1)到A(3)是一轮操作(分别得到了
于是,得到了第一个方程
同理,我们可以取其他初始值构造不同的方程。取
那么
接着
于是,
最后,取
最后,联立上述三个方程:
解得:
于是,我们就知道了任意初始值
当初始值
总结一下,虽然这道题是三个数列交错在一起,非常的复杂,但是我们还是利用了先设极限再求解的方法,跳过了中间漫长的计算过程,通过构造方程来求解。当然,极限是初始值的线性组合是我们在分析题目的过程中发现的,把求解极限的问题转化成了求解线性权重的问题。在构造方程的过程中,我们也利用了从同一个初始值
等等,这道题我真的是那么做的吗?我不是用Matlab跑了一下程序吗?。。
A=[1 1 0];
disp(A);
for i=1:1:10
for j=1:1:3
sum=A(1)+A(2)+A(3);
A(j)=sum/3;
format rational
disp(A);
end
end
刚开始拿到这道题时,也感觉无从下手,所以就编了个程序跑了一下,找到了答案。后来在调整初始值的过程中发现了原来极限是初始值的线性组合,然后就想着怎么样把三个权重算出来,紧接着就想到了可以构造方程。但是最开始的时候选择的三个始除值是:(1,0,0)、(0,1,0,)和(0,0,1),发现解不出
数学问题的解决往往不是一蹴而就的,通过一系列地探索,得到最后的结果还是非常有趣的。所以会编程还是非常有用的。
感谢 @啦啦啦,已经知道了
那么就可以写成
那么
哈哈,为什么我都写出了关系式都没有想到呢?= =。
关于其他递推数列求极限的问题可参阅:
双木止月Tong:【国际数学竞赛】递推数列求极限(1)zhuanlan.zhihu.com想了解更多的数学竞赛真题可参阅
双木止月Tong:【国际数学竞赛】目录zhuanlan.zhihu.com