Вы находитесь на странице: 1из 6

UNIVERSIDAD CATOLICA DE SANTA MARIA Página:1/6

FACULTAD DE CIENCIAS E INGENIERÍAS FISICAS Y FORMALES


PROGRAMA PROFESIONAL Jefes de Prácticas:
Ing. Juan Carlos Cuadros
INGENIERIA MECÁNICA, MECÁNICA-ELECTRÍCA Y MECATRÓNICA Ing. Henry Zegarra Gago
Laboratorio de Mecánica Computacional II Ing. Sergio Mestas Ramos

Código: 4E04022
Tema: FUNCIONES EN MATLAB Semestre: IV
Apellidos y Nombres (1):____________________________________________________ Grupo: FECHA:

Apellidos y Nombres (2):____________________________________________________ Lab. Nº 03 del 27 al 31/Ago/12

I. OBJETIVOS
 Definir, crear y utilizar funciones de usuario con MATLAB.
 Conocer y analizar los diferentes tipos de funciones que se pueden definir con MATLAB.

II. MARCO TEORICO

M-Files:

Las M-Files son programas que el usuario puede crear (y salvar) en Matlab que engloban un conjunto de
comandos. Una vez salvado el M-File en el directorio c:/Mis documentos/MATLAB/, el usuario puede ejecutar
todos los comandos del M-file (si es que el M-file esta bien escrito) en forma instantánea.
Los M-Files son creados y editados en el Matlab Editor/Debugger. Para acceder a él, usamos el menú:

File → New → M-File

Ficheros de MATLAB

“MAT-files” son ficheros en formato específico de MATLAB que guardan el entorno de trabajo con todas las
variables existentes.

>> load fich.mat


>> save fich.mat

El comando >>load fich (sin extensión) busca por defecto la extensión .mat. Si un fichero tiene otra
extensión, se trata como un fichero ASCII (p.ej. load fich.txt).

Programación de scripts y funciones

“M-files” son ficheros ASCII que contienen scripts (secuencias de comandos de MATLAB) o funciones
(programadas en un lenguaje simple parecido a C). Para abrirlos, se navega por los directorios y se los abre.
Para crear o salvar, se usa las funciones del menú: File/New/M-file (desde el workspace) o File/Save (desde el
editor).

Scripts

Los M-files pueden ser scripts, que simplemente ejecutan una serie de órdenes o instrucciones de MATLAB; se
crean con el editor de MATLAB, aunque puede emplearse también para este proposito un editor de textos
cualquiera. La extension de un script MATLAB es M-file.m

Ejemplo, script M-file houdini.m:

m=magic(4); % 4x4 cuadrado mágico asignado a la variable m.


t=m.^ 3; % Calcular el cubo de cada elemento de m.
disp(t); % Mostrar el valor de t.

Ejecutando este script M-file se crean las variables m y t en el entorno de MATLAB. No se puede compilarlo, ya
que es un script.
Laboratorio de Mecánica Computacional II Página: 2/6

Tema: FUNCIONES CON MATLAB LAB N° 3 JCC- HZG - SMR

Funciones

Una función es una pieza de código de computación que acepta un argumento de entrada del usuario y produce
salida al programa. Las funciones ayudan a programar eficientemente. Permiten evitar reescribir el código de
programa para cálculos que se realizan con frecuencia. Se puede convertir un script en función simplemente
añadiendo una cabecera.

Script vs Función

Scripts Funciones
No aceptan argumentos de entrada Aceptan argumentos de entrada y
ni producen resultados de salida producen resultados

Trabajan sobre las variables en el Por defecto, las variables internas


workspace son locales a la función

Útiles para automatizar una serie Útiles para extender el lenguaje


de pasos que se repiten muchas MATLAB para tus aplicaciones
veces

Creación de archivos-M de función

Las funciones definidas por el usuario se almacenan como archivos-m y se puede acceder a ellas si están
almacenadas en el directorio actual.

Sintaxis

Tanto las funciones internas de MATLAB como las definidas por el usuario tienen la misma estructura. Cada una
consiste en un nombre, una entrada proporcionada por el usuario y una salida calculada. Por ejemplo:

cos(x) nombre: se llama cos


toma la entrada del usuario dentro del paréntesis (en este caso x)
calcula el resultado

Se puede observar que el usuario no necesita ver los cálculos realizados, sino que solo acepta la respuesta. Las
funciones definidas por el usuario funcionan de la misma forma que el caso anterior.

Las funciones definidas por el usuario se crean en archivos-m. Cada una debe comenzar con una línea de
definición de función que contenga:

 la palabra function.
 una variable que defina la salida de función.
 un nombre de función.
 una variable que se use para el argumento de entrada.

Por ejemplo:

function output=my_function(x)
Laboratorio de Mecánica Computacional II Página: 3/6

Tema: FUNCIONES CON MATLAB LAB N° 3 JCC- HZG - SMR

La línea anterior es la primera línea de una función definida por el usuario llamada my_function. Requiere un
argumento de entrada, que el programa llamara x, y se calculara un argumento de salida, que el programa llamara
output.

El nombre de función y los nombres de las variables de entrada y salida son arbitrarios y son seleccionados por el
programador según el planteamiento del problema.

Ejemplo de función definida por el usuario; veremos un ejemplo de función y sobre ella describiremos sus
elementos básicos.

function pf = pvt (p) %Definición de la función


% PVT Precio venta publico %Línea H1
% PVT (p) devuelve el precio con IGV, %Texto ayuda
% de un producto, dado su precio (p) sin IGV.
igv = 0.18; %Cuerpo de la función
pf = p * (1+ igv);

 Definición de la función: Esta línea define el nombre de la función (pvt) y el número y orden de parámetros de
entrada (en el ejemplo, un parámetro: p) y el número y orden de parámetros de salida o resultados (en el
ejemplo, un parámetro: pf).

function pf = pvt (p)

parámetro de entrada
nombre de la función
parámetro de salida
palabra reservada

Si la función tiene más de un parámetro de entrada, estos se separan por comas y si tiene más de un parámetro
de salida se escribe la lista separada por comas y entre corchetes ([ ]). Este sería un ejemplo general:

function [x, y] = mi_funcion (a, b, c)

 Línea H1: Se trata de una primera línea comentada (empieza con %) tras la línea de definición de la función.
MATLAB muestra esta primera ayuda cuando usamos el comando lookfor o pedimos ayuda sobre un
directorio.

 Texto de ayuda: MATLAB muestra este texto junto con la línea H1 cuando solicitamos ayuda sobre una
determinada función (>>help pvt). Se muestra el texto comentado hasta la primera línea en blanco o la
primera línea ejecutable. El resto de comentarios tras este bloque se ignoran.

 Cuerpo de la función: esta parte contiene las sentencias que realizan los cálculos y asignan valores a los
parámetros de salida.

NOTA: La función opera sobre variables en su propio espacio de trabajo, separado del espacio de trabajo de la
línea de comandos.
Laboratorio de Mecánica Computacional II Página: 4/6

Tema: FUNCIONES CON MATLAB LAB N° 3 JCC- HZG - SMR

Nombre de la función

Los nombres de las funciones deben empezar por una letra. Por lo demás, pueden ser cualquier combinación de
letras, números o signos.

El nombre del fichero (M-file) que contiene la función es el mismo nombre de la función seguido de la extensión
.m. En el ejemplo: pvt.m

Cuando llamamos a una función, MATLAB busca en el espacio de trabajo y después en los directorios indicados
en el pathwork (comando path).

Si queremos conocer los M-files que tenemos en nuestro directorio de trabajo, escribiremos la orden what en la
línea de comandos.

Si queremos ver el contenido del M-file pvt.m, entonces teclearemos en la línea de comandos:

>> type pvt

Llamada a una función

Podemos llamar a una función desde la línea de comandos, como si fuera cualquier otra orden o función ya
definida en MATLAB. También podemos llamar a una función dentro de otra.

>> precio = 1000;


>> preciofinal = pvt(precio)
>>
preciofinal =
1180

Observar que los parámetros de entrada y salida no tienen por qué tener el mismo nombre que en la definición de
la función.

>> preciofinal = pvt(1400)


>>
preciofinal =
1652

Es importante escribir todos los parámetros de entrada entre paréntesis y todos los parámetros de salida entre
corchete, siempre en el orden correspondiente:

>> [v, w] = mifuncion (a, b, c)

Las variables de una función son locales, de modo que, aunque en el seno de la función se modifiquen los
argumentos de entrada, el valor de dichas variables en el Workspace queda inalterado.

III. MATERIAL Y EQUIPO


- Una PC con SO Windows XP
- Internet
- MATLAB
Laboratorio de Mecánica Computacional II Página: 5/6

Tema: FUNCIONES CON MATLAB LAB N° 3 JCC- HZG - SMR

IV. PROCEDIMIENTO

Indicaciones:
 Para cada problema desarrolle un algoritmo de solución, un diagrama de flujo y el código
correspondiente.

1. Creación de funciones básicas:

a) Escribir una función que calcule el perímetro de un círculo dado su radio.


b) Escribir una función que calcule el área de un círculo dado su radio.
c) Modificar la función anterior para que dado el radio del círculo, calcule tanto el área como la longitud de la
circunferencia.

2. Escribir una función que calcule las dos raíces de una ecuación de segundo grado: ax2+bx+c=0. a, b, y c son
parámetros de entrada.

3. La siguiente función calcula la parábola y=x2 entre n y -n a intervalos de 0.1:

function y = x(n)
% x Calcula la función y=x2
% La función se representa entre los valores -n y n
x=-n:0.1:n;
y=x.^2;
plot(x,y);
grid;

a) Escribir dicha función y comprobar su funcionamiento.


b) Modificar la función para que podamos calcular la función y=x p, donde p sea cualquier valor positivo.

4. Definir una función que dados cinco (5) valores de resistencias R1, R2, R3, R4, R5 devuelva la resistencia
equivalentemente en serie REQS, y REQP que indica la resistencia equivalente en paralelo.

𝑅𝐸𝑄𝑆 = 𝑅1 + 𝑅2 + 𝑅3 + 𝑅4 + 𝑅5 ; %Resistencia equivalente en serie

1
𝑅𝐸𝑄𝑃 = 1 1 1 1 1 ; %Resistencia equivalente en paralelo
+ + + +
𝑅1 𝑅2 𝑅3 𝑅4 𝑅5

V. CUESTIONARIO FINAL

1. La presión atmosférica (p) varía en función de la altura (h) según la siguiente expresión: p=1035*e-0.12h, donde
la altura se mide en kilómetros y la presión en milibares.

a) Escribir una función presion que calcule la presión para una altura dada (utilizar la función de MATLAB exp).
b) Queremos ahora observar en una gráfica cómo varía la presión en función de la altura. Para ello, definiremos
a_vec como un vector de alturas que toma los valores enteros entre 0km y 30km, aplicaremos la función que
hemos escrito para obtener los valores del vector de presiones p_vec y dibujaremos la gráfica con la altura en
las abscisas y la presión en las ordenadas:
Laboratorio de Mecánica Computacional II Página: 6/6

Tema: FUNCIONES CON MATLAB LAB N° 3 JCC- HZG - SMR

2. Diseñar una función en MATLAB que calcule la superficie y volumen de un cilindro dados su radio (r) y altura
(h) (V=πr2h, S=2πr2+2πrh).

VI. OBSERVACIONES Y CONCLUSIONES

Haga sus observaciones y emita al menos cinco conclusiones en torno al trabajo realizado

 ________________________________________________________________________________________
 ________________________________________________________________________________________
 ________________________________________________________________________________________
 ________________________________________________________________________________________
 ________________________________________________________________________________________

Вам также может понравиться