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.
E jemplo
Dada la función f(x) = sen(x), obtener su polinomio de interpolación para los nodos
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