17.7 有理近似
: 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.