Sei sulla pagina 1di 5

PRACTICA # 3 1

Ajuste de curvas (Polinomios de regresin),


Interpolacin de Newton, Interpolacin de

Lagrange.
superior. Por ejemplo, suponga que ajustamos un polinomio de
segundo grado o cuadrtico: [ 1 ]
Resumen En esta presente prctica vamos a realizar una breve
introduccin teora para cada mtodo con el objetivo de tener
ms claro el tema, para luego llevar a cabo la programacin en y=a0+ a1 x+ a2 x 2 +e
matlab de los diferentes mtodos de ajuste de curvas, En este caso, la suma de los cuadrados de los residuos es
interpolacin de newton e interpolacin de Lagrange con su
explicacin respectiva de cada mtodo. n
S r = ( y i a0a1 x ia2 x 2i )2 [ 1]
i=1
Abstract In this present practice we will make a brief
introduction theory for each method in order to have clearer the Al seguir el procedimiento, obtenemos la derivada de la
subject, and then carry out programming in matlab of different ecuacin [ 1 ] con respecto a cada uno de los coeficientes
methods of curve fitting, interpolation newton and interpolation desconocidos del polinomio,
of Lagrange with their respective explanation of each method.

Sr
Palabras clavesInterpolacin, regresin, matlab. =2 ( y ia0 a1 xi a2 x2i )
a0

Sr
=2 x i ( y ia 0a1 x ia2 x 2i )
I. INTRODUCCIN a1

U N problema que se presenta con frecuencia en las


ciencias experimentales y en ingeniera es tratar de
construir una funcin (denominada funcin
interpolante) de la que se conoce una serie de datos
Sr
a2
=2 x 2i ( y ia 0a1 x ia2 x 2i )

(denominados datos de interpolacin). Estos datos pueden


Estas ecuaciones se igualan a cero y se reordenan para
ser fruto de las observaciones realizadas en un determinado desarrollar el siguiente conjunto de ecuaciones normales:
experimento en el que se relacionan dos o ms variables e
involucran valores de una funcin y/o de sus derivadas.
Es una forma de regresin lineal en el que la relacin entre la ( n ) a0 + ( xi ) a 1+ ( x 2i ) a2= yi
variable independiente x y la variable dependiente Y se
modela como un polinomio de orden n. Regresin polinmica ( x i ) a0 + ( x 2i ) a1 + ( x 3i ) a2 = xi y i
se ajusta a una relacin no lineal entre el valor de x y la media
condicional correspondiente de y, denotado E, y se ha
[ 2]
utilizado para describir los fenmenos no lineales.
El objetivo ser determinar una funcin que verifique estos ( x 2i ) a0 + ( x 3i ) a1 + ( x 4i ) a2= x 2i y i
datos y que adems sea fcil de construir y manipular. Por su
sencillez y operatividad los polinomios se usan
frecuentemente como funciones interpolantes. [ 1 ] Donde todas las sumatorias van desde i = 1 hasta n. Observe
que las tres ecuaciones anteriores son lineales y tienen tres
incgnitas: a0 , a1 y a2 . Los coeficientes de las
incgnitas se evalan de manera directa, a partir de los datos
II. MARCO TERICO observados

REGRESIN POLINOMIAL
El procedimiento de mnimos cuadrados se puede extender
fcilmente al ajuste de datos con un polinomio de grado
En este caso, el error estndar se formula como sigue: [ 2]

PRACTICA # 3 2

S y / x=
Sr
n(m+1)
[ 3]

INTERPOLACIN DE NEWTON MEDIANTE


DIFERENCIAS DIVIDIDAS
Existe una gran variedad de formas alternativas para expresar
una interpolacin polinomial. El polinomio de interpolacin
de Newton en diferencias divididas.

Ejemplos de interpolacin polinomial: a) de primer grado


(lineal) que une dos puntos, b) de segundo grado (cuadrtica o
parablica) que une tres puntos y c) de tercer grado (cbica) Ilustracin 2 Esquema grfico de la interpolacin lineal. Las reas
que une cuatro puntos. [ 1 ] sombreadas indican los tringulos semejantes usados para obtener
la frmula de la interpolacin lineal.

POLINOMIOS DE INTERPOLACIN DE
LAGRANGE

El polinomio de interpolacin de Lagrange es simplemente


una reformulacin del polinomio de Newton que evita el
clculo de las diferencias divididas, y se representa de manera
concisa como [ 1 ]

Ilustracin 1 De hecho se puede probar que dados n + 1 puntos, con


n
abscisas distintas entre s, existe uno y slo un polinomio de grado a
lo ms n que pasa por estos puntos. f n ( x ) = Li ( x ) f ( x i ) [ 5 ]
i=0
La forma ms simple de interpolacin consiste en unir dos
puntos con una lnea recta. Dicha tcnica, llamada
interpolacin lineal, se ilustra de manera grfica en la Donde
ilustracin 2 Utilizando tringulos semejantes,
n
xx j
f 1 ( x ) f (x 0 ) f ( x1 ) f ( x0 ) Li ( x ) =
= j=0 x ix j
xx 0 x 1x 0 j i

Reordenndose se tiene Donde designa el producto de. Por ejemplo, la


versin lineal (n = 1) es
x
f ( x1 ) f ( x 0 ) x
f ( 0)+ (xx 0) [ 4 ] f ( 1) [ 6 ]
x 1x 0
xx 1 xx 0
f 1(x )= f 1 ( x )= f ( x0 )+
x0 x1 x 1x 0

Y la versin de segundo grado es

( xx 1 )( x x2 ) ( x x0 ) ( xx 2 ) ( xx 0 )
f 2 ( x )= f ( x0 ) + f ( x1 ) +
( x 0x 1 )( x 0 x2 ) ( x1 x0 ) ( x 1x 2 ) ( x 2x 0 )
PRACTICA # 3 3

III. DESARROLLO
EXPLICACION REGRESION POLINOMIAL.
REGRESIN POLINOMIAL Clear all , clc nos permitir borrar datos de la ventana para
poder trabajar en una ventana limpia.
clear all A continuacin el programa nos dar a conocer la forma del
clc polinomio de regresin y proceder a pedirnos los valores de
disp('----Regresin Polinomial----') los puntos tanto en X como en Y con los siguientes comandos:
disp(' ') disp('P(x)=a0 + a1*x +a2*x^2 +...+ anx^n')
disp(' ') disp('Dado los n+1 puntos')
syms x Px disp(' ')
disp('Para obtener un polinomio de la forma:') disp(' ')
disp('P(x)=a0 + a1*x +a2*x^2 +...+ anx^n') X=input('Ingrese los valores de X de la forma [...] \n')
disp('Dado los n+1 puntos') Y=input('Ingrese los valores de Y de la forma [...] \n')
disp(' ') Proceder entonces a calcular el numero de datos para formar
disp(' ') la matriz de coeficientes:
X=input('Ingrese los valores de X de la forma [...] \n') n=length(X)
Y=input('Ingrese los valores de Y de la forma [...] \n') b=zeros(n);
plot (X,Y,'xk') b(:,1)=X(:).^0;
%Calcular el nmero de datos disp('Matriz de coeficientes de (a0, a1,...,an)t')
n=length(X) for j=2:(n)
b=zeros(n); b(:,j)=X(:).^(j-1);
b(:,1)=X(:).^0; end
disp('Matriz de coeficientes de (a0, a1,...,an)t') proceder entonces obtener los Valores de an y
for j=2:(n) consecuentemente evaluara la matriz antes mencionada y
b(:,j)=X(:).^(j-1); preceder a resolver el sistema de ecuaciones obtenido todo
end esto se lleva acabo gracias a los siguientes comandos:
%obtiene los valores de an a=b
a=b disp('Inversa de la matriz de coeficientes')
disp('Inversa de la matriz de coeficientes') c=a^-1
c=a^-1 disp('Solucion del sistema de ecuaciones')
disp('Solucion del sistema de ecuaciones') A=c*Y'
A=c*Y' Luego de que el programa all resuelto la ecuacin proceder
%CONTRUIR EL POLINOMIO a formar el polinomio de regresin. Y graficara los puntos
B=A'; dados para comprobar que el polinomio se cumple en la
XX(1,1)=x^0; grfica. Por lo tanto
for i=2:n disp('Polinomio de interpolacin')
XX(1,1)=x.^(i-1); ZZ=XX;
end disp('Polinomio de la forma [anx^n +an-1x^(n-1) +...+ a0]')
disp('Polinomio de interpolacion') P=(B.*ZZ);
ZZ=XX; Px=(sum(P));
disp('Polinomio de la forma [anx^n +an-1x^(n-1) +...+ a0]') disp('Px=')
P=(B.*ZZ); format short
Px=(sum(P)); pretty(Px)
disp('Px=') disp('la variable de uso es "x"')
format short disp(' ')
pretty(Px) x=input('ingrese el valor de "x" a interpolar\n')
disp('la variable de uso es "x"') disp('valor interpolado')
disp(' ') Y=subs(Px,x)
x=input('ingrese el valor de "x" a interpolar\n') hold on
disp('valor interpolado') G=X(1,1)-1:0.02:X(1,n)+1;
Y=subs(Px,x) H=zeros(size(G));
hold on plot(G,H,'r')
G=X(1,1)-1:0.02:X(1,n)+1; ezplot(Px,[X(1,1)-1,X(1,n)+1])
H=zeros(size(G));
plot(G,H,'r')
ezplot(Px,[X(1,1)-1,X(1,n)+1])
plot(x,Y,'or')
xlabel(x) INTERPOLACIN DE NEWTON MEDIANTE DIFERENCIAS
grid on DIVIDIDAS
PRACTICA # 3 4

end
clear all end
clc Terminados una vez los procedidmientos anteriores evaluado y
disp('Interpolacion de Newton'); formada nuestra matriz dividida nos mostrara la misma matriz
disp('interpolacion'); mencionada y tambin a continuacin el polinomio de
n=input('ingrese el grado del polinomio, n='); Interpolacin de Newton.
fprintf('Se necesitan %.0f puntos\n',n+1);
disp('ingrese los puntos'); INTERPOLACIN DE LAGRANGE
for i=1:n+1 clear all
fprintf('x%.0f=',i-1); clc
X(i)=input(' '); display('Interpolacin de Lagrange')
fprintf('y%.0f=',i-1); syms x
Y(i)=input(' '); n= input('Ingrese el grado del polinomio: ');
end xn=[];
DD=zeros(n+1); for i=1:n+1
DD(:,1)=Y; k(i)=input('Ingrese los puntos en (x) =');
for k=2:n+1 xn=[xn,k(i)];
for J=k:n+1 end
DD(J,k)=[DD(J,k-1)-DD(J-1,k-1)]/[X(J)-X(J-k+1)]; yn=[];
end for i=1:n+1
end l=input('Ingrese los puntos en (y) =');
disp('La matriz de diferencias divididas es:'); yn=[yn,l];
disp(DD); end
disp('El polinomio de newton es'); plot(xn,yn)
syms x; grid on
polnew=DD(1,1); f=0;
P=1; for i=1:n+1
for i=1:n L=1;
P=P*(x-X(i)); for j=1:n
polnew=polnew+P*DD(i+1,i+1); if j~=i
end L=L*(x-xn(j))/(xn(i)-xn(j));
polnew=expand(polnew); end
pretty(polnew); end
x=input('ingrese el valor de x a interpolar,x='); f=f+L*yn(i);
vi=eval(polnew); end
fprintf('el valor interpolado es %.2f\n',vi); f=simplify(f);
hold on; display('el polinomio interpolado de langrage es=')
grid on; display(f)
ezplot(polnew,[X(1) X(n+1)]); hold on
plot(x,vi,'r+'); a=ezplot(x,f,[k(1) k(n)]);
axis ([x:y])
EXPLICACION INTERPOLACION DE NEWTON. set(a,'Color','r')
Clc all nos permite borrar los datos de la ventana para poder hold off
seguir trabajando.
n=input('ingrese el grado del polinomio, n='); el programa EXPLICACIN POLINOMIO DE LAGRANGE.
comenzara pidindonos el grado del polinomio a interpolarse Clc all nos sirve para borrar los datos de la pantalla y poder
por el mtodo de Diferencias Divididas, trabajar.
Luego nos mostrara un mensaje que nos diga el nmero de n= input('Ingrese el grado del polinomio: '); este comando nos
puntos a ingresarse y proceder a pedirnos la cantidad de pide ingresar el grado del polinomio el cual vamos a
dichos puntos antes mencionados con el siguiente comando interpolar.
dado a continuacin: Luego de haber ingresado el grado del polinomio a interpolar
fprintf('Se necesitan %.0f puntos\n',n+1); el programa nos pedir los puntos en x del polinomio
disp('ingrese los puntos'); mediante el comando dado que es:
Entonces proceder a evaluar los puntos mediante diferencias for i=1:n+1
divididas; k(i)=input('Ingrese los puntos en (x) =');
DD=zeros(n+1); xn=[xn,k(i)];
DD(:,1)=Y; end
for k=2:n+1 yn=[];
for J=k:n+1 Luego los puntos en y del polinomio.
DD(J,k)=[DD(J,k-1)-DD(J-1,k-1)]/[X(J)-X(J-k+1)]; for i=1:n+1
PRACTICA # 3 5

l=input('Ingrese los puntos en (y) ='); El aumento de grado no siempre mejora la


yn=[yn,l]; aproximacin.
end El polinomio de interpolacin suele usarse para
plot(xn,yn) estimar valores de una funcin tabulada, en las
grid on abscisas que no aparecen en la tabla en la cual
f=0; utilizamos una programacin en matlab para llegar a
y comenzara a evaluar e interpolar el polinomio. la solucin mucho ms rpido.
for i=1:n+1
L=1;
for j=1:n REFERENCIAS
if j~=i
L=L*(x-xn(j))/(xn(i)-xn(j));
end [ 1] CHAPRA, Steven C. Canale, et al. Mtodos
end numricos para ingenieros. McGraw-Hill,, 2007.

f=simplify(f); nos simplificara el polinomio [ 2 ] MATHEWS, John H.; FINK, Kurtis D. Mtodos
display('el polinomio interpolado de langrage es=') numricos con Matlab. Prentice Hall, 2000.
display(f) , luego el programa nos mostrara el polinomio
interpolado, posteriormente su grafica con el comando [ 3 ] NAKAMURA, Shoichiro. Mtodos numricos
siguiente; a=ezplot(x,f,[k(1) k(n)]);
aplicados con software. Mexico: Prentice-Hall
Hispanoamericana, 1992.
IV. CONCLUSIONES
Se determin y constato que el mtodo numrico de
Regresin polinomial es una herramienta para
investigar la dependencia de una variable
dependiente y en funcin de una variable NOTA: los estudiantes: Aguirre Fabin, Franco
independiente x. y = f(x) Muoz, Tulcn Andrs No colaboran en el informe.

Potrebbero piacerti anche