RootFinding[WitnessPoints] - 多項式システムの実数の連結コンポーネントのサンプリング
|
使い方
|
|
WitnessPoints(sys)
WitnessPoints(sys, vars)
WitnessPoints(sys, vars, digits=d)
|
|
パラメータ
|
|
sys
|
-
|
方程式および有理多項式間の狭義不等式のリスト
|
vars
|
-
|
(オプション)名前のリスト; 変数
|
d
|
-
|
(オプション)正整数;有効桁数
|
|
|
|
|
モデルの説明
|
|
•
|
WitnessPoints 関数は、sys の実数解の各連結コンポーネントの少なくとも 1 つの点を返します。
|
•
|
システム sys は次のいずれかとなります。:
|
–
|
または、 形式の多項不等式、および、有理係数を伴う 形式の狭義不等式のリスト
|
•
|
点は 形式の等式のリストで表されます。
|
•
|
sys が等式のリストであるとき、出力の各点は sys の解の有理近似値であり、その精度は digits=d オプション(デフォルト値:Digits)で制御されます。より詳細には、 が WitnessPoints コマンドにより返される点である場合、sys の解 は存在し、次のようになります。:
|
•
|
名前のリスト vars が与えられる場合、vars は sys 内に表示されるすべての変数を含む必要があります。この場合、WitnessPoints によって返される点の座標は vars に従って順序付けられます。
|
|
|
注意:
|
|
•
|
同一の連結コンポーネントに複数の点が属することが可能です。
|
•
|
一部の入力については、WitnessPoints コマンドを何度か実行すると、プロシージャ内の rand 関数の使用により異なる出力が返される可能性があります。関数の実行結果を確定的にする方法としては、randomize コマンドの使用があります。
|
|
|
アプリケーションと例題
|
|
WitnessPoints が等式のサンプル解を計算します。:
>
|
WitnessPoints( [ x^2+y+3=0 ] );
|
| (5.1) |
>
|
WitnessPoints( [ (x^2+(y-1)^2)^2=0 ] );
|
| (5.2) |
あるいは、等式のシステムの場合は次にようになります。
>
|
WitnessPoints( [ x^2+y^2,z-x^3=0 ] );
|
| (5.3) |
あるいは、不等式の集合の場合は次のようになります。:
>
|
evalf( WitnessPoints( [ x^2+y+3>0, 3*y^3-x^5<10 ] ) );
|
| (5.4) |
次の例は、 -座標が区間 内にある、単位円の内部および外部の点を計算します。
>
|
WitnessPoints( [ x^2+y^2-1<>0, x^2<1 ], [x,y] );
|
| (5.5) |
次の例で、式 のシステムが実数解を持たないことを確認します。
>
|
WitnessPoints( [ x^2+y^2-1<>0, x^2<-1 ], [x,y] );
|
| (5.6) |
次の例は計算した解の精度を示しています。
>
|
sols20 := WitnessPoints( [ (x-3)^2+y^4-y=0 ], digits=20 ):
|
>
|
sols30 := WitnessPoints( [ (x-3)^2+y^4-y=0 ], digits=30 ):
|
>
|
sols50 := WitnessPoints( [ (x-3)^2+y^4-y=0 ], digits=50 ):
|
>
|
A20 := eval( <x,y>, sols20[1] );
|
| (5.7) |
>
|
A30 := eval( <x,y>, sols30[1] );
|
| (5.8) |
>
|
X := eval( <x,y>, sols50[1] );
|
| (5.9) |
>
|
Norm( A20 - X, 1. )/Norm( A20, 1. );
|
| (5.10) |
>
|
Norm( A30 - X, 1. )/Norm( A30, 1. );
|
| (5.11) |
次の例では、確定関数内の WitnessPoints コマンド を変換するため、rand 関数に種(シード)を与えます。
>
|
WitnessPoints( [y*z,x*y-z^2], [x,y,z] );
|
| (5.12) |
>
|
WitnessPoints( [y*z, x*y-z^2], [x,y,z] );
|
| (5.13) |
| (5.14) |
>
|
WitnessPoints( [y*z,x*y-z^2], [x,y,z] );
|
| (5.15) |
>
|
WitnessPoints( [y*z,x*y-z^2], [x,y,z] );
|
| (5.16) |
等式と不等式(inequalities)や不等式(inequations)が混在している場合、このコマンドは式を処理できません。
>
|
WitnessPoints( [ x < 0, x = 3 ] );
|
エラー、(RootFinding:-WitnessPoints 内で) WitnessPoints は、等式と不等式(inequalities)や不等式(inequations)の混在する式を処理できません。
| |
|
|