Geomi
|
Public Member Functions | |
std::vector< double > | chebyshev (int degree) |
void | check_computed (int s, std::vector< double > dates) |
std::vector< std::vector< double > > | polynomials (int s, std::vector< double > dates) |
std::vector< std::vector< double > > | polynomials_derivatives (int s, std::vector< double > dates) |
void | compute_polynomials () |
void | compute_polynomials_derivatives () |
Protected Attributes | |
std::vector< double > | m_dates |
int | m_degree |
bool | m_computed |
std::vector< std::vector< double > > | m_polynomials |
std::vector< std::vector< double > > | m_polynomials_derivatives |
|
inline |
Calcul les polynomes de Lagrange
\[ \phi_j(d_i)=\prod_{0\leq k\leq s,\;k\neq j}\frac{d_i-\alpha_k}{\alpha_j-\alpha_k} \]
Le résultat est un vecteur de taille m_dates.size() (typiquement le degré d'interpolation) contenant pour chaque date un vecteur des valeurs des m_degree polynomes de Lagrange (typiquement s=m_degree=T_N_STEPS). Plus concrètement, vec[i][j]= \(\phi_j(d_i)\).
|
inline |
Calcul de la dérivée première des polynomes de Lagrange
\[ \dot\phi_j(d_i)=\sum_{0\leq k\leq s,\;k\neq j}\left(\frac{1}{\alpha_j-\alpha_k}\times\prod_{0\leq l\leq s,\;l\neq k,\;l\neq j}\frac{d_i-\alpha_l}{\alpha_j-\alpha_l}\right) \]
Le résultat est un vecteur de taille dates.size() contenant pour chaque date un vecteur des valeurs des dérivées des s polynomes de Lagrange.