La traducción de esta página está obsoleta. Haga clic aquí para ver la última versión en inglés.
Operaciones en funciones no lineales
Identificadores de funciones
Es posible crear un identificador para cualquier función de MATLAB®, y luego usar ese identificador como medio para hacer referencia a la función. Comúnmente, un identificador de función se pasa en una lista de argumentos a otras funciones, que luego pueden ejecutar o evaluar la función mediante el uso del identificador.
Para construir un identificador de función en MATLAB, utilice el signo arroba, @
, antes del nombre de la función. En el siguiente ejemplo, se crea un identificador de función para la función sin
y se asigna este a la variable fhandle
:
fhandle = @sin;
Se puede llamar a una función por medio de su identificador de la misma forma en que se llamaría a la función mediante su nombre. La sintaxis es
fhandle(arg1, arg2, ...);
La función plot_fhandle
, que se muestra a continuación, recibe datos y un identificador de función, genera los datos del eje y usando el identificador de función, y los representa:
function plot_fhandle(fhandle, data) plot(data, fhandle(data))
Cuando se llama a plot_fhandle
con un identificador para la función sin
y el argumento que se muestra a continuación, la evaluación resultante produce un diagrama de onda sinusoidal:
plot_fhandle(@sin, -pi:0.01:pi)
Funciones de funciones
Una clase de funciones llamada “funciones de funciones” opera con funciones no lineales de una variable escalar. Es decir, una función opera sobre otra función. Las funciones de funciones incluyen
Búsqueda de ceros
Optimización
Cuadratura
Ecuaciones diferenciales ordinarias
MATLAB representa la función no lineal mediante el archivo que la define. Por ejemplo, esta es una versión simplificada de la función humps
de la carpeta matlab/demos
:
function y = humps(x) y = 1./((x-.3).^2 + .01) + 1./((x-.9).^2 + .04) - 6;
Evalúe esta función en un conjunto de puntos en el intervalo 0 ≤ x
≤ 1 con
x = 0:.002:1; y = humps(x);
Luego, represente la función con
plot(x,y)
La gráfica muestra que la función tiene un mínimo local cerca de x = 0,6. La función fminsearch
busca el minimizador, el valor de x donde la función toma este mínimo. El primer argumento para fminsearch
es un identificador de función para la función que se está minimizando y el segundo argumento es un cálculo aproximado de la ubicación del mínimo:
p = fminsearch(@humps,.5) p = 0.6370
Para evaluar la función en el minimizador,
humps(p) ans = 11.2528
Los analistas numéricos usan los términos cuadratura e integración para distinguir entre la aproximación numérica de integrales definidas y la integración numérica de ecuaciones diferenciales ordinarias. Las rutinas de cuadratura de MATLAB son quad
y quadl
. La instrucción
Q = quadl(@humps,0,1)
calcula el área bajo la curva de la gráfica y produce
Q = 29.8583
Finalmente, la gráfica muestra que la función nunca es cero en este intervalo. Por lo tanto, al buscar un cero con
z = fzero(@humps,.5)
se encuentra uno fuera del intervalo
z = -0.1316