Interpolación de Lagrange Interpolar: estimar el valor desconocido de una función en un punto, tomando un valor aproximado de la función en puntos cercanos al dado. Interpolación lineal: se utiliza un segmento que pasa por dos puntos conocidos (xo,yo) (x1,y1). La pendiente que pasa por los dos puntos es m=(y1-yo)/(x1-xo). La recta que pasa por los dos puntos es Si reemplazamos x por xo y x1 P(xo)=yo P(x1)=y1 Lagrange descubrió que este polinomio se puede escribir de la siguiente manera:
L1,0(x0)=1 L1,1(x1)=1 L1,0(x1)=0 L1,1(xo)=0 Llamaremos L1,0(x0)=1 L1,1(x1)=1 L1,0(x1)=0 L1,1(xo)=0 Usando esta notación, podemos escribir:
Ejemplo: Consideremos y=f(x)=cos(x) en [0. 0,1 Ejemplo: Consideremos y=f(x)=cos(x) en [0.0,1.2] vamos a usar x0=0 x1=1.2 para interpolar linealmente >> x=[0.0:0.1:1.2]' >> y=cos(x) >> x0=0.0 >> x1=1.2 >> y0=cos(x0) >> y1=cos(x1) >> z=y0*(x-x1)/(x0-x1)+y1*(x-x0)/(x1-x0) >> plot(x,y,x,z)
La forma de generalizar la fórmula de Lagrange para construir un polinomio PN(x) que tenga grado menor o igual que N y pase por los N+1 puntos dados (xo,yo)(x1,y1)…..(xn,yn) es la fórmula
clear fprintf('Interpolación de Lagrange\n') n=input('Ingrese el número de puntos : '); for i = 1:n fprintf('x%d = ',i) x(i)= input(' '); % Ingreso por pantalla de los valores x(i) fprintf('f(x(%d)) = ',i) f(i)= input(' '); % ingreso por pantalla de los valores de % la función evaluada en los x(i) end a=input('Ingrese el valor de x donde se quiere evaluar el polinomio interpolante : '); for k=1:n for i=1:n if k==i I(i)=1; else I(i)=(a-x(i))/(x(k)-x(i)); fI(k)=f(k)*prod(I); % La función prod calcula el producto de los elementos % del vector I fa=sum(fI); % La función sum calcula la suma de los elementos % del vector fI fprintf('f(%1.2f) = %3.6f',a,fa)
Polinomio interpolador de Newton % La sintaxis de presentación indica que dentro del % argumento de la función se escribirá un número punto flotante % por lo menos 1 carácter y dos dígitos decimales %1.2f % El valor de la función se escribirá en una amplitud de por lo menos % tres caracteres y seis dígitos decimales %3.6f Polinomio interpolador de Newton (1)
DIFERENCIAS DIVIDIDAS Definición: las diferencias divididas de una función f se definen como:
Ejemplo: construir la tabla de dif.divididas. Para f(x)=cos(x). 0.0 1.0000000 1.0 0.5403023 -0.4596977 2.0 -0.4161468 -0.9564491 -0.2483757 3.0 -0.9899925 -0.5738457 0.1913017 0.1465592 4.0 -0.6536436 0.3363499 0.4550973 0.0879318 -0.0146568 P1(x)=1 -0.4596977(x-0) P2(x)=1 -0.4596977(x-0) -0.2483757(x)(x-1) P3(x)= 1 -0.4596977(x-0) -0.2483757(x)(x-1)+0.1465592x(x-1)(x-2) P4(x)= 1 -0.4596977(x-0) -0.2483757(x)(x-1)+0.1465592x(x-1)(x-2) -0.0146568 x(x-1)(x-2)(x-3)
Ejemplo: X = 0 0.1000 0.2000 0.3000 0.4000 0.5000 >> Y=cos(X) Y = 1.0000 0.9950 0.9801 0.9553 0.9211 0.8776 >> newpoly(X,Y) >> [C,D]=newpoly(X,Y) C = -0.0021 0.0428 -0.0003 -0.5000 -0.0000 1.0000 D = 1.0000 0 0 0 0 0 0.9950 -0.0500 0 0 0 0 0.9801 -0.1494 -0.4971 0 0 0 0.9553 -0.2473 -0.4896 0.0249 0 0 0.9211 -0.3428 -0.4773 0.0412 0.0408 0 0.8776 -0.4348 -0.4601 0.0571 0.0397 -0.0021 >> polyval(C,X) ans =