50 if (ff.get_etat() != ETATZERO) {
53 assert (ff.get_etat() == ETATQCQ) ;
56 assert (ff.get_taille() == nx) ;
60 double x1(0), x2(0), x3(0);
61 double a1(0), a2(0), a3(0);
62 double b1(0), b2(0), b3(0);
63 double c1(0), c2(0), c3(0) ;
65 for (
int i=1; i<nx-1; i++) {
69 a1 = ff(i-1) / ( (x1 - x2)*(x1 - x3) ) ;
70 a2 = ff(i) / ( (x2 - x1)*(x2 - x3) ) ;
71 a3 = ff(i+1) / ( (x3 - x1)*(x3 - x2) ) ;
73 b2 = -(x2 + x3)*a1 - (x1 + x3)*a2 - (x1 + x2)*a3 ;
74 b3 = x2*x3*a1 + x1*x3*a2 + x1*x2*a3 ;
85 resu.
set(i) = resu(i-1) + c1*(x2*x2*x2 - x0*x0*x0)/3.
86 + 0.5*c2*(x2*x2 - x0*x0) + c3*(x2 - x0) ;
94 resu.
set(nx-1) = resu(nx-2) + c1*(x2*x2*x2 - x0*x0*x0)/3.
95 + 0.5*c2*(x2*x2 - x0*x0) + c3*(x2 - x0) ;
Tbl integ1D(const Tbl &xx, const Tbl &ff)
Integrates a function defined on an unequally-spaced grid, approximating it by piece parabolae.