% ========== % Apartado I % ========== % Resolución Analítica % % * * * Ejemplo 1 * * * f=inline('x.^4+2*x-1');x=linspace(-3,3,10);y=f(x); p=polyfit(x,y,length(x)-1) X=linspace(-3,3);Y=f(X);P=polyval(p,X); plot(X,Y,X,P,x,y,'*');grid on; legend('funcion','Interpolante','datos') [mayor,lugar]=max(abs(Y-P)); disp(['error ',num2str(mayor),' en el punto ',num2str(X(lugar))]) % * * * Ejemplo 2 * * * f=inline('x.*sin(x.^2)'); n=8;a=-pi;b=pi; x=linspace(a,b,n);y=f(x); [p,s,m]=polyfit(x,y,n-1) X=linspace(a,b);Y=f(X); P=polyval(p,(X-m(1))/m(2)); plot(X,Y, X,P,x,y,'*');grid on; legend('funcion','Interp', 'datos') [mayor,lugar]=max(abs(Y-P)); disp(['error ',num2str(mayor),' en el punto ',num2str(X(lugar))]) % * * * EJERCICIO 1 * * * f=inline('exp(-x.^2)'); n=9;a=-2;b=2; x=linspace(a,b,n);y=f(x); [p,s,m]=polyfit(x,y,n-1) X=linspace(a,b);Y=f(X); P=polyval(p,(X-m(1))/m(2)); plot(X,Y, X,P,x,y,'*');grid on; legend('funcion','Interp', 'datos') [mayor,lugar]=max(abs(Y-P)); disp(['error ',num2str(mayor),' en el punto ',num2str(X(lugar))]) % % =========== % Apartado II % =========== % % * * * Ejemplo 1 * * * n=length(x);p=zeros(n); for i=1:n q=x;q(i)=[];q=poly(q);p(i,:)=q/polyval(q,x(i)); end P=y*p % % * * * EJERCICIO 2 * * * % Representacion de los Polinomios de Lagrange % for i=2:4 x=0:i; n=length(x);p=zeros(n); X=linspace(0,i);Y=zeros(n+1,length(X)); for i=1:n y=x;y(i)=[];y=poly(y);p(i,:)=y/polyval(y,x(i)); Y(i,:)=polyval(p(i,:),X); end Y(n+1,:)=sum(Y(1:n,:)); figure(i-1);plot(X,Y);grid end % % ============ % Apartado III % ============ % % * * * Ejemplo 1 * * * % % Ejemplo con interpolacion segmentaria % f=inline('x.*sin(x.^2)'); n=8;a=-pi;b=pi; x=linspace(a,b,n);y=f(x); X=linspace(a,b);Y=f(X); P0=interp1(x,y,X,'linear'); P1=interp1(x,y,X,'spline'); plot(X,Y,X,P0,X,P1,x,y,'*');grid on; legend('funcion','lineal','spline','datos') [mayor,lugar]=max(abs(Y-P0)); disp(['error ',num2str(mayor),' en el punto ',num2str(X(lugar))]) [mayor,lugar]=max(abs(Y-P1)); disp(['error ',num2str(mayor),' en el punto ',num2str(X(lugar))]) % % % * * * EJERCICIO 3 * * * % Ejemplo de Runge con interpolacion equiespaciada % clear all close all f=inline('1./(1+x.^2)'); N=[5,9,17];TN=int2str(N');n=length(N); X=linspace(-5,5); Y=zeros(n+1,length(X)); Y(1,:)=f(X); j=2; for n=N x=linspace(-5,5,n);y=f(x); [p,s,m]=polyfit(x,y,length(x)-1); Y(j,:)=polyval(p,(X-m(1))/m(2)); j=j+1; end figure(1);plot(X,Y) legend('f(x)',TN(1,:),TN(2,:),TN(3,:)) % % Ejemplo de Runge con splines % f=inline('1./(1+x.^2)'); N=[5,9,17];TN=int2str(N');n=length(N); X=linspace(-5,5); Y=zeros(n+1,length(X)); Y(1,:)=f(X); j=2; for n=N x=linspace(-5,5,n);y=f(x); Y(j,:)=spline(x,y,X); j=j+1; end figure(2);plot(X,Y) legend('f(x)',TN(1,:),TN(2,:),TN(3,:))