Documentos de Académico
Documentos de Profesional
Documentos de Cultura
I. INTRODUCCION
Ahora pasamos a crear los Push Button que son activables son botones que al
hacer click en ellos se ejecutan los cdigo pero en este caso solo crearemos 1
para la salida, en el tag ponemos el nombre Salir.
Ahora pasamos a crear el pop-up men lo seleccionamos en la barra de
herramientas y llenamos el string como vemos en la grafico con los nombres:
Metodos( para que no aparesca ni una grafica), Lagrange, Newton, Neville.
Puedes modificar el tag.
Este men desplegable permite a usuarios seleccionar los datos para .
Cuando un usuario selecciona uno de los argumentos introducidos,
MATLAB pone la caracterstica (propiedad) de Valor de men desplegable al
ndice de la cuerda seleccionada.
T1=str2num(get(handles.X1,'string'));
V1=str2num(get(handles.Y1,'string'));
T2=str2num(get(handles.X2,'string'));
V2=str2num(get(handles.Y2,'string'));
T3=str2num(get(handles.X3,'string'));
V3=str2num(get(handles.Y3,'string'));
T4=str2num(get(handles.X4,'string'));
V4=str2num(get(handles.Y4,'string'));
T5=str2num(get(handles.X5,'string'));
V5=str2num(get(handles.Y5,'string'));
%aca guardamos los valores en numero en las variables T y V porla
funcion get rescatamos
%los X y Y en una cadena por la string y lo convertimos en numero por
la funcion %str2num
x=[T1 T2 T3 T4 T5];
y=[V1 V2 V3 V4 V5];
% guardamos los valoresen las cadenas
x0=str2num(get(handles.X,'string'));
%valor pedido
t=get(handles.popupmenu1,'value');
%aca evaluamos el metodo pedido
format long
%formato largo
% Grafico
axes(handles.axes1);
plot(x,y,'o')
grid on
hold on
%bota solo los puntos en la grafica
xlabel('T(C)')
ylabel('DENSIDAD')
%pone nombre a los ejes
switch t
case 1
case 2
% Metodo de Lagrange
n=length(x);
L=zeros(n,1);
for k = 1:n
prod1=1;
prod2=1;
for i=1:n
if i~=k
prod1=prod1*(x0-x(i));
prod2=prod2*(x(k)-x(i));
end
end
L(k)=prod1/prod2;
end
p=0;
for k=1:n
p = p+L(k)*y(k);
% p es el valor pedido
end
for i=1:n1
y1(i)=Lagrange2(x,y,x1(i));
%La funcion Lagrange2 lo llamamos desde un
%editor llamado con el mismo nombre esto nos ayuda a
guardar varios puntos en una cadena.
end
plot(x1,y1,'r')
%bota los puntos sucesivante la 'r' hace q sea roja la recta
case 3
% Metodo por Newton
n=length(x);
F=zeros(n,n);
for i =1:n
F(i,1)=y(i);
end
for j=2:n
k=j-1;
for i =1:n+1-j
F(i,j)=(F(i+1,k)-F(i,k))/(x(i+j-1)-x(i));
end
end
prod=1;suma=0;
for j=1:n
suma = suma + F(i,j)*prod;
prod=prod*(x0-x(j));
end
p = suma;
% p es el valor pedido
for i=1:n1
y1(i)=InterNewton2(x,y,x1(i));
%La funcion InterNewton2 lo llamamos desde un
%editor llamado con el mismo nombre esto nos ayuda
aguardavarios puntos en una cadena.
end
plot(x1,y1,'b')
%bota los puntos sucesivante la 'b' hace q sea azul la
recta
case 4
% Metodo de Neville
n=length(x);
F=zeros(n,n);
for i =1:n
F(i,1)=y(i);
end
for j=2:n
k=j-1;
for i =1:n+1-j
F(i,j)=((x0-x(i))*F(i+1,k)-(x0-x(i+j-1))*F(i,k))/
(x(i+j-1)-x(i));
end
end
p=F(1,n);
% p es el valor pedido
for i=1:n1
y1(i)=InterNeville2(x,y,x1(i));
%La funcion InterNeville2 lo llamamos desde un
%editor llamado con el mismo nombre esto nos ayuda a
guardar varios puntos en una cadena.
end
plot(x1,y1,'k')
%bota los puntos sucesivante la 'k' hace q sea negra la
recta
end
set(handles.Resultado,'string',num2str(p));
% la funcion set bota el valor pedido en la variable
Resultado
function varargout = Salir_Callback(h, eventdata, handles, varargin)
hold off
set(handles.X1,'string','');
set(handles.X2,'string','');
set(handles.X3,'string','');
set(handles.X4,'string','');
set(handles.X5,'string','');
set(handles.Y1,'string','');
set(handles.Y2,'string','');
set(handles.Y3,'string','');
set(handles.Y4,'string','');
set(handles.Y5,'string','');
set(handles.X,'string','');
set(handles.Resultado,'string','');
set(handles.popupmenu1,'value',1);
plot(0,0,'w')
%esta funcion borra todos los datos y el grafica es activado con el
teclado crtl+A
Presentacion
close(levano)
%esta funcion cierra el programa pero no lo hemos activado
M-file usadas en las graficas.
function p = Lagrange2(x,y,x0)
n=length(x);
L=zeros(n,1);
for k = 1:n
prod1=1;
prod2=1;
for i=1:n
if i~=k
prod1=prod1*(x0-x(i));
prod2=prod2*(x(k)-x(i));
end
end
L(k)=prod1/prod2;
end
for k=1:n
p = p+L(k)*y(k);
end
function p = Lagrange2(x,y,x0)
n=length(x);
L=zeros(n,1);
for k = 1:n
prod1=1;
prod2=1;
for i=1:n
if i~=k
prod1=prod1*(x0-x(i));
prod2=prod2*(x(k)-x(i));
end
end
L(k)=prod1/prod2;
end
% Imprimir la Tabla de salida o reporte
p=0;
for k=1:n
p = p+L(k)*y(k);
end
function p=InterNewton2(x,y,x0)
n=length(x);
F=zeros(n,n);
for i =1:n
F(i,1)=y(i);
end
for j=2:n
k=j-1;
for i =1:n+1-j
F(i,j)=(F(i+1,k)-F(i,k))/(x(i+j-1)-x(i));
end
end
prod=1;suma=0;
for j=1:n
suma = suma + F(i,j)*prod;
prod=prod*(x0-x(j));
end
p=suma; %