Sunteți pe pagina 1din 249
PLVENION ye PARA CIENCIAS E INGENIERIA eee ee AIT ce ee Cag) eee antes quaiees eltomtan Métodos numéricos y visualizacion grafica computadoras es frecuente en el quehacer del hombre contemporineo, permitiéndonos acceder a grandes ‘masas de informacién en un tiempo reducido. Es asi {que el progreso en la tecnologia de las computadoras ‘cobra importancia y se hace necesario una capacitacién ‘oactualizacién urgent de todo profesional; sobre todo ‘en aquellos inmersos en el campo educative permitiendo estar acorde con el avance cientifico actual PARA CIENCIAS E INGENIERIA _ (.@ F-14 Matlab 7 para Ciencias e Ingenieria, desarrolla aspectos del ciloulo matricial, anélisis numérico y su visualizacién grifica, donde Matlab se ha convertido en una herramienta basica, tanto para los profesionales e investigadores de centros docentes y ‘como una importante herramienta para el dictado de ‘cursos universitarios, tales como sistemas e ingenieria de control, flgebra lineal, proceso digital de imagen, sefal, et. EI presente texto se presenta en 14 capitulos, ejemplificando paso a paso el uso de los comandos que pose Matlab. PEP RAL) Intermedio —— Avanzado Matrices y arregios, Programacién en Matlab, Graticas en Matlab, Sistemas de ecuaciones, aN OTD. a6 Raices de ecuaciones, Polinomios & Interpolacién, Integracién Numérica, : Gn ur o — Ecuaciones diferenciales, Estadistica EDITORIAL desoriotva, intertaz grfica, Graficador de frag9 121821226 , ‘LY, Funciones, Matematica simbdlca. Heron Morales Marchena Con Métodos Numéricos y Visualizacién Gréfica GRUPO EDITORIAL ‘rea: Computacén lforatica Hecho ol dest legal Ley #28905 Bs worraeeD. Fog. N°150101-20080057 Rule. ezoso7agae44| ISBN: 9972-021-226 ‘© Eaward Abu Coen ‘DHoren Morales Maichena Vielor Abin Caos Diceio de Cards “Matlab 7 Para Ciencias e Ingenierfa con Métodos Numéricos y Visualizacién Gréfica”” Derechos Reservados / Decreto Ley 822 "No esta pela a reproduccén total o parca de ost i, su tration infomaico [a ansmistn de ringuna ova forma 0 pox cuaiglr ovo eo ya sea elon, ‘mosinio, er oloepl, por regs woes matacoe sn perm prov yp ecto de (Ge tulaes de Copy Distrioucign y Ventas {i Pufio Toreo 889 F407 - Coad de Line aster 8224110 ‘ww.edtotaimegabyie com vontas@odoriainogabyecom 1 cia, Banco de Créto Sr i9i-12501005-006 § 19tr2so1008-137 Dedicato! j Con mucho carifio... PARA MI MADRE. era con Mesodos Numerics y Vilizacion Grae Contenido del CD-ROOM MATLAB es el nombre abreviado de “MATrix LABoratory”. El libro nos censeiia a realizar programas con funciones mateméticas desde lo mas sencillo hasta lo avanzado. MATLAB 7 es un programa para -ealizar célculos numéricos con vectores y matrices. Como caso particular puede también trabajar con iiimeros escalares, tanto reales como complejos. Una de las capacidades més atractivas es la de realizar una amplia variedad de gréficos en dos y tres dimensiones. MATLAB tiene también un lenguaje de programacién propio. En el CD de ejemplos, se podré encontrar diversos ejemplos que deben ser complementados con la teoria de cada capitulo. Estos ejemplos, constituyen una herramienta fundamental para comenzar a programar. Los ejemplos han sido elaborados de manera muy simple, de tal forma que el lector pueda utilizarlos a la par con la lectura del libro como parte de la didactica del mismo, siendo fundamental el entender cada paso de éstos. ara poder revisar el contenido del CD se deberdn seguir los siguientes pasos: 1. Poner el CD en Ia unidad de CD-ROOM correspondiente. 2..Abrir el Explorador de Windows y hacer click en la unidad correspondiente. 3. Una vez que se eligié el ejemplo que leerd deberd hacer click en la carpeta adecuada, NOTA: EI CD-ROOM de ejemplos _no contiene software de Matlab 7. Para poder visualizar los ejercicios realizados en Matlab 7 tiene que instalar el software. Los archivos Matlab 7 se muestran con la siguiente extencion .m, aml, .cdr (GruroForonat Megabyte on Métodos Numrics y Visualizcin Grfica| INTRODUCCION En estos tiempos el empleo de las computadoras es frecuente en el quehacer del hombre contemporaneo, permitiéndonos acceder a grandes masas de informacién en un tiempo reducido. Es ast que el progreso en la tecnologia de las. computadoras cobra importancia y se hace necesario una capacitacién 0 actualizacién urgente de todo profesional; sobre todo en aquellos inmersos en el campo educativo permitiendo estar acorde con el avance cientifico actual Matlab 7 para Ciencias ¢ Ingenieria, desarrolla aspectos del célculo matricial, anilisis numérico y su visualizacién grafica, donde Matlab se ha convertido en ‘una herramienta bisica, tanto para los profesionales e investigadores de centros docentes ¥ como una importante herramienta para el dictado de cursos tuniversitarios, tales como sistemas ¢ ingenieria de control, algebra lineal, proceso digital de imagen, sefial, ete, EI presente texto se presenta en 14 capitulos, ejemplificando paso a paso el uso de los comandos que posee Matlab: Capitulo 1: Tenemos una introduccién a Matlab 7, asi como sus respectivos ppasos para su instalacién, Capitulo 2 + Inicia Ios célculos en Matlab con las funciones basicas. Capitulo 3: Desarrolla los aspectos relacionados a matrices y arreglos. Capitulo 4 : Presenta los fundamentos de la programacién en Matlab. Capitulo 5: Se estudian las diferentes funciones para la elaboracién de gréficas en el plano y el espacio. Capitulo 6 : Métodos de solucién de sistemas de ecuaciones lineales. Capitulo 7 : Métodos iterativos para el célculo de una raiz. (Grupo Borronat Megabyte (D> teh res eri cn a Nani Capitulo 8 : Funciones polinémicas y de interpolacién. Capitulo 9 : Métodos para el célculo de una integral definida. Capitulo 10 : Métodos de solucién de ecuaciones diferenciales. Capitulo 11 : Estadistica descriptiva relacionados a la salud. Capitulo 12 : Elementos de una interfaz grifica. Capitulo 13 : Elaboracién de un graficador de funciones, Capitulo 14 : Funciones de la matematica simbélica El Autor 10 oo Gauro prowl Megabyte iNDICE Contenido del CD-ROOM csr eT Introduccién Capitulo Inicio e Instalacién Instalaci6n, Instalacién Estdndar.... Instalaci6n bisica ... Instalaci6n, Idemtificacién y_ licencia... Condiciones del Software... , 24 Tipo de instalacién. Inicio Con Matlab... Operadores Aritméticos y Légicos.... Comandos De Ayuda. Capitulo 2: Funciones Basicas Variables... Formatos numéricos. Comandos de lectura y escritura Lectura escritura interactiva de variables «0.0 Funciones Matemticas en Matlab ..... (Gnuro Eorroaat Megabyte (> eb es Ca ns na a Funciones trigonometricas en Matlab. 40 Funciones que realizan tareas. ... 2 Funciones Reales. 45 Capitulo 3: Matrices Y Arreglos.... 49 Matrices y Arregios .. 51 Operadores aritmeticos de arreglos ..... 54 Adicion de Arregios... 54 Adicién de un arreglo y un numero 54 Sustraccién de arreglos .. 54. Multiplicacién de Arregios ... 55 55 55 56 37 58 ‘multiplicacién de un arreglo y un numero .. Divisién de Arreglos Matiz. = Tgualdad de Matrices .. Operadores Aritmeticos de Matrices .. Adicién de matrices .. 58 Aplicacion en Matlab, 59 Sustraceién de matrices 59 Multiplicacién de una matriz por un nimero .. 59 Multiplicacién de matrices 61 Clases de matrices .. 1 65 Traspuesta de una matriz. . 65 Matriz, simétrica .. or Matriz identidad . 67 Matriz triangular superior - 8 ‘Matriz triangular inferior . 69 Matriz. diagonal ...... om 69 Matiz, periédica ... 69 EMSS = Gro roca gab) (CRS scone ty Vinuliacon Gc Traza de una Matriz .. Matriz. Inversa Determinante de una matriz Regla de Sarrus .. Calculo de determinante por menores complementarios .. nD Menor de una componente. Cofactor de una componente 80 ‘Transformaciones elementales en matrices 82 Matriz. escalonada .. . 83 . 84 Matriz equivalente .... . Calculo de determinantes mediante la reducciéna la forma escalonada ... 85 Rango de una matriz. Matrices elementales Matrices especiales en Matlab... Funciones en Matrices ... Grafica de una matriz. 99 Concatenacién de matrices. 100 Funciones de concatenaciones de matrices. 101 Operadores Iégicos en matrices... .. 103 Capitulo 4: Programacién En Matlab wise. 105 Programacién en Matlab...... 107 Sentecia if. 108 Sentencia while 110, Senteucia for. m1 Bucles animados ............ 113 Sentencia Break ...... a 12 Sentencia switch 13, Sentencia continue li4 LK} (Gauro Borowat Megabyte @ Sentencia Try ,cath, end 4 Recomendaciones generales de programacién ..... 14 Creacién de archivos Minn us Enunciado de comentario. 7 Funcién que devuelve una sola variable..... 17 Funcién que devuelve Miiltiples vatiables.....c00nnrmnnnnnnennes UB Archivos de comandos (scripts) oe cutest 119 Definicién de funciones.....cnmsnrnnnnnn 120 Sentencia Retur 122 Funciones con numero de variables de argumentos .... 122 Help para funciones de usuario 123 Help de direcciones 124 ‘Subfunciones. .. 125 Funciones privadas . 126 Funciones * :P.. 126 Variables Persistentes 126 Variables Globales 127 Referencia de funciones(Fuction handlers). 127 Creacién de Referencias de funciones.. 128 Evaluacién de funciones Mediante Referencias 129 Informacién contenida por una referencia de funciones 1 Funciones sobrecargadas. es ities 131 Otros Aspectos de las referencias de funcién ss 33, Utilidad de las referencias de funcién ....... 133 Importacién y Exportacién de datos 134 Importar datos de otras aplicaciones 134 Exportar datos de otras Aplicaciones ones 13S Lectura y Escritura de Archivos 135 Funciones fopen y felose. 135 Funciones fscanf, sscanf, fprintf y sprintf. 136 6 IT Funciones fread y £Write cscs 137 Archivos de acceso directo... 137 Acelerador JIT . 138 Capitulo 5: Graficas En Matlab .. 141 Grdficas en Matlab ........ re : 143 143 Graficos en el plano... Gréfica de miiltiples curvas.. . 148 Etiqueta en los ejes condenades .... 149 Gréficas en miltiples ej... 151 Gréficas especiales en el plano... me ISL 154 Gréficas de superficie Gréficas especiales de superficie. ...... 161 Preparacién de Peliculas 0 Movies 166 196 im 178 180 182 182 Capitulo 6: Sistemas De Ecuaciones ... Sistemas de ecuaciones .. Descomposicién LU. Operador Slash... Método matriz inversa Método de Reduccién a la Forma canénica. Capitulo 7: Raices de Ecuaciones. Raices de ecuaciones algebraicos y tracendentes .. L- Solucién Grafica.. IL- Solucién Iterativa.. Método de Biseccién. ... B Error en el Método de Biseccién ... .. 192 Método de la Regia Falsa ... 196 Método de Miller. ...... 203 Método det Punto fijo. 205) Teorema de Existencia y uniciadad del punto fijo 206 Unicidad 207 Método de Newton Raphson 214 ‘Método de Newton Raphson primer y segundo orden. 218 Rajces de una funcién Polinémica. .. 223 Teorema Fundamental del Algebra ... . 225 228 226 228 229 Cambio de Signo de una funcién Polinémica ... Regla de Descartes. Demostracién de la Proposicién ... Método de Virge Vieta. 2.2... Capitulo 8: Polinémios E Interpolacién Interpolacién Polinémial Métodos de interpolacién. ... Método Serie de potencias. Método de Newton . Calculo de C mediante diferencias divididas . Interpolacién Polinémial por partes ... Funciones polinémicas y de Interpolacién. Multiplicacién de polinomios.. Divisién de Polinémios . 233 235 236 236 . 240 . 240 242 248 248 250 . 250 . 250 251 252 Raices de Polinémios .. : Coeficientes de un polinémio a partir de sus Raices .. Derivada de un polinémio, .. Derivada de un producto de Polinémios 16 i ‘Gnuro Eorouat Megabyte Dems nose) Derivada de un cociente de Polinémios errr, ‘Ajuste Polinémios de curvas. cee so 253 Expansién en fracciones parciales......... ssonenseee 253 Interpolacién unidimensional. 254 Interpolacién Polinémica 255 Extrapolacién 258 Velocidad y suavidad de los métodos .. 259 Interpolacién basada en FFT - 260 260 Interpolacién bidimensional .. 7 S . ‘Comparacién de los Métodos de interpolacién de las dimensiones......... 261 Interpolacién de datos en tres dimensiones . 266 Interpolacién de datos multidimencional . . 267 Mallas Para datos multidimencionales . 269 Capitulo 9: Integracién Numérica.. 271 Integracién Numérica, . 273 Método del trapecio.. e 275 Generalizacién del Método de trapecio para n Intervalos 217 281 Método de Simpson 1/3. . Generalizacién del Método de simpson 1/3 para 2 n subintervalos ..... 284 Método de Simpson 3/8. ..... . oe 287 Generalizacién del Método de simpson 3/8 para 3 n subintervalos ...... 291 Método de Boole. .... 294 Comparacién de Métodos de integracién numérica .. 300 Integracion doble. 302 307 Ecuaciones diferenciales ordinarias con valores iniciales. .... - 309 Método de Euler... . 310 wu Capitulo 10: Ecuaciones Diferenciales . Método Euler modificado. Métodos de Runge Kutt. i : on RK de Segundo Orden .. i oe see BIT @ ma Método predictor corrector. 312 314 316 Rk de Tercer Orden ... 318 Rk de cuarto orden 320 Ecuaciones diferenciales de segundo orden... 323 Ecuaciones diferenciales de tercer orden.......... —. 324 Ecuaciones diferenciales de cuarto orden. 326 Capitulo 11: Estadistica Descriptiva ... 299 Estadistica descriptiva en salud...... Poblaciones y muestras.... Tipos de datos. ‘Variables cuantitativas Variables cualitativas Estadistica Descriptiva ... Medidas de tendencia Central La Media .. La Mediana... La Moda... Medidas de dispersién .. Coeficiente de variacién Capitulo 12: 329 330 331 331 . 331 332 332 332 . 333 334 335 337 Interfaz Grafica... 339 Controles de la interfaz del usuario. 341 Propiedades Generales de los UI controls 351 Elaboracién de una interfaz grifica. nee 354 Funciones de una interfaz grifice.... 364 Ment en Matlab... 374 Definiendo Ios Meniis para la barra del Meni. 374 Ment contextual... 379 Creando Menti Padre . ee 379 Agregando los Items al ment contextual para la barra del Ment... 380 Asociando en ment contextual con un objeto ... 381 385 387 387 Capitulo 13: Graficador de Funciones. Elaborador de un grifico de Funciones... Disefio y programacién de Ia interfaz principal... Disefio y programacién de la Interfaz para la elaboracién de ‘grificas en el plano .. on 1. 394 Disefio y programacién de la Interfaz para la elaboracién de grificas en el ESPACIO. ennnnnnnen Diseiio y programaci6n de la Interfaz para la elaboracién de grificas de revolucién 399 402 410 413 413 416 421 424 Capitulo 14: Matematica Simbélica. Funciones Matemitica simbélica.. Variables Simbélicas.... Funciones Simbélicas. ......... Funciones Simbélicas Para la Integracién .. Funciones Simbélicas Ecuaciones diferenciales.. Anexo A Interfaz Grafico usuario en matlab. Anexo B Graficos ‘y Visualizacién en 3-D Apendice Sistemas de ecuaciones ... (Gayro Enron Megab) OBJETIVO: Capitulo ] @ Instalar iniciar el trabajo con matlab 7, sian: realizando operaciones basicas. N Ic 10 CONTENIDO: E i ‘a Instalacién 1 Identificacién y licencia, Condiciones det software. \ Tipos de instalacién. \ Inicio con matlab. \_Operaciones aritméticas y lgicas. \V Comandos de ayuda. ea Tnicio e Instalacion (s} INSTALACION Instalacién Estindar En este capftulo se describe como instalar MATLAB 7, puede instalar MATLAB ® sobre cualquier sistema al cual usted tiene acceso, como su oficina, casa, sistemas de laboratorio, o su ordenador portatil Instalacién Basica Proporcionaremos instrucciones paso a paso para instalar productos MathWorks sobre su ordenador. Instalacién Inserte el CD etiquetado como n° 1 en la unidac del CD-ROM. ElInstalador comienza autométicamente, mostran:io la bienvenida en el cuadro de diflogo de instalacién, en el proceso de instalacién el instalador le indicaré ‘cuando usted debe insertar el CD n° 2 para continuar con la instalacién, Seleccione la opcién Instalar y haga click en siguiente Selecione Isntal \TLAB IMULINK I ee scanrcseccnnnenaninane Clic Next (Siguiente) (Gauro Eomonial Megabyte Identificacién y licencia Ingrese su nombre, el nombre de la compaiiia, y la contrasefia de Ia licencia de personal (PLP). Nombre de usuario Nombre de su Empresa MATLAB —_e SIMULINK: ee i (ree yor Prem ee Panes 7, i Fousronstoecenestrwremaiaa ———— [3s rrr - : Clio Next (Siguiente) Condiciones del Software Si usted esté de acuerdo con los términos(condiciones) del software, seleccione yes en la caja de verificacién y luego dé click en siguiente. eee ere cede tans rene ai me usr geen yore ert Tipo de instalacién Usted puede realizar dos tipos de instalaciones: Typical o Custom ‘Typical.- El procedimiento de instalaci6n tipical es disefiado para simplificar la instalacién, escoja una instalacién tipical si no pretende ser muy exigente entre los productos que usted quiere instalar. ‘Custom.- Escoja una instalacién custom si desea tener acceso directo a las opciones de instalacién. seleccione una de las opciones : typica o Personalizada © pial Intl atyour cane pecs sina del ets MATLAB SIMUL Specs atirsaion eons, Clic Next (Siguiente) El cuadro de didlogo en el cual usted suele especificar donde quiere instalar Matlab, varia segin el tipo de instalacién que selecciona En la instalaci6n typical se especifica s6lo la carpeta de instalacién en cambio en a instalacién custom se especifica la carpeta de instalacién y se selecciona Ios productos que desea instalar, Si la carpeta no existe, el instalador lo creara. (Gnoro Boro Megabyte we Seleccione la carpeta donde sera instalado MATLAB SIMULINK —— Clic Next (Siguiente) Especifique Opciones de Instalacién (solo custom) Para instalaciones custom, usted puede especificar varias opciones de instalacién en el cuadro de didlogo de instalacién custom, incluyendo los permisos para lectura de todos los archivos instalados. “aia Pee net pers wos a ow 1 beipaissoncrnsistesneso a6 set erlang F ons | ' | reeeemneease | (roe cera eee ast a MATLAB SIMULINK: Clic Next (Siguiente) ‘Gruro Eoronnt Megabyte T Confirme sus opciones Antes de que comience a copiar archivos a su disco duro, el instalador MathWorks muestra un resumen de fa instalacién, haga click en el botén back para seguir con la instalacién, Ne Las MATLAB ‘cette yr lee SIMULINK is ewe Fee |: ae Clic Next (Siguiente) Después de que usted pulsa instalar,e] instalador muestra un cuadro de didlogo que indica el progreso de la instalacién, cuando la instalacién alcanza 61% se visualizaré una nueva ventana, indicando insertar el CD 2, NTE abl Applicaton Depleyment ‘kn ornare hime hand - = © matsteeoiaaaeean meats sy es agate nto (Gruro Eorowat Megabyte Complete la Instalacién ‘Cuando el instalador MathWorks termina la instalacién, muestra el sistema de didlogo completo. En este cuadro de didlogo, usted puede decidir comenzar Matlab reiniciando para ello su equipo o dejarlo para después, luego finalice haciendo click en finish. EIT aici MATLAB cow SIMULINK & enw =) Thea Inicio Con Matlab ara iniciar el trabajo con Matlab, vamos a inicio y seleccionamos el programa Matlab del ment del sistema TR Y acontinuacin aparece una ventana dividida en 3 partes la cual muestra Ventana del Directorio actual, Ventana de Historia de comandos y la Ventana de comandos; esta tltima es la ventana sobre la que empezaremos a digitar las ordenes a continuacién del signo >> y luego pulsaremos enter, para que Matlab cfectie Ia operacién ——— i oe TF 7) cunentoredery [EWATASTWom J415 Ste ioe sat 2 Yarden joome B- |Sarumetee lFinses Be _Ejemplo: Calculemos el érea de un rectingulo cuya base es 5, y su altura es & Digitaremos en la ventana de comandos: >> base = 55 >> altura = 8; >> drea = base * altura Nos devuelve como resultado: frea= 40 El punto y coma al finalizar una orden oculta el resultado y no se visualizaré después de ejecutarse la orden. Operadores Aritmeticos y Légicos Los operadores aritmeticos y l6gicos que se posee Matlab se ven a continuacién: [ Operacién | Daseripetsn 7 ‘abr Realza la suma dea ye ab: Roaliza a vesia deayo. a7 br Realiza ie mlipioacion de ay b ‘a7: Raia la dhision de aire a) bs Fealza la division deb eniva a "aA bi Eleva la base @ al exponrtob ‘== br Establoca la Condicion do aF > ‘a> bi Establoce la conden de a mayor que b z ‘a br Eatablece ia condion de amenar que. a= b Esiaboce Ta condi de a mayor o ual qe = ace Estabece Ta conscion dea menor o igual qe B ab: Establece Ta Bayne Gea ob = ‘ae= Br Estabace a condcion de a Qual ab Ejemplo: >> 347 Nos devuelve como resultado: 10 Ejemplo: >> 8-3 ‘Nos devuelve como resultado: 5 Ejemplo: >> 447 Nos devuelve como resultado: 28 Ejempla: >>3/2 ‘Gnuro Eorrowat Megabyte ‘Nos devuelve como resultado: 15 Ejemplo: >> 4\5 Nos devuelve como resultado: 1.25 Ejemplo: >> 344 ‘Nos devuelve como resultado: 81 Observacién.- Para conocer el valor que posee un identificador (variable) digitar el nombre del identificador y pulsar ENTER. ++ indica continuacién de la operacién y se escribe al final de una linea. Comandos De Ayuda Nos permiten obtener informacién sobre las variables, comandos y archivos de trabajo, digitandolos en la ventana de comandos. 1. help :Para_ saber el significado de un comendo digite help, seguido del comando del cual se desea obtener informacién, Ejemplo: >> help quit Nos devuelve como resultado Quit termina Ia sesién de Matlab 2, help +: Nos permite visualizar caracteres y operadores especiales que posee Matlab 3. what : Produce una lista de los archivos M_, MAT_y MEX_ 4. who + Produce una lista de las variables del espacio de trabajo actual whos : Exhibe informacién adicional acerca de cada variable. ermite salir temporalmente de Matlab. (Gruro Bowron Megabyte 7. a 6. demo: Guia al usuario a ejecutar diversas demostraciones que se eligen de Ejemplo: what un meni. CE an oe Ft | 7 emetoney [Ewailasinae =) J | sts Benoa te | Ejemplo: help + lpia Pe gate Yeo 1 gee varies, setece MATAR Heino Eas om ste He) © RP | Gottman [Sauer ‘eget staceed, select HATLAE Bele of fas Zea che ee oe. (Gasioan Megityie OBJETIVO: bisicas de Matlab CONTENIDO: Y Variables. 1 Formatos nimericos. V Comandos de lectura y escritura, -V Funciones trigonometricas en matlab. \ Funciones que realizan tareas. -\ Funciones de variable Real. ¢ Realizar operaciones con las funciones| — ‘tai 2 | Funciones Basicas Variables En Matlab como en cualquier otro lenguaje de programacién se utilizan ariables, estas deben tener un nombre segéin ciertas reglas. Estas reglas son: - No pueden comenzar con un niimero, aunque si pueden tener nimeros en su estructura: variable! es un nombre valido. ~ Las mayiésculas y minésculas se diferencian en ‘os nombres de variables: A yy a.son dos variables diferentes. - Los nombres de variables no pueden contener operadores ni puntos. No es valido usar J, * ‘ Para el uso de una variable no es necesario declarar sus nombres, en la siguiente tabla se presenta las variables predefinidas que posee Matlab. Nombre de la Variable | Significado Pi © ly] int = eps 7,00006-006 [NaN «S| Noes ntdmmero realmin ‘Menor niimero2 realmax Mayor numero (2-e)2™ (Guuro Farrow Megabyte ®) A continuacién se presenta los diferentes formatos que usa Matlab en la visualizaci6n de sus variables, Formatos Numericos format.- Modifica el formato numérico de los valores desplegados por Matlab, donde la funcién afecta s6lo cémo son los niimeros exhibidos, no cémo los computa Matlab Ejemplo >> x= [4/3 1.2345e-6] format short 1.3333 0.0000 format short € 1.3333e+000 1.2345e-006 format short g 1.3333 1.2345e-006 format long 1,33333333333333 0.00000123450000 format long € 1,333333333333333e+000 — 1.234500000000000e-006 format long g 1.33333333333333 1.2345¢-006 format bank 1.33 0.00 format rat 43 1810045, Comandos De Lectura y Escritura Lectura y escritura interactiva de variables Matlab provee una forma sencilla de leer variables desde el teclado y visualizar mensajes en la pantalla de la computadora a través de las siguientes funciones: input.- Permite el ingreso de datos al programa através del teclado asigndndolo una variable, esta orden puede usarse con un mensaje en La linea de comandos. Después de imprimif el mensaje, la orden espera que el usuario digite el valor numérico, un vector, una matriz 0 una expresi6n. vélida de Matlab, Ejemplo: >> z= input( ); 6 en caso contrario put ( ingrese un mimer Asigna alla variable z el ntimero ingresado Ejemplo: >> z= input (‘ ingrese su nombre: ”, ¢s”) Asigna ala variable z la cadena ingresada. s : indica que la entrada que se hard por teclado es una cadena, {printf.- Permite la visualizacién de un valor numérico o el resultado de una expresién guardada por el usuario. Ejemplo: >> vol=49; >> fprintf (‘ el volumen de la esfera es: * %12.0f \n ’wvol ) \n': indica que la impresi6n de la variable vol seré en la siguiente linea. % 12.0 : formato de un niimero entero %12.5€ : formato de un niimero real con 5 decimales. (Gruro Eorronat Megabyte (@ i ON disp.- Permite visualizar en pantalla un mensaje de texto o el valor de una ‘matriz, pero sin imprimir su nombre. En realidad, disp siempre imprime vectores ylo matrices, las cadenas de caracteres se consideran un caso particular de vectores. Ejemplos: >> disp (« Esta es una prueba ’ ); >> disp (pis >> disp(‘El programa ha terminado’) >> Acrand(4,4) >> disp(A) clear: Borra las variables usadas de la memoria. ele: Limpia la informacién de la ventana de comandos. Funciones Matematicas En Matlab Matlab offece un sinntimero de funciones las que aceptan como argumento variables reales y/o complejas sin discriminacién, asi como con argumentos ‘matriciales. Fuciones Trigonometricas Funcién | Descripcién ‘singx) | Seno de x. ‘asin(x) | Arcoseno de x. sinh(x) | Seno hiperbélico de x asinh(x) | Arcoseno hiperbdlico de x. eos(x) | Coseno dex acos(x) | Arcocoseno de x. (GauroEorronat Megabyte be ‘acos(x) ash) Arcocoseno de x. Coseno hiperbdlico de x. ‘acosh(x) | Arcocoseno hiperbdlico de x. tan(x) | Tangente de x. atan(x) tanh(x) atanh(x) | arcotangente hiperbdlico de x carcotangente de x. Tangente hiperbélizo de x. eat(x) | Cotangente de x. sec(x) | Secante de x. ‘ese(x) | Cosecante de x jemplo, >>x=[1,2,359,8,71 >> sin(x) Nos devuelve como resultado 0.8415 0.9093 0.1411 0.4121 0.9894 0.6570 Observacién: Los corchetes se utilizan para definir una variable con miltiples valores, Ejemnplo: >Px=[0.8 0.9 0.1508 0.9 0.1;04 09 0.6); >> zeasin(x) Nos devuelve como resultado 0.9273 1.1198 0.1002 0.9273 1.1198 0.1002 O41IS 1.1198 0.6435 (Grune Boronia Megabyte Ejemplo: >> x= [0.9 0.106 0.1;04 0.9); >>zetanh(x) Nos devuelve como resultado 0.7163 0.0997 0.5370. 0.0997 0.3799 0.7163, Kjemplo: d>x=[L5 12 16,13 11 18] >> yesech(x) Nos devuelve como resultad6 0.4251 0.5523 0.3880 0.5074 0.5993 0.3218 Funciones Que Ralizan Tareas Funcién | Deseripcion abs(x) Valor absoluto de x. Sart) Raalz cuadrada de x. reals) Parte real del nimero complejo x imag) Parte imaginaria del nimero complejo x ‘sign Funcién signo de x. exp) e Tos) Togarimo natural. Togi0%) | Logarimo decimal. Tog2(x) Togariimo en base 2. ming) Devusive el valor minimo de un arregio x. oe) Devusive el valor maximo de un arregio x SOFTER) ‘Ordena los elementos del arragio x en forma ascendente. (EE arson Megat) ‘sum(x) Calcula la suma de todos os elementos del arregio x Tum@str(x) | Convierte en cadena el nimero x. ‘ir2double(X)| Convierte en ndmero real la cadena x eam Funciones Basicas | Ejemplo: >> abs(x) Nos devuelve como resultado 340 Ejemplo: >> xe 342i; >> imag(x) Nos devuelve como resultado 2 >> real(x) Nos devuelve como resultado 3 Ejempl pox= [215]; >> sort( x) Nos devuelve como resultado 125 >> sort([215]") Nos devuelve como resultado 1 2 5 : El apéstrofe cambia los valores de la variable con multiples Observacic valores y los presenta en columna luego sort 1o reordena en columna. (Gruro Eoronnt Megaby Ejemplo: pex=[215], >> sum (x) Nos devuelve como resultado Ejemplo: [1364.27]; >> sum (x) Nos devuelve como resultado 5123 Observacién.- El punto y coma en una variable con multiples valores indica la culminaci6n de los valores de una fila y los siguientes se presentarén cena siguiente fila, en este caso el comando sum calcula la sumatoria, de cada columna y se devuelve un vector fila formado por las sumatorias de todas las columnas. Ejemplo: >> x=(L2,61; >> max (x) Nos devuelve como resultado 6 Ejemplo: >> x=[1,2,6]5 >> min(x) Nos devuelve como resultado 1 Ejemplo: >> x=3.240; >> num2str(x) Nos devuelve como resultado 3240 ie) Ejemplo: >> x= 268"; >> str2double(x) Nos devuelve como resultado 268 Observaci6n.- Una vez que una variable se ha convertido en cadena, se puede incluir como argumentos en titulos o ejes coordenados como se verd posteriormente. Funciones Reales Funcion | Descripeign eval(f) | Evalda una funcién en los valores de x. ‘plot, | Grafica la funcién en el intervalo [a.b) fab) ‘Teero(f, a) | Calcula a rate dea funcion , partiendo dal valor a. ‘trapz(%f) | Calcula el drea de Ta region plana limitada por ten elintervalo [a,b], donde a es el primer valor de x y bel ultimo valor de x, x debe ser una variable con mutiples valores ordenados en orden creciente Para hacer uso de los comandos presentados a centinuacién, se define en la ventana de comandos la regla de correspondencia de la funcién. Ejemplo >>nombref='3%xA2 5° pex=[124]; >> eval ( nombre_f) Nos devuelve como resultado pie 7 43 mo (GauroEoronat Megabyte Observacién.- el pardmetro x puede ser un néimero complejo 0 una variable >> area = trapz (xf) ‘con miltiples valores. Nos devuelve como resultado Ejemplo: 0.34 >> fplot (nombre_f, (0,21), Nos devuelve como resultado ta siguiente figura: 0 02 Of 06 08 1 12 14 16 18 2 Ejemplo: >> z= fzero (nombre_f, 2); Nos devuelve como resultado 1.2910 Ejemplo: [00.20406 08 1); 12; aE Megas = a OBJETIVO: je Realizar operaciones con arregios y matrices, utilizando las diferentes funciones aque provee Matlab taitlo 3 Matrices CONTENIDO: 1 Aroglo: dfinicién, clases y operadores aritméticos. V Clases de matrices y traza de una matriz. V Matrizinversa y métodos de céleulo. Y Transformaciones elementales en matrices. Matrices elementales y matrices especiales en Matlab. ‘Y Funciones de matrices en Matlab y norma de ‘una matriz. Grafica de una mattiz. Arregos Dein Matrices y Arreglos Matrices y Arreglos Arreglo.- Es un conjunto de niimeros, ordenados en filas y columnas. 1, 4, 5,8; 5, 0, 0, 25 0, 1, -7, 3] Crea un arreglo de 3 filas por 4 colurnnas cuyo resultado es: 1458 5002 01-73 Arreglos unidimensionales: Es un conjunto de nimeros, ordenados en una sola fila o columna. Bjemplo: >>X=11,2, 10,41 Crea un arregio en fila cuyo resultado es: 12104 Si se desea visualizar un elemento en particular digite X con su subindice entre paréntesis jemplo: >> X(3) Devuelve el elemento del arreglo X, ubicado en ta tercera posicién ‘cuyo resultado es: 10 (GeuroBononsuMegabyte no + oo TT @ [Matlab 7 Para Ciencias ingeneria con Método Numéricos y Vin aD 5 Ejemplo: >> X= fA; 8 35 4] Crea un arreglo en una columna cuyo resultado es 1 8 3 4 Si se desea visualizar_un elemento en particular digite X con su subindice entre paréntesis Ejemplo: >> X(2) Devuelve el elemento del arregio X, ubicado en la segunda posicién cuyo resultado es: 8 Matlab presenta otra opeién para crear arreglos, donde cada par de elementos consecutivos posee una raz6n constante. Ejemplo: >>X Crea un arreglo en fila con valor inicial 1 que se va incrementando en 0.5 hasta llegar al valor 4, cuyo resultado es: 115 2253 35 4 El mimero de elementos de un arreglo pueden incrementarse definiendo 5:4 >> X(8) Adiciona un elemento a la matriz X en la octava posicién, digitando X en la ventana de comandos nos dard como resultado 115 2 25 3 35 4 6 wees (Gauro Eorrowat Megabyte Cee Matrices y Arreglos “Arreglos bidimensionales: Es un conjunto de nimeros, ordenados en filas y columnas, teniendo para ello més de una Ejemplo >> X= [1 4, 5,855, 0, 0,25 0,1,-7,31 Crea.un arreglo de 3 filas por 4 columnas cuyo resultado es: 1458 5002 01-73 El punto y coma (;) en un arreglo se utiliza para separar las filas en un arreglo. Si se desea visualizar un elemento en particular digite X con su subindice entre paréntess. Ejempl >> X(2,3) Devuelve el elemento del arregio X, ubicado en la segunda fila y la tercera columna de X cuyo resultado es: 0 Ejemplo: >> X(L:) Devuelve todos los elementos de la primera fila d2 X, cuyo resultado es: 1458 Ejempl >> X63) Devuelve todos los elementos de la tercera columna de X, cuyo resultado es: 5 0 a (Gruro Eoronial Mk A Operadores Aritmeticos De Arreglos Los operadores aritméticos en Matlab se realizan teniendo en cuenta que los arreglos a operar sean de igual niimero de filas y columnas. Adicién de arreglos.- Realiza la suma de los elementos de los arreglos de acuerdo a su posicién, Ejemplo >PA=[1, 455,25 >>B=[2,1; 3,4); >>C=A+B Nos devuelve como resultado hed 8 6 Adicién de un arreglo y un némero.- Realiza la suma de cada elemento del arregio con el némero dado. Ejemplo >rAs[l.435.2h >>B=A+2 Nos devuelve como resultado 36 74 Sustraceién de arreglos.- Realiza la diferencia de los elementos de los arreglos de acuerdo a su posicién. jemplo >> A=[l.45 5,2] >> B=[2,1; 3,4) >> D=A-B Nos devuelve como resultado An 206% Multiplicacién de arreglos.- Realiza el producto de cada elemento de los arreglos de acuerdo a su posiciGn Ejemplo prA=(1,4 5 5,25 3,7 >>B=[2,15 3,45 2,6} >> E=A4B Nos devuelve como resultado 24 15.8 6 42 Multiplicacién de un arreglo por un mtimero.- Realiza el producto de cada elemento del arreglo por el ntimero dado, Ejemplo >> D=[3-27;654;549}; >> B=-4*D Nos devuelve como resultado 12 8 -28 24-20 -16 20-16-36 Divisién de arreglos.~ Realiza el cociente de cada elemento de los arreglos de acuerdo a su posicién. Ejemplo >>A=[1.4; 5,21 >>B=[2,1; 3,45 Nos devuelve como resultado os 4 166 05 Observacién: A los operadores de la multiplicacién y divisién siempre les precede un punto. MATRIZ Es un arreglo rectangular de nimeros (reales 0 complejos) ordenados en filas y columnas. yy yy ssseeeense ay an a, mt Agger Bang En su forma simplificada lo escribiremos como: constituyen los elementos de la matriz. A. Si una matriz tiene sélo una columna, se denomina matriz columna, y si posee slo una fila se denomina matrz fila. = (a) y los némeros a, lo: Ejemplo: 7 - b % B D by Xe Bes de orden mxl y la matriz D de orden nx1. Ejemplo: Dadas las matrices pes ne 074 A (Gruro Eorouat Megabyte een rr) La matriz A tiene dos filas y tres columnas, luego, es de orden 2x3. La matriz B tiene tres filas y una columna, luego, es de orden 3x1. ara identificar los elementos de las matrices A y B, lo escribimos del modo siguiente: bu Ay An Ary a-[t a ico = [Da |= O,)aur 121 Ann Aas, by, Entonces: El conjunto de matrices de orden mxn con coeficientes en k , se denotar por Ko, es decir: Kes (AVA= (84) oun) La representacién de una matriz en Matlab es similar al de un arreglo. Aplicacién en Matlab Ejemplo >> A=[3-25;,074], = 15658]; Igualdad de Matrices.- Dadas Las Matrices A = (a,) y B = (b,), decimos que A es igual a B, si a, =b,, para todos los ij, Es decir: A= (@,),= (0) <> 42d, Vij Ejemplo: Dadas las matrices 2x+1 2 2-1 3-2y 2 xty x42-1 dy], 243-1 2-2x y-l 8 x-22 esas eel (Gayro Eorroaat Megabyte Boa 57 (@) [Matlab 7 Para Ciencias cingenieta con Mtiodos Numéricosy rs, i = Matrices y Arroglos Aplicacién en Matlab SiA=B, hallar el valor de xyz Solucién Ejemplo >> A=[060;868; 322}; x+1 2 2-1 3-2y 2 x+y >> B= [29-21 27; 11 13 5; -19 19 19]; A=|x+2 -1 2y =[243 -1 2-2x|=B o> CHA4B yl 8 x-2z z-5 8 -1 Nos devuelve como resultado Se tiene que: 2-15 27 2x+1=3-2y, a loxey : Oo Ye 16° U2 eer dy =2-2x y-1=2-5, x-22=-1 Sustraccién de Matrices.- Realize la diferencia de los elementos de las Lucgo: matrices de acuerdo a su posicién. Ejemplo 1, xtysa-l >> X=[1-3 5416; 6 12; L xty=22 >> ¥=[23 2; 603; 4 1-1); y-2=-4, x-22=-1 ae Dedonde: . Nos devuelve como resultado Resultando que: 7 7 7 xyz = 3(2)2 = -12 . yz = 3(-2); ao Propiedades: Sean A, B, C Km ; se verifican ls siguientes propiedades: Al) A+B=B+A Operadores Aritmeticos De Matrices an armeceasaen Los operadores aritméticos de matrices en Matlab, estén definidas como las A3) A+(A)=GA)+A=0, donde -A= (DA operaciones usuales en Matematica, diferenciandose con os arreglos en la ‘multiplicacién y fa divisién operacién que no existe ‘Multiplicacién de una Matriz por un mimero- Realiza el producto de Adicién de Matrices.- Dadas las matrices A=(a,) y B=(b,) Ia suma de A y cada elemento de la matriz por el nimero dado. B se define como una matriz C talque c, = a, +b,, para todos los ij, es decir se realiza la suma de los elementos de las matrices de acuerdo a su posicién. (Grune Eoroniat Megabyte Ey (Giuro Enrrowat Megabyte (Qe rs acer a a aN Aplicacién en Matlab Bjemplo. >> D=[3 27;654)]; >> E=2"D Nos devuelve como resultado 6-414 12:10 8 Propiedades: Sean A, B, CeK™*; p,geR, se verifican las siguientes propiedades: El) PGA) = (p.9).A E2) (p+q).A=pA+qgA E3) p(A+B)=pA+pB Ejemplo: Dadas las matrices: | si A=B, hallarA+3.C. Solucién. SiA=B, entonces x-2y=2, x=y+4 353, xy=4, x=6, y Delocual: 26 2/3 -2 A= =B, C 34 10) (Guuro Eoronat Megabyte mo Deer Matrices y Arreglos ‘Ahora hallamos: 26 2B -2 At3C= A olf ‘| 26 2-6 + [a] *[se 242 6+(-6)]_[4 0] _, [10 3403) 4 “to4} [oi =41, Multiplicacién de Matrices.- Sean A=(a,) una matriz.de orden mxn, B=(b,) tuna matriz. de orden nxp; entonces la matriz C=(c,) es el producto de A con B (en ese orden), si C= Yiavby, para El producto se realiza considerando filas de la primera matriz por columnas de la segunda entre elementos correspondientes, luego efectia la suma ubicando el resultado en la posicién de acuerdo a la fila y columa que se multiplicaron. En otras palabras, la entrada (i,) del producto C = A.B de A con B se calcula tomando las n entradas de la fila i de A y las n entradas de la columna j de B, rmultiplicando las entradas correspondientes, y sumando los n productos resultantes. Ejemplo Si pa 33 y B=//0 1]Setienecue A. B=| 23 ori. 41 0. 110 (Gruro Eomonat Megabyte ul @ | Mata 7 Para Genie ingeirincon Mods Namco Vs OO 9 La entrada (2,1) de A.B, por ejemplo, se obtiene combinando la fila 2 de A con la columna 1 de B, de! modo siguiente: 2 [1 2 0} ]0|= 1x2+2x0+0x1=2 1 ‘La multiplicacién matricial no se comporta en absoluto como la multiplicacién, de niimeros. Por ejemplo, es posible formar el producto de la matriz A con la matriz B s6lo cuando el nimero de columnas de A iguala al niimero de filas de B. Cuando el producto A.B esté definido, el producto de B con Ano necesariamente esti definido. Ademés, aunque A.B y B.Aestén definidos, no son necesariamente iguales. Propiedades: Sean A, B y C matrices tales que todas las sumas y productos mencionados estin definidos; sea pe R, y sea I, la matriz. cuadrada de orden n tal que: Lisj Oi j [Si], donde 5; = { Es llamada matriz identidad de orden n. Entonces, se verifican las siguientes propiedades: MD ABC) =(AB)C M2) (A+B) C=A.C+B.C M3) A(@B+C)=AB+AC M4) p(A.B) = (p.A).B=A(p.B) M5) —I,A=A, para todas las matrices A, nxp. M6) B , para todas tas matrices B, mxn. a Gnuro Eowronat Megabyte Ejemplo: Dadas las matrices 231 121 101 1-11], B=|-12-1], C=|o11 022 202 102 a) Calcular A.B y B.A y mostrar que A.B # B.A b) Mostrar que A.(B.C) = (A.B).C Solucién, 231) [121 AB=|1-11 | |-12-1 022/[202 2)+3CD412) 22)+32)+10)_ 2(1)+3¢-1)+1)T] =]1G)-1CD+1@) —12)-1)41@)_—_14)-161)+1@) 0(1)+26-1)+2(2)_ 0(2)+2(2)+2(0)0(1)+2(-1)+202), 2-342 4+6+0 2-342 ={1+1+2 2-240 14142 0-244 04440 0-244 =|4 0 4. sen 8) ey (Guyro Eorrowat Megabyte 24240 3-242 14242 -24240 -3-2-2 -142-2 44040 64044 24044 5 4 =| 0-7-1 | -@) 4 “1 6 Ss Comparando (a() y (9), se concluye que A.B# B.A b) AB.C) y (A.B).C 231](f121y101 A.C) =|1-11 |]]-12 1011 o22]\[2 0 2102 s|I-L1 ]-22-1]=]8 012}--(o) 23172 25] [21013 022}4 06] [4 410 (AB).C=]]I-11 | ]-12-1 oll ae it 2 101 022)|[202 102 1101/1 01 21013 =| 4 04/0 11]=|8 012]---() 242)1 0 2) [4 410 De (@) y (8) se concluye que A.(B.C) = (A.B).C Aplicacién en Matlab Ejemplo >> F=[3-27,654;049]; p> G=[1 7:04:29] *G >> H= Nos devuelve como resultado 7 76 14 98 18 97 Observacién.- El operador de la multiplicacién de matrices no va acompafiado de un punto. Clases de Matrices ‘Transpuesta de una Matriz.- Dada una matriz A de orden mxn, se llama matriz transpuesta de A y se denota como A‘, a la matriz de orden nxm cuyos elementos se obtienen intercambiando las filas por columnas. Ejemplo: 23 21-4 a Si a-[3 5 4). latranspuestaes 4" = a Propiedades: Dadas las matrices A y B de igual orden, y 2 un escalar cualquiera, se cumplen las siguientes igualdades: T) (AYA 12) QAy= AA 13) (A+B). =A'+ Bt aren Guero onan Mepabyie) (Gaomnegange ania a Clencis Ingenieria con Métodos Naméceos guiente igualdad A es de orden mxn y B de orden nxp. Aplicaci6n en Matlab 14) (ABY= BAY Ejemplo TS) y= >>A=[1-30-2;3-12-2 1025;-16 13] - 1302 Ejemplo : Demostrar la propiedad T4 : (ABY= BA’ oe Demostracién, Sean A = [a,] una matriz de orden mx y oe 2025 B = [b,] una matriz de orden nxp [_ ‘Si hacemos AB = C, entonces C= {g,] es una matriz de orden mxp. _ El elemento de la fila y la columna j de AB es: Nos devuelve como resultado ie 13 24 3-12 0 6 Que también pertenece a Ia fila jy a Ta columna i de (AB): 02 241 26 5 3 Luego: si (AB)'=C'>C,=Yayby Matriz Simétriea,- Dada una matriz.A = [a,JeKS, si [a,]=[a,),v ij, ditemos 7 que Aes una matriz simétrica Supongamos que B'= [x,] tal que [x,] = [b,] Ejemplo: Ave [yg] tal que (94) =f] 224) [224 Sea: A=|2-60|=|2-60|=A" . . . 4o8| [sos Entonces: B'A' = D7 (Xu Hy) = DO, )@x) = Do audy) Matriz Identidad.- Una matriz. cuadrada de orden n cuyos elementos de la ‘Comparando con (1) se concluye que: iagonal principal son todos uno y los otros elementos son todos cero, recibe el nombre de matriz identidad o matriz unidad. Se denota generalmente con I, esto (AB)! = Bit es: En Matlab se efectia el intercambio de filas por columnas, através del operador { ais Ademés, t(1,) = n, (I,)'= In, AI=IA=A apéstrofe( ). b,]+ 6, (Gnuro Eorowat Megabyte (Gruro Horoun Megabyte __ & Ejemplo: La matrz identidad de tercer orden se define como 100 I,=]010 oor Ingenieria con Métodos Numércas y Vis Ejemplo: Si f(x) =3x?—4, hallar el valor del polinomio f(A) de la matriz aa? 1] 03] wel? 2 fe 5 03j[0 3] lo9 45 ee eae 0 9} “Lo 3} [023 Matriz Triangular Superior.- La matriz cuadrada A cuyos elementos situados debajo de la diagonal principal son todos cero, se denomina matriz triangular superior. Esto es, a, = 0, para todo i > j. Solucién: 1332 ab-c o221 Bjemplo: A= =| iplo: mca B=|0 a b 0003 00a ce . (GruroEprronat Megabyte Matriz Triangular Inferior. Una matriz cuadrada A cuyos elementos situados por encima de la diagonal principal son todos cero, se denomina rmatriz triangular inferior. Esto es, a, = 0, para todo i Ejemplo: Dada la Matriz. 0-10 oe |ee ol taller 00-1 Solucién 0-1 O]fo -1 0 1-1-1 AxA=|1 11 |{1 11 0 0-10 0-1 oo1 A=AA -1-1-1]f0 -1 0] [-i 0 ro oft ta f= oo 1}lo 0-1} | o o- ASS AAS A)A=-AD=I; AT=A‘ASIAZA Luego: p+! =7 <-> p= 6esel perfodo de In matriz A 70 : (Gauro Boronia Megabyte Ay a, Expresado en palabras, tr(A) es la suma de los componentes diagonales de } A Propiedades: Si A, B € K’, y eK, entonces: 1, tr(A¥B) = (A) + tB) 2. tA) =é (A) 3. (A.B) = (B.A) Demostracién de (1): Supéngase que A = (a,) B= (b,). Entonces mA)=Sa, t(B)= Dior a a Por la forma en que se suman las matrices A+B=(C,.), en donde c,, = a,:+Dj» porlocual: ee Secs Seed = tr(A) + tr) Ejemplo: Dadas las matrices 1 20-1 for oo o io: Lasiti Be A i af?B lho 23 lio 0 1 es (GnuroEprowat Megabyte Probar que tr(A.B) = (B.A) Soluci6n.- Para generar tr(A.B) no es necesario conocer todos los componente. de A.B, basta con los de su diagonal. De esta forma: 2 ape| W2ti+ti 142441 = oy En donde los elementos marcados con * no interesan, por consiguiente: (A.B) =2+ iit) +14 142441-5=-1461 Se tiene también que: 0 24(1tDit1 * 2 » de donde i+di-5, t(B.A)=0+2+ (I4i+142+i+4i-5= WBA) =2+i(14i) +i+1+244i-5 (B.A) =-1 + 61 = tr(A.B) La propiedad 3 tiene un enunciado equivalente, a saber: Para A.B € KY, t(A.B - B.A) =0 Matriz Inversa.- Dada una matriz A de orden n, se dice que A es inversible si existe una matriz B tal que AB =I y BA=I, B recibe el nombre de matriz inversa de A y se denota: B=A", Propiedades: Dadas A y B matrices inversibles de orden n, se cumplen las siguientes igualdades: PL) AAT=AYA=T PI) (ANY'=A Pa ------ ‘Gruro Epona Megabyte Seren Matrices y Arveglos PIR) SiAB=BA=1 ==> B= Pid) (ABY''= BIA? PIs) (A)" = (Ay Ejemplo: Demostrar la propiedad P14: (AB)! = BA Demostracién.- Por definicién de matriz inversa debemos probar que: a) (ABY(BIA") =1 b) (BHANIAB Enefecto: a) (AB)(B+A) =A(BBA —_ Propiedad asociativa =AA* =AAIST b) (BYAI(AB)=BYA‘A)B Propiedad asociativa BuOB =B" En consecuencia, de a) y b) se concluye que: (AB)!= BIAt Ejemplo: Demostrar que la inversa de una matriz, si existe, es tnica. Demostracién.- Supongamos que existen dos matrices B y C, tales que AASB y ASC, siendo BEC. Por definicién: AB =1=BA AC=I=CA De estas dos igualdades se deduce que: AB = AB-AC= ==> A(B-C) Dado que existe A", entonces Av#0 ==> B-C=0 ==> B=C Lo que contradice la hipstesis. En consecuencia, la inversa de una matriz es Gnica. (Gauro Eorowat Megabyte oe Ingenieria con Métodos Numéricosv Visualiza Aplicacién en Matlab Ejemplo >> B= [22 ~6 -26 17;-17 5 20 -13;-1 0 2 -1;4 -1 -5 3}; 2 6 26 17 7 5 20 -13, 1002 4 445 3 >>Y=inv(B) Nos devuelve como resultado: 1.0000 2.0000 3.0000 4.0000 2.0000 3.0000 1.0000 2.0000 1.0000 1.0000 1.0000 -1.0000 1.0000 = 0 ~—--2,0000 -6.0000 Determinante_De Una Matriz Determinante es un ntimero real o escala asociado a una matriz cuadrada A, que se denota por: IAI, det(A), D(A) Si n=2 el determinante se define como: an n| far Ana] D(A) FAyjdz -Agdye Ejemplo: Calcular el determinante de la matriz A “| 3 D(A)=|" 5) =4(2)-1(-3) =843= 742-10) in a (Gnuro Eprrowat Megabyte =3 el determinante se define como: DO) 2182s = Ay atys FAs, +A ydyy [ay @p a "Adds Aad) ~ Oy En forma grafica se tiene: mk 215 Ejemplo, Dada la matriz A=|-1 4 -4], Hatlar su determinante 3-3-2 Soluci6n: D(A) = (2)(4)(-2) + (1-403) + 1-315), ~ (BAYS) - (-3)-4)(2) - -DC2) D(A) =- 16-12 + 15-60-24-2=-91 Hemos visto que el calculo del determinante de una matriz de orden 3 se hace tun tanto laborioso y podemos pensar que la obtenci6n del determinante de una matriz de orden n ofrece ciertas dificultades; por lo que, es conveniente estudiar previaneute algunas propiedades del determinante. Propiedades: Propiedad 1. Si A es una matriz cuadrada que tiene una Ifnea (fila columna) compuesto exclusiva-mente de ceros, entonces el determinante de Ja matriz es cero. a (Gruro Eorronal Megabyte @) a, a Ejemplo: si A -[ 1 Ciencias Ingenieria con Méiodos Numéricos y Viualizall free 8,8) > D(A )= (a, XO) OV Propiedad 2, Dada una matriz cuadrada A, se tiene que :D(A) = D(A’). Aytie ay ay Ejemplo: Si ae hoe] ] ia By) dy 41a, af o Free ae a3, D(A) = D(A') Propiedad 3. Si dos filas o columnas de una matriz A son idénticas, entonces el determinante de la matriz es cero. Ejemplo: si A “i S fk D(A) = (a)(b) -(6)(@) = 0 Propiedad 4. Sean Ay B dos matrices de orden n, si B es la matriz que resulta de multiplicar una fila 0 columna de A por un escalar k, entonces: D(B) = kD(A) An a kay ay Ay Ap ayy ay D(B) = Ky ~ 29 = Ky ~ yy) = [i : ] :, D(B) = KD(A) Observacién.- Segtin esta propiedad, un factor comiin de todos los elementos de una fila 0 columna de una Matriz puede ser separado como factor del determinante. Propiedad 5. Si Bes la matriz que resulta de intercambiar dos filas o columnas de A entonces D(B) = -D(A), ‘Gauno Eprrowat Megabyte Deer ‘Matrices y Arreglos 8 Ay En efecto, si a] |pow- Aaa y a-[e 2] > De =aatn maa = lat —Ay,) Di) =-D(A) Propiedad 6. Si B es una matriz que se obtiene de A al trasladar una de sus lineas p lugares, entonces D(B) = (-1)"D(A) Propiedad 7. Si Bes lamatriz que resulta cuando un miiltiplo de una linea de A se le suma a otra linea, entonces D(B) = D(A) Ejemplo: si a-[i" =] y ne [te rie | a, 21 ao Ay Hayy 29 fee ee] Esta propiedad es muy itil para calcular determinantes de matrices de cualquier orden. 12 Ejemplo: Hallar el determinante de la matriz A=|4 5 6 7 8 9) Solucin: ! 2241) 122) hy D(A) =/4.5 S+11=14 5 54/4 511 bese 78a 781 (Gauro Eomronal Megabyte : -- Qi Tas Gan mer con es unoe n N th 141) fry fag =0+/4 441 1]=l4 4 if4i4 dd 77+1 y [77H Wit D(a) = 0 bs 25 38 Ejemplo: Hallar el determinante de la matrizA=|42 38 65 56 47 83 Solucién: La primera columna (C1) admite el factor 14, luego segiin la propiedad 4,se tiene |2 25 38 D(A) =14 3 38 65| 4.47 83 Haciendo uso de la propiedad 7 realizamos las siguientes operaciones con las columnas: -12C,+C, , -19C,+C,, luego -2C, +C, 2104 Jor 22 4-17) | 6-17 Calculando el determinante se obtiene: D(A) = 14(0+0+48-0-047) = 770 DEA) Regla de Sarrus Es un método préetico para evaluar determinantes de tercer orden, y consiste cen escribir las dos primeras columnas en el mismo orden a continuacién de la tercera columna. El determinante se calcula sumando todos los productos de las, componentes que estén en las flechas que apuntan hacia la derecha y resténdoles todos los productos de las componentes que estén en las flechas que apuntan hacia laizquierda. PMS cm eg) ay 90°4E Je 4 vay| 21 i Mag 6 G6, ba ha Qi Go J 6 oe ww D(A) = 8A ys + BraBasy # Ayr My ~ MysBoryy ~ By Ays@y ~ 8M, Ejemplo: Calcular el determinante de la Matriz 12 10 A=]23 9 as i ‘Soluci6n: Disponemos el D(A) como indica el esquema (*): 12:01 239 231 asu4s Deay=| 1)(BMA)+A)(ONAYHCLON2(S) ~ (1013)E4)-(1)(9S)-(2N2VLD) 3 + 72+ 100- 120-45 - 44 (A= Ejemplo: Calcular el determinante de la Matriz x oy oxty As| yo xty x xty xy Solucién: Disponemos el D(A) como indica el esquema (*): x oy my ow y DiAy=| y xty x y xty xty x oy xty x D(A) = xy(xty) + xyGety) + xy(xty) - (xt)? =P = y? D(A) = 3xy(xty) - [x3 + 3xy(xty) + y"] - +99) D(A) = -20 +?) a (Gauro Eomroniat Megabyte Calculo De Determinantes Por Menores Complementarios Menor de una componente.- Sea A es una matriz cuadrada de orden n, e! ‘menor del elemento a, se denota por M, ,y se define como el determinante de la submatriz (n-1)x(a-1) de A que se forma suprimiendo todos los elementos de la fila iy todos los elementos de la columna j E| niimero de menores que se pueden formar de una matriz de orden mxn es C,uC,* menores de orden k, y de las matrices cuadradas de orden n se pueden formar C,\C,* menores de orden k. C,* es el niimero de combinaciones de n objetos tomados de k en k, y se calcula en la formula: nl Cae, ki(n-B)I 21-3 Ejemplo: Consideremos la Matriz 47]! 1 2 545 Los menores que se forman a partir de la Matriz A son los siguientes: hah reat BAe a kg Cofactor de una componente.- El cofactor de una componente a,, denotado por ,, esta definido por: A, = (-1)"(M,) Es decir, el cofactor de la componente a, es el menor M, prefabricado (-1)*. yy con el signo Ere toro Megabyte ) jemplo: Consideremos la matriz.A de tercer orden: Los menores y cofatores correspondientes a las componentes de la primera fila son, respectivamente: ! Ma) }. An I. 1 Ma 3 My=h Como se puede observar, los signos de cada cofactor se determinan de la siguiente manera: +-4 -+ +-4 Luego: D(A) = a,,D(A,,) - a,D(A,) + a,D(A,) Esto nos Hleva a concluir que el determinante de la matriz A es el producto interno de los vectores: (28 p8%).CD"D(A,)CL"DAACD" DAD] ‘Donde los elementos del primer vector, son los elementos de la primera colusnnia de A y los elementos del segundo vector son los cofactores de los elementos correspondientes a la primera columna de A. Es evidente que este resultado es cierto para cualquier fila o columna de A. Podemos afirmar entonces que, el determinante de una matriz 3x3 se puede obtener de 6 maneras diferentes, al tomar las componentes de cualquier fila 0 columns de la matriz. y multiplicar cada una de estas componentes por su cofactor y sumando los resultados. ol Ejemplo: Calcular el determinante D(A) = Bo4 7 Soluci6n: Aplicando la expansi6n por la primera columna, para, wine pane Ib! fd? 9 47 14 7°13 4 = 2(21-4) - (-7-20) + 3(-1-15) = 13, Aplicacién en Matlab. Ejemplo >rA=[3 -1025-1-234;7440;1005) >> D=det(A) Nos devuelve como resultado: - 401 Transformaciones Elementales En Matrices Sea Ae Km una matriz.cuyas filas son F,, F,.., F,y cuyas columnas son C,, C,. Se lama transformacién elemental filaa tres tipos de operaciones que denotaremos por F,, F(A) y F} Ov: F,A _: Intercambio de dos filas de A. F(Q)A _ : Multiplicacién de la fila F, de A por un escalar 10. FJQ)A _ : Multiplicacién de la fila j de A por un escalar Ay sumarlo la fila F, 110 2 Bjemplo: Dada lamatriz A=), q 4 _4| setiene: k= (Gauro EoTowat Megabyte Matrices y Arreglos_| (1). Intercambio de la primera y segunda fila: 30-4 -1 Fyo|l 1-4 -1 2513 (2) Multiplicando por-2 la segunda fila: 1 1 0 2 1102 B(-2)=|-2G) -20) -2-4) -2-)|=/-6 0 8 2 2 5 1 3 2513 (3) Multiplicando por 2 la segunda fila y luego sumando la primera fila: (2@)+1 20)+1 2(4)+0 2-D+ FQ) 3 0 -4 1 z 5 1 3 71-8 0 F()=3 0 -4 - 25 1 3 Matriz escalonada.- Una matriz Ae K™ se denomina escalonada si es de Ja forma: [ labed x] O0lef ny 00001... Z Doves coe W 00 Un Mediante una serie de transformaciones elementales sobre sus filas, cualquier matriz A. puede ser reducida a su forma escalonade. me (Gnuro Eoromat Megabyte Ejemplo: A continuacién se presenta modelos de matrices escalonadas. 01412 122 122 1002 100 01-2 O1-1 0103{fo10| joooce BUM y 91) Boo oo1-2}{0 01 ooo000 00-3 000 1512] [120] foo-130 En la primera iteraci6n, F,,, se intercambié la segunda fila por la primera con 0134) lo10 00120 el objeto de que aparezca el 1 en la nueva primera fila y que serviré para que, 9015} 000} joo 001 cn las sucesivas iteraciones, aparezcan ceros debajo del 1. Asi, en la segunda iteracién, F(-2), se multiplicé la primera fila por -2 y luego se suma la segunda fila. En la cuarta iteracién, F,*(-2), ya tenemos tres ceros debajo del I de la primera fila y aparece en la segunda fila (0,1,-1) el elemento 1 Matrices Equivalentes.~ Dos matrices A y B se denominan equivalentes, “ J Bs que servird de nuevo pivote para transformar en ceros los elementos que estiin si una de ellas se deduce de Ia otta mediante una sucesién finita de debajo de él, La quinta y sexta iteraci6n muestran este proceso. En la séptima transformaciones elementales de fila o columna, iteracién se multiplicé por 1/7 la tercera fila para obtener (0,0,1). Finalmente, El siguiente ejemplo nos muestra que toda matriz de orden mxn puede ser mediante esta fila pivote y la octava iteracién se logra ceros en la ltima fila. reducida mediante transformaciones elementals de fila o columna, ana matriz, En este ejemplo se ha logrado una forma escalonada, sin embargo, la matriz Sa fora escalonadia equivalente B obtenida, de este modo, noes tnica, toda vez que es posible efectuar Ejemplo: Reducir a la forma escalonada por filas la mattiz operaciones elementales columna y obtener otra forma escalonada. 253 . faa Célculo de determinantes mediante la reduccién a la “ly 4d forma escalonada aS? El célculo de determinantes de ciertas matrices se puede efectuar haciendo s s0 de la matriz escalonada, para lo cual se tiene en consideracién la siguiente Solucién: 122 122 122 proposicis a & acm. 2 |p ea] o ht Proposicién.- Si A es una matriz triangular (superior o inferior) de orden n, 341 341 0-2-5 | entonces el D(A) es igual al producto de las componentes que pertenecen ala 232 232. 232 ; diagonal principal, es decir, si: 122 122 122 © an ay ta oi oll 01-2 A]0 0 ay ua, Hea Fo oe a Ba NM o.2-5 o.2-5 200.7 0-1-2 00-3 00-3 00 0 Entonces D(A) = ayy@22-- La idea basica de este método consiste en aplicar operaciones elementales en Tas filas de la matriz original A y transformarla en una matriz B que tenga la forma escalonada. Puesto que la forma escalonada de una matriz cuadrada es triangular superior 0 inferior, el D(A),= D(B) se puede calcular aplicando la propiedad establecida anteriormente. 1 2 | D(A) = (1/36) 2 | eeon 2 24 1 1 coco, 1 Intercambiando la 2da. y 3ra. fila se tiene: fie ae ora 2 1212 11n DIA)=(1B6X-D] g_ 9 SER “12 V2 0.12 jemplo: Calcular el de | os. 4 Bjemplo: Caleularel determinante D(A)=|"97 12 1/9 } te Dia) = 418 |) RRA Solucién: Factorizando 1/2 de la Ira. y 2da. fila y 1/3 de la 3ra. y ta, fila, 0 0-2-5 setiene: 1121 1121 AS DA) = (186) -1101 0 0-2-2 DIA) = (212) (BNIB) | 1 g a 1310 El determinante de la matriz A tiene la forma escalonada, luego segin la Proposicién D(A) = (1/36)(1)(1)(-2)-3) = 1/6 Ejemplo: Caleutar el determinante: Intercambiando la tra. y 4ta. columna se tiene: 12360 112 ‘| 7 2G 2n| apt 1 0-1 D(A)=|0 0 3 + Qn D(A) = (1/36)(-1 BCR (A) = (1/36)(-1) o11 2/224 o311 | io 0 Oo a Gaano Boronat Megabyte ) (Gero Boron Megabyte ce @ aie ON Solucién: Tomando la primera fila como linea pivote, sumamos ésta a todas las demés filas, y obtenemos: 12 3 n 02 6 2n! D(A)=|0 0 3 ++ 2a Es el determinante de una matriz triangular, por tanto: D(A) = 1,2,3...n =n! xaa..al acetal Ejemplo: Calcular D(A)=|a x... a x Solucién: Sumando a la Ira. Columna las otras n-1 columnas resulta: x#+(n-l)aaa..a laawa xt(n-laxa.a Ixa.a D(A)=|x+(n-l)a ax... al=[x+(n-Da]l a x.a xt(n-laaa..x laa.x an a “a0. 0 0 D(A) = [x+(@-Da] | | © D(A)=[x+ (a-Dakx-ay™ Rango de una Matriz.- El rango de una matriz es igual al nimero de filas no rnulas que quedan en la Gltima iteracién de las sucesivas transformaciones, elementales que se hacen con la matriz Se deduce que para hallar el rango de una matriz ¢s suficiente transformarla a su forma escalonada. Como dos matrices equivalentes tienen el mismo rango, el, rango de dicha matriz seré igual al rango de la matriz escalonada, Si designamos por r el mémeto de filas no nulas de la matriz escalonada, centonces el rango de la matriz se denota P(A) = Ejemplo: Hallar el rango de la matriz. A 02-4 14-5 Aaa 17 01-2 230 Solucién: Realizando sucesivamente las _ transformaciones elementalesTendremos : 02-4 14 -5 1 4-3 Restando la Ira. fila todas las demas filas, obtenemos: 04-5 0 2-4 0 2-4 A:K,|3 1 7] F(-3)0-11 22) F(-2 0-11 22 01-2 0 1-2 0 1-2 230 230 0-5 10 Tees ‘Gauro Bonouas Megabyte ) (GaroEoromn Megabyte i Metab 7 aa Cini ngri 143 ie 14-3 oct 01-2 ae Ruajo-11-22) BAD }00 6} pero 0 ol-B 01-2] B55) Jo 1-2 00 0 0-5 10] 00 0 o00 La ltima matriz escalonada B tiene 2 filas no nulas, luego p(B) = p(A)=2 Aplicacién en Matlab Ejemplo >>C=(0 2-41 4 -5;3.17:0 11-2323 0] >> Z=rank(C) Nos devuelve como resultado: 2 Matrices Elementales Una matriz que resulta de aplicar una transformacién elemental de fila 0 columna a la matriz identidad I, recibe el nombre de matriz elemental. Los simbolos que se emplean para una transformacién elemental de fila o columna que origina una matriz identidad se muestran en el siguiente ejemplo. Ejemplo: Dada la matriz I, 100 01 OF tas matrices clementales que oot 0 | SOBSERE Grane Eon Megabyte - __Matrices y Arreglos_| se pueden obtener, entre otras, son: Ex=|1 9 ©} tntercambio de ta primera y segunda fila. oot 100 010 00a E,(a) = Multiplicacion de la tercera fila de la matriz. identidad por a. 100 E3(a)=|01a 001 ‘Multiplicacién de la tercera fila por ay sumado a la segunda fila Se establece la posibilidad de ejecutar, de manera indirecta, una transformacién elemental en las filas de una matriz de mxn si, primero, se ejecuta la misma operacién en las filas de la matriz.identidad I, y, después, se premultiplica la matriz A (se multiplica a la izquierda de A) por la matriz, elemental resultante. Una ilustracién del enunciado anterior es el siguiente ejemplo. 142 Ejemplo: Sealamatriz 4=|3 1 3 2 0-1 Si la primera fila de A se suma dos veces a la tercera fila, se obtiene la mati 1-12 FiQ)4=B=|3 1 3 4-23, Ol (Gauro Bowron Megaby jatlab 7 Para Ciencias eI @) Al efectuar la misma operacién en las correspondientes filas de la matriz identidad I, la matriz elemental resultante es: con Métodas Numéricosy Visual Bes la matriz escalonada equivalente por filas a A 100 Las matrices elementales, obtenidas de I, para las operaciones con filas son, FQ)=|010 201 respectivamente: O10 100 Ey =[1 0 ofE,(-1 =| 01 ooo}, "(-2) 001 -101 Por tanto: Ahora bien, las operaciones para encontrar B por medio de estas matrices 10 OPI-12] fi-12 celementales son: E7@)4=[010/313 [=|313 010) (01 a) par 201)20-1| [4-23 E,A=F,=|100 fs ‘ | Ejemplo: Hallar una matriz escalonada equivalente por filas a la ooyuripure 10 ofi- gq pir ae or ofor 2h}o1 2| MDF, = FC Mere eh G BAF, = FY = {Oh oor pera ptt 1 0 opr-t tf-tn ; Pern inp a Ls Solucién: Las operaciones elementales con filas que deben efectuarse } ale a ailee a Son: (i)tntercambiar Ia primera y segunda file De donde: 23(-2).B13¢1).E12.A 11 ‘Como resulta laborioso escribir el producto de matrices correspondientes a Afor2 cada operacién de fila, es conveniente utilizar una notaciGn abreviada empleando rit tuna flecha, sobre la cual se indica la matriz elemertal adecuada, en base a Ia cual, las operaciones se representarian como sigue: (2).Restar la primera fila de la tercera, 012 1-11 Iat 5 iit lee = f1 11] Fe,fo1 2] FeGMo 1 2] FAN 12 enor 2 as at es rit lid 020 aoe (3).Multplicar la segunda fila por -2 y sumar la tercera fila. ; Matrices especiales en Matlab 3, 1-11 eye (m ) : Genera una matriz identidad de orden m x m Fi(-2)0 1 2 a oes jjemplo >> Az eye (3) eee Gero Eorronas Megabyte ) Megabyte (Gnuro Eorrowat Megabyte @ em Nos devuelve como resultado 100 010 oo1 zeros (m,n): Genera una matriz nula de orden m xn Ejemplo >> B= zeros (3,2) Nos devuelve como resultado 00 00 00 ones (m,n) : Genera una matriz de unos de orden m x n Ejemplo >> A= ones (2,3) Nos devuelve como resultado i 1 4) rit 'magic(n) : Genera una matriz cuya suma de los elementos de sus filas, columnas y diagonales da como resultado un mismo valor. Ejemplo >> A= magic(3) Nos devuelve como resultado: eis 35 7 49 2 Ejemplo >> B= magic(4) Nos devuelve como resultado: 6 2 3 2B 5 1 1 8 9762 aol 1s feanraa Matrices y Arreglos Funciones en Matrices diag(A).- Devuelve los elementos de la diagonal de una matriz cuadrada. Ejemplo >PA=[1-3 0;3-2-6;10 2 5] i235 0 32 46 w 2 5 Nos devuelve como resultado: 1 2 5 sum(A).~- Devuelve la suma obtenida en cada una de las columnas de la matrizA. Ejemplo >>AZ=[L-3 0;3-2-6; 10 2 5] Nos devuelve como resultado: 43 4 jemplo >> B=-4:2:14; 4202468 0 1214 >> sum(B(3:2:9)), efectia la suma de los elementos de la matrizB, posicionados en la tercera, quinta, séptima y la novena ubicacién. Nos devuelve como resultado: 24 rand(n).- Genera una matriz de orden nxn en forma aleatoria, donde sus cuyos elementos son uniformemente distribuidos en el intervalo (0,1). Ejemplo >> X=rand(2) ES (Gruro Eoronat Megab a Nos devuelve como resultado: 0.4447 0.7919 0.6154 0.9218 Ejemplo >> Y=rand(3) Nos devuelve como resultado: 0.3529 0.1389 0.6038, 0.8132 0.2028 0.2722 0.0099 0.1987 0.1988 rref(A).- Devuelve en forma candnica la matriz A. Ejemplo >> A=[1-30;3-2-6] Nos devuelve como resultado: 1.0000 0 © 1.0000 Ejemplo >>A=[1-3;-26] Nos devuelve como resultado: 13 oo find(A).- Devuelve los indices de los elementos de la matriz A que no son cero, enumerandolos en forma vertical. Ejemplo >> A=[12 31 0;13 0-16] | 2 31 0 BO 6 Nos devuelve como resultado: 1 2 3 6 GnuroEoonat Megabyte norm(¥, p)~ Calcula la norma de un vector v . Shr Donde p> 1, los valores comunes son 1,2, «. p=1, calcula la suma de los valores absolutos de todos sus elementos. p=2, corresponde a la norma Euclidiana, Matlab lo considera por defecto. p=«,calcula el maximo valor absoluto de sus elementos. Ejemplo >>A=[201-4] >> norm(A,1) Nos devuelve como resultado: 7 >> norm(A,2) Nos devuelve como resultado: 4.5826 >> norm(A,inf) Nos devuelve como resultado: 4 norm(A, p).- Calcula la norma de una matriz A. 1A, = mpl PL Ejemplo >>A=[20;1-4] >>norm(A,1) Nos devuelve como resultado: 4 >> nomm(A,2) Nos devuelve como resultado: 4.1594 (Gnuno Eorronat Megabyte Oa >> norm(A,inf) Nos devuelve como resultado: 5 ceross(u, v).- Calcula el producto vectorial entre dos vectores u y v de R’. Ejemplo peus(2-51] pav=(31-4] >> cross(u, ¥) Nos devuelve como resultado: 9 ou 17 eig(A).-Calcula los valores y vectores propios de la matriz A. Ejemplo >>A=[12534] >> [V, D] =eig(A) Nos devuelve como resultado: v= 0.8246 -0.4160 0.5658 0.9094 03723, o 0 53723 Donde V es una matriz que contiene a los vectores propios ordenados en columnas y D es una matriz diagonal que contiene los valores propios. Iength(u)-- Calcula la dimensién del vector u. Ejemplo >>us[13 -5 1] >> length(u) Nos devuelve como resultado: 3 98 eee (Gruro Eonouat Megabyte deem rr (@} size(A).- Calcula la dimensién de la matriz A. Fjemplo >>A=[4135-521] >> size(A) Nos devuelve como resultado: 2 4 Ejemplo 351;0515;8] >> size(A) Nos devuelve como resultado: 54 Grafica de una Matriz Una representacién grafica de la matriz b se puede realizar con la orden plot. Ejemplo >>b=B 4 5 6 8 6 5 6 7 >> plot(o) >> gridon os ‘ f- 2s i MY a (Gnuro Eprowat Megabyte s 99 Concatenacién de Matrices La concatenacién de matrices es un proceso para generar una matriz. nueva uniendo una 0 més matrices con el operador [ (corchetes). La expresién C=[A , B] concatena horizontalmente las matrices A y B. La expresi6n C = [A ; B ] concatena verticalmente las matrices A y B. Ejemplo: Dadas las matrices Ay B >> A=[13-5;217] >>B=(39;01] >> C=[A,B] Nos devuelve como resultado: 13.5 3 9 21701 Ejemplo: Dadas las matrices A y B >> A=[6-15,01 12] >>B=[32236 | 7;52-8] >> C=[A;B] Nos devuelve como resultado: 64 65 o1n 3922 617 52 4 Es posible construir matrices y arreglos multidimensionales, usando una coneatenacién larga, siempre y cuando la matriz resultante no tenga una forma irregular. Si se desea concatenar horizontalmente, entonces cada matriz componente debe teuer el mismo niimero de filas, si por el contrario la concatenacién es vertical, cada matriz componente debe tener el mismo niimero de columnas. El siguiente diagrama muestra dos matrices del mismo nimero de filas que se ‘concatenan horizontalmente para formar una matriz nueva, i) 7 ‘Gauro EorroRat Megaby Bye Taya 3 [25] [46 [4 te tt aa ara era [ae 44 |e : ae 3 psi 1-9 Ts ass SB] El siguiente diagrama ilustra un intento para combinar dos matrices horizontalmente de altura desigual, Matlab no permite esto. [3 [23] 4] 4 [ty 7 aaa ieee a1 | 11/44] 62 [31 | 98 + [4a [ 62/31 | 98] * a oo Funciones de concatenacién de matrices Una alternativa al usa r el operador [ ] (corchetes) para la concatenacién son tres funciones, cat, horzcat, y verteat. Estas funciones permiten construir matrices (0 arreglos multidimensionales) alo largo de una dimensiGn especificada. cat. Concatena a lo largo de la dimensién especificada Ejemplo >> A= [81653575492] >> B= (413 16011) >> C=cat(I, A, B) Nos devuelve como resultado: 8 1 6 3.57 49 2 413 1 6 on vyerteat.- Concatena matrices verticalmente. Ejemplo >> A= [81633575492] >> B= [41316011] >> C= vertcat(A, B) 101 (Grune Forronat Megabyte (> tas cn cn i ay >> B=[413 156011] >> C= verca(A,B) Nos devuelve como resultado: 8 1 6 305 7 492 41301 (hl horzeat.- Concatena matrices horizontalmente. Ejemplo >>A=[816;357] >>B=[41321;6 7011] >> C= horzcat(A, B) Nos devuelve como resultado: 816413 21 3576700 Tepmat ~ Crea una matriz. de copias de una mattiz existente, Tepmat (A, n,m), reproduce la matriz de entrada A, n veces verticalmente\ ym veces horizontalmente. Ejemplo: >>A=[816;357;492] Tra (GY 492492492492 bikdiag.- Crea una matriz diagonal de bloques, en el orden que se ubican las matrices, los demas elementos de la matriz recién creada son ceros. Ejemplo >> A=magic (3); >>B=[-5 6-95-4 4-2}; >> C= eye(2); >> D=bikdiag (A, B, C) ‘Nos devuelve como resultado: D= 81600000 35700000 49200000 000569 00 00044200 00000010 00000001 Operadores légicos de Matrices MATLAB offece tres tipos de operadores légicos, os cuales se presentan en la siguiente tabla. >> B= repmat (A, 2,4) om Nos devuelve como resultado: eee . A=[01101]; 816816816816 B=[11001} 357357357357 a0] 24a o) eget 816816816816 357357357357 = Guano Boron Megabyte ) (GeroEonom Megabyte @ eee N Operador | Descripcién Ejemplo Davuele el valor de en Gada poston, donde ‘| 2s-elementos de ambas matrices no son ceres, Opara los otros casos. " [AB = o1001 T | Dewiete el valor de en cada poaieién, donde los elementos por lo menos de una matrz no es ula, y 0 para los otros casos. ee si1i01 ~ | Complementa cada elemento de lamatiz da | ~A= 10010 entrada. 1a ioe ara eT Eames ameca ae PRET em anse OBJETIVO: + Conocer los elementos bisicos de} | Programacidn an Matlab programacién en matlab. CONTENIDO: 1 Estructuras de control de flujo. \ Sentencia for, switch y continue. Creacidn de archivos m. + Definicidn de funciones, \ Funciones Privatas. \ Subfunciones. \ Creacidn de referencias, a GeuPro EDITORIAL Programacién en Matlab Programacién En Matlab Estructuras de control de flujo ‘Matlab es un lenguaje de programacion que dispone de sentencias para realizar bifurcaciones y bucles. Las bifurcaciones.- Permiten realizar una u otra operacién segiin se cumpla ono .una determinada condicién, a continuacién veremos las tres posibles formas de bifurcacién. ‘etna ower | [toe (Guyro Enron Megabyte Sentencia if En su forma mas simple, la sentencia if se escribe en la forma siguiente: ifcondicién sentencias end Obsérvese que a diferencia de C/C++/Java, la condicién no va entre paréntesis, aunque se pueden poner si se desea. " Ejemplo. >> If rem(x2)= 0 {printf(‘ el ndimero es par *); else {printf(* el niimero es impar’ ); end Observaci - rem(x,2): representa el residuo de dividir x entre 2 Bifurcacién miltiple En la bifureacién miiltiple pueden concatenarse tantas condiciones if como se dese, de tal manera que se ejecutaré el bloque que pertenece a la condicién que es verdadera a continuacién se presenta su sintaxis: if condiciont bloguel elseif condicion2 bloque2 elseif condicion3 bloque3 eae 8 opeién por defecto para cuando no se cunpl : cuando no se cunplan tas condiciones 1,2,3 me bloqued end 1) we ‘Gruroonowat Megabyte (eer ~ Programacién en Matlab € Laopcién por defecto else puede ser omitida; si noesti presenténo se realiza operacion alguna en caso de que no se curnpla ninguna de las condiciones que se han planteado. Observaci6n.- La condici6n del if puede ser una condicién matricial, del tipoA==B, donde A y B son matrices de! mismo tamafo, Para que se considere que la condicién se cumple, es necesario que sean iguales dos a dos todos los elementos de las matrices A y B (aij = bij, 1 $15 m,1Sj Sm). Es suficiente que existan dos elementos aij bij diferentes para que las matrices yamno sean iguales, y por tanto las sentencias del if no se ejecuten. Andlogamente, una condicién en la forma A ~= Bexige que los elementos de A y B sean diferentes dos a dos (aij ~= bij, 1 > while x <=10 suma = suma +x; xexthy end >> disp (‘La suma es :*); >> disp ( sua}; Sentencia for La sentencia for repite un conjunto de sentencias un nimero predeterminado de veces. La sentencia for de Matlab es muy diferente y no tiene la generalidad de la sentencia for de C/C+-+/Java. La siguiente estructura de control ejecuta sentencias con valores de i de 1 an, variando de uno en uno. for i = Lin sentencias end El ejemplo siguiente ejecuta sentencias con valores de x de 1 hasta 9, incrementandose de dos en dos. Ejemplo ve for x=1:52:9 yexe2- 4 disp( [x.y] 07 ena Nos devuelve como resultado: 10 as 5 24 7 48 9 80 Observacién.- Si el incremento no se especifica Matlab asigna por defecto el incremento que es igual a 1 En el siguiente ejemplo se presenta el caso més general para la variable del bucle for i= (valor_inicial: incremento: valor_final); el bucle se ejecuta por primera vez con i=n, y luego i se va reduciendo de 0.2 en 0.2 hasta que llega a ser menor que 1, en cuyo caso el bucle se termina: ‘Gruro Boron Megabyte ) ttt (Gano Mepaiye for i = n'y 0.23 1 Sentencias end Bucles anidados Se presenta en el caso que un bucle forme parte de las sentencias de otro bucle, en Ia siguiente sintaxis la variable j es la que varia mas rapidamente, por cada valor de i,j toma todos sus posibles valores. . for izl:m sentencias1 for j=1: sentencias2 end end polernins a se introducen los bucles interactivamente en la linea los, los bucles for se ejecutan s6lo después de i ntenci teers P introducir la sentencia Sentencia break La sentencia break hace que se termine Ia ejecuci 2 ine la ejecucién del bucle for y/o wl ‘ms intemo de los que comprenden a dicha sentencia, vowns El siguiente ejemplo termina la ejecucién del for intemo, cada ve v de m es mayor que 2 veces el valor de k. Saauestvaor Ejemplo: >> for k=: for m= 1:7 if m> 2% break else disp (Tk ym] ) end end end ---.-- ‘Gauro Eprrowat Megabyte rama GY Nos devuelve como resultado: Runes Observacién.- k y m poseen incremento automitico de la unidad. Sentencia switch La sentencia switch realiza una funcién andloga a un conjunto de if..elseif ‘concatenados, su forma general es la siguiente: switch switch_expresion case case_exprl, ploquel case (case_expr2, case_expr3, case_expr4,. bloque2 otherwise, % opcién por defecto bloque3 end ‘Al principio se evalia la switch_expresion, cuyo resultado debe ser un nimero escalar 0 una cadena de caracteres. Este resultado se compara con los case_exPr, yy se ejecuta el bloque de sentencias que corresponda con ese resultado, si ninguno es igual a switch_expresion se ejecutan las sentencias correspondientes a otherwise. Segtin puede verse en el ejemplo anterior, es posible agrupar varias condiciones dentro de unas llaves, constituyendo lo que se llamaun vector de celdas, basta la igualdad con cualquier elemento del cell array para que se ejecute ese bloque de sentencias. A difercucia de C/C++4/Javal4, cn Matleb s6lo se ejecuta uno de los bloques relacionado con un case. (GruroEoroniat Megabyte 7+ Sentencia continue Lasentencia continue hace que se pase inmediatamente ala siguiente iteracién del bucle for o while, saltando todas las sentencias que hay entre el continue y el fin del bucle en la iteracién actual. Sentencias try...catch..end Laconstruccién try..catch...end, permite gestionar los errores que se pueden roducir en tiempo de ejecucién. Su forma es la siguiente: try sentencias1 catch sentencias2 end Enel caso de que durante la ejecucién del bloque sentencias| se produzca un error, el control de la ejecucién se transfiere al bloque sentencias2. Sila ejecucién transcurriera normalmente, sentencias? no se ejecutaria, Matlab dispone de una funci6n lasterr que devuelve una cadena de caracteres con el mensaje correspondiente al tiltimo error que se ha producido. En la forma lasterr( * * ), one a cero este contador de errores, y hace que la funcién lasterr devuelva ta ‘matriz vacia [] hasta que se produzca un nuevo error. Recomendaciones generales de programacién Las funciones vectoriales de Matlab son mucho més répidas que sus Contrapartidas escalares, en la medida de lo posible es mejor realizarlos con vectores y matrices, y no con variables escalares dentro de bucles. nque los vectores y matrices pueden ir creciendo a medida que se necesita, es mucho més répido reservarles toda Ia memoria necesaria al comienzo del Programa, se puede utilizar para ello la funcién zeros, Es importante utilizar el profile para conocer en qué sentencias de cada funcién se gasta la mayor parte del tiempo de céleulo. De esta forma se descubren “cuellos de botella” y se pueden desarrollar aplicaciones mucho més eficientes. Conviene desarrollar los programas incrementalmente, comprobando cada funcién o componente que se afiade; de esta forma siempre se construye sobre algo que ya ha sido comprobado y que funciona: si aparece algiin error, lo mas 114 ‘Gauro Eorowat Megabyte aman iltimo que se ha affadido, y de esta manera la able es que se deba a lo tiltimo que se ha : , an de errores esté acotada y es mucho més sencilla, Recuérdese que de aiario el tiempo de correccién de errores en un programa puede ser 4 6 5 Neces superior al tiempo de programacién E] debugger es una herramienta muy itil a la hora de acortar ese tiempo de i de decirse que pensar bien las wuesta @ punto, en este mismo sentido, pue cosas al programa (sobre una hoja de papel en blanco, mejor que sobre a pantalla del PC) siempre es rentable, porque se disminuye més que proporcionalmente el tiempo de depuracién y eliminacién de errores. tro objetivo de la programacién debe ser mantener el cédigo lo més sencillo y ordenado posible. Al pensar en c6mo hacer un programa o en cémo realizar determinada tarea es conveniente pensar siempre primero en la solucién més sencilla, y luego plantearse otras cuestiones como la eficiencia, Finalmente, el eédigo debe ser escrito de una manera clara y ordenada, introduciendo comentarios, utilizando lineas en blanco para separar las distintas partes del programa, sangrando las lineas para ver claramente el rango de las bifurcaciones y bucles, utilizando nombres de variables que recuerden al significado de la magnitud fisica comespondientes, etc. Creacién de un Archivo m La ejecucién de comandos en la ventana de comandos solo es apropiada si se desea explorar un nimero pequedo de ideas en forma interactiva donde no se tenga que coreg. Sin embargo en fos casos en que los comandos ocupan mis de unas cuantas lineas es més conveniente escribir un archivo m de guién o de fancién dado que estos pueden corregirse tantas veces como sea necesario. Los archivos con extensién (.m) son archivos de texto sin formato (archivos 0 archivos ASCID que constituyen el centro de Ia programacién en Matlab, Existen dostips de archivos "sm losazcivos decomandos (lamas serps en inglés) ls fineiones Los primers conenen simplemente un conju de coman que ejecutansucesivamente cuando se digita el nombre de archivo en la ventana de comandos de Matlab o se incluye dicho nombre enotro archivo *.m. weet oe i 2 Matlab 7 Para Ciencia Ingenieria con Mitovios Noméricosy Vial Siun archivo de comandos se llama desde de la linea de comandos de Matlab, las variables que crea pertenecen al espacio de trabajo base de Matlab, y permanecen en él cuando se termina la ejecucién de dicho archivo. Las funciones permiten definir funciones enteramente andlogas@ las de Matlab, con su nombre, sus argumentos y sus valores de retorno. Los archivos *.an que definen funciones permiten extender las posibilidades de Matlab; de hecho existen bibliotecas de archivos *.m que se venden (toolkits) o se distribuyen gratuitamente (a través de Internet). Las funciones definidas en archivos *.m se caracterizan porque la primera linea (que no sea un comentario) comienza por Ia palabra function, seguida por los valores de retorno (entre corchetes [ ]y separados por comas, si hay més de uno), el signo igual (=) y el nombre de la funcién, seguido de los argumentos (entre paréntesis y separados por comas), Bl espacio de trabajo de una funcién es independiente del espacio de trabajo base y del espacio de trabajo de las dems funciones. Esto implica por ejemplo que no puede haber colisiones entre nombres de variables: ‘aungue varias funciones tengan una variable llamada A, en realidad se trata de variables ‘completamente dstintas (a no ser que A haya sido declarada como variable global). Para crear un archivo m seleccionar la opcién File , new y luego M file De tol Ue ty ose ene , en donde podra ingresar su cédigo Donde aparecerd una ventana de edi en forma de texto. Ba ={6) x! le Ede Text Cel Tools Debug Desktop Whiow Hep >| x ose go: S6/al J "B= 7 function [a,b] =prueba (a, =) 2! R 4 ara grabar hacer clic en Save As del meni File y grabar en la carpeta work, directorio por defecto de Matlab. Enunciados de comentario: Los comentarios en todo programa para no ser considerados como célculos debe ir precedido del signo %. Funcién que devuelve una sola variable La funeién a evaluar es F(x) =2 x? +8 donde x esun escalar, para considerar (evaluat) a x como un vector o una matriz los operadores aritméticos deben ser de arreglos (.*, ./, .") Ejemplo (Guuro Enron Megabyte + EERE Lol x) el Tools Debug Desktop Window Help ~ | # x 2 function [y)=cubiea(x) 2- y2eK 948; Una vez guardado el archivo de funcién como cubica. m se puede utilizar desde la ventana de comandos o en otro archivo m como: >> cubical 3) evalia la funcién para x=3 , y nos da como resultado y = 6 2. Funcién que devuelve miltiples variables Ejemplo: ERIE Lola Fle Edt Text Coll Tools htop ‘Eunction [M,5] media d(x) nslengen (x); mesum (x) / Smeqet ( (sum (x.°2/n)-H"2)) i Programacién en Matlab Para lamar a la funcién se utiliza el nombre con el que fue guardado, en este ‘aso se debe grabar como media_ds.m, para lo cual definimos el arreglo x en la ventana de comandos. oo x=[123456] >> media_ds(x) Nos devuelve como resultado: M=35 y S=1.7078 Ejemplo: Digitando un niimero como argumento en la funcién, el siguiente archivo devuelve como resultado la informacién si es positivo, negativo onulo. >> mumero(13) Nos devuelve como resultado: x es un nimero positivo. Zunction mumero (x) if 00 opeion=1; else opcion=2; ena witch opeion case 1 diap('x niimero pos:tavo'): case 2 ddep ("x niwero negativo'): otnervise disp('x ee mule); Archivos de comandos (Scripts) ‘Como ya se ha dicho, los archivos de comandos o scripts son archivos con un nombre tal como file1. m que contienen tna sucesién de comandos, anéloga a la (Gaon Mepis que se digitaria en el uso interactivo del programa, Dichos com: sucesivamente cuando se digita el nombre del archiv. extensién) en la ventana de comandos. Cuando se ejecuta desde la linea de comandos, las variables creadas por file] pertenecen al espacio de trabajo base de Matlab. Por el contrario, si se ejecuta desde ‘una funciGn, las variables que crea pertenecen al espacio de trabajo de la funcién, En los archivos de comandos conviene poner los puntos y coma (:) al final de cada sentencia, para evitar una salida de resultados demasiado extenso. {Las variables definidas por los archivos de comandos son variables del espacio de trabajo desde el que se ejecuta el archivo, esto es variables con el mismo caricter que las que se crean interactivamente en Matlab si el archivo se he ciecutado desde la linea de comandos, al terminar la ejecucién del script, dichas variables permanecen en memoria, iandos se ejecutan ‘0 que los contiene (sin la Definicién de funciones La primera linea de un archivo llamado name.m que define una funcién tiene Ta forma: function [lista de valores de retorno] = name(lista de argumentos) donde name es el nombre de la funcién, entre corchetes y separados por comas van los valores de retorno (siempre que haya mas de uno), y entre aréntesis también separados por comas los argumentos. Puede haber funciones sin valor de retorno y también sin argumentos. Recuérdese que los argumentos son los datos de la funcién y los valores de fetomo sus resultados. Sino hay valores de retomo se omiten los corchetes y cl Signo igual (~); si slo hay un valor de retomo no hace falta poner corchetes, y de igual manera no hace falta poner paréntesis si no hay argumentos Una diferencia importante con C/C++/Java es que en Matlab una funcién no puede modificar nunca los argumentos que recibe, de cara al entorno que ha realizado la llamada, Los resultados de una funcion de Matlab se obtienen siempre a través de los valores de retorno, que pueden ser miitiples y matriciales; tanto ¢lniimero de argumentos como el de valores de retomo no tienen que ser fijos, dependiendo de cémo el usuario llama a la funcién, Las variables definidas dentro de una funcién son variables locales, en el sentido de que son inaccesibles desde otras partes del programa y en el de que no (Guro Borrowat Megabyie ‘on variables del mismo nombre definidas en otras funciones o partes iar rama. Se puede decir que pertenecen al propio : Be cabo dein fucibay x0 500 vistas desde os espace no han sido pasadas como icin tenga acceso a variables que no Fae ae ane cesariodeclarardichas variables como variables lobaes, tanto roervyana principal como en ls distntas funciones que deben seederasy cae Recuenteulizarelconvenio de wsarpara las variables globales nom Jargos (més de 5 letras) y con mayésculas oo e una funcién de Mat razones de eficiencia, los argumentos que recive uns fu ’ re copian a variables locales si no son modifcados por dichafuncin (en Teninos de CIC se dira que se pasan por referencia). Esto tiene imporanes vegcuencias en terminos de efieiencia y ahorro de tiempo de eéleulo. Sin cetpago, si dentro dela funcién se realzan modifcaciones sobre los argumentos cane santos se sucan copias de dichos argumentas a variables locales ye Trodifican las eopias (diriase queen este caso los arguments se pasen por valor espacio de 6 deben ser calculados en algin de la funcién, los valores de retorno Jon (no hay snteneiaretur obligtoria, como en C/C+ava). De todas formas, no hace falta calcula siempre todos los posibls valores de tom dela funcién, sino s6lo los que el usuario espera obtener en la sentence lads Ia funcién, En cualquier funcién existen dos variables definidas de mado svtomitico, lamadasnarginynargout, que reresentanexpcivanet el nmero de argumentos y el nimero de valores de retorno con los que la funcién ha si llamada. Dentro de la funci6n estas variables pueden se ilizads emo el programador dese, jecucién de una funcién termina cuando se llega switima sentenca ejecutable. inde una funcién termina cuando se te sicoee ovr el queuna fini6nemnine de ejecuarese puede vlzarlasentencia ‘elu, que devuelve inmediatament el control al entome de lamada. Bs un concept dstinto del defuncionessobrecargadas fnciones dstas i stntos argumentos),uflizadas en See fneldnrecicserlamadaconmiso mene artmenosy vase retomo, También en C/C++ es posible tener un aimero variable de argumentos, aunque no de valores de retomo. Sentencia return Comiinmente las funciones devuelven el control después de que se ejecute la Ultima de sus sentencias. {La sentencia return, incluida dentro del cédigo de una funcién, hace que se devueiva inmediatamente el control al programa que realizé la llamada. Fun nes con niimero variable de argumentos Matlab dispone de una forma de pasar a una funcién un mimero variable de atgumentos por medio de la variable varargin, qe es un vector de celdas, que contiene tantos elementos como sean necesarios para poder recoger en dichos elementos todos los argumentos que se hayan pasado en Ia llamada. No es necesario que varargin sea el tinico argumento, pero si debe ser el iltimo de los ue haya, pues recoge todos los argumentos a partir de una determinada posicién, Recuérdese que a los elementos de un conjunto de celdas se accede utilizando Haves {}, en lugar de paréntesis (). De forma andloga, una funcién puede tener un niimero indeterminado de valores deretorno utilizando varargout, que es también un conjunto de celdas que agrupa {os itimos valores de retomo de la funcin. Puede haber otros valores de retoro, ero varargout debe ser el iltimo. El conjunto de celdas varargout se debe crear dentro de la funcién y hay que dar valor a sus elementos antes de salir de la funcin. Recuérdese también que las variables nargin y nargout indican el nimero de argumentos y de valores de retomo con que ha sido llamada la funcién, A continuacién se presenta un ejemplo sencillo, obsérvese el cédigo de la siguiente funcién atan3: satan3 (varargin) 1 rad = atan(varargin(1}); elseif nargi vad = atan?(varargin(1),varargin(2}) ; else disp( ‘Error: més de dos argumentos’) end varargout (1)=raq, if nargour>1 varargout (2}=rad"180/pi; end Eee) ‘s b dispone de dos funciones,lamadss aan y stn2, para calcula el reo aay ente tiene un determinado valor, El resultado de dichas fanciones i wan en radianes. La funcién alan recibe un tnico argumento, con lo cual exprsade CTevuclveestécomprendigo entre pid y *pi2 (entre -90" ¥. 90"), oct gor ejemplo un arco de 45° es indistinguble de otro de ~135, si sblo se Iu Penece I tangent “ional al seno del éngulo a funcién atan? recibe dos argumentos, uno proporcion Fe sar copeno, En este caso ya se pueden dstingu os dngulos en los cuatro yotro . cuadrantes, entre ~p y p (entre ~180° y 180°). Programacion en Matlab ‘La funcién atan3 definida anteriormente puede oe a O dos arguments: i Tama a atan y si recibe dos lama a stan2 (si fs cic de eror) Ademds,atan3 puede devolver uno o dos valores de retomo. ni . ; Por ejemplo, sil usuario la lama en la forma: >> a= atan3(1); Devuelve un valor de retomo que es el angulo en radianes, pero sise lama en Ja forma: >> [a, b] = atan3(1,-1); . Devuelve dos valores de retomo, uno con el angulo en radianes y otro e a jiza los vectores de celdas varargin jos. Obsérvese como la funcién atan3 utiliza 2 Perro asi como el nimero actual de argumentos nargin con los que ha sido amada. Help para funciones de usuario i 1eden tener su help, andlogo al que Las funciones creadas por el usuario pu ‘ a tienen las props funciones de Matla, las primers lineas de ae 2 cada archivo de funcin pemiten consi un hep sobre esa fancén palabras, cuando se teclea en Ia ventana de comandos de Matlat >> help mi_fune El programa responde escribiendo las primeras lineas del archivo mi_fune.m que comienzan por el cardcter (%), es decir, que soa comentarios. (@ stan Tras cei cegriza cm ota ne Nocioni ee Deestas lineas, tiene una importancia particular la primera linea de comentarios (llamada en ocasiones linea H1). En ella hay que intentar poner la informacion ms relevante sobre esa funcién, Larazén es que existe una funcién, llamada lookfor que busca una determinada palabra en cada primera linea de comentario de todas las funciones * m. Help de Directorios Matlab permite que los usuarios creen una ayuda general para todas las funciones que estén en un determinado directorio. Para ello se debe crear en dicho directorio un archivo llamado contents. m. A continuacién se muestra un archivo tipico contents.m correspondiente al directorio toolbox\ local de Matlab: % Preferences. % % Saved preferences files. % startup - User startup M-file. % finish - User finish M-file. % matlabre - Master startup M-file. % pathdef - Search path defaults. % docopt - Web browser defaults. % printopt - Printer defaults. % % Preference commands. ‘% cedit - Set command line editor keys. % terminal - Set graphics terminal type. % % Configuration information, ‘% hostid - MATLAB server host identification number. % license - License number. % version - MATLAB version number. Programacion en Matlab % Utilities, ‘% userpath - User environment path. ‘% Copyright 1984-2002 The MathWorks, Ine 4% $Revision: 1.14 § $Date: 2002/06/07 21:45:05 $ Compruébese que la informacién anterior es exactamente la que se imprime con el comando >> help local Si el archivo contents.m no existe, se listan las primeras lineas de comentarios (lineas H1) de todas las funciones que haya en ese directorio. Para que el Help de directorios funcione correctamente hace falta que ese directorio esté en el search path de Matlab o que sea el directorio actual. ‘Sub funciones Tradicionalmente Matlab obligaba a crear un archivo *.m diferente por cada funcién, El nombre de la funcién debia coincidir con el nombre del archivo. ‘A partir de la versién 5.0 se introdujeron las sub-funciones, que son funciones adicionales definidas en un mismo archivo *.m, con nombres diferentes del nombre del archivo (y del nombre de la funcién principal) y que las sub-funciones s6lo pueden ser lamadas por las funciones contenidas en ese archivo, resultando “invisibles” para otras funciones externas. ‘A continuacién se muestra un ejemplo contenido en un archivo Hamado rmi_fin.m: function y=mi_fun(a,b) ysubfunl (a,b); function x=subfunl(9,2) xesubfin2(y.2); function x=subfin2(y,2) (tee ra Ge tr cn Wc Nay Vo Funciones privadas Las funciones privadas (private) son funciones que no se pueden llamar desde ‘cualquier otra funcién, aunque se encuentren en el path o en el directorio actual. Solo ciertas funciones estén autorizadas a utilizarlas. Las funciones privadas se definen en sub-directorios que se llaman private ys6lo pueden ser Ilamadas por funciones definidas en el directorio padre del sub-directorio private. En Ia biisqueda de nombres que hace Matlab cuando encuentra un nombre en una expresién, las funciones privadas se buscan inmediatamente después de las, sub-funciones, y antes que las funciones de tipo geners Funciones *.P Las funciones *.p son funciones *.m pre-compiladas con la funcién peode. Por defecto el resultado del comando peode func.m es un archivo func.p en el directorio actual (el archivo fune.m puede estar en cualquier directorio del search path). El comando peode -inplace func.m crea el archivo fune-p en el mismo directorio donde encuentra el archivo func.m. Pueden pasarse varios archivos *.m al comando pcode de una sola vez. Los archivos *.p se ejecutan algo més rapidamente que los *.m y permiten ocultar 1 eddigo de los archivos ASCII correspondientes a las funciones *.m de Matlab. Variables persistentes Las variables persistentes son variables locales de las funciones (pertenecen al espacio de trabajo de la funcién y séto son visibles en dicho espacio de trabajo), que conservan su valor entre distintas Hamadas a la funcién. Por defecto, las variables locales de una funcién se crean y destruyen cada vez que se ejecuta la funcién. Las variables persistentes se pueden definir en funciones, pero no en archivos de comandos. Es habitual utilizar para ellas letras may(isculas. Las variables se declaran como persistentes utilizando la palabra persistent seguida de los nombres separados por blancos, como por ejemplo: >> persistent Velocidad Tiempo TT ‘Las variables persistent se inicializan a la matriz vacia (J y permanecen en memoria hasta que se hace clear de la funcién o cuando se modifica el archivo- M. Para evitar que un archivo-M se modifique se puede utilizar el comando lock file.m, que impide la modificacién del archivo, El comando munlock Gesbloquea el archivo mientras que la funcién mislozked permite saber si esta bloqueado o no. Variables globales Las variables globales son visibles en todas las funciones (y en el espacio de trabajo base o general) que las declaran como tales. Dichas variables de declaran precedidas por la palabra global y separadas por blancos, en la forma: global Variable! Variable2 Como ya se ha apuntado, estas variables slo son visibles en los espacios de trabajo de las funciones que las declaran como tales (y en el propio espacio de trabajo base, si también ahi han sido declaradas como globales). Ya se ha dicho también que se suele recurrir al criterio de utilizar nombres largos y con ‘maydisculas, para distinguirlas facilmente de las demés variables. Referencias de funcién (function handles) Las referencias de funcin (function handles) constitayen un nuevo mecanismo para referirse a un nombre de funcién, introducido en Matlab. En versiones anteriores la ‘inica forma de referirse a una funcién era por medio del nombre. ‘Téngase en cuenta que Matlab, al igual que otros lenguajes de programacién como C/C++ y Java, admite funciones sobrecargades (overloaded functions), esto es, funciones diferentes que tienen el mismo nombre pero se diferencian entre si por el niimero y tipo de los argumentos. Cuendo un programa llama a luna funcién sobrecargada, Matlab analiza los tipos de los argumentos incluidos, en[a llamada y llama a la funcién que mejor se adapta ¢ es0s tipos de argumentos. Las referencias de funcién permiten al programador un mayor control sobre la funcién que es efectivamente Hamada y tienen algunas otras ventajas. El principal uso de las referencias de funcién (como de los nombres de funcién en versiones anteriores) es el pasar a una funcidn el nombre de otra funcién, junto ‘Gear Foronnt Megabyte) jnuro Enrroniat Megabyte atl 7 Para Ciencias c Ingenieria con Mtodos Numériosy Visual con sus argumentos, para que la pueda ejecutar. A estas funciones que ejecutan, ‘otras funciones que s¢ les pasan como argumentos se les llama funciones de funcién, Por ejemplo, Matlab dispone de una funcién llamada quad que calcula la integral definida de una funcién entre unos limites dados. La funcién quad es genérica, esto se calcula, mediante métodos numéricos, integrales definidas de una amplia variedad de funciones, pero para que pueda calcular dicha integral hay que proporcionarle la funcién a integrar. Por ejemplo, para calcular la integral entre 0 yp de la funcién sen(x) se puede utilizar la sentenci >> area=quad(sin’,O,pi) Nos devuelve como resultado: area = 2.0000 La funcién quad ejecuta la funcién sin por medio de la funcién feval, que tiene la siguiente forma general: feval(funcname, argl, arg2, arg3, ..) Donde funcname es una cadena de caracteres con el nombre de la funcién a evaluar, y argl, arg2, arg3, .. son los argumentos que se le pasan a feval para ‘que se los pueda pasar a funcname. A partir de la versién 6.0 de Matlab ya no se pasa, a las funciones de funcién, el nombre de la funcién como en el ejemplo anterior, sino una referencia de funcién o function handle. De todas formas, para mantener la compatibilidad con los programas desarrollados en versiones anteriores, se sigue admitiendo que se pase a feval el nombre de la funcién, pero este mecanismo ya no se soportard en versiones posteriores. Creacién de referencias de funcién ‘Ya se ha camentaclo que las referencias de funcién son un nuevo tipo de datos de Matlab, Una referencia de funcién se puede crear de dos formas diferentes: 1. Mediante el operador @ (“at” 0 “arroba”) comme Programacién en Matlab La referencia a la funcién se crea precediendo el nombre de la funcién por el sador @. El resultado puede asignarse a una variable o pasarse como argumento a una funcién. Ejemplos: fh= @sin; area = quad(@sin, 0, pi); 2, Mediante la funcin str2fune La funcién str2fune recibe como argumento una cadena de caracteres ‘conteniendo el nombre de una funcién y devuelve como valor deretomo la referencia de funcin. Una de las ventajas de esta fimcién es que puede realizar la conversion de un vector de celdas con los nombres en un vector de referencias de funcién. jemplos: >> fh = str2fune(‘sin’); >> str2fune( {‘sin’,’c0s',"tan")) ans = @sin @cos @tan ‘Una caracteristica comtin ¢ importante de ambos métodos es que se aplican solamente al nombre de Ia funcién, y no al nombre de 1a funcién precedido o cualificado por su path, Ademés los nombres de funcién deben tener menos de 31 caracteres. Evaluacién de funciones mediante referencias La principal aplicaci6n de las referencias de funcién es pasar informacién de funciones a otras funciones para que aquéllas puedan ser ejecutadas por éstas. Para evaluar una referencia de funcién Matlab utiliza la funcién feval, que se Mama de la forma siguiente: [1,12 13, ..] = feval(th, angl, arg2, arg3, ..) Donde fh es una referencia de funci6n y rl, 12,13, ..¥ argl, arg2, arg3, ..son respectivamente los valores de retorno y los argumentos de la funcién cuya referencia es fh. (Gnuro Boronia Megabyte 7+ oo RE] &) Sobre la funcién feval hay que hacer dos observaciones: 1. La referencia de funcién th debe ser un escalar. En otras palabras, no es posible evaluar un array de referencias de funcién con una sola llamada a feval 2. La funcién th que se ejecuta en el momento de la llamada a feval depende de la situacion en el momento en que se creé la referencia de funcién, y no de la situacién en el momento de la llamada a feval Por ejemplo, si después de crear la referencia fh se cambia de directorio la funcién correspondiente, en el momento de la ejecucién no seré posible encontrarla; si después de crear fh se crea una nueva funcién con el mismo nombre, esta funcién no podré nunca ser ejecutada por medio de la referencia creada previamente. El siguiente ejemplo muestra cémo se puede ejecutar una sub-funcién desde otra funcién definida en un archivo *.m diferente. Recuérdese que, en principio, las sub-funciones sélo son accesibles desde otras funciones definidas en el mismo archivo *.m, Supéngase que se crea un archivo llamado pruebafh.m que contiene las siguientes lineas (se define una funcién principal pruebath que se llama como el archivo y una sub-funcién subf): % archivo pruebath.m function mith=pruebath mith=@subf; function A=subf(B, C) A=BIC; Obsérvese que la funcién principal pruebafh devuelve una referencia ala sub- funcién subf, En principio s6lo pruebath tiene acceso a subf y gracias a ese acceso puede crear la referencia mifh. Sin embargo, una vez que la referencia a subf ha sido ‘creada y devuelta como valor de retorno, cualquier funciOn con acceso a pruebafh podré también acceder a la sub-funcién subf. El siguiente programa principal, definido en un archivo pruebafhMain.m, puede acceder ala subfuncién gracias a lareferencia de funcién (si se intenta acceder directamente se obtiene un error). % archivo pruebafhMain.m ‘fh=pruebath ‘Aqrand(3); Beeye(3)*10; Cefeval(th,A,B) 4% D=subf{(A,B) % ERROR disp(‘Ya he terminado") Este ejemplo sencillo es bastante significativo respecto a los beneficios que se pueden obtener de las referencias de funcién. Informaci6n contenida por una referencia de funcién. Funciones sobrecargadas Una referencia de funcién puede contener informacién de varias funciones, en conereto de todas aquellas funciones que fueran “visibles” en el momento en el aque dicha referencia fue creada. Recuérdese que funciones visibles, ademas de fas Funciones intrinsecas de Matlab (built-in functions) son las funciones que estin definidas en el directorio actual y en los directorios definidos en el path de Matlab. La funcién functions permite obtener toda la informacién disponible de una referencia de funcién. Obsérvese la estructura salida del siguiente ejemplo (el ‘campo methods es a su vez una estructura que puede mostrarse por separado): >> info=functions(@deblank) function: ‘deblank” type: ‘overloaded’ file: ‘c:\matlab6pS\oolbox\matlabistrfun\deblank’ ‘methods: [1x1 struct] >> info.methods ans = cell: ‘:\matlab7\toolbox\matlab\strfun\@cell\deblank” En este caso concreto se ha considerado la funcién deblank, que permite climinar caracteres en blanco en cadenas de caracteres 0 en vectores de celdas con cadenas de caracteres. El valor de retomo de la funcién functions es una 130 Garo onan Megabyte) estructura con los cuatro campos siguientes: (Gauro Boronia: Megabyte function: Cadena de caracteres con el nombre de Ia funcién a la que corresponde la referencia. type: Cadena de caracteres con uno de los siguientes valores: ‘simple’, ‘subfunction’, ‘private’, ‘constructor’ y ‘overloaded’ file: Cadena de caracteres que contiene el nombre del archivo *.1m en el que esti definida la funcién o bien el texto “Matlab built-in function’. Methods: Estructura que contiene los paths de los archivos *. men los que estin definidas las funciones sobrecargadas que se corresponden con cesta referencia, El argumento de la funcién functions debe ser una referencia de funcién escalar (no puede ser un array de referencias de funcién). Los distintos valores del campo type tienen los siguientes significados: simple: Funciones intrinsecas no sobrecargadas, overloaded: Funciones sobrecargadas. Son las ‘inicas que tienen campo methods, constructor: Constructores relacionados con clases y objetos ‘subfunetion: Funciones definidas en un archivo *.m de otra funcién, private: Funciones privadas (definidas en un subdirectorio private). Las funciones sobrecargadas (overloaded) tienen un interés especial, pues son las Gnicas que tienen el campo methods y las que pueden dar origen @ mis dificultades o problemas. De modo anélogo a otros lenguajes de programacién como C/C+ y Java, las funciones sobrecargadas de Matlab son funciones que tienen el mismo nombre, pero distintos tipos de argumentos y > edit archivol.m Siel comando va seguido por el caricter ampersand (&) el comando se ejecuta en “backgrouns, es decir, se recupera el control del programa sin esperar que el comando termine de ejecutarse Ejemplo, para arrancar Notepad en background, >> Inotepad & Existe también la posibilidad de arrancar una aplicacién y dejarlaiconizada. Esto se hace postponiendo el carécter barra vertical (). Ejemplo: >> Inotepad I EY) eeee GnuroEoronat Megabyte ) (GauroBorroniat Megabyte i (eam ‘Graficas en Matlab ($} Graficas Con Matlab Matlab ofrece una gama amplia de opciones a la hora de realizar representaciones gréficas. Permite realizar graficos de curvas planas y superficies, posibilitando la agrupacién y superposicién de ellas. Griificos en el Plano Con Matlab es sencillo crear objetos grificos ¢ incluso artisticos mediante expresiones matemiticas a través de los siguientes comandos. ‘Comandos Deseripcion plotixy) _ | Dibuja el conjunto de puntos (xy) en un sistema cartesiano. bar(%y) | Gralico de Barras vertical, donde yrepresenta las frecuencias y x define los espacios en el eje x. barh(xy) | Gralico de barras vertical, donde x representa las frecuencias y y define los espacios en el eje y Stemxy) | Grafico de Bastones vertioales, donde y representa las frecuencias y x define los espacios en el eje x ‘stairs(%y)_| Grafica una curva escalonada. polarjcy) | Dibuja una curva en coordenadas polares, y=V(x) pie(x) Realiza él grafico de sectores relative al veotor x Tose(x) Dibuja ef histograma angular relativo alvector y ze (Gauroorowat Megabyte a z : ian} line: r . fame I >>x=0:0.2:10; >>y=sin( x2); oa >> plot (xy); >> stairs (x, y); bar: >> x=-3:10.2:3; >> y= exp (-x.%2); 15 >> bar (x, y); polar : >a t=0:0.1:2*pi; >> y= abs (sin (2*t).*cos (2*1)) ; barh: >> x=-320.2 13; ; >> y= cos(x.°3)-2*x+1; >> barh (x, y); 7 i Cao NE) Gaimaigire >>x= 1:29; > pie (x): “ ‘@ pie : rose: >>x=[1362715 12]; >> rose() Matlab permite realizar la grafica de funciones utilizando diferentes caracteres, en la siguiente tabla se presentan estas opciones. Caracteres | Descripcién Punto + Mas . Asterisco 0 Circunferencia x Equis mH Gauro Foromat Megabyte ) Pe capitulo Sa Grificas_en Matlab (@ Ejemplo: po x=-3:0.2:45 >> y=sin(x)3 x5 >> plot(xy,'0")s Ejemplo: a4 oo | >> Ke: “4 >> y = abs(cos(x)); Fl 7 : | nos} . 2 | ot Ei Ejemplo: -| Se, | >>x=-3:0.2:3; | Day a-xA2+3x48; 4 : 1 >> plotixy x"); , 7 a 147 (GauroEoroniat Megabyte an Métods Numérirosy View Color | Deseripcion Lineas | Descripcion E Rojo : Continua vies ame — Gui 9g ‘Verde ae b ‘Azul z Punteada w | Blanes * ‘Guiones y punto m_[ Magenta c ‘Turquesa k Negro >> plot(xy,’t: 95 + | Gréfico de miiltiples curvas Matlab provee con 1a opcion plot realizar simulténeamente la grafica de mas de una curva, estableciendo por defecto 2 colores distintos. plot (x, ¥, x, 2): Grafica 2 curvas con 2 colores o tipos distintos. jemplo: >>x=0: 0.05 :5; >> y =sin (x); ° \ >> 25 005 (x); ce >> plot (x,y, x,2); > x=0:0.05:5; Pett rt >> y=sin (x)5 >> z= 008 (x); ot I >> plot (x, ¥5% 2); >> hold on | >> w= abs(x-2)-25 | ¢ >> plot (x, wg’) 15 >> grid Etiquetas en los ejes coordenados.- Matlab presenta funciones para colocar textos, etiquetar los ejes coordenados, colocar titulo y efectuar un subrayado a los ejes, a continuacién se presentan estas funciones: xlabelz Coloca nombre al eje X. ylabel: Coloca nombre al eje¥ §)——p Ejemplo ,| >> xlabel (’X"); >> ylabel ("Y') grid: Grafica rejillas (lineas horizontales y verticales) en la gréfica hecha con. plot. title: Coloca titulo a la grafica. me (Camino egy (kerma : rd) jemplo: >>title (‘Grafica con Matlab’); text (x, y, ’ cadena’) ; adiciona una cadena a la grifica en el punto de coordenadas(x, y) jemplo >> text(2.5 1.5, "y=sin(x)’) ; 20.05: 5; -x/2tsin(x); >> plot(x,y); >> text(2.7,-4," y= x2 + sin(x) 5 >> title(‘Grafica con Matlab7 ‘); >> xlabel(‘x’); - >> ylabel(‘y’); ‘| >> grid Gréficas en miltiples ejes Matlab permite construir multiples ejes en una sola pantalla en la cual se elaboraran miltiples graficas. subplot(m, n, k): Divide la pantalla para el grafico de m por n graficas en una sola pantalla, siendo k es la secuencia de las graficas. Ta abs (0); po w= sqrt (0; >> subplot (3, 2,1), plot (t,x ), title (‘graf #1”); >> subplot (3, 2,2), plot (ty), ttle (‘graf #2"); >> subplot (3, 2,3), plot (t,z), title (‘graf # 3"); >> subplot (3, 2, 4), plot (t,u), title (‘graf # 4"); >> subplot (3, 2, 5) plot (t, v ), title (‘graf #5"); >> subplot 3, 2,6), plot (t, w), title (‘graf # 6°); Graf #1 Graf #2 30) 5 an 4 19] 9 ° a} sl oz 46 0 2 4 6 1 #3 1 4 o of 4 a o—2—+—s5 09 2 4 6 Graf #5 Grai #6 5 4 L= | L— | ° o o 2 # 6 O 2 4 6 Observaci6n.- Para iniciar otro grafico es necesario limpiar la pantalla gréfica con el comando elf. Gréficas especiales en el Plano ‘Matlab dispone de un grupo de comandos para representar formas geometricas especiales en dos dimensiones, estos se describen en la siguiente tabla. ‘Gnuro Eotount Megabyte ) (Goin ep fplot: >> fplt(*c05(4) 3,3); ezplot: >>ezplot(4-abs(x)’,3,3] loglog: 1:0.2: 10; De yall bexp-x/2)5 Commandos Deseripelon ‘compassixy) | Diba un conjunto de Nechas con Ong Sa TOO) y Saye magniud y dreccién venen determinadias por el motto de, (=e) Teatberizy) | Obua un conjurio-de fechas con argon on eae XY uy magntud y draccién vienen dterminadas ‘por of mado ey WONT Tapap | Grace a toncon Ten TTT TB] eeplew F[aBD | Craea Tanga Tan a Aer TaB], RETORNGST- oT tuo por defeco, Togieaty) | Realiza una grafca cariesiana con esta WgaTimiGa er bos ej coordenacos, ‘senilogxtey) | Reslza una grafica cartesian con escalaogarimica ov aT sjexy escals normal nel gy senilogyey) | Realza una gafioacaresiana con eccala Ogarinica an aT fe yy escala normal en ele x Tily.e) | Buia una regiinpoligonal cuyos v6ricea Sonos clemenios de los vectors coumna x,y; el parémetro © contiene ol color a graticar. ese compass: >>x=-pi:08 >>y=3esin(x) ; >> compass(x.y) feather: s pi: 0.8: pis : >>y=3-sin(x) ; : >> feather(x,y); 7 in... eceaeaaaT >> loglog (xy); fill: (GauroBorowat Megabyte (Grificas_en Matlab rao >> fill(y,'m’) ' & Gréfiea de Superficies Matlab permite realizar grificos en tres dimensiones, tanto de lineas como de superticies, siendo sencillo crear objetos gréficos a través de los siguientes comandos. od Destpeir BIBER] | ibaa econo de punts (aye Tae does dimensiones, ISG) —| Di na regi poRaaral nes VICES SoH tes domeniae ¢6 os wectves cumin x, 9, = parématocconiene el cols a arses. THRaTGFARE | Grea eregios brensonses a pai Gs Os ATS Xe, para etborr ia gofes de una supertcle argc 2 fy TRAE] — | Grafica wha SUpBTIG eapIeRS Z = Way] GOW OE BTS xyes. ‘eshEyaT_| Cetca super emplcia z= Tay) con bs areGes XV Zproyectando las curves de al en el plano x). TESTE] | Grafica une superii egisla z= iy) con ts BOGE yo 7 cerrado le Grafica con is laters del domo, Sua] — | Grace na suporie expla == (xy) on ls aegis yA 7p cada na deta cate SUMEREGE] —| Gace superici exlicia = Woy) cones regOSE Ve Zz proyetando las cures de nvelenlplanoxy. Bury] —| Grafics una superice expla z= fcy con tos STIS 1. € 2 considrando una uminacn er rma bole. watery] Grates una sopeice expt Z = Ny) on Toma do cascada, SOROETAT | aaa NGS BT IS WBE TASH 2= fy) a - : (Gruro Borowat Megabyte Qe re (GB) se presentan graficos en tres dimensiones haciendo uso de los ‘comandos desctitos anteriormente. plot3: > Done ppy=3t; >> z=c0s(t); >> ploti(xy.2); >> grid fill3: >> t=-6:0.2:8; >>K Bes >> z=cos(t); [1 08 0.1}; >> fill3(xy.2.0); >> grid > Observacién.- En los siguientes gréficos simplificaremos el cédigo de la programacién: >> [x, y] = meshgrid (-2 : 0.2 : 2) en reemplazo de : >> xa=-2:0.2:2: >> ya=-2:0.2:2: >> [x. yl = meshgrid (xava): mesh: >> [x, y] = meshgrid (-2 : 0.2: 2); exp (492 -¥.2); Dez (GauroEorowal. Grificas_en Matlab ($) @Snoon a | aie | meshz: >> mesh (x, y,2) >> [x y] = meshgrid (-3 :0.2: 3); pe title ((Z=X.* exp-X.12- ¥°2)'); >> xlabel (‘x’); ylabel (‘y’); zlabel (‘2’); pe zexs2-y/2-9; >> meshz (x, ¥, 2) pe title (* X.2- Y*2-9"); >> xlabel (°x’); ylabel (‘y")jzlabel (*2”); zexrent?¥) meshe: >> [x y] = meshgrid (-2 : 0.2 : 2); pozext2ty2; surf: >> meshe (x, ¥,2) >> [x,y] =meshgrid C15 :0.2: 1.5); pe title Z= X92 + 92"); pe zasin( x2 +92); >> xlabel (‘x’); ylabel (‘y’); zlabel (‘2"); >> surf (%, ¥52) pete >> title (| Z= sin( X2+¥°2)"); in >> xlabel (‘x’); ylabel (‘y"); zlabel (‘27); ew’ [Matlab 7 Para Ciencias ¢ Ingenieria con Miétodos Numéricos y Visual JMatlab 7 Para Ciencias ¢ Ingenieria con Métodos Numércosy Visual surfe: >> [x y] =meshgrid (-5 : 0.2: 5); De Zaoxty/2; >> sure (x, y,2) >> title (Z= -X+¥"2 *); >> xlabel (x°);ylabel (‘y");zlabel (‘2")5 reoxe surfl: >> [x, y] = meshgrid (-7.5 :0.5: 7.5); >> 2=sin(sqrt(x./2+y."2)).Asqrt(x."24+9.2)); >> surf (x,y, 2) >> title ( Z = sin(sqrt( X."2 + ¥."2))/ (sqrt( X2 + ¥."2) ); >> xlabel (‘x’); ylabel (‘y’); zlabel (‘2'); 2 sey 263) ‘Observacién: En la orden surfl (x, y, 2, s), el rarémetro s es un vector ireccional de iluminacién cuyo Angulo en perspectiva es medida en grados. waterfall: >> [x, y] = meshgrid (-3 : 0.2 :3); >> z= sin(x) + cos(y) ; >> waterfall(x, y, 2) n(x) + costy) *)s aoe >> title >> xlabel ('x' >> ylabel (‘y’); >> zlabel (‘2’); contour: >> [x, y] = meshgrid (-2 : 0.2: 2); >> z= x.Mexp (x."2-¥."2) 5 >> contour(x, y, 2) >> title ((Z=x."exp (x2 - y."2) >> xlabel (*x’); ylabel (‘y'); zlabel (‘2’); zevemes?-y) Mati 7 rn Cenc ngrea cn Métal: Nundrion y Vi contour3: >> fs yl] eshgrid (-4 :0.2: 4); Deze -x2-yM248; >> contour3(x, y, 2,20) >> title (* Z = -x.42 - v.42 + 8°); >> xlabel (‘x’); >> ylabel (‘y"); >> zlabel (‘2"); Observaciones: - El parimetro m de contour (x, y, 2, m) 0 de contour3(x, y, z, m), indica el niimero de niveles de contorno a graficar. - El comando contour puede ser usado para graficar una funcién ‘implicita. Por ejemplo y + exp (y) = tanh(x) Para graficar la curva, reescribimos la ecuacién, asf: f(xy) = y* + exp(y) - tanh(x) Luego graficamos el contomno de un solo nivel que corresponde a Ejemplo: 22 [a y] = mesgrid (-3:0.2: 3); >> f= y."3 + expty) - tanh (x); >> contour (x, y, f, [0, 0] ) >> xlabel (‘x’); >> ylabel (‘y’); (eo re (SG) xy? exp) tanh(x) Graficas especiales de Superficies Matlab dispone de un grupo de comandos para representar formas geometricas especiales en tres dimensiones, estos se describen en la siguiente tabla. Comnoe Basen ar CIES DATES VES, SONIDO ETT bere Tas Fecuercles ye ctemento an x dain el ado de cuacredo que os la base 0a porasleppedo, Tame VAY Sees con tron una Curve praeTESX= A, Y= WO. = 21. phar Sa Tes Una EG DOD TS aa T SSIES a SUPE He TEVA GTA PT TOC Be poem functnK)enlirtervalo deine para FTO rai partes do una cava parametric x=, Y Sy = 2 represetandco con batones BT ‘Gaia seers Wdersionales paras Frecbenes @ X TEEOATEA Sasa epics == Ta) cama a a ‘Baimonsionales © especies © ancho dela cil [aura WT GraiaTs Vetoes de ComponaTi (VW) eNOS PONE DOVET © SERENE) | TEES al taafio de os veces 161 bar3: >>x=-4:1:10; >> y= cos(x) 5 >> bar3(xy) >> xlabel(‘Lado’); zlabel(‘Frecuencias’); Frere comet ot 10*pi : pi/250 :10*pi; >> x= (cos(2*1).“2).*sin(0); >> y= (sin(2*)."2).*e0s(); >ezst, >> comet3(x,y.2) sphere: >> sphere >> xlabel x’); ylabel (‘y’); label (2; Observacién : En la opcién sphere(n), el parémetro m indica la cantidad de caras con las que construiré inductivamente la esfera. cylinder: p> t= 0:02:63; >> cylinder 2+sin(8)) ; >> title(* 2 + sin(t) 9; >> xlabel (‘x’); ylabel (*y"); zlabel (‘2’); ait) (Gauro Eotronan Megabyte pie m2 pp stem3(x,y,2) >> title(* x= sin(t), >> xlabel (‘x’); ylabel (‘y : ; zlabel (‘z"); singh yest. zt >> x= [25 50127341; >> pieH(x); >> title(* Frecuencias de X” >> xlabel (x); ylabel ('y’) Frecuancise de ribbon: >> [x yJemeshgrid(-3:0.2:3 ); >>-2= sim(x) + c0s(y) 5 >> ribbon(y.2.0.8) 5 >> title(* Z = sin(X) + c0s(¥) * >> xlabel (‘x’); ylabel (‘y’); zlabel (‘2’); Quiver3: >> [x,ylsmeshgrid( pa zasqnt(9-x"2-y./2); >> [uy,w]ssurfnorm(x,y.2) ; >> quiver3(x.y.2,u,v,W.0.8) >>holdon >> surf(xyz)s >> title(* Z= sqrt(9- x."2- 9.92) 9); 0.3: 2.3, -2.3: 0.4:2.3); ‘Gao Foon Megat) (Georo Booman Megabyte Srdfieas on Matlab > aa Ginga es ~ Observacién.- surfnorm(x,y,z), devuelve los componentes de los vectores sn normales en los puntos ( x, y, 2). : Preparacién De Peliculas 0 «Movies» Matlab dispone de funciones para generar una pelicula, la que se compone de varias imagenes, denominadas frames, La funcién getframe devuelve un vector columna con la informacién necesaria, para reproducir la imagen que se acaba de representar en la ventana gréfica activa, el tamafio de este vector columna depende del tamafio de la ventana, pero no de la complejidad del dibujo. La funcién moviein(n) reserva memoria para almacenar n frames. Ejemplo function prueba M = moviein(30); x = (-24pi:0.2:24pi}"; Hay que sefialar que en Matlab no es lo mismo un movie que una animacién. Una animacién es simplemente una ventana gréfica que va cambiando como ‘consecuencia de los comandos que se van ejecutando. Un movie es una animacién ‘grabada o almacenada en memoria previamente. for j= 1:30 ae oe y = sin(xtj*pi/8): function cinel1 % genera movimiento de una figura plot (x,y); M(:,j) = getframe; axis off; % oculta los ejes aa m=moviein(30); % inicializa una matriz para movie (Mt, 10,15) % contener los cuadiros de ta Este ejemplo dado crea una pelfcula de 30 imagenes (como la que se muestra animacién nel cuadro siguiente), que se almacenan como las columnas de la matriz M. Una vez creada la pelfcula, se puede visualizar el ntimero de veces que se desee con el comando movie, en el ejemplo se va ha representar 10 veces la pelicula anterior, a 15 im@genes por segundo(los dos siltimos pardmetros son “ ‘opcionales). (x,y}=meshgrid(xa,ya); rex Dy 2; surfte); view([-37.5+6% 30); kz. GruroEoronns Megabyte ) (GexotoromnMegabyie Bec 167 Matta 7 Pars Cenc axis((0 25.0 30-4 4)); axis off; m(,n)=getframe; end movie(m,60,10) ene con Método Numércos y Viva % oculta los ejes ‘Secaptura el grafico Eneste ejemplo se crea una pelicula de 30 ims imégenes (como la que se muest en el cuadro siguiente), que se almacenan como la columnas dela matriz M, luego se visualiza con el comando movie 60 veces, a 15 imégenes por segundo, ‘Gruro Borrowat Megab OBJETIVO: 1 Resolver sistemas de ecuaciones lineales utilizando diversos métodos de solucién Sistemas de Eouaciones CONTENIDO: Representacién matricial de un sistema de ecuaciones, + Transformaciones elementales, Método de Gauss. + Descomposicidn LU, 1 OperadorStash, ‘Método matrizinversa. Método matrizcandnica oR OU EDITORIAL Sistema De Ecuaciones Lineales Recordando que la solucién de una ecuacién implica la basqueda de ecuaciones equivalentes mas simples en las que resulta facil determinar la raiz o rafces, la aplicacién de este criterio a la resolucién de sistemas de ecuaciones lineales sugiere que, el método para hallar el conjunto solucién de un sistema lineal, consiste bdsicamente en reemplazar el sistema dado por otro equivalente en el ‘que se pueda calcular fécilmente las rafces. En tal sentido, las transformaciones elementales aplicadas a las matrices simplifican el desarrollo de estas y como tal, nos offecen la posibilidad de una ventajosa aplicacién para resolver un sistema de ecuaciones lineales de la forma: AX, + ak + +a, = b ay) + yk + + aX, = by Ww AK, Fgh ta HAL, =D, Con las constantes reales de las ecuaciones (+) se puede establecer los siguientes arreglos: (Gruro Eomrowat Megaby Donde A serd llamada matriz de coeficientes, X matriz de las incégnitas y B matriz de los términos independientes del sistema (+) Por lo que el sistema (1) puede representarse del siguiente modo: AX=B Al concatenar la matriz.B a la matriz A, se determina una matriz de orden mx(n+1), que designaremos por A’, a la cual lamaremos matriz aumentada o ampliada del sistema (+) y se escribiré del siguiente modo: yy yy yy b, Bp, Ag Bagby A = gh Bag Ogg By Ejemplo: Dado el siguiente sistema de ecuaciones: X, 7X, + x, =4 2x, +x, -3x, =0 x, +44 x, =2 1-1 114] ‘ ‘ 7 : ‘ representa su matriz ampliada 12| Teniendo en consideraci6n que las filas de una matriz-aumentada corresponden a las ecuaciones del sistema asociado, el método para resolver el sistema, empleando matrices, se sustenta en la idea basica de reducir la matriz aumentada ala forma que sea suficientemente sencilla (forma escalonada reducida) como para poder alcanzar la solucién del sistema por simple inspeccién o, en su defecto, luego de posteriores etapas que simpliquen el problema. Ejemplo: Suponiendo en cada uno de los casos siguientes que la matriz aumentada de un sistema de ecuaciones lineales, se ha Hevado mediante hm -- ‘Gruro EoroRat Megabyte ‘operaciones en las filas, a la forma escalonada reducida que se muestra a j6n; hallar la soluci6n de los Solucién: a) El sistema de ecuaciones correspondientes es: x +X Como es el caso que cada una de las inedgnitas x,,x,y x, inician una ecuaci6n, estas reciben el nombre de variables principales, expresando estas Gltimas en funcién de x,, se obtiene: Asignando a x, un valor arbitrario t, se tiene un niimero infinito de soluciones. El conjunto solucién queda definido por las férmulas: 22) edt HED SL YE Ejemplo: Resolver por transformaciones elementales el siguiente sistema 2x, = Sx, + 2x, = -2 4x, +6x,- x, =23 2x, + 7x, + 4x, = 24 (Gauro Bowron Megabyte 7 ( Gator cas oe a Nn aN ‘Soluci6n: Construyendo la matriz aumentada del sistema 2 A=|4 6-1 23 274 24 Para transformar una matriz. aumentada a su forma escalonada efectuamos los siguientes pasos: Paso 1.~Multiplicar por ¥a la primera fila de tal manera que el primer elemento de Ia primera fila sea 1 1-5/2 1-1 Fala 6 -1123 2097 4t21 Paso 2.~ Sumar miltiplos adecuados de la primera fila a las filas que le siguen, de tal forma que sus primeros elementos sean ceros a excepcién del primero. 2 7 FR(-4) [1-5/2 1 Ren [1-5/2 1 F(-2) | 0 16 -5 —*/0 4-7 ee Oa Oo Paso 3.- Continuar con el proceso desde el paso 1 a la submatriz resultante, donde la primera fila no forma parte. Proseguir del mismo modo hasta conseguir que la matriz. completa se presente en forma escalonada. Esto es (ear Sistemas de Eeuaciones ‘Obsérvese que Ia matriz ya posee la forma escalonada, pero se puede continvar hasta llegar a una forma can6nica la cual permitira una mejor presentaci6n de las soluciones del sistema Paso 4.- Empezamos por la iltima fila, y avanzando hacia arriba, sumar mitiplos adecuados de la tercera fila a las filas que estan sobre ella, hasta conseguir que la matriz. completa se transforme a la forma canénica. 1-5/20 -2 101 3 rev}? 1 9 2] pe] O82 2 -—slo01 1 + Loo1 1 Como la titima matriz tiene forma canénica la solucién del sistema es el siguiente: 3, = 421 Observacién.- El procedimiento desarrollado, se conoce con el nombre de eliminacién de Gauss-Jordan 0 Método de Gauss. Ejemplo: Resolver mediante la eliminacin de Gauss, el sistema: x, + 2x, -3x,-4x,=6 2x, + 5x, - 2x, - 5x, ‘Solucién: Construyendo la matriz. aumentada del sistema 12-3-4/ 6 131-2 | 25-2-3 |10 Aplicamos la consecutivamente las siguientes transformaciones para redueir Favs) (1-52 1 LT pg [bS/2 tod Ja matriz. aumentada a la forma escalonada: F2 fo 1-74 | 1 ~ | S 7 ease Rep [12-4-4 16 12-3-4 6 i | 2312, Fa jor 4 2-2] Kepot 412-2 p14 5/21 =), 1-5/2 1 | . ol 4 3-2 oo o1 0 OLD) leameareeora nail opt roagccia | frente o 01 1 0 0 FD }o1 4]o -2| Heyer 4/0 -% —* loo o1 0 oe bie rs Caro Roroan Mega) (Gesrotoroane Megabyte aS incon Métodos Numvicos y Vie EI sistema de ecuaciones correspondientes a esta dltima matriz escalonada esx, -lix, = 10 + 4x, 2 Resolviendo estas ecuaciones para las variables principa-les, se tiene: 2-4x,, x,=0 Finalmente, asignando un valor arbitrario ta la variable x,=104 LIx,, x, Resolviendo estas ecuaciones para las variables principa-les, se tiene: x,=10+411x,, Finalmente, asignando un valor arbitrario ta la variable x, , se tie x, =10#Ix,, x,=-2-4x,, x,=0 De donde se concluye que el sistema tiene un niimeto infinito de soluciones, 24K, xy [Ejemplo: Resolver mediante la eliminaci6n de Gauss, el sistema: x, - 2x, + x, - 4x, = 1 x, +3x, + 7x, + 2x, = 2 X,- 12x, - 11x, - 16x, = 5 Solucién: Construyendo la matriz aumentada del sistema 1-2 1-4 13:7 2 1-12 -U1 -1 Aplicamos ta consecutivamente las siguientes transformaciones para reducir la matriz aumentada a la forma escalonada: Rp fi -2 1 -4 | ac) oO te * | 0 10-12 -12 1 1) BQlO5 6 61 4. 000 016 La dtima fila corresponde a la ecuacién: Ox, + 0x, + 0x, +0x4,=6 ==> 0=6 [Loquees absurdo, por tanto, el sistema es incompatible y carece de solucién. Observacién.- Si un sistema de ecuaciones linealesno tiene solucion se dice que el sistema es inconsistente. Ejemplo: Una dieta mfnima vital es 72 unidades de protefnas, 104 unidades de ‘carbohidratos y 88 unidades de minerales. Una nutricionista dispone empaquetados tres tipos de alimentos A, B y C, segiin la siguiente tabla: Proteinas | Carbohidratos | Minerales A |1 2 4 B\4 4 2 c}2 4 3 Es decir, un paquete del alimento A contiene 1 unidad de proteinas, 2 de carbohidratos y 4 de minerales. Se debe entregar a cada comensal una dieta minima en un niimero entero de paquetes. {Cudntos paquetes de cada tipo de alimentos constituye la dieta minima? Soluci6n: Sean x, y, z.el ntimero de paquetes de los tres tipos de alimentos A, B y C, respectivamente que que se debe entregar a cada comensal. Construyendo las ecuaciones se tiene: x paquetes del alimento A, 4y paquetes del alimento B y 2z paquetes del alimento C constituyen 72 unidades de protefnas, que se rigen por la ecuacién: xt dy #22272. Andlogamente, segiin la tabla, planteamos las otras ecuaciones para carbohidratos y minerales: 2x + 4y +42 = 104 4x + 2y +32=88 176 eas Gano Bonoans Magic) (GaoroEorowar Megabyte wee De donde la matriz. aumentada del sistema es: Ejemplo >>A=[3412;3535;6815;3537h 142i 2 >> [LUPIIu(A) 244 a Nos devuelve como resultado : L=05 0 10 00 Efectuando las transformaciones elementales por filas, se obtiene: 05 10 00 09 1 4 2 72 1 0 2 60 10 00 00 09 FR(-2) AO i 0 -4 0 -40} => |o -4 0 -40 05 1.0 00 1.0 ACY, /0 -14-s -200} FBOV?!9 9 -5 -60 U= 60 80 10 50 Feua |} 2 32 puoY 00 10 25 25 Sparse (Oe) 0) 10) FR) JO 00 10 00 00 05 05 F(-M5), aa *LOor 12 U0 0.0 00 0.0 20 Lo que significa que z= 12, y= 10, x=8 P=0 0 1 0 En consecuencia, la dieta minima para cada comensal esté constituida por 8 O00 paquetes del tipo A, 10 paquetes del tipo B y 12 paquetes del tipo C. feo 4 OOO 8 Aplicaciones en Matlab ‘Matlab posee diversas formas para solucionar sistemas de ecuaciones lineales eae PFA =L#U,y el sistema original se (AX=B), a continuacién presentamos un sistema de ecuaciones lineales con 4 Donde P es una matriz unitaria talqve oY variables. eseribe primero como P*AX =P*B, luego como: Bxt4y + 2 +2w=-3 LUX = PB 7 a wo “ 7 Larealizacién de las multiplicaciones nos devuelve como resultado: K+ 8y+ z+ 5w=- X= 3x4 Sy +324 7w=-8 e 2 Descomposicién LU 1 El procedimiento de descomposicién LU, transforma a la Matriz.de coeficientes 2 A enun producto de dos matrices triangulares uno superior y el otro inferior. A=LU hay Ho wees Gruro Eonronat Megabyte (Gauro Eorrowat Megab) Operador Slash (\) Se.utiizaen los casos donde la matriz desconocida se encuentra en la izquierda © derecha de la matriz de coeficientes, esto se puede pensar en «ambos lados de la ecuacin AX = B 0 XA=B por A. X= A\B Denota la solucién para la ecuacién de la matriz AX: X= B/A Denota la soluci6n para la ecuacién de la matriz. XA « divi Las condiciones de compatibilidad de dimensin para X = A\B requieren que las dos matrices A y B tengan el mismo némero de fas. La solucién de X tiene el mismo niimero de columnas como B y su dimensién de la fila es igual a la dimensi6n de la columna de A, En cambio en X = B/A, los papeles de filas y las columnas son intercambiados. En la préctica, los sistemas de ectiaciones de primer grado de la forma AX =B ocurren mis frecuentemente que esas de la forma XA=B. Por lo que Ia barra inversa ( \) es usada més frecuentemente . Una de las propiedades del operador slash se presenta en la siguiente igualdad (B/Ay’ = (A’\B *), donde la matriz de coeficientes A no necesita ser cuadrado, el operador de la barra inversa (\) utiliza algoritmos diferentes para manipular diferentes tipos de matrices de coeficientes. Si el sistema m x n es cuadrado, Matlab presenta una solucién exacta. ‘Sielsisemam xn Overdetermined, Matlab presenta una solucin por minimos cuadacbos. El sistema m x n underdetermined, Matlab presenta una solucién basica con la mayoria de componentes ceros. Ejemplo: Consideremos el siguiente sistema de ecuaciones Bxtdytz42w=-3 Nos devuelve como resultado: A Ejemplo: Consideremos el siguiente sistema de ecuaciones 3x+ dy +22 Sty +52 = Oxty + 52 =12 -2x+3y47z =8 >>A=[B 42:3 15,615,237]; >> B=[9;9; 1258]; >> X=A\B Nos devuelve como resultado: X= 1 1 1 Ejemplo: Consideremos el siguiente sistema de ectaciones Bx+dy+22=8 Bxty+52 = >>A=[3 42:3 1 5] 3x + Sy +324 Sw=-6 >> B= (8; 11] 6x+8y +24 5w =-8 >>. X=A\B 3x + 5y+3z+7Tw=-8 Nos devuelve como resultado: >> A=[3412;3535;6815;3537) a >>B 2 >> X=A\B z 2 a Camo inan gape) (Gucronronin Megabyee Tee 181 7 Pare Ciencias con Métodos Numérios y Visa ®) Ejemplo: Consideremos el siguiente sistema de ecuaciones Bx+dytz+2w 3x + Sy + 32+ Sw 6x + 8y+245w 3x + Sy +324 7w=-8 Método de la matriz inversa 3412;3535,6815;3537]; >> B=[-3;-6;-8; -8]; >> Xsinv(A)*B Nos devuelve como resultado: X= 2 2 1 a Método de reducci6n a Ia forma canénica Ejemplo: consideremos el siguiente sistema de ecuaciones Sx+4ytz+2w =3 3x + Sy +324 5w =-6 Ox+8y4+z4+5w =-8 3x + Sy +3z4+ Iw 2-8 >> A=[3412-3;3535-6;6815-8,3537-8]; >> X= mef(A) Nos devuelve como resultado: econ eens ence meee ‘Gruro Emon Megabyte OBJETIVO: EB + Calcular las rafces de una ecuacién algebraica o trascendente con métodos | iterativos, Caio 7 Raices de Ecuaciones CONTENIDO: \ Método Gréfico. V Método de Biseccién. Método dela Reglaflsa. V Métodode Miller. Método del Punto fijo. Método de Newton Raphson primery segundo orden, Método de Von Misses. \ Raices Polinémicas. Raices de Ecuaciones ‘S) Raices De Ecuaciones Algebraicas y Trasendentes Frecuentemente en el quehacer diario, nos encontramos con expresiones de {a forma f(x) = 0, siendo necesario el célculo de x, esto es la rafz de f, en este capitulo estudiaremos métodos gréficos y analiticos que nos permitirén aproximar este valor a través de una sucesién de valores reales, L- Solucién Grafica.- Nos permite estimar los valores de las rafces. a.- Primera Forma.- Consiste en trazar las graficas de la funcién asociada £ donde puedan reconocerse si existen valores reR talque f(r) Ejemplo: Estimar los valores de las rafces de la ecuacién. 24327 -12x4+6= Solucién.- Obtenemos la funcién f asociada £(x)=2x3 43x? 12246 tuynachortione xT rE [26 a] 6 Tt Tw pss F [26 rales aprox. i= 35 lrs= 06 ip=1a [Matlab 7 Para Ciencias eingeniera con Ejemplo: Estimar los valores de las raices de la ecuacién. 2=0 Solucién.- Obtenemos 1a funcién asociada, Segunda Forma.- Consiste en transformar la funcién asociada f en la forma f,(x) = £,(4), luego f, y f, se grafican en el mismo sistema de ‘coordenadas donde las rafces de f son las intersecciones de las graficas Ralees de Eewaciones _Bjemplo: Estimar los valores de las raices de Ia ecuaci6n. Senx—441=0 x Solucién.- Obtenemos Ia funcién asociada, £(x)=Senx-L41 x Despejando tenemos fo), Senx— 1 Luego: £,(x) = Senx Despejando tenemos wo2ee f(x) Luego : £,(8 =2: £,0)=- Ux pane ey {0-39 )= tet fo-r22_ goer 1 T 2 ae % (2 1 [i 2 28 aby = i raioes \ aproximadas i na16 ° 2 4 6 a ox =06 To= 1, raz exacla oc (Gnuro Boron Megabyte ) (GeroBorows Megabyte 7 ; ytl=0 1 (asintota) x ]¥ 1 oO TE raices sts eprom Fe fees “12 |S cae sae ma58 Graficamente se puede observar que la ecuacién posee infinitas rafces positivas conforme x—e Observacién.- La descomposicién de la funcién f(x) =0, puede realizarse de muchas formas, entre las cuales se procura elegir aquellas en que resulta mas "simple” la grafica de f, y fy. Proposicién (Existencia).- Sea f:R Runa funcién continua en [a,b], si f(a)*f(b}<0 entonces f posee al menos una rafz en [a,b]. Es decir 3 € [a,b] / f(r) = 0. ee Raices de Ecuaciones § —— fay os| i t os 10%, sso IL- Solucién Iterativa.- Método de Biseccién Sea f una funcién que posee al menos una rafz en (a,b). Procedimiento: atb i) Céleulo de la aproximacién de la rafz x, = —— , f6rmula de iteracién. ii) Si f(@).*f(x,) <0, entonces la rafz se encuentra en [2,x,], hacer b=x,, regresar ai). -Si f(x,)"f(b) < 0, entonces la rafz se encuentra en [x,b], hacer a=x,,regresar ai). Si f(x,) =0, entonces la rafz r= x,. iii).- El proceso termina si el error es aceptatle. Constituyéndose una sucesi6n. Ky Ry Kym OE 188 zs Caso roma Megat) (Gaaimoma egione reer Ejemplo: Hallar la raiz en la ecuacién g-* Solueién.- Obtenemos Ia funcién ern ° fl) = Despejando tenemos : etax donde: f(x) £@) ; oir gon f es continua en [0,1] Gear Bononna Megayte) £(0) = 1, (1) = -0.6321205 £0) R1)<0,a=0,b=1 O+1 oo 2 0.5=> x, =0.5 (0.5) = 0.1065306 £(0.5)* (1) <0,a=0.5,b=1 x, = 2541 ozs, 2 0.75 (0.5) * (0.75) <0, a= 0.5, b= 0.75 x, = 254075 _ 9.605 = x, =0.625 2 (0.625) = -0.0897385 (0.5) * (0.625) <0, a= 0.5, b = 0.625 o sexes = 0,5625 = x, = 0.5625 £(0.5625) = 0.00728283 (05625) * £(0.625) <0, a= 0.5625, 0.5625 + 0.625 epee seree ea 2 X yp = 0.5673827 5673827 625 59375 => x, = 0.59375 (Gaommmnegope Grafica : Signos de las imagenes de f 0“ ° T = 0.56714329041; vaior en la 40ava iteracién. Error Del Método De Biseccién Sea r una raiz de f en [a,b], x). X Xy-. aproximaciones de la ratz. Grafica. 15 | os zo + ‘Sal " 4 3 1 2 3 4 [Geen ----- Gauro Forrowat Megabyte OS Ralces de Eeuaciones De la grafica tenemos bra A=|r—x) 22% error absoluto en la n-esima iteracién, donde r€ [a] rd Ejemplo: En la ecuacién, ¢-" — y=, [ab] donde a=0,b=1 En la primera iteracion €, < 1/2 En la primera iteraci6n €, < 1/4 En la primera iteracién e, < 1/8 Ena n-esima iteracion ¢, Sp €, = error absoluto. ‘Ejemplo: Caleular el valor de x en Ia ecuacién exp(-x) ~x = 0, en el intervalo (0, 1). files af rarest bates anate ns | ay ‘Guuro Eorowat Megabyte (A> Capitulo 7 Ralces de Ecuaciones Ejemplo: Calcular el valor de x en la ecuacién xsen{I/x)-0.2exp(-x) intervalo {0.1 , 0.5]. Raices de ecusciones algebraicas y traccendentes eccocta't4 ava 9) /2)2 bs Epeineey 1006808 s0)4 eS apesnce(\oytpetmee(ius cass ae ¢ sun.ees'y a (Gnuro Borrowat Megabyte enel J ereeerteereerteeremerrere ‘Método De La Regla Falsa Sea f: R— R una funcién continua en [a,b] y r una raiz de f en [a,b], i). Construyamos una recta L, que pasa por los puntos P(afla)) y Q(b. f(b), su ecuacién estaria dado por : v= floym[LORL e-y o b-a Consideremos la intercepcién de L, con el eje x como la primera aproximacién de la raiz, es decir y= 0 reemplazando en (*) tenemos: a-f(a)= [2QL he -a) despejando x se obtiene : [o-a] FO-s@) donde x, =x, primera aproximacién. x=a-f(a) Grafica. we (x,).£(6) < 0, lo que indica que a= x, ,constituyendo un nuevo intervalo [a,b] donde se encuentra laraiz, luego regresamos a i), construyendo una recta L, que igi (Gauro Eorouat Megabyte Deen Ralces de Bouaciones | @ | nos permitiré encontrar x, la segunda aproximacién, luego regresamos a i), asi sucesivamente. a- say P= rma ce iteraciin * f(b)= fla) Procedimiento ~ Célculo de la aproximacién de la raiz. [o-a) f(b)- f(a) ii). Si ffa).£(%,) <0, entonces la raiz se encuentra en [a, x,] hacer b= regresar a) Si f(x,.f(b) < 0, entonces la raiz se encuentra en [x,, b] , hacer a=x,, regresar a i). Si f(x,) ii) I proceso termina sel error es tceptable. Formandose una sucesién Xp Xp ye — formula deiteracién. a- f(a) 0, entonces la raiz r = x,. Grafica. 45 Smo jemplo.- Hallar a raiz de la ecuacién e* + x—2 Solucién.- Obtenemos la funcién asociada. f(x)se"+x-2 Despejando tenemos ffa)=-x42 De la grafica se observa 2 raices r, € [-2,-I] yr, € [1,2] fore 909 n a2 T En el intervalo [-2,1], a=-2, b fla) = 3.3890561, f(b) = -0.2817182 fla).f(b) < 0 Se obtienen las siguientes aproximaciones: 1.076746253 1.113782265 =-1.131195343 1.139280804 1.143013247 Xjg=-1-146128130 Enelintervalo [1,2], a=1,b=2 Se obtienen las siguientes aproximaciones: 1823657238 1.841155502 = 1.841402161 1841405611 841405661 ‘Ejemplo.- Hallar la rafz de la ecuacién x? Soluci6n.- Obtenemos la funcién asociada. f(x)=x°+2x-11 Despejando tenemos: ws-2x411 donde fi(y=x8 £2(x) =-2x4+11 Raives de Ecuaciones 198. (Gauro Eorowat Megabyte (Gaon vege 199) toler? gore2xett 12 re [1,2], estoes a=1, fla) = f(a).f(b) <0 Se obtienen las siguientes aproximaciones: 8, f(b) = 1.8888 1,9250693 926232 r= 1.9262703, jemplo: Calcular el valor de x en la ecuacién xsen(1/x)-0.2exp(-x) ~ 0, en el intervalo (0.1 , 0.5} (eee Raices de Beuaciones ($} LRAT THE atl Raices de ecuaciones algebraicas y trascendentes ke 902 seit Ao Sti tase nee nto | Bo filme! nese ste emeioe + 1 spesee eee se 8 Stok ect Psvtarerl ote emer mee es) baa Tpeimgy tie DE EO a ena (e-r0es toes ermecenn ls fpeumnecednns a We... (GauroEorronat Megabyte @ ati Metodo de Miiller Sea f£:R—> Runa funcién continua en [a,b] y r una raiz de f en [a,bj, EI método de Mailer, es una extensién del método de Ia Regla Falsa el cual aproxima la funci6n fa través de una linea recta, el Método de Maller aproximard la funci6n f por un polinomio de segundo grado. 2 15| os. os us 2 28 3 35 4455 Consideremos tres valores iniciales X9,X,,X3, y construyamos el polinomio de segundo grado P(x) = i +a, (X—Xq) +a,(X—Xq)(X—-X1), que pase por Tos puntos A(X, f(x 9)), BOX, £0), ¥C(K 2, 0X). Interpolando los valores tenemos: a, = f(x) az = [fx,)— fx) Vx, ~ x0] ay = ffx2)— 10, VER sx, + ffx, — 10g) VE, xq Wes x5] Multiplicando los factores en P(x) y agrupandolos convenientemente se obtiene: P(x) = a,x? + [a, - a,x, - P(x)= Ax? + Bx +C Ib My] XH ay = AA, +A, xX, es de Eeuaciones + Ay +A HK Los valores de x se determinan utilizando ta férmula ~B+VB*-4AC 24 Considerdndose como una primera aproximacién una de las rafces de P(x), 4), nex —B+ VB? -4A4C 2A VB? -4AC 2A Procedimiento i). Consideremos tres valores iniciales x...) y construyamos el polinomio de segundo grado: P(x)= a, +a, (xX) +4, (X- x) X-X,), que pase por los puntos AG £05 )), BOR fl,)). ¥- COG £04) ii). Calculo de ta primera aproximacién de la rafzen la f6rmula hex iii), Asignar el valor de r, en uno de los valores x,, x, 0X,» regresaraii). El proceso termina si el error es aceptable, construyéndose una sucesi6n: Xp XpXy 3h Gruro oon Megabyte ) (CGaoimon egy i Ejemplo: Solucién.- Obtenemos la funcién asociada f(x) = In(x) - x +2 7 Para Ciencias Ingenieria con Métodos Numérico y Visualiz jallar Ia rafz de la ecuacién In(x) - x +2=0 Reices de ecuaciones algebraicas y trascendentes ntti? a vie FFE pe SBP en pe eT 2 RE «CRT Ejemplo: Hallar la raiz de la ecuacién e% - cos(x) = 0 Solucién.- Obtenemos 1a funcién asociada f(x) = e% - cos(x) CT bial Raices de eouaciones algebraicas y trascendentes a_i a vides Fm ee cium | 98 2 Pe wea sae) ‘Archivo m: Método de Muller Delisee ear Oo ser 3b Be tee mee Sent » aera 3+ penne: fe Me rors ee 2 nt fim) caine ap BIDE Método Del Punto Fijo Definicién (Punto fijo)- Dada una funcién g: R-+ R Dom(g) es llamado un punto fijo de g si g(p)=p. Ejemplo. ¥) sea g(x)=x?-2x42 p=le Dom/g) ademas x Por lo tanto p= Les .un punto fijo de g, 2) Sea g(x) = 18 -2x € Dom(g) Gao Eononnc Megabyte) (Gnuro Eowronuat Megabyte (@ ee GAN ademas : g(6)=6 Por lo tanto P=6.s un punto fijo de g. ‘Teorema de Existencia y Unicidad Del Punto Fijo sig: R->R continua en [a,b] talque g(x)e [a,b], Vxla,b] , entonces posee al menos un punto fijo. ademas si g’ (x) existe Vx € tal que | g’(x)| < lentonces g posee un ‘inico punto fijo en [a,b]. Prueba. Existencia Casos Si g(@)=a 0 g(b)=b, la prueba es obvia. ii) sig(a@)#ay g(b)#b, entonces : g(a) > ay g(b) 0 y g(b) <0. a ————=== Ralces de Bewaciones Definamos: h(x) = g(x) - x (hes continua en [a,b] dado que gy x son funciones ccontinuas). ‘Ademés: h(a) >0 y h(b)<0 Donde: h(a)* . h(b) <0 por una posicidn existe re [a,b] talque h(t) =0 hie) = 2) -r= 0-9 g(2)=1, res.un punto fijo de g Unicidad supongamos que p y q son puntos de g, pxq, es decir a(p) Por el teorema del valor medio, existe “c” € talque » 89) (p) - 2(@) = g°(0)[p-4] aplicando valor absoluto tenemos: [g(p) - | = le"©lp-al < Lp-al letp) - sc@)l , ly sucesién x,,, = g(x,) convergente si existe un niimero me R/|g’(x)| © entonces: Demostracién. m' 0 (por ser m<1) ‘Sea p un punto fijo de g, es decir p= g(p)- En a sucesién x,,, = g(X,) ---~ (1) restando (1) de (*), tenemos: p-x,,, = g(P)- a(x,) Por el teorema de valor medio, existe c, € talque : g(P)- a(%,)= 8" )I-x,] | s(P)- etx.) /=18%(c,) II P-x,] sm) p-x,] TP -Xa.11= 1 8(0)- 2(%,) | Sm] p-x,| [P-x,.11S ml p-x,|- En la sucesin x, = g(x,,) P-x,= BP) - 8(X,..) Le(P) - £6%,.) 1= 1 86) I] P-%,41Sm] Px, | [-x,1= 1 8(P) - 20%.) Sm p-x,,] [P-x,| Sm| p-x,,|--- En la sucesi6n x,, = g(X%,,) — “ IPxl PO. PX >0, PX, DIAGRAMA DEFLUJO: Punto Fijo ef bf, ‘mina poor ~~ = @), restando (2) de (*) tenemos : -(b) ~ (3), restando (3) de (*) tenemos : PX. = g(P) - 2x,.) “> Por el teorema de valor medio, existe ¢, € , talque : > 8(P)-2(X,.2) = 8'(C,)[P-x,] < 12(P) - 8%2) [=| 2'(Cll P-X,21 y continuaen [a,b], tenemos su desarrollo de Taylor alrededor de x, Ly) ai (1) ‘Consideremos una aproximacién lineal de f en el desarrollo de Taylor.0 f(x) = £04.) + £(x,)fx-x,] ————-(a) Si xcs.una ris de f, en a) tenemos 0 fx) + PE) £0) FG) f= FeyEE2frm ag) nag? tat R, despejando x *= Xp ‘Aceptando que x, es una aproximacién de la raiz x, construimos la sucesién j)aex d& aproximaciones dela raiz, en la siguiente *rmula Observaciones: 1. La funcién asociada del punto fijo para el método de Newton- Raphson esta dado por: = LO. gaara 2. La aproximacién lineal, considera como pendiente a f*(x,) en la construccién de las aproximaciones. Grafica : 2 +0] it Ejemplo.- Hallar la raiz de la ecuacién In(~)* x it Solucién.- Despejando tenemos inc =0 214 weeee ‘Gauro Eoroaiat Megabyte ) (Gerben Mepis tindy-1=0 29 1 tinc-1=0 2G 100 e900 900= px De la grafica podemos afirmar que la raiz_r€ [0,1] Para f(x) =Inx + x Considerando x, = 0.5, valor inicial Obtenemos las siguientes aproximaciones: x, = 0,56438239 .0.56713899 % X,=0.56714329 ,=0.56714329 Matlab 7 Pars Ciencias ingenierf con Métodns Numins y Visual ECs. «hl (Gauro Boronia Megabyte Criterios De Comvergencia ‘sea f: R— Runa funcién continua en [a,b], diferenciableeny r fe) raiz de f, tenemos que 8(*)=*-———— ; funcién asociada del punto a FR) fijo para el método de Newton- Raphson. oy a1 LOR LOSE) _ SO.) — FO vor Para el cual se garantiza su convergencia si |g"@)| <1; Vx {método del punto jo). Reemplazando se obtiene : or La condicién de convergencia del método de Newton Raphson Ejemplo: Calcular el valor de x en la ecuacién x.*2 + sin(x) - 5=0. Considerando x,=-2 valor inicil. RRafoes de ecuaciones algebraicas y rasvendentes PE] enrol ee Ff vit FE ese cn | ®& [Matlab 7 Para Ciencias eingeiara con Métodos Numéricasy ‘og Archivo m: Método de Newton Raphson OSB ree = /6Ms Bo 1 Girton maven 2+ nonbre finpue(’ ——_togeeae In feoion aeoieen ta) = 4244 2s advingee()——tapese velo inscial : Vs $e tpeimety he So forint!) ic epcoe gle) eanee Vath 6 tetiertaetteo.o01; 27> mile OnE ¢ see 8 ea 9- —trOveatneoee 1: ho ——xxo-ceteas jit tiveval (nate. 1; h2- —xaovcelea: a- —ataneve actre 6); t= ataoecaa-atn/2raeeay2 ns- ate (tao/ato) a6- —evane((e-a0)el; sr fprintt(ss.ot sin.er ss0.6¢ e10.6a'y 4 x0, fe- xo: ssi: es fpetaee('a rata 9 : 0.5", e012 Método De Newton Raphson de Segundo Orden Sea f una funcién (k+1) veces diferenciable en y continua en [a,b], donde su desarrollo de Taylor alrededor de x, esta dado como: F()= FH) + LG a 2pm LO ex tunt R, Consideremos la aproximacién cuadritica de f en el desarrollo de Taylor. £0) = f(59)+ OP 0-5) POD emg? “(a) Si x esunaraiz.de f,y h=x~x, reemplazando en (a) se tiene: Poe - i... - ‘Gauro Eorroaiat Megabyte fim), f(a) On ff xy )4 hth Una ecuacién de segundo grado en h. Donde: =F (oo) VE Golf = 2F (oo) f @) Reemplazando h porx-x, y despejando: EF (wadP = 27 oo) Floa) i) Laaproximacién x, se obtiene reemplazando el valorinicial x, en las formulas de iteraci6n y seleccionando aquella que se aproxima a la soluci6n. Ejemplo: Calcular el valor de x en la ecuacién I + 2*x - tan(x) = 0, Considerando x, = 1.2. valor inicial. Ralces de ecuacionesaigebraias ytrascendntes a Raices de Ecuaciones (@) pica) rest El método de Newton Raphson definido por “mt “4 “ACY consttye x 1 aproximaciones a la raiz a través de rectas tangentes, lo que para valores fez £°G) pequetias ( f"(x) ~» 0) la recta seria casi paralela al eje x alejando asi lag aproximaciones de la raiz. Donde: f,(x)=Inx, £(x)=x-2 Para resolver este problema Von Misses sustituye £'(x,) por: "(x,) donde x, foretapy ginene es valor inicial, obteniendo asf : We formula de iteracion wie ey De la grafica podemos observar 2 raices r, € (Gl) y1,€ [34] 2 Para 1,€ [0,1], tenemos x, = 0.2, valor inicial : 7 [0.2978] <1, porantiza su convergencia Grificamente la aproximacion es a través de rectas paralelas a la recta tangente enel valor inicial. Ejemplo.- Hallar la raiz de la ecuacién Inx ~ x +2=0 Solucién.~ Despejando tenemos: Inx=x-2 f(x) = Inx—x +2 a (Gaiam Megabyte ‘Grupo Eorroniay Megabyte ) ene e Ingenieria con Méiodos Numéricosy Vis Cs) Raices de Bcuaciones Para r,€ [3,4], tenemos x, =3.5, valor inicial IF 0)."(o)) | 0994 xan canvereca Raices De Una Funcién Polinomica Proposicién. Dada uns funcién poli ndmica f(2)= a,x" +4, +...+a,x+dy con coeficientes enteros, 4// un ndimero ieductible, bce Z. Raloes de ecuacions algsracasytrascendontes si es una aiz de f, entonces b es un factor dea, y ces un factor de Demostracién.- Por hipstesis /, es raiz def, esto es: 0G," +04) +c (9f)-+a, =0 multiplicando por e* se obtiene a,b" +4, ,b™.c+..babe"! + age" =0-----(*) despejando c en (*): cla, .b"? +..¢a,bo"? + a,c"! |= 6", entonces c es un factor de a,b" porhipétesis cen(*): es ireductible, esto indica que cesun factor de a, despejando te some our © Gunes blab"! +a, ,b"2c+...4a,c™" yb" entonces b es un factor a,c* por hipétesis 9/ es irreductible, esto indica que b es un factor de a, ‘Ejemplo.- Hallar las raices racionales de la funcién f(x) = 2x) -17x? +38x-15 Soluctén.- Posibles raices fnsnct ase sks ew, a8 8 eines una, a factor (-15)_, 1 3 factor 2 12°12" 134,554.15, 194 (Garton Megabyte oe H a "12 5 “Gea oun Megabyte) ee ‘considerando x= 1/2 2 7 38 “5 2 i 8 5 2 “16 30 0 Resto 2x? 16x +30=0 2x 6 x 5 (2x- 6)(x-5)=0 2x-6=0 x-5=0 x=3 x=5 Rafces : {0.5,3,5} Ejemplo.- Hallar las rafces de la funcién S (2) =3x° +23x? -35x49 Solucién. factor (9) factor 3) 3 23 5 3 73 7 8 3 3 2 27 0 Testo 3x’ +23x7 -35x+9=0 x3 x +9 Gx-3)x+9) 0 =... ‘Gruro Eorount Megabyte 3x-3=0 x+9=0 x=1 Raices : { 1/3, 1,-9} Observacién.- Si los coeficientes del polinomio fueran mimeros racionales pastara multiplicar al polinomio por el m.cm. de los denominadores transforméndolo en un polinomio con coeficientes enteros Ejemplo- pC) = mcm (3,2, 6)=6, multiplicando a P(x) por 6 se obtiene: Q(x) = 2x8 +32? -9x-5 Teorema Fundamental Del Algebra Toda ecuacién algebraica de grado n pose n raices reales y/o complejas. ‘Cambio de Signo de una funci6n polinémica. Dada una funcién polinémica con coeficientes reales f(x) =4,x" +a, x" +...+,x+a, se dice que existe un cambio de signo si 2 términos consecutivos poseen signos diferentes. f posee 2 cambios de signo. (Gayro Borowat Megabyte 7. @ mare: Regla de Descartes Dada la funcion f(x) = a,x" +4,.x"' +b ayx+ dy ~ Elnimero de raices reales positivas de f, es igual al nimero de cambios de signos en ffx) 0 menor que este nimero en una cantidad par. ~ Elnimero de raices reales negativas de f, es igual al nimero de cambios de signos en f(-x) 0 menor que este ntimero en una cantidad par. Ejemplo.-Sea f(x) =3x?-5x?-x+2 F(x) = 3x8 5x? — x42 Posee 2 cambios de signo, entonces f posee 2 raices reales positivas 0 cero raices positivas. Sex) =-3x2 -5x2 442 Posce I cambios de signo, entonces f posee solo I raiz real negativa. Por teorema fundamental el élgebra_f posee 3 raices. Resumen] Casol]Casoll Raices (+) 2 0 Raices (-) 7 7 Raices complejas| 0 2 Ejemplo. Sea SQ) =x $3 xP 4x5 P(x) = x43 - x2 ae t5 Posee 2 cambios de signos SG) =x* -3r a? +245 Posee 2 cambios de signo z=... (Gnuro Eorronat Megabyte Por el teorema fundamental del dlgebra f pose 4 rafces Resumen Caso 1] Caso Il] Caso Il Raices (+) 2 0 0 Raices (-) 2 2 2 Raices complejas| 0 Z 4 Proposicién.- Dada una funcién polinémica f(x)= 2" +...+ a,x + dg las raices reales r de f , satisfacen la relaci6n. ol jal A Donde A = maxla],0 1 AS 4H Bax! = Abt pei sft. 2) ezfax"|- Eun gee eG sntnces [7092 5 eaet—eul~ 4] ‘Acotamos f(x) se debe considerar [,|x|-Ia,|-4]<0 bt Dao que: [3—j espeitivo De donde si [a,|2|—Ia,|- A] 0 leblsfal+4] lea lad Caso b) Probar Ta, weg x Método De Virge — Vieta Sea Pa)=a,x"+a,,x"'+....tax+a, un polinomio de grado n con coeficientes reales, consideremos r, como la primera aproximacién de alguna de Jas raices reales de P(x). Dividiendo: P(x) entre x=r, se obtiene: a [a ae [ee rs Dn Dae Typ Dy Do. Dy Dae Dos ‘By By P(r) >] resto P(X) =(x-7,)Q&) + PG) oy ® (2) = P@=PCa) xh Aplicando limite a ambos miembros obtenemos lim Q(x) = lim 2@)= PH) =m ory Dividiendo Q(x) entre x=, Br [Be Bs [a & ts TiGra | AOns Fer Fe fone [tne ore Ol) [resto Q(r,): division de P(x) entre x= 1r,, 2 veces Segiin el método de Newton : six, es una aproximacién de la raiz P(,) — residuo de P(x):x-x, Q&,) > residuo deQ(x):x-x, =x -P@.) ” &G,) formula de iteracién Ejemplo.- Determinar una raiz del polinomio P(x) = 3x8 - 2x4 27-724. Solucién.- Analizando el polinomio, existe una raiz cercana a x = 1.5, consideremos r, = 1.5 como la primera aproximacién. Efectuando la divisién se Raices de Ecuaciones © De donde'r, = 1.5 - (0.407/44.91) = 1.491 1,7 1.4908 es una raiz de P(x) Bjemplo.- Determinar una raiz del polinomio P(x) = x! +2x'- Sx? +x2~ 4, Considerando 1, =-3, valor inicial. Raioes de ecuncones algbrleas yrascendetes Observacién.- Al usar el archivo m del método de Virge Vieta los coeficientes del polinomio P(x) deben estar ubicados dentro de corchetes. Archivo m: Método Virge Vietta é ja 0e eee oe, obtiene: ‘Seon 3 eye T 7 or = 75 as [as 56 Jaws aaa a. a a5 a7s [ees __|aa00 four ee 7s 33 [sera ares - 3 7 2s __[arse fast (Gea Earn Megabyte oe ‘Guo Eononn Megabyte ) OBJETIVO: Js Realizar operaciones con polinomios ¢ interpolar datos unidimensionales, bidimensionales y multidimensionales. CONTENIDO: + Interpolacién polinomial. \ Métodos de interpolacién, -\ Funciones polinémicas y operaciones con polinomios. 1 Derivada de un polinomio. mn fracciones parciales. mn unidimensional, Interpolacién Polinomial E! objetivo principal de la interpolacién polinomial es estimar los valores funcionales para uno o mas valores de la variable independiente desconocida, a partir de un conjunto de datos discretos de una funcién dada, es asi que a continuacién se presenta la definicién y algunos métocos de interpolacién. Definicién.- Dados n+l puntos de una funcién f: R—> R, un polinomio P de grado menor o igual a n que pasa por cada uno de los n+1 puntos dados, es amado polinomio interpolador de f. njeria con Méiodos Numéricosy Visual & En general el polinomio puede eseribirse como: PQ) Hartt. tage tat tax ta, Proposicién.- Dada una funci6n f R>R, ¥ (%js¥q)s O%»¥)> Ory), 4, lo que nos lleva a que: 6 , lo que nos lleva aque: a,+a,+a+a, =6 a-atay- a, =4 P(2)= 3. ,loque nos leva a que: a,+2a,t4a,+ 8a, =3 Esto es equivalente al sistema: 65.99)» (oy) » mL puntos distintos de f, existe exactamente up potinomio P(x) de grado menor o igual an que interpola af 124-8) (a) (0 Demostracién, Supongamos que existen dos polinomios Py Q distintos que rn Fi interpolan af. ITE Es decir: ne 4 124 sJlaJ | f(x.) = P(x) i= 0,1,....0 1%) = Q%) s1= OL. Definamos H(x) = P(x) - Q(x) ; el cual es de grado menor o igual a n. Evaluando H en x,, para i=0,1,... Hx, ) = PC, ) ~ QC4,) = Mlx,) - (x) = 0 H(x,)=0, parai=0,1,...n De donde se obtiene que H pose n+1 rafces, dado que Hes un polinomio de grado menor o igual a n, esto contradice el Teorema Fundamental de Algebra. Por lo tanto, existe un tinico polinomio P que interpola af. Ejemplo: Considere los datos (-2,5), (1,3). Podemos construir el polinomio de grado uno que interpola a estos datos, Esto es: El cual se puede resolver con el siguiente ebdigo en MATLAB: 10545653]; (1-24-8,1-11-1;111151248); w Obteniendo asi el resultado: a= [4.5000 1.9167 0.5000 -0.9167} En forma general para n_ puntos el polinomio seri dela form: PG) a+ ak te tat ¥= PL) =a, + ax, +. P(x) =5 = 213) (x42) Esto es equivalente al sistema: Métodos de Interpolacién i xt a, a 1M if Método Serie de potencias ly doe at | la 2 Fair métoda construye el Polinomio interpolador reemplzzando los puntos en es a - “ " - ca a,| = el polinomio P(x) de orden n-Iseguidamente resuelve el sistema de ecuaciones 1 xy x3 5 5 generado, hallando de esta manera sus coeficientes. Re i Ejemplo: Consideremos el caso de los datos (-2, 10), (-1, 4), (1, 6), ¥ (2, 3). 2 rl Entonces si escribimos P,(x) = a, + a,x + a,x°+ a,x? se tiene que: lox, x, x Vn P,¢-2)= 10, lo que nos leva a que: a,-2a,+4a,-Ba, =10 aor Garo Bonn Megabyte) (Cam iaren Megat Oma La matriz de coeficientes de este sistema se conoce como la matriz de ‘Vandermonde y se puede demostrar que s no singular silos x, son todos distintog (Esta condicién se asumiré de aqut en adelante). De modo que el polinomio de interpolacién P,, (x) existe por la proposicién anterior. Para calcular Ia matriz.de Vandermonde V, primero observamos que si j>1, lg ccolumna j de V se obtiene multiplicando (componente a componente) el Matriz ccolumna (x,,....,) con la columna j-I de V: i Yin Yi Lo cual se puede escribir en MATLAB como V(:j)=x.*V(:j-1), donde X= 1x. x) Aplicacién en Matlab EI siguiente e6digo en Matlab permite calcular los coeficientes de P, (x) Aqui x, ¥ son vectores de n componentes y x tiene todos sus compoentes distintos: RED ee AT GYED, Ya ee YT n= length(x); V = ones(n , n); for j=2in VCr, 5) =x. (2, 5-1); ena acViy Elpolinomio P, ,(x) interpola valores de 2 usando el siguiente cédigo: =x(1) 20.2: xim: imagen = a(n) ; for i = nl 1 imagen = a( i) + z.timagen % evaluacién del polinomio encajado end ptt, imagen); ; jemplo: Consideremos el caso de los datos (-2,10), (1,4), (1,6), ¥ 23) que pe toteriormente, Podemos caleular los coeficientes del polinomio de Jacién y su grafica en le siguiente archivo m ‘Function serie Eprint£("\n'): xeinput (‘Ingrese los valores de x: '); yeinput ("Ingrese los valores dey: ')7 nelength (x); Veones(n,n) 7 x=x' 9" for 32:n Ver SRV (3-1) end a= vy ex (1) :0.22x(m) 7 smagenan) forse medi 1rd imagen = a( 4 )42.ramegen end . aaa aaa 2 fone ore fom ewes ‘Gnuro Forouat Megabyte ) [Matlab 7 Para Ciencias Ingenieria con Métodos Numéricos y Visual Método de Newton El polinomio de interpolacién P, (x) es tinico, de modo que podemos buscar formas més eficientes de calcularlo, sin peligro de obtener otto polinomio. EI método de Newton de P.,,(x) es tal que el sistema para obtener los coeficientes es triangular inferior. Esto es una gran ventaja ya que la matriz. de ‘Vandermonde es densa y en general mal acondicionada. En el caso de los datos (-2,10), (-1,4),(1,6), y (2,3), en lugar de buscar P,(x) de fa forma a, + a,x +a,x2+ a,x? lo buscamos de Ia forma: P(X) = 0, + 6 (X42) + 6, (XF2\ex+T) + 6, GDI+) Obteniendo las siguientes igualdades: 10=p-2)= 6, 4 =pi-l) = ¢ +6, 6 =p) = o,+36,+ 66, 3 =p,2) = ot4¢,+12e, +12¢, Constituyéndose un sistema triangular inferior cuya solucién es: ¢,= 10, ¢,=-6,¢,= 73 ,¢,=-1IN2 Y donde el polinomio P,(x) toma la forma siguiente: P(x) = 10-6 (x42) + 1/3 (X#2)(4T) — N12 (X42) (RHO) Calculo de c, mediante diferencias divididas: Las diferencias divididas de orden 0, 1,2, ...1se pueden deducir recursivamente por medio de las siguientes relaciones: Shol= Sr) (xs) _flu)-fle, fly, +x, ]-Fle, — ra om (Gauro Eorrowat Megabyte fT flkg tia a Ejemplo: Consideremos los valores de una funcién f en forma tabular: x 100) Xo--2 | fxal=10 xt | thalea xe.1 | thel=6 %2 | fhx]-3 La tabla de diferencias divididas es: x | fhe) Abe.) {Pe % 2] fe. 1, %5 9] 2/10 @-10)-142)=-6 | (1481142) =78 | (HB-7AYR+2)=1102 fa @ainy=t | yaaa 116 GB-6yR- 3 213 Simplificando se obtiene X | fol | fo. x1] | FB. x1 20) | fo. 242.0) ait [6 [78 AM 4 ]1 413 1[e |-3 243 @) icon Mods Nunc Vis Donde en la primera fila se observan los coeficientes del polinomio P,(x) Para el caso general buscamos P, (x) de la forma: p.a)=Sallo-s el G Hex x) F(x ara) enter) Ox.) A continuacién presentamos el archivo m, para determinar la tabla de las iferencias divididas y los coeficientes del polinomio de Newton: Archivo m: Método de Newton ao (6 4s/8aloh a Bs ‘petate| \s'I2 artapue(‘Togcese Joe valoces de =e rinpue(‘Iesceee Jee valoees et 3 Interpolacién Polinomial por Partes El uso de polinomios de interpolacién de alto grado puede producir errores srandes debido al alto grado de oscilacién de este tipo de polinomios. Para evitar cia ‘Gruro Eorrowat Megabyte C) Jema se busca aproximar la funcién desconocida en intervalos pequefios sano poinomios de grad bao. E cso mds comsn de a interpolacion por partes e5 usar polinomios eibicos. ‘Polinomios Céibicos de Lagrange: Este método considera que n es divisible tres y busca un polinomio cabico que interpole ala funcidn en los puntos ya. %y2 sys. Este polinomio esté dado en su representacin de Lagrange ‘como: PO) = Sb Hapa Hy HEH aps gps RIA HE AN a 1 -1 MBps OREM Map Wap FPO KA Dy Para 1S jS W/3,xy,5 XS x, y h=X,,,_x, se asume constante para todo valor dei Interpolacién de Hermite: Este método construye un polinomio por pedazos H,(x) que sea cGbico en cada subintervalo [x,, ,x,] , 11m , y que interpole afl) y £°(x) en los puntos (x, ...., La funcién H,(x) queda determinada en forma tinica por estas condiciones y su célculo requiere de la solucién de n sistemas lineales de tamafio 4x4 cada uno. La desventaja de la interpolacién de Hermite es que requiere de la disponibilidad de los (f"(x),0 Si n} lo cual no es el caso en muchas aplicaciones. Interpolacién usando Splines: Los dos tipos de polinomios por partes que hemos discutidos hasta ahora tienen la desventaja de que su segunda derivada ‘noes continua en los puntos de interpotacién. Se ha observado que en aplicaciones gxéficas, el ojo humano es capaz de detectar discontinuidades en las segundas derivadas de una funcién, haciendo que los grdficos con este tipo de funciones ‘no luzcan uniformes. Esto motiva el uso de los splines que son funciones s(x) contintias por pedazos con las siguientes propiedades: 1. s(x) es polinomio etibico en [x,..x,],1sisn 2. s'(x),"(x)_ existen y son continuas en [x9,%, 3. s(x) interpota a la funcién fen los datos {(x),%),0,SiSn} 4. s(x) es continua en [x.,x,] Geimepie ST (@ )aies 7 Para Ciencias ¢ingerivia con Métodox Numéricosy Vi aD Siescribimos s(x) = a, +b,x+¢,x" +,x*,xe [x,,,x,}LSi ‘Vale la pena recalcar que los sistemas triangulares se resuelven eficientemente mediante sustitucién hacia atras y son por lo general bien acondicionados. La funcién gr de Matlab se utiliza para calcular las factorizaciones QR. Modificamos la funci6n leastsqu de arriba como sigue: function a=leastsqr(n,x,y); A=vandg(n,x); [Q Ri-ar(A): a=R\Q'*y); EI mismo ejemplo anterior pero usando esta subrutina en lugar de leastsqu produce resultados similares (al niimero de cifras mostradas) pero ahora los inimeros de condicién de R son 31.3586 y 239.3714 para n=3,4 respectivamente los cuales son mucho mejor que antes. teow ‘Gruro Eoronat Megabyte Funciones Polinémicas y de Interpolacién Matlab provee funciones para operaciones polinémicas esténdar, raices polinémicas, evaluacién y diferenciaci6n, Ademés presenta funcionesmés avanzadas, como ajuste de curvas y expansin en fracciones parciales, las cuales tienen aplicaciones importantes en las reas como sefial y el procesamiento de imagenes. Matlab representa polinomios como vectores fila, donde sus coeficientes se encuentran ordenados en forma descendente. Funcién | Dascripci cconv(P.Q) | Multiplica os polinomios P y Q. decon(P,) | Divide polinomios P yQ. Calcula los coeficienies de un poinomio partiendo de sus poly) ees polyder(p) | Calcuia los cosficientes de a deriva del Polinomio p. polyfit(cy) | Ajuste polinomico para un conjunto de puntos x,y. Polyvai(p.x) | Evalda el polinomio p en x. polyalm(A) | Evalda un polnomio con argumentc matricial residue(e,b) | Calcula la expansién en fracciones parciales de a yb. roots(p) | Caleula as races de polinomio p. Multiplicacién de Polinomios Ejemplo: Consideremos et polinomio P(x) >>P=[123] >>Q=[456] >> R= conv(P.Q Nos devuelve como resultado: 4 13 28 27 18 Esto es R(x) = P(x) Q(x) = 4x!+ 13x? + 28x?+ 27x + 18 XPFIK+3 yQ(R)=4x + SKE (Gauro Boronia Megabyte JMatlab 7 Pan ienis¢ingenirs con Métodon Numévcosy Visual Divisién de Polinomios Ejemplo: Consideremos el polinomio P(x) = 4x? +x2 2x43 y Q(x) = 22 43x46 >>P=[41-23}; >>Q=(13 6] >> [er] = deconv(P,Q) ‘Nos devuelve como resultado: c= 4 r Oe 7 Esto es o(x)= 4x-11 cociente y r(x) = 7x + 69 residuo. Raices de Polinomios _Ejemplo: Consideremos el polinomio P(x) =3°- 2x - 5 >> p=[10-2-5]; roots(p) Nos devuelve como resultado: Sor 2.0946 -1.0473 + 1.1359i -1.0473 - 1.13591 Observacién.- Por convencién, Matlab almacena las raices en vectores columna, Coeficientes de un Polinomio a partir de sus raices Consideremos las raices r,~ 2.0946; r,=-1.0473 + 1.13591; 1.0473 - 1.13591 de un polinomio P. eminn! Polinomios e Interpolacion ‘Nos devuelve como resultado: Esto es P(x) = 7 -2x -5 La funcién poly calcula los coeficientes del polinomio caracteristico en el ‘caso que Su argumento sea una matriz. Ejemplo: >> A=[1.23-0.9; 5 1.75 6901]; >> poly(A) Nos devuelve como resultado: 1.0000 -3.9500 1.8500 -163.2750 Estos son los coeficientes del potinomio caracteristico de ta matriz A, y las raices de este polinomio son los autovalotes de la matriz. Derivada de un Polinomio Ejemplo: Consideremos P(x)=2x'-1° +32 +5x+9 elppolinomioa deriva. >>P= [2-1 359} >> polyder(P) Nos devuelve como resultado: 8 Esto es P\(x) = 8x7 - 3x8 + 6x +5 Derivada de un producto de Polinomios polyder calcula la derivada de un producto P*Q con un solo argumento de salida. Ejemplo: Consideremos P(x) =x2-5x+9 y Q(@x)=x2+ x-1 Elemplo: 1-59); >> r= 2.0946; -1.0473 + 1.13591; -1.0473 - 1.13594]; >> Q=[1 1-1}; >> p= poly(t) | eG (GaxoForomn Megabyte arenes rr = (Gruro Eoronns Megabyte ) | (@ kaise a ‘Nos devuelve como resultado: 4-126 14 Esto es P'(x) = 4x? - 12x + 6x +14 Derivada de un cociente de Polinomios polyder calcula la derivada de un cociente P/Q con dos argumentos de salida Ejemplo: Consideremos P(x) =x?-5x+9 y Q(x) =x+7 >> P=[1-59}; >>Q= [17] >> [nd ]= polyder(P,Q) Nos devuelve como resultado: AO 1 14 -44 a= 114 49 Esto esn(x)= x? +14x-44 numerador y d(x) =x? + 14x +49 el denominador. Ajuste polinémico de curvas ‘Matlab utiliza el método de los minimos cuadrados para realizar el ajuste de curvas a través de un polinomio, considerando para ello un conjunto de datos tabulados de lacurva. Ejemplo: Consideremos los puntos de la siguiente tabla, oO; 1) 2) 4 eee eor >>x=[0 12 4} >>y=[117 61]; >> polyfit(x, 3) | Nos devuelve como resultado: 1.0000 0.0000 -1.0000 1.0000 Esto es P(X)= x°- x + L,y m=3 esl grado de! polinomio a ajustar 7 Fy Expansién en Fracciones Parciales residue expresa en fracciones parciales el cociente de dos polinomios, en el ‘caso que no posea raices miltiples. bis) 1 t + a(s) 3B, 5- Py ~P. +h Donde la r es un arreglo columna de residuos, pes un arreglo columna de polos, y k es un arreglo fila que contiene el rest. Ejemplo: Considere Ia funcién de transferencia a(s) / b(s) = (-4s + 8)/ (s? +68 +8) ppas[-4 8] >>b=[1 68]: >> [1 p,k] =residue(a, b) Nos devuelve como resultado: r Ey (Guuro Eonronas Megabyte (sg ‘Nos devuelve como resultado: 4-12 6 14 Esto es P'(x) = 4x? - 12x? + 6x +14 Derivada de un cociente de Polinomios polyder calcula la derivada de un cociente P/Q con dos argumentos de salida, Ejemplo: Consideremos P(x) =x?-5x+9 y Q(x)=x+7 >>P=[1-59]; > Q=[1 7h >> [nd] =polyder(P,Q) Nos devuelve como resultado: n= 1 14 44 a= 1 14 49 Esto es n(x) = x? + 14x-44 numerador y d(x)=x? + 14x-+49 el denominador. Ajuste polinémico de curvas ‘Matlab utiliza el método de los minimos cuadrados para realizar el ajuste de curvas a ‘tavés de un polinomio, considerando para ello un conjunto de datos tabulados dela curva. ‘Ejemplo: Consideremos los puntos de la siguiente tabla gO) eel ei y] 1| a] 7) >>x=[0 12 4]; >>y=[1 17 61; >> polyfit(x, ,3) Ea == Polinomios e Interpolacion Nos devuelve como resultado: 1.0000 0.0000 -1.0000 1.0000 Esto es P(x)= x"- x4 I,y m=3 esel grado del polinomio a ajustar. ry Expansi6n en Fracciones Parciales residue expresa en fracciones parciales el cociente de dos polinomios, en el caso que no posea rafces miltiples. BOs) a6) 5p SPs -P. +k, Donde la res un arregio columna de residuos, p es un arreglo columna de polos, y k es un arreglo fila que contiene el resto Ejemplo: Considere la funcién de transferencia as) b(s) = (-45 + 8)/(s* +65 +8) pras[4 8]; >>b=[1 6 8]; >> [1 pk ] = residue(a ,b) Nos devuelve como resultado: (Gauno Eorrowiat Megabyte emer) Polinomios e Interpolacion Interpolacién polinémica.- La funcién interp1 realiza interpolacién de una ‘sola dimensién, una operacién importante para el anilisis de datos y el ajuste de ‘eurvas. Esta funcién usa técnicas polinémicas, ajustando los datos suministrados ‘con polinomios su forma més general es: yl =interpl(x, y,x1, Método) Donde: X, es un arreglo de valores en orden creciente. ¥, es un arreglo que contiene las imagenes de x de una funcién. x1, es un mimero o arreglo nimeros los cusles van a ser interpolados. ‘Método, son las opciones a utilizar en la intespolacién, nearest(valor del ‘punto més préximo), linear(utiliza una funcién lineal para cada par de ‘Puntos consecutivos), spline(utiliza una funcidn cibica suave para cada ‘par de puntos consecutivos) cubie(utiliza una fiuncién cibica de Hermite). ou Esto es a(s) /b(8) = -12/(s +4) +8 /(s +2) ‘Ejemplo: Considere la funcién de transferencia a(s) / (8) = (Ss? + 58-6) /(? — 1) >ran[5 5-6]; >>b=[1 0-1}; >> [1 p,k] =residue(a, b) Nos devuelve como resultado: Observacién.-linear es el método predeterminado para la funci6n del interp1. Ejemplo: >>x=[0 1247 Il} >>y=[2-32 13 15 Ik >> x1=[3 5 6 8 9 10]; % valores a interpolar >> yl=interpl(, y, x1, ‘nearest’); >> plot(ay) >> holdon >> plot(xl, yl, or") >> grid Nos devuelve como resultado: yl= a3 ae ise r= 2 3 p= 1 a k= 5 Esto es a(s) /b(s) = 2/ (8-1) +3/(s-+1) +5 Interpolacién unidimensional Matlab prover dos tipos de interpolacién de una sola dimensién: + La interpolacién polinémica + Laiinterpolacién basada en FFT, este método calcula la transformada de Fourier de un vector que contiene los valores de una funcién periédica, (Gruro Borrowat Megabyte ) | (GuuroBorronat. Megabyte @ eer (ee ro) Ejemplo: >>x=[01247 1h >>y=[2 3213 15 1; >> xI=[3 5 6 8 9 10]; % valores a interpolar >> yl=interp1 (x, y, x1, ‘spline’); >> plot(xy) B >> holdon a >> plot(xl, yl, ‘or") a >> grid ‘ ‘Nos devuelve como resultado: 012471; yl= 2-32 13 15 1 8.1974 15.6036 16.1458 12.5393 9.1369 5.1661 3 5 6 8 9 10}; % valores a interpolar 2 >> yl=interpl(x, y, x1, ‘linear’); | t i pe ploitxy) >>holdon >> plot(xl, yl, ‘or’) >>egrid Nos devuelve como resultado: yl= 7.5000 13.6667 14,3333 11.5000 _8.0000_4.5000 Ejemplo: >>x=[ 1247 Ub >>y=[2 3213 15 I} >>xl=[3 5 6 8 9 10}; % valores a interpolar terpl(x,y, x1, ‘cubie"); >>plotixy) >>yl ‘Gruro Faron Megabyte) (Greve Eoronnc Megabye cae (> easter nm >> holden >>plot(xl, yl, ‘or’) >> grid Nos devuelve como resultado: yl= 8.4889 14.0762 14.7603 13.9152 10.9405 6.4955 Extrapolacién Si cualquier elemento de x1 esté fuera del rango de x, las funciones spline y enbic lo aceptan como argumento para extrapolar sus valores. Bjemplo: >>x= (01247 1} >>y=[2 3.2 13 15 1 2 x1=[3 56 8 9 1012 13}; Y% valores a interpolar y extrapolar >> yl=interpl (x,y, x1, ‘cubic’); >> plot(x,y) >> hold on >> plot(xl, yl, ‘or’) | >> grid Nos devuelve como resultado: yl= 8.488 14.076 14.760 13.915 10.940 6495 -5.126 -11.464 Velocidad y suavidad de los métodos Al escoger un método de interpolacién, se debe tener en cuenta que alguna requiera més memoria o més tiempo en los eélculos. + La interpolacién nearest es ef método més répido. Sin embargo, prove los peores resultados en términos de la suavidad. + La interpolacién linear usa més memoria que el método nearest, y requiere ligeramente més tiempo de ejecucién. A diferenciade la interpolacién nearest sus resultados son continuos. + Lainterpolacién spline tiene el tiempo de ejecuciénrelativo més largo, aunque toma menos memoria que la interpolacién eibiza y produce los mejores resultados de suavidad de todos los métodos de interpolacién. Sin embargo, si sus datos de entrada son poco uniformes y algunos puntos estan muy cercanos entre ellos se pueden obtener resultados inesperados. + La interpolacién cibica requiere més memoria y el tiempo de ejecucién que ‘ya sea nearest o los métodos lineales. ms - cena ee) | (Garmin Interpolacién basada en FFT {Le func ntepftrealizaintespolacién de una sola dimensién usando un métodg basado en FFT, el cual calcula la transformada de Fourier de un vector qug contiene los valores de una fimeién periddica. Comparacién de los Métodos de Interpolacién de dos dimensiones Estos ejemplos comparan los métodos de interpolacién de dos dimensiones en fuma matriz de orden 7x7. Ejemplo >> [x,y] =meshgrid(-3 : 1 : 3); o> z= 34(1-x)2.¥exp(-(8.2) - (y+1)."2) = LOS = x3 -y.95)... expC x2 ¥2)- U3 expl-(H41).92 -¥.2); >> surf. ¥2) Eso entonces calcula al Fourier inverso transforme usar més proposiciones ‘Su forma es y= interpft (x, n) X es un vector que contiene los valores de una funcién periddica, para puntos igualmente espaciados, n es el niimero de puntos igualmente espaciados que retoma. Interpolacién bidimensional La funci6n interp2 nos permite interpolar valores de dos dimensiones, su forma general es: ZI = interp2 (X, ¥, Z, X1, Y1, Método) Donde: Z, es un arreglo rectangular que contiene los valores correspondientes a los Puntos X, Y. XY, son arregios de un mismo tamaiio conteniendo los puntos para los cuales los valores en Z son dados. X4 YI, son areglos que contenen los puntos interpol. Ejemplo: Genera una malla mis fina debido al incremento de 0.25. >> [x, y]=meshgrid(-3 : 0.25: 3); . D> Z= 34(L-¥).2.Fexpl-(x./2) = (Y+1).22) - LO*(H/5 - x.13 - y."5)... exp(-x.2-y."2)- 1/3 %exp(-(x+1)."2-¥2); >> surfs, y,2) Método, son as opciones a utilizar en Ia interpolacién, existiendo tres métodos diferentes de interpolacién para datos de dos diateusiones: nearest(valor del Punto més préximo), bilinear(utiliza una combinacién de los valores de los 4 Puntos mas cercanos), bieubie(utiliza una combinacién de los valores de los 16 Puntos més cercanos). Gao Foren Megabyte) (Garon Mepis AS WH Jj ZX XI NRALLX Se : Ns EEK Bjemplo: Interpolacién en los puntos x1, y1 usando la opcién nearest, >> [x,y] =meshgrid(-3 : 1: 3); >> [x,y] = meshgrid(-3 : 1:3); D> 2 3*(L-R)A2MeNp({x.42)- (y+1).2) ~ 10*(W/5 -x.43 -¥.45).. PP a= 3*(L-x).°."exp(-(x./2) - (Y+1)."2) - 10S - 4.3 -y.5).. saad de ase es aaa sexp(-x.42- y.42) - 1/3exp(e(xt1)./2 - y.*2); ieee ‘>> surflx , y,Z) >>holdon ee >> xl =-3:03:3; >> yl=-3:0.3:3; >> [xL.yl] = mesharid(x1, yD: >> z3=interp2(x, y,z, x1, yl, ‘bicubie’); >> surf(xl, yl, 3410) >> (xl, yl ]=meshgrid(x1, y1); >> el ~ interp2(x, y, 2,21, yl, ‘neurest’); >> surf(xl, yl, 21410) ED sees Gruro Enron Megabyte ) (Cra Eoronne Megabyte . Ejemplo: Interpolacién en los puntos x1, y1 usando la opcién bicubic. Polinomics ¢ Interpolacién omen! ‘Comparacién de las curvas de nivel para los diferentes métodos de interpolacién, nearest, bilineal, y bicubi Ejemplo: Interpolacién en los puntos x1, y1 usando la opcién bicubic, 4 >>[x, y]=meshgrid(-3 : 1: 3); >a 3¥(1-x)."2.exp(-(x.2) -(y#1)."2) - 10%(/5 -x.A3--¥.45)... 7 exp(-x.A2- y.2) - 1/3exp(-(x41).42 - ¥.A2); >> surflxy, 2) 1 >> holden . >> xl =-3:03::3; 0 >> yl =-3:0.3:3; >> [x1, yl ]= mesherid(xl, yl); F >> 23 = interp2(x, y, z, x1, yl, ‘bicubic’); >> surf, y1, 3410) e CJ > i : fear Polinomios ¢ Tnterpolacion ($} Donde: Y, es un arreglo tridimensional que contiene los velores correspondientes a los puntos X, Y, Z. X., ¥, Z son arreglos de un mismo tamafio conteniendo los puntos para los cuales los valores en V son dados. X1, YI, y ZA son arreglos que contienen los puntos a interpolar. Método, son las opciones a utilizar en la interpolacién, existiendo tres métodos diferentes de interpolacién para datos de tres dimensiones: nearest( valor del punto més préximo), trilinear(utiliza una combinacién de los valores de los 8 ‘puntos més cercanos), trieubie(utiliza una combinacién de los valores de los 64 puntos més cercanos). 4 Todos estos métodos requieren que los arreglos X, Y, y Z scan crecientes 0 decrecientes. _Ejemplo: Interpolacién en los puntos x1, y1, 2 usando la opei6n linear. >>x=[03}; >> [x,y,z] = meshgrid(x, x, x); D>vex2ty2+z; >> [x1 yl, 21] = meshgrid( 1: 1:2); >> v1 =interp3(x,y,z,v, x1, yl, 21, ‘linear*) | Nos devuelve como resultado: 4 7.0000 10.0000 2| f } 10.0000. 13.0000 \ vIC,,2)= 8.0000 11.0000 11.0000 14.0000 Interpolacién de datos en tres dimensiones - sdimenss . Interpolacién de datos multidimensionales La funcién interp3 nos permite interpolar valores en tres dimensiones, su forma general es: La funci6n interpn nos permite realizar una interpolacién multidimensional, su VI = interp3(X, Y, Z, V, X1, ¥1, Z1, Método) forma general es: VI = interpn(X, Y, Z, ..., W, V, X1, Y1, Z1,..., W1, Método) Bs ‘Gruro Eprrowat Megabyte 9 aie Ny Donde: 'V, esunarreglo multidimensional que contiene los valores correspondientes alos puntos X, Y, Z, .. , W. X. ¥,Z, ..., W, son arreglos de un mismo tamafio conteniendo los puntos para los cuales los valores en V son dados. X1, ¥1, ZA, ..., WI, son arreglos que contienen los puntos a interpolar, ‘Método, son las opciones a utilizar en la interpolacién, para lo cual se cuenta ‘con tres métodos diferentes de interpolacién para datos multidimensionales: nearest(valor del punto més préximo), linear(utiliza una combinacién de los valores de los 2 puntos més cercanos en cada dimensién), eubie(utiliza una combinacién de los valores de los 4 puntos mas cercanos en cada dimensién), Cada método autométicamente traza un mapa de la entrada para un dominio igualmente espaciado antes de interpolar. Ejemplo:Interpolacién en los puntos x1, y1,z1, w1 usando la opcién nearest. >>x= [25] >> [x y, 2, w]=ndgrid(x); >eve >> [xl yl,z1, wl] =ndgrid@3 : 1:4); >>vi = interpn(s, y, 2, w, v,x1, yl, 21, wl, ‘nearest’) D+ y+ 2-wA2; Nos devuelve como resultado: VIG, 31, = og 25 28 vIG, 3,2, = 710 28 31 vIG, 3 1,2)= “17-14 a7 2,2)= “14-11 710 268 Teer ‘Gruro orton Megabyte) (ee roomier Mallas para datos multidimensionales La funcién del ndgrid genera arreglos multidimensionales de datos para la evaluacién c interpolacién de una funcién, ndgrid transforma el dominio especificado por unaserie de vectores de entrada en una serie de arreglos de salida La sintaxis para ndgrid es: [X1, X2, X3,... J=ndgrid(x, x2, x3, ..) jemplo: Consideremos la evaluaci6n de una funci6n de tres variables w= y.exp(x?- y= 2") Para evaluar y graficar esta funcidn escribiremos: >>x5-2:02:2; >>y=-2:0.25:2; >>z=-2:0.16:2; >> [x,y,z] =ndgrid(x, y, 2) D> Wa ytexpCx.A2- y.A2- 2.42); >> slice(y, x, 2, W, [1.20.8 2}, 2, [-20.2)); (Gato egy OBJETIVO: ¢ Utilizar métodos de aproximacién numérica enel célculo de una integral definida, Integracién CONTENIDO: lumérica -V Método del trapecio. -V Método de Simpson 1/3. Método de Simpson 3/8. \ Método de Boole. \ Comparacidn de Métodos. Y Integracién doble. Integracién Numérica Enel presente capitulo se describen diferentes métodos de integracién numérica Jos cuales permitenevaluar integrales simples,’ f(x)d,¢ integrates dobes , SLES Fy dye dondetasfancones f(x), ry) puedenestr dadasen Je Jove forma analitica o mediante una tabla. La integracién de una funci6n tiene muchas aplicaciones en Ia ciencia e Ingenierfa por ejemplo: 4) Un topégrafo podrfa necesitar saber el drea de un campo limitado por una corriente zigzagueante y dos caminos. ) Un ingeniero en hidréulica tal vez requiera conocer el érea de Ia seccién transversal de un ri ©) Un ingeniero en estructuras quizas necesita determinar la fuerza neta ejercida por un viento no uniforme que sopla contra un lado de un rascacielos.. Oe Estas son s6lo algunas de las diferentes aplicaciones de la integracién que se ‘modelarfan como: T= fl f(x)ax . Para calcular la integral definida f'f(x)dx por el Segundo Teorema Fundamental del Célculo se tiene: [i food = £00) [f= fb) - A. ‘Sin embargo, para el cAlculo de la antiderivada existen integrales definidas tales como: few axfe . p= Faz Para los que no existe un método conocido para encontrar su antiderivada, pero sila funci6n f(x) es continua en el intervalo cerrado (a, b] la integral definida existe y es un niimero tnico. Para estos casos, en que no se pueden encontrar la antiderivada, veremos a continuacién métodos de aproximacién para estimar el valor de una integral definida, Método del Trapecio Sea f :[a,b]—> R una funcién continua y positiva (£(x) 2 0) enelintervalo cerrado [a,b], y sea “T” la regi6n plana limitada por la gréfica de la curva y = f(x) , por el eje X-y las rectas x = a y x= b (llamada regidn bajo la gréfica f de a hasta by. Tntegracién Numérica y Donde: T=[' soar Para deduciria férmula de célculo para laintegral definida T= f'f(x) dx, por Método de Trapecio, consideremos los siguientes pasos: ide ‘A. Sea [a,b] un intervalo cerrado con a 8(%) = Axj + Bx, +C = A(x, +h)? + B(x +h)+C xg +2Axyh+ Ah? + Bx, +Bh+C —» (2) 80%) = Ax} + Bry + C = A(xq + 2h)? + Bix, +2h)+C 8(%)) = Ang +4Axgh+4Ah? + Bx, +2Bh+C (3) ‘Sumando: (1), (2) y @): B(Xq) + 4g(X,) + g(x.) = 6AXy +12Axch + 8A’ + 6Bx, + 6Bh +6C 8(%q) + 4g(X,) + (x2) = 6A; +12Ax,h +8Ah? + 6Bx, +6Bh +6C Por el segunado teorema fundamental del célculo se tiene: Pecnac =f" (ar? +Br+C)dr= [o,#2h9" -g)+ Flos +20 -ag]+ Ole #260) [sca Ale) + 6ajh-+ 1258? +88? — xh) 2 ly aah an? — ls, +24-%] f store =2" [acoag 4125484887) + B(x +64) +6CT"Le(s)#46() + 20%)] [[eear= 4 Prax +6xh-+4n)]+ 3 [2n(2x, +2m)]+C(2h) Cea tonoun Megabye) (Capoten Megye [Matlab 7 rors Ciencias inpeiets con Méiodos Numercosy Vis yy [etodr=Slrem arene so)] S=[/seoae= [’ eoae 252 ff seode="Lptay)+4r6))+ 00) a 3 Generalizacién del Método de Simpson 1/3 para 2n subintervalos Sea (a, b] un intervalo cerrado con a R una funcién continua y positiva (/(x) 20) enel intervalo cerrado [a, b], y sea “S” la regién limitada por la gréfica de la curva y = f(x), por INTEGRACION NUMER ca el eje X y las rectas x=a y x=b (llamada regién bajo la griica f de a hasta b). Gréficamente a ‘Gnuno Eoronar Megabyte ) (GaxoEaroan Mepabye ® Donde: S= [fede Para deduci la formula de élculo para la integral definidaS=[° f(a) ay Por Método de Simpson 3/8, consideremos los siguientes pasos: A. Sea [a, b] un intervalo cerrado con a (4) Ademis: F(x) = 86%), £04) = B04), £0K) 804), £0) = st) ‘Sumando: (1), (2), (3) y (4) se tiene: (49)+34(4,) +3404) 805) = BAR +36Axj + TDA + SAAN +8839 + 24%, +24BH? +8Cx, +12Ch+8D 0c) 3a) 38( x5) + 80.5) = BAK 436A IN TAK gh? 5EAK ') Babe 424 gh 4 28h sci +1 +2 3) Por el Segundo Teorema Fundamental del Céleulo SY fp ae Art Be OP set ff 7 Pecode =f" art + Be? +cx+ Dyae =A 4 ES Daf Yyjfy a=% x, 2 x AoE Gauro Boron Megabyte ) (Grore aromas Mepabte a(aide=t les +309 2d] fa, 439° 2) lox 3h)? —22 + Dla, +3h)-x,] la A a(xdx = 4 bias + 18x3h + 36xyh? + 27h?) ]+ wit BhBax5 + 9x yh + 9n°)]}+ £ hax, +3h)]+ DGh) fecodr=% apes F18xjh +36, h? 2m) 45B By ae Gag + 928+ 9h?) +4C(2x, +3h)+8D [lscoa ma [se +36xgH+72xgh? + 54h?) + ] 8 | BOx; + 24x9h + 24h?) + C(8x, +12h)+8D 3h [etrae= Fle cr+3e(a)+3e(%)+ 0(0)] b 3h [sear = FUP) +320) +3F04)+ F)] “8 [fender PL (9)+ 3/4) 43/04) + Fs) Generalizacién del Método de Simpson 3/8 para 3n subintervalos Sea [a,b], un intervalo cerrado con a R una funcién continua y positiva (f(x) 20) en el intervalo cerrado [a,b], y sea “B” laregién plana limitada por la grfica de la curva y=flx), por eleje X y las rectas x=a y x=b (Ilamada regiOn bajo la grifica f de a hasta b). Gréficamente: eam Inegracion Numérica Entonces: B= if ‘Fode Para deducir la férmula de c4lculo para la integrel definida B = Ih ‘Fodx por Método de Boole, consideremos los siguientes pasos; A, Sea [a, b] un intervalo cerrado con a ) a(,)= Axt Bx+ Cx+ Dx, +E (x,+ 3h) + BG, + 3h) + C(x, + 3h)!+ D(x, + 3h)4E g(%)= Ax+ 12Axh + S4Axh?+ 108Ax,h?+ 81Aht+ Bx+ 9Bxh +27Bx,h°+ 27Bh! + Cx+ 6ex,h+ 9ch*+ Dx0 + Dh +E >) a(x,)= AX+ Bxt Cx+ Dx,+E (xy + 4h)!-+ BOX, + 4h)? + C(x, + 4h)? + D(X + 4h)+E Ax-+16Axh +96Axh?+256x,h? +256h"+Bx+ 12Bxh + 48Bx,h?+ 64Bh? 78) a, Bry + Cx,44 8cxjh + 16ch? + Dx,+ 4Dh +E Ademés: 10) = BGR) fy ‘Sumando (1), (2), (3), (4) y (5) se tiene: (2), £0) = BO), Lay) = BOE) — BO) 7g (x) +32g(x,)+ 12g (x,) +328 (x) + 7g (x4) = 7Axs + 7B + 7Cxs + TDx, + TE +32Ax5 +128Ax3 +192Axgh? +128Axgh? +32Ah +32Bxg + 96Bxgh + 96Bx gh” + 32Bh° +32Cx? + 64Cx2h + 64Cx gh 4+32Ch? +32Dx, +32Dh+32E +12Ax! + 96Axh + 288AxGh? + 384 Axgh* +192h* +12Bxq + 72Bxgh+144Bxyh® + 96Bh +12Cx2 +48Cxgh? +120x, +12Dx, + 24Dh +12E +32Axj +384Ah+ IT2BAxGh? + 3456Axoh? + 2592Ah' +32Bx, + 28BBxGh + 864Bx yh” 864Bh? +32Cxj +192Cxpht + 288Ch* +32Dx, +94Dh+32E + TAX, +112Axph + 672Axgh? +1792 Axgh? +1792Ah° + B4Bxgh +336Bx + 448B7Cx3 + 56CKyh + 112Ch, + Dx, +280Dh+7E ‘Simplificando : TeX ) + 32g(x ,) + 12g(x y) + 32g(K 4) + Tal 4) = A(90x$ + 720 x3h + 2880 x3h? +5760 xgh? + 4608 h* + B( 90x} +540 x3 +1440 xgh? +1440 h? J+ C(90%3 +360 + 480 h? )+ D( 90x» + 180h )+ 90E 3 (6) Por el Segundo Teorema Fundamental del Calculo: “a AL BY CP DE, iat [ocndeefo ae ue +2 +a Bute BE SE PE A fiscodr= len +4ny* = lS log +4hy¢ ~dl Slo 44h)? — 223 ]+ 5 Plog any xf] 5 +40)~] Gear Enon Megabyte ) { (Gaim ngage (eter ccnp sn Nn Nina via a flscode=4 fej + 20x4n-+ 160xgh* + 640x3h* + 1280x)h* +1204h° — x3] bs +16x3h+ 96x3h? + 256x,h" + 256h' She $12xgh-+ 4844 h2 + 64h? — 22] Plag +8iy-t61? ~aj]+ els, +4h— 29] [ecoar? 2 roca) 32¢(35)+12¢(25)432¢(0)+ 7860] [econ =r) 32/4) +12 Fox) +32F5)4 1/00] » B=’ fae= A brro +3246, )+12F()+32F(%)+ 7 4)] En la generalizacién del Método de Boole para 4n subintervalos Se obtiene la siguiente formula: Be [fejden b[ VCO SC) +2) +326) +147) at | ~ I4F (4) +32f (x, 5) +12F (%, 9) +32f (4): +7F(%,) Ejemplo:Calcularel valor aproximado dela siguientes integral definida [xd considerando cuatro subintervals y cuarenta y ocho subintervalos respectivamente. Solucién: Para n= 1. pai INTEGRACION NUMERICA Para n= 12. INTEGRACION NUMERICA Geo Horomia Megabyte) (Gao = nea ee vom: Método de Boole _ ge a= astéipiayayieei) 2 cenztoumip (stint) Det4ranwl p(s se taeation 9- ypreranin: 20- pioecn, lz - semi0.05:m; fa = yeevetie): = beetn ase aes ae ba ae Comparacién de los métodos de integracién numérica Para la comparacién de los Métodos de Integracién Numérica se evaluaré la siguiente integral definida, f'x°"(1.2—x)(1—e*™ den igual nimero de intervalos. oy eel sr 1 Método del INTEGRACION NUMERICA a = trapecio.( n= 12) | : Dy J 7 te | | INTEGRACION NUMERICA fee Método de Simpson Y3(n=6) Método de Simpson Va (a= 4) 7 (Gauro Enrrownt Megabyte Método de Boole( n= 3) ries INTEGRACION NUMERICA homie a sone rome a 2th | Integracién Doble Para calcular la integral doble en el orden dydx, consideraremos una regién cerrada “D”, llamada también Dominio de Integracién, en el plano XY. Sea f: DCR? > R, es una funcién continua sobre D, donde : D={xy)eR?/asx xo Xin a peas a Ea Me) (Gamma A ta ECUACIONES DIFERENCIALES ym omar nge ee -F~ see ET = tegen FF hares 10 [aceon =) = 8+ mittens foe) oe ae EE ADE Lal fares te ibe Nee AED & sve 2) ee spe Ecuaci6n diferencial ordinaria de Segundo Orden La sustitucién de las derivadas por una nueva variable permite que las ecuaciones diferenciales de orden superior sigan el proceso desarrollado para ‘ecuaciones diferenciales de primer orden, como a continuacién se detallan Forma: y'(#)+ay'(t)+by(t)=s(¢) y(t)=yo ylto)=¥o Calcular : y(t") Sea v(t) = y'(), reemplazando y despejando en (*) se obtienen las siguientes eouaciones diferenciales de primer orden con valores iniciales. pe v(t) lt tyth a thy’, v,=y'y +h s(t.) -ay'y- by] El proceso continua asignando el valor de: v, en y",3 ¥, eM Yoi¥ h=h+h, hasta calcular y(t"). Bjemplo: Dada la ecuacion diferencial Y" +sin(x)Y"+x°Y = 3/x Xy= 2 Yo= Ly Y'g = -2 -valores iniciales Hallar el valor de y(4), para n= 4. (Gaia Megabyie a am ECUACONES DIFEREICIALES ere | west an coal. *| Ecuacién diferencial ordinaria de Tercer Orden Forma: y"(t)+sy"()+by @)+ey(0)=s(t) Sea y'(D=ult) ; yi =y, WO=VO 5 uG)=wey, VO = 8( - av(d) - bul) - cy); v(t) = vy= y"y 5 reemplazando despejando en (*) se obtienen las siguientes ecuaciones diferenciales d primer orden con valores iniciales. = ¥q +hls(t,) -ay",— by’, -cyg] (0) ~ av(t) - bu(t) - cyt) El proceso continua asignando los valores de : venyys wey’, s y,enyy; Y¥ t,=1+h, hasta calcular y(t*), Ejemplo: Dada la ecuacién diferencial Y"” +3xY” +cos(x)Y'-xY = <° Xy= 2 Yo= Ls Y'g= 1 ¥"g= 3 svalores iniciales Hallar el valor de y(4), paran =8 . EE an ECUACIONES DIFERENCIALES me sn 08: A continuacién en ese proceso inductive se presenta el desarrollo para ecuaciones diferenciales de Cuarto Orden. (Grune Eorowat Megaby oo. @ ine DY Ecuaci6n diferencial ordinaria de Cuarto Orden Forma: OBJETIVO: J Aplicar las funciones de la estadistica . descriptiva de matlab en casos ey (t)+ey(t)=s(t) ‘concernientes a salud CONTENIDO: V Poblacién y muestra \ Tipos de datos. \ Variables cuantitativas ycualitativas. \ Escalas nominales y ordinales. \ Medidas de tendencia central : media, ‘mediana y moda, y(t) =Yo (0)- aw(t)-bv()-cu(t)-ey(t) 5 w(t,)=w,=¥", . eemplazando y despejando en (*) se obtienen las siguientes ecuaciones diferenciales de primer orden con valores iniciales. ¥ Ww + hls) - aw, - bv,- cu, ey,] Wi= Wy +hlstt,)- ay", by”4- Cy'¢t ep] G= s(t) - aw(t) - Bvt) - cult) - ey) El proceso continua asignando los valores de : w,eny",; v,eny"y;t,eny’,;y,enyy; y t,=t,+h, hastacalculary(t*), Estadistica Descriptiva Estadistica Descriptiva en Salud Existen diferentes razones por las cuales los profesionales de la atencién primaria deben conocer los fundamentos de la epidemiologfa y la estadistica ‘como instrumentos del trabajo cotidiano. Entre dichas razones sefialamos las siguientes: los términos estadisticos y epidemiol6gicos invaden la literatura médica, la medicina es cada vez més cuantitativa, su conocimiento nos permitiré leer la bibliografia médica con més capacidad critica para detectar ertores potenciales y falacias. Nos ser también til para llegar a conclusiones correctas acerca de procedimientos para el diagnéstico y del resultado de las, pruebas. Su conocimiento nos permitiré a su vez valorar protocolos de estudio ¢ informes remitidos para su publicaci6n y participar, en definitiva, en la investigacién médica. Resulta imprescindible, por lo tanto, conocer los conceptos basicos de estadistica que nos faciliten la realizacién de estudios y ‘conocer las posibilidades a desarrollar con ayuda de profesionales estadisticos para mejorar dicho andlisis. En este trabajo se pretende dar a conocer algunas nociones estadisticas que nos ayudardn a explorar y describir, en un primer memento, nuestros datos. ab 7 Pars Ciencias agnia con Mis Nica Vl Poblaciones y muestras Cuando se realiza un estudio de investigacién, se pretende generalmente inferi, © generalizar resultados de una muestra a una poblaci6n, Se estudiaen particulae un reducido némero de individuos a los que tenemos acceso con la idea de Poder generalizar los hallazgos a la poblacién de la cual esa muestra procede Este proceso de inferencia se efectia por medio de métodos estad{sticos basadog enllaprobabilidad. Lapoblacién representa el conjunto grande de individuos que deseamos estudiar y generalmente suele ser inaccesible. Es, en definitiva, un colectivo homogéneo que retine unas caracteristicas determinadas. La muestra es el conjunto menor de individuos (subconjunto de la poblacién accesible y limitado sobre el que realizamos las mediciones o el experimento con Ta idea de obtener conclusiones generalizables a la poblacién). El individuo es cada uno de los componentes de la poblacién y la muestra. La muestra debe ser representativa de la poblacién y con ello queremos decir que cualquier individuo de la poblacién en estudio debe haber tenido la misma probabilidad de serelegido. ‘Las razones para estudiar muestras en lugar de poblaciones son diversas y entre ellas podemos sefialar: 4. Ahorrar tiempo. Estudiar a menos individuos es evidente que leva menos tiempo. b. Como consecuencia del punto anterior ahorraremos costes. ©. Estudiar la totalidad de los pacientes o personas con una caracteristica determinada en muchas ocasiones puede ser una tarea inaccesible o imposibl de realizar. ° : 4. Aumentar la calidad del estudio; al disponer de més tiempo y recursos, las observaciones y mediciones realizadas a un reducido némero de individuos Pueden ser més exactas y plurales que si las tuviésemos que realizar a una oblacién. ¢. Laseleccién de muestras especificas, nos permitiré reducir la heteros it pgencidad de una poblacién al indicar los criterios de inclusién y/o exclusi6n. (eI —Eaacistica Deserptval ) Tipos de datos Lo que estudiamos en cada individuo de la muestra son las variables (edad, sex0, peso, talla, tensiGn arterial sist6lica, eteétera). Los datos son los valores que toma la variable en cada caso. Lo que vamos a realizar es medir, es decir, asignar valores a las variables incluidas en el estudio. Deberemos ademés concretar la escala de medida que aplicaremos a cada variable, La naturaleza de las observaciones sera de gran importancia a la hora de legit el método estadistico mas apropiado para abordar su andlisis. Con este fin, clasificaremos las variables, a grandes rasgos, en dos tipos: variables cuantitativas variables cualitativas. a. VARIABLES CUANTITATIVAS: Son las variables que pueden medirse, cuantificarse o expresarse numéricamente, Las variables cuantitativas pueden ser de dos tipos: + Variables cuantitativas continuas, si admiten tomar cualquier valor dentro de un rango numérico determinado (edad, peso, tala). + Variables cuantitativas discretas, si no acmiten todos los valores intermedios en un rango. Suelen tomar solamente valores enteros (niimero de hijos, mimero de partos, niimero de hermanos, etc... b. VARIABLES CUALITATIVAS: Este tipo de variables representan una ccualidad 0 atributo que clasifica a cada caso en una de varias categorias. La situacién més sencilla es aquella en la que se clasifica cada caso en uno de dos grupos (hombre/mujer, enfermo/sano, fumador/no fumador). Son datos dicotémicos o binarios. Como resulta obvio, en muchas ocasiones este tipo de clasificacién no es suficiente y se requiere de un mayor nimero de categorfas (color de los ojos, grupo sanguineo, profesién, etc... En el proceso de mediciGn de estas variables, se puzden utilizar dos escalas: ESCALAS NOMINALES: ésta es una forma de observar 0 medir en la que los dlatus s ajustan por categorfas que nv nranticnen uu relacén de orn entre sf (color de los ojos, sexo, profesién, presencia o ausencia de un factor de riesgo o enfermedad, et... ESCALAS ORDINALES: en las escalas utilizadas, existe un cierto orden 0 jerarqufa entre las categorias (grados de disnea, estadiaje de un tumor, etc.) Geo onan Megabyie) (Gaming Estadistica descriptiva ‘Una vez que se han recogido los valores que toman las variables de nuestrp studio (datos), procederemos al andlisis descriptivo de los mismos. Para variableg categéricas, como el sexo 0 el estadiaje, se quiere conocer el ntimero de casos en cada una de las categorias, reflejando habitualmente el porcentaje que representan del total, y expreséndolo en una tabla de frecuencias. Para variables numéricas, en las que puede haber un gran niimero de valores ‘observades distintos, se ha de optar por un método de andlisis distinto, respondiendo alas siguientes preguntas a. zAlrededor de qué valor se agrupan los datos? b. Supuesto que se agrupan alrededor de un ntimero, gcmo lo hacen? ;muy concentrados? muy dispersos? Medidas de tendencia central Las medidas de centralizacién vienen a responder a la primera pregunta, La medida més evidente que podemos calcular para describir un conjunto de observaciones numéricas es su valor medio. ‘La Media es una medida de tendencia central que se calcula como la suma de todos 4os valores de una variable dividida entre el nimero total de datos de los que se dispone. Como ejemplo, consideremos 10 pacientes de edades 21 afios, 32, 15, 59, 60, 61, 64, 60, 71, y 80. La media de edad de estos sujetos sera de: 214324154594 60+4614 64471480 10 2.3aiios Aplicacién en Matlab: >> x= [21,32, 15, 59, 60, 61, 64, 60, 71, 80]; >> Media = mean(x) >> bar(x) Medi 52.3000 Mis formalmente, si denotamos por (X,, X,,..X,) los n datos que tenemos recogidos de la variable en cuestién, el valor medio vendré dado por: Media(X) = La Mediana. - Es una medida de tendencia central equidistante de los extremos, La mediana del ejemplo anterior seria el valor que deja a la mitad de los datos por encima de dicho valor y la otra mitad por debajo. Si ordenamos los datos de mayor a menor observamos la secuencia: 15, 21, 32, 59, 60, 60,61, 64, 71, 80. Como quiera que en este ejemplo el niimero de observaciones es par (10 individuos), los dos valores que se encuentran en el medio son 60 y 60. Si realizamos el célculo de la media de estos dos valores nos dard a su vez 60, que es el valor de la mediana, = | aE 385 (Gamera egaore ‘Aplicacién en Matlab: >>x=[15,21,32, 59, 60, 60,61, 64, 71, 80]; >> Mediana = median(x) En el ejemplo anterior el valor que més se repite es 60, este valor representa la moda, >> bar(x) Nos devuelve como resultado: Mediana = 0 Grafica n C) 2 ‘0 rr a) | Sila media y la mediana son iguales, la distribuci6n de la variable es simétrica. La media es muy sensible a la variacién de las puntuaciones. Sin embargo, la mediana es menos sensible a dichos cambios. La Moda.- es una medida de tendencia central que presenta la mayor frecuencia en los datos. Dx, - Media)? exer res Dessriniva } Medidas de dispersion Tal y como se adelantaba antes, otro aspecto a terer en cuenta al describir datos continuos es la dispersin de los mismos, existen distintas formas de ‘cuantificar esa variabilidad. De todas ellas, Ia varianza ($*) de los datos es la ‘mis utilizada. Varianza.- Bs la media de los cuadrados de las diferencias entre cada valor de la variable y la media aritmética de la distribucién, Esta varianza muestral se obtiene como la suma de las de las diferencias de ccuadrados y por tanto tiene como unidades de medida el cuadrado de las unidades de medida en que se mide la variable estudiada. Enel ejemplo anterior la varianza serfa: 2 52523)" #215327 : 10 Aplicacién en Matlab: >> x=[21,32, 15, 59, 60, 61, 64, 60, 71, 80]; ar(x,1) Nos devuelve como resultado: Varianza = 427.6100 La desviacién tipica (S).- es la raiz cuadrada de la varianza, Expresa la dispersign de la distribuci6n y se expresa en las mismas unidades de medida de la variable. La desviacién tipica es la medida de dispersién més utilizada en estadistica, >> Varianz: So, ~Media(x))* n=l (Gnuro Eorowat Megabyte (@ ta Tr Cos cng oats Rane ‘Aunque esta formula de la desviacin tipica muestral es correcta, en la prictica, Ia estadistica nos interesa para realizar inferencias poblacionales, por lo que en el denominador se utiliza, en lugar de n, el valor n-1. Por tanto, la medida que se utiliza es la cuasi desviacién tipica, dada por: Sx, -Mediagy? nol Aunque en muchos contextos se utiliza el término de desviacién tipica para referitse a ambas expresiones. En los célculos del ejercicio previo, la desviacién tipica muestral, que tiene ‘como denominador n, el valor seria 20.678. A efectos de calculo lo haremos como n-1 y el resultado seria 21,79: Aplicacién en Matlab: >>x=[21,32, 15, 59, 60, 61, 64, 60, 71, 80}; >> Desviacion = std(x, 1) % considera como denominador n Nos devuelve como resultado: 20.6787 >> Desviacion = std(x) _% considera como denominador n - 1 Nos devuelve como resultado: 21.7973 El haber cambiado el denominador de n por n-I esté en relaci6n al hecho de que esta segunda férmula es una estimacién nds precisa de la desviacin esténdar verdadera de la poblacién y posee las propiedades que necesitamos para realizar inferencias a la poblacién. Cuando se quieren sefalar valores extremos en una distribucién de datos, se suele utilizar la amplitud como medida de dispersion. La amplitud es la diferencia entre el valor mayor y el menor de la distribucién. Por ejemplo, utilizando los datos del ejemplo previo tendremos 80-15 =65. ‘Como medidas de variabilidad més importantes, conviene destacar algunas caracteristicas de la varianza y desviaci6n tipica En ‘Son indices que describen la variabilidad o dispersi6n y por tanto cuando Jos datos estén muy alejados de la media, el numerador de sus frmulas serd grande y la varianza y la desviaci6n tipica lo serén, ‘¢ Alaumentar el tamafio de la muestra, disminuye la varianza y la desviacién tipica. Para reducir a la mitad la desviacién tipica, la muestra se tiene ‘que multiplicar por 4. ‘# Cuando todos los datos de la distribucién son iguales, la varianza y la desviaci6n tipica son iguales a0. ‘Para su célculo se utilizan todos los datos dela distribuci6n; por tanto, cualquier cambio de valor sera detectado. COEFICIENTE DE VARIACION (CV): Es una medida de dispersion relativa de los datos y se calcula dividiendo la desviccién tfpica muestral por la media y multiplicando el cociente por 100. Su utilidad estriba en que nos permite comparar la dispersion o variabilidad de dos o més grupos. Asf, por ejemplo, si tenemos el peso de 5 pacientes (70, 60, 56, 83 y 79 Kg) cuya media es de 69,6 kg, y su desviaci6n tipica (s) = 10,44 y la TAS de los mismos (150, 170, 135, 180 y 195 mmHg) cuya media es de 166 mmHg y su desviacién tipica de 21,3. La pregunta serfa: ,qué distribuci6n es més dispersa, el peso 0 la tensi6n arterial? Si ‘comparamos las desviaciones tipicas observamos que la desviaci6n tipica de la tensién arterial es mucho mayor; sin embargo, no podemos comparar dos variables ‘que tienen escalas de medidas diferentes, por lo que calculamos los coeficientes de variaciés CV de la variable Peso = CV de ba variable TAS = A la vista de los resultados, observamos que la vatiuble peso tiene mayor dispersion. Aplicacién en Matlab: >> x1 =[70, 60, 56, 83, 791 >>x2=[150,170,135,180,195]; @) >> Medial = mean(x1) Nos devuelve como resultado: 69.6000, >> Media2 = mean(x2) Nos devuelve como resultado: 166 >> Desviacionl = std(xt,1) Nos devuelve como resultado: 10.4422 >> Desviacion? = std(x2,1) Nos devuelve como resultado: 21.3073 >> Variablepeso = Desviacion1/Medial OBJETIV 4 Disefiar y elaborar una interfaz grafica en| satlab. CONTENIDO: -¥ Controles de una interfaz grafica. - Propiedades generales de los controles, Nos devuelve como resultado: \V Elaboracién de una interfaz grafica. te -V Funciones de una interfaz grafica. >> VariableTAS= Desviacion2/Media2 Bend on Math Meni contextual. Nos devuelve como resultado: 12.8% Cuando los datos se distribuyen de.forma simétrica (y ya hemos dicho que esto ocurre cuando los valores de su media y mediana estén préximos), se usan ppara describir esa variable su media y desviacidn tipica. En el caso de distribuciones asimétricas, la mediana y la amplitud son medidas més adecuadas. En este caso, se suelen utilizar ademds los cuartiles y percentiles. Los cuattiles y percentiles no son medidas de tendencia central sino medidas de posicién. El percentil es el valor de la variable que indica el porcentaje de una distribucién que es igual o menor a esa cifra. Asf, por ejemplo, el percentil 80 es el valor de la variable que es igual o deja por debajo de sf al 80% del total de las puntuaciones. Los cuartiles son los valores de la variable que dejan por debajo de si el 25%, 50% y el 75% del total de las, puntuaciones y asf tenemos por tanto el primer cuartil (QU), el segundo (Q2) y el tercer cuartil (Q3). Em ‘Gauro Eortowat Megabyte Interfaz Grafica Interfaz Grafica El presente capitulo describe los elementos de una programacién orientada a objetos, denominada en Matlab, Interfaz Grafica del Usuario (GUD, el cual va hha permitir al usuario, interactuar con el ordenador de una manera répida en la solucién de problemas. Controles de Ia interfaz del usuario (GUI) Los controles son objetos que se ubican dentro de GUI y permiten mostrar, aceptar o validar datos. La paleta del formulario editor contiene los controles de interface de usuario que usted puede usar en su GUI, Push button, Sliders, Toggle buttons, Frames, Radio buttons, Listboxes, Checkboxes, Popup menus, Edit text, Ejes, Static text y Figure. stos componentes son los uicontrol de Matlab yes por lo tanto programable ‘en sus diferentes propiedades, a continuacién se presenta informacién sobre ‘estos componentes. A). Push button (@]Push Button El control push button genera una accién cuando el usuario hace un clic sobre 41 (por ejemplo, un botén de OK puede cerrar una caja de didlogo). Em Propiedad De Los Controles String.- Esta propi er erin® Esta propiedad posee la cadena de caracteres que se mostrardsobye ‘Tag - Guide usa la propiedad Tag para nombrar las ibfuncién del callba clarchivo m dela apicacién, Coloque en Tag un nombre i = , nombre close button) antes de activar ef GUL, ceive Corea Programando el Callback Cuando el usuario pulsa el botén pushbutton devuelve un valornimantiene un estado. “MAK 8 secu y no El c6digo siguiente ilustra cémo pro} 7 »gramar el callback de un pushbu archivo m de apicacin del GUI, para constuir una grafica: function pushbutton1_c. fae Callback (hObject, eventdata, x = 0.2:0.01 ¥ = sin(1./x); plot (x,y) grid B).Toggle buttons El Togale Button} ‘Los oggle buttons generan una aceién eindican un estado binario (por ejemplo, on of. Cuando spisael botén toggle button aparece oprimidoy permanece i atin cuz se suelta el botén del mouse, al tiempo. a je que el callback ejecuta las beste sicopeacns dentro de él, Los subsecuentes clic del mouse retorna Toss uttons al estado de nondepressed y es posible de nuevo ejecutar su Programando el Callback La rutina del callback necesita preguntar a i it toggle buttons para determinar 4qué estado esta MATLAB y pone el valor igual a Max de la propiedad cuando remereng | toggle buttons esté oprimido (Max tiene por defecto I )e igual a Min cuando fl toggle buttons no esté oprimido (Min tiene por defecto 0 ) El cédigo siguiente ilustra c6mo programar el callback de un togglebutton en ‘elarchivo m de aplicacién del GUI. function togglebuttonl_callback(hobject, eventdata, handles) poton_estado=get (handles. togglebutton1, 'value’) if boton_estado==get (handles. togglebuttont, ‘Max’) % Toggle buttons se encuentra presionado elseif boton_estado=-get (handles. togglebuttonl, ‘Min') % el Toggle buttons no se encuentra presionado end C). Radio buttons © Radio Button Este control se utiliza para seleccionar una opcién de un grupo de opciones (es decir, s6lo un bot6n esté en un estado seleccionado), para activar un radiobutton, pulse el botén del mouse en el objeto. Los radiobutton tienen dos estados: seleccionado y no seleccionado al cual se accede a través de su propiedad value. value = Max, el bot6n se selecciona, value = Min, el botén no se selecciona, Los radio buttons son mutuamente exclusivos dentro de un grupo de opciones, tos callback para cada radiobutton se deben poner en Ia propiedad value igual a 0 en todos los otros radiobuttons del grupo. MATLAB pone la propiedad de value a I en el radio button pulsado por el usuario, Elcédigo siguiente ilustra como programar el callback de un radiobutton en el archivo m de aplicacién del GUL, para construir una grafica con dos opciones: function radiobuttoni_Callback (hObject, eventdata, handles) set (handles. radiobutton2, ‘value’ , 0) opcioni=get (handles. radiobuttonl, ‘value’}; ‘Grino Foran Megabye ) (Garotorona Megabye iatab 7 rar Cieacias e Ingemsria con Meodos Numencos y Visual y=cos (x) + bar (x,y); grid end function radiobutton?_Callback (hObject, eventdata handles) 4 set (handles. radiobutton1, ‘value’ , 0) opeion2=get (handles. radiobutton?, ‘value’); opcion2: -3:0.2 yscos (x); plot (x,y) ria end D). Checkboxes a Checkbox Los Checkboxs se utilizan para proporcionar al usuario varias opciones de las que se puede elegir una o més de una cuando se ha pulsado el botén sobre él, ¢ indica su estado como verificado 0 no verificado. La propiedad value indica el estado del Checkbox asumiendo el valor del Max ‘© propiedad de Min (1 y 0 respectivamente por defecto): value = Max, la caja se verifica. value = Min, la caja no se verifica. Usted puede determinar el estado actual de un Checkbox desde su callback preguntando el estado de su propiedad en value, como ilustrado en el ejemplo siguiente: function varargout = checkboxl_Callback(h, eventdata, handles, varargin) if (get (h, ‘value’)== get (h, ‘Max')) % el checkbox ha sido seleccionado else & e1 checkbox no ha sido seleccionado end ae: Guo Boon Megabye) nanroana E). Edit text Edit Tet Los controles Edit text son campos que les permiten a los usuarios ingresar 0 smodificar cadenas de texto. Use Fait text cuando usted quiere ingresar un texto, ja propiedad string contiene el texto ingresado por el usuario, Para obtener la cadena tecleada por el usuario, consiga la propiedad string en eleallback. function varargout = editi_Callback(h, eventdata, handles, varargin) usuario_string=get (handles editi, ‘string’) % devuelve 1a cadena ingresada en el edit text Obteniendo los datos numéricos de un Edit text. MATLAB devuelve el valor de Ia propiedad string del edit text como una cadena de caracteres. Si usted quiere que los usuarios entren valores numéricos, usted debe convert los caracteres a nsimeros, usando el comando str2double el cual convierte la cadena a un tipo double. Si el usuario ingresa caracteres no uméricos, str2double le devolveré NaN. Usted puede usar el siguiente c6digo en el callback det edit text para que el valor de la propiedad string se convierta a un tipo doutle, a la vez que verifica si a cadena ingresada es no-numérico (isnan) para lo cual visualiza un didlogo de error (errordilg). function varargout = edit?_Callback(h, eventdata, handles, varargin) valor_entrada=stradouble (get (handles. edit2, ‘string’)) if isnan(valor_entrada ) errordig(*Ingresar un valor numérico’, ‘Input’) end F). Static text [inn Static Text El control Static text se utiliza para mostrar texto que el usuario no puede modificar. El texto estético se usa frecuentemente para etiquetar otros mandos yy proporciona las direcciones al usuario, o indica valores asociados con un deslizador (Slider). Los usuarios no pueden cambiar interactivamente el texto de alli que el texto estético no es ninguna manera a invocar la rutina de un callback asociada con él (Gaxotoronn Mega = ©). Sliders Los deslizadores o barras de desplazamiento permiten explorar fécilmente ‘una larga lista de elementos o una gran cantidad de informaci6n, y acepta. Ig entrada numérica dentro de un rango espectfico, permitiéndole al usuario mover tuna barra corrediza, El desplazamiento de la barra se efecttia presionando ef botén del mouse y arrastrando la diapositiva, o pulsando el botén que posee ung flecha. La ubicacién de la barra indica un valor numérico. “es Bes cuatro propiedades que controlan el rango y tamafio del paso del value - contiene el valor actual del deslizador. Max - define el valor méximo del deslizador, el valor por defecto es 1. Min - define el valor minimo del deslizador, el valor por defecto es 0. SliderStep - especifica el tamafio de un paso del deslizador con respecto al rango, el valor por defecto es [0.01 0.10], proporciona un 1 % de cambio para los clicks en las flechas y un 10 % de cambio para los clicks en el comedero. Estos valores pueden ser modificados efectuando los cambios en las propiedades del deslizador. Por ejemplo, su callback podrfan contener el siguiente c6digo: function varargout = slideri_callback(h, eventdata, handles, varargin) slider_valor-get (handles. sliderl, ‘value’) #B). Frames CiFrame Un control frame proporciona un agrupamiento identificable para controles. Los frames no tienen ninguna rutina de callback asociados con ellos y s6lo uicontrols puedan aparecer dentro de los marcos (excepto los ejes). Agregando componentes en los frames Los marcos son opacos. Si usted agrega un marco después de agregar componentes que usted quiere posicionar dentro del marco, usted necesite traer esos componentes adelante. Use las operaciones Bring to front(traer adelante) yy Send to back(enviar atrés) en el mené del formulario para este propésito. Ae ie Gruro Eorowat Megaby I). List boxes | [EB Listbox Los List boxes muestran una lista de ftems entre los cuales el usuario puede seleccionar uno o més items. La propiedad string contiene la lista de cadenas desplegada en el listbox. El primer item en la lista tiene el indice 1. Lapropiedad value contiene el indice en la lista de cadenas que corresponde alitem seleccionado. Si el usuario selecciona miiltiples ftems, entonces el value es un vector de indices. El cédigo siguiente ilustra cémo programar el callback en el archivo m de aplicaci6n del GUI, para conseguir el item seleccionado: function listboxl_Callback(hObject, eventdata, handles) indice=get (handles. 1istbox1, ‘value’ ) La propiedad ListboxTop es un indice en la serie de cadenas definida por la propiedad string y debe tener un valor entre 1 y el némero de cadenas. ple 0 Mailtiple Selecci6n Los valores de las propiedades Min y Max determinan silos usuarios pueden hacer simples o miltiples selecciones: ‘Si Max - Min> 1, entonces las cajas de Ia Tista permiten la seleocién del item as ‘Si Max - Min <= 1, entonces las cajas de Ia lista no permiten la seleccién del {tem mailtiple. Activando la ejecucién del Callback Matlab evaliia el callback del listbox después de que el botén del mouse se suelta o un evento del keypress se ha efectuado, eso cambia Ia propiedad de value (es decir, cuando quiera el usuario pulsat el butGu ex un item, pero no al pulsar el scrolbar en el list box. Esto significa el callback se ejecuta después del primer clic de un doble-clic en un solo articulo o cuando el usuario esté haciendo las selecciones mitiples. En estas situaciones, usted necesita agregar otro componente, como Done button (push button) y programa su rutina del callback para preguntar el valor de (Geaotmomn Maggie lapropiedad listbox (y posiblemente I figura a propiedad de SelectionTypey lugar de creando un callback para la caja de la lista. Si usted esta usandy opcién de archivo m de aplicacisn autométicamente generada, u oto que us necesita Ejemplos de list box List box Directory Reader(El lista Caja Directorio Lector )- muestra cémo a crea un GUI que despliega los volimenes de directorios en un list box y les Permite alos usuarios que abran una variedad de tipos del archivo pulsando des veces el botén en el filename. Accessing Workspace Variables from alist box(Las Variables de Workspace accediendo de una Caja de la Lista). - muestra cémo acceder las variables en la base de Matlab del workspace de un list box GUI. J).Popup menus Popup Menu Los ments de Popup permiten visualizar una lista de opciones cuando los usuarios presionarfla flecha, La propiedad string contiene la lista de cadenas visualizadas en el popupmenu. La propiedad value contiene el indice del item seleccionado de Ia lista de cadenas, el primer {tem en Ia lista tiene el indice 1 Cuando no abre, un popupmenu visualiza la opci6n actual que es determinado Por el indice contenido en la propiedad value. Los popupmenus son utiles cuando usted quiere proporcionarles varias opcio- hes mutuamente exclusivas a los usuarios, y no usar una mayor cantidad de espacio que una serie de radio button requiere, Programando un popupmenu Usted puede programar el callback del popupmenu para trabajar verificando S6lo el indice del item seleccionado (contenido en la propiedad value) o usted >uede obtener la actusl cadena contenida en el fiein seleccionado, El cédigo siguiente ilustra e6mo programar el callback en el archivo m de aplicaci6n del GUL, este callback verifica el indice del item seleccionado y usa ‘una declaracién del switch (interruptor) para tomar accién basada en el valor. function popupmenu!_callback(hobject, eventdata, handles) opcion = get (handles. popupmenul, ‘value’ ) : cs) Tnterfaz Grafica switch opcion case 1 & B1 usuario seleccioné el primer item case 2 ® £1 usuario seleccioné el segundo item otherwise % El usuario seleccioné el otro item excepto el 1 y2. end Activando o desactivando controles Usted puede sabersi un control responde al bot6n del mouse usando Ia propiedad enable(habilite). Los controles tienen tres estados: on- El control es operacional off -El control es invalido inactivo - El mando es invalido, pero su etiqueta no se grayed fuera (Cuando un mando es invalido, mientras pulsando el bot6n izquierdo del mouse no ejecuta su rutina del callback. K). Los ejes ines Los ejes le permiten a su GUI visualizar los gréficos, como todos los objetos de los graficos, los ejes tienen las propiedades que usted puede poner para controlar muchos aspectos de su conducta y apariencia. En los objetos de los cies. Los callbacks de los ejes i ejecutar un Los ejes no son objetos uicontrol , pero puede programarse para ejecuta callback euando los usuarios plsen el botn del mouseen los jes. Usela propiedad ButtonDownFen de los ejes para definir el callback. ‘Trazando los ejes en GUIs ; Los GUIs que contienen ejesdeben asegurat I opin de aceesibildad de Orden-linea en el diflogo de opciones de aplicacién que es fijo en Callback (el valor por defecto). Esto le permite que emita la trama del callbacks sin especificar explicitamente los ejes designados. Tnterfaz Grafica Propiedades Generales de los Uicontrols @ GUIs con ejes miltiples Si un GUI tiene ejes multiples, usted debe especificar qué ejes permanezca en blanco explicitamente cuando usted emite las Grdenes de Usted puede hacer esto usando las Grdenes de plot y la estructura de ‘manejadores. Esta tabla contiene la lista de todas las propiedades ities para objetos uicontrol agrupindolos por funcién. Cada nombre de propiedad actéa como un enlace a tuna descripcidn de la propiedad. [Descipciin de lnPropindad—[Valorde Por ejemplo, axes(handles.axes1) Construyen los ejes cuya propiedad Tag son axesl los ejes actuales, y por | Control de Estilos y Apariencie BecigaundGale | Coloeda ls obo de fondo consiguiente el blanco por trazar las Grdenes. Usted puede cambiar los ejeg | actuales todas las veces que quiera al blanco unos ejes diferentes, | - | = Taagen Truce maakada ana F). Figure isa eau | Las figuras son las ventanas que contienen el GUI con el Editor del esquema, eae. [Mate Ctrspec A continuacién se presentan cada una de sus propiedades. | fl ceneeeon | Objet reattados cuandoson | Value:on, off Datel on ‘sus (eam ny i | | pup ent { t Vatieson of [Mabe Defaut on eae | \ | = = urna jl - | E.| | oefaut of ‘Value we-ment Caro Foncani Megas) (Gamimoma Meg sue [Tipo de objetosvicontzol | eriicador de obeto | | expecticado pore usuario I ‘Contenido de los objetos [ Vet: pushbuton topglebuton, | radobuton, checkbox, edt, tet, sider, | rome, Istbox, popupmena Deteut: pushbutton ‘Value: sting objets uicontot ‘Unidades para interpretar | vectores de posicion “Tamatio ylocaizacion de Detauit pels Value: position rectangle Defaut: [20 20 60 29) Value: pices, normalized, inches, Cenimeters, points, charactors Value: sting Value: normal, aic,obkque Detauit: normal Defaut system dependent Interfax Grafica cy) Serie Fonteiant Peso delos careceres detexios Vale: Bght normal, | | emi, bold | Defeut normal Horzontalianment | Aineamiento de la cadena de Value left, center, etiquetas fight Default depends on Leonia obect ‘Sting Etqueta do objetos Ucontal también | Value: sting listbox Rems de ment popup Controlando la ejecuciéon de rutinas Callback | Iterupeién de ruinas Callack Vale: cancel, queue Defaut: queue ButtonDownFen | Presién de botin de rutna Callback | Vale: sting aback ct aco Ve eeaico Rue aac cra ie Va stg | croc eons Rr Catockocids dao Vie ting | serene oon | Tmucuniie Moab de namipcin diana Vow ono | Caloack Detaut: on UlGonieeMeny | Objetos Licontextmenu associados Vale: handle ‘eon el uleontal elas cadenas més | Value: seaiar _vsualizedas en la st box Default: 1} | Valor mania (depende de el objeto Valu: scalar | vicar) Defaut:obyct néricony Visual ee me | Valor inns (depend del objeto onus) | Value: scalar Detaut object cependent $F ectul el objet uiconizal Default: ebct | Vale j | cependont Controlando.e! access 2 objetos | Handievisiiy | Si et mancjedor es inaccessible desde Ia linea | Value: on, calbsck, i |oconmandey aus - | reeTest ‘Sies seleccionable por el click del mouse Value: on, off i | Detautt: on | Elaboracién De Una Interfaz Grafica 1). Creando formularios Abra el editor de formularios, digitando la orden guide en la ventana de comandos, el cual despliega el formulario en modo de reja, en el cual se agregarén los controles que se seleccionen de la paleta. rasa Pe ase r =a | ‘Gauro Borowiat Me Especifique el tamafio del GUI a un valor exacto, efectuando un click en la opcién View del ment de herramientas y seleccionando luego la opcisn Inspector del mend, y defina en la propiedad Position los valores que deberd tener el formulario. (Piri pen? led Berne woes fs hme F 2). Adicionando los Componentes Seleccione los componentes de la paleta para agregar y arrastrarlos al érea del esquema. pushbutton, un popupment, y un eje. Coléquelos como lo mostrado en el cuadro siguiente. Labia heed Domus Pe ote + @) 3). Alineando los Objetos Para alinear los controles entre si, dé un click en Ia opcién Align objects de} mend Tool. La herramienta de Alineacién en el siguiente cuadro muestra tres pushbutton en la seleccién (ctrl+click para seleccién miiltiple) y se prepara para ser alineado segiin las siguientes condiciones: ) 20 pixel que espacian entre los pushbutton en la direccién vertical. ») alineado izquierdo en la direccién horizontal. « Dea iuenn PB Oee i> (a sipiijiee Ceasescnn 4). Fijar propiedades para cada Control ara poner las propiedades de cada control, dé un click en la opcién view del ment de Tool y seleccione luego la opcién Inspector del men, y defina los valores: a) Para lus pushibulton y popupmienu coloque en la propiedad string la etiquetss a visualizarse. Bl cuadro siguiente muestra las propiedades del push button. BS Property linpecior i seo + ForegrounaColer analog rivest onontataionment Interntote Cottoxtoe Seretonetniont Son + Siversten jest swe [=] pusnoutton Teo pusmoutont “Faotiesting by Para los {tems del popupmenii cada {tem de la liste del popupmend necesita estar en una linea separada en la propiedad string de la caja de edicién s Cea Ene con 5 3 c) Tag y Propiedades del Callback ‘Cuando se agrega un componente al esquema, su propiedad de Callback se pone en Ia opcién . (] ated 7 ra ens cngeeaa Meio Nendo Ve BA Properly epector conto (pshbuton2 "Push Buon?) + BackgroundColor oS BeingDeleted Busyaton Baueve ButonDownFen cata Bow0 double array roa | Clipping (on CreateFen DeleteFen Enable [Jon ‘Cuando usted guarda o activa GUI, guide convierte la cadena del callback en ‘una orden que llama a una subfuncion generada en un archivo m. GUIDE usa la propiedad Tag det control para nombrat su funci6n del callback. Por consiguiente, es iil colocar las propiedades de Tag a los nombres descriptivos antes de que usted grabe o active el GUI la primera vez. Este ejemplo pone data_popup al Tag del popupmenu , produciendo el nombre data_popup_Callback para la funcién del callback de menii del popup. Coloque el Tag de los push buttons a surf_pushbutton, mesh_pushbutton, y ‘contour_pushbutton. ss 1 Tnterfaz Grafica 5). Activando el GUI ‘Active el GUI seleccionando run del menti Tool o use la flecha de color verde del toolbar de guide, El cuadro siguiente muestra el GUI. Bee aoe oF aa os Ot 6). Programando el GUI Cuando se graba primero o activa el GUI, guide genera el archivo m de la aplicacién que contendré todo el cédigo para ejecutar_y controlar el GUI. Se debe escribir dentro del callbacks de las funciones, las ordenes que se ejecutaréin ‘cuando los usuarios activen un control en el GUL Guide genera este archivo m, con las subfunciones vacias para cada ‘componente que tiene un callback asociado con él. En el ejemplo, los tres pushbutton y el popupmenu tienen un callbacks asceiado. function surf pushbutton_Callback(hObject, eventdata, handles) % vacio function mesh_pushbutton_Callback(hObject, eventdata, handles) % vacio function contour_pushbutton_Callback(hObject, eventdata, handles) % vacio Gearon Megabyte) (Geer Megabyte (@ keen ey function data_popup_Callback(hObject, eventdata, handles) % vacio El c6digo siguiente ilustra c6mo programar los callbacks en el archivo m de aplicaci6n del GUI, para efectuar diversas graficas de superficies con los pushbuttons, de igual manera en el plano con la variante de popupmenu: Callbacks del push button function surf_pushbutton_Callback (hObject, eventdata, handles) weshgrid (xa, ya) ; z=(x.°2) exp (-¥."2); surf (z) Bene 108 function mesh_pushbutton_Callback (hObject, eventdata, handles) (x,yl=mesharid (x,y) ex. *24y.°2; mesh (2); [x,y] =meshgrid (x,y); aa(sin(x) ./1y#9)) 5 contour (x,y,z) Bye arg Tie LA Caro Eons Megabyte) (GexoEoroan Megabye Callback del popupmenu jee aoey function data_popup_Callback (hObject, eventdata, handles) opcion=get (handles. data_popup, ‘value’ ) switch opcion Sut case 1 % Usuario seleccioné 1a primera opcion x=-810.2:8; yox.tsin (x); plot (x,y) oria case 2 % Usuario seleccioné 1a segunda opcion x=-8:0.2:8; yesin(x); bar (x,y) ria case 3 % Usuario seleccioné 1a tercera opcion 5.5:0.2:5.5; yox. sin (x); polar (x,y), grid a=] Accediendo a los identificadores.- Cada identificador de un objeto se guarda en un campo denominado estructuras de los identificedores, teniendo el mismo nombre como el del ‘Tag del objeto. Interfaz Grafica orm El plano actual es blanco de las salidas graficas cuando creas un plano hijo. [Los comandos graficos como plat, text, y surf dibujan los resultados en el plano gctual, Cambiando Ia figura actual también se cambia la figura actual. Porejemplo: handles.data_popup, contiene el identificador del popupmenu. handles.surf_pushbitton, contiene el identificador del pushbutton 1 0 handles.mesh_pushbutton, contiene el identificador del pushbutton 2. = ‘el manejador del objeto actual handles.contour_pushbutton, contiene el identificador del pushbutton 3. Sintaxis h=gco h = gco(figure_handle) . Descripeién Funclones de Una Interfaz Grafica = gco retorna el manejador del objeto actual. eck h = gco(figure_handle) retorna el valor de! obeto actual para la figura Consigue el manejador de la figuéa actual. cespecificada por figure_handle. Sintaxis El objeto actual es el ltimo objeto al que se le dio un cc del mouse, excluyendo h=gef uimenus. Si el clcik del mouse no ocurre sobre algun hijo del objeto figura, la figura vendria hacer el objeto actual. MATLAB almacena el manejador del objeto actual en la propiedad CurrentObject del objeto figura. Descripeién El CurrentObject del CurrentFigure no siempre indica cual objeto callback esta siendo ejecutado. Las interrupciones de un callbacks por otro callbacks pueden cambiar el CurrentObject o incluso el CurrentFigure. Algunos callbacks, tales como CreateFen y DeleteFen, y uimenu Callbsck no pueden actualizar intencionalmente CurrentFigure 0 CurrentObject. ‘gobo provee solamente una forma confiable de recuperar el manejador de los obejtos cuyo callback se esta ejecutando, en cualquier punto de la funcién callback, indistintamente del tipo de callback 0 de alguna interrupcién previa. h = gef retorna los manejadores de la figura actual. La figura actual es la ventana figure en la cual los comandos graficos como plot, title, y surf dibujan sus resultados. Si no existe figura, Matlab crea una y retorna un manejador. Puedes usar Ia sentencia ‘get(0,’ CurrentFigure’) ea Consigue el manejador actual det plano. Ejemplo Sintaxis Esta sentencia retorna el manejador del objeto actual de la ventana figure 2: = goa h=gco(2) Descripcion echo Retorna el manejador de los objetos que los cusles se estén ejecutando actualmente. Sintaxis h=gebo [h, figure] = gebo (Crore Browns Megabyte + = gcaretorna el manejador del plano actual para la figura actual. $i no existe , Matlab crea uno y retorna su manejador. Puede usar la sentencia get(gef,’CurrentAxes’) si mo se desea Matlab crea un plano si es que no existe. 368 wees (Gruro Eorrowat Megabyte ) Descripcién f= gcbo retorna en manejador de los objetos grificos los cuales se estén ejecutando. {h, figure] = gebo retorna el manejador del objeto callback y el manejador de la figura que contiene este objeto Comentarios Matlab almacena el manejador del objetos cuyo callback se esta ejecutando en la propiedad CallbackObject del objeto raiz. Si un callback interrampe a otro Matlab reemplaza el valor Callback Object con el manejador de los objetos cuyo callback esta interrumpiendo. Cuando el callback finaliza, Matlab restaura el ‘manejador al objeto que fue interrumpido, La propiedad CallbackObject del objeto rafz es de lectura solamente, asf que el valores valido mientras dura la ejecucién callback. La propiedad CurrentFigure del objeto raiz, y las propiedades CurrentAxes y CurrentObject de la figura (retomados por gef, gca, y gco respectivamente) son configurables por el usuario, pueden cambiar durante la ejecucién de un callback especialmente si este es interrampido por otro. Por lo tanto, esas funciones no son indicadores confiables de los objetos callback que se estén ejecutando. Cuando se escribe una rutina callback para el CreateFen y DeleteFen de algun objeto en la figura ResizeFcn, debes usar gcho porque estas callbacks no actualizan la propiedad CurrentFigure del objeto rafz, o las propiedades CurrentObject o CurrentAxes de la figura; que solamente actualizan las propiedades CallbackObject del objeto rate. ‘Cuando no hay callbacks ejecuténdose, gcbo retorna una matriz vacfa (]. get Consigue las propiedades del objeto Sintaxis get (h) get (h, ’PropertyName’) «n-by-n value cell array> = get (H, ) a = get(h) Deseripeién ‘get(h) retorna todas las propiedades y sus valores actuales de los objetos agrificos identificados por el manejador h ‘get(h,’PropertyName’) retorna el valor de la propiedad ‘PropertyName’ del objeto gréfico identificado por h. = get(H,pn) retomna valores para n propiedades de m objetos gréficos en la celda del array m-por-n, donde m = length(H) y n es, igual al numero de propiedades contenidas en pn. a= get(h) retoma una estructura cuyos nombres de campo son los nombres de las propiedades y cuyos valores corresponden a los valores de las propiedades. h debe ser un escalar. Si no puedes especificar un argumento de salida, Matlab ‘mostrara la informacién en la pantalla. a = get(0,’ Factory’) retorna los valores de fabrica de todas las propiedades definibles para el usuario.en una estructura cuyas nombre de campo son los nombres de las propiedades y cuyos valores corresponden a los valores de las propiedades. Sino puedes especificar un argumento de salida, Matlab mostrara Ja informacién en ta pantalla. = get(0,’FactoryObjectTypePropertyName’) reterna los valores de fabrica de los nombres de las propiedades para el tipo de objeto especificado. FactoryFigureColor a = get(h,’Default’) retorna los valores por defecto en el objeto h. a una estructura cuyas nombre de campo son los nombres ée las propiedades y cuyos valores corresponden a los valores de las propiedades. Si no especificas un argumento de salida Matlab mostrara la informacién en pantalla. = goth, 'DefaultObjectTypePropertyName’) reterna los valores de fabrica de los nombres de las propiedades para tipo de objeto especificado. DefaultFigureColor Ejemplo: Puedes obtener los valores por defecto dela propiedad LineWidth de un objeto ‘grafico line definido en el nivel rafz, con la sentencia: eee get(0,’DefaultLineLine Width’) a = get (0, 'Factory0bject TypePropertyName') a = get(h, Default’) ans = a = get (h, ‘Defaultobject"TypePropertyName’) 0.5000 dud sss Gauro Foronns Megabyte ) (Georo Booman Megabyte - IMiatab 7 rar Ciencias Ingenieria con Meson Numévia y Visual &) Para buscar un conjunto de propiedades en todos los planos hijo define un array de nombres de propiedades: props= {‘Handle Visibility’, ‘Interruptible’; ‘SelectionHighlight’, ‘Type’ ); output = get(get(gca,’Children’),props); la variable de salida es un array de dimension Iength(get(gca,’Children’)-by-4. For example, type patch;surface;textjline output = get(et(gca,’Children’),props) output ‘on’ ‘on’ ‘on’ ‘line’ ‘on’ ‘off’ ‘on’ ‘text ‘on’ ‘on’ ‘on’ ‘surface’ ‘on’ ‘on’ ‘on’ ‘patch’ findobj Localiza objetos gréficos ‘Sintaxis h=findobj h=findobj(‘PropertyName' Property Value, h=findobj(objhandles,.. = findobj(objhandies,'flat’,’PropertyName’ Property Value.) Descripcién findobj localiza objetos gréficos y retoma sus manejadores. Puedes limitar la biisqueda de objetos con valores para propiedades especificas y especificando la ruta de herencia del objeto. h= findobj retorna los manejadores del objeto rafz y todo sus descendientes, h=findobj(‘PropertyName’ Property Value,...) devuelve el manejador de todos los objetos graficos que tengan la propiedad PropertyName, define el valor 268 | cc ee) | manor pPropertyValue. Puedes especificar mas de una propiedad / valor, en eual caso, findobj retorna solamente los objetos que tengan los valores especificados. n= findobj(objhandles...) restringe la biisqueda de objetos especificados en objhandles y sus descendientes. hr = findobj(objhandles,'flat’,”PropertyName’ Property Value,..) restringe la bésqueda de objetos especificados en objhandles y no busca los descendientes. Observac findobj retorna un error si el manejador se refiere a un objetos grafico no cexistente. findobj corrige ordenadamente los valores de las propiedades. Porejemplo, findobj(‘Color’,'r") Encuentra todos los objetos cuya propiedad Color este definida como red, r,0 (100). Cuando un objeto grifico, descendiente de mas de un objeto identificado en objhandles, Matlab busca el objeto cada vez que findobj encuentra el manejador. Entonces, las referencias implicitas a objetos grificos pueden resultar en estos ‘manejadores siendo retornados miltiples veces. Ejemplo Encuentra todos los objetos lineas en el plano actual: h= findobj(gca,’Type’,ine’) copyobj Copia los objetos gréficos y sus descendientes Sintaxis new_handle = copyobj(h.p) Desctipcion copyobj crea una copia de un objeto grafico. Las copias son idénticas al objeto original excepto que las copias tienen diferentes valores para las propiedades de su padrey un nuevo manejador. El Nuevo padre debe ser apropiado para el objeto copiado. Gare ao YY newi_handle = copyobjh.p) copia uno o mas gréficos identficados por hy retorna el manejador del_nuevo objeto en un vector de manejadores para log nuevos objetos. Los nuevos objetos gréficos son hijos del objeto grafico especificado por p. hy p puede ser escalar 0 vector. Cuando ambos son vectores deben tener Ia misma longitud y Ia el mismo argumento de salida, new_handle, es un vector de a misma longitud . en este caso, new_handle(i) es una copia de h(i) con la propiedad Parent definida por p(j). Cuando h es un escalar y pes un vector, hes copiado una vez que cada uno de los padres en p. Cada new_handle(i) es una copia de h con la propiedad Parent definida por p(i), y length(new_handle) igual length(p). Cuando h es un vector y pes un escalar, cada new_handle(i) es una copia de hi) con la propiedad Parent definida por p. La longitud de new_handle igual Jength(h). Los objetos gréficos estn ordenados como una herencia. Cada objeto grifico ‘se muestra conectado a su correspondiente objeto padre. Root Figure Axes] [Gicontrol] [Gimend [Vicontextmeny} T af Image] [Light ] [Tine ] [Patch ] [Rectangl [Text Ejemplos Copia la superficie de un Nuevo plano dentro cle una diferente figura. h = surf(peaks); colormap hot figure % Create a new figure EE: (GuuroEorowat Megabyte ‘axes % Create an axes object in the figure new_handle = copyobj(h,gea); ‘colormap hot view) gridon nota que mientras la superficie en copiada el colormap (figure property), view y grid (axes properties) no son copiadas. set Fija as propiedades de los objetos Sintaxis set(H, 'PropertyName’ Property Value...) set(Ha) set(H,pnpv...) set(H,pn.) a= set(h) a= set(0,’Factory") ‘a= set(0,’FactoryObjectTypePropertyName’) a= set(h,’ Default’) as sot(h,’DefaultObjectTypePropertyName") = set(h,’PropertyName") Deseripcién set(H,'PropertyName’ Property Value,...) define los valores de las propiedades especificadas en el objeto identificado con H. H puede ser un vector de ‘manejadores, en tal caso set fija los valores de las propiedades para todos los objetos. set(H,a) define los valores de las propiedades especiticadas en el objeto identificado con H. a es un array de estructuras cuyos nombres de campo son propiedades de los nombres de los objetos y cuyos valores de campo son los, valores correspondientes a las propiedades, set(H.pn,py,...) define las propiedades especificadas en Ia celda pn a su correspondiente valor en la celda pv para todos los objetos identificados en H. | (Ganon Megas &) set(H,pn,) define n valores de propiedades para cada m objetos gréficos m, donde m= length(H) y n es igual al numero de nombres de las propiedades contenidos en la celda del array pn. Esto permite fijardiferentey valores a un grupo dado de propiedades en cada objeto. a= set(h) retoma el valor fijable por el usuario y los posibles valores del objeto identificado por h. a es una estructura cuyo nombre de campo son los nombres de las propiedades e los objetos y cuyos valores del campo son los valores de las propiedades. Si no se especifica un argumento de salida MATLAB muestra la informacién en la pantalla. h debe ser un escalar. ‘a = set(0,'Factory") retorna las propiedades cuyos valores predeterminados son definibles por el usuario para todos los objetos y listas de posibles valores para cada propiedad. a es una estructura cuyo nombre de campo son los nombres de las propiedades ¢ los objetos y cuyos valores del campo son los valores de las propiedades. Si no se especifica un argumento de salida Matlab muestra la informacién en la pantalla ‘a= set(0,"FactoryObjectTypePropertyName’) retoma los posibles valores de los nombres de las propiedades para los tipos de objetos especificados, si los valores son cadenas. ‘a=set(h,'Default’) retomna los nombres de las propiedades tomando los valores, por defecto del objeto identificado por h. set también retorna los posibles valores si es que son cadenas. h debe ser un escalar. a= sei(h,"DefaultObjectTypePropertyName’)retoma los posibles valores delos nombres, ‘de las propiedades de los tipos de objetos especificados, silos valores son cadenas. v= seth, PropertyName’) retorna los posibles valores for de las propiedades nombradas. Si los posibles valores son cadenas, set retoma cada una en una celda del array, pv. Para otras propiedades, set retomna una celda vacfa en el array. Si no especifican un argumento de salida Matlab muestra la informacion en pantalla, h debe ser un escalar. Puedes usar una combinacién de propiedades nombre/valor, estructuras arrays, y celdas de arrays en una llamada a set. Ejemplo Fijarla propiedad Color del actual plano azul. sei(gea,'Color’,’b") cambia todas las lineas lines para un trazado negro. plot(peaks) ee Cao Boroan Mepabe) sei(findobj(“Type’,'line’),"Color’,"k’) Puedes definir un grupo de propiedades en una estructura para organizar mejor tu cédigo. Por ejemplo, esas sentencias definen una estructura llamada active, la ‘cual contiene un conjunto de propiedades definidas usadas por el objeto uicontrol ‘en una figura particular. Cuando esta figura se convierte en Ja figura actual, Matlab cambia los colores y habilita los controles. 1.1.7 active BackgroundColor active Enable = ‘on’; active ForegroundColor= [0 0 0]; if gcf == control_fig_handle set (£indobj (control_fig handle, ‘Type’, ‘wicontrol') ,active) end Se puede usar las celdas del array para fijar el valor de las propiedades de cada objeto. Por ejemplo, esta sentencia de fine una celda array para tres propiedades, PropName(1) = {*BackgroundColor’}; PropName(2) = (‘Enable’); PropName(3)= {‘ForegroundColor"}; Esta sentencia define una celda array conteniendo tres valores para cada uno de los tres objetos (ie., a 3-by-3 cell array) PropVal(1,1) = {[5.5 51}; PropVal(1,2)= (‘off"); PropVal(1,3) = {9.9 .9]}; PropVal(2,1) = ({1.0 0}; PropVal(2,2)= {‘on"}; PropVal(2, PropVal(3,1) = { PropVal(3,2)= {‘on"}. PropVal(3,3) = {{000]}; jumentos a set, Ahora pasa los ar set(H,PropName,PropVal) donde length(H) =3 y cada elemento es un manejedor de un uicontrol Be 3) (Geir Megabye ®) ‘Matlab le permite crear dos tipos de ments ~ Menu bar objects.~ Meniis que aparecen en la barra de ment de la figura, Context meniis.- Meniis contextuales, mentis que aparecen cuando los usuarios hacen click derecho en los gréficos de los objetos. ne . fete inten repsare Menus En Matlab Deevarstr anor Fiore enorkoa ‘Ambos tipos de ments usan el Editor de mental que se puede acceder de | — 2-formas haciendo clic en el item del Editor de mens en la opei6n herramientas 9 enel toolbar del Editor de disefio, a continuacién se presenta el Editor de mené, Greate anew meni item Create anew context menu ‘Move selected mend item Delete selected item (Create anew menu, Menu Bar Caria Menus Especificando las propiedades del Meni Cuando usted hace click en el ment, aparecen 10s campos del texto, permitiendo poner la Etiqueta, Tag, el Separador, verificar las propiedades del ment asf como espeeificar la cadena del Callback. (aii) nee ine rmerten eo: ‘grtead Cletearstraneve ister Diremicenecisa Estos ments son implementados con los uimenu y objetos del uicontextmenu. Definiendo los Ment para Ia barra del Mend Cuando usted crea un ments, Matlab lo agrega a la barra de mend de la figura, se pueden crear items para un meni donde cada item posea los items de un submenu, y estos items pueden tener submenus, y asi sucesivamente. Creando un Meni Haga un click en New Menu. 37. GroroForonar Megabyte) (GrroBoronns Megabyte Interfa7 Grafica Cree 10s niveles adicionales de la misma manera. Por ejemplo, ef cuadro siguiente muestra un ment GRAFICADOR el cual tiene al submenu ESPACIO ste a su Yez_ tiene dos submenus MALLAS y SURFACE. ‘Agregando los’ftems al Ment Use la herramienta New Mer } nu I Editor de Ment para definir los items que se desplegarin bajo el end, cual se debe seleccionar el item antes de hacer click en el New Menu Item, Ss oe hae enn ene peony separ sooe is em Diam is nies La ilustracién de Editor de mené de la figura anterior muestra el ment GRAFICADOR definido para la barra de mend de la figura, el cual a su vez posee tres submenus PLANO, ESPACIO y REVOLUCION, cuando usted ¢jecuta el GUL, el ment aparece en la barra de ment Defina Label y Tag para el nuevo submenu. Cemicenecies (Gruro Boron Interfax Grafica @ Los Callbacks del Ment: Por defecto, el campo del callback en el Editor de meni, estéen la opeién % automético. Esto permite que GUIDE agregue una subfunction de callback. vacfo al archivo M del GUI para cada ment o submenti, cuando se guarda 9 ejecuta el GUI. Si usted cambia esta opcién, GUIDE no agrega una subfunction para este item del menti. function cartesiana_Callback(hObject, eventdata, handles) Donde: cartesiana.- Es el nombre del callback de la subfunction parael item del mend CARTESIANA (especificado en el Label del Editor de ment). Mientras el Editor de menti genera una subfunction del callback vacio para cada mend y submenu, usted puede no necesitar programar el callbacks para los Ge caaer (nec orrrenet ments principales. Esto es porque haciendo click automaticamente en un meni, a kateeene principal se despliegan los submenus. eres Caer Sintaxis del Callback de una Subfunction | ganicolas catbae El archivo M de GUI contiene todos los callbacks para el GUI, incluso el Mais Pema callbacks del ment be nirmeucet % — mee function graficas_Callback(hObject, eventdata, handles) % fuction plano_Callback(hObject, eventdata, handles) % function cartesiana_Callback(hObject, eventdata, handles) % function barras_Callback(hObject, eventdata, handles) Meni contextual EL itor de Ment permite definir mentis contextuzles y asociarlos con objetos en el modo de disefio, este tipo de menii despliega ua conjunto de {tems cuando {os usuarios hacen click derecho en el objeto para el cual el ment se define. % nu Padre function bastones_Callback(hObject, eventdata, handles) Creando el Me / ns Para definir un ment padre seleccione la opcién Context Mentis : de Mend y luego New Context Ment del toolbar del Editor de Ment. tunction polar_Caliback(hObject, eventdata, handles) % function espacio_Callback(hObject, eventdata, handles) Por ejemplo, usando el item CARTESTANA, del menti del ejemplo anterior genera la cadena de callback siguiente: EMM SSC Roca Megabyte) conte anes Seleccione el ment y especifique la Etiqueta para identi (Pushl_contextenesé ejemplo). nn nmncarelmencontextual Ton pan sete Agregando los items al Ment contextual Los items que aparecern en el Ment contextual se crean usando la opei New Menu Item en a barra de herramientas del Editor de meni, Cuando usted selecciona un item del ment, el Editor de ment despliega los campos de texto para ingresar la Asociando el Mend Contextual con un Objeto Seleccione el objeto en el Editor de diserto para él que usted est definiendo el mend contextual y use Property Inspector para poner la propiedad de UlContextMenu de este objeto al meni contextual deseado. | (Grane Boronn Megabyte as (me Agregue un callback a la subfunction de rutina en el archivo M de GUI para cada item en el menti contextual, el cual se ejecutard cuando los usuarios seleccionen el item del mend contextual particular, como en la figura siguiente. % function ROJO_Callback(hObject, eventdata, handles) set(handles.pushbuttonl,"backgroundcolor’ [1 00)) % —— function amarillo_Callback(hObject, eventdata, handles) set(handles.pushbuttonl,"backgroundcolor’,{1 1 0)) % function azul_Callback(hObject, eventdata, handles) set(handles.pushbutton!,"backgroundcolor’ {00 1]) ‘% function verde_Callback(hObject, eventdata, handles) cos er set(handles.pushbutton1,’backgroundcolor’ {0.1 0.5 0.21) GRAFICAS lngeset: rowsee lagese | Gaia OBJETIVO: |» Disefiar y elaborar un graficador de funciones utilizando la interfaz grafica de matlab. Graficador CONTENIDO: (| \ Diseioy programacién de ainterfaz 8 principal, Diseioy programacin de ainterfzpara _ posaaon Funciones \ Diseioy programacién de ainterfzpara ‘graficas en el espacio. \ Disefioy programacién de a interfaz para (graficas de superficies de revolucién. 11 Programacidn para un cuadro de dilogo, Hlaboracién de Un Graficador de Funciones En el siguiente ejemplo se disefia y elabora un graficador de funciones, detallando su construceién y su programacién en cada caso, el cual va.apermitit laclaboraci6n y comprensién de graficas para funciones de RenR y Ren R. Disefio y programacién de la interfaz principal A). Creando el formulario de presentacién Abra el editor de formularios, digitando la orden guide en la ventana de ‘comandos, el cual despliega el formulario en modo de reja, en el cual se agregaran los controles que se seleccionen de la paleta. Especifique el tamafio del GUT a un valor exacto, efectuando un click eng opcién View del ment de herramientas y seleccionando luego laopcin Inspectop del ment, y defina en la propiedad Position los valores del formulario [6 3 146 37}. | | (ra9a 2367 Panerine se Paoenis Jeemenenre | Pair Jaow Prinarsnapecoas rete aac Folnmchaoevpat iia cute a ba 314637) * ‘0 ¥ 30 wh 60 eit mm D). Fijar propiedades para cada Control Para poner las propiedades de cada control, dé un click en la opci6n view del ‘menti de Tool y seleccione Iuego ta opcidn Inspector del meni, y defina los valores: '), Para los pushbutton y statictext escriba en la propiedad string la etiquetas a visualizarse. El cuadro siguiente muestra las propiedades del push button. lw btn Pa em) Heczonttsionment [eons rong Preor Svcs — Zn + Sore inom ES enon ERIE or 7 rest eoysten Uren (ames {i), La propiedad Fontsize nos permite cambiar el tamafo de letras, efectuar las ‘modificaciones para obtener el siguiente formulario Ose > Fe ee (ess) GRAFICADOR DE FUNCIONES A) GRAFICADOR DE FUNCIONES iii), Colocar en la propiedad visible, la opci6n off para los pushbutton 2,3,4; los frames 4, 5, 6, 7 ; para el statictext I y el axesi iv). Propiedad Tag y Callback Cuando se agrega un componente al formulario, su propiedad de Callback se pone en la opcién . 5 enn rai Pat Bate) > Baeeundcair IC * embers | ‘Busyteton Bleeve ‘ButlonDown en | ‘ 5 ‘Chinping Son | conn | ten | En Ge > eae | Fonte Brormat Ferre rose set | Frees ger | eee {Gruro Eorrowat Megabyte ) (Geena Megabyte = ‘Al activar el GUI, guide convierte la cadena del callback en una orden que llama a una subfuncion generada en un archivo m, en este ejemplo se asigna poe defecto pushbutton! al Tag del pushbutton, produciendo el nombre pushbutton! _Callback para la funcién del callback del primer boton. E). Activando el GUI Active el GUI seleccionando run del menti Tool o use la flecha de color verde del toolbar de guide. El cuadro siguiente muestra el GUI. GRAFICADOR DE FUNCIONES: | al F), Programando el GUI Cuando se graba, guide genera el archivo m dela aplicacién que contend todo el cdigo paracjecutar ycontlarel GUL Se debe escribir dentro de callbacks de as funciones, Jas ordenes que se ejecutarin cuando los usuarios activen un control en el GUI. Gulde genera este archivo m, con las subfunciones vacias para cada ‘componente que tiene un callback asociado con él. En el ejemplo, los cinco pushbutton tienen un callbacks asociado, function pushbutton1_Callback(hObject, eventdata, handles) % vacio Graficador de Funcion function pushbutton2_Callback hObject, eventdat, handles) % vacio function pushbutton3_Callback(hObject, eventdata, handles) % vacio function pushbutton4_Callback(hObject, eventdate, handles) % vacio function pushbutton5_Callback(hObject, eventdate, handles) % vacio ‘A continuacién se presenta el e6digo del pushbutton 1, queelabora una grafica nel formulario de presentaci6n, asu vez hace visible alos pushbutton 2, 3 4 yallos frames 4,5 ,6 7. Callbacks del push button ‘function pushbuttonl_Callback(hobject, eventdata, handles) ® Grafica 0.425; [x,y] =meshgrid(xa, ya); 2=(x.*2) exp (-¥.72); surf (z) axis off set (handles. text1, ‘visible’, ‘on’) set (handles .pushbutton2, ‘visible’, ‘on’) set (handles .pushbutton3,"visible’, ‘on’) set (handles pushbutton4, ‘visible’, ‘on’) set (handles. text2, ‘visible’, off’) set (handles. text3, ‘visible’, ‘on’) set (handles .pushbuttont, ‘visible’, ‘of£") set (handles. framel, ‘visible’, ‘on’) set (handles. frame2, ‘visible’, ‘on’) set (handles. frame3, ‘visible’, ‘on') set (handles. framed, ‘visible’, ‘on’) . _Gnuro Eorroniat Megabyte ) (Gam Mego Haciendo un click en el bot6n ingresar se obtiene la siguiente presentacign, set (handles.pushbutton3, ‘visible’ ,’on‘) set (handles .pushbutton4, ‘visible’ ,‘on‘) set (handles. text2, ‘visible’, ‘off*) set (handles. text3, ‘visible’, ‘on') set (handles.pushbuttonl, ‘visible’, off") set (handles. framel, ‘visible’, ‘on’) set (handles. frame2, ‘visible’, ‘on’) set (handles. frame3, ‘visible’, ‘on’) set (handles. frame4, ‘visible’, ‘on’) ‘% — Executes on button press in pushbutton2. function pushbutton?_Callback (hObject, eventdata, handles) plano close (graficador) % — Executes on button press in pushbutton3. 2004 function pushbutton3_Callback(hobject, eventdata, handles) superficie Programacion del Formulario close (graficador) function varargout = graficador{varargin) % — Executes on button press in pushbutton4, % — Executes on button press in pushbutton! function pushbuttond_callback(hobject, eventdata, handles) function pushbutton! Calbackhdbiect, eventdate, nandies) tose (graficador) oe eee. ya=-5:0.4:5; function pushbuttonS Callback (hObject, eventdata, handles) [x,y] =meshgrid (xe, ya) ; uscire. z= (x.°2) *exp(-y.72); surf (2) axis off set (handles. text1, ‘visible’, ‘on’) set (handles. pushbutton2, ‘visible’, ‘on’) Guano Eoroani Megabyte) | (Gaming eee 35] @ Diseno y Programacién De La Iinterfaz Para La Elaboracién de graficas en El Plano A). DISENO: GRAFICOS EN EL PLANO B). PROGRAMACION function varargout = plano(varargin) % — Executes on button press in pushbutton!. function pushbuttonl_Callback (hObject, eventdata, handles) set (handles.editl, ‘string’, "); set (handles.edit2, 'string’,’"); set (handles.edit3, 'string’,’"); set (handles.slider1, ‘value’, 0); set (handles.slider?2, ‘value’, 0); set (handles. slider3, ‘value’,0); plot (0,0) germ oars % — Executes on button press in pushbutton2. function pushbutton?_Callback (hObject, eventdata, handles) graficador close (plano) %— Executes on selection change in popupmenul. function popupmenul_callback (hObject, eventdata, handles) @ Devuelve 1a cadena ingresada en el Editi funcion=get (handles. edit1, ‘string’); % Devuelve el primer valor edit2 asstr2num(get (handles .edit2, ‘string’)); % Devuelve el segundo valor edit3 b=str2num(get (handles .edit3, ‘string’)); % Devuelve la posicién selecionada cel tipo de grafica t=get (handles. popupmenul, ‘value') ; 0.2 yeeval (funcion) ‘ripos de graficos: cartesiana,barras, polar, stem, stairs switch t case 1 asa=plot (0,0): case 2 01:b; valores de x -1ib0.5; 20.5 w0=0*w: yaseval (funcion) ;#valores de y a ‘Geo Foon Megabyte) case 3 Yee (magc (ya) -min (ya) +1) /4; ‘ ejey=min (ya) -0.5:k:max(ya)+0.5;% eje ¥ wi=0*ejey; plot (w,w0,‘:r/,w1,ejey,":r’);% ejes coordenados hold on plot (x, ya) ; grid hold off xlabel (‘x’), ylabel (+y’) 7% para incrementos pequefios emite errores -0.5:0.1:b40.5; val (funcion) ;8valores de y (maze (ya) -min (ya) +1) /45 ejey=min (ya) -0.5:k:max(ya)+0.5;% eje ¥ wejey: plot (w,w0, ‘:r',wl,ejey,':r’);% ejes coordenados hold on bar (x,ya): grid hola off xlabel (‘x’), ylabel('y") case 4 0.4:b; para incrementos pequefios emite errores 0.5 w0=0-w; yaseval (funcion) ;tvalores de y = (maxx (ya) ~min (ya) +1) /4; ejey=min (ya) -0.5: wi=0*ejey? ma... (Gauro Eorowat Megaby rmax(ya)+0.5;% eje ¥ plot (w.w0, ‘:r/,w1,ejey, /:11;% ejes coordenados hold on barh (x, va); grid hold off xlabel (‘x"), ylabel Cy") case 5 ‘ke (max (ya) -min (ya) +1) /4; ejey=min (ya) -0.5:k:max (ya) +0.5, rejey: polar(wi,eiey, sie ¥ "):8 ejes coordenados hold on polar (x, ya) grid hold off ya=eval (funcion) ;tvalores de y = (max (ya) -min {ya} +1) /4; ejey=min(ya)-0.5:k:max(ya)+0.5;% aje ¥ wis0*ejey: plot (w,w0,':r’,wl,ejey,/:r');% ejes coordenados hold on tem (xe, ¥a) 7 gria hold off xlabel(‘x'), ylabel(‘y') case 7 wea-0.5:0.1:b+0.5; % % w0=0*w: yazeval (funcion) ;8valores de y k= (maze (ya) -min (ya) +1) / plot (w,w0,':x/,wl,ejey,‘:r’):% ejes coordenados hold on stairsix.y): grid hold off xlabel (‘x’), ylabel(*y") end — Executes on slider movement. function sliderl_Callback(hObject, eventdata, handles) jet (handles. slider, ‘value’); jet (handles. slider2, ‘value’); a3=get (handles.slider3, ‘value’); as[al,a2,a3]; set (handles.axesi, ‘color’ a); — Executes on slider movement, function slider2_Callback(hObject, eventdata, handles) alsget (handles.slidert, ‘value’) ; adeget (handles. slides2, value’); a3aget (handles. slider3, ‘value’) ; ED set (handles.axesl, ‘color’, a); Gauro Eorronat Megabyte E Graficador de Funciones % — Executes on slider movement. s) function slider3_Callback (hObject, eventdata, handles) al=get (handles.slidert, 'value'); a2=get (handles.slider2, 'value’) ; a3=get (handles. slider3, ‘value’); al,a2,23]; set (handles.axesi, ‘color’, a); Disefio y Programacién De La Interfaz Para La Elaboracién De Graficas En El Espacio A). DISENO: GRAFICAS EN EL ESPACIO nz cintf engedek— [aga sey— tee_| B). PROGRAMACION function varargout = superficie(varargin) % — Executes on button | +s: in pushbutton! Qa function pushbuttonl_Callback (hObject, eventdata, handles) get (handles.edit1, ‘string’, /'); set (handles.edit2, ‘string’, ''); set (handles.edit3, ‘string’, ''); set (handles.editd, ‘string’, ''); set (handles.editS, ‘string’, ''): plot (0,0) % — Executes on button press in pushbutton2. function pushbutton?_Callback (hObject, eventdata, handles) graficador close (superficie) % — Executes on selection change in popupmenul, function popupmenul_Callback (hObject, eventdata, handles) % Devuelve 1a cadena ingresada en el Edit1 funcior =get (handles.editi, ‘string’); % Devuelve el primer valor del Edit? tr2double (get (handles.edit2, ‘string’)); % Devuelve el segundo valor del Edit? tr2double (get (handles.edit3, string’); & Devuelve el tercer valor del Editd tr2double (get (handles.edit4, ‘string’)); & Devuelve el cunzto valor del naies d=str2double (get (handles.edit5, ‘string’)); % Devuelve 1a posicién selecionada del tipo de grafica yazc-0.2:0.2:440.2; (x yl=meshgrid (xa, ya) ; sval (funcion) ; atipos de gréficos: mesh, surf, waterfall, contour switch t case 1 plot3 (0,0, 0): case 2 mesh(2); xlabel (‘x’), ylabel(*y'), zlabel(‘z") grid on case 3 meshe (2) ; xlabel (‘x’), ylabel(‘y'), zlabel(*z’) grid on case 4 meshz (z); xlabel (‘x’), ylabel(*y'), zlabel(+z’) grid on case 5 surf (2); xlabel(‘x'), ylabel ty’), zlabel(‘z") grid on case 6 surfc(2); xlabel('x'), ylabel(‘y'), zlabel(‘z') gria on teget (handles popupmenut, ‘value’ ); cae xaza-0.2:0.2:b+0.2; surfl(z); Graro Boron, Megabyte ) (Gurion Megabye ld Disefio y Prgramacién De La Interfaz Para La Elaboracién De Graficas De Revolucién A). DISENO: ‘SUPERFICIES DE REVOLUCION oestancnt ape sta: [— igs eercen[— Gaur orona Megabyte) ee : | B). PROGRAMACION function varargout = rotacion(varargin) % — Executes on button press in pushbuttoni. function pushbuttont_Callback (hObject, eventdata, handles} set (handles.edit1, ‘string’, "’): set (handles.edit2, ‘string’, ""); set (handles.edit3, ‘string’, plot (0,0) % — Executes on selection change in popupmenul, function popupmenu_Callback (hObject, eventdata, handles) funcion=get (handles .editl, ‘string’); tx2double (get (handles.edit2, 'string’)); bestr2double(get (handles .edit3, ‘string’ )); Devuelve 1a posicién selecionada del tipo de grafica teget (handles popupmenul, ‘value’) ; -2:b: yaseval (funcion) ;tvalores de y switch t case 1 plot (0,0); case 2 Srotacién alrededor del eie x xasx! ;yasya!; u=0:0.1:2*pi; atcos(u); Gecuacién para la rotacién de la curva sya*sin(u); Secuacién para la rotacién de la curva a Ee! (Garo tmonn Mepabpe ength(u) ; while icn Giguala la dimensién de la matriz x xa=(xa xb]; 41: end x=xai mesh (x,y, 2); xlabel(‘K'); ylabel(¥'); zlabel 12"): grid on case 3 trotacién alrededor del eje y xa=x' jya=ya'; -1:2%pi: xexatcos(u): Secuacién para la rotacién de 1a curva zexa*sin(u); tecuacién para la rotacién de 1a curva yb=ya; i=2; nelength(u) ; while icsn Siguala la dimensién de la matriz y ya=tya yb]; isiel: end veya mesh (x,y,z); xlabel(‘K"); ylabel (*¥'); zlabel(°2); yrid on case 4 $rotacién con cylinder cylinder (ya) ; xlabel (*X’); ylabel(*¥'); 2label (*2"); grid on end E-- : (Guuro Eorowat Megabyte % — Executes on button press in pushbutton2. function pushbutton2_Callback (hObject, eventdata, handles) funcion=get (handles.editl, string’); azsty2double(get (handles edit2, ‘string’)); bzstr2double (get (handles edit3, ‘string')); 0.22; dhe (max (e) -min (3c) +1) /4; ejex=min (x) -0.5:h:max(x)+0.5;8 eje x ejex: ya=eval (funcion) ;8valores de y k= (maxx (ya) ~min (ya}+1) /4; eie ¥ ejey=min (ya) -0.5:k:max (ya) +0 wi=0*ejey; plot (ejex,w0, ‘:r’,wl,ejey, ‘:r’);% ejes coordenados hold on plot (x, ya) : grid on hold off xdabel (*x’ ylabel (°¥"); % — Executes on button press in pushbutton3. function pushbutton3_Callback(hobject, eventdata, handles) graficador close(rotacion) % — Executes on button press in radiobutton! function radiobuttonl_Callback (hObject, eventdata, handles) set (handles. radiobutton?, ‘value’, 0); set (handles .popupmenu2, ‘visible’, 'on'); (Gauro Borrowat Megabyte + [Matlab 7 Para Ciencia get (handles -edit4, ‘visible’, ‘on'); set (handles.popupmenut, ‘visible’, ‘o££") ; % — Executes on button press in radiobutton2, function radiobutton2_Callback (hObject, handles) set (handles. radiobutton1, 'value’,0); eventdata, set (handles .popupmenul, ‘visible’, ‘on’); set (handles .popupmenu2, ‘visible’, ‘off"); set (handles.edit4, ‘visible’, 'o££'); % — Executes on selection change in popupmenu2. function popupmenu2_Callback (hObject, eventdata, handles) funcion=get (handles.editi, 'string’); a-str2double (get (handles.edit2,‘string’)): bestr2double (get (handles .edit3, ‘string’ )); ejea=str2double (get (handles. edité, ‘string’)); 8 Devuelve la posicién selecionada del tipa de grafica t=get (handles. popupmenu2, 'value’) ; xea:0.2:b; val (funcion) ;8valores de y switch t case 1 plot (0,0); case 2 trotacién paralelo al eje x masx! yarya’; 0.1:2*piz y= (ya-ejea) "cos (u) ; curva Secuacién para la rotacién de la : (Gruro Ebon Mi | TT nes ® ze(ya-ejea)*sin(u); Secuacién para la rotacién de la curva wbexa; n=length(u) ; while i Siguala la dimensién de 1a matriz x xa xb]; end mesh (x,y, 2) xlabel (‘x'); ylabel (°¥"); zlabel 02") grid on case 3 trotacién alrededor del eje y xa=x! sya=ya’; 10.1:2*pi; xa-ejea)*cos(u); Secuacién para la rotacién de 1a curva z= (xa-ejea)*sin(u); Secuacién para la rotacién de la curva Length (w) : while icon iguala la dimensién de la matriz y ya=(ya yb); isin; end yeyar mesh (x,y, 2) 7 xlabel (‘x’); ylabel (*¥'); zlabel(*2"); grid on end ‘Programacion del cuadro de Dialogo function uscire opcion=questdlg(’ Desea Salir del Software ?’, ‘Métods Mumericos’, . ‘Yes’, ‘No’, ‘cancel ‘,’cancel +) switch opcion, case ‘No’, % Do nothing case ‘Yes’, close all case ‘cancel’, close all end @ mes hgh) Sie | eet | Ejemplos realizados con el graficador GRAFICOS EN EL PLANO oven [$7 apenas I toes [A (een (Graficador de Funciones GRAFICAS EN EL ESPACIO renee TF amma rape = tee | ‘SUPERFICIES DE REVOLUCION | CONTENIDO: \ Variables. Funciones. Integrales. Ecuaciones diferenciales Pi Capitulo 14 i Matematica Simbélica’ Funciones Matematicas Simbélicas Matlab provee funciones para realizar operaciones y el célculo de variables 0 cexpresiones algebraicas simbélicas; lo que nos va a permitir realizar operaciones, factorizar, implificar polinomios y expresiones racionales, asf como a determinar rafces de polinomios, evaluar limites, derivadas, integrales y sistemas de ecuaciones, debiendo definir previamente como simbélicas las variables 0 cexpresiones a operat. Variables simbélicas Funcion Descripeion SYS KY ‘Canvieris las variables xyz en simbalicas. SyInS Kye Foal | Convierie las variables xy,..z en simbdlcas con valores reales. ‘SyInS Ky Unveal| Converts las variables xy,..z en simbolcas con valores no reales, Ba Tista las variables simbolicas enel espacio de trabajo. sesymnle) “Convers Ta varable x on Simboica. pretiay ‘Conviere la expresién simbéicaw en escrtura | matematica Semple) ‘Sinpific la expresion dada E eaten) Dawlsive ol resultado de a expresion E con n dgios decimales, powyasym(ey ‘Convers el arfegio ¢ en un polnomio simbaico de x. Ejemplo: Considere las siguientes expresiones f=2a -5, g= a? +2,y ‘Nos devuelve como resultado hea -Sa'+6a, Calcularw a! 344b+b? >> syms a aac pe f=2%a"3 -5; p> g=ah2+2; pe h=at3 -5¥ar2 + 6a; >>waftgth Ejemplo: Consideremos la expresiGn: 1/3 + 4/5, >> sym(1/3 + 4/5) Nos devuelve como resultado: TS Nos devuelve como resultado: w=3"aS3 -3- d*ah2+ 6a Ejemplo: >> pretty (w) >> vpa(2/5 - 7/4 + 1/3 +4/5, 6) Nos devuelve como resultado Nos devuelve como resultado: 3a -3-4e +60 -0.216667 Ejemplo: Consideremos la expresién 1/2a + 1/3b + 4a + 1/Sb +1/6c ; Ejemplo: >> syms abe >> poly2sym( [5 1 0 3 -12]) >> pretty(3/ (2a) + 2/b + L/(4*a) - 5! +1/(7%e)) Nos devuelve como resultado: Nos devuelve como resultado: SKM XID 434K = 12 714 Ua - 3/o + U7 Ue Ejemplo: Consideremos la expresi6n: (1- at) (1- a) Ejemplo: Consideremos la matriz simbélica A= [x e#; e* d] >> syms a >> syms dx >> E=simplify((1-aM4y(1-a) ) >> A=[x expla); exp) ds >> pretty(E) >> Dedet(A) ‘Nos devuelve como resultado: Nos devuelve como resultado: ate tat] De x*d-exp(d)expx) Ejemplo: Consideremos la expresién: /(1+b) + U(L+b!) + 1A 1+b)) >> symsb Ejemplo: Consideremos la matriz simbética A= [cos(x) x? se" dx] >> B= simplify(1/(1+ b) + 1/(1+ b)*2 + 1/(14b)*3 ) >> syms dx >> pretty(E) >> A=[oos(x) x."2;exp(x) d*x] 414 eee (Grune Boron Megabyte ) (GroroBoronar Megabyte ok >> T= inv(A) Nos devuelve como resultado: I= [-dlC-cos(x)*d+x*exp)) wiCcos(x)"d4x"expO) [ expQoir/(-cos(x)*d4x*exp(x)) -cos(x)/x/(-cos(x)*d+x*exp(x))] Funciones simbélicas Matlab permite definir funciones simbélicas mediante la siguiente sintaxis, f=‘ funcién ’ ,0 como f= funcién en el caso que sus variables hayan sido definidas previamente como simbélicas con la orden syms. Acontinuacién se presenta un listado de érdenes que realizan tareas del Andlisis Matematico con funciones simbélicas. Funcion Deseripcion ‘subs(F a) Evalia la funcion en el valor a, ‘subs(f, 8, b) ‘Sustiuye on la funcion Fen el valor a por el valor de b. SUBSE y...Z){a.b..6))| Sustluye on la Tuncin fas variables xy... Por los valores a,b... compesett, a) Funcion compuesta dey 6 Tinversoth) ‘Calcula la funcion inversa de f Tims, inf) Calcula el limite de Ta sucesion S, cuando n tiende al = Timitf, a) Calcula ol limite de Ta funcién f, cuando x tiends al valor de a, GRE x) © aT Calcula fa Gerwvada de Ta Tancion f respect ax Ca) Calcula atresia Gerivada de Ta Tancian respecto a x. Taylor») Calcula el desarrollo de la serie de Maclaurin de orden 5 para la funcién f en la variable x. Taylors nx, a) Caloula el desarrollo de fa serie de Taylor de orden n-1 para la funcién f en la variable x alrededor del punto a. 416 Snieecgee) Ejemplo: Consideremos la funci6n f(x) = 13 -x° .Hallar £(2). >> fa 13-x43'; >> subs(f, 2) Nos devuelve como resultado: 5 Observaci6n.- Otra forma de realizar esta evaluaci6n se presenta a ‘continuacién, donde se define inicialmente a x como una variable simbélica y ya no se expresa entre apéstrofes, >> syms x p> fa 13-3 >> subs(f, 2) Nos devuelve como resultado: 5 Ejemplo: Consideremos la funcin f(x) =x?—x+ 4y a una variable simbélica. Hallar f(a) >> syms x a po fe x2-x+4 >> subs(f, a) Nos devuelve como resultado: f w2-at4 Ejemplo: Consideremos f(x) = 5x'—x + 1 y buna variable simbélica. Hallar f(2*b+1). >> syms xb >> fe StxM xt 5 >> subs(f, 2*b+1) Nos devuelve como resultado: f= S#Q* + DM - 2b (Gerotorenn Megaiyte (Deer reas CS tention Simca >> diff(x"4 - cos(x) + exp(-x"2) ) ai ‘Ejemplo: Consideremos f(x,y 2)=x+ y 2%. Halla (a,b). >> limit( (24n"3 +4*n -3)/(3¢n*3 -7), inf) poems y rads Nos devuelve como resultado: po fex-y+2%2; ae > subs(f(xy.z}, (ab.c}) Ejemplo: Consideremos la sucesién s(n) = ( (+n) /(n®2) 4 (I/ n) Nos devuelve como resultado: Hallar lim s, i n= a-b+2%e >> syms n Ejemplo: Consideremos las funciones f(x) = 13x y g(x) =x°+2. >> Timit(((14n) (02) (1/2) inf) Hallar f(g(x). Nos devuelve como resultado: >>syms x 1 ae Ejemplo: Consideremos la funci6n f(x) = (x - 1) /(sqrt(x) - 1). >>g=x'Si2; >> w= compose(f, 8) Haar tin Nos devuelve como resultado: _ >> syms x foe >> Himit( (x= 1) / Gat) - 1D, D Ejemplo: Consideremos la funci6n f(x) = 3 ~ sqrt(x +2). Hallar F(x). De eee >> syms x b> fe 3 sqrt(xs2) jemplo: Consideremos lafuncin f(x) = (I-cos(x))/x. >> fl =finverse(t) Hallar tim f(x) Nos devuelve como resultado: aoe f= >> syms x cae >> limit( (1-cos( x) )/ x, 0) Nos devuelve como resultado: Bjemplo: Consideremos la sucesién s(n) = (2n? + 4n -3)/ @n?-7). ° Hallar lim sy Ejemplo: Consideremos la funcién f(x)= x! cos(x) + exp-x?) noe Hallar f'(x). >> syms a >> syms x 419 Nos devuelve como resultado: 6O#xN2 - 21x*3 - cos(x) 'Nos devuelve como resultado: 4x93 + sin(x) - 2*xtexp(-x"2) Ejemplo: Consideremos la funcién f(x) = sin(x), Hallar el desarrollo en serie Ejemplo: Consideremos la funci6n f(x, y)=sin(x*y) + y°3 - x°2 de Maclaurin de orden 5. Hallar las derivadas parciales siguientes: dffdx, dfldy, dffdydx, dt/dxdy, ayy @x, Play, >> syms x >> syms x >> taylor(sin(x)) >> fa sin(xty) +43 - x42; Nos devuelve como resultado: >>diffi£x) x= M683 + 1/2085 Nos devuelve como resultado: cos(xty)*y = 24 Observacién,~ El desarrollo en la Serie de Maclaucin se efectia alrededor del valor x= 0. >>diff(ty) Nos devuelve como resultado: Ejemplo: Consideremos la funcién f(x) = cos(x). Hallar el desarrollo en la costxty)*x + 3¥YA2 a de Tayo de orden 3, alrededor del punto x = 2, >> diff(diti(éx),y) a Nos devuelve como resultado: ~ oe 4ox, 7 a : yelve como resultado: -sin(xty)#x*y + cos(x*y) los devalve ute oes ugescae >> diff(diff(fy).x) ccas(2)- sin(2)*(x-2) - L/2*eos(2)*(x-2)82 + 1/6*sin(2)*(X-2)%3 Nos devuelve como resultado: -sim(xy)*x*y + cos(x*y) Funciones simbélicas para Ja integracién La integracién es uno de los puntos centrales del Anilisis Matematico en cuanto a la existencia de diversas técnicas paral célculo de una integral, Matlab provee funciones simbdlicas que van a ser de una valiosa ayuda en el cflculo de integrales indefinidas y definidas, las que a continuacién se describen: >> difflditt(t).») Nos devuelve como resultado: -sin(xty)#y"2 -2 >> diffldiff(ty).y) Nos devuelve como resultado: ssin(xty)*x%2+ 6Hy Ejemplo: Consideremos la funcién f(x Hallar £"(x). >> syms x >> diff("5 -log(x) + sin(x), 3) ~In(x) + sin(x). = Caso Eaoans Megabyte) (Gaim Mego Fancion Deseripcion nt) ~~ Calcul ia integral inde inida de Ta funcion F respectoa x. inti 3D, V) Calcula Ta inlogralindetinida dable de a Funcien ‘xy) primero respecto a la variable x, luego en la variable y. alcuia a integral indefinida doble de a funcion ‘xy) primero respecto a la variable y, luego en la variable x Calcula Ta infegral indetinida maliple dela fancion f(y, 2) primero respecto ala variable x, y, asi sucesivamente hasta la variable 2. ‘Calcula ia integral defnida de la funcion F respoctoa x, paraasxs>, ‘Cala itegral dina dcbe de Ta uncon f(xy) paraasxsb, esysd Tn IMG x) EB). ea) | Caleta a tagraldoirida mpl de Ta TuneGn 20) (ky 2) pareasxsb ,SySd.. eszsu TaN) TANGA, Hh. 2) inl x a, By Ane). By. 6 Ejemplo: Consideremos la funcisn f(x) = tan(x) - x?. Hallar +» (tan(x) - x? )ax >> syms x >> Fs tan(x) x25 >> int(f,x) Nos devuelve como resultado: log(cas(x)) = W383 Ejemplo: Consideremos la funcién f(x, y) Hallar {J (y? - seo(x) )axdy. >> syms xy >> f=yA3 - sects) s 422 | Bd ‘GruroEomonnt Megabyte sec(x). Matematica Siubélica >> int(int(f, x,y) Nos devuelve como resultado: L/4*yM4x - Tog(seo(x) + tan(x))*y Ejemplo: Consideremos la funcién f(x, y) = Hallar JJ (xy? ~ tan(x) jaya. >> syms xy >> fe xty’3 - tan(x); >> int(int(f ),) Nos devuelve como resultado: U8*y*4*x42 + y*log(cos(x)) _Ejemplo: Consideremos la funcién f(x, y, 2) = 6x’y - 2c0s(y). Hallar J] (6x*y - zcos(y) jaxdyaz. >> syms xyz >> fe 6x"24y -z*co8(y); >> int(int(int(f, x), y), 2) Nos devuelve como resultado: xAgiy2#2- U2t2A24x*sin(y) Ejemplo: Consideremos la funcién f(x) = e*- Hallar fe +x°)dx >>syms x ab >> f= exp(x)-°25 >> int(f, x, a, b) Nos devuelve como resultado: cexp(b) - 1/3*b"3 - expla) + 1/3¥a"3 Haeniiea Smain| é Cee nr ar Ejemplo: Consideremos la funci6n fix, y)=x?+ysin(x) a 5 2 a yeh [asover =") Resueve a ecuacion cferenoar E Sendo xa — tae [IPC + yc eon >> syms xy wane CF ‘Resuelve a ecuaian farencial con Valores ices ©. eee Geowel ECTCZ,. Gi] | Resiehve a SOUaCIGn Hferencial E, Con WaIOTES >> intlint(t ¥,-2,5).%,0,4) inciles C1, C2, ...Cn Nos devuelve como resultado: Bowel ECT CE En] | RESUONG Te BouaGR TETONCATE, COR VAIOTES iniciales C1, C2, .. Cn 95916 - 21/2%eos(4) Ejemplo: Consideremos la ecuacién diferencial y’ - Sy = 0 >> dsolve( * Dy = 5*y “) Nos devuelve como resultado: Cl¥exp5%) Ejemplo: Consideremos la funcién f(x, y,2) = xysin(x-z) +6y. apes atiar {f° f(y sin( x ~ 2) + 6y)dxdyde Ejemplo: Consideremos la ecuacién diferencial y’ - by =O.con valores iniciales i; yQ)=1. - >> dsolve(* Dy = b*y *, ‘y(2)= 1") Nos devuelve: como resultado Vexp(2*b)*exp(b"t) >>syms xyz >> faxty*(sin(x-z)) + 6Fy; >> int(int(int(f, x, 1,3), y,-3,4),z,0,2) Nos devuelve como resultado: 35/2*sin(1) + 84 - 7/2%cos(3) - 21/2*sin(3) + 7/2*eos(1) con valores Consideremos la ecuaci6n diferencial (y*)? + y# Funciones simbélicas para Ecuaciones Diferenciales >> dsolve(* Dy*2 + yr2= 1", y(0)=0") devuel Itado: Matlab permite definir funciones simbétlicas mediante la siguiente sintaxis, we eee oom sit f=" funcién’ , 0 como f = funcién en el caso que sus variables hayan sido : definidas previamente como simbélicas con In orden syms. it) Acontinuacién se presenta un istado de 6rdenes que realizan tareas del Andlisis - ee Matomflico ood fuasiones slashes, Ejemplo: Consideremos la ecuacién diferencial y+ 5y’ -6 = 0. >> dsolve(* D2y + 5*Dy-6=0°) Nos devuelve como resultado: -UStexp(-S*0)*Cl + 6/5% + C2 Errore emai) | (Grune Eononns Megabyte oe Interfaz Grafico usuario end Matlab = Inerfaz Grafice usuario en matlab 1, Presentacién del GUIDE El GUIDE (Graphical User Interface Development Environment: Entorno de desarrollo de Interfaz Gréfico de Usuario) es una serie de herramientas que proporciona MATLAB para la creacién de GUIs (Graphical User Interface: Interfaz Gréfico de Usuario). Como sabes, un GUI es un conjunto de uno 0 varios paneles que estén provistos de algunos de los siguientes elementos + Controles (botones, mentis desplegables, etc.), que permitirén al usuario interactuar con el GUT y establecer el flujo ce ejecucién. 4 Ments.. 1 Bjes de coordenadas, que permiten dibujar grificos e imagenes. ‘Vamos a usar el GUIDE para: Disefiar el aspecto del GUL ‘# Programar el GUI: El GUIDE genera de forma automética un fichero 1m que controla el funcionamiento del GUI. Este fichero .m inicializa el GUT y contiene un marco para todos los callbacks del GUI (las érdenes que se ejecutan cuando el usuario interactie con un elemento del GUD. Usando el editor de MATLAB podremos aiadir cédigo a los callbacks para realizar las funciones que queramos asignarles. El beneficio que proporciona el uso de GUIs es evidente, ya que permiten al usuario ejecutar cémodamente c6digo desarrollado en MATLAB sin necesidad de cumplir la incémoda sintaxis funcional necesaria cuando se trabaja desde la Ifnea de 6rdenes. A diferencia de la ejecucién de funciones o scripts de MATLAB, la ejecucion de GUIs no predetermina el flujo de ejecucién del cédigo. Bs el usuario, a través de su interaccién con el GUI, el que determina el orden en que se ejecutan las diferentes drdenes y funciones desarrolladas. Otra diferencia importante es que laejecucién no termina cuando finaliza la ejecucién cel script o funcién, sino que el GUI permanece abierto, permitiendo al usuario irvocar la ejecucién de ese u otro eédigo desarrollado. m El desarrollo de GUIs se realiza en dos etapas Radio Button Disefio de los componentes (controles, ments y ejes) que formarén el GUL m edge Codificacién de la respuesta de cada uno de los componentes ante la mete {nteracci6n del usuario. ae Mis adelante veremos c6mo invocar y comenzar a ejecutar el GUIDE, pero List Box ‘ahora nos adelantaremos y echaremos un vistazo a la ventana principal de GUIDE, Jo que nos permitiré conocer las herramientas que componen el entomo: Pop-Up Menu m Axes Miguel eve tor TebOrdec fle dae rpey peace Buse ™ Button Group ActiveX Component Barra de herramientas, en la que podemos encontrar botones para activar las herramientas mas importantes del GUIDE: Herramienta de alineacién (Alignment Tool), que nos permitiré establecer opciones de alineacién entre los diferentes componentes del GUL 1 Editor de meniis (Menu Editor), que nos permitiré definir las entradas gue compondrén el meni del GUI. Editor de orden de tabulacién (Tab Order Editor), que nos permite establecer el orden en que se accede a los componentes al pulsar el tabulador (en lugar de usar el rat6n), & Editor de ficheros .m (M-file Editor), con el que podtemos afiadir cédigo a las funciones callback correspondientes a cada componente. ™ Inspector de propiedades (Property Inspector), que nos ofrece la posibilidad de examinar y cambiar las propiedades de los componentes. @ Navegador de objetos (Object Browser), especialmente itil cuando tenemos un niimero elevado de componentes, nos permite examinar la lista de objetos de nuestro GUI, organizdndolos segtin su jerarquia, ¢ Barra de memis, en la que podemos encontrar las funciones de edicién de 1 Botén de ejecueién (Run Button). GUIs. + Paleta de componentes (Component Palette), que contiene los componentes que podemos afiadir a nuestro GUL Figures ob 2.Organizacién de los objetos graficos en MATLAB Push Button Toggle Button Como sabes, MATLAB ofrece una serie de funciones de dibujo visualizacisn de datos. Ya conoces algunas de estas funciones, como es el caso de imshow, Check Box imagesc 0 plot, por ejemplo. Cuando llamamos a una funcién gréfica, MATLAB 430 _Gruro Eomowal Megabyte i (GerokronaiMegabyie noo crea el grafico requerido usando objetos como ventanas, ejes de coordenadas, lineas, texto, ete Podemos trabajar con gréficos en MATLAB a tres niveles diferentes: ‘¢ Realizando llamadas a funciones de dibujo y visualizacién. MATLAB muestra todas las gréficas en un tipo de ventanas especiales conocidas como figures, en las que se sittian unos ejes de coordenadas. Estos ejes son los que proporcionan el sistema de coordenadas necesario para realizar la visualizaci6n de los datos. ¢ Trabajando a «bajo nivel», haciendo las lamadas necesarias a funciones de MATLAB para ir creando los objetos gréficos que sean necesarios para hacer la visualizaci6n. A este nivel serealizarén miltiples llamadas a la funcién set y otras similares para establecer las propiedades de los distintos objetos grdficos que se vayan creando o para modificarlas durante la ejecucién del programa. Este modo de trabajar es muy similar al uso tradicional de una biblioteca grafica que se puede hacer en un lenguaje de programacion convencional 4+ Empleando el GUIDE, el entorno de desarrollo de GUIs, que nos permitiri definir todos los componentes gréficos que deseemos, establecer sus propiedades e incorporar c6digo de respuesta a cada una de las acciones del usuario a través de una herramienta gréfica de cémodo manejo. Tiene la ventaja de que en cualquier momento podremos elegir si deseamos trabajar a alto 0 bajo nivel, pudiendo acceder al cédigo asociado a través del editor de MATLAB. ‘Como puedes ver, en cualquiera de estos tres casos estamos haciendo uso del sistema de objetos gréficos de MATLAB. Por lo tanto, es una buena idea que nos familiaricemos con él y adquiramos unos conocimientos bésicos. Los objetos graficos son los elementos bésicos empleados por MATLAB para visualizar datos, y estin organizados en una jerarqufa como la de la siguiente figura, en la que se muestran los tipos de objetos gréficos empleados mas frecuentemente: Como se ve en la figura, el objeto més general es la pantalla. Es la rafz de la Jerarqufa. Una pantalla puede contener una o varias ventanas (figure). A su vez, cada una de las ventanas podré contener controles (uicontrol), como son los botones, ments desplegables, etc., mentis (wimenu) y uno o més ejes de coordenadas (axes) en los que se podrén representar objetos de nivel inferior. Los ejes pueden incluir cinco tipos de elementos gréficos: Iineas (line), poligonos (patch), texto (text), superficies (surface) ¢ imagenes de mapa de bit (image). Alestablecerse relaciones padre-hijo entre los objetos gréficos se facilita su gestién, ya que, por ejemplo, cuando se borra un objeto, se borrarén autométicamente todos los descendientes de éste. Cada objeto esté asociado a un identificador (handle) tinico desde el momento de su creacién. A través de este identificador podremos modificar las caracterfsticas (Ilamadas propiedades del objeto) de un objeto gréfico. Naturalmente, también podremos establecer las propiedades de un objeto en el ‘momento de su creacién (cambiarlas con respecto a ios valores por omisi6n). El identificador del objeto rafz, la pantalla, es siempre cero. El identificador de las distintas ventanas (figure) es un entero que aparecerd en la barra de titulo de la ventana. Los identificadotes de los dems objetos gréficos son niimeros reales. Cualquier identificador se puede obtener como valorde retomno de una funcién y alumavemarse en uu variable. Como hemos dicho, puede haber varias ventanas abiertas, pero s6lo una de ellas es la ventana activa en cada momento. De la misma forma, una ventana puede contener varios ejes de coordenadas, pero s6lo unos son los ejes activos. Por titimo, el objeto activo es el dltimo objeto creado o sobre el que se ha hecho clic con el rat6n, Podemos obtener los identificadores de la ventana, los ejes y el wees ‘Gruro Eorowat Megabyte ) objeto activos con las érdenes: (Gauro Eorromat Megabyte Mata 7 Para Ciencias Ingenieria con Miodos Numéicos y Visual ‘¢ gcf: devuelve un entero, el identificador de la ventana activa. ‘¢ ca: devuelve el identificador de los ejes activos, + eco: devuelve el identificador del objeto activo. La principal utilidad que tiene conocer los identificadores de los objetos gréficos es que a través de ellos podremos modificar las propiedades de los objetos o incluso borrarlos: set(id): muestra en pantalla todas las propiedades del objeto al que corresponde elidentificador id. + get(id): produce un listado de las propiedades y de sus valores. set(id, ‘propiedad’, ‘valor’):establece un nuevo valor para la propiedad del objeto con identificador id. Se pueden establecer varias propiedades en la misma llamada a get incluyendo una lista de parejas ‘propiedad’, ‘valor’ en la Mlamada, + get(id, ‘propiedad’): obtiene el valor de la propiedad especificada. + delete(id): borra el objeto cuyo identificador es id y todos sus hijos. 3.Primeros pasos con el GUIDE a. Comenzando con el GUIDE Al llamar al GUIDE con la orden guide aparecerd el didlogo GUIDE Quick Start F Seamaaiass PHOT Co] eee y podremos ‘¢ Crear un nuevo GUI en blanco o a partir de las plantillas (templates) isponibles. ¢ Abrir un GUI ya existente. b. El editor de diseiio Cuando se abre un GUI, éste se muestra en el Editor de disefio (Layout Editor), que es el panel de control de todas las herramientas del GUIDE. (eG Wor Loe Tas eee Dees ceo sR ase [e feces cif =| | - esl || coop | [Lm | AREAS ite =|8i | S, elie | | eI i aa Loa Ee | Podemos disefiar un GUI arrastrando elementos (botones, mentis desplegables, jes, etc.) desde la paleta de componentes, que se encuentra en el lado izquierdo del editor. Por ejemplo, si arrastramos un botén al érea de disefi: Ose/saee (seh ose ajo|j|a >] felelzlale 434 ‘Gauro roma Megabyte ) (Gesrotaronn Megabyie Te ‘También podemos usar el editor para establecer las propiedades de los componentes del GUI. c. Ejecucién de GUIs Para ejecutar un GUI, podemos seleccionar Tools’tRun o hacer clic en el bot6n de ejecucién p. Para ver un ejemplo, te sugerimos que crees un nuevo GUI partir de una plantilla [fk some] ‘anPaen ton ‘S ratosion ores Ace cone a aS GraroTboronns Megabyte ) il Interfaz Gréfico usuario en matlab Al ejecutarlo, podris verlo funcionar en una nueva ventana, fuera del editor de disefto: 2) =101x) [accents =] __ pte d.Almacenamiento de GUIs Para almacenar un GUI, el GUIDE emplea dos ficheros: ¢ Un fichero fig, que contiene una descripcién del disefio del GUI y de sus, ‘componentes. ¢ Un fichero .m, que contiene el e6digo que controla el GUI, incluyendo los callbacks de los componentes. Estos dos ficheros se corresponden con las dos etapas de creacién de un GUI: lade disefio y la de programacién. ¢. Programacién del fichero .m del GUI Después de disefiar el GUI, podemos programar el fichero .m asociado en el editor de MATLAB. El GUIDE genera autométicamente este fichero a partir del diserio la primera vez que se salva 0 ejecuta el GUT. El fichero m del GUI se encarga de las siguientes tareas: Inicializa el GUL ‘ Contiene cédigo para realizar las tareas necesarias antes de que aparezca el GUT en pantalla, como la creacién de datos o gréficos. + Contiene las funciones callback que se ejecutan cada vez que el usuario hace clic en un componente. (Caokrenn Mego eee 5 a Tnicialmente, cada callback contiene s6lo una linea de definicién de la funci6n, Podemos afiadir e6digo que haga que el componente funcione como deseemos, Para abrir el fichero .m del GUI podemos hacer clic en el icono de la barra, de herramientas del Editor de diseflo. Bl fichero guil.m corresponde al GUI creado a partir de Ia plantilla GUI with Axes and Menu. Si abrimos este fichero enel editor de MATLAB, podemos acceder directamente a la funciGn callback de cualquier elemento del GUI através del botGn , que nos mostrar un ment como el dela siguiente figura: AE F Ei need 1 Gostenten caback 2, Fleteru cabo ft ‘OpenMerultem _Cafback opupmenut _Calback E popupmenuil_Createren © _prineMenurtem _Callack OutpatFen 4, Creacién de un GUI de ejemplo ‘Vamos a seguir en esta seccién el proceso de creacién de un GUI sencillo que nos servird de ejemplo: aDisefio del GUI Para comenzar a trabajar en el disefio del nuevo GUI, abriremos el GUIDE y en el didlogo GUIDE Quick Start elegiremos un GUT en blanco, como ya se ha explicado anteriormente. Si el GUIDE yaesté abierto, podemos invocar el didlo~” GUIDE Quick Start seleecionando File’INew. (eer Tater faz Gréfico usuario en matlab CAEN aa 2BB ose + | Es buena idea mocificar las preferencias para que nos muestre los nombres, de los Componentes que podemos afiadir a los GUIs. Para ello selecciona File’tPreferences’!GUIDE”!Show names in component palette, de forma que la paleta de compenentes contenga no s6lo el icono, sino el nombre de cada ‘componente. Sarre — a abe Ose 438 i. aso Megabyte ) (Gavin Mepis fa \atlab 7 Para Ciencias Ingenieria con Métodos Numéicosy Visuaizal Para especificar el tamafio del GUI podemos: ‘¢ Redimensionar el grid arrastrando la esquina inferior derecha con el ratén alala Be De us Is oe eo s88 Ose r Ber Sn ‘oe rae ick are to resine "eer Branco 4 Establecerlo de forma exacta accediendo a las propiedades del GUI através del Editor de propiedades, a través de las propiedades de Posicién y Unidades. oven =n seme = | Cem ois mar canara [} A continuacién, vamos a afadir algunos componentes al GUI. Comenzaremos ‘con un panel y dos botones. Para ello, iremos seleccionando el elemento deseado dela barra de componentes y marcando en el GUI laposicién y tamafio deseados. Podemos redimensionarlo arrastrando las esquinas. Observa que al acercar los botones al panel, el GUIDE marca el panel, indicando que éste es el padre potencial del botén en la jerarqufa de componentes. Afladiremos ahora un texto estético que servird como titulo, un mend desplegable (pop-up menu) y unos ejes (axes). Iremos viendo el uso de cada uno de estos componentes, Deg kea> SBR Oe Podemos usar la Herramienta de Alineacién (Alignment Tool) para alinear los componentes entre sf si tienen el mismo padre. Para ello: 1. Seleccionamos los objetos pulsando Ctrl y haciendo clic sobre ellos. 2, Seleccionamos Tools Align Objects para abrir la herramienta de alineacién, 3, Establecemos las opciones de alineacién mm ‘Gauro Eorrouat Megabyte ) (Geotironn Megabyie or eG Yer (wor Do ose sear ees ‘ = ele] a] istoute BEB} BBonepnong(38 amt ~ Fea conus [RpfaP|REIES Podemos alinear también otros componentes, como, por ejemplo, los ejes con 1 panel. Es interesante observar que cuando alineamos el panel, también se ‘mueven sus contenidos (los botones que hemos colocado en él). b. Establecimiento de propiedades Para establecer las propiedades de los diferentes componentes del GUI, seleccionaremos View"!Property Inspector. Cuando seleccionemos un componente en el editor de disefio, el Inspector de propiedades mostrard las propiedades de ese componente. Si no tenemos seleccionado ningtin componente, ‘nos mostrard las propiedades del GUL Dependiendo del objeto que hayamos seleccionado, las propiedades que nos mostraré el Inspector de propiedades serdn diferentes. Veamos algunas propiedades bisicas para el GUI y los componentes de nuestro ejemplo. ‘¢ Nombre (Name): El valor de la propiedad Name serd el (fuulo que miuestie la ventana del GUI cuando se ejecute. En nuestro ejemplo, establecetemos “GUI de ejemplo” como nombre del GUL ¢ Titulo (Title): El titulo de un panel permite establecer el titulo que aparece en Ia parte superior del mismo. Estableceremos “Operaciones” como titulo de nuestro panel. Mediante la propiedad TitlePosition podemos controlar dénde debe aparecer el titulo del panel ‘¢ String (Cadena): Podemos elegir la etiqueta de algunos componentes, como ¢ el caso de los botones, mediante esta propiedad. En nuestro ejemplo, etiquetaremos los dos botones con las cadenas “Emborronar” y “Rotar 90°", ‘También fijaremos la propiedad String del texto estético de nuestro GUI a “Mapa de color”. + Enel caso de los mentis desplegables, la propiedad String controla la lista de opciones del ment Para establecer las opciones que se ofrecerdn a través del mentidesplegable, haremos clicen elicono _, lo que abrird una ventana deedicién, donde escribiremos en cada linea las opciones a incluir. En nuestro ‘ejemplo hemos incluido los nombres de diferentes mapas de color (véase la ayuda sobre la funcién colormap) que aplicaremos a los ejes del GUI, como veremos més adelante Ss ax 10 a in a0 ‘+ Poston Wee 6077 20.21.9181 SelctorHighignt (Jon moron 444 (Gauro Eorrowat Megaby (em Titerfa Grifice usuario en maitab | @& ¢ Propiedades de los callbacks: Los componentes del GUI usan callbacks para realizar su tarea. Los callbacks son funciones que se ejecutan cuando el usuario realiza alguna accién concreta sobre el componente, como es hacer click sobre un bot6n o seleccionar una opcién de un ment desplegable. Cada ‘componente del GUI y cada opcién de meni tiene propiedades que especifican sus callbacks. Cuando creamos un GUI serd preciso que programemos los callbacks para controlar el funcionamiento del GUI. Mientras no lo hagamos, el GUI seré una “céscara vacta”, Un componente podré tener varias propiedades de callback, pero a mas importante es la propiedad Callback. El cédigo que incluyamos en esta propiedad reatizaré la tarea principal del componente en cuestién. Mas adelante ‘veremos c6mo programar esta propiedad para los componentes (botones y ment desplegable) de nuestro ejemplo. ‘¢ Etiqueta (Tag): Esta propiedad nos proporcione un identificador nico para cada componente. Este identificador se emplea, entre otras cosas, para que GUIDE genere nombres de callbacks tnicos para los diferentes componentes del GUL 4 Inicialmente, los componentes tienen nombres predefinidos (por ejemplo, pushbutton1). Si el componente tiene propiedad callback, el GUIDE establece como valor %automatic. Enns ge TH wioontol ushbuttont "Push Button’) T= cbata | Callback automat: L-lipping mn —createFen ~ DeleteFen Enahin alan | string E | Push Button Lee * “Jousnbutton pies ppushbuttont ‘~Toottipstring (Gruiro Boronia Megabyte oo Cuando se salva o ejecuta el GUI, el GUIDE crea un nombre de funcién \énico para cada funcién callback del fichero .m prefijando el valor de la etiqueta Tag a la cadena _Callback (por ejemplo, pushbutton! _Callback). Es recomendable redefinir el valor de la propiedad Tag para que resulte mas descriptiva. Debemos recordar que este valor debe ser tinico. En nuestro ejemplo, redefinimos el valor Tag para el ment desplegable como ‘menu_color. El GUIDE se encargaré de redefinir de forma consecuente las funciones callback de los componentes. También vamos a cambiar las etiquetas de los botones a los valores boton_emborronar y boton_rotar. ¢. Programacién del GUI Una ver establecidas las propiedades de los componentes del GUI, el siguiente paso serd programarlos. ‘¢ Creacién del GUI: Cuando salvas o ejecutas por primera vez el GUI, el GUIDE genera un fichero .m que contiene los callbacks para cada componente, ‘También incluye cédigo de inicializacién, una funci6n callback de apertura y otra funcién callback de salida. Cada callback es una subfuncién que inicialmente es s6lo una definicién de funcién vacfa. Nosotros debemos afiadir digo a los callbacks para proporcionarle operatividad al GUI. Cuando salvemos nuestro GUI déndole un nombre (en nuestro caso elegimos ejemplo_gui_mia fig), el GUIDE salvard también el fichero.m y lo abriré en el editor de MATLAB. ‘¢ Edicién del GUI: Podremos abrir en cualquier momento el fichero .m asociado a un GUI para modificarlo, La forma més directa de hacerlo es seleccionando el bot6n f&] de la barra de herramientas del editor de disetio. Una vez abierto, podemos saltar directamente al cédigo de una funcién callback conereta usando el boténf, de la barra de herramientas del editor y eligiendo en la lista que nos ofrece. team Interfaz Gréfico usuario en matlab + Cémo compartir datos entre los callbacks: Pocemos hacerlo almacenando Jos datos en la estructura handles. Todos los componentes del GUI comparten la misma estructura handles. Todos los callbacks generados por el GUIDE reciben esta estructura como argumento, Por ejemplo, para almacenar un vector, X, en la estructura handles '® Elegimos un nombre para el campo de handles donde queremos almacenar los datos (por ejemplo, handles.datos) m Afiadimos el campo a la estructura handles y le asignamos X: handles.datos = X; @ Salvamos la estructura handles con la funcién guidata: guidata (hobject handles} hObject es el identificador (handle) del objeto componente que ejecuta el callback. Todos los callbacks generados por el GUIDE reciben el identificador del componente como argumento, Para recuperar los datos en otro callback, haremos: X = handles.datos; Podemos acceder a los datos de handles en cualquier callback porque hObject y handles se pasan como argumentos a todos los callbacks generados por el GUIDE. 446 er (Gauro Eorronat Megabyte ) 447 (Gauro Eortoniat Megabyte alab 7 Para Ciencias Ingenieria con Miodos Numtiosy Visa ‘X ‘ Afiadir cédigo a Ia funcién de apertura: La funcién de apertura es la primera llamada del fichero .m del GUT. Podemos usarla para realizar tareas {que hay que llevar a cabo antes de que el usuario tenga acceso al GUL (por ‘ejemplo, leer datos de un fichero o crear algunos datos). El e6digo de esta funcién se ejecuta justo antes de que se visualice el GUI, pero una vez que se han creado todos los componentes. En nuestro ejemplo comenzaremos afiadiendo dos Ifneas para cargar una imagen y visualizarla en los ejes de nuestro GUE: handles.imagen = imread(*cameraman. tif"); imagesc (handles .imagen), colormap(gray(256)), axis off Observemos que el nombre de la funcién de apertura se forma con el nombre del fichero .m seguido de _OpeningFen. En nuestro ejemplo, el nombre dela funcién de apertura es ejemplo_gui_mia_OpeningFn Como puedes ver en el fichero .m de nuestro ejemplo, el GUIDE genera autométicamente dos lineas de c6digo en la funcién de apertura, que deben seguir al c6digo que aftadamos: © handles.output = hObject almacena el identificador del GUI para que pueda ser usado posteriormente por la funciéa de salida (output function). ‘Aunque en nuestro ejemplo no es necesario, resultaré muy stil si queremos devolver el identificador del GUI a Ia linea de érdenes de MATLAB. © guidata(hObject,handles) almacena la estructura handles. Con la pequefia modificaci6n que hemos hecho en la funcién de apertura podemos ver el aspecto de nuestro GUI. Para ejecutarlo podemos seleccionar ‘Tools >Run o hacer clic en el botén rans Ejecucién antes de la ‘modificaci6n Jde la funcién de apertura (es Interfaz Gréfico usuario en matlab ean JEjecucién después |de La modificacién de la funcién de apertura + Afiadir cédigo a los callbacks: Cuando se ejecuta el GUI y el usuario hace clic en uno de los controles, como puede ser, por ejemplo, un botén, MATLAB ejecutaré el callback espe-ificado por la propiedad Callback del componente. Los botones que hemos incluido en nuestro GUI realizan diferentes tareas, ‘emborronar y rotar la imagen, pero ambos comparten la necesidad de acceder alos datos, Sus callbacks necesitan tomar los datos de la estructura handles pata modificarlos y volver a mostrarlos en pantalla El c6digo que vamos a afiadir a la funcién callback del bot6n Emborronar es, elsiguiente: mascara(1:3,1. handles.inagen = filter? (mascara, handles. imagen) ; imagesc(handles.imagen), axis off guidata(hObject, handles) ; Observa que podemos manipular la imagen que hemos leido antes en la funcién de apertura porque la hemos almacenado en la estructura handles, También es importante que no olvides incluir la Mamada guidata(hObjecthhandles);, que hace que las modificaciones que hemos hecho queden almacenadas. Por curiosidad, comenta esta linea y observa el efecto due tiene cuando pulsas el boton Emborronar varias veces seguidas. En el caso de la funcién callback del botdn Rovar incluiremos el siguiente cédigo: =a Gero ononn Mega) (Gaomnegine (Oe IN Thandles.imagen = imrotate(handles.imagen, 90, ‘bicubic’); imagesc (handles. imagen), axis off guidata (hObject, handles) ; EI mend desplegable permitiré al usuario elegir entre diferentes mapas de ‘color para la visualizacién de la imagen. Cada vez que el usuario selecciona tuna opeién del meni, la funcién callback leer el valor de la propiedad Value para establecer el mapa de color deseado, para lo que incluiremos el siguiente : —s i) 70 (| ono 7 k= (Gayro Eorouat Megabyte (Gauro Eorowat Megabyte +> SEE Diagrama del contorno de picos (Contour Plot of Peaks) zepeaks(25); 25 contour (2,16) ; colormap (hsv) 10 ‘Temblor (Quiver) x = -2:.2:2; ys -1.2:1; bocyy] = meshgrid(x,y) + 22 = 200. "xD (-¥0."2-¥¥."2) 5 (px,py] = gradient (zz, .2,.2); quiver (x,y, Px, Py,2); 15) as M oee7 | SN o AAR PANEER Sea 45 aso ast hi (Gauro FoTonat Megabyte L Graficos y Visualizacion en 3-D Rebanada (Slice) bx,y,2] = meshgrid(-2:.2:2,-2:.2:2,-2: voz x .* exp(-x.2 ~ y.72 - 2.72); slice(v, (5 15 21),21,(1 101) axis([0 21 0 21 0 21]); colormap (Jet) Ver un Penny El archive PENNY.MAT contiene las medidas hechas en el National Institute of Standards and Technology Dibujo de un diagrama de contorno Dibuje un diagrama de contomo con 15 Iineas coloreadas cobre load penny.mat contour (P,15) colormap (copper) axis ij square (GurotononniMegibyte ED ( @ janes ce nia Dibujo de un diagrama con pseudocolor Dibuje un diagrama del pseudocolor con el brillo proporcional ala altura peolor(P) axis ij square shading flat em rarer (G) Dibujo de un diagrama del pseudocolor con un mapa de color Dibuje un diagrama del pseudocolor con el brillo proporcional a Ja altura. D = -de12(P); peolor (D) axis ij square shading flat Dibujo de un diagrama superficial con un mapa de color Finalmente, produzca en 3-D, un diagrama de la superficie con el modelo de la iluminacién de Laplacian coloreado de cobre sur£(P,D); axis('ij", ‘tight") shading('flat') seek view(-20,75) (Gxuro Eoroniat Megabyte 1 Onda cuadrada de ondas del seno ~ 7 muna |. La extensién de la serie de Fourier Para para una onda cuadrada se compone \S f NS J \ de una suma de arménicos impares. Demostramos este MATLAB 06] i plies que ase | ‘Comenzamos formando un vector del tiempo que funciona a partir laa 10en pasos de 0.1, y tomamos el seno de todos los puntos. Tracemos esta frecuencia ma) fundamental : oo a] g/m eintts plot(e.y)s oa os ' as] os 1 7 oa o4 Ahora utilice el primer, el tercero, el quinto, el séptimo, y los novenos 02| arménicos. y = sin(t) + sin(3#t)/3 + sin(stey/5 + ein(7ee)/7 + a Sin(aet) 79 a wlecie.yts : au as o asl os ST aa 02 ql ‘Ahora agregue el tercer arménico al fundamental, y trécelo.Y lo represente 22} etGeements 7 ya sin(e) + sin(3*t)/3s piece 714 as 08 ‘D 1 2 rm ee en). ro Para un final, iremos del fundamental al diecinueveavo arménico, creando vectores sucesivamente de mas arménicos, y ahorrando todos Ios pasos del intermedio como las filas de una matri. Estos vectores se trazan en la misma figura para demostrar la evolucién de la y = zeros(10,length(t)); x = zeros(size(t)); for k=1:2:19 x = x + sin(k*t)/k; y( (e+) /2, 2) = x7 end plot (y(1:2:9,2)") title('El edificio de una onda cuadrada: Gibbs'' Efecto") El edificio de una onda cuadrada: Efecto de Gibbs 03 02 oa oo «0 o 6 10 1m v0 160 tomo Grificos y Visualizacion en 3-D ‘Aqui esté una superficie 3-D que representa la trensformacién gradual de una onda del seno en una onda cuadrada. suré(y): shading interp axis off ij Gero Foon Megabyte) (Gaiman Megane vee ET Funciones de variables complejas MATLAB puede ayudarle a realizar algunas manipulaciones muy interesantes en variable compleja. Deje Ia f(z) ser una funcién de una variable compleja. Considere el dominio formado por el disco de la unidad (exhibido abajo en coordenadas polares) Laaltura de la superficie es la parte real, REAL(((2)). El color de la superticie es la parte imaginaria, IMAG(f(z)). El mapa de color varia la tonalidad en el ‘modelo del color de HSV. CPLXMAP traza una funcién de una variable compleja. Tiene el sintaxis CPLXMAP(G, f(z), bound), donde esté el dominio z, y el f(z) traz eso genera la gama. CPLXGRID genera una rejilla compleja de coordenada polar. Z = CPLXGRID(m) es (m+1)-by-(2*m+1) una rejilla polar complej colormap (hsv (64) ) z = eplxgrid(30); eplamap (2,2) title('2") oa (ee Graficos y Visualicacién en 7D (2) = 23. Tres méximos en las raices cibicas de 1. eplanap(z, 2.3) title('23') (2) = (@4-1)(1/4), Cuatro ceros en la cuarta rafce de 1 eplamap(z, (z.°4-1) .*(1/4)); title('(2-4-11°(1/4)") etaiig 05 a4 (Gnoro Foroniat Megabyte 467 (2) = L/z. Un polo simple en el origen. eplamap(2,1./(2+eps* (abs (z)==0)), S*pi) : eitle('1/2") tn f(z) = atan(2*z). Singularidades de corte de rama en +-i/2 cplamap ( stant2) title('a a Grificos y Viswalizacion en 3-D f(2)= 21/2. vista del eje imaginario negativo. axis(‘auto") cplxroot (2) view(0,0) title('sqrt(z)") a8 06 04 02 0 02 04 06 oa 1 tra visi6n para el f(z) = 21/2. La superficie de Riemann para la rafz cuadrada. view(-37.5,30) eplxroot (2) title('sart(z)") 469 —— es eat) f(z) = 21/3. La superficie de Riemann para la rafz.cibica. cplxroot (3) ie 218) 470 im... (Gauno Errol Megabyte 2. 3-D Visualization Botella de Klein Klein bottle Una botella Klein es una superficie poco orientable en espacio ‘cuadridimensional. Es formada uniendo dos tiras de Mobius a lo largo de su limite comin Las botellas de Klein no se pueden construir sin la interseccién en tres- espacio. La figura demostrada es un ejemplo de una botella de Klein tanque que se interseca sola, Genere la botella de Klein Defina los parémetros de la botella de Klein n= 12; as 2; & the diameter of the small tube c= 6; & the diameter of the bulb tl = pi/4 : pi/n : S*pisa; 8 parameter along the tube 2 = Stpi/4 : pi/n : 9*pi/4; —$ angle around the tube u = pi/2 : pi/n : 5*pi/2; (x,z1] = meshgria(tt,u); (¥,22] = meshgria(t2,u); 8 The handle len = sqrt (sin(x).*2 + cos(2*X).*2); xl = cYones(size(x)) .* (cos (x) .*sin (x) ~ 0.5tones (size (x))+a*sin(z1).*sin(x) ./len); yl = a*e*cos (21). tones (size(x)); 21 = ones (size(X)).*cos(x) + atc*sin(21) .*cos (2*x) ./len; handletindl=sur£ (x1,y1, 21,2); set (handleHndl, "E@geColor',[.5 .5 .5]); hold on; (Guuro Borrow Megabyte oe a & The bulb r= sin(¥) .* cos(¥) - (a + 1/2) * ones(size(¥)); x2 = * sin(Z2) .* ry y2 =~ © * cos(z2) .* x z2 = ones(size(¥)) .* cos(¥); pulbéndl =surf (x2,y2, 22/1); set (bulbiindl, ‘EdgeColor",[.5 .5 .51) colormap (hsv); axis vis3d view(-37, 30); axis off Light ("Position", {2 -4 5]) light hold off Mitad de la botella shading interp ork [row col] = size(c); c(1:£loor(xew/2),:) = NaN*ones (floor (row/2) ,col) set (handlelindl, 'CData',c) ; c=% [row col] = size(c); om (1: floor (row/2),:) = NaN*ones (floor (row/2) ,col) ; set (bulbHnd1, 'Cbata’,c) ; set ((handleHndl bulbsndl], ‘FaceAlpha',1); Botella transparente shading faceted: set (handletindl, ‘CData',X): set (bulbiindl, ‘Data’, ¥); set ({handletindl bulbiindl], ... ‘BdgeColor',[.5 .5 5]... ‘FaceAlpha', .5): Visualizacion del volumen en MATLAB ‘Aqui estén algunos ejemplos de las visualizaciones del volumen en MATLAB. Vea tambien: ISOSURFACE, STREAMTUBE, STREAMRIBBON, STREAMLINE, CONEPLOT. superficie de los datos de MRI (SOSURFACE) colordef (gcf, "black" ) load mri; D = squeeze(D); (x y 2D) = subvolume(D, (man nan nan nan nan 4]); p = patch(isosurface(x,y,2,D, 5), 'FaceColor’, ‘red’, "EdgeColor', ‘none') ; p2 = patch(isocaps(x,y,z,D, 5), 'FaceColor’, ‘interp', “EdgeColor', ‘none") ; isonormals (x,y, 2,D,P) ; view(3); daspect ({1 1 .4]) colormap (gray (100) ) camva (9); box on camlight (40, 40); camLight (~20,-10); lighting gouraua Gréficos y Visualizacin en 3-D Diagrama del cono de los datos del viento (CONEPLOT) cla load wind lex cy cz] = meshgrid(1inspace (71,134, 10) , linspace(18,59,10),3:4:15); daspect ((1 1 1}) h=coneplot (x,¥,z,u,v,w,ex,cy,ez,¥,3); set (h, 'Edgecolor', ‘none'); colormap (hsv) ; box on; axis tight camproj perspective; camva (35); campos({175 10 85]); camtarget ({105 40 01) camlight left; Lighting gouraud oa ‘Gruro Boronia Megabyte ) (Gaara Boman Megabyte a oA Lineas aerodindmicas de los datos del viento (Streamlines ) set (h, ‘facecolor', ‘eyan‘, ‘edgecolor', ‘none*): cla box on: [sx sy sz] = meshgrid(80, 20:10:50, 0:5:15); camproj perspective; axis({70 138 17 60 2.5 161); axis tight streamline (x,¥,2Z,¥,V,W, SX, SY, 82); set(h, ‘Color', ‘cyan'); daspect ({1 1 11) camva (28) ; box on; campos (175 10 951); camproj perspective; camtarget ({105 40 0]) camva (32); camlight left; aes Lighting gouraud campos({175 10 85]); camtarget ({105 40 0]) camlight left; Lighting gouraua Cintas de los datos del viento (STREAMRIBBONS ) Util para visualizar el enrollamiento de un campo del vector cla [ex sy ez] = meshgria(0, [20 30 40], [5 101); daspect ({1,1,1]); hestreamribbon (x,y, z,u,v,W, Sx, SY, $2); ‘Tubos de los datos del viento (Streamtubes) Util para visualizar divergencia de un campo del vector set (h, ‘facecolor’, ‘cyan’, 'edgecolor', ‘none') box on; camproj perspective; axis({70 138 17 60 2.5 161); cla [ex sy sz] = meshgrid(80, [20 30 401, (5 10]) daspect ([2,1,11); hestreamtube (x,y, 2,U,¥/w, Sx, SY,82) ; Coe : (GauroEntronat Megabyte Gnuro Boronia Megabyte ‘axis tight camva(28) ; campos((175 10 9. camtarget ({105 40 01) camlight left; Lighting gouraud Isosurface, isocaps, coneplot, y Iineas aerodinémicas de los datos del viento cla spd = sart(u.tu + vetv + w.tw)s p = patch(isosurface(x,y,2,spd, 40)); isonormals (x,¥,2/aP4, P) set (p, ‘FaceColor', ‘red’, ‘BdgeColor', ‘none'); p2 = patch (isocaps(x,y.z,spd, 40)); set (p2, ‘FaceColor', ‘interp’, 'BageColor’, ‘none") daspect({1 1 11); [f verts] = reducepatch(isosurface(x,y.2/spd, 30), 2) mneplot (x,¥,2,1,¥,w,verts (:,2) ,verts(:,2),verts(:,3)2)1 ra. (GruroEprowat Megabyte - (GauroEomonan Megabyte ary ata AY set(h, ‘FaceColor', ‘cyan', 'BdgeColor', ‘none'); (sx sy sz] = meshgrid(80, 20:10:50, 0:5:15), h2=streamline(x,y,2,u,Vv,w, Sx, 6y, 82) ; set(h2, ‘Color’, [.4 1.41); colormap (jet) box on axis tight camproj perspective; camva (34) ; campos({165 -20 65]); camtarget ({100 40 -5]) camlight left; Lighting gouraud Oger 1. Ecuaciones de Primer Grado con Dos Variables Veamos las siguientes ecuaciones: a) 7x +5y -24=0 b)a+5b=-85 ©) 13x=7- lly En todos los ejemplos anteriores (ecuaciones a, b y c) observamos que se tienen dos variables o incégnitas, mismas que estin representadas por letras diferentes. Entonces todas ellas son Ecuaciones de Primer Grado con Dos Variables, Una ecuacién con dos variables tiene infinitas soluciones dentro de los niimeros reales, es decir, una combinacién infinita de respuestas cumplira con las, condiciones de la ecuacién. Si tenemos solamente una ecuacién de este tipo no podemos determinar el valor exacto de cada una de las variables. ‘Tendremos, eso si, la opcién de tener el valor de unade las variables o incégnitas en funci6n de la otra. Veamos a continuacién como podriamos resolver el primero de los ejerpl Hallamos el valor de x Hallamos el valor de y Tx +5y -24 = 7x +5y -24=0 7x= 24 By By = 24-Tx x= 245y y= 24-2x 7 5 483. na Como podemos apreciar las respuestas quedaran en funcién de la otra variable ‘incégnita y no se podra hallar un valor numérico exacto. 1.1. Sistemas de ecuaciones con dos variables Para resolver ecuaciones con dos variables, necesariamente debemos ee dos ecuaciones. Estas dos ecuaciones en conjunto forman el sistema de ecua con dos variables o incégnitas. Porejempl siguientes eouionsindvdualmente no pdtian eres, in embargo, en conjunto si podrian ser resueltas, y de esta manera po halla el valor tanto de la variable «x» como de la variable «>: 2x+3y=5 5x + 6y = é de ‘A continuacién veremos los diferentes métodos de resolucién de este tipo cecuaciones. 1.2, Método de Reduccién les En este método buscamos que en ambas ecuaciones una de eee tenga coeficientes opuestos (mismo valor, pero con diferente signo) para q sea eliminada al summarlas. Nos remitimos a nuestro ejemplo original: 2x4 3y Este es el sistema de dos ecuaciones con dos 5x+6y variables que queremos resolver. riable"y’, tanto Nos damos cuenta. aue para la vara ee en la primera coma en la segunda ecuacién, el le Coeficiente es miiliplo de 3, Para hacer que la variable *y" tenga coeficientes a copuestos, multiplicamos a todos los términos de la primera ecuacion por -2 Ax-6y > (Gnuro Eoronat Megabyte ‘Sumamos (o restamos segiin sea el caso) la primera ecuacién con la segunda ecuacién, 6 x=-6 Hemos encontrado el valor de la variable "x" 2x+3y=5 Seleccionamos una de las ecuaciones y en ella 2-6) + 3y Teemplazamos el valor de la variable "x" 243y=5 Notese que el valor de "x" (que en este caso era -6) 3y=54 12. !hemos mulipicado por et coetcente ce coer ao misma letra El trabajo que viene a continuacion es similar al de cualquier ecuacién de primer grado, Finalmente hallamos el valor de la variable "y" 1.3. Método de Sustitucién Para resolver un sistema de ecuaciones con este método debemos despejar luna de las variables en una de las ecuaciones, y reemplazar la expresién obtenida en la otra ecuacin. ‘Veamos el mismo ejemplo anterior: 2x+3y=5 De misistema de dos ecuaciones con dos variables BEtep2§ ——escojouna do las como fr semen cnt de elas, 2x+3y=5 Emmi ecuacién escojo una variable para despejar 2x+3y=5 Como he escogido la variable y", entonces dejo los B términos con *y” a un lado y llevo los demas al otro aca lado, Hallamos el valor de la variable "y" +6(5-2x)=4 _ - Reemplazamos el valor obtenido para *y" en la hao ‘multipicando al coeficiente) (Gruro Eorowat Megabyte a Qn 5x + 6(5 2x) = 4 3 5x +10-4x=4 bx-4x=4-10 5(-6) + 6y=4 Nan Reemplazamos el valor obtenido para "y" en la ‘segunda ecuacién (recordemos que estaré multiplicando al coeficiente) Resolvemos el producto, llevamos los términos que tienen variable "x" a un lado de la igualdad y los términos independientes al otro lado de la igualdad, Reducimos términos semejantes. Al realizar todo este trabajo obtendremos el valor de la variable "x" Reemplazamos el valor obtenido en cualquiera de las ecuaciones. Finalmente hallamos el valor de la variable "y" 1.4, Método de Igualacién Este método consiste en despejar la misma variable en las dos ecuaciones y luego igualarlas. Apreciemos el trabajo en el mismo ejemplo: 2x+3y=5 COMMS Groom eae) Voy a trabajar por separado la primera ecuacién y la segunda ecuacién, En ambas buscare el valor ae'y" Hemos resuelto para "y" la primera ecuacién. El resultado 0 valor obtenido, lo emplearemos mas adelante. ‘Ahora hemos resuelto para *y” la segunda ecuacién. El resultado o valor obtenido, lo ‘emplearemos mas adelante. Procedemos a igualar ambas ecuaciones. Ahora atencién: los términos que estan dividiendo pasaran a multipicar Resolvemos la ecuacién como si se tratase simplemente de una ecuacién de primer grado. Hallaremos el valor numérico de la variable "x" Reemplazamos el valor cbtenido en cualquiera de 5(6)+6y=4 as ecuaciones. = 17 uy Finalmente hallamos el valor de la variable "y" 2. Ecuaciones de Primer Grado ‘Una ecuacién es una igualdad donde por lo menos hay un nfimero desconocido, Mamado incégnita o variable, y que se verifica (se cumple), para determinado valor numérico de ella, 2.1 Resolucién de ecuaciones de primer grado con una incégnita Para resolver ecuaciones de primer grado con una inedgnita, aplicamos el criterio del operador inverso, mismo que observamos en el siguiente ejemplo: Resolver la ecuacién 2x - 3 = 53 Debemos tener las letras a un lado y los imeros al otro lado de la igualdad ©), entonces para llevar el -3 al otro lado de la igueldad, le aplicamos el operador inverso (el inverso de -3 es +3, porque la operacién inversa de la resta es la summa). 5343 2x = 56 Tendremos: 23 47 "Ahora tenemos el ntimero 2 que esta multiplicando a la variable o incégnita x, ‘entonces lo pasaremos al otro lado de la igualdad dividiendo (la operacién inversa de la multiplicacién es la divisién), ‘Tendremos ahora: x = 56 +2 x=28 Entonces el valor de la ineégnita o variable «x» es 28. Resolvamos otro ejemplo: “11K -5x 41 = 65x +36 Llevamos los términos semejantes a un lado de la -14x-5x +65x = 36 igualdad y los términos independientes al otro lado 1 de la igualdad (hemos aplicado operaciones inversas donde era necesario). Resolvemos las operaciones indicadas ee anteriormente. Aplicamos operaciones inversas, y simplificamos. 2.2 Resolucién de ecuaciones con signos de coleccién Para resolver este tipo de ecuaciones primero debemos suprimir los signos de coleccién o agrupacién considerando la ley de signos, y en caso de exist varias agrupaciones, desarrollamos de adentro hacia afuera las operaciones. ‘Veamos el siguiente ejemplo: 2x -x-(K -50)] = x- (800 -3x) 2x xx +50] = jtamos los paréntesis. Goa Primero quitamos los p: Guro Boronia Megabyte Reducimos términos semejantes. 2x -{50] = 4x -800 2x50 x-800 Ahora quitamos los corchetes. Transponemos los términes, empleando el criterio de operaciones inversas. Nuevamente reducimos términos semejantes Despejamos x pasando a dividir a -2, luego simplificamos, CUIDADO!!! Para suprimir los signos de coleccién debemos tener en cuenta que: a) Si tenemos un signo + antes del signo de coleccién no afecta en nada a lo que este dentro de este signo de coleccién. Por ejemplo: +(3x-5) = 3x - 5 ) Si por el contrario, tenemos un signo - antes del signo de colecci6n, este signo afectaraa todo lo que este dentro del signo de coleccin, Tados las iérminos sdenttadel sisno de colecciGn cambiarén de signo. Por ejemplo: -(3x-5) +5 2.3 Resolucién de ecuaciones con productos indic:idos Para resolver este tipo de ecuaciones, primero se efectian los productos indicados y luego se sigue el procedimiento general {aplicando el criterio de las, ‘operaciones inversas). Observemos un ejemplo: B(x -8) “(x 4 +3) 10 Resolvemos el producto indicado, y 5x-15-x41=X43 _adicionalmente eliminamos los paréntesis, néte: “10 que al eliminar el paréntesis en -(x-1), se camb de signo por efecto del signo * -* exterior. (GruroForonat Megabyte PES | 439 Llevamos los términos semejantes a un lado de la Sx-x-x=3-10+15 —iguaidad, y los términos independientes al otro el lado (empleamos operaciones inversas.) tt Reducimos términos semejantes en ambos lados 7 de la igualdad. Le Despejamos x pasando 3 a divdir. Para resolver los productos indicados hemos empleado los criterios de multiplicacién de un monomio por un polinomio 2.4 Resolucién de Problemas Para resolver un problema, debemos plantearlo en forma matemé realizar las operaciones correspondientes para hallar el valor de la incégnita (el dato que descamos conocer), ‘Veamos un problema caracteristico: Jorge es 3 afios menor que Alvaro, pero 7 afios mayor que Miluska. Sila suma de las edades de los tres es 38, ,qué edad tiene cada uno? Digamos que las edades de los tres son: j edad de Jorge a edad de Alvaro m edad de Miluska Sabemos que la edad de Alvaro es igual a la edad de Jorge mas 3 afios (Jorge es tres aiios menor que Alvaro): anj+3 ‘También sabemos que la edad de Miluska es igual a la edad de Jorge menos 7 afios (Jorge es 7 afios mayor que Miluska): ica y luego m=j-7 Ahora tenemos que: rm ww edad de Jorge: j edad de Alvaro: j +3 edad de Mituska: j-7 ‘La suma de las tres edades es 38: j+j+3+j-7=38 Resolviendo esta iltima ecuacién tendremos: j= 14 (esta es la edad de Jorge) Finalmente: edad de Jorge: j = 14 aiios edad de Alvaro: j+3 = 17 afios edad de Miluska: j-7 = 7afios 3.Ecuaciones de Segundo Grado ‘Tenemos una ecuacién de segundo grado 0 ecua ati T ecuaci6 icin cuadratica, cuand variable o incdgnita esté elevada al cuadrado (elevade a exponente 2), " 3.1Ecuaciones Cuadraticas ‘Veamos las siguientes ecuaciones: a) 78 +5x-24=0 b) x4 5x=-85 ©) 13xt=7 d) 4x°-4x=0 En todos los ejemplos anteriores (ecuacion ante es a, b, cy d) observamos que tiene o a variable o incdgnita elevadaal eusdrado (exponente 2) en alguno de ‘sus términos. Entonces todas ellas son Ecuaci Geren *iones de Segundo Grado o Ecuaciones (Gruro Eorowat Megabyte wa ca Una ecuacién cuadrética tiene, por lo general, dos respuestas o rafces, que cumpliran las condiciones mismas de la ecuacién. En general, una ecuacién cuadrética tiene la forma: ax’ + bx + donde a,b y ¢ son niimeros reales; y x es la incégnita o variable. 3.2 Resolucién de Ecuaciones Cuadraticas Incompletas En algunas ecuaciones cuadréticas, no encontraremos alguno de los términos. ‘Veamos en los siguientes ejemplos: Ejemplo 1 Resolver: 4x?- 16=0 En este primer ejemplo falta el término que contiene solamente a la variable «

S-ar putea să vă placă și