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

Newton多項式 [詳解]

公開メンバ関数

template<class In1 , class In2 >
 NewtonPolynomial (In1 sx, In1 ex, In2 sy, In2 ey)
 サンプル点の座標を指定して構築 [詳解]
 
operator() (T x) const
 指定した X 座標での Y の値を返す [詳解]
 

詳解

template<class T>
class NewtonPolynomial< T >

Newton多項式

Newton多項式は以下の多項式とサンプル点の積和で表される。

N( t ) = Σi [y_0,y_1,...y_i]Π0≦j≦i-1 ( x - x_j )

[y_0,y_1,...y_i] は i 階差分商といい、以下の漸化式が成り立つ。

[y_0] = y_0, [y_0,y_1] = ( y_1 - y_0 ) / ( x_1 - x_0 )
[y_0,y_1,...y_i] = { [y_1,y_2,...y_i] - [y_0,y_1,...y_i-1] } / ( x_i - x_0 ) 
覚え書き
x_i ≠ x_j ( i ≠ j ) を満たす必要があることに注意。内部ではそのチェックは行っていない。

構築子と解体子

◆ NewtonPolynomial()

template<class T >
template<class In1 , class In2 >
NewtonPolynomial< T >::NewtonPolynomial ( In1  sx,
In1  ex,
In2  sy,
In2  ey 
)
inline

サンプル点の座標を指定して構築

指定したサンプル点に対して以下のチェックを行う。

  1. X, Y の要素の範囲が適切か(開始と終了が逆になっていないか)
  2. X と Y の要素数が一致しているか

1 のテストにパスしなかった場合は例外 ExceptionNegativeLength が、2 のテストに パスしなかった場合は例外 ExceptionNotEqualLength が投げられる。

テンプレート引数の In1 と In2 はそれぞれ二つのデータ列の反復子の型を表す。 ExceptionNegativeLength のテンプレート引数は、[ sx, ex ) が不正だった場合 std::iterator_traits< In1 >::difference_type に、 [ sy, ey ) が不正だった場合 std::iterator_traits< In2 >::difference_type になる。 また、ExceptionNotEqualLength のテンプレート引数は必ず std::iterator_traits< In1 >::difference_type になる。

引数
sx,exサンプル点の X 座標の数列
sy,eyサンプル点の Y 座標の数列

関数詳解

◆ operator()()

template<class T >
T NewtonPolynomial< T >::operator() ( x) const
inline

指定した X 座標での Y の値を返す

引数
xX 座標
戻り値
Y 座標の値

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