|
NumberTheory`ContinuedFractions`
実数は小数として表すのが最も一般的である.このパッケージは数の別の表記法として,実数の連分数展開と,有理数の任意の底における前周期部分と周期部分への分解をサポートする.
実数 の「連分数展開」は次のような表記となる.

ここで,整数 は「部分商」と呼ばれる.有理数は有限数の部分商を持つが,無理数は無限項の連分数展開となる.連分数は整数の因数分解でも使われる(例として[Rosen]の10章を参照のこと).
数 が部分商 を持つ場合,部分商の最初の 個 を考えることで形成される有理数 は の「 次近似分数」と呼ばれる.指定の数の近似分数は,与えられた実数の,小さな分母を使った最適な有理近似であると言うこともできる.
Mathematica バージョン4.0以降では,有理数の連分数表記と周期的表記の生成に,カーネル関数ContinuedFractionとRealDigitsが使える.FromContinuedFractionとFromDigitsはこのような操作の逆を行う場合に用いられる.このパッケージは近似分数の計算と,連分数および周期表記のタイプセットのための関数を提供することで,これらの機能を高める.

連分数
パッケージをロードする.
In[1]:= <<NumberTheory`ContinuedFractions`
カーネル関数ContinuedFractionは連分数の部分商のリストを生成する.以下はpiの分解の最初の10項目である.
In[2]:= cf = ContinuedFraction[Pi, 10]
Out[2]= 
より分かりやすいネストした分数の和での表記を得るために,ContinuedFractionの結果をContinuedFractionFormでラップする.
In[3]:= ContinuedFractionForm[cf]
Out[3]= 
2次の無理数は という形である.ここで, , , は整数であり, は完全正方ではない正の数, は非零で を割り切ることができる.このような数は無限であるが周期的な連分数展開を持つ.そのため,周期的な循環が始まる前の有限部分とそれに続く周期的に繰り返される部分について有限的に表現することができる.
次の式は2次の無理数である7の平方根の連分数展開である.ContinuedFractionFormについて定義されたタイプセット規則により,循環する部分はカッコでくくられ,繰返しを表すための点が加えられる.
In[4]:= cf = ContinuedFractionForm[ ContinuedFraction[Sqrt[7]] ]
Out[4]= 
連分数はNormalを適用すると,有理数または2次無理数に戻すことができる.
In[5]:= Normal[cf]
Out[5]= 

近似分数と2次無理数
黄金比の部分商はすべて1である.
In[6]:= cf = ContinuedFractionForm[ ContinuedFraction[GoldenRatio, 10] ]
Out[6]= 
連分数の近似分数のリスト.これらの近似分数の分子と分母はフィボナッチ(Fibonacci)数である.
In[7]:= Convergents[cf]
Out[7]= 
数の近似分数は,両辺を入れ換えるとその値に収束する.
In[8]:= % - N[GoldenRatio]
Out[8]= 
この他に,ある特定のタイプの数の便利な表記として,基底 での展開がある.このような展開のすべてが有限である訳ではない.正の整数 および が において であるなら,無限の基底 展開 は周期的となる.一般に,次の基底展開

は,以下のように表す.

循環しない要素が前周期的部分を構成し,循環する要素が周期的部分を構成する.

周期展開
次の有理数は有限の小数展開を持つ.前周期的部分の長さは2,周期的部分の長さはゼロである.
In[9]:= PeriodicForm[RealDigits[ 1/20 ]]
Out[9]= 
次の有理数は無限の小数展開を持つ.前周期的部分の長さはゼロで,周期的部分の長さは16である.周期的部分はハイライトされる.
In[10]:= PeriodicForm[RealDigits[ 1/17 ]]
Out[10]= 
10進数 は2進数表記では無限となる.そのため,バイナリのディジタルコンピュータでは を保存しようとすると表記エラーが生じる.
In[11]:= PeriodicForm[RealDigits[ 1/10, 2 ], 2]
Out[11]= 
次の式は2進数の小数展開から前の有理数を再構築する.
In[12]:= Normal[ % ]
Out[12]= 
周期的展開はどのような基底にも見られる.基底が36未満の場合,各桁の表記に英字アルファベットが用いられる.
In[13]:= PeriodicForm[RealDigits[573498753434/13, 16], 16]
Out[13]= 
小数展開すると周期的部分に非常に長い という数のペアが含まれる古典的な例([Glaisher]を参照).
In[14]:= PeriodicForm[RealDigits[1/9801]]
Out[14]= 
References
[Rosen] K. H. Rosen,「Elementary Number Theory and Its Applications」,Third edition,Addison Wesley,Reading, MA,1993.
[Glaisher] J. W. L. Glaisher,「Messenger of Math. 2」,41,1873.
|