template<class T>
class ConvergenceTest_ByMax< T >
差分と値の比率の最大値による収束判定
反復処理において、前の値 p と今回の値 c の差分 c - p と c との比率の絶対値 | ( c - p ) / c | を求める ( 但し c = 0 ならば | c - p | をそのまま用いる )。 一回の処理で得られる全ての値の中からその最大値を抽出し、その値が指定したしきい値以下かどうかを判定する。
下記のように利用する。
std::vector< double > preVal( n );
:
std::vector< double > curVal( n );
for (;;) {
:
test.init();
for ( std::vector< double >::size_type i = 0 ; i < preVal.size() ; ++i )
test( preVal[i], curVal[i] );
if ( test.isConvergent() )
break;
}
差分と値の比率の最大値による収束判定
Definition: equation.h:284
T e() const
設定されているしきい値を返す
Definition: equation.h:329
一回の反復処理で扱う値がただ一つであれば、ConvergenceTest_BySum と ConvergenceTest_ByMax の結果は一致する。