| Pn(x) = f(x0) + f'(x0)(x - x0) +(1/2!) f''(x0)(x - x0)2 + ... + (1/n!) f(n)(x0)(x - x0)n | 
con un error conocido (resto Rn) igual a:
| f(x) - Pn(x) = Rn(x) = (1/(n+1)!) f(n+1)(ξ)(x - x0)n+1 | 
| f(xk) = Pn(xk) para todo k=0,1,2,...,n | 
| Pn(x) = f(x0)Ln,0(x) + f(x1)Ln,1(x) + ... + f(xn)Ln,n(x) | 
| 
          (x-x0)(x-x1)....(x-xk-1)(x-xk+1)....(x-xn)
Ln,k(x) = -------------------------------------------
	  (xk-x0)(xk-x1)..(xk-xk-1)(xk-xk+1)..(xk-xn)
	  
 | 
 
El error dado por éste método de interpolación es:
| f(x) - Pn(x) = Rn(x) = (1/(n+1)!) f(n+1)(ξ)(x - x0)(x - x1) ... (x - xn) | 
| 
                (x-xi)Pjkl - (x-xl)Pijk
P(x) = Pijkl(x) = ---------------------------
	                    (xl-xk)
 | 
| 
             (r-x1)P2 - (r-x2)P1
P12(r) = -----------------------------
                  ( x2 - x1 )
 | 
| en el caso de r=1.5 : | 
| 
               (1.5 - 1.0)0.6200860 - (1.5 - 1.3)0.7651977
P12(1.5) =    ---------------------------------------------- = 0.5233449
                                ( 1.3 - 1.0 )
 | 
| o | 
| 
               (1.5 - 1.3)0.4554022 - (1.5 - 1.6)0.6200860
P23(1.5) =    ---------------------------------------------- = 0.5102968
                                ( 1.6 - 1.3 )
 | 
| y en orden mas elevado: | 
| 
               (1.5 - 1.0)0.5102968 - (1.5 - 1.6)0.5233449
P123(1.5) =    ---------------------------------------------- = 0.5124715
                                ( 1.6 - 1.0 )
 | 
Escribiendo los polinomios Pijkl en una matriz A
     
| x1 | A11 | ||||
| x2 | A21 | A22 | |||
| x3 | A31 | A32 | A33 | ||
| x4 | A41 | A42 | A43 | A44 | |
| x5 | A51 | A52 | A53 | A54 | A55 | 
| Interpolación de la función f(x) dada en n puntos x1, x2, ... ,xn INPUT: xi en el array X(i) y f(xi) en la matriz A(i,1) 
 | 
| x1 | P1 | ||||
| x2 | P2 | P12 | |||
| x3 | P3 | P23 | P123 | ||
| x4 | P4 | P34 | P234 | P1234 | |
| x5 | P5 | P45 | P345 | P2345 | P12345 | 
| 
          (x-xj-1)Ai,j-1 - (x-xi)Aj-1,j-1
Ai,j = ------------------------------------
                    xi - xj-1
 | 
| Pn = f[x0] + Sumk=1n f[x0,x1,...,xk](x-x0)...(x-xk-1) | 
| 
f[xi] = f(xi)
		    
                  ( f[xi+1] - f[xi] )
f[xi,xi+1] = --------------------------
                     ( xi+1 - xi )
		    
                              ( f[xi+1,xi+2, ... ,xi+k] - f[xi,xi+1, ... ,xi+k-1] )
f[xi,xi+1, ... ,xi+k-1,xi+k] = -----------------------------------------------------
                                                ( xi+k - xi )
		    
 | 
| 0.7651977 | ||||
| -0.4837057 | ||||
| 0.6200860 | -0.1087339 | |||
| -0.5489460 | 6.5878395E-02 | |||
| 0.4554022 | -4.9443333E-02 | 1.8251029E-03 | ||
| -0.5786120 | 6.8068519E-02 | |||
| 0.2818186 | 1.1818333E-02 | |||
| -0.5715210 | ||||
| 0.1103623 | 
| 
siendo el polinomio:
P4(x) = 0.7651977 - 0.4837057(x-1.0) - 0.1087339(x-1.0)(x-1.3) + 
                      0.0658784(x-1.0)(x-1.3)(x-1.6) + 0.0018251(x-1.0)(x-1.3)(x-1.6)(x-1.9)
 | 
| H2n+1(x) = Sumj=0n f(xj)Hn,j(x) + Sumj=0n f'(xj)HHn,j(x) donde Hn,j(x) = [1 - 2(x-xj)L'n,j(xj)]L2n,j(x) y HHn,j(x) = (x-xj)L2n,j(x) y los Ln,j son los polinomios de Lagrange. | 
Si bien la descripción anterior es completa, el hecho de 
tener que evaluar los polinomios de Lagrange y sus derivadas, 
lo hace un poco tedioso. 
Una forma simple de encontrar los coeficientes es utilizando 
diferencias finitas, pero definiendo nuevos puntos zi 
en la forma:
| z1 = z2 = x1 z3 = z4 = x2 y en general: z2i = z2i-1 = xi | 
| f[z2i,z2i-1]=f'(xi) | 
| 
(a) S  es un polinomio cúbico, que en cada subintervalo [xj,xj+1] se denomina Sj
(b) S(xj) = f(xj) (para todo j)
(c) Sj+1(xj+1) = Sj(xj+1)
(d) S'j+1(xj+1) = S'j(xj+1)
(e) S''j+1(xj+1) = S''j(xj+1)
(f) S''(x0) = S''(xn) = 0 ("free boundary")
             o
   S'(x0) = f'(x0)  y S'(xn) = f'(xn) ("Clamped boundary")
	     
 | 
| Sj(x) = aj + bj(x - xj) + cj(x - xj)2 + dj(x - xj)3 | 
| Sj(xj) = fj(xj) = aj | 
| aj+1 = Sj+1(xj+1) = Sj(xj+1) = aj + bj(x - xj+1) + cj(x - xj+1)2 + dj(x - xj+1)3 que para simplificar, haciendo hj = (xj+1 - xj) es: aj+1 = aj + bjhj + cjhj2 + djhj3 | 
| S'j(x) = bj + 2cj(x - xj) + 3dj(x - xj)2 | 
| bj+1(x) = bj + 2cjhj + 3djhj2 | 
| cj+1(x) = cj + 3djhj | 
| 
hj-1cj-1 +  2(hj-1 + hj)cj + hjcj+1 =
                        = 3(aj+1 - aj)/hj - 3(aj - aj-1)/hj-1
 | 
 
Debido a que las derivadas no son contínuas en algunos puntos, se interpolan 3 funciones diferentes, cuyos valores estan dados en curva1.dat, curva2.dat y curva3.dat.
Darío Mitnik