Common Library  0.9.5
ConvergenceTest_BySum< T > クラステンプレート

差分の和と全体の和の比率による収束判定 [詳解]

公開メンバ関数

 ConvergenceTest_BySum (T e)
 しきい値を指定して構築 [詳解]
 
void init ()
 求めた総和を初期化(ゼロクリア)する [詳解]
 
void init (T e)
 しきい値を再設定し、求めた総和を初期化(ゼロクリア)する [詳解]
 
void operator() (T preVal, T newVal)
 前後の値から差分と総和を求める [詳解]
 
bool isConvergent ()
 収束しているかを判定する [詳解]
 
e () const
 設定されているしきい値を返す [詳解]
 

詳解

template<class T>
class ConvergenceTest_BySum< T >

差分の和と全体の和の比率による収束判定

反復処理において、前の値 p と今回の値 c の差分の絶対値 | c - p | と c のそれぞれに対して和をを求める。 一回の処理で得られる和 Δs = Σ| c - p | と S = Σc の比率 Δs / S を求め、 その値が指定したしきい値以下かどうかを判定する。但し、S = 0 であれば判定結果は常に true となる。

下記のように利用する。

ConvergenceTest_BySum< double > test( e ); // e はしきい値
std::vector< double > preVal( n ); // 前の値
: // preVal に初期値をセット
std::vector< double > curVal( n ); // 現在の値
for (;;) {
: // curVal に値をセット
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:206
T e() const
設定されているしきい値を返す
Definition: equation.h:252

一回の反復処理で扱う値がただ一つであれば、ConvergenceTest_BySum と ConvergenceTest_ByMax の結果は一致する。

構築子と解体子

◆ ConvergenceTest_BySum()

template<class T >
ConvergenceTest_BySum< T >::ConvergenceTest_BySum ( e)
inline

しきい値を指定して構築

引数
e判定時のしきい値

関数詳解

◆ init() [1/2]

template<class T >
void ConvergenceTest_BySum< T >::init ( )
inline

求めた総和を初期化(ゼロクリア)する

戻り値
なし

◆ init() [2/2]

template<class T >
void ConvergenceTest_BySum< T >::init ( e)
inline

しきい値を再設定し、求めた総和を初期化(ゼロクリア)する

引数
e新たなしきい値
戻り値
なし

◆ operator()()

template<class T >
void ConvergenceTest_BySum< T >::operator() ( preVal,
newVal 
)

前後の値から差分と総和を求める

引数
preVal前の値
newVal現在の値
戻り値
なし

◆ isConvergent()

template<class T >
bool ConvergenceTest_BySum< T >::isConvergent ( )
inline

収束しているかを判定する

戻り値
差分の和と総和の比率が充分に小さければ(しきい値より小さければ) true を返す

◆ e()

template<class T >
T ConvergenceTest_BySum< T >::e ( ) const
inline

設定されているしきい値を返す

戻り値
しきい値

このクラス詳解は次のファイルから抽出されました: