找回密码
 欢迎注册
查看: 17236|回复: 17

[求助] 怎样用Mathematica编程实现sqrt(d)连分式展开

[复制链接]
发表于 2010-8-10 20:57:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
最近刚下载了该软件,但还不怎么会用,尤其是编程方面。我想求出sqrt(d)的连分式展开后出现的Q_n和P_n希望各位指导指导,谢谢了。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-8-11 09:13:32 | 显示全部楼层
哪位大哥帮帮小弟,做个示范,本人感激不尽!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-8-11 09:30:35 | 显示全部楼层
根号π:
  1. FromContinuedFraction[ContinuedFraction[Sqrt[Pi], #]] & /@ Range[10]
复制代码
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-8-11 10:50:53 | 显示全部楼层
上面这段代码表示什么意思呢?是对根号PI求连分式展开的a_n值吗,我要求的是对整数求平方根得到连分式的Q_n,P_n。其中要用到三个公式。公式我都知道,就是不会用语言组织,在哪个窗口写代码我还没搞清楚
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-8-11 10:56:05 | 显示全部楼层
1、要对整数平方进行操作,那就麻烦把PI换成你想要的整数。
2、不知用什么函数没关系,你说过你知道公式,那你总可以用你熟悉的语言风格实现吧,Mathematica是支持各种风格编程的。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-8-11 10:59:33 | 显示全部楼层
你把我那个代码复制到 Mathematica里面(不管是前端,还是命令行的kernel,不知道我这里在说什么,那说明就是前端了)
摁住Shift,回车就能看到结果了

为了方便验证,你把根号派换成派吧,结果是一堆你应该知道的圆周率的 密率
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-8-11 11:53:51 | 显示全部楼层
你说的可能是软件求出a_n后,再利用连分式基本公式求出的p_n,q_n的值(是小写)。而我求大写的值,公式想你必知道吧!我就不在这写了,手机打挺费事的。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-8-11 16:20:12 | 显示全部楼层

语法问题

大家看看我的这段代码有什么问题
m=247
P0=8
Q=1
d=m+P0^2
P=0
a0=Integer[Sqrt[d]]//N
a=a0
While[P!=P0,
P=a*Q-P
a=Int[(a0+P)/Q]
Q=(d-P^2)/Q
]
取整函数是什么我还没摸透,另外While中间的循环体格式怎么写我还不太清楚,总之老是提示语法错误。懂得朋友帮帮我!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2010-8-14 23:14:41 | 显示全部楼层
没人帮帮我吗?我用VB6编写了一下,不会用文本框获取要输入的值,谁能教教我。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2010-8-17 09:16:34 | 显示全部楼层
Convergents[Sqrt[d], n] // Last

评分

参与人数 1鲜花 +4 收起 理由
wayne + 4

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-3-19 12:11 , Processed in 0.056425 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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