找回密码
 注册
Simdroid-非首页
查看: 146|回复: 6

一个有意思的数列极限

[复制链接]
发表于 2012-1-9 09:13:34 | 显示全部楼层 |阅读模式 来自 北京
本帖最后由 rocwoods 于 2012-1-9 16:35 编辑

我们先来看这样一个序列:      f(x,n): f(x,1) = x; f(x,2) = x^x; f(x,n)=x^...(n个)x ;
    很容易的,我们可以计算f(2,2) = 2^2=4;f(2,5)=2^(2^(2^4))=2^(2^16) =2^65536约=2.00352993*10^19728;想必到这里,大家已经明白这个数列当x不太大的时候(譬如仅仅为2),趋向无穷的速度已经是惊人到无法想象。怎么个无法想象呢,让我们以基本的科学记数法为例来说说明,众所周知,科学记数法天生就是为了表示大数的。比如可观测宇宙(以地球为中心,大约100亿至200亿光年的球体)中含有大约数千亿个星系,每个星系平均含有千亿颗恒星(行星数就不得而知了),包括动辄以光年计算尺度的星云和弥漫宇宙空间的星际尘埃,我们想问的就是可观测的宇宙物质中的原子数是个什么量级呢?天文学家给我们的答案是可观测宇宙的质量大约是10^53千克,折合成质子数是10^80量级,我们的f(2,5)已经远远远远远远超过这个数字了。换句话说,如果我们想用科学计数法表示f(2,6),注意,仅仅是表示出来,那么我们用上可观测的全宇宙的质子、中子数(每个粒子表示一位)都办不到。
    到这里,以人类的想象力,我们只能肤浅的想象f(2,6)有多大,对于x>2,n>6,我们实在是没有能力想象有多大了。
    那么请大家猜猜f(1.9,n),随着n的增大,会怎么样呢?没错,很快趋近无穷。我们可以写个简单的MATLAB函数验证这个f(x,n):


  1. function f = test(x,n)
  2. f = 1;
  3. for   k = 1:n
  4.    f = x^f;
  5. end
复制代码


  f(1.9,5) = 2.258794402547081*10^78
    现在再请大家猜猜f(1.4,n),随着n的增大,会怎么样呢?我想看到这里的朋友,如果不实际编程算的话,十有八九会猜测是趋近无穷。
    如果我现在说无论n多大,f(1.4,n)不会超过3,进一步的,不会比e大,有多少朋友直观上觉得是对的呢?心存疑问的朋友可以编程算一下。结果是不是出乎我们的意料?
    显而易见,f(1,n)是收敛到1的,f(2,n)是发散到无穷的。我们能否找到f(x,n)收敛的最大的x呢?f(x,n)如果收敛的话,最大可能是多少呢?这个问题估计已经被研究过,但是我实在没找到相关资料,这里给出我自己想的证明:

  1. 假设f(x,n)收敛,不妨记为a。(由f(1,n)收敛知,a肯定是存在的)
  2. 根据f(x,n)的表达式,我们有x^a = a,进而有
  3. x = a^(1/a);
  4. f(x,n)能够收敛的x的最大值不会超过 a^(1/a)的最大值。
  5. 我们对 a^(1/a)关于a求导数得到:
  6. a^(1/a - 1)/a - (a^(1/a)*log(a))/a^2
  7. 令其等于0,解得a = e的时候a^(1/a)最大。
  8. 也就是说x>e^(1/e)时f(x,n)必然发散。
  9. 下面需要证明的是收敛的a值不会大于e.
  10. 由上面知,a = e的时候,xe = e^(1/e)
  11. 假设存在收敛到的某值a>e,xa = a^(1/a)<xe
  12. 由f(x,n)的表达式,有f(xa,n)<f(xe,n),与假设矛盾.故命题得证

复制代码
因此,0<x<=e^(1/e)=1.444667861009766...时收敛,且当x等于e^(1/e)时f(x,n)收敛到所有收敛情形的最大值——e。

评分

1

查看全部评分

发表于 2012-1-9 09:23:39 | 显示全部楼层 来自 山东烟台
Simdroid开发平台
本帖最后由 zccbest 于 2012-1-9 09:31 编辑

这个数列没看明白啊,怎么算出的数

点评

f(x,n),前一个数是后一个数的指数,底数为x。  发表于 2012-1-9 10:58
回复 不支持

使用道具 举报

发表于 2012-1-9 13:48:39 | 显示全部楼层 来自 山东烟台
  1. function f = test(x,n)

  2. f =1;
  3. for i=1:n  
  4. f = x^f;
  5. end
复制代码
回复 不支持

使用道具 举报

发表于 2012-1-9 14:49:27 | 显示全部楼层 来自 山东烟台
x的取值范围是多少,如果x<1,比如0.2,也是收敛的,但是当x=0时,出现了0^0,这是一个不确定的值

回复 不支持

使用道具 举报

发表于 2012-1-9 15:08:14 | 显示全部楼层 来自 新疆乌鲁木齐
本帖最后由 bainhome 于 2012-1-9 15:11 编辑

的确是个有意思的序列!好像roc又做了些延伸思考,还得消化一下。
这个问题我和zccbest一样,刚开始roc说完之后,也认为应该小于1,但测试之后发现大于1也可以,后来试算就慢慢发现又和exp联系在一起了,不过0^0是个特例,似乎数学上规定这个数字等于1吧,记不清了...
个人感觉是关于无穷级数的收敛域问题,但觉得很有趣味性,不知道有没有相关的知识从更高的数学理论层次描述。
但3楼代码不大对劲,我想大致应该是这样:

  1. format long g
  2. x=1.444667;
  3. b=x;
  4. loop=20000;
  5. for i=1:loop
  6.     x=b^x;
  7. end
  8. x
复制代码
roc的数学上有种直觉,赞一个!
回复 不支持

使用道具 举报

 楼主| 发表于 2012-1-9 16:15:11 | 显示全部楼层 来自 北京
本帖最后由 rocwoods 于 2012-1-9 16:24 编辑

只考虑x>0的情形,或者进一步x>1的收敛情形。x=0的时候没有意义,硬要考虑应该是考虑x->0,n->无穷时候的表现,但这样牵扯到x->0的方式,譬如按1/n,1/n^2等等,这样考虑就有些复杂了。暂时考虑x固定,且大于1的情形。
一开始没注意,复制的格式有问题,我把帖子又编辑了下,test(x,n)的代码就像zccbest那样,和bainhome的都是一个意思,一个是从x^0开始一个是从x^1开始。
回复 不支持

使用道具 举报

发表于 2012-1-9 16:28:18 | 显示全部楼层 来自 新疆乌鲁木齐
噢,zccbest的代码是我看错了,没注意for loop里的f是循环赋值的,sorry。
回复 不支持

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-10-4 15:11 , Processed in 0.044290 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表