You are on page 1of 7

06 Funciones y ficheros de funcin Lic.

Amado Malca Villalobos FUNCIONES Y FICHEROS DE FUNCION Una funcin es la usual, con una variable de entrada (independiente, y una variable de salida (dependiente). Lo que varia es la cantidad de argumentos que pueden tener estas variables. Para realizar estas funciones se usaran archivos script de extensin: ****.m. En el desarrollo de estas funciones es posible usar funciones predefinidas por MatLab, tambin se pueden usar funciones definidas por el usuario, las cuales deben ubicarse siempre en la carpeta de trabajo de MatLab. Funciones predefinidas: cos(x), sqrt(x), exp(x), det(x), etc. Funciones definidas por el usuario; generalmente para representar una funcin que se usara en varios programas adicionales.

FUNCIN

y f x

Creacin de un archivo de funcin Bsicamente un archivo de funcin, es un archivo tipo .m, visto ene le capitulo tres. Pero la primera lnea lleva una forma especial, para indicar lo de funcin.

06 Funciones y ficheros de funcin Lic. Amado Malca Villalobos Ejemplo: Clculo de la altura y la distancia mximas que alcanzan un proyectil trayectoria.m function [hmax,dmax]=trayectoria(v0,theta) %Clculo de la altura y la distancia mximas que alcanzan un proyectil % %Los argumentos de entrada son: % v0: velocidad inicial en m/s % theta: ngulo en grados. % %Los argumentos de salida son: % hmax: altura mxima en metros % dmax: distancia mxima en metros g=9.81; v0x=v0*cos(theta*pi/180); v0y=v0*sin(theta*pi/180); thmax=v0y/g;hmax=v0y^2/(2*g); ttot=2*thmax;dmax=v0x*ttot; %Creacin de un grafico de la trayectoria tplot=linspace(0,ttot,200); x=v0x*tplot;; y=v0y*tplot-0.5*g*tplot.^2; plot(x,y) xlabel('DISTANCIA (m)') ylabel('ALTURA (m)') title('TRAYECTORIA DE UN PROYECTIL') Ahora viene la ejecucin: >> [hmax,dmax]=trayectoria(30,45) hmax = 22.9358 dmax = 91.7431
TRAYECTORIA DE UN PROYECTIL 25

20

ALTURA (m)

15

10

10

20

30

40 50 60 DISTANCIA (m)

70

80

90

100

06 Funciones y ficheros de funcin

Lic. Amado Malca Villalobos

06 Funciones y ficheros de funcin

Lic. Amado Malca Villalobos

Las partes de un fichero de funcin es como sigue: Lnea de definicin de la funcin Aqu tenemos la expresin: function, que define el fichero como una funcin. Tambin se define el nombre de la funcin. Y finalmente se define el nmero y orden de los argumentos de entrada y salida. Siempre va en la primera lnea. El esquema de esta lnea es: f unction [argumentos de salida] nombre_funcion argumentos de salida O tambin f unction argumento de salida nombre_funcion argumentos de salida La lnea H1 y las lneas de texto de ayuda Inmediatamente despues de la lnea de definicin de funcin, estn la llamada lnea H1 y las lneas de texto de ayuda, que siempre empiezan con el smbolo %. Y proporcionan informacin descriptiva sobre la funcin. La lnea H1 es la que Matlab busca en algunos casos de bsqueda de algunas palabras relacionadas con funciones. Adems esto se muestra con el comando help nombre_funcion >> help trayectoria Calculo de la la altura y la distancia mximas que alcanzan un proyectil Los argumentos de entrada son:

06 Funciones y ficheros de funcin v0: velocidad inicial en m/s theta: ngulo en grados. Los argumentos de salida son: hmax: altura mxima en metros dmax: distancia mxima en metros

Lic. Amado Malca Villalobos

Cuerpo de la funcin Aqu se tiene el cdigo del programa mismo, que incluir operaciones de entrada y/o salida, tambin grficos si el problema lo amerita. Funciones en lnea Son aquellas funciones matemticas sencillas, que resultan de combinar expresiones algebraicas o transcendentes. Para ello se utiliza el comando inline. Ejemplo01: Dada la funcin f x

x 4 3x 5 1 x2

Crear un archivo de funcin para evaluar en x = 6, luego crear una matriz de 2 por tres y evaluar usando la funcin elemento a elemento. Ejemplo02: Conversion de unidades de temperatura Convertir Grados F a grados C, usando la formula : C Usar esta funcin para resolver: El cambio en la longitud de un objeto

5 F 32 9

L , se debe al cambio de temperatura, T , que viene determinado por la siguiente expresin L L T , donde es el
coeficiente de dilatacin. Determinar la variacin del area de una chapa de aluminio

2310

1/ C de forma rectangular 4,5 m 2, 25 m cuando la

temperatura cambia de 40F a 92F. FUNCIONES EN LINEA Se usan para realizar funciones simples, que tambin pueden tener una o ms variables de entrada.

nombre inline 'exp resion matematica en forma de cadena '


2

nombre inline 'exp resion matematica ','arg1','arg 2',,'arg n '

ex Ejemplos 01: f x 1 x4
>> H=inline('exp(x^2)/(1+x^4)')

06 Funciones y ficheros de funcin Lic. Amado Malca Villalobos H = Inline function: H(x) = exp(x^2)/(1+x^4) >> H(0) ans = 1 >> A=[H(-2) H(-1) H(0) H(1) H(2)] A = 3.2117 1.3591 1.0000 1.3591 3.2117 >> Si en la funcin anterior se quiere trabajar con vectores como argumento, como sigue: >> x=[-2 -1 0 1 2] x = -2 -1 0 1 2 >> H(x) ??? Error using ==> inlineeval at 15 Error in inline expression ==> exp(x^2)/(1+x^4) Inputs must be a scalar and a square matrix. Error in ==> inline.subsref at 27 INLINE_OUT_ = inlineeval(INLINE_INPUTS_, INLINE_OBJ_.inputExpr, INLINE_OBJ_.expr); >> Aqu es necesario redefinir la funcin, para salvar este problema se debe hacer operacin elemento a elemento. >> H=inline('exp(x.^2)./(1+x.^4)') H = Inline function: H(x) = exp(x.^2)./(1+x.^4) >> x=[-2 -1 0 1 2] x = -2 -1 0 1 2 >> H(x) ans = 3.2117 1.3591 1.0000 1.3591 3.2117 >> Ejemplos 02:

g x, y 4 x5 y 7 x3 y 2 8x 2 y 4 6 x 29 y 6

>> G=inline('4*(x.^5).*y+7*(x.^3).*(y.^2)-8*(x.^2).*(y.^4)+6*x-29*(y.^6)') G = Inline function: G(x,y) = 4*(x.^5).*y+7*(x.^3).*(y.^2)-8*(x.^2).*(y.^4)+6*x-29*(y.^6) >> G(5,6),G(8,7),G(9,1) ans = -1505694 ans = -3547965 ans = 240676 >> x=[-2 -1 0 1 2 3 4 5],y=[-3 -2 -1 0 1 2 3 4] x = -2 -1 0 1 2 3 4 5 y = -3 -2 -1 0 1 2 3 4 >> G(x,y) ans = -23865 -2010 -29 6 135 -290 -15165 -105954

06 Funciones y ficheros de funcin

Lic. Amado Malca Villalobos

El comando feval
Este comando evala el valor de una funcin, en algn o algunos valores dados. La diferencia con el caso anterior, est en que aqu se da la funcin, solo el nombre, y se evala en el valor dado. variable = feval(nombre_funcion,valor_argumento) Se tiene que seguir ciertos lineamientos, como son: -El nombre de la funcin debe introducirse en forma de cadena. -La funcin puede ser una de MATLAB, o alguna definida por el usuario. - Los argumentos de entrada se separan por comas, y despus del nombre de la funcin. -Los argumentos de salida van entre corchetes, y separados por comas. Ejemplo 01: Aqu vamos a definir una funcin H, y luego la evaluamos en x=1. >> H=inline('exp(x.^2)./(1+x.^4)') H = Inline function: H(x) = exp(x.^2)./(1+x.^4) >> feval(H,1) ans = 1.3591 >> Ejemplo 02: >> D=feval(inline('exp(x.^2)./(1+x.^4)'),1) D = 1.3591 >> H=inline('exp(x.^2)./(1+x.^4)') H = Inline function: H(x) = exp(x.^2)./(1+x.^4) >> feval(H,1) ans = 1.3591 >> G=inline('exp(x.^2)./(y+x.^4)') G = Inline function: G(x,y) = exp(x.^2)./(y+x.^4) >> feval(G,1,1) ans = 1.3591 >> feval(G,4,5) ans = 3.4046e+004 >> D=feval(inline('exp(x.^2)./(1+x.^4)'),1) D = 1.3591 >> D=feval('sin',0) D= 0 >> D=feval('sin',pi/6) D = 0.5000 >> D=feval(inline('cos(x)+tan(x)'),pi/7) D = 1.3825

You might also like