Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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
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]
POLINOMIOS DE INTERPOLACIN DE
LAGRANGE
( 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
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.