2013年12月31日 星期二

[數論] 連分數(Continued Fraction)

參考資料
1. 唐其鈺譯,方程的整數解,九章出版社,2002年出版,ISBN13:9799576032195
2. 認識連分數,林聰源,http://episte.math.ntu.edu.tw/articles/mm/mm_02_3_08/index.html
3. C.D.Olds(1963), Continued Fractions (New Mathmatical Library, Number 9)
    www.plouffe.fr/simon/math/Continued%20Fractions.pdf
4. Strayer(1994), Elementary Number Theory, Waveland Press, 1994/2002, ISBN 1-57766-224-5
5. Infinite continued fractions http://www.math.binghamton.edu/dikran/478/Ch7.pdf

0.一次不定方程
二元一次方程可表示為 ax+by+c=0,其中係數 ab 是非零整數,c 是任意整數。我們的目的是求出 xy 的整數解。

一般我們會直接設 gcd(a,b)=1,也就是兩係數互質。它的一切整數解的公式是 x=x0bty=y0+at其中 (x0,y0) 是一組解,t 是整數。也就是說,只要我們能找到一組解,就可以用這組解去找到其他所有的解。

如何找出一組解?我們以下面的例子說明。

設有一方程式 127x52y+1=0。先檢查 gcd(127,52)=1,而 1 能整除 1,所以此方程式有整數解。我們的方法將假分數 12752 化成連分數形式。

1.1 有限簡單連分數(finite simple continued fraction)
分數 a1+1a2+1a3+...+1an 稱為「有限簡單連分數(finite  simple continued fraction)」,可用符號 [a1,a2,...,an] 表示有限連分數。

例如 [0,3,2,4,3]=13+12+14+13[2,3,2,1,5]=2+13+12+11+15

例:試將 3711 表示為有限簡單連分數(Hint:輾轉相除法)

解:{37=11×3+411=4×2+34=3×1+13=1×3+0, 故 3711=[3,2,1,3]=3+12+11+13.

任何一個有理數都能表示成有限簡單連分數,反之亦然,這是因為輾轉相除法必會在有限步驟結束。

回到一開始提到的方程 127x52y+1=0,運用輾轉相除法原理,我們得到 12752=2+12+13+11+15=[2,2,3,1,5]。去掉此連分數最後一個分數 15,並用原來的分數 12752 減去它:

12752[2,2,3,1]=12752(2+12+13+11)=12752229=1529.

12752229=1529 通分,得到 127×952×22+1=0。對照 127x52y+1=0,我們得到了一組解 (x0,y0)=(9,22),也就是倒數第二個漸近分數的分母分子,因此全部的解就是 {x=9+52ty=22+127t,其中 t 是整數。


1.2 為什麼可以透過這個方法求解?
關鍵在於「輾轉相除法」和連分數的性質。我們將 12752 化成連分數的過程表示如下。

{(a=b×q+r)127=52×2+2352=23×2+623=6×3+56=5×1+15=1×5+0.

對照 a=b×q+rr<b 的格式,其中 q 是商數,r 是餘數。連分數 [2,2,3,1,5] 其實就是依序將商數排列而得。

對於一般連分數形式 ab=q1+1q2+1q3+1qn1+1qn=[q1,q2,,qn],若我們只取到連分數的某一環節,例如第 k 個環節 δk=PkQk,其餘部分捨棄,這個分數稱為「漸近分數(convergent)」或「近似分數」。根據這個定義,當 k=n 時,δn=PnQn 其實就是 ab 本身。

我們將在下面證明,當 k=n 時,有 δnδn1=(1)nQnQn1,即 abPk1Qk1=(1)nQnQn1。在等號兩邊同乘上 QnQn1,又 Qn=b,於是得到 aQn1bPn1+(1)n1=0。最後用 (1)n1c 乘之,得到

a[(1)n1cQn1]+b[(1)n1cPn1]+c=0.

這就是求 ax+by+c=0 方程的一組解的公式,也是我們為何是取倒數第二個漸近分數(Pk1Qk1)的原因。


1.3 連分數的第k個漸近分數(the kth convergent of continued fraction)
[q1,q2,...,qk]=PnQn(1kn) 稱為有限簡單連分數 [q1,q2,...,qn] 的第 k 個漸近分數(the kth convergent of [q1,q2,...,qn])。

有限連分數的一些性質,可參考林聰源的網頁。
http://episte.math.ntu.edu.tw/articles/mm/mm_02_3_08/page3.html

證明了 Pk=qkPk1+pk2Qk=qkQk1+Qk2 這兩條式子後,接著再證明相鄰兩個漸近分數的差 δkδk1=1kQkQk1 ,最後得到 aQn1bPn1+(1)n1=0

關於 Pk=qkPk1+pk2Qk=qkQk1+Qk2 這兩條式子,他們的用途是求漸進分數的分子及分母,顯然這兩條式子是遞迴式,稱為「Wallis-Euler recurrence relations」。我們用下面的表格示意。

12752=2+12+13+11+15=[2,2,3,1,5] 為例。

表一

表一清楚地列出如何透過 Pk=qkPk1+pk2Qk=qkQk1+Qk2,得到漸近分數。對於 δ1,分子 P1 就是 q1P0+P1=2×1+0=2,分母 Q1=q1Q0+Q1=2×0+1=1。透過這個模式,我們可以得到完整的內容,見表二。

表二

表二清楚地列出每一個漸近分數的成分。其中最後一項 δ5=P5Q5=12752

觀察漸近分數與原本的分數 ab,我們可以發現下面的大小關係。

                        δ1=[q1]=q1=P1Q1<ab.
                        δ2=[q1,q2]=q1+1q2=P2Q2>ab.
                        δ3=[q1,q2,q3]=q1+1q2+1q3=P3Q3<ab.
                        δ4=[q1,q2,q3,q4]=q1+1q2+1q3+1q4=P4Q4>ab.

我們在數線上標示這些漸近分數的位置,如圖一。
圖一

從圖一可以看出,漸近分數會是以左右來回逼近 ab 的模式運作,最終收斂到中心點 ab。奇數項在左側,偶數項在右側,其中奇數項會不斷地朝右方逼近(嚴格遞增);偶數項則是不斷地朝左逼近(嚴格遞減)。以數學式表示如下。

δ1<δ3<<δ2k1<ab<δ2k<<δ4<δ2.


備註:有些書對於漸近分數的表示的足碼(index)是從 0 開始,如此一來,其漸近分數偶數項會在左側,奇數項會在右側。

證明1:兩個漸近分數的差 δkδk1=(1)kQkQk1k2

<pf> 根據定義,δk=PkQkδk1=Pk1Qk1,所以δkδk1=PkQkPk1Qk1=PkQk1QkPk1QkQk1.

                   分子 =PkQk1QkPk1=(qkPk1+Pk2)Qk1(qkQk1+Qk2)Pk1
                                      =(qkPk1Qk1)+Pk2Qk1(qkQk1Pk1)Qk2Pk1
                                      =(Pk1Qk2Qk1Pk2).

觀察 PkQk1QkPk1(Pk1Qk2Qk1Pk2),我們發現後者可以從原式中的 kk1 代替而得到。依此類推,我們會得到一連串的等式:

                             Pk1Qk1=(1)(Pk1Qk2Qk1Pk2)
                                 =(1)2(Pk2Qk3Qk2Pk3)
                                 
                                 =(1)k2(P2Q1Q2P1)

由於 δ1=[q1]=q1=P1Q1δ2=[q1,q2]=q1+1q2=P2Q2,我們知道 P1P2Q1Q2 的值。

{P1=q1Q1=1P2=q1q2+1Q2=q2

因此分子 Pk1Qk1=(1)k2(P2Q1Q2P1)=(1)k2[(q1q2+1)1q2(q1)]=(1)k2=(1)k,於是

δkδk1=PkQkPk1Qk1=PkQk1QkPk1QkQk1=(1)kQkQk1


若將證明1的 δkδk1=(1)kQkQk1 等號兩邊同乘 QkQk1,我們得到

(δkδk1)QkQk1=(PkQkPk1Qk1)QkQk1=PkQk1QkPk1=(1)k.

上式透露出 PkQk 是互質的(根據Bezout定理),我們觀察表二也可發現到漸近分數一定是最簡分數。

證明1的結論也說明了兩個相鄰漸近的差會隨著漸近分數取得越準確(i 越大,Qi也越大)而越小,再次觀察表二,結論確實如此。經過不斷地「左右震盪」,最終會到達 ab

證明2:兩個漸近分數的差 δkδk2=(1)k1QkQk2k3

證明1中我們證明了兩個相鄰漸近分數的差會逐漸縮小。證明2是說明同側(參照圖一,在ab的左側或右側)的漸近分數隨著足碼(k)取得越大,左側(足碼為奇數)的漸近分數會越大,右側(足碼為偶數)的漸近分數會越小(Monotonicity properties of convergents.)。

<pf> δkδk2=PkQkPk2Qk2
            =PkQk2Pk2QkQkQk2
            =(qkPk1+Pk2)Qk2Pk2(qkQk1+Qk2)QkQk2
            =(qkPk1Qk2+Pk2Qk2)(qkPk2Qk1+Pk2Qk2)QkQk2
            =qk(1)k1QkQk2 (since PkQk1QkPk1=(1)k by 證明1) 

當足碼(k)是奇數時,qk(1)k1QkQk2為正數;當足碼為偶數時,qk(1)k1QkQk2為負數。可參照圖一。

圖一



1.4 回顧 127x52y+1=0
我們已經證明、也給出了關於一次不定方程的求解公式。現在再回頭看 12752 化為連分數的過程。

{(a=b×q+r)127=52×2+2352=23×2+623=6×3+56=5×1+15=1×5+0.

透過不斷地代換(用下面的式子代換上一條式子),我們得到:1=5×16=(236×3)6
                                                                                                                                              =6×(4)+23
                                                                                                                                              =(5223×2)×(4)+23
                                                                                                                                              =23×9+(52)×4
                                                                                                                                              =(12752×2)×9+(52)×4
                                                                                                                                              =127×952×22

最後得到一組解 (x0,y0)=(9,22)。但是這種不斷替換的方法實在太累人了,不如套用上面的求解公式便捷。


2.1 無限簡單連分數(infinite simple continued fraction)
並非任何實數都能表示成有限簡單連分數, 例如 2, π

化成無限連分數的步驟:(1)Split (2)Flip (3)RAT(有理化)。可參考下面的影片(MathForKid65)。

所有的無理數都能用無限簡單連分數表示,且表示方式是唯一的(證明略)。

1770年,拉格朗日證明一個數字能表示成循環連分數,若且唯若此數為二次無理數(二次無理數是某些有理數係數的一元二次方程式的根),例如下面影片的範例 33 是方程式 x23=0 的根,所以 3 可表示成循環連分數。


一個計算線上連分數的網站:http://www.andrewduncan.ws/goldenratio/continuedfractions/

無限簡單連分數有許多與有限簡單連分數類似的性質。例如我們在1.3 連分數的第k個漸近分數(the kth convergent of continued fraction)中提到的遞迴關係式,也可套用至此,因為我們在推導過程並無使用到「有限步驟」的條件。


沒有留言:

張貼留言