*17.7 有理近似 [#s14f07c8]

 : s = rat (x)
 : s = rat (x, tol)
 : [n, d] = rat (…)
tolで定義された許容値内で xの有理近似値を見つけます。

指定しない場合、デフォルトの許容値は です。 1e-6 * norm (x(:), 1)

1 つの出力引数で呼び出されると、連分数展開 (複数の項) を含む文字列を返します。

2 つの出力引数を指定して呼び出されると、 xの分数表現の分子と分母の数値行列を返します。 x = n ./ d

例えば:

 s = rat (pi)
 ⇒ s = 3 + 1/(7 + 1/16)
 [n, d] = rat (pi)
 ⇒ n =  355
 ⇒ d =  113
 n / d - pi
 ⇒ 0.00000026676
プログラミング ノート: 出力が 1 つの場合、rat連分数展開の文字列が生成されます。単純な分数 (分子が 1 つ、分母が 1 つ) の文字列を生成するには、 を使用しますrats。

See also: rats, format.
 
 : s = rats (x)
 : s = rats (x, len)
x を文字列として表される有理近似値に 変換します。

浮動小数点数の有理数近似は、分子がN、分母がDで ある単純な分数です。 x = N/D

オプションの 2 番目の引数は、 xの要素を表す文字列の最大長を定義します。デフォルトでは、lenは 13 です。

最小の有理近似値の長さが len を超える場合は、代わりにスペースで埋められたアスタリスク (*) が返されます。

行列から文字列への変換、およびその逆の変換の例。

 r = rats (hilb (4));
 x = str2num (r)
See also: rat, format.