CLASE - INTERPOLACION - DOCUMENTO ANALISIS NUMERICO.pptx

ximenahuanca1234 6 views 23 slides Oct 26, 2025
Slide 1
Slide 1 of 23
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23

About This Presentation

Carrera Ingeniería Quimica, Tema 6 interpolacion, materia Programación y análisis numerico


Slide Content

PRQ404 – PROGRAMACION Y METODOS NUMERICOS TEMA 6.- INTERPOLACION Ing. M.Sc . Roberto Parra Zeballos

        En general:

INICIO DATOS: Número de pares de datos n+1; vectores x(i), y(i) tal que i = 0, 1, 2, …, n+1; valor de xp ? RESULTADOS: Valor de yp . PASO 1: Leer n+1, x(n+1), y(n+1), xp PASO 2: Ver si el valor de xp esta en el rango de valores del vector x: Si x(0) ≥ xp Entonces Imprimir y(o) como solución. Si x(n+1) ≥ xp Entonces Imprimir y(n+1) como solución. PASO 3: Búsqueda de intervalo donde se encuentre el valor de xp . Para i = 0 hasta n+1 If x(i) > xp Entonces Calcular yp : Imprimir yp como solución. Exit No Next i FIN   ALGORITMO

DIAGRAMA DE FLUJO

POLINOMIO INTERPOLANTE DE LAGRANGE Cuando se tienen x0, x1, . . . , xn números reales distintos entre sí, y valores arbitrarios correspondientes y0, y1,. . . , yn , existe un único polinomio P(x) de grado menor o igual que n tal que P(xi) = yi (i = 0,. . . , n). A dicho polinomio P(x) se le llama polinomio interpolador de Lagrange .       Entonces, es el polinomio de interpolación para la función en los nodos . Por lo tanto, la fórmula para el polinomio cardinal es:   Desarrollando como el producto de n factores lineales, se tiene:  

Ejemplo La presión de vapor como función de la temperatura para el vapor de agua se muestra en la siguiente tabla: T, o C T(0) = 5 T(1) = 10 T(2) = 15 T(3) = 20 P, mm Hg P(0) = 6.5449 P(1) =9.2123 P(2) = 12.795 P(3) = 17.546 T(0) = 5 T(1) = 10 T(2) = 15 T(3) = 20 P(0) = 6.5449 P(1) =9.2123 P(2) = 12.795 P(3) = 17.546 A partir de estos datos, encontrar el polinomio interpolante de Lagrange y calcular el valor de P para T= 12.2 ⁰C.     Sustituyendo x = 12.2, obtenemos P = 10.66096 mm Hg.  

% INTERPOLACION "POLINOMIO DE LAGRAGE" clc clear format long fprintf ('INTERPOLACION "POLINIMIO DE LAGRAGE"\n\n\n'); xi=input('Ingrese los puntos pertenecientes a las x: '); yi =input('Ingrese los puntos pertenecientes a las y: '); %input es un comando de solicitud de entrada de datos del usuario. n=length(xi); x= sym ('x');%esta funcion nos permite dejar la variable 'x' como simbólica for j=1:n producto =1; for i =1:j-1 producto=producto*(x-xi(i));%calculo del producto 1 superior de L end producto2=1; for i =j+1:n producto2=producto2*(x-xi(i));%calculo del producto 2 superior end producto3=1; for i =1:j-1 producto3=producto3*(xi(j)-xi(i));%calculo del producto 3 inferior de L end producto4=1; for i =j+1:n producto4=producto4*(xi(j)-xi(i));%calculo del producto 4 inferior end L(j)=(producto*producto2)/(producto3*producto4);%cálculos de las L fprintf ('\n L%d :\n',j-1)%poder hallar el polinomio disp (L(j)) end pn =0; for j=1:n pn=pn+L(j)*yi(j);%calculo del polinomio interpolante end fprintf ('\n POLINOMIO INTERPOLANTE: \n') pretty ( pn ) pn = simplify ( pn );%este comando nos permite simplificar toda la expresion disp ( pn ) opc =input('\ nDesea aproximar un valor (si/no): ','s'); if opc ==' si ' x=input('\ nIngrese el punto a aproximar: '); y= eval ( pn );%evaluar el punto en el polinomio disp ('La aproximacion a f(x) es:') disp (y) end INTERPOLACION "POLINIMIO DE LAGRAGE" Ingrese los puntos pertenecientes a las x: [0 1 2 3] Ingrese los puntos pertenecientes a las y: [-1 3 17 47] L0: -((x - 1)*(x - 2)*(x - 3))/6 L1: (x*(x - 2)*(x - 3))/2 L2: -(x*(x - 1)*(x - 3))/2 L3: (x*(x - 1)*(x - 2))/6 POLINOMIO INTERPOLANTE: 47 x (x - 1) (x - 2) 17 x (x - 1) (x - 3) 3 x (x - 2) (x - 3) (x - 1) (x - 2) (x - 3) -------------------- - -------------------- + ------------------- + ----------------------- 6 2 2 6 x^3 + 2*x^2 + x - 1 Desea aproximar un valor (si/no): si Ingrese el punto a aproximar: 2.2 La aproximacion a f(x) es: 21.528000000000006

INTERPOLACION ITERADA DE NEVILLE Usando la notación como los polinomios de grado cero; es el polinomio interpolante que pasa por ; es el polinomio interpolante que pase por ; es el polinomio interpolante que pasa por los puntos ; y así sucesivamente.   Si definimos en y dos números distintos en este conjunto, entonces, es el polinomio de Lagrange de grado menor o igual a , que interpola a en :   Hagamos y , siendo y polinomios de grado o menor; por lo tanto, debe ser de grado . Si y , entonces , por lo que:    

Polinomios Interpolantes de Lagrange según Neville x P x 1 P 1 P 0,1 x 2 P 2 P 1,2 P 0,1,2 x 3 P 3 P 1,3 P 1,2,3 P 0,1,2,3 x 4 P 4 P 3,4 P 2,3,4 P 1,2,3,4 P 0,1,2,3,4 : : : : : .. : : : : : .. : : : : : .. x n P n P n-1,n P n-2,n-1,n P n-3,n-2,n-1,n … … P 0,1,…,n    

EJEMPLO x P x 1 P 1 P 0,1 x 2 P 2 P 1,2 P 0,1,2 x 3 P 3 P 1,3 P 1,2,3 P 0,1,2,3 x 4 P 4 P 3,4 P 2,3,4 P 1,2,3,4 P 0,1,2,3,4 A partir de la siguiente tabla de datos, para encontrar su valor correspondiente de utilizando el polinomio interpolante de Neville.   i 1 2 3 4 xi 0.5 1.1 1.2 1.3 1.4 f(x) 1.09861 1.92279 2.04898 2.17020 2.28646 i xi           0.5 1.09861 1 1.1 1.92279 2.08762 2 1.2 2.04898 2.07422 2.07384 3 1.3 2.17020 2.07323 2.07362 2.07365 4 1.4 2.28646 2.07719 2.07362 2.07362 2.07363 SOLUCION

Para elegir el mejor valor del polinomio interpolante , se calculan errores que se muestran en la siguiente tabla: P TOL P 0,1 0,98901 P 0,1,2 -0,01378 P 0,1,2,3 -0,00019 P o,1,2,3,4 -1,79E-05  

Hagamos , tal que para denotar el polinomio interpolante de grado en los puntos , es decir, es el polinomio en la forma de Lagrange . Análogamente, obtenemos: y   pasa por , es decir, pasa por , es decir, pasa por pasa por    

x Q 0,0 x 1 Q 1,0 Q 1,0 x 2 Q 2,0 Q 2,1 Q 2,2 x 3 Q 3,0 Q 3,1 Q 3,2 Q 3,3 x 4 Q 4,0 Q 4,1 Q 4,2 Q 4,3 Q 4,4 : : : : : .. : : : : : .. : : : : : .. x n Q n,0 Q n,1 Q n,2 Q n,3 … … Q n,n

INICIO DATOS: Número de pares de datos n+1; vectores x(i), y(i) tal que i = 0, 1, 2, …, n+1; valor a interpolar xp , TOL. RESULTADOS: Valor de yp . PASO 1: Leer n+1, x(n+1), y(n+1), xp PASO 2: Para i = 0, 1, …, n Hacer Calcular Q(i,0) = y(i) PASO 3: Para i = 1, 2, …, n Hacer Para j = 1, 2, …, i Hacer Calcular Si Entonces Imprimir Exit Para Next j Next i FIN  

POLINOMIO INTERPOLANTE DE NEWTON Supongamos que es el polinomio de Lagrange de grado a lo más que coincide con la función en los números distintos , las diferencias divididas de f con respecto a estos puntos se pueden derivar representando de la siguiente forma:   Donde son constantes, la primera de estas se determina evaluando en , es decir: Similarmente, cuando se evalúa en nos da:   En general, la primera diferencia dividida de f con respecto a y está definida :   Entonces, la k- ésima diferencia dividida de relativa a esta dada por:  

para cada Entonces, el polinomio se re- escribe como:   x f(x) 1ras. Diferencias divididas 2das. diferencias divididas 3ras. Diferencias divididas x f[x ]               x 1 f[x 1 ]           x 2 f[x 2 ]             x 3 f[x 3 ]       x f(x) 1ras. Diferencias divididas 2das. diferencias divididas 3ras. Diferencias divididas x f[x ]               x 1 f[x 1 ]           x 2 f[x 2 ]             x 3 f[x 3 ]        

EJEMPLO i 1 2 3 x(i) 2 4 6 8 f(x(i)) 4 8 14 16 A partir de los siguientes datos de la tabla, encontrar el polinomio interpolante de Newton. i x(i) y = f(x(i)) 1ras. DD 2das. DD 3ras. DD 2 4             2     1 4 8   0.25         3   -0,125 2 6 14   -0.5         1     3 8 16       SOLUCION Las diferencias divididas (DD) hasta la tercera se muestran en la siguiente tabla:   Simplificando, finalmente se obtiene el polinomio interpolante :  

clear;clc ; disp ( ' métodos numéricos ' ); disp ( ' interpolación ' ); n=input( ' ingrese el grado del polinomio , n=' ); fprintf ( 'Se necesitan %.0f puntos\n' ,n+1); disp ( ' ingrese los puntos' ); for i=1:n+1 fprintf ( 'x%.0f=' ,i-1); X( i )=input( ' ' ); fprintf ( 'y%.0f=' ,i-1); Y( i )=input( ' ' ); end DD=zeros(n+1); DD(:,1)=Y; for k=2:n+1 for J=k:n+1 DD( J,k )=[DD(J,k-1)-DD(J-1,k-1)]/[X(J)-X(J-k+1)]; end end disp ( 'La matriz de diferencias divididas es:' ); disp (DD); disp ( 'El polinomio de Newton es' ); syms x ; polnew =DD(1,1); P=1; for i =1:n P=P*(x-X( i )); polnew=polnew+P*DD(i+1,i+1); end polnew =expand( polnew ); pretty( polnew ); x=input( 'ingrese el valor de x a interpolar,x =' ); vi=eval( polnew ); fprintf ( 'el valor interpolado es %.2f\ n' ,vi ); hold on ; ezplot(polnew,[X(1) X(n+1)]); plot( x,vi, 'r +' );

>> NEWTON métodos numéricos interpolación ingrese el grado del polinomio, n=7 Se necesitan 8 puntos ingrese los puntos x0= 0 y0= 0 x1= 1 y1= 25 x2= 2 y2= 34 x3= 3 y3= 72 x4= 4 y4= 115 x5= 5 y5= 92 x6= 6 y6= 71 x7= 7 y7= 65 La matriz de diferencias divididas es: 0 0 0 0 0 0 0 0 25.0000 25.0000 0 0 0 0 0 0 34.0000 9.0000 -8.0000 0 0 0 0 0 72.0000 38.0000 14.5000 7.5000 0 0 0 0 115.0000 43.0000 2.5000 -4.0000 -2.8750 0 0 0 92.0000 -23.0000 -33.0000 -11.8333 -1.9583 0.1833 0 0 71.0000 -21.0000 1.0000 11.3333 5.7917 1.5500 0.2278 0 65.0000 -6.0000 7.5000 2.1667 -2.2917 -1.6167 -0.5278 -0.1079 El polinomio de Newton es 7 6 5 4 3 2 34 x 449 x 1991 x 6767 x 35167 x 65347 x 14867 x - ----- + ------ - ------- + ------- - -------- + -------- - ------- 315 180 90 72 180 360 420 ingrese el valor de x a interpolar,x =3.7 el valor interpolado es 107.33

Interpolación con órdenes Matlab El polinomio de interpolación se puede obtener con el comando de Matlab polyfit escogiendo como grado del polinomio el número de puntos menos uno. Nos da los coeficientes del polinomio interpolante en un vector, empezando por el de mayor grado: x=[2,3,4,5,6]; y=[2,6,5,5,6]; pol = polyfit ( x,y,length (x)-1); % coeficientes del polinomio Representamos el polinomio: xx = linspace (min(x), max (x)); yy = polyval ( pol,xx ); plot (x,y,'.','markersize',20) hold on,plot ( xx,yy )

function [C,D]= difdivaba (X,Y) % ------------------------------------------------------------------------- % Este programa realiza la interpolación de un conjunto de puntos ( x,y ) % por el metodo de diferencias divididas hacia abajo. %-------------------------------------------------------------------------- % ENTRADAS % X : Conjunto de abcisas % Y : Conjunto de ordenadas % SALIDAS: % C : Coeficientes del polinómio interpolante de Newton % D :Coeficientes de la tabla por el metodo de diferencias % divididas hacia abajo %-------------------------------------------------------------------------- n= length (X); D= zeros ( n,n ); D(:,1)=Y'; %todas las filas, pero solo la 1ra. columna %Formula de la tabla de diferencia divididas hacia abajo. for j=2:n for k= j:n D( k,j )=(D(k,j-1)-D(k-1,j-1))/(X(k)-X(k-j+1)); end end %Determinando los coeficientes de los polinómios interpolantes de Newton C=D( n,n ); for k=(n-1):-1:1 C= conv ( C,poly (X(k))); m= length (C); C(m)=C(m)+D( k,k ); end

fin
Tags