rat
説明
___ = rat(___,
は、1 つ以上の Name,Value
)Name,Value
引数のペアによって指定された追加オプションを使用して X
を近似します。
例
無理数の有理近似を求める
無理数 をシンボリック数として宣言します。
X = sqrt(sym(3))
X =
この数の有理分数近似 (打ち切られた連分数) を求めます。結果は文字ベクトルの式で返されます。
R = rat(X)
R = '2 + 1/(-4 + 1/(4 + 1/(-4 + 1/(4 + 1/(-4)))))'
文字ベクトル R
からシンボリック式を表示します。
displayFormula(["'A rational approximation of X is'"; R])
異なる精度による n の値の近似
数学的な量 をシンボリック定数として表します。定数 は無理数です。
X = sym(pi)
X =
vpa
を使用して有効桁数 12 桁の小数表現で を表現します。
Xdec = vpa(X,12)
Xdec =
関数 rat
を使用して、既定の許容誤差で の有理分数近似を求めます。結果は文字ベクトルの式で返されます。
R = rat(sym(pi))
R = '3 + 1/(7 + 1/(16))'
str2sym
を使用して文字ベクトルを単分数に変換します。
Q = str2sym(R)
Q =
分数 の小数表現を示します。この近似は小数点以下 6 桁まで と一致します。
Qdec = vpa(Q,12)
Qdec =
近似の精度を高めるために許容誤差を指定できます。
R = rat(sym(pi),1e-8)
R = '3 + 1/(7 + 1/(16 + 1/(-294)))'
Q = str2sym(R)
Q =
結果として返された近似 は小数点以下 9 桁まで と一致します。
Qdec = vpa(Q,12)
Qdec =
方程式の解の近似
vpasolve
を使用して方程式 を解きます。解は小数表現として返されます。
syms x
sol = vpasolve(cos(x) + x^2 + x == 42)
sol =
連分数として解を近似します。
R = rat(sol)
R = '6 + 1/(-14 + 1/(5 + 1/(-5)))'
連分数の分母の係数を取り出すには、関数 regexp
を使用して文字列配列に変換します。
S = char(regexp(R,'(-*\d+','match'))
S = 3x4 char array
'(-14'
'(5 '
'(-5 '
シンボリック配列として結果が返されます。
coeffs = sym(S(:,2:end))
coeffs =
str2sym
を使用して連分数 R
を単分数に変換します。
Q = str2sym(R)
Q =
関数 rat
で 2 つの出力引数を指定して、有理近似の分子と分母を返すこともできます。
[N,D] = rat(sol)
N =
D =
黄金比の有理近似を求める
黄金比 をシンボリック数として定義します。
X = (sym(1) + sqrt(5))/ 2
X =
許容誤差 の範囲内で 1e-4
の有理近似を求めます。
R = rat(X,1e-4)
R = '2 + 1/(-3 + 1/(3 + 1/(-3 + 1/(3 + 1/(-3)))))'
10 個の係数で有理近似を返すには、'Length'
オプションを 10
に設定します。このオプションは近似で指定された許容誤差を無視します。
R10 = rat(X,1e-4,'Length',10)
R10 = '2 + 1/(-3 + 1/(3 + 1/(-3 + 1/(3 + 1/(-3 + 1/(3 + 1/(-3 + 1/(3 + 1/(-3)))))))))'
すべて正の係数で有理近似を返すには、'Positive'
オプションを true
に設定します。
Rpos = rat(X,1e-4,'Positive',true)
Rpos = '1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1 + 1/(1))))))))))'
入力引数
X
— 入力
数値 | ベクトル | 行列 | 配列 | シンボリック数 | シンボリック配列
入力。数値、ベクトル、行列、配列、シンボリック数またはシンボリック配列として指定します。
データ型: single
| double
| sym
複素数のサポート: あり
tol
— 許容誤差
スカラー
許容誤差。スカラーとして指定します。N
と D
は N./D - X < tol
となるように X
を近似します。既定の許容誤差は 1e-6*norm(X(:),1)
です。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は関係ありません。
R2021a より前では、コンマを使用して名前と値の各ペアを区切り、Name
を引用符で囲みます。
例: 'Length',5,'Positive',true
Length
— 係数の数
正の整数
係数または連分数の項の数。正の整数として指定します。このオプションを指定すると、許容誤差引数 tol
がオーバーライドされます。
例: 5
Positive
— 正の係数を返すオプション
logical 0
(false
) (既定値) | logical 値
正の係数を返すオプション。logical 値 (boolean) として指定します。true
を指定した場合、rat
は分母がすべて正の整数の正則連分数展開を返します。
例: true
出力引数
R
— 連分数
文字配列
連分数。文字配列として返されます。
X
が m 要素の配列で、すべての要素が実数である場合、R
は m 行の文字配列として返されます。X
が複素数を含む m 要素の配列である場合、R
は 2m+1 行の文字配列として返されます。R
の最初の m 行はX
の実数部の連分数展開を表し、その後 (m+1) 番目の行の' +i* ... '
が続き、最後の m 行はX
の虚数部の連分数展開を表します。
N
— 分子
数値 | ベクトル | 行列 | 配列 | シンボリック数 | シンボリック配列
数値。数値、ベクトル、行列、配列、シンボリック数またはシンボリック配列として返されます。N./D
は X
に近づきます。
D
— 分母
数値 | ベクトル | 行列 | 配列 | シンボリック数 | シンボリック配列
除数。数値、ベクトル、行列、配列、シンボリック数またはシンボリック配列として返されます。N./D
は X
に近づきます。
制限
'Length',5,'Positive',true
といったName,Value
引数は、配列X
がシンボリック数を含む場合、またはX
のデータ型がsym
である場合にのみ指定できます。
詳細
単純連分数
関数 rat
は次の形式の単純連分数によって、X
の各要素を近似します。
ここで、整数項 の数は有限です。項の数が増えれば有理近似の精度が向上します。
バージョン履歴
R2020a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)