You are on page 1of 291
ECONOMIA MATEMATICA en MATLAB® Norma Gomez Norman Maldonado Lida Quintero Eduardo Sanchez Prélogo por Munir A Jalil LOR asec recon keke ey Facultad de Ciencias Econémicas Sy Catalogacién en la publicacién Universidad Nacional de Colombia Economfa matematica en MATLAB / Norma Gémez .... fet al] ; ed. por Munir A. Jalil. ~ Bogota : Universidad Nacional de Colombia. Facultad de Ciencias Econémicas, 2008 352 p. ISBN : 978-958-719-110-3 1. Anilisis econémico ~ Procesamiento de datos 2. Economia matemética 3. MATLAB (Programa para computador) ~ Aplicaciones cientificas I. Gomez Caceres, Norma Janeth, 1985- Il. Jalil Barney, Munir Andrés, 1976- - ed. CDD-21 330.15430285 / 2008 © UNIVERSIDAD NACIONAL DE COLOMBIA Facultad de Ciencias Econémicas (FCE) Escuela de Economia © Norma Gémez, Norman Maldonado, y Diego Corredor, autor iltimo capitulo Coordinacién de Publicaciones Carrera 30 No. 45 - 03, Facultad de Ciencias Econémicas Edificio 310 piso, 1 Oficina 116 Conmutador: (57) (1) 316 5000 extensién 12308 Telefax: (57) (1) 316 5000 extension 12313 Correo electrénico: publicac.fcebog@unal.edu.co Bogoté, Colombia, Sur América PRIMERA EDICION Bogotd D.C., Diciembre de 2008 ISBN 978-958-719-110-3 Coordinador de, Publicaciones Carlos Andrés Alvarez Gallo Profesor Asociado - FCE Coordinacién editorial Jenny Paola Lis Gutiérrez ja Quintero, Eduardo Sinchez Equipo de publicaciones Juan Carlos Garcia Saenz David Alejandro Bautista Cabrera Diagramacién en BTEX Margoth Hernandez Quitién Disefio de caratula Antonio Sinchez Elaboracién C.D. David Eduardo Gomez Lizarazu Impresin Panamericana Formas e Impresos S.A. Prohibida la reproduccién total o parcial de este libro, sin autorizacién de la Coordinacién de Publicaciones de la FCE. MATLAB® es una marca registrada de The Mathworks, Inc. y es usada bajo autorizacién. The Mathworks no garantiza la precisidn del texto o ejercicios en este libro. El uso del libro o la discusién acerca del software MATLAB® 0 productos relacionados, no constituye un apoyo por parte de The Mathworks a una aproximacién pedagégica o uso particular del software MATLAB®. MATLAB is a trademark of The MathWorks, Inc. and is used with permission. The MathWorks does not warrant the accuracy of the text or exercises in this book. This book’s use or discussion of MATLAB® software ot related products does not constitute endorsement or sponsorship by The MathWorks of a particular pedagogical approach or particular use of the MATLAB® software. Indice general Prélogo m 1. Conceptos basicos 1 1.1. {Qué es MATLAB®? . 2.0.00... eee 1 1.2. Ventanas del Programa ..........-.0-000008 » 2 1.2.1. Gommand Window. «2.55. cnseeeesesece 3 1.2.2. Current Directory ... 1.6... 0.6 c eee teens 4 1.2.3. Workspace 2.2.22 eee 5 1.2.4. Command History ....................-. 6 1.2.5.__Ventana de graficos y demos... ... Z 1.4. Procesns iterativos 15 1.5. Otros conceptos bdsicos 2... 2. ee 25 MiB2L., PAH oie oir: ei tare @ 0 0 ea wartime ee eS 25 15.2, HelpyDoc ... 0.60. ccc eee eee eee 26 Bede ORO os so ss esha a eae so Te Bes —mee 29 Bjercicios eee eee ee 40 ALGEBRA LINEAL 45 2. Matrices y vectores 45 2.1. 45 2.1.1, Andlisis de una matriz.. 6... 6. ee ee 48 2.1.2. Operaciones entre matrices... 1... ee ee 51 2.1.3, Tipos de matrices 2.0... 0.00020 e eee eee 54 2.1.4. Hipermatrices 58 2.2. Vectores 62 2.2.1. Anélisis de wn vector... 4... ............ 62 2.2.2, Operaciones entre vectores_. soi. ss 65 2.2.3. Operaciones entre matrices y vectores 66 Ejercicios .. . . bbe e eee eee eee 69 3. Sistemas de ecuaciones 7 3.1, Métodos directos 0 analiticos . 2... 6 ee ee 7 3.1.1. Eliminacién Gauss-Jordan .. 2.2... ee ee ee 7 3.1.2. Método de la inversa.. 2.1... eee ee ee ee 82 3.1.3. Reglade Cramer... 6... ese eee nene 83 3.1.4. Métodos con matrices factorizables .... 2... 66. s 85 B15. Método LU cs osc ew ieee steer enaues 87 3.1.6. Método de Cholesky... 2.6... eee eee 89 3.2. Métodos iterativos 91 3.2.1. Gauss-Jacobi 92 3.2.2. Gauss-Seidel 95 3.2.3. Matrices mal condicionadas .............-.- 96 3.2.4. Algunas observaciones finales... 2... 2... 0 ee 97 Ejercicios 3.3. 97 Apéndice 0.0... ee eee 101 BBL. GaussJacobi. 62. 101 B32. GoumSeldel 0.0.0.6 cece eee eee eee 103 3.3.3. Método de Richardson... oe eee 104 CALCULO 107 4. Funciones 107 Ejercicios 46. Apéndice 2.0... ee eee 146 4.6.1. Opciones adicionales para los graficos .. 2.2.2... 146 4.6.2, Comandos para graficar en tres dimensiones... . . . « 150 5. Derivacién 153 5.1. Método de diferencia finita . 2.2... 0.20... 0 20 eee 154 5.2. Derivacién de primer orden... ............- 159 5.2.1. Gradiente.............. 160 5.2.2. Matriz jacobiana .. 0. ee 168 5.2.3, Aplicacin 1: productividad marginal»... 2... 171 5.2.4. Aplicacién 2: demandas compensadas .......... 173 5.25, Polinomiog wu2s tis ssnwesmiee eeveae 174 5.3. Derivacién de orden superior... 6... ee ee ee eee 176 B81, POWMOMIOG wc ce sca ee eee eee eae 177 5.3.2. Matrices hessianas ... 2... 2... 2 eee ee ee 178 5.3.3. Expansion de Taylor... 2... oe eee 188 Ejercicios 2. ee eee 190 GA. Apéndice 2.0 sce ce es eee eee tesa 195, 6. Integracién 199 6.1. Integracién por regla del exponente.... 2.0.0.0. 0 ee 201 6.2. Regla del trapecio . 2... 2.000222 eee 202 6.3. Regla de Simpson... 0... eee 2u1 6.4, Integrales miltiples. . 6... 0 ee ee eee 222 Ejercicios oe ee eee 228 GS. Apéndice: oi wueswes sets sawn w wee ees ea ewe 229 6.5.1. Métodos simbélicos. 2... ee ee 229 6.5.2.. Comandos de Compecon . . - 230 OPTIMIZACION Y DINAMICA 235 7. Concavidad y convexidad 235 7.1. Concavidad y convexidad - 235 Zl. Conceptos. ...........+.........-00. 236 eee nee ea ee er 238 7.2. Funciones cuasicncavas y cuasiconvexas . 2.22... 22 oe 251 TIA, Comeeptos.. kc ewe a eee 251 7.2.2. Métodos 253 7.2.3. Bjemplos .. 0... 0.0 cece eee ee eee eee 254 Ejercicios oe 264 8. Optimizacién 267 8.1. Métodos muméricos . 6... 6. ee 269 BLL. Rafces eee 269 8.3. 8.4. 8.5. Ejercicios . 8.2.1. max y min . 275 8.2.2. fminbnd 6. ee eee 280 8.2.3. fminsearch ee 285 8.2.4. Condiciones de primer orden... 2.000 ee 287 Optimizacién no lineal con restricciones de igualdad ..... . 289 8.3.1. Broydenx y Broyden. 60. 290 Optimizacién no lineal con restricciones de desiguilded 2s seis iaameeme ss sets ugwesnes: 296 Optimizacin lineal. 0... ee 299 8.6. Apéndice 2... cee ce ee eee eens 305, 9. Dindmica continua 307 9.1. Ecuaciones diferenciales 92, Andlisig see sa ee ce eta eee Ra eae es 309 9.2.1. Equilibrio... 6. 6. eet eae 310 9.2.2. Estabilidad... . 310 i253. SONIGIOM 0:00 ie ee ee os aie te ee ee 311 9.3. Ejemplos computacionales.....................- 314 9.4. Aplicaciones econémicas ...............--..0-, 333 Kjerciciog 6s scam wee ae i ee ssw ewe ew oe see wee 339 vu Indice de figuras 1.1. Conjunto inicial de ventanas. 2... ee 3 1.2. Command Window... 0... 00. ee eee 4 1.3, Current Directory... 0.2 eee eee 4 1.4. Workspace... . 5 1.5. Caracteristicas de los objetos en la ventana Workspace... . . 6 1.6. Command History ......................... 6 1.7. Figure Window . z 1.8. Demo Window 8 1.9. Editor de M-Files. 2.20.00. .000. See eee 9 1.10. Comentarios con% 2... ee ee 1 1.11. Path de MATLAB® 2.0... ee eee 26 Se Tigh pes ees ea 28 1.14. Estructuras pibp, poon. 6... eee 34 1.15. Representacién grafica del cell array celdas ... 2.2... 37 1.16. Representacién grafica del cell array C . . . 38 2.1. Hipermatriz de 3 dimensiones... 2... 0.0.2 ee 58 2.2._La direccién del vector w G4 3.1, Sistemas de ecuaciones con dos variables... ........... 76 3.2. Modelo de vias 2... ee eee 100 41. Funciéwctibiea 2.2 ois i weaecmwasse estes name 1 4.2, Funcién discontimaenz=1 .......0..0.000000005 112 4.3. Funcién discontimua, inf ¢ y .. . 114 44, Mallao grid... 0.0. ee eee 116 4.5. Comandos para graficar funciones de dos variables... .. . . . 118 4.6. Funcién de grado 3 de dos variables... 00.00... 0005 120 4.7. Distintos conjuntos de salida 2... 0.020200 eee 122 4.8. Puntodesilla.. 2.2... 0.0.0... ee eee eee eee 124 4.9. Simulacién de una funcién de una variable... 2.2... 2. 125 4.10. Simulacién secuencial en R? de una funcién exponencial . . . . 127 4.11. Simulacion secuencial en R? de una funcién trigonométrica ex- ponencial . 2... 2. eee eee 129 4.12. Simulacion en R? de una funcién trigonométrica exponencial . 130 4.13. Simulacién en R? utilizando curvas de nivel .. 2.2.0... 131 4.14, Simulacién en R? sin utilizar repeticiones . 2... 0.0... 132 4.15. Simulacién secuencial en R® utilizando cell-arrays 4.16. Simulacién secuencial en R° utilizando hipermatrices ... . . . 136 4.17. Simulacién de la funcién Cobb-Douglas... 2.0.20... 139 4.18. Simulacién de la funcién CES con p~+—coyp+0 ...... 140 4.19. Simulacién de la funcién CES conp 1. 2.2.0.0 ee ee M1 5.1. Imagenes y gradiente numérico de f(x,y) =a? +y? 2.2... 164 5.2. Derivada numérica de f(r) = 23 con diff ........... 166 5.3. Errores de truncamiento de g(w) = w8 — 8w?4+5w ....... 168 54. Rendimientos a escala constantes(1), decrecientes (2) y crecien- tes (3B) eee eee eee ee 172 5.5. Derivadas numéricas de primer y segundo orden de f(x) = PE -0GE osvawesn oss sanTMeMaw ET EET TED 130 5.6. Tercera derivada numérica de f(x) = ri 5.7. Polinomio de Taylor para f(x) =5ri —32cona=12...... 189 6.1. Métodos para el cdlculo de integrales ... 2... 22. eee 200 6.2. Regladel trapecio ©... 1.1 ee ee eee 203 6.3. Excedente del consumidor _. 208 6.4. Distribucién normal estandar ... 2... 2... ee ee 210 6.5. Regla de Simpson con polinomios de grado2_.... 2... 212 6.6. Integral con 4 nodos 6... ee ee 218 6.7. Integral con 9 nodos .. 2... 6... ee ee eee 219 6.8. Integral con 1] nodos . 2.2... ee ee 219 6.9. Excedente del productor .. 0... 00 eee 221 6.10. Integracién de una funcién de dos variables... .......- 222 6.11. Distribucién normal bivariada. . 2... 2. ee 225 7.1. Método grafico: funcién de una variable... 2... 2... ee 239 ‘72. Segundaderivedass «ici i heme TEE ww 240 7.3. Gradiente numérico 7.4, Comportamiento de la segunda derivada ... 2.2... 2. 242 7.5. Calculo de gradientes sucesivos .. 2... - 6 ee ee 243 7.6. Método grafico: funcién de dos variables . . . . 7.7. Valores propios de la matriz hessiana en cada punto... .. . « 248 7.8. Valores propios de la matriz hessiana en una funcidn etibica . . 249 7.9. Método grafico - cuasiconcavidad y cuasiconvexidad .. 2... 255 7.10. Conjuntos contorno de f(x) = x”, 7.11. Conjuntos contorno. 2... 6s. 7.12. Errores numéricos en la matriz hessiana orlada... 2... 262 7.13. Cuasiconcavidad y cuasiconvexidad por conjuntos contorno_. ._ 263 8.1L. Método de Newton. 8.2. «3 +52? +2 en diferentes subconjuntos del dominio... . . . 276 8.3. Minimo en una funcién cuadrdtica con valor absoluto. . .. . . 278 8.4. Minimo en una funcién trigonométrica ... 2... 22. 2. 281 8.5, Maximo en una funcién trigonométrica. 2... 284 8.6. Comportamiento de una funcién ciibica de 2 variables... . . 286 8.7. Condiciones de primer orden utilizando gréficos .. 2.2... . 289 8.8. Maximizacién restringida con miltiples soluciones 8.9. Maximizacién restringida con tinica soluci6n. 2... 2. . 295 9.1. Diagrama de Fase (t,r) de#=3-2. 2... .......00. 320 9.2. Contraste de dos condiciones iniciales con odephas2...... 321 9.3. Comparacién de las condiciones zp = -1.5 y 79 = 0.5... . 323 9.4. Contraste de tres condiciones iniciales con odephas3 .... . 324 9.5. Diagrama de fase (t,) de =" 326 9.6. a) Diagramas de fase (t,v) y (t,u) —_b) Diagrama de fase Wit) ouuees sess ss Seamgees sists: seeeeee 328 9.7. a) Diagrama de fase (t,v) bb) Diagrama de fase (t,u) . . 331 9.8. Dingrama de fase (v,u) 6.6 eee 332 9.9. Diagrama de fase del modelo de Solow (t,4:) 2... 0... 2. 337 9.10. Capital, produccién, consumo y ahorro per capita... ... . 339 Indice de cuadros 1.1. Método numérico para hallarr .. 2. ee 20 1.2. Algunos comandos sobre cadenas de caracteres .. 2... . 32 1.3. Algunos comandos sobre estructuras ... 2... 0-0-2 ee 34 1.4. Algunos comandos para objetos Cell Array... 2.2.2... 36 5.1. Derivada numérica de f(x) = e®” por el método de diferencia finita 159 5.2. Gradiente numérico de f(r) =a! con gradient ........ 161 5.3. Gradiente numérico de f(a,y) = x? + y?, h = 2, a,y € [-10, 10] 163 5.4. Valores de x, fr y fer para f(r) =2°8 —O.6r.......... 179 5.5. fyy para f(x,y) = 3xy — y? por el método de diferencia finita . 181 5.6. Célculos numéricos de frz para f(x,y) = min{3z,2y}... . « 183 5.7. Caileulos numéricos de fy para f(x,y) = min{3z,2y} . 2... 184 6.1. Errores de aproximaci6n de la regla del trapecio. .. 2... . 206 6.2. Valores acumulados entre 0 y 2 de la distribucién normal estandar211 6.3. Resultados utilizando la regla de Simpson . 215 6.4. Regla del trapecio y de Simpson para diferentes ntimero de nodos220 6.5. Comandos Compecon para el calculo de integrales ...... . 231 8.1. Resultados de fminbnd .. . . . . Cee eee w ecw newness 282 8.2. Resultados de broyden . . : - 294 9.1. Algunas rutinas de MATLAB® para solucionar PVIs_... . . 314 9.2. Sintaxis general de los odesolvers ............... 315 9.3. _Principales opciones de los odesolvers .....- . 317 9.3. _Continuacién. Principales opciones de los odesolvers . 318 Copyrighted material Prélogo El libro “Economfa Matematica en MATLAB®", surgié del plan de trabajo del Grupo de Estudios de Economia Matematica (GEDEM) de la Facultad de Ciencias Econémicas (FCE) de la Universidad Nacional de Colombia. GEDEM es un grupo de estudio cuya v On es la formacién de investigadores de alto nivel en economia aplicada, actualmente tiene agendas de invest aci6n y for- macién definidas que buscan integrar a estudiantes de pregrado en procesos de transmisién de conocimiento y en proyectos de investigacién en economfa. Tnicialmente, se elaboraron unas notas que sirvieran de guia a los estudian- tes en proceso de poner en prictica los conceptos tedricos que aprendian en sus clases de matemiticas. Sin embargo, al final del primer aio de trabajo, estos documentos se convirtieron en la base para estructurar el proyecto de un libro de fundamentos de economia matematica, que utilizara herramientas computacionales. E! libro estaria dirigido a estudiantes de pregrado de los pro- gramas de economia, puesto que era evidente que estos temas no se abordaban tradicionalmente en las Facultades de Ciencias Econémic: Para cumplir este objetivo, fue necesario elegir un programa computacional en el cual todos los temas tratados en el libro se pudieran desarrollar. En este contexto se seleccioné MATLAB® , teniendo en cuenta su capacidad para realizar calculos, el facil acceso para los estudiantes y la gran difusion que este paquete tiene en la actualidad. En una primera etapa, una versién inicial del documento se puso a prueba en las clases practicas de los cursos de matematicas de las carreras de Eco- nomfa, Administracién de Empresas y Contaduria Publica de la FCE de la Universidad Nacional de Colombia. Se diseiié entonces, un conjunto de cursos ur complementarios a los de Matemiaticas 0, 1, 2 y 3. La puesta en marcha de estos cursos précticos comenzé el primer semestre de 2005 con Matemiticas 0, y continué con Matemiaticas 1 en el segundo semestre del mismo aio, Ma- tematicas 1 y 2 en el primer y segundo semestre de 2006 y Matemiaticas 1, 2 y 3en 2007. Este proceso implicé dos trabajos adicionales a la realizacién del libro co- mo tal. En primer lugar fue necesario llevar a cabo un trabajo pedagégico que consistié en preparar las clases de cada tema, de tal forma que se com- binaran elementos del libro con los cursos de matematicas de la Facultad. Adicionalmente, se realizé un trabajo de tipo logistico en el que se adapté la infraestructura de FCE para dictar los cursos a més de 500 estudiantes por se- mestre, conllevé actividades de articulacién entre la Facultad de Matematicas y la FCE, asf como, aplicar evaluaciones a los estudiantes. De esta manera, no menos de 2.000 estudiantes tuvieron acceso a secciones del libro, de acuerdo con su curso de matematicas. La interaccién permanente con este ptiblico, permitié que sus comentarios y sugerencias ayudaran a que el material evolucionara en el libro que hoy se presenta. De la mano de las clases se llevé a cabo un trabajo de edicién que tomé un tiempo importante, puesto que se opté por leer paso a paso cada capitulo del libro, revisando contenidos, ejemplos y redaccién, de tal forma que fuera comprensible y cercano a los lectores. Mas de una tarde de viernes tanto el editor como los maravillosos miembros del grupo GEDEM se dedicaron a re- r cada uno de los capitulos. En las dis siones, se identificaron temas que debieron ser reorganizados o inclusive reescritos completamente con el fin de alcanzar un trabajo de alta calidad. El resultado de todo este proceso, en manos hoy de los lectores, es un libro que tiene como objetivo proveer herramientas para realizar la transicién entre la teorfa de la economia matemitica y sus aplicaciones. El libro no pretende reemplazar un texto tedrico de economia matematica; su intencién es brindar al estudiante un resumen de los temas (con referen- cias bibliogréficas para que profundice en los mismos, si es el caso) y luego, a a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. El texto fue escrito pensando en una audiencia que entiende los conceptos matematicos y que esta dispuesta a aplicarlos en problemas particulares. Se proveen referencias para aquellos estudiantes que deseen profundizar temas especificos. Una estructura curricular para cursos basicos podria ser: Curso de Algebra Lineal: Capitulos 1-3 Curso de Célculo I: Capitulos 1, 4-6 Curso de Célculo II: Capitulos 1, 7-9. Munir A. Jalil Editor Agradecimientos de los autores Los autores agradecen el apoyo permanente de los integrantes del Grupo de Estudio de Economia Matematica en particular a Ana Maria Veloza, Luis Gabriel Forero, Cristi profesores de la Facultad de Economfa de la Universidad Nacional de Colom- jan Duque y David Gémez. De la misma forma, a los bia que apoyaron al grupo y la idea de un libro escrito por los estudiantes de la Facultad, un proyecto que en cierto punto parecfa irrealizable. En particu- lar, su materializacién no habrfa sido posible sin el apoyo de Alvaro Zerda, Beethoven Herrera, Carlos Andrés Alvarez, Marta Moreno y los profesores de los cursos de Matematicas I, II y III que permitieron iniciar la implementa- cién del mismo. Las correcciones y los comentarios de Sergio Monsalve, Omer Ozak, Lorenzo Acosta, Javier Gutiérrez, y Mario Gonzdlez contribuyeron con la mejora de muchas secciones del libro, asf como el trabajo de Luis Lorente quien Ilevé a cabo una lectura y correccién detallada del manuscrito completo. Agradecemos a Bienestar Universitario de la Universidad Nacional de Colom- bia, quien brindé un soporte importante en la implementacién de los cursos practicos, asf como a todo el personal administrative que de alguna forma u otra ha apoyado este proyecto. Introduccién Durante las tiltimas décadas se ha presentado un gran avance en la aplicacién de herramientas matematicas, y estadisticas para analizar fenémenos econdémi- de series de tiempo, econometria, econom{a matematica, y modelos de gestion cos y financieros. Algunos ejemplos de esto son los desarrollos en anilisi de riesgo y prediccién en finanzas, con los que se ha buscado dar respuesta a fenémenos como crecimiento y ciclos econédmicos (Romer 2006), estructuras de mercado (Shy 1996), valoracién de activos financieros y cuantificacin del riesgo de un portafolio (Fabozzi y Modigliani 2003). En general, para que tales desarrollos puedan ser utilizados. se requiere hacer cdlculos matemiticos que en algunas ocasiones llegan a ser bastante compli- cados e incluso imposibles de realizar analiticamente. Por otra parte, en la actualidad el uso de los computadores para la sohucién de problemas de tipo numérico se ha convertido en una praéctica comtin, dada su gran capacidad de calculo y precisién en comparacién con los métodos tradicionales. Es posible utilizar lenguajes de computadores para aplicar dichas herramien- tas estadisticas y matematicas, implementando métodos de solucién en estos lenguajes (métodos computacionales) Por ejemplo, la estimacién de modelos econométricos, calibracién de modelos de equilibrio general, simulacién de sis- temas dindmicos, entre otros, son desarrollos que necesitan utilizar métodos computacionales para la precisa real cidn de los calculos que requieren. Este texto ha sido desarrollado por GEDEM (Grupo de Estudios De Eco- nomia Matemitica) y tiene como objetivo dar a los estudiantes de las ciencias econémicas un primer acercamiento a la aplicacién de métodos computaciona- les. Especificamente, este libro va dirigido a estudiantes de pregrado de carreras a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. 6 CAPITULO 1. CONCEPTOS BASICOS 312) double 2x2 1.6180 double 1x1 Figura 1.5. Caracteristicas de los objetos en la ventana Workspace Ademis de las propiedades de los objetos, esta ventana tiene algunas funciones en los botones de la parte superior. Entre ellas estén crear un nuevo objeto abrir un objeto existente ® importar datos 8), guardar datos a disco Ma, ee eee Es y groficar CAPM. tetas furiciones’ también se pueden realizar en la ventana de comandos con instrucciones como save, clear, clear allo plot. 1.2.4. Command History Gis plot(er, ‘DisplayName', ‘ext, *YDataSource', ‘er'): gigure(get) Aae[a:200) 5 cle mesh (it, ex, hb): figure (get) doc quvlege 3/9/08 5:36 PR —-* edit ols help mbe 8-- 4/3/08 9:09 PH ~~ ele S--- 4/5/08 11:40 An help pr plot (A, ‘Displaytisne', “A', 'YDataSource’, 'A'): figure (gct) Figura 1.6. Command History 1.2. VENTANAS DEL PROGRAMA 7 La funcién de esta ventana es llevar un historial de los comandos utilizados por el usuario, Como se muestra en la Figura 1.6, los comandos de cada se- sién son almacenados y organizados por fecha, usando el rétulo’---Fecha Hora~~~ %. Resulta de gran utilidad ya que cualquier comando o conjunto de comandos que sea ejecutado en la ventana de comandos puede ser facilmente recuperado buscando la fecha y la hora en la cual fue utilizado. 1.2.5. Ventana de graficos y demos Hasta ahora se ha explicado las ventanas predeterminadas del programa. Exis- ten otras que aparecen al desarrollar tareas especificas, por ejemplo, las ven- tanas de grdficos o las de Demos. La ventana de graficos o de figuras permite observar y editar las gréficas que hace el programa. En la Figura 1.7 obser- vamos un grafico modificado con algunas de las funciones que aparecen en la ventana (reducir, ampliar, rotar e insertar Ifneas y texto, entre otras). Figura 1.7. Figure Window 8 CAPITULO 1. CONCEPTOS BASICOS La ventana de Demos, sirve para observar algunas aplicaciones de MATLAB® es interactiva tiene videos tutoriales y ejemplos en archivos M (M-Files). La Figura 1.8 presenta la ventana de Demos del programa. Figura 1.8. Demo Window 1.3. M-File Editor La solucién de algunos problemas requiere digitar varias instrucciones 0 co- mandos. Hacer esto desde la ventana de comandos resultaria dispendioso, por- que, como se vio en la seccién correspondiente a la ventana de comandos (1.1), s6lo es posible trabajar en la tiltima linea. La ventana M-File Editor permite digitar los comandos en un programa o M- File que recoge multiples instrucciones, para ejecutarlas de manera secuencial (en orden de Iineas). Para crear un M-File, se debe seleccionar en la parte superior de la ventana de comandos, File = New = M-File o dar clic en el fcono 12, E1 editor se presenta en la Figura 1.9. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. 1.3, M-FILE EDITOR 13 MATLAB® cuenta con tres instrucciones adicionales, que sirven para facilitar el trabajo del usuario, ya que le permiten ahorrar memoria y trabajar sobre in instrucciones 0 calculos anteriores. una interface con las ventanas basicas 4 Estas tres instrucciones son c1c (limpia la ventana de comandos), clear all (borra todas las variables del Workspace) y close (cierra todas las ventanas de figuras). En muchos casos es titil colocar estas tres instrucciones al comienzo de un programa. Hasta ahora se ha visto como los M-Files sirven para presentar una sucesién de comandos andloga a la que se harfa desde la ventana de comandos, este tipo de M-Files se conocen como ficheros de comandos 0 Scripts. Sin embargo, existe otro tipo de archivos .m que representan funciones. Una funcidn, en términos computacionales, es un programa que recibe unos inputs o entradas, y realizando célculos mateméticos y légicos genera unos outputs o salidas. Construyamos la Operacién 1 del script operaciones.m en una funcidn, Para ello, vemos que dicha operacién recibe como entrada los valores de a, b y c, y devuelve como salida el célculo de (a+b) /c. En lenguaje MATLAB® , nuestra funcién quedaria de la siguiente forma: function [sl]=op(a,b,c) (atb) /c; s En este programa, hemos llamado op a la funcién y ésta recibe como entradas valores de (a,b,c) y devuelve como salida un valor s1, que es el célculo de (a+b) /c. La instruccién function permite al programa identificar ese archivo M, no como un script sino como una funcidn. En la segunda linea aparecen las operaciones que permiten calcular el valor de la salida. Una vez guardado este archivo M con el nombre op, es posible usarla en la ventana de comandos 0 en cualquier script. Por ejemplo, al colocar en la ventana de comandos la instruccién [s]=op(1, sqrt (5),2) Se le dice al programa que use la funcién op y que los valores de las entradas a, by c son, respectivamente, 1, /(5) y 2. La funcién op recibe estos valores y 14 CAPITULO 1, CONCEPTOS BASICOS realiza los calculos para hallar el valor de la salida: (a+b) /c. Una vez finaliza, el programa proporciona el valor de la salida en la ventana de comandos: s = 1.6180 En general, la estructura para crear una funcién en MATLAB® es: function [salidas]=nombre(entradas) salidas = calculos(entradas) En esta notacién, function es una instruccién del lenguaje MATLAB® que determina que este archivo M va a ser una funcién; salidas representa uno o varios resultados que arroja la funcién después de hacer operaciones con las entradas; nombre corresponde al nombre de la funcidn y es el mismo con el cual se guarda el M-File. En las siguientes lineas se hacen cdleulos matematicos con las entradas de la funcién para hallar el valor de las salidas. Ejemplo 1.1. Crear una funcidn que soluciona un problema comin en algebra que es encontrar las raices o valores de x de una ecuacién cuadratica que satisface ax? + br + ¢ = 0. Se conoce que las soluciones son: —b + Vb? — dac 2a 1,82 Esta funcién se llamara raiz, sus entradas seran los valores de a, by c, y sus salidas las 2 rafces o valores de x. Se comienza por construir la funcién. La sintaxis o serie de instrucciones que se usa para definir la funcién seria la siguiente: function [x1,x2]=raiz(a,b,c) x15 (-b+ (sqrt (b~2-4*axc))) / (2*a); x2=(-b~ (sqrt (b°2-4+asc)))/(2*a); La funcién ya construida y guardada en el disco con el nombre raiz, se puede utilizar para calcular cualquier par de rafces de una ecuacién cuadratica. Por ejemplo, para hallar las raices de 2x? + 4x +1 = 0, es posible emplear la funcién creada anteriormente, ejecutando la siguiente instruccién en la ventana de comandos: 1.4. PROCESOS ITERATIVOS 15 [x1,x2]=raiz(2,4,1) Como resultado se obtiene: xl = -0.2929 x2 = -1.7071 Hay que mencionar dos caracteristicas importantes de los M-Files. Primero, cuando hay Ifneas que son muy largas, por ejemplo, en formulas matemiticas bastante extensas, MATLAB® permite dividir estas lineas mediante tres pun- tos suspensivos “.. .” que se deben colocar al final de cada segmento. Para observar la particién de la formula cuadritica mencionada en el ejemplo ante- rior, se coloca en la primera Ifnea el numerador y en la segunda (separada de la primera con puntos suspensives) el denominador, asf: function [x1,x2]=raiz(a,b,c) x1=(-bt (b*2-4eaxc) 70.5)... /(2sa)z = (-b- (b*2-4*a+c) 70.5)... /(2na); Cuando se colocan los puntos s de la manera correcta, el programa suspen sive muestra estos puntos de color azul oscuro. Los resultados que se obtienen con esta programacién son exactamente los mismos que se obtienen con la anterior. Segundo, el editor de Mcfiles da sugerencias y advertencias al usuario que le permiten mejorar los programas que construye. Estas aparecen en color naranja en la barra de desplazamiento que esta ubicada en la parte derecha del editor de M-files. Un ejemplo son las que aparecen en la Figura 1.10. 1.4. Procesos iterativos Existen dos métodos para resolver problemas matemiaticos: analiticos y numéri- cos, Los métodos analiticos aplican conceptos matematicos para hallar una so- lucién exacta y general, mientras que los métodos numéricos asignan valores a las variables involucradas en un problema y evahian una serie de condiciones sobre dichos valores para determinar si se ha hallado la solucién. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. 1.5. OTROS CONCEPTOS BASICOS 27 help ops muestra todos los comandos de operadores y caracteres especiales (Operators and special characters-ops). En MATLAB®, el usuario puede incluir una seccién de ayuda (0 help) a los M-Files que construya. Segtin el tipo de M-Files, los comentarios permiten describir la utilidad de una programacién o los inputs y outputs de una funcién. Una seccién de ayuda se agrega a través de Iineas consecutivas comentadas al inicio del M-File. Por ejemplo, en comentarios .m: Programa para solucionar la ecuacién 2x-5=1 % % Creado para el capitulo de Conceptos Bdsicos % Esta serdé la seccién de ayuda % El programa ya estd corregido % Esto ya no es seccién de Ayuda display (’Solucionemos 2x-5=1') display (‘Estos son los diferentes valores de x’) x= -1:5 for i= rlength (x) s=2«x (1) -5; if s==1 display([’La solucién de la igualdad 2x-5=1 es x= ']) display (x(i)) end end Ejecutando en la ventana de comandos help comentarios 6 help comentarios.m se obtienen las primeras lineas del M-File que estan comentadas. Ademiés, la expresi6n: 28 CAPITULO 1. CONCEPTOS BASICOS % Esto ya no es seccién de Ayuda no aparece en la salida porque se encuentra separada por un espacio del bloque de Ifneas consecutivas que tienen el simbolo %. Las salida de MATLAB® al ejecutar help comentarios se presenta en la Figura 1.12. Si se trabaja con helpwin rutina, se abre la seccién de ayuda de rutina en una ventana diferente a la de comandos. En esta nueva ventana aparecen los textos de ayuda de MATLAB® , como los creados por el usuario. Cina >> help comentarios Programa para solucionar la ecuacién 2x-5S=1 Creado para el capitulo de Conceptos Basicos Esta sera la seccién de ayuda El programa ya esta corregido Figura 1.12. Help de comentarios Por otra parte, el comando doc permite consultar la documentacién en linea!? disponible en MATLAB® sobre cualquier comando o rutina. Esta documen- tacién contiene informacién més detallada que la de help, sobre la sintaxi: los métodos numéricos que utiliza cada rutina. Para hacer uso del comando doc se requiere que el usuario haya instalado ademas del programa toda la documentacién. La sintaxis del comando es doc rutina, donde rutina corresponde al comando o rutina del cual se quiere realizar la consulta. Por ejemplo, al ejecutar en la ventana de comandos doc cle, se muestra la documentacién para el comando clc en una ventana nueva, si! a la que aparece en Ja Figura 1.13, La do na de mathworks umentacién puede descargarse gratis de la pa (www.mathworks.com). 1.5. OTROS CONCEPTOS BASICOS 29 Figura 1.13. Documentacién de cle 1.5.3. Objetos Cada elemento que se genera en MATLAB® es un objeto. El programa clasifica los objetos de diferentes formas y su tipo aparece en la columna Class del Workspace! ¢ Texto o cadenas de caracteres Una linea de texto o cadena de caracteres es un tipo de objeto “char array” (character array)cuyos elementos son los ntimeros y/o letras que se recono- cen como texto. Se almacena como un arreglo o vector, donde cada elemento se ubica en una posicién del vector. Estos objets son ditiles al colocar titulos 0 caracteres en graficos, 0 para modificar propiedades de otros objetos!?. Para introducir una cadena de caracteres en MATLAB®, se escribe entre comillas simples “‘”. Por ejemplo, para crear la cadena “Eje x”, la sintaxis es:/ Eje x’. Si este procedimiento se realiza de manera adecuada, el pro- grama coloca la cadena de texto y las comillas en color morado. Esta cadena ‘Para acceder a todos los posibles objetos, ver help class. 12 Las funciones para cadenas de caracteres se pueden consultar con help str fun. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. 1.5, OTROS CONCEPTOS BASICOS 35 peon=st ruct ('col’, 67.93,'arg’, 69.06,... "pra’, 65.75,'pry’, 77.14) sura(1)=pibp; sura(2)=pcon; Con estas instrucciones, se crea un vector sura con dos columnas que con- tiene campos (1x2 struct array with fields). El primer elemento, sura (1), contiene el PIB per-cépit ans = col: 5795.55 arg: 11729.08 bra: 7744.71 pry: 4801.30 La segunda columna (sura (2)) contiene informacién sobre la participacién del consumo: ans = col: 67.93 arg: 69.06 bra: 65.75 pry: 77.14 Por tratarse de objetos tipo “struct” no se pueden realizar operaciones con ellos, es decir, en la estructura sura (1) no podemos realizar alguna opera- cién como sura (1) *2 Vectores 0 matrices de celdas (cell arrays) Un cell array es tipo de objeto mas general, ya que permite combinar di- ferentes clases de datos (nuinéricos, texto, estructuras) en uno solo, lo cual implica que puede admitir, por ejemplo, en su primera posicién, una estruc- en la tercera una linea de texto’. tura, en su segunda posicién una matriz y Un cell array se crea especificando la posicién en que se desea ubicar el objeto y colocando el objeto dentro de llaves “{_}". Bb Las estructuras también lo permiten, pero MATLAB® tos reconoce como un solo objeto, en los cell arrays pueden identificarse los elementos como objetos diferentes 36 CAPITULO 1. CONCEPTOS BASICOS ca(1)={[3 5 4]}5 % Vector en la posicién 1 ca(4)={(’conceptos basicos’)} % Linea de texto en la posicién 4 En este ejemplo se ha hemos creado un cell array que contiene cuatro obje- tos: en su primera posicién, contiene un vector de 31; la segunda y tercera contienen matrices vacfas (su tamaiio es 0 x 0) y, en la cuarta, un texto. No es necesario introducir los elementos de un cell array en orden consecutivo: se pueden introducir en cualquier posicin y MATLAB® autométicamente crea objetos “vacios” en las posiciones en las que no se introdujo ningiin ele- mento!®, Algunos de los comandos para trabajar con cell arrays se observan en el Cuadro 1.4. Comando Caracteristicas cell (m,n) crea un cell array vacio de m filas y n columnas. celldisp(ca) Muestra el contenido de todas las celdas de ca. cellplot (ca) Muestra una representacién gréfica de las distintas celdas. iscell(ca) Indica si ca es un vector de celdas. num2cell() Convierte un array numérico en un cell array. cell2struct () convierte un cell array en una estructura. struct2cell() _ convierte una estructura en un cell array. Cuadro 1.4, Algunos comandos para objetos Cell Array Para aplicar los comandos de los cell arrays, se propone el siguiente ejemplo. Ejemplo 1.7. Construir un cell array llamado celdas: celdas = {';jEsto es un texto!!?', [11;15;16], {2, (8 41} } Este objeto es un cell array de tamaiio 1 x 3, en su primera componente tiene una Ifnea de texto, en su segunda componente un vector de 3 x 1 y en su tercera componente una estructura de 1 x 2. 16 Estos objetos vacios ocupan espacio, es decir, su tamafio no es de 0 bytes sino que cambia segtin la dimensién del cell array. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. 2.1, MATRICES 51 ans = 1 0 0 3 2 241 +1 © Matriz triangular superior triu(B) ans = 1 -1 4 0 = = 0 o 4 © Valores y vectores propios MATLAB® calcula valores propios y un vector propio asociado a cada valor, por medio del comando eig, cuya sintaxis es: [VEC, VAL] =eig (B) Este comando recibe una matriz cuadrada (en este caso T) y calcula las ma- trices VAL (una matriz diagonal con los valores propios) y VEC (una matriz cuyas columnas son los vectores propios correspondientes). El resultado es: VEC = 0.4082 0.5774 0.2357 0.8165 -0.5774 -0.9428 0.4082 -0.5774 -0.2357 VAL = 3.0000 0 0 0 -2.0000 0 0 0 1.0000 2.1.2. Operaciones entre matrices Para realizar operaciones entre dos matrices o entre una matriz y un escalar, se indica la operacién que se desea realizar mediante operadores 0 por medio de comandos. Para ejemplificarlas, se definen previamente las matrices C y D. 52 CAPITULO 2. MATRICES Y VECTORES 203 -5 4 -9 7-5 6 2 3 8 -5 8 -1 -5 7 C=(2 3 -9;7 -5 3;8 -S 8) D=[-5 4 -9;6 2 3;-1 -5 7] Suma y resta. Para sumar es posible usar el operador + (0 el comando plus). C+D plus (C,D) ans = -3 7 -18 13-3 6 7 -10 #415 Para restar empleamos el operador - (0 el comando minus). c-D minus (C,D) ans = 7 -1 0 1-7 0 9 O11 Multiplicacion. Para realizar la multiplicacién entre matrices se usa el ope- rador * (0 el comando mtimes) CeD mtimes (C,D) ans = 17 53 -72 -68 3 -57 -78 -18 -31 Para multiplicar elementos ubicados en la misma posicién de cada matriz, (ciy * diy), es decir, realizar operaciones elemento a elemento, se escribe un punto antes del operador (.*) ( el comando times). 2.1, MATRICES 53 C.+*D times (C,D) ans = -10 12 81 42 -10 9 -8 25 S6 Potenciacién. Es posible elevar una matriz a una potencia entera, siempre que la matriz sea cuadrada. Con el operador * 0 el comando mpower, se eleva la matriz C al cuadrado. c*2 mpower (C, 2) ans = -47 36 -81 3 31 -54 4S $ -23 Si se desea elevar cada elemento de la matriz al cuadrado, se utiliza el operador elemento a elemento (.”) 0 el comando power. c.*2 power (C,2) ans = 4 9 81 49 25 9 64 25 64 Operaciones con matriz inversa. La operacién C/D (0 el comando mrdivide (C,D) ) equivale a multiplicar la matriz C' por la inversa de D. ans = -2.3973 -2.2329 -3.4110 ~4.7123 -3.4521 -4,.1507 73.1918 -1.6986 -2.2329 a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. a You have either reached 2 page thts unevalale fer vowing or reached your ievina tit for his book. 60 CAPITULO 2. MATRICES Y VECTORES G(:,:,1,2) = 0.9084 0.2393 0.2319 0.0498 G(:,:,2,2) = 0.0784 0.1909 0.6408 0.8439 Ejemplo 2.14. El comando cat sirve para unir matrices o hipermatrices, a lo largo de una dimensién. Es posible utilizar este comando con las matrices C y D que son de dos dimensiones (seccién 2.1.2), para unirlas en la segunda dimensién (columnas). cat (2,C,D) ans = 2 3 -9 -5 4 -9 7-5 3 6 2 3 8-5 8 -l +5 7 Al unir dos matrices de 3 x 3 en la dimensién 2 (columnas) se obtiene una matriz de 3 x 6. Ejemplo 2.15. Utilizar cat para colocar los elementos de la cuarta dimen- sin de la hipermatriz G en la segunda, obteniendo una hipermatriz de tres dimensiones, pero con doble mimero de columnas (dimensién 2): cat (2,G(t,2,2,1),G(t,242,2)) ans(:,:,1) = 0.4508 0.8928 0.9084 0.2393 0.7159 0.2731 0.2319 0.0498 ans(:,:,2) = 0.2548 0.2324 0.0784 0.1909 0.8656 0.8049 0.6408 0.8439 Ejemplo 2.16. Con el comando reshape(A,m,n) crear una matriz de tamaiio mx na partir de una hipermatriz A. Utilizando G2x2x22, generar una matriz de tamafio 4 x 4.

You might also like