Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Análisis Numérico Grupo: 13 UNAM / FI / DCB(DIE) Semestre 2021-1 Tarea 6 Polinomios de Interpolación de Newton y Lagrange Araiza Alfredo, Rincón Carlos, Sánchez Axel 1. Polinomio de interpolación de Lagrange considerando los tres primeros puntos: P2(x) = 0.105x 2 + 0.605x+ 0.18 (1) 2. Polinomio de interpolación de Newton considerando los tres últimos puntos, utilizando diferencias divididas: P2(x) = 0.2433x 2 − 0.2633x+ 1.54 (2) 3. Polinomio de interpolación de Newton considerando los puntos x=(2,3,4), utilizando el caso de incrementos igua- les: P2(x) = 0.155x 2 + 0.355x+ 0.48 (3) AN21-1x13: Tarea 6 Araiza Alfredo, Rincón Carlos, Sánchez Axel 4. Gráfica de Polinomios de Interpolación: 1 2 3 4 5 6 7 X 0 2 4 6 8 10 12 Y Gráfica de Polinomios de Interpolación Pol. de Lagrange Pol. de Newton Dif. Div Pol. de Newton con Inc. Igual. Pol. con todos los valores 2 AN21-1x13: Tarea 6 Araiza Alfredo, Rincón Carlos, Sánchez Axel 5. Descripción de trabajo en equipo Para obtener los resultados, nos repartimos equitativamente todo el trabajo, Alfredo se encargó de realizar y modificar los programas para obtener los polinomios de interpolación de Lagrange y de Newton(incrementos iguales e incrementos variables) además de realizar la gráfica que contiene dichos polinomios, mientras que Carlos y Axel desarrollaron los ejercicios a mano para la obtención de los polinomios de interpolación (Lagrange y Newton), y capturaron la información en LATEX, comparando los resultados con los programas realizados. Al final realizamos una videollamada para verificar que el archivo y su contenido sean los correctos y para aclarar las dudas que surgieron en el proceso. 3 AN21-1x13: Tarea 6 Araiza Alfredo, Rincón Carlos, Sánchez Axel 6. Desarrollo 4 AN21-1x13: Tarea 6 Araiza Alfredo, Rincón Carlos, Sánchez Axel 5 AN21-1x13: Tarea 6 Araiza Alfredo, Rincón Carlos, Sánchez Axel 6 AN21-1x13: Tarea 6 Araiza Alfredo, Rincón Carlos, Sánchez Axel 7. Códigos utilizados ’Código Principal’ 1 clc % Limpia Command Window 2 clear all % Limpia Workspace 3 %% Programa Principal 4 a1=[1 2 3]; 5 b1=[0.89 1.81 2.94]; 6 7 a2=[3 4 6]; 8 b2=[2.94 4.38 8.72]; 9 10 a3=[2 3 4]; 11 b3=[1.81 2.94 4.38]; 12 13 a=[1 2 3 4 6]; 14 b=[0.89 1.81 2.94 4.38 8.72]; 15 16 % Los diferentes a y b son los intervalos para los polinomios de 17 % interpolación 18 19 x=0:0.005:7; % Dominio de 0 a 7 20 21 y1=lagran(a1,b1); % Polinomio Ejercicio 1 22 y2=newton(a2,b2,2); % Polinomio Ejercicio 2 23 y3=newton(a3,b3,2); % Polinomio Ejercicio 3 24 y4=newton(a,b,4); % Polinomio Ejercicio 4 25 26 hold on 27 t1=’Rojo: Lagrange ’; 28 t2=’; Azul: Newton Dif ’; 29 t3=’; Verde: Newton Inc ’; 30 t4=’; Negro: Todos Puntos ’; 31 32 titulo=strcat(t1,t2,t3,t4); 33 disp(titulo) 34 35 % Gráfica ejercicio 1 36 vy1=polyval(y1,x); 37 plot(x,vy1,’r’),title(titulo),xlabel(’x’),ylabel(’y’),grid 38 39 % Gráfica ejercicio 2 40 vy2=polyval(y2,x); 41 plot(x,vy2,’c’) 42 43 % Gráfica ejercicio 3 7 AN21-1x13: Tarea 6 Araiza Alfredo, Rincón Carlos, Sánchez Axel 44 vy3=polyval(y3,x); 45 plot(x,vy3,’g’) 46 47 % Gráfica ejercicio 3 48 vy4=polyval(y4,x); 49 plot(x,vy4,’k’) 50 51 % Para indicar a que polinomio pertenece cada línea 52 legend(’Pol. de Lagrange’,’Pol. de Newton Dif. Div’,... 53 ’Pol. de Newton con Inc. Igual.’,’Pol. con todos los valores’) 54 ’Código Método de Lagrange’ 1 function C=lagran(x,y) 2 n1=length(x);% tamaño del vector 3 n=n1-1; 4 L=zeros(n1,n1); % Se inicializa Landa 5 for k=1:n+1 6 V=1; % valor auxiliar 7 for j=1:n+1 % Para L1,L2,L3, .... 8 if k~=j; % Pregunta si j es distinto a k 9 V=conv(V,poly(x(j)))/(x(k)-x(j)); 10 % conv se utiliza para multiplicar polinomios 11 % La función poly crea un polinomio como x-1 dependiendo 12 % del valor de j 13 end 14 end 15 L(k,:)=V; % Se crea el polinomio lambda,guardando los valores de v en 16 %cada renglón de lambda 17 end 18 C=y*L; % Se crea la sumatoria de polinomios landa por ys 19 ’Código Método de Newton’ 1 function y= newton(X,Y,n) 2 % n es el grado del polinomio 3 DD=zeros(n+1); % Se inicializa el vector con el grado del polinomio 4 % y se llena de ceros 5 DD(:,1)=Y; % En su columna uno se ingresan los valores de Y 6 for k=2:n+1 7 for J=k:n+1 8 DD(J,k)=[DD(J,k-1)-DD(J-1,k-1)]/[X(J)-X(J-k+1)]; 9 % Se va a crear la tabla de diferencias divididas 10 end 8 AN21-1x13: Tarea 6 Araiza Alfredo, Rincón Carlos, Sánchez Axel 11 end 12 syms x; 13 polnew=DD(1,1); 14 P=1; 15 for i=1:n 16 %Se construye el polinomio 17 P=P*(x-X(i)); 18 polnew=polnew+P*DD(i+1,i+1); 19 end 20 polnew=expand(polnew); % Multiplica los valores que están en paréntesis 21 y=sym2poly(polnew); % Se obtienen los coeficientes del polinomio 22 return 23 24 25 9
Compartir