Mol(Math Object Library) fot .Net
The NonlinearEquations type exposes the following members.
コンストラクター
名前 | 説明 | |
---|---|---|
NonlinearEquations(NonlinearEquations..::..ComputeEquationsAt) |
関数値計算用デリゲートを指定して非線形連立方程式の最小二乗問題を解きます。
| |
NonlinearEquations(String, NativeDll) |
ロードされたネイティブ DLL(NativeDll)中の関数名を指定してインスタンスを作成するコンストラクタ。
|
メソッド
名前 | 説明 | |
---|---|---|
ComputeEquations |
非線形連立方程式の値 F(x) を計算します
| |
ComputeJacobian |
ヤコビ行列を計算します。
| |
Dispose |
IDisposable インターフェースメンバ。C++ Dll に割り当てられたメモリー資源を解放します。
メモリー資源は当然ながらガベージコレクションによって解放されますが、いつ解法されるかはわかりません。
以後、完全に使用しないと判明したオブジェクトは Dispose() を呼び出して積極的に資源を解法することをお勧めします。
(Overrides _Mol..::..Dispose()()()().) | |
MinimizeNorm(VectorDenseDouble, VectorDenseDouble) |
非線形最小二乗問題を解きます。
非線形連立方程式 F(x) のユークリッドノルム(各成分の二乗和の平方根)を信頼領域法を用いて最小化します。
| |
MinimizeNorm(VectorDenseDouble, VectorDenseDouble, NonlinearEquations..::..OPTIMISER) |
非線形最小二乗問題を解きます。
非線形連立方程式 F(x) のユークリッドノルム(各成分の二乗和の平方根)を最小化します。
| |
MinimizeNorm(VectorDenseDouble, VectorDenseDouble, VectorDenseDouble, VectorDenseDouble) |
非線形最小二乗問題を信頼領域法を用いて解きます。
非線形連立方程式 F(x) のユークリッドノルム(各成分の二乗和の平方根)を最小化します。
x は L < x < U の範囲で検索されます。
| |
MinimizeNorm(VectorDenseDouble, VectorDenseDouble, VectorDenseDouble, VectorDenseDouble, NonlinearEquations..::..OPTIMISER) |
非線形最小二乗問題を解きます。
非線形連立方程式 F(x) のユークリッドノルム(各成分の二乗和の平方根)を最小化します。
x は L < x < U の範囲で検索されます。
|
フィールド
プロパティ
名前 | 説明 | |
---|---|---|
CallCounter |
デリゲートやネイティブ DLL の形で供給した非線形関数の計算カウンターです。
MinimizeNorm() メソッド等の繰り返し計算一回につき複数回の関数呼び出しが生じます。従って、繰り返し計算IterationCountより
本プロパティの値の方が処理量の目安になります。
初期値はゼロです。任意の値を設定して、その値からカウントアップすることもできます。
| |
FinalNorm |
MinimizeNorm() メソッド終了時関数値のユークリッドノルム(二乗和の平方根)です。
| |
GrowScale |
単純探索で使用される、関数値減少(成功)時の移動幅増幅スケール(デフォルトは6.0)
| |
InitialNorm |
MinimizeNorm() メソッド呼出し時関数値のユークリッドノルム(二乗和の平方根)です。
| |
InitialTrustRegionSize |
MinimizeNorm() に「信頼領域法」が指定された場合に用いられる信頼領域サイズの初期サイズ。
初期値は 100 が設定されています。
| |
IterationCount |
MinimizeNorm() メソッドの終了時の繰り返し計算数です。
| |
JacobianDifferenceScale |
ヤコビ行列を計算する場合の独立変数 x に対する摂動幅(dx) を決めるスケールファクターです。
ヤコビ行列は (F(x+dx)-F(x))/dx という形で計算されます。ここで dx = JacobianDifferenceScale*x となります。
ただし、x が小さい場合は dx = DifferenceScale となります。もし、ヤコビ行列が特異な場合は dx の値は調節されます。
初期値は 1.0e-5 です。
| |
JacobianMatrix |
MinimizeNorm() メソッドで使用されるヤコビー行列です(初期値は null)。
設定することは可能ですが、MinimizeNorm()の指定に合致しない場合は新規に作成されるので、特に設定する必要はありません。
| |
MaximumIterationCont |
MinimizeNorm() メソッドで使用される、最大繰り返し計算回数。初期値は 1000 です。
| |
MinimumNorm |
非線形最小二乗値計算メソッド MinimizeNorm() の収束判定に使用されます。 各計算式の二乗和の平方根(Norm)の最小値です。 (ΣFi(X)2)1/2 < MinimumNorm となった時に計算は終了します(信頼領域法、直接探索法共通)。 初期値は 1.0e-5 です。 | |
MinimumNormChange |
非線形最小二乗値計算メソッド MinimizeNorm() で使用される、関数値のユークリッドノルムの最小減少幅です。 各繰り返し計算で、 ||F(x)||2 - ||F(x) - J(x)s||2 < MinimumNormChange の場合、計算は終了します。 ここで F(x) は関数値(ベクトル)、J(x) はヤコビ行列(Jacobian)、そして s は移動幅(trial step)のベクトル。 初期値は 1.0e-5 です。 | |
MinimumTrialStep |
探索移動距離の最小値。 初期値は 1.0e-5 です。 | |
MinimumTrustRegion |
非線形最小二乗値計算メソッド MinimizeNorm() の信頼領域法で収束判定に使用されます。 各繰り返し計算で都度得られる信頼領域をΔとすると、 Δ < MinimumTrustRegion となった時に信頼領域法計算は終了します。 初期値は 1.0e-5 です。 | |
MinimumYacobianNorm |
ヤコビ行列を計算する場合、行列が特異かどうか判定する定数です。 非線形最小二乗値計算メソッド MinimizeNorm() で使用されます。 ヤコビ行列をを J(x) とすると、 ||J(x)(1:m,j)||2 < SingularYacobianNorm, j = 1, ..., n の場合、行列は特異であると見なされます。 初期値は 1.0e-5 です。 | |
MolHandle |
Mol.C++.dll(ネイティブDLL)と Mol.Net.Dll(.Net 用マネージドDLL)間の情報を管理するハンドル。
NativeDll クラスでユーザ作成のネイティブDLLを作成する場合等に利用できます。
(Inherited from _Mol.) | |
MolType |
Molオブジェクトの属性(_Mol..::..MOL_TYPE)。
(Inherited from _Mol.) | |
ShrinkScale |
単純探索で使用される、関数値増加(失敗)時に反対方向に移動幅を減少させるスケール(デフォルトは-0.5)
| |
StopCondition |
MinimizeNorm() メソッドの終了状態です。
| |
TagComplex |
NonlinearEquations が扱う連立方程式の計算時に引数として渡される複素数ベクトル(配列)です。
ユーザサイドで .Net と NativeDll 間のデータ交換に使用できます。
必要なければ特に設定する必要はありません(NULLがセットされます)。
NonlinearEquations クラスが本プロパティを参照することはありません。
| |
TagDouble |
NonlinearEquations が扱う連立方程式の計算時に引数として渡される実数ベクトル(配列)です。
ユーザサイドで .Net と NativeDll 間のデータ交換に使用できます。
必要なければ特に設定する必要はありません(NULLがセットされます)。
NonlinearEquations クラスが本プロパティを参照することはありません。
| |
TagInt |
NonlinearEquations が扱う連立方程式の計算時に引数として渡される整数ベクトル(配列)です。
ユーザサイドで .Net と NativeDll 間のデータ交換に使用できます。
必要なければ特に設定する必要はありません(NULLがセットされます)。
NonlinearEquations クラスが本プロパティを参照することはありません。
| |
UserType |
Molオブジェクトの追加属性(_Mol..::..USER_TYPE)。
例えば一般行列でも要素が対称なら、その属性を積極的にセットすることでソルバーは最適な手法を選択することができます。
当然ながら、間違った設定は間違った値や計算不能な状態に陥りますので注意して設定してください。
(Inherited from _Mol.) |