wsc810 发表于 2010-8-10 20:57:13

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

最近刚下载了该软件,但还不怎么会用,尤其是编程方面。我想求出sqrt(d)的连分式展开后出现的Q_n和P_n希望各位指导指导,谢谢了。

wsc810 发表于 2010-8-11 09:13:32

哪位大哥帮帮小弟,做个示范,本人感激不尽!

wayne 发表于 2010-8-11 09:30:35

根号π:FromContinuedFraction, #]] & /@ Range

wsc810 发表于 2010-8-11 10:50:53

上面这段代码表示什么意思呢?是对根号PI求连分式展开的a_n值吗,我要求的是对整数求平方根得到连分式的Q_n,P_n。其中要用到三个公式。公式我都知道,就是不会用语言组织,在哪个窗口写代码我还没搞清楚

wayne 发表于 2010-8-11 10:56:05

1、要对整数平方进行操作,那就麻烦把PI换成你想要的整数。
2、不知用什么函数没关系,你说过你知道公式,那你总可以用你熟悉的语言风格实现吧,Mathematica是支持各种风格编程的。

wayne 发表于 2010-8-11 10:59:33

你把我那个代码复制到 Mathematica里面(不管是前端,还是命令行的kernel,不知道我这里在说什么,那说明就是前端了)
摁住Shift,回车就能看到结果了

为了方便验证,你把根号派换成派吧,结果是一堆你应该知道的圆周率的 密率

wsc810 发表于 2010-8-11 11:53:51

你说的可能是软件求出a_n后,再利用连分式基本公式求出的p_n,q_n的值(是小写)。而我求大写的值,公式想你必知道吧!我就不在这写了,手机打挺费事的。

wsc810 发表于 2010-8-11 16:20:12

语法问题

大家看看我的这段代码有什么问题
m=247
P0=8
Q=1
d=m+P0^2
P=0
a0=Integer]//N
a=a0
While[P!=P0,
P=a*Q-P
a=Int[(a0+P)/Q]
Q=(d-P^2)/Q
]
取整函数是什么我还没摸透,另外While中间的循环体格式怎么写我还不太清楚,总之老是提示语法错误。懂得朋友帮帮我!

wsc810 发表于 2010-8-14 23:14:41

没人帮帮我吗?我用VB6编写了一下,不会用文本框获取要输入的值,谁能教教我。

hujunhua 发表于 2010-8-17 09:16:34

Convergents, n] // Last
页: [1] 2
查看完整版本: 怎样用Mathematica编程实现sqrt(d)连分式展开