Anda di halaman 1dari 6

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. 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)')

06 Funciones y ficheros de funcin

Lic. Amado Malca Villalobos

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

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 entrada
f unction argumento de salida nombre_funcion argumentos de entrada

O tambin

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: v0: velocidad inicial en m/s theta: ngulo en grados.

06 Funciones y ficheros de funcin

Lic. Amado Malca Villalobos

Los argumentos de salida son: hmax: altura mxima en metros dmax: distancia mxima en metros 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 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 '
nombre inline 'exp resion matematica ','arg1','arg 2',
2

,'arg n '

ex 1 x4 >> H=inline('exp(x^2)/(1+x^4)') 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.

Ejemplos 01: f x

>> 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 4x5 y 7 x3 y 2 8x2 y 4 6x 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) 4

06 Funciones y ficheros de funcin

Lic. Amado Malca Villalobos

>> 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

x 4 3x 5 Ejemplo01: Dada la funcin f x 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 5 F 32 Convertir Grados F a grados C, usando la formula : C 9 Usar esta funcin para resolver: El cambio en la longitud de un objeto 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 23106 1/ C de forma rectangular 4,5 m 2, 25 m cuando la temperatura

cambia de 40F a 92F.

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)

06 Funciones y ficheros de funcin

Lic. Amado Malca Villalobos

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

Anda mungkin juga menyukai