Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Institución: Tecnológico de la laguna Carrera: Mecatrónica Materia: MÉTODOS NUMÉRICOS Docente: Leticia Lozano Cuellar Alumno: Eduardo Antonio Rodríguez Guerra Matricula: 19131252 Interpolación en MATLAB Fecha de entrega: 06 de noviembre de 2020 INTERPOLACION POLINOMIO DE LAGRAGE clc clear format long disp('......................... INSTITUTO TECNOLOGICO DE LA LAGUNA .............................'); disp('................................. MÉTODOS NUMERICOS ......................................'); fprintf('........................ INTERPOLACION "POLINIMIO DE LAGRAGE" ............................\n\n'); xi=input('Ingrese los puntos pertenecientes a eje x: '); yi=input('Ingrese los puntos pertenecientes a eje y: '); n=length(xi); x=sym('x'); for j=1:n prod1=1; for i=1:j-1 prod1=prod1*(x-xi(i)); end prod2=1; for i=j+1:n prod2=prod2*(x-xi(i)); end prod3=1; for i=1:j-1 prod3=prod3*(xi(j)-xi(i)); end prod4=1; for i=j+1:n prod4=prod4*(xi(j)-xi(i)); end L(j)=(prod1*prod2)/(prod3*prod4); fprintf('\n---L%d:',j-1) disp(L(j)) end pn=0; for j=1:n pn=pn+L(j)*yi(j); end fprintf('\nEL POLINOMIO QUE PASA POR LOS PUNTOS QUE USTED ME BRINDÓ ES: \n') pn = simplify(pn); disp(pn) x=[-10:0.05:xi(n)]; y=eval(pn); plot(x,y,xi,yi,'*') opc2=input('\nDesea aproximar un valor (s/n): ','s'); if opc2=='s' x=input('\nIngrese el punto a aproximar: '); y=eval(pn); disp('La aproximacion a f(x) es: '); disp(y) end ......................... INSTITUTO TECNOLOGICO DE LA LAGUNA ............................. ................................. MÉTODOS NUMERICOS ...................................... ........................ INTERPOLACION "POLINIMIO DE LAGRAGE" ............................ Ingrese los puntos pertenecientes a eje x: [0 1 2] Ingrese los puntos pertenecientes a eje y: [1 3 0] ---L0:((x - 1)*(x - 2))/2 ---L1:-x*(x - 2) ---L2:(x*(x - 1))/2 EL POLINOMIO QUE PASA POR LOS PUNTOS QUE USTED ME BRINDÓ ES: (9*x)/2 - (5*x^2)/2 + 1 Desea aproximar un valor (s/n): s Ingrese el punto a aproximar: 4 La aproximacion a f(x) es: -21 INTERPOLACION DE NEWTON clear clc format long disp('......................... INSTITUTO TECNOLOGICO DE LA LAGUNA .............................'); disp('................................. MÉTODOS NUMERICOS ......................................'); fprintf('.................. INTERPOLACION de NEWTON "DIFERENCIAS DIVIDIDAS" .......................\n\n'); n=input('Ingrese el grado del polinomio: '); fprintf('Para interpolar necesitamos %.0f puntos\n',n+1); fprintf('Ingrese los puntos\n\n'); for i=1:n+1 fprintf('x%.0f=',i-1); X(i)=input(' '); fprintf('y%.0f=',i-1); Y(i)=input(' '); fprintf('\n'); 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 fprintf('La matriz de diferencias divididas es:\n\n'); 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('Por favor ingrese el valor que se desee interpolar:'); vi=eval(polnew); fprintf('El valor interpolado es: %.2f\n',vi); hold on; ezplot(polnew,[X(1) X(n+1)]); plot(x,vi,'r+'); ......................... INSTITUTO TECNOLOGICO DE LA LAGUNA ............................. ................................. MÉTODOS NUMERICOS ...................................... .................. INTERPOLACION de NEWTON "DIFERENCIAS DIVIDIDAS" ....................... Ingrese el grado del polinomio: 2 Para interpolar necesitamos 3 puntos Ingrese los puntos x0= 1 y0= 2 x1= 0 y1= 4 x2= -3 y2= -2 La matriz de diferencias divididas es: 2 0 0 4 -2 0 -2 2 -1 El polinomio de newton es: 2 - x - x + 4 Por favor ingrese el valor que se desee interpolar:5 El valor interpolado es: -26.00 >> Página 6
Compartir