Práctica 2: Archivos de programa y funciones#
En esta práctica se presenta el procedimiento para generar funciones personalizadas y programas. MATLAB® cuenta con un basto repertorio de funciones y operaciones nativas como las que se utilizaron en la práctica pasada. Cuando re requiere ejecutar un conjunto de instrucciones en particular de manera repetida, que no se encuentre entre las que ofrece MATLAB®, se debe crear una función o programa.
Características de las funciones y los programas
Las diferencias entre programas y funciones son las siguientes:
Los programas son secuencias de istrucciones, algunas de ellas pueden ser repetidas varias veces dentro de la secuencia. Se invocan escribiendo el nombre del archivo en el que se encuentran en la ventana de comandos.
Las funciones son secuencias de instrucciones que entregan alguna o varias salidas y requieren parámetros de entrada con los cuales trabajar o procesar. Se invocan usando el nombre con el que se guardaron, el resultado o resultados que entregan se almacena en alguna o algunas variables, por ejemplo:
a=area_circulo(2);
, esta instrucción calculará el radio de un circulo de radio 2.
Selección de la carpeta de trabajo#
Con el fin de tener orden en las programas y funciones que se crean con fines específicos, es recomendable crear una carpeta de trabajo en donde todos los archivos se almacenen. Para seleccionar una carpeta en específico, se debe seguir el procedimiento que se muestra en el video siguiente:
Creación de programas#
Un programa en MATLAB® es un conjunto de instrucciones que se escriben como una secuencia de pasos para lograr un determinado objetivo. Dichas instrucciones se almacenan en un archivo de texto. El archivo generado tendrá la extensión .m, lo que le permite a MATLAB® identificar que se trata de un conjunto de instrucciones o sentencias ejecutables en el command window de manera automática. El programa o conjunto de instrucciones se genera usando la pestaña nombrada editor, en el siguiente video se muestra el procedimiento para escribir un programa:
El código utilizado en el programa del video es el que se muestra a continuación:
clear %Limpia todas la variables
clc %Limpia la ventana de comandos
close all %Cierra todas las graficas
C=[-5:0.5:40]; %Tabla de datos C a F
F=(9/5)*C+32; %Convertir C a F
figure
plot (C,F) %Grafica
t=[0:1:5]; %Vector de variable independiente
y=exp(-2.5*t).*cos(11.35*t) %Calculo de una funcion
v=[0:0.01:100]; %Arreglo de prueba
v(30)%Acceso a la localidad 30
A=[0:0.0001:0.1]; %Vector de variable independiente
y=cos(115*A).*sin(30*A)+2; %Calculo de una funcion
figure
plot(A,y) %Grafica
%Solucion de un sistema de ecuaciones usando matrices
A=[3 2 -5; 1 0.5 3; -2 7 -3]
B=[10 5 -2]
X=(A^-1)*B'%Calculo alternativo
X=inv(A)*B'%B' Significa transpuesta
A(1,3)%Acceder a la localidad Fila=1 Columna=3
A(2,3)%Acceder a la localidad Fila=2 Columna=3
Este programa en particular no realiza ninguna tarea en específico, simplemente fue creado como ejemplo, recopilando las instrucciones básicas vistas en la Práctica 1.
Creación de funciones#
El procedimiento para generar funciones se presenta en el siguiente video:
Una función se diferencia de un programa por que tiene la característica de solicitar variables de entrada, en el caso de este ejemplo, el parámetro de entrada o argumento es el radio y la salida es la multiplicación de este valor al cuadrado por la constante \(\pi\), que en MATLAB® está almacenada en una variable propia llamada pi.
function a=area_circulo(radio)
a=pi*(radio^2);
end
Las funciones pueden recibir varios parámetros de entrada y proporcionar varios datos de salida, por ejemplo:
function [a v]=area_volumen_cilindro(radio,altura)
a=pi*(radio^2);
v=a*altura;
end
Información importante
Tanto las funciones como los programas almacenados en archivos con extensión .m se pueden invocar o mandar llamar desde otras funciones o programas.
%Programa de prueba
radio1=2;
radio2=8;
altura=12;
area_circulo(radio1)
[a v]=area_volumen_cilindro(radio2,altura)
ans = 12.566
a = 201.06
v = 2412.7
Entrada de datos a traves del teclado#
A menudo se requiere de la interacción con el usuario de un programa, en el sentido de que resulta más cómodo proporcionar un valor numérico a través del teclado, en vez de editar el código si se requiere hacer cálculos de formulas incluidas en el cuerpo de los programas con diferentes valores o parámetros. La instrucción para proporcionar datos a través del teclado en
MATLAB® es a=input("mensaje")
, donde a
es la variable en donde se almacena el dato proporcionado por el usuario. Por ejemplo, la estructura de un programa que calcula el volumen de un tanque cilíndrico es la siguiente:
%Programa para calcular el volumen de un cilindro
clear
close all
clc
disp("Proporcione el radio de la base")
r=input("r=")
disp("Proporcione la altura del cilindro")
h=input("h=")
volumen=(pi*r^2)*h;
disp("El volumen del cilindro es:")
volumen
Ejercicios#
1.- Escriba un programa para generar las gráficas de las siguientes funciones:
\(y=2(x-2)^2\)
\(y=5x^3-4x^2-40x+3\)
\(y=cos(20.4x)-3.5sen(14.5x)\)
\(x=e^{-3t}cos(11.9t)\)
Cada gráfica debe mostrarse en una figura diferente, elija intervalos e incrementos adecuados para sus gráficas.
2.-Escriba una función independiente que realice los cálculos que se solicitan:
\(c(a,b)=a^3+b^4+\frac{4ab}{3b}\)
\(d(a,b,c)=\frac{a^b}{c}-4\)
\(r(a,b,c)=\frac{-b+\sqrt{b^2-4ac}}{2a}\)
\(s(x,y)=\frac{sen(4\pi x)-2xy}{2y}\)
3.- Escriba un programa que calcule el volumen de un prisma triangular, que solicite al usuario ingresar base, altura del triangulo de base y la altura del prisma para calcular el volumen solicitado.
4.- Escriba un programa que dibuje la gráfica de la función \(y=e^{-at}cos(bt)\). El programa debe solicitar al usuario los parámetros \(a\) y \(b\). Escriba una función para el cálculo de \(y(a,b,t)\).