You are on page 1of 22
Capitulo 6 Funciones y ficheros de funcion ‘Una funcién matemstiea, (2), asocia un nico ntimero (valor dea func) a cada uno de Tos valores ex [Las funciones se pueden expresren la forma y= fx), dane (>) es tabitualmente una expresin mate tica eu funcién de x. Cusndo se introduce un valor. (entrada) en la expresin de Ia fancién, se obtene un valor y (Salida). Existen muchas funciones que estin ya programadas en MATLAB (funciones predefn as), y que pueden ser uilizadas en expresiones simplemente teceanso su nombre junto con el argument de entrada (ver Seccidn 1.5); ejemplos de estas funciones son sin(x), cos (20), sqzt (x) y ‘exp (x). Precuentemente, a fa hora de programar, existe la necesita de operar con funciones dstintas ‘que to estin predefincas, Cuando la expresicn de le funcin es sensilla y slo necesita ser ejeutada una vex, 63a se poede incuir como e6digo del propio programa, Sin eibargo, cuando la expresion se tiene «que evalua muchas veces para diferentes tipos de argumentos, es caveniente crear una funci6n definida por el usuario, Una vez qu se ha creado lafuncién (y ha sido slmacenada en disco), éta puede ser util 2ada de Ia mise forma que una funcién predeinida de MATLAB, ‘Unis fusion deta jor ef ssusniv es un pmoxunis MATLAB qe el usuari crea y leona en «isco en forma de un fichero gue contiene la propia funcién Ficheros de funeisn), de forma que esta funcién pueda ser utlizada al igual que el resto de las funciones del sistem, La funcign puede conte ner expresiones matemsiticas simples © eddigos que impliquen cileulos mis eomplejos. En muchos casos este tipo de rutinas se comportan como subprogramas dentro de otras programas de mayor ‘amaio, La principal caractersticas de los Ficheros de funcin es que tienen una entrada y una slid, Esto implica que los esleulos que se realizan denteo de os fcheros de funcin se evan cabo ui zando datos de entrada, y que los resultados de estos céleulos son transferidos fuera dl ichero de fun- cid a través de la sada. La entrada y a salida pueden estar compuestas por una 0 ms vatiables, y «ada una de ella pueden ser escalares, vectors o arrays de cualquier tame. A continuacin se mucs tra de forma esquematica cémo se comportan ls fcheros de fui Entrada /“ Pichero >, \getuny/ 137 138 Funcionesy fiheros de furcién ‘Un ejemplo muy sencllo de funcigin definda por el usuario es la que calcula ta altura méxima que sleanza ana pelota cuando se tra hacia stiba con wn velocidad dada, Para una velocidad vpn altura 2 rb yy ee YF yy = 3, dnl en ein a Bae. Eo pe escribir en forma de funci6n del siguiente manera Iy(¥4) = 72. Bn este caso la entra de a fu de cidn es Ia velocidad (un ndunero, y la said es Ia wltura méxima (un nkimero). Por ejemplo, en uid des SI (g =9,81 mi?) ila entruda es 15 nls, entonces la sada ser 11.47 ‘Sm Fite de neon) —1A7 8 Adams dl waa gue sel pus tras unciones desde In porspectva materia, los fcheros de fucidn se eden nilizar como subprograms dentro de otros programas de mayor tama, De esta forma se pueden constuir programas grandes uniendo blogues mis pequedos que se pueden evalu y dzpururindependientermene. Los icheros de fancin son sine lo que se eonoce comment eo «40s lenguaes de pogramacion como suru (ene caso de Basie y Fortun, roceinientos (en Pascal) 0 fanciones (en C) ‘Ls Ficheros de func se explicardn en ls Seeciones 6.1 ala 67. Adem de estos fcheos de funcidn que se pueden almacenaren disco de arma independiene y pueden ser invoeados dese pro- rams, MATLAB proporciona una opeidn que permite definr aciones matemdticasdeindas pore sao demo de un programa (no en un fichero separado). Esta aocion se puede realizar von el comanide Lal ine que seexplicarien la Seceisn 68 6.1 Creacién de un fichero de funcion Los ficheros de funcin se crean y editan como si se trataran de eheros scrips, es decir tlizand ta Ventana de EdiciéiwDepuracién. Esta ventana, como ya se vio, se puede abrir desde la Ventana de Comandos. Bn el meni File, se seleceiona New y luego M-fle, Una vez que se ha abieto, la Ventana {de Buicién/Depuracién mostaré un aspecto similar al que se ilusra en Ia Figura 6.1. La primera Hinea ‘eniro de un fichero de funcion debe ser la propia definicion de la funcion, como ser vera en a préxima seccién, tar nad Ea tot cl Tee top Des Wow Dee Kee SALAH CEO Bla ry sorespondiente Figura 6.1: La Ventana de GaiciGaDeparaia 7a 1 structura de un ichero de ncn 6.2 _ Estructura de un fichero de funcion Laestructratipica de un fichero de funcign se muestra en la Figura 62. En conereto, Ia funcién que se muestra calcula I amortizacin mensual yel pago total de un présamo. La entrada la funcin son la ‘cantidad del préscamo, ta tasa de interés anual y a duracién del préstamo (en aos). La salida deta fun ides la amortizacion mensual del préstatno y también el pago teal por el préstao. heghicen- @ has smsea is ein : aCe — + Cacia nein proeraman ‘Rsanacin de valores 3 Jon argues de sali, Figura 6.2: Pstructra de un lichero Ge funcion Las distints pares de los ficheros de foncia se deseribinin eon més detalleen las proximas secciones 6.2.1 Linea de definicién de la funcién table en un fichero de funcién debe ser fa defnicin de a propia funcién. Bn otro -onsiderado como un fichegoseript normal. La Knea de definicin de la Func ‘+ Deine que ol Fchero ser tatado como un fchero de func, ‘+ Define el nombre de la funcién. ‘+ Deine el niimero y onden de fos argumentos de entrada y said La forma que tiene Ia lines de definicién es: Function [argunontos de selida] = nonbre_funeion (araumontos de ont redal, La polabrt function Lista de argu NNombede List de aumenton debe ser In primers mentor de salsa fein ‘deentnda ences Pulabea gue aparezea, encerados enue aire partes reelodaenminiseulss, corhetes, 139 ; 140 Funcines yiceros de func Lapalabra function, tecleada en minisculas, debe ser ta psimera palabra dela primer linea del fichero. En la pantalla esta palabra apareceré en azul, El nombre dela funcién se introduce despues del signo igual. Este nombre puede estar formado por letras, digitos el caricter de subrayado. Las reglas para el nombre de Ta funcidn son las mismas que para la construccén de nombres de variables, descri> {as en la Seccion [.6.2. Bs una buena costumibre evita usar para este propdsito nombres de funciones ya predefinidas por MATLAB. asf como nombres de variables ya definidas por el usuario o interna- ‘mente por MATLAB. 6.2.2. Argumentos de entrada y salida Los angumentos de entrada y slid se llzan para tanferr datos baci dentro y cia fra de a pro- pia Fanci, Los agumentos de entrada se itroducen ene parts a continci6n del nombre de la funcidn. Paro general, as fancions se declaran con al means un argumento de entra, aungue tae bisn es posible detinirfancones que no tengan ningin argument de entrada. En cualquier caso, si fa funcién se piensa para més de un parimeto, os urguentos de etada eben ie separades por comss [Normalmeateel ego intemo que coniene Ia fac est pens para opera sobre lo arguments 4e entrada, y por tanto se presupone que ests deen se valores aropiados. sto implica que ls expre- siones matematicas que forman el cuerpo de la func deen ser esritas segtin bs dimensiones de os rgumentos, ya sean ests escalares, vectores 0 atrays. Enel ejemplo de la Figura 6.2 se fines tes argumentos de entra (cantidad, interes, annios). yen las expresones matemdticas se csieran como escalates. Los valores eaes dels parmete dectrada easignan cuando la anion se uilza (lama). De manera similar, si os argumentos soa vedores 0 ara, las expresiones male mitcas dentro del cuerpo de la funcin se deben esribie para qa efetien operaciones algebraicas linealesw operaciones elemento aelemeato, ‘Los arguments desaida que se encuenran entre corchetes en la parte inquired de operador de ssignacin transite le salida desde el fchero de fain. Estos Ficheros pueden tener uno © varios arguments de salida incluso pueden no tener ningun. Silay nds de uno, etonces ls argumentos se deben separar por coms. Si slo hay un argumento de slid, éste se puede teclear sn corchetes. Para que funcione correctamente un fichero de funcién, a los argumentos de salida se les deben asignar valores durante la ejecucién del e6digo correspondiente al cuerpo de la funcién. Ei el ejemplo dela Figura 6.2 podemos observar dos parimetos 6 sala [pagon, pagot |. Cuando una Fanci no pose arguments de sald, se puede omit el eperader de asignain en la defini de a fancién. Exe tipo de fonciones wnbién son comusee, y aungue a0 retorau hinge valor puodea ‘encargase de generar un grico, por ejemplo o volea datos un che ‘También es posible transfer eadenas enn ichero de funcia. Pata hacer eso slo hay que tralar ala cadena como s fuera una variable més qu forma pate dels arabes de entrada (texto encerado ‘nte coms simples) Las cadens se pueden utlizar para anseir omwes de ovasfanciones den trode un fchero de fu abitualments todas las entradas ysalidas de un fchero de foci se ansfieen a través deargv- smenios 0 paritntuos de nada y sada, Po To dems, xo To reliv ae entrada y sald de aves cn fcheros script sigue send vido para este caso, y por tanto w puede aplicar alos Ficheros de fun ‘in, Esto significa que cualquier variable a que sel asigne cali valor en un cero de fancin sec visualizada en la pantalla, a menos que se ponga un punto y coma al final de comand de asigna- cin, Ademds, el comando input se puede utilizar tamnbicn paraintzoduce datos interactivamente,y los comandes disp, fprinté y plot. para visulizar iformacién textual en pantalla, vlcala a ln icheroo representargrificos, como hemos visto para fcherms script. Veamos alguns ejemplos de rimera lines de defnicin de Tunciones con diferentes eombinaciones de argurentos de entra y sala strucra de un cher de funcén Linea de deinicin de uncia Comentarios fimction [pagom, pag] = prestmo(euntidadinteresannios) Tes argmentos de entrada, dos angumenton desaligh, Tuneion [A] = RectAreu(ab) ‘Dos argrmenios de entrada, on argumeato de sala Tascion [VS] = Esfera OIA) ‘ing vale de entrada, dos variables de sala Taction wayectoniaihg) "Tres angamentos do eats, ing res mento de sala. 6.2.3. La linea Hi y las lineas de texto de ayuda Lo inea Hy las linens de texto de ayuda son lineas de comentarc (ineas que empieza poreleade- ter ano por cierto) comiauacién del igen de dfinicin dea funcibn, Aunque esta news son opcioales, son my tes para proporcionrinformacin sobre la fancn en si La lines HL esa prix sera linea de comentario y noxmalimente coatiene el noesbre y ina descripeién cota de a fui Cuando un usuario tectea (en la Ventana de Comandos) looiefor palabra, MATLAB base la palabra especficida ea lis lineas HI de todas las funciones, de forma que sla palabra se encuentra fm alguna de las lines Hi, éta se rnesta al usuario la nea 1 completa. Ls lneas de texto de ayuda Son lineas de comeataros que sguen ala linea HL, Estas lneascon- tienen una explicacion de la funeién y cualquier descripcién acionada con sus arguments de entrada y sada La ineas de comentarios que se teclean entre I linea de defnic de la func y Ja primera linea de eddigo de la fancin (la Kaea Hy el texto de ayeda) se muestran automitica- ‘mente cuando e usuario teclea el comando help nonbre_funcion ena Ventans de Comandos. Fate conando se puede utilizar tanto con funciones dfiias por el usuario como con funciones MATLAB. Por ejemplo, pire Ia Foncién pzestamo de la Figur 62, cuando se teclea el comand help prestamo en la Ventana de Comandos (hay que comprobar que Ie funcin se ha guardado en disco, en el directorio por defeto on la ruta de bisque), la sala de dicho comand se Un fichero de funcién puede contener adems otros comentarios en el cuerpo de la funci ‘estos son ignorados por el comando hop. 141 142 Funciones y fieras de funcén 6.2.4 Cuerpo de fa funcién EI cuerpo de la Funcidn contiene e] programa (eigo) que realiza las operaciones especificadas. EL cidigo puede contener cualquier comanda MATLAB de los ya Vist, es decir, cdleuls,asignaciones, amnadas a fanciones MATLAB, instrucciones de contol de flujo (sentencias eondcionales y bucles) ‘camo las que se verdin en el Capitulo 7, comentarios, lineas en blanco, asf como entradas y sida de datos de forma interactva, 6.3 Variables locales y globales ‘Tals Ins variables de un fichero de fancién son cates; cualquier variable, neluidos ls argumentos de ena y slid, se pueden utilizar dento de fichero. Esto sigifica que las variables definides en el Fichero slo se reconocerén dentro de él. Cuando se ejecnta una funcién, MATLAB utiliza un érea especial de memoria separada del espacio de trabajo habitual uilizado para los feheros sexipts y lt Ventana de Comonclos. En un fichero de funciGn se asignan nacras valores alas variables de entrada cca ver que se invoca Ia foncidn, Bstas variables se uilizan para realizar los eifoulos dent del Tichero de Tuncidn. Cuando la funcién termina su ejecucién, el valor del argumento de sada estas Ferido a ls variables utlizadas en ef momento en el que la furciGn se invocd. Esto sigifiea que el fichero de fancin puede (ener variables con el mismo nombre que las variables detinidas en un fichero en la Ventas de Comandas. El ichero de funcidn no recance variables €on el mismo nombre ‘que hayan sido creadas fuera de la funciGn. La asignacin de valores a esas variables en el ichero de fanci6n no cambia su asignaci6o ici en ningin moment. (Cada fichero de funciGn tiene sus propias vrables locales, as cuales no se comparten con otras Fanciones 0 con el espacio de trabajo de la Ventana de Comundos y Ios ficheros de serips. Sin ‘embargo, también es posible erear variables que se puedan reconecer cominmente en diferentes fiche- ros de fiancin y nel espacio de trabajo, Esto se Tleva a eabo deelarando las variables como globales, ullzando Ia siguiente sintaxis Global = nowbra_variable Fn un commando global se pueden declarar més de una variable al ver. separindolas por espacios global CONSTANTE_GRAVITATORTA CoeficlentebePriceion La variable que se desee reconocer en varios ficheros de func debe ser declarada como global cen cada tno de ellos. De esta forms, In variable seri reeonocia en cad uno de estos Ficheros y se poe operarnormalmente con ells, ‘© El comando giobal debe-aparecer antes de que la variable sea utiizada, Es recomendable teclearel comando gLobat al principio del fiche, ‘© Elcomando global debe ser tecleado en la Ventana de Camandos y/o en un fichero script para {que una variable sex reconocida en el espacio de tabajo. ‘© El valor de Ta variable puede ser asignado,o reasignado, en cualquier lugar donde éta sea de uso ‘© Bs recomendsble utilizar nombres suicientemente descriptivos (0 ullizar letras maylseulas) para las variables globales, de forma que se puedan distinguir de ote tipo de variables. | ‘Amaceramiento de un fever defunciin 6.4 Almacenamiento de un fichero de funcién Un fchero de fanciém debe ser almacenado en disco antes de ullzarse. Esto se hace, al igual que eon los Ficheros srip,utilizando Ia opcién Save as del ment File, seleccionando la lncalizaeisn donde se guardard y proporcionando el nombre del fchero en cuestin. Es muy tecomendable que el fichero tenga el mismo nombre que Is fuacin que contiene, en concreto el nombre que aparece en I linen de definicin de Ia funeisn, De esta forma la funcién se pode invocar (Nome) utlizando sw nombee, (Si tun fichero de funcion se almacens en disco con otro nombre distro del dela funcién que conten, habri que utilizat ese nombre para invocar Ia funcién.) Los fieheros de foncién se almacenan con la extensién am, Por ejemplo: “Linea de detinicién deta funelon——=SS~S~*CN me cr Tine pag, page] = pretamof catia Jove anion) pesto function (AL = RevtArea(ab) ReetAren.n function [VS] = EsferaVolAeat) EsferaVolAccam fasion teayetorinwh) trayeeteriam 6.5 _Utilizacién de ficheros de funcién ‘Una funcién definida por el usuario se utiliza de Ia misma forma que una funcién predefiida en MATLAB. La funcisn se puede ejecutar desde la Ventana de Comendos, desde un fchero script o tamn- Dign desde otra funcién. Para uilizar el fchero de funcién, éste debe estar almacensdo o bien en el Capituloszjenpio? El cambio ene are ex de 0.01346 metros evdcados. 6.7 Comparativa enitre los ficheros script y los ficheros de funcién Los estudiantes que se enfentan por primera vez 8 MATLAB suelen tener problemas en entender txacamente las diferencis entre tn fice script yn fichero de Fane, ya que muchos des eo- biemas que se les proponen pueden ser resueltosuilizaado ames tpos de Ficheros, Vamos a estnit lawdiferncin y smilies mds importantes ene fchetos scrip fcheros de faci «© Ambosse pueden suurar evn extension (poeta razén muchas veees se deniominan, de Fina aebitara,feeros M). ‘© Laprimera linea eo un ichero de Fees a Tinea de defini de a func, «Las variables de un fichero de uncon son teats, Las variates de un ichero scrip son econo das en la Ventana de Comanos, «Los ficheros scrip pueden liza variables definidas en el espacio de trabajo. © Los ficheros strip contenen seciencias de comandos MATLAB (sentencios. Las fchers de fancin pueden aceptar dates avs de arguments de ental y pueden dev ver dats como azgumentos de sada ‘© Cuano un ficheo de func se almacena en disco, el nombre de ichero debe sere! sno que ‘ el nome de ta funcién gue content 6.8 Funciones en linea {Las funciones en linea se pueden utilizar para construr funciowes mateméticas senills,funciones smatemitieas extensas y complicadas que requieren mucha progamaci6n, y subprogranias dentro de ‘programas exiensos. En general se usan en casos en los que un valor relativamente simple debe obte- perse varias veces durante Ia cjecueisn de un programa. ina funcin en linea, también denominada de Tinea 0 fnfine (en inglés) s© define diretamente dentco del e6tige del programa (no en us fiehero ‘parte, como en el caso de los ficheros de funein,y se uliza también dentro del mismo eédigo. Las funciones en linea se pueden define en cualquier parte de un ctligo MATLAB, Estas funciones se ‘rean con la siguiente sitaxis: Teabre = Iniine Cexpreaién watomatica on forma de aden: ‘+ Luexpresisn matemitica puede tener una o mis variables infependientes ‘+ Se puode usar cwsgier fete, excepto j,come variables indepenientes en a expresin atomic, Funciones en lines 447 + La expresion matemdtien puede ineluir cualquier funci6n predefinida MATLAB e incluso tambiga Jas defnidas porel usuario, ‘+ Luexpresidn se debe escribir segin la dimenssn de los argunentos de entrada y sada (operacio- nes elemento a elemento, 0 céleulos algebraicos) + Laexpresién no puede incluir vaviables pred ‘+ Un ver que se define la funcién,ésta se puede utilizar tecleando su nombre e intioduciends on valor (o varios) pr cua argumento de entrada ene paréotesis (véase cl ejempl de mas abajo). © Lifunci6n iL también se puede utilizar como argumeno en otrss funciones. Funcién in) ine con una variable independiente: Por ejemplo, ta fancisn: fx) = se puede definir en MATLAB (en la Ventana de Comandos Nes ‘como uns Funcin de linea, con un arpumento eseaar de ented SS FA = ine oxpex™2yaque2457) 8 Inline function FAG) = expt 2vgn(x245) ‘Com puede comprobarse, sino se teclea un punto y coma al final de In definicién de Ia func, MATLAB responde visualizando la funcién. Una vez definida, és se puede utilizar para caleular resultados a partir de distintos valores de tay come se muestra. a continua: SS FAR) Si por alguna raz6a se prevé que x pudiera contener ms de un vale, es deci, ser un arays entonces los ciiealos intemes de Ia funcidn se deberian cambiar para realizar operaciones elemento a elemenia, comme sigue SOTA = fale 9) haat A245)) Fae Tone tareion: PAG = expte sqrt 245) [ SS FAIIL05 2) 11007 0.5601 18.9998 148 Funciones y ficheras de func Funcién inline con mas de una variable independiente: Se pueden definr funciones que tienen dos o més variables independientes uilizando este otro formato sds completo de int ine: Tobie ~ inline (vexpresion mavemetica’, ‘argi", ‘ara2". args") saran") Con este formato se definen el orden y el aimero de fos argumentos de la funci6n, aungue sino se indican tos argamentos, MATLAB los extrxe automiticamente ex orden alfabtico. Por ejemplo, fa funcin fly) = 25° —4ny +)? se puede definiren linea de la forma: HAQ,3) nos devuelve: Enel Problema de ejemplo 6.3 se muestra otro ejemplo de creacin y manipulacisn de funciones en linea de més de un argumento 0 parémeto de entrada Problema de ejemplo 6.3: Distancia entre puntos en coordenadas polares Escribir una funciGn en linea que caleule la distancia entre dos pun- tos situados en un plano, La posicién de los puntos viene dada en coordenads polares, Utiliar la fueién definida para calcula la ds- tancia entre el punte AQ, n/6) y el panto B(S, 3x4). Solucién La distancia entre dos puntos en coordenadas polares se puede eae Jar utlizande la ley de cosenos: d= frp 2r gry cos OG) La frmula para el cfleulo de la distancia se introduce primero come funcisn en linea de cuatro argumen- tos de entrada, Seguidamente se uiliza dicha funcion para calcular I distancia entre fos puntos Ay B. | eoomando Zev 149 a= Inline action ‘WeA thea hem) = sqlvAP2HB2-2*rA cotta theta) SS DistAul = d216.54"p) “Los arguments ye inroducen en el orden establecido DitAab = !neriormente, en Ie exeaion dela fein ea ines $8461 6.9 Elcomando ceval Fl comando fevat (del inglés function evaluate, evaluar una funciin) evaléa el valor de una funci6n para un valor (0 valores) dado del argumento (o angumentos) de la funciGn, Su sintanis es Variable = fevat (‘nombre Funclon’, valor arjumectoT Bl valor que retoma feval se puede asignardirectamente @ una verable, En ets0 de que el comando se gjecute sin argumentos, MATLAB visuuliza ang. ~y el valor dela funcisa. ‘+ Elnombre de Ia funcisn debe introducirse en forma de cadena, ‘La funcign puede ser una funci6a MATLAB u otta cualquiera cefinida por el usuario, + Se puede introducir més de un argumento de entrada, para ello los argumentos se separan por ‘comes y se introtucen en orden, justo después de! nombre de la funci6n. ‘+ Se pueden establecer ms de un argumento de salida, Para ello solo es necesaio intoducie las variables de la parte izquierda de laigualdad entre corchetes, como ya se vio anterionmente para ‘tra tipo de comandos, ‘Veamos un par de ejemplos de uilizacién de “eval con fusciones predefinidas MATLAB: 3 algae) BI siguiente ejemplo muestra el uso del comando £eval con It funcién definida por el usuario Prestamo, ya presenta en secciones anteriones (Figura 6.2) 5 [MET = fevaresiam Me : 502.03 oe 9n266.47 rrr if 150 Funcions yfiheras de funcn Cuando utilizar teva Bn los ejemplos vistos antericrmente, fa sada producida por Feva2 es la misma que sila fancign fuera tlizada directamente del modo tradicional ya estado. De hecho, el tltimo ejemplo to podria mos volver a eserbir come: SS INLET prestanis000053.9,10) Me SOL : a 0200567 {que devuelve un resultado idéntico al visto anteriormente, Parece obvio que no es nevesario ulizar eval para ealeular el valor de una funcidn cuando se puede wilizar la propia func. El comando eval es til en sitaciones en las que se necesita calcula el valor de uns funci6a ‘dentro de otra funcién, y es posible ue esa funcién interna sea una diferente cada vez que se lama a lt funcida externa, Para hacer esto se importa el nombre (cadena) de la Funci6n interna 0 través de los argumentos de entrada de la funcién externa, y despues se utiliza dicha cadena como nombre de la fun- cionenel comando foval, Por ejemplo, MATLAB posee una funciOn predefinida lamada £zexo, Esta funcién calcula los ‘ceros (puntos de corte con el ejes) de una funcién de una varia. £260 se puede utilizar para resol- ver diferentes funciones. Para hacerlo se trnsfiere el nombre de la funeiG que se va a resolver dentro dela funcién £2er0 mediante ls argumentos de entrada, De esta forma £eval se utiliza dentro det ‘eégo de la Funcién F2ero para calcula la funcién que se desze en cada caso, La funcién Fzer0 se cexplicard con mis detalle en el Capitulo 10. 6.10 Ejemplos de aplicaciones con MATLAB : Problema de ejemplo 6.4: Crecimiento y decrecimiento exponencial bs ereemientoy derecimient exponencial d una cantida se ptede moslelizara panied la expres AC) = Age : donde A(O y Ap representan una magnitud en el instante Fy enetinstante 0 espectivament, y kes una ‘constant nica especifica para cada aplicacin [Eseribir una fneién que uflice este modelo para predeci A() (ana magnitud en e instante, co- endo los valores de A(D) y de AC) ene instante ¢,Ubizar ha siguiente linea de definiién de a fun idm: At ~ expGD(AO, ALI, E1, C), donde arguments de salida At se coresponde con A(0), ylos argumentos de entrada A0, ACI, tl, € secomesponden con Ay. Atl), ¥& respectvamente Uiilizar a funeidn en ta Ventana de Comandos para opera sobre los dos casos de predicciones siguentes: 44) La poblacion de México fue de 67 millones en et ao 1980, y de 79 millones en 1986, Estima la 4 | poblacion en el afo 2000. >) La vida media de material radiactivo es de 5,8 alos. {Cuno quedaré de una muestra de 7 g de ese mismo material despa de 30 aos? in 4 gjemplosdeapicaciones con MATLAB ast Soluctén Para vilizare] modelo de erecimiento exponencal, el valor dela constantek debe serealculado resol viendo ken trminos de Ay, A(t) 9 3 Una vez que & es conocido, el modelo se puede utilizar para estinar la poblacion en cualquier af ‘Veamnos la funcién MATLAB definida por 1 usuario para resolver ambos problemas anaion At =expGDeA0.Attih S.eapGD calcula ot reinento y deerecinicnto exponen ‘les mpumentoe de entrada son: ‘AD; cord on ef inarnte 0 ‘AGL caida onl insiate iF tempo tempo Los arguments de sali son “aXe cama en cl instamte k= logeactaowtl; Se calcula At Adtexplet Se calcula. A().Asignacion dT valor a ygomenio de salida de la fneion Una vex que se ha almacenado Is funcién, ésta puede usarse en Ia Ventana de Comandos para resolver Jas clos casos propuestos. Pata el 880 a) Ag = 67, AC) = 79, a >> expGD67.19.620) Lis@s. atimacn de la pobacine lao 2000, 3,5 (ya que 4, coresponde a la vida media, que es el tiempo requerido para el que el material se desintepre hasta la mitad de su cantidad intial), , = 5.8 y = 30: SS expGTSSS 30), wer ‘ we | - 152 Funes yicheras de func Problema de ejemplo 6.5: Movimiento de un proyectil ‘Crear un fichero de funcién que calcule la trayectoria de wn proyecil. Los pardmetros de entrada de la furcin seri ta velocidad inicialy el éngulo en que el proyectl fue dispa- rado, Los argumonios de sada de la funci6n sen la altura yla distancia maxima aleanzadas. Adem, la funcin gene- ‘ard un grifico de la rayectoria, Postriormente, utilizar esta fonciéa para calcular fa trayectoria de un proyectl que se lspara a una velocidad de 230 m/s con un dnguto de 39°. Solucién El movimiento de ua proyectil se puede analizar considerando las componeates horizontal y vertical La velocidad inicial vy se puede caleulara partir de estas components: voc=Woeost) yma = msen0(0) En a direc vestca, la velocidad y Ia poscin del proyecti vienen dads po: 1 fy BEY Yyit—58t7 El tiempo que tarda el proyectil en aleanzar el punto més alto ( nen dados por: nyt ‘ymax = Iran = tomar = ae = 3 El tiempo total de voolo ese doble del tempo que uliza el proyectl en aleanzarel punto ma alt, 2h Fi a dreecién horizontal, la velocidad es constant, y la posicién de) proyeetil viene dada por: x= vod En Ja notacién de MATLAB el nombre de la func y sus argumentos se definen como: Thnax, dnax) = trayectoria{vll, theta), de forms que el fiehero de funcion correspon- | diente sera: | Tinos de ietinicign dea feion ‘afc resi nay i page xsl vn peopel ~gjemplos de aplicaciones con MATLAB Una ver. guandada la funcidn en disco, se ulliza la Ventana de Comandos para caleular los datos sobre tun proyectil disparado a una velocidad de 230 nv, con un dngule de 39", 2 oe A continuacn se mesa Ia figura creada a partir del rfico gexerado por la fu [ee et 154 Funciones yficeros de funcn 6.11 Problemas 1 Bscriba une funcién en MATLAB con dos angumentos de entrada y dos de sada. La funcion debe ) Determinar su propia altura y peso en pulgadas ylibras,respectivamente, 2, Bscriba una funcién MATLAB para la siguiente funcién matemstica: 09122 se es) [La emtuda de Ta Fanci sex, y la salida ser y: seria la fan vector, y utlcela pare: 4) Calealar y-3) © 93), +) Representargrificamente la funcién yx) para 4 ) Cuando eejeute el fchero script. te debe poral ust que introduzca los valores de R, Cy. Bliguete les ees convenientmenteyejecut el sri para ls siguientes casos @R=11000.C= 9 yFyL=7 mh 0) R= 5002. C=300 uF y = 400 mh

You might also like