找回密码
 欢迎注册
楼主: chyanog

[提问] 求一个递推关系或通项公式

[复制链接]
发表于 2012-9-20 08:12:19 | 显示全部楼层
=1.4331943620781083753346732565509231376521691611919112948430331089414491961400434232721571283018940583585082186363063024660714185......
F1(x).JPG
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-9-20 11:35:07 | 显示全部楼层
  1. def T(n):
  2.     if n<2:
  3.         print "n should be at least 1."
  4.         return 0
  5.     else:
  6.         s=n**(1.0/n)
  7.         while n>2:
  8.             s=(s+n-1.0)**(1.0/(n-1))
  9.             n=n-1
  10.     return s

  11. for i in range(2,14):
  12.     print T(i)
复制代码
1.4142135623730951454746218587388284504413604736328125
1.8553300434983013289524933497887104749679565429687500
1.9079845676546838273424100407282821834087371826171875
1.9114830405608116414839514618506655097007751464843750
1.9116344967740706017877982958452776074409484863281250
1.9116391103898717762632486483198590576648712158203125
1.9116392144179301659789871337125077843666076660156250
1.9116392162208171168202852641115896403789520263671875
1.9116392162455468906046007759869098663330078125000000
1.9116392162458217818254979647463187575340270996093750
1.9116392162458242243161521400907076895236968994140625
1.9116392162458242243161521400907076895236968994140625


收敛得相当快
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-9-21 08:56:27 | 显示全部楼层
12# BeerRabbit
这是python代码吧,精彩!
一直没深入学习这门语言.
不知道python 怎么控制浮点数的输出保留的的位数精度
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-9-21 09:36:38 | 显示全部楼层
13# wayne


实际上最后的那个输出语句是编辑之前的,输出上面结果的应该是:
for i in range(2,14):
    print "%.52f" % T(i)

和c、matlab控制格式的方法差不多

评分

参与人数 1经验 +2 鲜花 +2 收起 理由
wayne + 2 + 2 多谢

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-9-21 10:16:09 | 显示全部楼层
13# wayne
根据测试,

  1. import math
  2. print '%.50f'%math.pi
  3. print '%.50f'%math.sin(1)
复制代码
Output:
3.14159265358979311599796346854418516159057617187500
0.84147098480789650487565722869476303458213806152344
虽然输出了50位,但和Mathematica的并不同,看来精度是16位的,
要用高精度,可以使用内置的decimal模块,或者sympy、mpmath库,

  1. from sympy import *
  2. print N(pi,50)
  3. print N(sin(1),50)
复制代码
这样就可Mathematica的一致了
其实python标准库中fractions是支持分数运算的

评分

参与人数 1经验 +2 鲜花 +2 收起 理由
wayne + 2 + 2 我在linux下经常安装simpy ,却从未使用,。 ...

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-9-21 13:37:49 | 显示全部楼层
先回应一下5层,呵呵。
  1. Last[Nest[{First[#]-1,(Last[#]+First[#])^(1/First[#])}&,{10,0},10-1]]//TraditionalForm
复制代码
可以提出一个问题,就是当那个1993趋于无穷时,表达式是多少?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-9-21 15:24:31 | 显示全部楼层
16# zgg___
谢谢你提供的这种方法。我感觉Mathematica中Fold一般都可以替代Nest的。
另外,不太明白你问的意思啊,我还很好奇如何用RecurrenceTable写出来
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-9-21 15:51:09 | 显示全部楼层
17# chyanog
FoldList ,NestList,以及 RecurrenceTable 的操作对象都各不相同的。
=================
zgg说的是 求表达式的极限
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2012-9-21 16:36:28 | 显示全部楼层
18# wayne
是的,不过要达到同样的目的,不少时候Fold,Nest都能做到
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2012-9-21 17:36:55 | 显示全部楼层
19# chyanog
RecurrenceTable 处理的是一阶逻辑范畴的对象。
Fold,Map处理的是高阶逻辑范畴的对象。

http://en.wikipedia.org/wiki/Fold_%28higher-order_function%29
http://en.wikipedia.org/wiki/Map_%28higher-order_function%29

本题应该使用函数复合之类的运算, 比如Composition 函数
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-5-13 15:37 , Processed in 0.052032 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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