RootFinding[Isolate] - 1 変数多項式または多項式システムの実数根の分離
|
使い方
|
|
Isolate(f)
Isolate(J, X)
Isolate(J, X, digits=d, constraints=cons, output=outpt, method=mthd)
|
|
パラメータ
|
|
f
|
-
|
1 変数の実多項式
|
J
|
-
|
多項式のリストもしくは集合、または PolynomialIdeal
|
X
|
-
|
(オプション) 変数のリスト
|
d
|
-
|
(オプション) 有効桁数
|
cons
|
-
|
(オプション) 整多項式のリスト
|
outpt
|
-
|
(オプション) 出力の型:numeric、midpoint または interval
|
mthd
|
-
|
(オプション) 使用するアルゴリズムの名前:RS または RC。デフォルトは RS です。
|
|
|
|
|
モデルの説明
|
|
•
|
RootFinding[Isolate] コマンドは有限の解を持つ 1 変数多項式または多項式システムの実数根を分離します。デフォルトでは、コマンドは各根の分離区間を計算し、Digits の現設定に基づいてそれらの区間の中間点を数値的に評価します。プログラムが返す有効数字はすべて正しく、純粋な数値手法とは異なり、根が失われることはありません。ただし、重複する根は破棄されます。このコマンドでは記号係数または複素係数はサポートされていません。
|
•
|
オプション digits=d は精度を制御します。数値的に評価する結果における仮数の先頭 d 桁の正しさはこのオプションによって保証されます。
|
•
|
オプション output は出力形式を指定します。出力形式には、interval、midpoint または numeric (デフォルト) のいずれかを指定できます。output=interval は有理点を末端に持つ区間のリスト (各区間には根が存在する) を返します。output=midpoint は各区間の中間点を厳密に計算した結果による有理近似のリストを返します。output=numeric は、希望の精度で中間点を数値的に評価して得た浮動小数点数のリストを返します。
|
•
|
オプション constraints は整多項式のリストをとり、それらをシステムの根で評価します。このオプションがもたらす数値誤差は evalf を使用した直接評価によるものより小さいため、このオプションの方が好ましいといえます。
|
•
|
オプション method は使用するアルゴリズムを指定します。指定可能なアルゴリズムは RS (デフォルト) または RC です。method=RS は F. Rouillier による RealSolving (RS) C ライブラリを使用して得られた結果を返します。method=RC は M. Moreno Maza などによる RegularChains パッケージを使用して得られた結果を返します。
|
|
オプション constraints と method=RC は同時に指定できません。method=RC と constraints の両方が指定されている場合、Isolate は method=RS を使用して計算を実行します。
|
•
|
システムに対する複素解の数は有限である必要があります。さもなければ、Isolate はエラーを返します。
|
•
|
この関数は RootFinding パッケージの一部であるため、Isolate(..) 形式での利用はその前に with(RootFinding) コマンドが実行されている場合に限ります。ただしコマンドをロングフォームRootFinding[Isolate](..) で指定すると、いつでも利用可能です。
|
|
|
アプリケーションと例題
|
|
| (4.1) |
| (4.2) |
| (4.3) |
| (4.4) |
以下は、多変数システムの例です。
| (4.5) |
| (4.6) |
>
|
R := Isolate(F, [x,y], output='midpoint');
|
| (4.7) |
| (4.8) |
>
|
R := Isolate(F, [x,y], output='interval', method='RC');
|
| (4.9) |
| (4.10) |
以下は、不適切な制約の例です。
>
|
w := expand(mul(x-i, i=1..10)):
|
次の例では、係数をわずかにずらします:
>
|
R, C := Isolate(f, x, constraints=[w], digits=10):
|
| (4.11) |
この結果はより高い精度で得られた結果と一致します:
>
|
Isolate(f, x, constraints=[w], digits=20);
|
| (4.12) |
この結果を直接評価の結果と比較します:
>
|
map2(evalf[20]@eval, w, R);
|
| (4.13) |
以下は、無限の複素解を持つ、より硬い多変数システムの例です。Isolate によって計算されたグレブナ基底が記憶されるよう、入力は PolynomialIdeal として与えられています。
>
|
with(PolynomialIdeals):
|
>
|
J := <53*y*z-28*y*x^2+5*y^2*x^2*z+13*y^4*z,
83*y^2*z+9*x^2*z^2-60*y^2*x^2*z-83*y^4*z,
62*x*y+37*y^3+5*z*x^3+96*y^4*z>:
|
Error, (in RootFinding:-Isolate) the system has an infinite number of solutions
| |
基底が記憶されます:
>
|
IdealInfo:-KnownGroebnerBases(J);
|
| (4.14) |
>
|
J := <53*y*z-28*y*x^2+5*y^2*x^2*z+13*y^4*z,
83*y^2*z+9*x^2*z^2-60*y^2*x^2*z-83*y^4*z,
62*x*y+37*y^3+5*z*x^3+96*y^4*z>:
|
>
|
Isolate(J, [x,y,z],method='RC');
|
Error, (in RootFinding:-Isolate) the system has an infinite number of solutions
| |
|
|
リファレンス
|
|
|
Rouillier, F. "Solving zero-dimensional systems through the rational univariate representation." Journal of Applicable Algebra in Engineering, Communication, and Computing, Vol. 9, No. 5. 1999: 433-461.
|
|
Rouillier, F. and Zimmermann, P. "Efficient isolation of polynomial real roots." Journal of Computational and Applied Mathematics, Vol. 162 No. 1. 2003:33-50.
|
|
Aubry, P., Lazard, D., and Moreno Maza, M. "On the theories of triangular sets." J. of Symb. Comput., Vol. 28, Num 1-2 (1999): 105-124.
|
|
Xia, B. and Yang, L. "An Algorithm for Isolating the Real Solutions of Semi-algebraic Systems." J. of Symb. Comput. , Vol. 34, Num. 5 (2002): 461-477.
|
|
|