Sei sulla pagina 1di 7

Interpolacin Polinomial

Interpolacin, significa encontrar un valor intermedio entre dos o mas puntos base
conocidos, las cuales se pueden aproximar mediante polinomios de primer, segundo,
tercer o grados superiores

f(x1)

f1(x)

f(x0)

x0 x x1

Como se conoce solamente dos puntos de la funcin f(x), esto se puede unir mediante
una recta como se observa en la figura anterior.
El objetivo principal de la interpolacin polinomial es estimar los valores funcionales
para uno o ms valores de la variable independiente desconocida, a partir de un
conjunto de datos discretos de una funcin dada, es as que a continuacin se presenta la
definicin y algunos mtodos de interpolacin.

Definicin.- Dado n+1 puntos de una funcin f:RR, un polinomio P de grado menor
o igual a n que pasa por cada uno de los n+1 puntos dados, es llamado polinomio
interpolador de f.
Polinomio de grado2
25

20

15

Grados

10

5
5 10 15 20
Hora

En general el polinomio puede escribirse como:

P(x)=anxn+ an-1xn-1++ a2x2+ a1x1+ a0

Ajuste polinmico de curvas.- Matlab utiliza el mtodo de los mnimos cuadrados


para realizar el ajuste de curvas a travs de un polinomio, considerando para ello un
conjunto de datos tabulados de la curva. Los coeficientes del polinomio se pueden
determinar utilizando el comando polyfit. Por ejemplo:
X 0 1 2 4
y 1 1 7 61

>> x=[0 1 2 4];


>>y=[1 1 7 61];
>>a= polyfit(x,y,3)
a=

1.0000 0.0000 -1.0000 1.0000


>> plot(x,y)
>> hold on
>> x=0:0.01:4;
>> z=x.^3-x+1;
>> plot(x,z,r)
>> %ezplot('x.^3-x+1',0,4)
>> grid on

Para evaluar el polinomio a en un valor, se utiliza el comando polyval


>>xi=3;
>>yi=polyval(a,xi)
yi =

25.0000
>> plot(xi,yi,'or')

INTERPOLACIN LINEAL.- La forma ms simple de interpolacin es la de


conectar dos puntos con una lnea recta. Este mtodo, llamado interpolacin lineal, se
muestra en la siguiente figura (usando semejanza de tringulos), se tiene:

f(x1)

f1(x)

f(x0)

x0 x x1

f 1 ( x) f ( x 0 ) x x 0

f ( x1 ) f ( x 0 ) x1 x 0
f 1 ( x) f ( x 0 ) f ( x1 ) f ( x 0 )

x x0 x1 x 0

De donde se tiene que:


f ( x1 ) f ( x 0 )
f 1 ( x) f ( x 0 ) ( x x0 )
x1 x 0
La cual es una formula de interpolacin lineal. La notacin f1(x) indica que se trata de
una interpolacin de primer orden. Tambin f1(x) se puede expresar de la siguiente
manera:
f1 ( x) a0 a1x
f1 ( x0 ) a0 a1 x0 y0 ................(1)
f1 ( x1 ) a0 a1x1 y1.................(2)
Resolviendo (1) y (2) se encuentra los valores de a0 y a1

MATLAB cuenta con un comando para la interpolacin lineal. El comando interp1


determina el valor funcional de una abscisa especificada denominada por xi
interpolando linealmente a partir de la tabla de la funcin. En interp1 se aplica
interpolacin lineal a cada intervalo de datos. La abscisa xi tambin puede ser un vector
de valores de x especificados. La sintaxis es:

yi=interp1(x,y,xi)
x es un arreglo columna de los datos, y es un arreglo columna de los datos, ambos
arreglos deben tener el mismo numero de filas, pero pueden tener mas de una columna,
como alternativa de interp1 puede escribirse:

yi=interp1(x,y,xi,linear) resultado de la interpolacin lnea


yi=interp1(x,y,xi,spline) interpolacin con un trazo cubico

>> x=[2 3 5 7 8]; abscisas de puntos (x,y)

>> y=[3.2 4.1 5.8 6.4 6.3]; ordenadas de los puntos

>> z=3.2; valor para interpolar, z puede ser un vector

>> u=interp1(x,y,z,linear) resultado de la interpolacin lineal


>> plot(x,y)
>> hold on
>> plot(z,u,'or')
>> grid on
>> hold off
>> u= interp1(x,y,z,spline) interpolacin con un trazador cbico

>> a=polyfit(x, y, 2); polinomio de mnimos cuadrados de grado 2

>> a el vector a contiene los coeficientes

Mtodo de serie de potencies:


Este mtodo construye el polinomio interpolador reemplazando los puntos en el
polinomio P(x) de orden n-1seguidamente se resuelve el sistema de ecuaciones
generado, hallando de esta manera sus coeficientes.
Ejemplo
Encuentre el polinomio interpolador de los datos (-2,10), (-1,4), (1,6) y (2,3)
Encontrar un polinomio de tercer grado y resolver:

Algoritmo
function serie
fprintf('\n');
x=input('ingrese los valores de x:');
y=input('ingrese los valores de y:');
n=length(x);
V=ones(n,n);
x=x';
y=y';
for j=2:n
V(:,j)=x.*V(:,j-1);
end
a=V\y
z=x(1):0.2:x(n);
imagen=a(n);
for i=n-1:-1:1
imagen=a(i)+z.*imagen;
end
plot(z,imagen)
grid

Ejemplo
Encuentre el polinomio interpolador de los datos (-2,10), (-1,4), (1,6) y (2,3)
>> serie

ingrese los valores se x:[-2 -1 1 2]


ingrese los valores se y:[10 4 6 3]

a=

4.5000
1.9167
0.5000
-0.9167

Luego el Polinomio interpolador es.


-0.9167x3+0.5x2+1.9167x + 4.5
INTERPOLACIN DE LAGRANGE

La interpolacin de Lagrange es una alternativa a la forma de serie de potencias de los


polinomios de interpolacin.
Con la formula de interpolacin de Lagrange no hay necesidad de resolver ecuaciones
lineales, e incluso permite la interpolacin de los valores funcionales.

Algoritmo
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

Algoritmo para graficar


function LagranDemo()
x=[0 1 4 6];
y=[1 -1 1 -1];
x0=0:0.10:6;
for i=1:length(x0)
y0(i)=Lagrange(x,y,x0(i));
end
plot(x,y,'o');
hold on
plot(x0,y0);
legend('dato','Langrage');
title('Interpolacion de Lagrange')
grid on

Ejemplo: se tiene los siguientes datos (-2,10), (-1,4), (1,6) y (2,3). Encuentre el Y para
el valor de x=0;
Solucin.
>> x=[-2 -1 1 2];
>> f=[10 4 6 3];
>> xi=[0];
>> fi=lagran_(x,f,xi)

fi =

4.5000

Potrebbero piacerti anche