. 目录1:连分数相关知识22:课程设计相关101:题目:102:算法设计或算法分析:113:算法实现步骤:114:源程序代码:〔建立〕125:计算结果〔包括相应的图形〕:126:结果分析〔包括误差分析〕:137:心得体会:13参考资料:131:连分数相关知识连分数,它不仅历史悠久,而且是一个有力的工具,解决了不少很深入的问题,更难能可贵的,它还和我们日常生活中的历法有密切的关系它欧几里德计算法〔辗转相除法〕有貌异实同之妙,这就是「连分数」法现在我们先回想一下欧几里德计算法:设a,b为两整数,且b>a,则现在,我们把〔甲〕组里的式子全写为分式,如下所示:再将乙组中第一式之以第三式之倒数代入,接着以第三式之倒数代入,依次类推,即得上式之右边即所谓的「连分数」〔更精确地说,有穷简单连分数〕我们简写为现在考虑一般有穷连分数的几个基本关系式设为任意一个一般的有穷连分数〔也就是说为任意非零之实数〕,由计算易得一般地称为此连分数之第k个渐近分数,我们有公式 1:证明:利用归纳法公式 2:证明:利用归纳法,n=1时,p1q0-p0q1 = x 1-a0 x a0=1 又公式 3:。
证明:利用归纳法,n=2时,p2q0-p0q2==a2又在实际应用中,我们所遭遇的有穷连分数,就像〔丙〕式一样,其中的a0为整数,a1,a2,…,aN皆为正整数,此种连分数特称为简单有穷连分数由以上公式,我们可推论出有关此等简单有穷连分数的几个基本性质推论 1:当k>1时,,故证明:由公式 1,,又由归纳法得推论 2:证明:由公式 2,两边除以qkqk-1即得推论 3:证明由公式 3,两边除以qkqk-1,即得当n=2k为偶数时,右式为正,故得当n=2k+1为奇数时,右式为负,故得推论 4:对所有,pn与qn互质证明:由公式 1 立可得知从以上几个推论,我们知道渐近分数的分母一直增大,而两相邻渐近分数之差则愈来愈小另外,偶数项部分形成单调严格上升数列而奇数项部分形成单调严格下降数列,在第4节讨论无穷连分数时,这些性质对收敛性非常重要Aryabhata 的方法是这样的:我们可假设正整数a与b互质,而且a>b,将分数展成连分数,假设令与为最后两个渐近值,则其中因两者俱为最简分数,故pN=a,qN=b,再由公式2,,即,〔为方便计,可取正号〕,代入方程式ax+by=c=c,并展开、移项、化简,得因而解得古希腊之神殿 Parthenon 结构之美,叹为观止,常谓之「黄金比」或「黄金分割」,其确实意义如下:假定有一个长方形,截掉一正方形后,所剩之小长方形与原长方形相似〔见图一〕,则从此小长方形依样再截掉一小正方形,所剩之图形仍与原长方形相似,这种程序可无穷尽地做下去,这就叫做「黄金分割」,而具备此种特性之长方形之长宽比称为「黄金比」。
图一那黄金分割又怎么和连分数扯上关系呢?让我们先看一下黄金比的计算:图二设图二长方形之长边为单位长 1,而短边长为x,则根据假设1:x=x:<1-x>,即x2+x-1=0解出〔另一根不合〕,此数即为黄金比,为一无理数,其近似值为 0.618所以平常也有人说黄金比是3:5=0.6的现在换一个角度来看x的求法:方程式x2+x-1=0可化为将此式带入其本身右边的x中,便得继续不断此步骤,则得这就是无穷连分数的一个例子我们看一下它的头几个渐近分数:由此可知利用连分数来求此种二次方程式的无理数是一个非常有价值的办法一般而言,一个型如的式子称为无穷连分数,简写成通常我们只考虑a0为整数而a1,a2,… 为正整数的情形,这又特别叫做简单无穷连分数每一个实数也都可以用简单无穷连分数表示,其法如下:设 ξ 为任意一实数,则其中a0为整数而〔此种表法为唯一〕若,则其中a1为整数而〔此种表法为唯一〕这种步骤反复进行,若 ξ 非有理数,则程序不终止,而得一简单无穷连分数无穷连分数之渐近分数推论中所有的性质,我们有:命题:设表无穷连分数之第n个渐近分数,则数列收敛若其收敛值为 ξ,则即为 ξ 之无穷连分数表示证明:由 §2. 之推论,已知而且由推论 2,所以数列有一上界,而数列有一下界,由单调数列之收敛性,与皆收敛。
再由推论 2,与之收敛值是相同的,这就证明了渐近分数数列{pn/qn}之收敛性命题后半之证明从略事实上,渐近分数是所有分母不超过qn的分数中最接近者,也就是说它们是 ξ 的最佳渐近分数〔参考《数论导引》pp. 270-272〕我们也明白地看出所有偶数次项皆比收敛值小,而奇数次项皆比收敛值大2:课程设计相关1:题目:28.计算连分数的值,2:算法设计或算法分析:输入数组A与B开始Length~=Length-1 ?n=length;for i=n:-1:2 y=b+a/b;% b=y;end输出y结束NY3:算法实现步骤:输入数组A和B;判断数组A和B是否符合要求,否则退出并提示;计算数组B的长度,长度为n;for i=n:-1:2 y=b+a/b;% b=y;end输出y;4:源程序代码:〔建立〕function y=fractionif~=length+1> disp<'数组A与数组B维数有错!'>;return;endn=length;for i=n:-1:2 y=b+a/b;% 注意数组A的维数 b=y;end5:计算结果〔包括相应的图形〕:>> a,ba = 1 2b = 1 2 3>> r=fractionr = 1.3750>> a1,b1a1 = 4 3 2 1b1 = 5 4 3 2 1>> r=fractionr = 5.83026:结果分析〔包括误差分析〕:因为算法只有一个循环,所以算法的时间复杂度为n。
在y=b+a/b的赋值运算中将分数化为小数,有小数精度的损失;且算术量越大时,误差越大7:心得体会:通过本次数值计算的实验课程设计,我对连分数的历史,运算,应用有了一个通识的了解,它有一些可取的性质:· 一个数的连分数表示是有限的,当且仅当这个数是有理数· "简单"有理数的连分数表示是简短的· 任何有理数的连分数表示是唯一的,如果它没有尾随的 1〔但是 [a0;a1, ... an, 1] = [a0; a1, ... an + 1]〕· 无理数的连分数表示是唯一的· 连分数的项将会重复,当且仅当它是一个二次无理数〔即整数系数的二次方程的实数解〕的连分数表示[1]· 数 x 的截断连分数表示很早产生 x 的在特定意义上"最佳可能"的有理数逼近参考资料:《浅谈连分数》科学教育月刊 第267期《百度百科》 baidu / 。