Interpolacion

INTERPOLACION
Si se conocen  los valores que toma la función f(x) en los n+1 puntos diferentes  el problema de interpolación consiste en hallar una función g(x) cuyos valores puedan ser calculados para cualquier x en un intervalo [a,b].                               
                       
Los puntos se llaman puntos o nodos de interpolación, si x no es un valor de interpolación, se llama a  g(x) un valor interpolado o extrapolado cuando x es  mayor o menor al rango de nodos de interpolación.  La función g(x) se conoce como función interpoladora. y es suficientemente simple como par que resulte fácil y rápido evaluarla en los puntos deseados.
A la diferencia entre  f(x) y g(x) ;  E(x) = f(x) - g(x)  se le conoce como error de interpolación.

 Ejemplo

Dada la función f(x) = sen(x), obtener su polinomio de interpolación para los nodos
 y dar una cota del error de interpolación para x Î [ 0,  p / 2 ]. Con estos resultados, estimar el valor de sen(p /  6 ).
                               y0 = f(x0) = sen 0 = 0
y1 = f(x1) = sen  p / 4 =  0.707107
y2 = f(x2) = sen  p / 2 =  1

el polinomio de interpolación :    p(x) = a x^2 +b x + c
luego     p(x0) = p (0)  = c = 0
p(x1) = p (p / 4 )  = a (p / 4 ) ^2 + b (p / 4 ) + c  = 0.707107
                p(x2) = p (p / 2 )  = a (p / 2 ) ^2 + b (p / 2 ) + c  = 1

de donde c = 0 y
                               (p ^2  / 16 ) a + (p / 4 ) b = 0.707107
                               (p ^2  / 4 ) a + (p / 2 ) b = 1
por lo tanto
                a  = -0.335749
                b  = 1.164013
luego                                     p(x)  = -0.33574 9 x^ 2  + 1.164013 x

como f(x ) = sen (x) es derivable indefinidamente  f(3) (x) = - cos (x)  se tiene que | f(3) (x) |  £  1 por lo tanto una cota del error de interpolación será
| E (x)  |  £ [ M / (n-1) !] /  |  (x – x0 ) ( x – x1 ) ( x – x2 ). . .  ( x – x  n) |
                                   = (1/3 !) |  (x – x0 ) ( x – x1 ) ( x – x2 )  |
                                   = 1/ 6  x (x - p / 4 ) (x - p / 2 ) |
                                               = ( 1 / 6 )  | x ^ 3 – 2.3562 x^2 + 1.2337 x |

Para x  = p /  6 = 0.523599, se  obtiene  p(p / 6 ) = p (0.523599 ) = 0..5174  con una cota  | E (p / 6) |  £  0.0239  y de aquí
            Sen (p /  6 ) = 0.5174 ± 0.0239

Como se sabe Sen(p /  6 ) = 0.5, por lo tanto el verdadero error de interpolación es 

E(p /  6 ) = | 0.5 – 0.5174 | =  0.0174


INTERPOLACION DE LAGRANGE
Sean  los n+1 nodos de interpolación , los cuales se suponen ordenandos en forma creciente   pero no necesariamente distribuida en forma creciente.
El método de Lagrange consiste en que se cuenta con un conjunto de pares ordenados que representan puntos en un par de ejes cartesianos y se quiere buscar una función que pase por todos esos puntos.Y se obtiene el polinomio de interpolación correspondiente a los puntos (xo,yo), (x1,y1), … , (xn,yn), a partir de las n + 1 funciones siguientes:

Ejemplo
METODO POLINOMIO DE INTERPOLACION DE LAGRANGE

       POLINOMIO
p(x) = 827*((X-(1960))*(X-(1970))*(X-(1980))*(X-(1990)))/((1950-(1960))*(1950-(1970))*(1950-(1980))*(1950-(1990)))+1058*((X-(1950))*(X-(1970))*(X-(1980))*(X-(1990)))/((1960-(1950))*(1960-(1970))*(1960-(1980))*(1960-(1990)))+1304*((X-(1950))*(X-(1960))*(X-(1980))*(X-(1990)))/((1970-(1950))*(1970-(1960))*(1970-(1980))*(1970-(1990)))+1582*((X-(1950))*(X-(1960))*(X-(1970))*(X-(1990)))/((1980-(1950))*(1980-(1960))*(1980-(1970))*(1980-(1990)))+1836*((X-(1950))*(X-(1960))*(X-(1970))*(X-(1980)))/((1990-(1950))*(1990-(1960))*(1990-(1970))*(1990-(1980)))
Para X=1975, p(x)= 1440.79

Algoritmo para el método de Lagrange
function p=Lagrange(x,y,x0)
n=length(x)
l=zeros(n,1);
fprintf('    k      x        y        L\n');
for k=1:n
    prod1=1;
    prod2=1;
    for i=1:n
        if i~=k
            prod1=prod1.*(x0-x(i));
            prod2=prod2.*(x(k)-x(i));
        end
    end
    l(k)=prod1./prod2;
end
p=0;
for k=1:n
    p=p+l(k).*y(k);
    fprintf('%5d%10.6f%10.6f%10.6f\n',k,x(k),y(k),l(k));
end




>> Lagrange(x,y,1975)

n =

     5

    k          x             y             L
    1         1950      827        0.023438
    2         1960    1058         -0.156250
    3         1970    1304           0.703125
    4         1980    1582           0.468750
    5         1990   1836          -0.039063

ans =

  1.4408e+003