You are on page 1of 7

UNIVERSIDAD ESTATAL DE CUENCA

TEMA:

INTERPOLACION MEDIANTE EL POLINOMIO DE LAGRANGE

NOMBRE:

SANCHEZ LEON PEDRO GUAMAN MATUTE DIEGO CORDERO MERA ANDREA

PROFESOR:

ING. FERNANDO ZALAMEA

MATERIA:

MTODOS NUMRICOS

CICLO:

CUARTO PARALELO 1

PERIODO MARZO 2013 - JULIO2013

INTERPOLACION MEDIANTE POLINOMIO DE LAGRANGE Como los polinomios de Taylor no son adecuados para la interpolacion es necesario hacer uso de metodos alternos. En esta seccin encontraremos polinomios de aproximacin que se determinan con solo especificar determinados puntos en el plano por donde deben pasar. El problema de encontrar un polinomio de primer grado que pasa por los puntos distintos (x0, y0) y (x1, y1) es el mismo que el de aproximar una funcion f, para la cual f(x 0)=y0 y f(x1)=y1 por medio de un polinomio de primer grado que interpole los valores de f en los puntos dados o que coincida con ellos. Primero se define las funciones:

INTERPOLACION MEDIANTE EL POLINOMIO DE LAGRANGE EN SEUDO CODIGO

Interpolacin mediante el polinomio de Lagrange: Datos de entrada: X=[], Y=[] m n Salida: 'Para el valor de x=',x,' y=',y Matrices nmero de puntos conocidos nmero de puntos a conocer Valores de x; 1 i n

Paso 1: X=[] Y=[] Paso 2: i=0 Paso 3: Mientras i<m realizar Paso 4: X(i)= Salida Ingrese coordenadas en x Y(i)= Salida Ingrese coordenadas en y Paso 5: i=i+1

Paso 6: Para k=1,2,3,,n Paso 7: i=0 Paso 8: x = Salida Ingrese el punto x a conocer y: Paso 9: y=0 Paso 10: Mientras i<m realizar Paso 11: j=0 L=1 Paso 12: Mientras j<m realizar Paso 13: Si ji entonces Paso 14: L =((x-X[j])/(X[i]-X[j]))*L Paso 15: j= j+1 Paso 16: y=L*Y[i]+y Paso 17: i = i+1 Paso 18: Salida Para el valor de x=, x, y=,y Paso 19: Parar

MTODO EN PYTHON
print 'Interpolacion mediante polinomio de Lagrange' print 'm numeros conocidos, n numeros a conocer' salir=1 #bucle para evitar salida instantanea while salir==1: X=[] Y=[] #toma de datos conocidos m=int(raw_input('ingrese el numero de puntos conocidos: ')) i=0 while i<m: X.append(float(raw_input('punto X'+str(i)+': '))) Y.append(float(raw_input('punto Y'+str(i)+': '))) i=i+1 #inicio de la interpolacion n=int(raw_input('ingrese el numero de puntos a conocer: ')) #bucle para realizar el proceso n veces for k in range (n): i=0 x=float(raw_input('ingrese el punto x a conocer y: ')) y=0 #bucle para formar el polinomio while i<m: j=0 L=1 #bucle para formar L0,L1,... while j<m: if j!=i: L=((x-X[j])/(X[i]-X[j]))*L #formacion de L j=j+1 y=L*Y[i]+y #Formacion del polinomio i=i+1 print 'Para el valor de x=',x,' y=',y #resultado salir=int(raw_input('digite 0 para salir 1 para continuar'))

MTODO EN MATLAB
'Interpolacion mediante polinomio de Lagrange' 'm numeros conocidos, n numeros a conocer' '' X=[]; Y=[]; %toma de datos conocidos m=input('ingrese el numero de puntos conocidos: '); i=1; while i<=m X(i)=input(['punto X' num2str(i) ': ']); Y(i)=input(['punto Y' num2str(i) ': ']); i=i+1; end %inicio de la interpolacion n=input('ingrese el numero de puntos a conocer: '); %bucle para realizar el proceso n veces for k=1:n i=1; x=input('ingrese el punto x a conocer y: '); y=0; %bucle para formar el polinomio while i<=m j=1; L=1; %bucle para formar L0,L1,... while j<=m if j~=i L=((x-X(j))/(X(i)-X(j)))*L; %formacion de L end j=j+1; end y=L*Y(i)+y; %Formacion del polinomio i=i+1; end ['Para el valor de x=' num2str(x) ' y=' num2str(y)] %resultado end

METODO EN FORTRAN program prueba !declaracion de variables real, dimension (:), allocatable :: XL,YL real x,y,L integer i,j,k,m,n !inicio del programa write(*,*)'Interpolacion mediante polinomio de Lagrange' write(*,*)'m numeros conocidos, n numeros a conocer' !toma de datos de los puntos conocidos write(*,*)'Ingrese el numero de puntos conocidos:' read(*,*)m i=0 allocate(XL(m),YL(m)) do while (i.lt.m) write(*,*)'Ingrese coordenados x,y del punto ',i read(*,*)XL(i+1),YL(i+1) i=i+1 end do !n numeros a conocer write(*,*)'ingrese el numero de puntos a conocer:' read(*,*)n !inicio de la interpolacion !bucle para realisar el proceso n veces do while (k.lt.n) i=1 write(*,*)'ingrese el punto x a conocer y: '

read(*,*)x y=0 !bucle para obtener el valor de un punto do while (i.le.m) j=1 L=1 !bucle para valores de L0,L1,... do while (j.le.m) if (j.ne.i) then L=((x-XL(j))/(XL(i)-XL(j)))*L end if j=j+1 end do y=L*YL(i)+y i=i+1 end do write(*,*)'Para el valor de x=',x,' y=',y !muestra de datos k=k+1 end do stop end program !Formacion del valor funcional !formacion de L

CONCLUSIONES

La resolucin de un problema de interpolacin lleva a un problema de lgebra lineal en el cual se debe resolver un sistema de ecuaciones; la interpolacin mediante el polinomio de Lagrange nos permite con n puntos encontrar el polinomio de menor grado u orden que pase por estos e interpolarlo. Una desventaja que presentara este mtodo sera si se aumenta el nmero de puntos a interpolar con la intencin de mejorar la aproximacin a una funcin ya que tambin lo hace el grado del polinomio interpolador as obtenido, por norma general. De este modo, aumenta la dificultad en el clculo, hacindolo poco operativo manualmente a partir del grado 4, dado que no existen mtodos directos de resolucin de ecuaciones de este grado. Es ah en donde podemos apreciar la importancia del uso de mtodos numricos, puesto que con la programacin se puede resolver de manera ms rpida problemas tediosos y largos.

You might also like