Programacion Funcional

Páginas: 6 (1254 palabras) Publicado: 2 de mayo de 2012
AMPLIACIÓN DE MATEMÁTICAS - 2o ING. DE TELECOMUNICACIÓN
Dpto. Matemática Aplicada II. Universidad de Sevilla. Curso 2009/10

Práctica II: Funciones y gráficas
1.

Definición de funciones

Aunque Matlab tiene programadas un buen número de funciones elementales, es obvio
que a veces necesitaremos definir otras funciones. Esto se puede realizar de varias formas, así
que pasamos ahora a contaralguna de ellas.

1.1.

M-archivos

La manera más clásica de definir una función en Matlab es utilizar un M-archivo, o archivo
con extensión “*.m”. La mejor opción para crear dicho archivo es utilizar el editor propio de
Matlab, que se abre con la siguiente instrucción:
>> edit
Para empezar, vamos a definir la función f (x) = x3 + 3 cos(x), con lo que escribimos las
siguientes líneas enel editor:
function y=prueba(x)
y=x^3+3*cos(x);
La primera línea es sólo una declaración de función donde decimos que y va a ser la variable
de salida, mientras que x es la variable de entrada. El nombre de la función en Matlab será
prueba. En la segunda línea escribimos la definición de la función. Nota que hemos puesto
punto y coma al final de la línea para que el cálculo no se vea enpantalla.
Ahora tenemos que guardar esta función para poder referenciarla más adelante. Debemos
poner la extensión “*.m” y es una buena costumbre llamar al fichero como la función que hemos
definido en su interior (en este caso, prueba.m). Podemos guardar este fichero en cualquier
directorio o carpeta, pero si queremos utilizar después la función, tendremos que cambiar el
directorio de Matlab por eldirectorio donde hemos creado la función. En la ventana principal
de Matlab hay una casilla que indica el directorio donde estamos trabajando y es ahí donde
hemos de poner el nuevo.
Una vez guardada la función y seleccionado el directorio, podemos llamarla desde Matlab
para hacer algunos cálculos:
>> prueba(2)
>> prueba(-3)
Si queremos calcular simultáneamente las imágenes de varios valoresde x podríamos llamar a
la función con un vector, es decir:
1

>> prueba([1 2 3 4])
pero en este caso hay un problema de dimensión, ya que no hemos definido la función para que
sea capaz de trabajar con vectores. Sin embargo, podemos modificar la segunda línea añadiendo
el punto a las distintas operaciones y guardar de nuevo la función
function y=prueba(x)
y=x.^3+3.*cos(x);
De este modoya podremos escribir
>> prueba([1 2 3 4])
y obtener simultáneamente el valor de la función en cada uno de los valores.
Por cierto, las variables que se utilizan dentro de la función no modifican, ni se ven modificadas, por los valores que pudiésemos dar a unas variables con el mismo nombre en la línea de
instrucciones. Es decir, si ejecutamos estas líneas
>> x=7; y=4;
>> prueba(-3)
>> x, ycomprobaremos que los valores de x y de y no han cambiado aunque en la función, internamente,
la variable x ha valido −3 y la variable y ha tomado el valor de la función en −3.
Para terminar con este caso, también es posible definir funciones con diversas variables de
entrada y salida. Por ejemplo, la siguiente función toma dos matrices A y B (que deben tener
dimensiones adecuadas para sermultiplicadas y obtener una matriz cuadrada, ya que en otro
caso dará error) y devuelve una variable P con el producto de las matrices y un vector v con el
determinante y la traza del producto de ambas.
function [P,v]=dettra(A,B)
P=A*B;
v=[det(P),trace(P)];
Abrimos un fichero nuevo en el editor, escribimos el texto y lo guardamos en un fichero que se
llame dettra.m. Si ahora ponemos
>>dettra([1;2;3],[4,5,6])
sólo obtendremos el valor de la primera de las variables de salida, que en este caso es el producto
de los dos vectores. Si queremos obtener las dos variables de salida hemos de igualar la función
a dos variables. Es decir:
>> [H,Q]=dettra([1;2;3],[4,5,6])

1.2.

Definición en línea: uso del símbolo de función @

Una manera bastante reciente de poder definir funciones...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Programación Funcional
  • Programación Funcional
  • Programación funcional
  • Programacion Logica Y Funcional
  • Programación funcional a mediano plazo
  • Técnicas De La Programación Funcional Perezosa
  • Programacion Funcional D1
  • Bloques funcionales de programacion del plc.

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS