Está en la página 1de 14

MATLAB - GUIDE

I. INTRODUCCION

En el presente informe veremos como se emplea el Matlab Guide que es un entorno de


programacin visual que ofrece Matlab para poder realizar y ejecutar programas de
Simulacin a medida y de forma simple, tiene las caractersticas bsicas de todos los
programas visuales como Visual Basic o Visual C++.

Para este informe escogeremos un problema de Mecnica Aplicada en donde


detallaremos todos los pasos a seguir de manera analtica y empleando el Matlab,
haciendo uso de los comandos, funciones y todo lo referente a Guide
II. OBJETIVOS

Reconocimiento de las herramientas y funciones de Matlab Guide.

Reconocimiento de los procedimientos que hay que tener en cuenta para


la aplicacin del Guide.

Una vez conocidas las herramientas y funciones distinguir su empleo en


los procedimientos.

Comprensin de los cdigos ms bsicos como son Calcular, Imagen y


Salir.

Aplicaremos los procedimientos analticos a seguir, que se necesitan


para el Guide.
III. PROCEDIMIENTO EN MATLAB

En esta programa veremos como hallar las Interpolaciones newton lagrante


y neville mostraremos una grafica con los puntos insertados y la solucin
del nuevo punto pedido tomaremos el caso de un misil .

Abrir Matlab, escribir guide en la ventana de Matlab y luego presionar enter.

Se abrir el Guide, luego extendemos la hoja con el cursor haciendo clic en


el punto negro.
Hacemos uso de la herramienta static text que nos servir solo de manera
textual y no influir en los cdigos que veremos mas adelante luego hacemos
doble clic en la ventana creada y cambiamos el string como vemos en el
grafico(creamos 5) con los nombres DENSIDAD DEL AGUA, TC,
DENSIDAD, VALOR y RESULTADO .

Ahora hacemos uso de la herramienta Edit Text esta herramienta si influye


con los cdigos por ello no solo cambiamos el String si no que le damos un
valor al Tag, este ultimo es el enlace con los cdigos(creamos 12) y 2 para el
Valor y Resultado ahora llenamos los tag en orden como se muestra en la
figura 5 para la TC:
X1, X2, X3, X4, X5 y 5 para el DENSIDAD:Y1, Y2, Y3, Y4, Y5 podemos
insertar valores en los string.
Ahora seleccionamos Toggle Buton y sombreamos lo que hemos hecho las
funciones TC y DENSIDAD abrimos el inspector y en style
seleccionamos frame luego vamos a layout y luego a send to back y queda
guardado.

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.

Ahora creamos una ventana para la imagen, seleccionamos Axes para


generar la ventana de grficos en donde saldrn los puntos insertamos y la
forma de la figura q sale al unirlos.
la barra de herramientas Tolls==>Men Editor te da opcin de trabajar con
las teclas creamos 2 una llamado Nuevo con tag New y el otro Salir con tag
Close

Ahora vamos a la opcin File y hacemos click en Save y guardamos el


Guide en la carpeta Word.
Despus de la indicacin anterior sale una ventana en donde se ingresaran
los cdigos
IV.PROCEDIMIENTO EN EL EDITOR.

Llenamos las funcines que vamos a usar

function varargout = popupmenu1_Callback(h, eventdata, handles,


varargin)

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

% Grafico con Lagrange


title('Interpolacion por Lagrange')
x1=min(x):0.01:max(x);
n1 = length(x1);

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

% Grafico con Newton


title('Interpolacion por Newton')
x1=min(x):0.1:max(x);
n1 = length(x1);

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

% Grafico con Neville


title('Interpolacion por Neville')
x1=min(x):0.01:max(x);
n1 = length(x1);

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)

close(gcf) % al hacer click al boton salir cierra la ventana

function varargout = New_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

function varargout = Close_Callback(h, eventdata, handles, varargin)

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; %

También podría gustarte