Common Library
0.9.5
|
Lagrange多項式 [詳解]
公開メンバ関数 | |
template<class In1 , class In2 > | |
Lagrange (In1 sx, In1 ex, In2 sy, In2 ey) | |
サンプル点の座標を指定して構築 [詳解] | |
T | operator() (T x) const |
指定した X 座標での Y の値を返す [詳解] | |
Lagrange多項式
Lagrange多項式は以下の多項式とサンプル点の積和で表される。
l_i( x ) = Πj,j≠i ( x - x_j ) / ( x_i - x_j ) = ( x - x_0 )( x - x_1 )...( x - x_i-1 )( x - x_i+1 )... / ( x_i - x_0 )( x_i - x_1 )...( x_i - x_i-1 )( x_i - x_i+1 )... L( x ) = Σi y_i・l_i( x )
( x_i, y_i ) がサンプル点を表す。
|
inline |
サンプル点の座標を指定して構築
指定したサンプル点に対して以下のチェックを行う。
1 のテストにパスしなかった場合は例外 tadah_fussy::exception::NegativeLength が、2 のテストに パスしなかった場合は例外 tadah_fussy::exception::NotEqualLength が投げられる。
テンプレート引数の In1 と In2 はそれぞれ二つのデータ列の反復子の型を表す。 tadah_fussy::exception::NegativeLength のテンプレート引数は、[ sx, ex ) が不正だった場合 std::iterator_traits< In1 >::difference_type に、 [ sy, ey ) が不正だった場合 std::iterator_traits< In2 >::difference_type になる。 また、tadah_fussy::exception::NotEqualLength のテンプレート引数は必ず std::iterator_traits< In1 >::difference_type になる。
sx,ex | サンプル点の X 座標の数列 |
sy,ey | サンプル点の Y 座標の数列 |
|
inline |
指定した X 座標での Y の値を返す
x | X 座標 |