Main Content

rat

説明

R = rat(X) は既定の許容誤差 1e-6*norm(X(:),1) の範囲で X有理分数近似を返します。近似は、打ち切った連分数展開を含む文字配列です。

R = rat(X,tol) は許容誤差 tol の範囲で X を近似します。

[N,D] = rat(___) は上記の構文のいずれかを使用して、N./DX を近似するような 2 つの配列 ND を返します。

すべて折りたたむ

pi の量の有理数表現を使用して、π の値を近似します。

数学的な量 π は有理数ではありませんが、それを近似した量 pi"有理数です"。これはすべての浮動小数点数が有理数であるためです。

pi の有理数表現を求めます。

format rational
pi
ans = 
     355/113   

結果の式は文字ベクトルです。rats(pi) を使用しても同じ答えが得られます。

rat を使用して pi の連分数展開を確認します。

R = rat(pi)
R = 
'3 + 1/(7 + 1/(16))'

結果は連分数展開による近似です。この展開の最初の 2 項を考慮した場合、得られる近似は 3+17=227 であり、pi と小数点以下 2 桁までしか一致しません。

ただし、rat によって示される 3 つの項すべてを考慮すると、pi と小数点以下 6 桁まで一致する値 355/113 に回復できます。

3+17+116=355113

さらに近似の精度を高めるため、許容誤差を指定します。

R = rat(pi,1e-7)
R = 
'3 + 1/(7 + 1/(16 + 1/(-294)))'

結果の近似 104348/33215pi と小数点以下 9 桁まで一致します。

4 行 4 列の行列を作成します。

format short;
X = hilb(4)
X = 4×4

    1.0000    0.5000    0.3333    0.2500
    0.5000    0.3333    0.2500    0.2000
    0.3333    0.2500    0.2000    0.1667
    0.2500    0.2000    0.1667    0.1429

X の要素を rat を使用して小さな整数比として表します。

[N,D] = rat(X)
N = 4×4

     1     1     1     1
     1     1     1     1
     1     1     1     1
     1     1     1     1

D = 4×4

     1     2     3     4
     2     3     4     5
     3     4     5     6
     4     5     6     7

2 つの行列 NDN./DX を近似します。

format rational を使用して X の要素を比率として表示します。

format rational
X
X = 
       1              1/2            1/3            1/4     
       1/2            1/3            1/4            1/5     
       1/3            1/4            1/5            1/6     
       1/4            1/5            1/6            1/7     

この形式では N が各分数の分子を示し、D が分母を示すことが明確に分かります。

入力引数

すべて折りたたむ

入力配列。クラス single または double の数値配列として指定します。

データ型: single | double
複素数のサポート: あり

許容誤差。スカラーとして指定します。NDX を近似し、abs(N./D - X) <= tol となります。既定の許容誤差は 1e-6*norm(X(:),1) です。

出力引数

すべて折りたたむ

連分数。m 行の文字配列として返されます。ここで、mX の要素数です。連分数による有理近似の精度は、項数に応じて向上します。

分子。数値配列として返されます。N./DX を近似します。

分母。数値配列として返されます。N./DX を近似します。

アルゴリズム

すべての浮動小数点数が有理数であっても、それを分母と分子が共に小さな整数である分数を使って単純な有理数に近似したほうが良い場合があります。有理数近似は、連続する部分分数展開を切り捨てることで作成されます。

関数 rat はこの形式の連分数で X の各要素を近似します。

ND=D1+1D2+1+1Dk.

D は、繰り返して整数部を取り出して、分数部分の逆数を取ることで得られます。近似の精度は、項数に応じて指数的に良くなり、X = sqrt(2) の場合に最も精度が悪くなります。X = sqrt(2) の誤差は、項数が k 個で、およそ 2.68*(.173)^k となります。近似の精度は項を 1 つ追加するごとに、10 進数の 1 桁より小さい程度に良くなります。浮動小数点数の全精度を得るには、項数は 21 個必要となります。

拡張機能

バージョン履歴

R2006a より前に導入

参考

|