Professional Documents
Culture Documents
clear
clear all
n=('Ingrese el numero del valor de la funcion n=');
disp('Ingreso de datos...');
fx=input('Ingrese la funcion fx=');
x0=input('Ingrese los valores de x0=');
x1=input('Ingrese el valor de x1=');
x=x0;
fx0=eval(fx);
x=x1;
fx1=eval(fx);
x=input('ingrese el valor a calclar');
fx=fx0+((fx1-fx0)/(x1-x0))*(x-x0);
fprintf('El valor de x es %2.6f',fx);
comando for
clear;
clear all;
disp('Programa de Interpolacion Polinomial');
n=input('Ingrese el orden del polinomio, n=');
disp('Ingreso de datos...');
for i=1:n+1
x(i)=input('Ingrese abcisa...');
fx(i)=input('Ingrese ordenada...');
end
syms X;
FX1=fx(1)+((fx(2)-fx(1))/(x(2)-x(1)))*(X-x(1));
X=input('Ingrese el valor a interpolar...x=');
VI=eval(FX1);
fprintf('El valor de la interpolacion es: %0.6f\n',VI);
clear;
clear all;
disp('Programa de Interpolacion Polinomial');
n=input('Ingrese el orden del polinomio, n=');
disp('Ingreso de datos...');
for i=1:n+1
fprintf('Ingrese abcisa x(%0,0f)=',i-1);
x(i)=input('');
fprintf('Ingrese ordenada f(%0.0f)=',i-1);
fx(i)=input('');
end
switch n
case 1
syms X;
FX1=fx(1)+((fx(2)-fx(1))/(x(2)-x(1)))*(X-x(1));
X=input('Ingrese el valor a interpolar...x=');
VI=eval(FX1);
fprintf('El valor de la interpolacion es: %0.6f\n',VI);
case 2
syms X
B0=fx(1);
B1=(fx(2)-fx(1))/(x(2)-x(1));
B2=((fx(3)-fx(2))/(x(3)-x(2))-(fx(2)-fx(1))/(x(2)-x(1)))/x(3)-
x(1);
FX2=B0+B1*(X-x(1))+B2*(X-x(1))*(X-x(2));
X=input('Ingrese el valor a interpolar...x=');
VI=eval(FX2);
fprintf('El valor de la interpolacion es: %0.6f\n',VI);
end
clear;
clear all;
disp('Programa de Interpolacion Polinomial Metodo de Newton');
n=input('Ingrese el valor de n=');
for i=1:n+1
x(i)=input('Ingrese abcisa...');
fx(i)=input('Ingrese ordenada...');
end
n=length(x);%Numero de datos
dd=zeros(n);%Creacion de la matriz de diferencias divididas
dd(:,1)=fx
%Parte 1--> Calculo de las diferencias Divididas Finitas
for k=2:n
for j=k:n
dd(j,k)=(dd(j,k-1)-dd(j-1,k-1))/(x(j)-x(j-k+1))
end
end
pause
syms a
term1=1
term2=0
for i=1:n-1
term1=term1*(a-x(i))
term2=term2+dd(i+1,i+1)*term1
end
pn=dd(1,1)+term2
a=input('el valor a interpolar,');
ipn=eval(pn)
x=x(1):0.1:x(n)
q=length(x)
for i=1:q
a=x(i)
epn(i)=eval(pn)
end
plot(x,epn,x,fx);grid
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
% End initialization code - DO NOT EDIT
% --- Outputs from this function are returned to the command line.
function varargout = interpolar_OutputFcn(hObject, eventdata, handles)
% varargout cell array for returning output args (see VARARGOUT);
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
for k=2:n
for j=k:n
dd(j,k)=(dd(j,k-1)-dd(j-1,k-1))/(x(j)-x(j-k+1));
end
end
pause
syms a
term1=1;
term2=0;
for i=1:n-1
term1=term1*(a-x(i));
term2=term2+dd(i+1,i+1)*term1;
end
pn=dd(1,1)+term2;
ipn=eval(pn);
x=x(1):0.1:x(n);
q=length(x);
for i=1:q
a=x(i);
epn(i)=eval(pn);
end
end
% Hint: get(hObject,'Value') returns toggle state of enesima