








Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Documento que contiene diferentes ejercicios de interpolación de polinomios utilizando el software MATLAB. Cada ejercicio incluye el nombre del estudiante, la fecha y el código MATLAB para realizar la interpolación. Se presentan ejercicios de interpolación lineal, Newton y Lagrange.
Tipo: Apuntes
1 / 14
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!









clear all clc disp('POLINOMIOS EN FORMA FACTORIZADA') syms x; p1=factor(x^4-3x^3+x+2); p2=factor(3x^5+2*x^3+x^2+7); disp(p1); disp(p2); disp('----FIN DEL PROGRAMA-----')
clear, clc x=input('Ingresamos valores para x: '); y=input('Ingresamos los valores para y: '); n=length(x);%obtener el número de datos %If para verificar si las dimensiones de X y Y son iguales if length(y)~=n fprintf('Los vectores no son de la misma dimensión'); %me imprime el mensaje en el comando x=input('Ingresar los valores de x: ');%damos valores para X y=input('Ingresar los valores de y: ');%damos valores para y end a=zeros(n);%creamos una matriz de ceros a(:,1)=y(:); %Me determina la fila y la primera columna %Con el siguiente ciclo construimos la tabla for j=2:n
for i=1:n-j+ a(i,j)=(a(i+1,j-1)-a(i,j-1))/(x(i+j-1)-x(i)); end end fprintf(' LA TABLA DE DIFERENCIAS ES: \n ');%imprimir en pantalla disp(a) %interporlación xi=input('Ingresar el valor que se desea interpolar: ');%ingresar datos x1=1; yi=a(1,1); for j=1:n- x1=x1.(xi-x(j)); yi=yi+a(1,j+i)x1; end fprintf('La interpolación es: \n '), disp(yi) %muestra valor en la pantalla %Polinomio de interpolación p=num2str(a(1,1)); xx=x-1; for j=2:n signo=''; if a(1,j)>= signo='+'; end x1=''; for i=1:j- signo2=''; if xx(i)>= signo2='+'; end x1=strcat(x1,'(x',signo2,num2str(xx(i)),')'); end p=strcat(p,signo,num2str(a(1,j)),x1); end fprintf('Polinomio de interpolación: \n ');%mostrar en pantalla P=inline(p); %mostrar en pantalla disp(P); fprintf('El polinomio es: (-0.05226x.^3)-(0.04719x.^2)-(0.4129x) +(0.91790)\n ');%mostrar en pantalla a = input('Introducir los coeficientes del polinomio: '); %pedir datos para agrupar [b,c] = size(a);%vector fila syms x %variable simbolica x y = (a(1,1)x)+a(1,2);%función for i = 3:1:c y = ((x*y)+a(1,i));%crea los polinomios agrupados end fprintf('Polinomio forma agrupada: \n ');%mostrar en pantalla disp(y)%imprime la ecuación en la pantalla fprintf('Polinomio forma factorizada: \n ');%mostrar en pantalla disp(P)
clear clc format shortG disp('(literal (a))(-1,1),(1,4)') A=[-1,1;1,1]; Ar=[1;4]; A1=inv(A)Ar; disp('La constantes son: ') disp(A1') fprintf('El polinomio es f(x)= %Gx + %G ',(A1(1,1)),A1(2,1)) disp('.') xa=(-1:2:1); ya=1.5xa+2.5; disp ('Los valores de "y" con los puntos dados son:') fprintf('x=') disp(xa) fprintf('y=') disp(ya) disp('Utilizando polyfit: ') a=polyfit(xa,ya,length(xa)-1); disp(a) disp('literal(b)(-2,2),(0,-1),(2,1)') B=[4,-2,1;0,0,1;4,2,1]; Br=[2;-1;1]; B1=inv(B)Br; disp('La constantes son: ') disp(B1') fprintf('El polinomio es f(x)= %Gx^2 %Gx %G',B1(1,1),B1(2,1),B1(3,1)) disp('.') xb=[-2 0 2]; yb=[2 -1 1]; disp ('Los valores de "y" con los puntos dados son:') fprintf('x=') disp(xb) fprintf('y=') disp(yb) disp('Utilizando polyfit: ') b=polyfit(xb,yb,length(xb)-1); disp(b) disp('literal(c)(-1,-1),(0,0),(1,2),(2,5)') C=[-1,1,-1,1 ;0,0,0,1 ;1,1,1,1 ;8,4,2,1]; Cr=[-1;0;2;5]; C1=inv(C)Cr; disp('La constantes son: ') disp(C1') fprintf('El polinomio es f(x)= %Gx^3 + %Gx^2 + %Gx + %G',C1(1,1),C1(2,1),C1(3,1),C1(4,1)) disp('.') xc=[-1 0 1 2]; yc=[-1 0 2 5]; disp ('Los valores de "y" con los puntos dados son:') fprintf('x=') disp(xc)
fprintf('y=') disp(yc) disp('utilizando polyfit: ') c=polyfit(xc,yc,length(xc)-1); disp(c) disp('-----FIN DEL PROGRAMA-----')
clear, clc syms x disp('Interpolación lineal') disp('La función a interpolar es f(x)=sen(x)')
clear, clc fprintf('INTERPOLACIÓN NEWTON HACIA ADELANTE \n') x=input('Ingresamos valores para x: '); y=input('Ingresamos los valores para y: '); n=length(x); if length(y)~=n fprintf('Los vectores no son de la misma dimensión'); x=input('Ingresar los valores de x: '); y=input('Ingresar los valores de y: '); end a=zeros(n); a(:,1)=y(:); for j=2:n for i=1:n-j+ a(i,j)=(a(i+1,j-1)-a(i,j-1))/(x(i+j-1)-x(i)); end end fprintf(' LA TABLA DE DIFERENCIAS ES: \n ');%imprimir en pantalla disp(a) xi=input('Evalue en el polinomio : ');%ingresar datos x1=1; yi=a(1,1); for j=1:n- x1=x1.(xi-x(j)); yi=yi+a(1,j+i)x1; end fprintf('La interpolación es: \n '), disp(yi) p=num2str(a(1,1)); xx=x-1; for j=2:n signo=''; if a(1,j)>= signo='+'; end x1=''; for i=1:j- signo2=''; if xx(i)>= signo2='+'; end x1=strcat(x1,'(x',signo2,num2str(xx(i)),')'); end p=strcat(p,signo,num2str(a(1,j)),x1); end fprintf('Polinomio de interpolación: \n '); P=inline(p); disp(P) %GRAFICA grid on hold on plot(xi,yi,'.') plot(x,y) scatter(x,y)
title('Gráfica de interpolación de Newton'); xlabel('Eje X');% Etiqueta del eje X ylabel('Eje Y');% Etiqueta del eje Y legend; hold off disp('-----FIN DEL PROGRAMA-----')
%x para la f(x)=0. p1=[0.5596 0.4055]; p2=[0.75 1]; Int1=interp1( p1, p2, 0.4137) ; disp('El valor de x para la f(x)=0.4137 es: \n') disp(Int1); %X para la f(x)= 0. p3=[0.8109 0.6931]; p4=[0.25 0.5]; Int2=interp1( p3, p4, 0.7233) ; disp('El valor de x para la f(x)=0.7233 es: \n') disp(Int2) %X para la f(x)= 0. p5=[ 0.9162 0.8109 ]; p6=[ 0 0.25]; Int3=interp1( p5, p6, 0.8501) ; disp('El valor de x para la f(x)=0.8501 es: \n') disp(Int3) disp('-----FIN DEL PROGRAMA-----')
clc clear X=0:0.1:2; Y=X.sin(X); n=length(X); syms x; P=0; for N=1:n LN=1; for i=1:n if(i~=N) LN=LN(x-X(i))/(X(N)-X(i)); end end LN=expand(LN); P=P+Y(N)LN; end fprintf('EL POLINOMIO DE INTERPOLACION ES: ') P=simplify(P) x=0:0.1:2; fprintf('LOS VALORES INTERPOLADOS ENTRE 0 Y 5 SON: ') G=eval(P) X1=0:0.1:2; F=X.sin(X1); e=F-G; hold on plot(x,G) plot(X,Y) plot(X1,e) title('Función =sin(x)'); xlabel('Eje X') ylabel('Eje Y') lgd=legend; disp('-----FIN DEL PROGRAMA-----')
clc clear X=linspace(0,2pi,5)'; Y=sin(X); n=length(X); X1=linspace(0,2pi,9)'; Y1=sin(X1); m=length(X1); syms x; P=0; for i=1:n L=1; for j=1:1:n if i~=j L=L((x-X(j))/(X(i)-X(j))); end end P=P+LY(i); end M=table(X,Y); disp(M); disp('POLINOMIO DE LAGRANGE'); P=expand(P); P=vpa(P) P1=0; for i=1:m L1=1; for j=1:1:m if i~=j L1=L1*((x-X1(j))/(X1(i)-X1(j)));
clc clear X=linspace(0,5,5)%valores para x Y=((1+X)/(1+2X+3X.^2));%valores para y n=length(X); %n=numero de datos syms x; %x=variable de polinomio P=0; for N=1:n LN=1; for i=1:n if(i~=N) LN=LN(x-X(i))/(X(N)-X(i)); end end LN=expand(LN); P=P+YNLN; end fprintf('EL POLINOMIO DE INTERPOLACION ES: ') P=simplify(P) x=[0 5]; fprintf('LOS PUNTOS INTERPOLADOS ENTRE 0 Y 5 SON: ') G=eval(P) X1=[0:0.2:5] F=(1+X)/(1+2X+3*X.^2); e=F-G; hold on plot(x,G,'m') disp('-----FIN DEL PROGRAMA-----')