Common Library
0.9.5
|
Newton多項式 [詳解]
公開メンバ関数 | |
template<class In1 , class In2 > | |
NewtonPolynomial (In1 sx, In1 ex, In2 sy, In2 ey) | |
サンプル点の座標を指定して構築 [詳解] | |
T | operator() (T x) const |
指定した X 座標での Y の値を返す [詳解] | |
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 )
|
inline |
サンプル点の座標を指定して構築
指定したサンプル点に対して以下のチェックを行う。
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 座標の数列 |
|
inline |
指定した X 座標での Y の値を返す
x | X 座標 |