连分数

更新时间:2023-12-30 09:23

连分数(continued fraction)是特殊繁分数。如果a0,a1,a2,…an,…都是整数,则将分别称为无限连分数和有限连分数。可简记为a0 ,a1,a2,…,an,…和a0,a1,a2,…,an。一般一个有限连分数表示一个有理数,一个无限连分数表示一个无理数。如果a0,a1,a2,…,an,…都是实数,可将上述形式连分数分别叫无限连分数和有限连分数 。近代数学的计算需要,还可将连分数中的a0,a1 ,a2,…,an,…取成以x为变元的多项式。在近代计算数学中它常与某些微分方程式差分方程有关,与某些递推关系有关的函数构造的应用相联系。

动机

研究连分数的动机源于想要有实数在“数学上纯粹”的表示。

多数人熟悉实数的小数表示:(图1)

这里的a0 可以是任意整数,其它ai 都是 {0, 1, 2, ..., 9} 的一个元素。在这种表示中,例如数 π 被表示为整数序列 {3, 1, 4, 1, 5, 9, 2, ...}。

这种小数表示有些问题。例如,在这种情况下使用常数 10 是因为我们使用了 10进制系统。我们还可以使用 8进制或 2 进制系统。另一个问题是很多有理数在这个系统内缺乏有限表示。例如,数 1/3 被表示为无限序列 {0, 3, 3, 3, 3, ....}。

连分数表示法是避免了实数表示的这两个问题。让我们考虑如何描述一个数如 415/93,约为 4.4624。近似为 4,而实际上比 4 多一点,约为 4 + 1/2。但是在分母中的 2 是不准确的;更准确的分母是比 2 多一点,约为 2 + 1/6,所以 415/93 近似为 4 + 1/(2 + 1/6)。但是在分母中的 6 是不准确的;更准确分母是比 6 多一点,实际是 6+1/7。所以 415/93 实际上是 4+1/(2+1/(6+1/7))。这样才准确。

去掉表达式 4 + 1/(2 + 1/(6 + 1/7)) 中的冗余部分可得到简略记号 [4; 2, 6, 7]。

实数的连分数表示可以用这种方式定义。它有一些可取的性质:

一个数的连分数表示是有限的,当且仅当这个数是有理数。 “简单”有理数的连分数表示是简短的。 任何有理数的连分数表示是唯一的,如果它没有尾随的 1。(但是 [a0; a1, ... an, 1] = [a0; a1, ... an + 1]。) 无理数的连分数表示是唯一的。 连分数的项将会重复,当且仅当它是一个二次无理数(即整数系数的二次方程的实数解)的连分数表示 [1]。 数 x 的截断连分数表示很早产生 x 的在特定意义上“最佳可能”的有理数逼近(参阅下述定理 5 推论 1)。 最后一个性质非常重要,且传统的小数点表示就不能如此。数的截断小数表示产生这个数的有理数逼近,但通常不是非常好的逼近。例如,截断 1/7 = 0.142857... 在各种位置上产生逼近比,如 142/1000、14/100 和 1/10。但是明显的最佳有理数逼近是“1/7”自身。π 的截断小数表示产生逼近比,如 31415/10000 和 314/100。π 的连分数表示开始于 [3; 7, 15, 1, 292, ...]。截断这个表示产生极佳的有理数逼近 3、22/7、333/106、355/113、103993/33102、...。 314/100 和 333/106 的分母相当接近,但近似值 314/100 的误差是远高于 333/106 的 19 倍。作为对π的逼近,[3; 7, 15, 1] 比 3.1416 精确 100 倍。

算法

考虑实数r。设i是r的整数部分,而f是它的小数部分。则r的连分数表示是 [i; …],这里的“…”是 1/f的连分数表示。习惯上用分号取代第一个逗号。

要计算实数r的连分数表示,写下r的整数部分(技术上floor)。从r减去这个整数部分。如果差为 0 则停止;否则找到这个差的倒数并重复。这个过程将终止,当且仅当r是有理数。

数 3.245 还可以表示为连分数展开 [3; 4, 12, 3, 1];参见下面的有限连分数。

这个算法适合于实数,但如果用浮点数实现的话,可能导致数值灾难。作为替代,任何浮点数是一个精确的有理数(在现代计算机上分母通常是 2 的幂,在电子计算器上通常是 10 的幂),所以欧几里得GCD算法的变体可以用来给出精确的结果......

表示法

连分数的表示方法:

分类

有限连分数

所有有限连分数都表示一个有理数,而所有有理数都可以按两种不同的方式表示为有限连分数。这两种表示除了最终项之外都是一致的。在较长的连分数表示,其最终项是 1;较短的表示去掉了最后的 1,而向新的终项加 1。在短表示中的最终项因此大于 1,如果短表示至少有两项的话。其符号表示:

=

连分数的倒数

有理数的连分数表示和它的倒数除了依据这个数小于或大于 1 而分别左移或右移一位以外是相同的。换句话说,图册2中的(左图)和(右图)互为倒数。这是因为如果 a是整数,接着如果x<1,则x=0+1/(a+1/b)且1/x=a+1/b,而且如果x>1,则x=a+1/b且1/x=0+1/(a+1/b)带有最后的数生成对x和它的倒数是同样的连数的余数

无限连分数

所有无限连分数都是无理数,而所有无理数可用一种精确的方式表示为无限连分数。

无理数的无限连分数表示是非常有用的,因为它的初始段提供了对这个数的优异的有理数逼近。这些有理数可以叫做这个连分数的收敛(convergent,也译为“渐进”)。所有偶数编号的收敛都小于最初的数,而奇数编号的收敛都大于它。

定理

如果a0,a1,a2, ... 是正整数的无限序列,递归的定义序列 hn 和 kn:

半收敛

则如下形式的任何分数

这里的a是非负整数,而分子和分母在n和 n + 1 项(包含它们)之间,叫做“半收敛”、次收敛或中间分数。这个术语经常意味着排除了是收敛的可能性,而不是收敛是一种半收敛。

对实数x的连分数展开的半收敛包括了所有比有更小分母的任何逼近都好的有理数逼近。另一个有用的性质是连续的半收敛 a/b 和 c/d 有着 。

逼近

最佳有理数逼近

设 是实数α的第k个渐进分数,则对任意分数 满足0

证明:若 则显然成立。否则不妨设 ,若 则有 且 ,所以 矛盾!若 则有 ,由 有 矛盾!所以 此时由不等式性质显然成立,或者 即 所以定理得证。

算法:对实数x的最佳有理数逼近是有理数 n/d(d > 0),它比带有更小分母的任何逼近都接近于 x。依据如下三个规则,从 x 的简单连分数生成所有对 x 的最佳有理数逼近:

截断连分数,并尽可能减小它的最后项。 减小的项不能小于它最初的值的一半。 如果最终项是偶数,则用特殊规则确定它的值是否可接受。(见后) 例如,0.84375 有连分数 [0;1,5,2,2]。下面是它的所有最佳有理数逼近。

 [0;1]  [0;1,3]  [0;1,4]  [0;1,5]  [0;1,5,2]  [0;1,5,2,1]  [0;1,5,2,2] 13/4 4/5 5/6 11/13 16/19 27/32包含了分母严格单调递增的增补项允许在算法上施加限制,要么在分母的大小上,要么在逼近的接近性上。

要向有理数逼近并入新项,只需要两个前面的收敛。如果ak+1 是新项,则新分子和分母是

nk+1 = nk−1 + ak+1 nk dk+1 = dk−1 + ak+1 dk 初始的收敛(要求前两项)是 0⁄1 和 1⁄0。例如,以下是对 [0;1,5,2,2] 的收敛。

k−2−101234ak01522nk010151127dk101161332减半规则的形式描述是减半的项 1/2 ak 是可接受的,当且仅当

[ak; ak−1, …, a1] > [ak; ak+1, …] 在实践中,经常使用类似欧几里得GCD的算法依序生成这些项,且它提供的辅助值可更方便的测试。例如,以下是为 0.84375 = 27⁄32 生成的项。

a0 = ⌊27⁄32⌋ = 0,  f0 = 27 − 32a0 = 27a1 = ⌊32/27⌋ = 1, f1 = 32 − 27a1 = 5a2 = ⌊27/5⌋ = 5, f2 = 27 − 5a2 = 2a3 = ⌊5/2⌋ = 2, f3 = 5 − 2a3 = 1a4 = ⌊2/1⌋ = 2, f4 = 2 − 1a4 = 0使用以此生成的f值,1/2 ak 的可接受性测试是 dk−2 ⁄ dk−1 > fk ⁄ fk−1。对于例中的 a3,d1 ⁄ d2 = 1/6 且 f3 ⁄ f2 = 1/2,所以 1/2 a3 是不可接受的;在对 a4 的时候,d2 ⁄ d3 = 6⁄13 且 f4 ⁄ f3 = 0⁄1,所以 1/2 a4 是可接受的。

对x的收敛在更强的意义上是最佳逼近:n/d 是 x 的逼近,当且仅当 |dx−n| 是在所有逼近 m⁄c 带有 c ≤ d 中是最小的相对误差的;就是说,我们有 |dx−n| < |cx−m| 只要 c < d。(注意还有 |dkx−nk| → 0 当 k→∞。)

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}