Common Library  0.9.5
tadah_fussy::math_lib::polynomial::Lagrange< T > クラステンプレート

Lagrange多項式 [詳解]

公開メンバ関数

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

詳解

template<class T>
class tadah_fussy::math_lib::polynomial::Lagrange< T >

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 ) がサンプル点を表す。

覚え書き
x_i ≠ x_j ( i ≠ j ) を満たす必要があることに注意。内部ではそのチェックは行っていない。

構築子と解体子

◆ Lagrange()

template<class T >
template<class In1 , class In2 >
tadah_fussy::math_lib::polynomial::Lagrange< T >::Lagrange ( In1  sx,
In1  ex,
In2  sy,
In2  ey 
)
inline

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

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

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

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 座標の数列

関数詳解

◆ operator()()

template<class T >
T tadah_fussy::math_lib::polynomial::Lagrange< T >::operator() ( x) const
inline

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

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

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