MATLAB Iniciación al Programa. El Lenguaje de Lenguaje de Computación Técnica MATLAB es un ambiente de ambiente de computación técnic técnicaa integr integrada ada que combi combina na comput computaci ación ón numéri numérica, ca, gráfic gráficos os !isual !isuali"a i"ació ciónn a!an"ada un lenguaje de programación de alto ni!el# $ea cual fuere el objeti!o, objeti!o, un un algoritmo, algoritmo, análisis, análisis, gráfic ficos, informes o simula simulació ción, n, MAT MATLAB lo lle!a lle!a all%# all%# El lenguaje fle&ible e interacti!o de MATLAB permite a ingenieros cient%ficos e&presar sus ideas técnicas con simplicidad# Los poderosos amplios métodos de métodos de cómputo numérico graficación permiten la prueba e&ploración de ideas alternati!as con facilidad, mientras que el ambiente de desarrollo integrado facilita producir resultados prácticos fácilmente#
MATLAB es la fundación numérica gráfica para todos los productos de T'e Mat' Mat'( (or)s# r)s# MAT MATLAB LAB comb combin inaa comp comput utac ació iónn numé numéric rica, a, gráf gráfic icos os *+ + capacidades de lenguaje de lenguaje en en un -nico ambiente fácil de usar# Con su amplio rango de 'erramientas para modelar sistemas de control, control , análisis, simulación procesamiento de prototipos, MATLAB MATLAB es el sistema ideal sistema ideal para desarrollar sistemas a!an"ados de control# .sted puede modelar su sistema de control usando las cajas cajas de 'erram 'erramien ientas tas para el dise/o de controles a!an"ados de MATLAB 0 Control $stem, 1obust Control, 20Analsis and $nt'esis, Model 3redicti!e Control, 4T5 Cont Co ntro roll +e +esi sign gn LM6 LM6 cont contro rol# l# 3ost 3oster erio iore ress anál anális isis is refi refina nami mien ento toss pued pueden en ser ser efectuados estableciendo una simulación interacti!a en $imulin), luego sintoni"ar autom automáti áticam cament entee los paráme parámetro tross usando usando el 7on 7onlin linea earr Con Contro troll +esign +esign Bloc) Bloc)set set## 5inalmente, usted puede generar código C para correr en controladores incrustados con 1eal Time (or)s'op# Combinando MATLAB con $ignal 3rocessing Toolbo&, (a!elet Toolbo& un conjunto conjunto de 'erramient 'erramientas as complemen complementaria tariass 0 tales tales como 6mage 3rocessi 3rocessing, ng, 7eural 7eural 7et8or), 5u"" Logic, $tatistics otras 0 usted puede crear un ambiente de análisis personali"ado de se/ales desarrollo de algoritmos +$3# algoritmos +$3# 3ara simulación desarrollo de prototipos usted puede agregar $imulin) el +$3 Bloc)set para modelar simular sus sistemas +$3, luego usar 1eal0Time (or)s'op para generar código C para su 'ard8are designado# 'ard8are designado#
Características Caracter%sticas de MATLAB9 Cálculos intensi!os desde un punto de !ista numérico# :ráficos !isuali"ación !isuali"ación a!an"ada# Lenguaje de alto ni!el basado en !ectores, !ectores, arras matrices# matrices# Colección mu -til de funciones de funciones de aplicación#
;
Las poderosas capacidades de cálculo técnico de MATLAB se ponen a la disp dispos osic ició iónn de los los estu estudi dian ante tes, s, aunq aunque ue limit limitaa el tama tama/o /o de las las matrices a <;=* <;=* elementos, la edición de estudiante mantiene toda la potencia de potencia de la !ersión profesional de MATLAB >#?, en una forma dise/ada para que los estudiantes puedan ejecutarlo en sus propios ordenadores personales bajo (indo8s# (indo8s# Toolbo& especiales9 $e incluen el Toolbo& de se/ales $istemas @un conjunto de 'erramientas para el procesam procesamien iento to de se/al se/al para para el análisis de sistemas sistemas de cuadro el Toolbo& $mbolc Mat' @ 'erramienta de cálculo simbólico basada en Maple # A continuación presentamos la interfase de usuario de MATLAB >#? con el despliegue de una aplicación con grafica en + correspondiente al modelo D&0& modelo D&0& su tabla de calculo el análisis de la función#
Salidas o presentaciones. presentaciones. MATLAB pro!ee acceso inmediato a las caracter %sticas %sticas gráficas especiali"adas requeridas en ingenier%a ciencias# ciencias# 3otente graficación orientada orientada a objetos objetos gráficos le permite graficar los resultados de su análisis, incorporar gráficos en sus modelos de sist sistem emas as,, rápi rápida dame ment ntee pres presen enta tarr comp comple lejo joss 0+ 0+ obje objeto tos, s, crea crearr resu result ltad ados os de presentación, entre entre lo cual se destaca9 destaca9 • • • • • • • • • • • • • • • • • • • • • • • •
1epresentaciones 1epresentaciones *0+ 0+, incluendo datos triangulados reticulados 1epresentaciones 1epresentaciones 0+ qui!er, ribbon, stem Control de fuentes, fuentes, letras :riegas, s%mbolos, sub%ndices super%ndices $elección e&pandida de s%mbolos marcadores de cur!as :ráficos de torta, de barras 0+ gráficos de barras 'ori"ontales :ráficos 0+ sólido modelado 1epresentación 1epresentación de imágenes arc'i!os 6FG :ráficos comentados LeerFEscribir arc'i!os de arc'i!os de datos datos Hierarc'ical +ata +ata 5ormat 5ormat @H+5 3resentación de Gpen:L soft8are 'ard8are 'ard8are Animación +ispla de buffer & rápido e&acto $oporte de colores !erdaderos colores !erdaderos @*>0bit 1:B 5uentes m-ltiples de lu" para lu" para superficies coloreadas ista basada en cámara control de perspecti!a 6luminación 3lana, :ouraud 3'ong $oporte eficiente de imagen de datos de <0bit Control de eje cámara cámara 3ropiedades de superficie patc' Modelos de iluminación Control gráfico de objetos 6mpresión representación de copias 5ormatos gráficos e&portables $oporte de publicación de escritorio
*
Funciones Manipulación 1educción de +atos MATLAB tiene un rango completo de funciones para preprocesar datos para análisis, incluendo9 I decimando I secciones de datos I promediando I procesando umbrales I filtrando 7umerosas operaciones para operaciones para manipular arreglos multidimensionales, incluendo reticulación e interpolación de datos, están también disponibles# +escripti!os :ráficos 3ara E&plorar 3resentar $us +atos :ráficos de propósitos generales de aplicación espec%fica le permiten !isuali"ar al instante se/ales, superficies paramétricas, imágenes más# Todos los atributos de los gráficos de MATLAB son personali"ables, desde los rótulos de ejes al ángulo de la fuente de lu" en lu" en las superficies 0+# Los gráficos están integrados con las capacidades de análisis, de modo que usted puede mostrar gráficamente cualquier conjunto de datos sin editar, ecuación o resultado funcional# 6FG +irecto de +atos .sted puede ingresar sacar datos de f MATLAB rápidamente# Las funciones están disponibles para leer escribir arc'i!os de datos formateados formateados en MAT MATLAB, llamados arc'i!os MAT# 5unciones adicionales ejecutan programas A$C66 e A$C66 e 6FG binario de bajo ni!el desde los arc'i!os de programas M, C, 5ortran, permitiéndole trabajar con todos los formatos de datos# MATLAB también inclue soporte incorporado para formatos populares de arc'i!os arc'i!os estándar# estándar# Computación $imbólica 6ntegrada 6ntegrando el motor simbólico simbólico Maple J con MATLAB, los $mbolic Mat' Toolbo&es le permiten me"clar libremente computación simbólica numérica una sinta&is simple e intuiti!a# Análisis de +atos Confiable, 1ápido E&acto Los métodos usados métodos usados com-nmente para análisis de datos multidimensional generali"ados ;0+, ;0+, *0+ *0+ está estánn inco incorp rpor orad ados os en MAT MATLAB# LAB# 6nte 6nterf rfac aces es gráf gráfic icas as fáci fácile less de usar usar,, espec espec%fi %ficas cas para para aplic aplicac acion iones, es, la l%nea l%nea de comand comandoo intera interacti cti!a !a 'erram 'erramien ientas tas de programación programación estructuradas le permiten elegir el mejor camino para sus tareas de análisis# Análisis de +atos para +$3 MATLAB ofrece muc'as 'erramientas para reali"ar la funcionalidad indispensable en procesamiento de se/ales, tales como Transformadas 1ápidas 5ourier Transformadas 1ápidas 6n!ersas de 5ourier# La !isuali"ación de datos de procesamiento procesamiento de se/ales está soportada soportada por funciones funciones tales como gráficos stem periodograma periodogramas# s# El lenguaje de
MATLAB, in'erentemente orientado a matrices 'ace que la e&presión de coeficientes de filtros demoras de buffers sean mu simples de e&presar comprender# Análisis de +atos en Aplicaciones de 6mágenes MATLAB la 6mage 3rocessing Toolbo& ofrece un amplio conjunto de 'erramientas que le permite fácilmente manipular, procesar anali"ar datos de imágenes, interacti!amente mostrar pantallas de imágenes *0+ o 0+, !isuali"ar datos temporarios cuando es necesario, comentar sus resultados para publicaciones técnicas# La orientación basada en matrices del lenguaje de MATLAB le permite e&presar en forma compacta operaciones matemáticas de forma similar a cómo las e&presar%a sobre papel# Como resultado, es fácil e intuiti!o efectuar procesamiento de imágenes operaciones de análisis tales como 55Ts, filtrado *0+, morfolog%a binaria, manipulación geométrica, con!ersión de espacios de colores, compresión, análisis de componentes conectados más# Algorit'm +e!elopment @+esarrollo de Algoritmos $ea que usted esté usando los algoritmos del sistema o esté in!entando los suos propios, MATLAB le pro!ee un ambiente en el que usted puede e&perimentar# A diferencia de C CKK, MATLAB le permite desarrollar algoritmos desde cero o trabajar con interfaces complicadas a bibliotecas e&ternas# Las poderosa fundación de computación, el lenguaje técnico, cientos de funciones en cajas de 'erramientas @toolbo&es con!ierten a MATLAB en lo más adecuado para aplicaciones matemáticamente intensi!as que requieran análisis de datos, procesamiento de se/ales e imágenes, modelado de sistemas o técnicas numéricas a!an"adas
Librerías Librer%a de Aplicaciones de MATLAB $ignal 3rocessing Toolbo& MATLAB tiene una gran colección de funciones para el procesamiento de se/al en el $ignal 3rocessing Toolbo Este inclue funciones para9 Análisis de filtros digitales incluendo respuesta en frecuencia, retardo de grupo, retardo de fase# 6mplementación de filtros, tanto directo como usando técnicas en el dominio de la frecuencia basadas en la 55T# +ise/o de filtros 661, incluendo Butter8ort', C'ebsc'e! tipo 6, C'ebs'eb! tipo 66 el%ptico# +ise/o de filtros 561 mediante el algor%tmo óptimo de 3ar)s0McClellan# 3rocesamiento de la transformada rápida de 5ourier 55T, incluendo la transformación para potencias de dos su in!ersa, transformada para no potencias de dos# T'e MATLAB C Mat' Librar
>
La MATLAB C Mat' Librar proporciona al usuario la capacidad computacional de MATLAB en una librer%a en formato objeto enla"able# El objeti!o principal de la C Mat' Librar es soportar el desarrollo de aplicaciones stand alone utili"ando MATLAB su compilador# 3uede ser utili"ada independientemente de MATLAB por programadores a!e"ados en lenguaje C que necesiten prestaciones computacionales robustas de alto rendimiento# unto con el compilador de MATLAB, la C Mat' Librar permitirá a los programadores de aplicaciones utili"ar MATLAB para la creación de aplicaciones stand alone# 3ara los usuarios clásicos de MATLAB, se elimina as% cualquier necesidad de !ol!er a reescribir algoritmos en lenguaje C para ser utili"ada por programas e&ternos# 3ara aquellos usuarios que sean nue!os en la tecnolog%a MATLAB, esta tecnolog%a ofrece una nue!a !%a para la reducción del tiempo de desarrollo puesta a punto de aplicaciones# La MATLAB C Mat' Librar proporciona una amplia gama de funciones clásicas del programa MATLAB, proporcionadas como librer%as objeto, incluendo básicamente las siguientes categor%as de funciones presentes en MATLAB arc'i!os M compilados9 • • • • • • • • • •
Algebra lineal# 5unciones matemáticas elementales especiali"adas# Gperadores lógicos aritméticos# Matrices elementales manipulación de !ectores# Matrices especiales# Estad%stica básica análisis de datos# 3olinomios e interpolación# :estión de cadenas de caracteres# Entradas $alidas# :estión de memoria errores# La construcción desarrollo de aplicaciones utili"ando esta librer%a es un proceso de amplias perspecti!as una !e" se tiene un dominio adecuado de su operati!a# El producto está di!idido en dos categor%as @como librer%as objeto9 la librer%a @built0in librar contiene !ersiones de las funciones de MATLAB en lenguaje C del tipo numérico, lógico utilidades# 3or otra parte la librer%a de toolbo&es @toolbo& librar contiene !ersiones compiladas de la maor%a de arc'i!os M de MATLAB para cálculo numérico, análisis de datos funciones de acceso a arc'i!os matrices# En equipos .76N estas librer%as pueden ser igualmente obtenidas como librer%as de tipo estático @static libraries o bien como librer%as compartidas @s'ared libraries# 1especto al mundo 3C, estas librer%as pueden obtenerse como +LLs en el entorno Microsoft (indo8s o como librer%as compartidas en equipos Apple Mac6ntos'# .tili"ación de MATLAB de su compilador
O
3ara construir una aplicación del tipo stand alone que incorpore código originalmente desarrollado como arc'i!os M de MATLAB , deberan de seguirse los pasos siguientes9 .tili"ar el compilador de MATLAB para con!ertir arc'i!os M en C mediante la utili"ación de la instrucción mcc 0e @la cual es e&terna a MATLAB# Compilar el código C fuente en código objeto utili"ando un compilador A7$6 C# Enla"ar el código resultante con la MATLAB C Mat' Librar con cualquier tipo de arc'i!os programas espec%ficos que 'aan sido pre!iamente definidos por el usuario# elocidad 3recisión Los algoritmos utili"ados en la MATLAB C Mat' Librar 'an sido desarrollados por un grupo de renombrados e&pertos en programación algor%tmica de funciones de tipo matemático @algebra lineal cálculo numérico# Las funciones de álgebra lineal 'an sido obtenidas de las librer%as mundialmente reconocidas L673ACP E6$3ACP# La MATLAB C Mat' Librar contiene más de ?? funciones numéricas, lógicas de utilidad# Todas estas funciones le permitirán operar en datos de tipo escalar, !ectorial o matricial con la misma facilidad sintáctica# Algunas de las áreas básicas que cubre este toolbo& para MATLAB son las siguientes9 Q Cálculo de un e&tremo local @má&imo o m%nimo de una función real f@&, en general multi!ariable no lineal, sin imponer ninguna restricción o condición a la solución# Como caso particular, se inclue una rutina especial para problemas de m%nimos cuadrados no lineales# Q Cálculo de un e&tremo local @má&imo o m%nimo de una función real f@&, en general multi!ariable no lineal, condicionado a que la solución satisfaga ciertas condiciones de desigualdad @g@&RD? Fo igualdad @g@&D?# Q 3roblemas de apro&imación a un conjunto de objeti!os# Q Cálculo de soluciones de un sistema de ecuaciones continuas , en general, no lineales# Q $olución de problemas m%nimas# Q 3rogramación lineal# Q 3rogramación cuadrática# Q 3roblemas de m%nimos cuadrados no negati!os#
S
El presente manual introductorio, presenta una serie de ejemplos de las funciones más básicas de MATLAB, las cuales son las bases para la construcción de funciones u operaciones más complejas# Matlab es un programa command-driven, es decir, que se introducen las órdenes escribiéndolas una a una a continuación del s%mbolo @ prompt que aparece en una interfa" de usuario @una !entana# Esta introducción contiene ejemplos que se pueden escribir directamente en la l%nea de comandos de Matlab# 3ara distinguir esos comandos, junto con la respuesta del programa, se emplean un tipo de letra diferente
1.1 P!S!"TACI#" $! MATLAB MATLABDMATri& LABorator @LABG1ATG16G MAT16C6AL o de MAT16CE$ • MATLAB es un programa interacti!o para cálculo cient%fico# •
•
•
•
•
El elemento básico de datos es la matri"# La !ersión original de MATLAB fue escrita en lenguaje 5ortran por Cle!e Moler# .tili"aba programas basados en rutinas de los códigos L673ACP E67$3ACP, má&ima e&presión del soft8are de computación matricial, utili"ado para resol!er numerosos problemas relacionados con los sistemas lineales el cálculo de auto!alores auto!ectores# El presente programa MATLAB fue escrito en lenguaje C, por $te!e Bangert, $te!e Pleiman, o'n Little Cle!e Moler para la empresa T'e Mat'(or)s :roup# Gtros muc'os autores 'an ido incorporando una amplia gama de aplicaciones espec%ficas, creadas para MatLab denominadas Utoolbo&U# Las Utoolbo&U son librer%as de funciones MatLab que permiten resol!er determinado tipo de problemas# Las 'a para Ucasi todoU# Está concebido para resol!er problemas con formulación matricial# 7o necesita la definición de dimensión# La memoria se gestiona automáticamente#
•
1eali"a, directamente, operaciones con !ectores matrices#
•
$on de destacar sus posibilidades gráficas bi tridimensionales#
•
Es uno de los códigos más -tiles en la actualidad para reali"ar prácticas, por su fácil aprendi"aje, uso, manejo e implementación en ordenadores personales#
Gtro detalle importante es que, por su estructura, cada usuario puede incorporar nue!as subrutinas ampliar las posibilidades del programa dependiendo del campo de
V
aplicación#
I"T%$&CCI#" AL &S% $!L MATLAB# El Lenguaje de Computación Técnica MATLAB es un ambiente de computación técnica integrada que combina computación numérica# Al Matlab lo podemos di!idir en cuatro partes funcionales9 El espacio de trabajo# También conocido como !entana de comandosW es el lugar donde se teclean los comandos o instrucciones que se desean reali"ar, cada l%nea Enter que se presione se interpreta como un comando se ejecuta de inmediato# Ejemplos de comandos9 close all clear a D Y; * > O S > > OZW b D a K*W plot@b de gráficas gris gráficos bar@b
X termina lo que este empe"ado Xborra todas las !ariables del espacio de trabajo Xle asignamos un !ector a la !ariable a Xuna función que manda resultado a la !entana Xuna función que interact-a con la !entana de Xproduce un gráfico#
La !entana de despliegue gráfico# Todas las acciones que den como resultado una salida gráfica, se despliegan en su propia !entana, con capacidad de almacenar, copiar e imprimir# Es en este tipo de !entanas donde se crean ambientes amigables de interfaces para comunicación ejecución, es decir creación de men-s botones, barras desli"adoras, etc# La lista de funciones# También llamadas bibliotecas o Toolbo& de se/ales $istemas @un conjunto de 'erramientas para el procesamiento de se/al para el análisis de sistemas de cuadro el Toolbo& $mbolc Mat' @ 'erramienta de cálculo simbólico basada en Maple # +espués de la capacidad de cálculo numérico, las funciones de biblioteca son un soporte mu fuerte del soft8are, a que encontramos, tanto como con!oluciones, como transformadas rápidas de 5ourier, solución de ecuaciones diferenciales, cálculo de m%nimos, etc# [ bibliotecas especiali"adas, que se distribuen por separado, por ejemplo, splines, redes neuronales, optimi"ación, cálculo simbólico, etc# Las funciones secuencia de programación# La posibilidad de editar una secuencia de instrucciones por separado llamarlas desde el espacio de trabajo, la posibilidad de pasar parámetros a estas secuencias de instrucciones @funciones nos permiten ampliar las listas de funciones aplicarlas a un propósito espec%fico personali"ado# Maltlab cuenta también con una !entana de Help con la parte de la lista de funciones contenidas en el paquete, sobrepuesta una !entana de un editor de comandos o instrucciones que se ejecutan al correrlo# <
Matlab ejecuta cada l%nea que se teclee en el espacio de trabajo# 0 0 0 0 0
almacena todas las !ariables generadas durante la sesión de trabajo tiene un soporte de funciones de biblioteca de propósito general el despliegue de resultados gráficos se reali"a en !entana separada puede ejecutar conjunto de comandos agrupados en un arc'i!o con e&tensión #m programar funciones propias pasando regresando datos en arc'i!o con e&tensión #m
El presente manual introductorio, presenta una serie de ejemplos de las funciones más básicas de MATLAB, las cuales son las bases para la construcción de funciones u operaciones más complejas# Matlab es un programa command-driven, es decir, que se introducen las órdenes escribiéndolas una a una a continuación del s%mbolo @ prompt que aparece en una interfa" de usuario @una !entana# Esta introducción contiene ejemplos que se pueden escribir directamente en la l%nea de comandos de Matlab# 3ara distinguir esos comandos, junto con la respuesta del programa, se emplean un tipo de letra diferente
Primiti'os. 3ara Matlab todo es una matri"# $e conocen como primiti!os del lenguaje, las formas básicas de manejo de información, o las estructuras u objetos elementales con los que trabaja el lenguaje, a partir de los cuales se construen las aplicaciones# \\ numero D piW \\ pi ans D #;>;O=*SOO<=V= \\ saludos D ]'ola^ saludo D 'ola \\ saludo@; ans D ' \\ numero D piW \\ complejo D numero K i complejo D #;>;O=*SOO<=V=K;#??????????i \\A D Y; * O O > * O SZ A = ; * O O > * O S
bD Y;9;>Z bD Columns ; t'roug' ;* ; * > O S V < = ;? ;; ;* =
Columns ; t'roug' ; ;> \\ Todas las !entanas son matri"# La !ariable numero es una matri" de uno por uno de realesW La !ariable saludo es una matri" de uno por cuatro de caracteresW La !ariable complejo es una matri" de uno pro uno con entradas complejasW La !ariable A es una matri" de tres por tres de realesW La !ariable b es una matri" de uno por catorce de reales# Las instrucciones en MATLAB tienen 'abitualmente la siguiente forma9 variable=expresión o simplemente9 expresión
La e!aluación de una e&presión origina una matri", que se !e en pantalla junto al nombre de la !ariable a la que, a su !e", se le asigna# $i se omite el nombre de la !ariable el signo UDU, el programa lo asigna por defecto, de forma automática, a una !ariable @ans# 3ara e!itar la !isuali"ación por pantalla basta con finali"ar la instrucción por punto coma @(# $i la e&presión no cabe en una l%nea, porque se desee !er todo su contenido en la pantalla, se puede continuar en la siguiente acabando la l%nea pre!ia por dos o mas puntos @precedidos de al menos un espacio en blanco retorno de carro# El espacio alrededor de los signos aritméticos UKU,U0U,#### es opcional# Los nombres de funciones !ariables comien"an por una letra seguida de cualquier combinación de n-meros letras, aunque MATLAB solo recuerda los ;= primeros caracteres de un nombre# MATLAB distingue entre letras ma-sculas min-sculas# A a son !ariables distintas# Todos los nombres de funciones deben formarse con letras min-sculas9 in')A* in!ierte la matri" A, I"+)A* referencia a una función desconocida# $i se desea quitar esta sensibilidad se puede utili"ar al comando U casesen U que permite la ambi!alencia de ma-sculas min-sculas @ejecutando una !e" casesen permite la ambi!alencia, si se ejecuta de nue!o !uel!e al estado anterior, de modo que no permite ambi!alencia •
!dición de la línea de comandos. Con las flec'as del teclado se pueden recuperar las órdenes anteriores, sin tener que !ol!er a teclearlas# As%, en el caso de una equi!ocación en un comando complicado
;?
d*_fD@*0*Q;KFdelta&* ``` 0*Q;KFdelta&* Missing operator, comma, or semi0colon# en !e" de !ol!er a teclear todo, puede recuperarse la instrucción pulsando la tecla Uflec'a 'acia arribaU, despla"arse 'asta el error @falta un paréntesis con la flec'a 'acia a la i"quierda, arreglarlo9 d*_fD@*0*Q;KF@delta&* •
En ocasiones, es interesante no presentar el resultado en la pantalla @por ejemplo, cuando se trata de una lista de datos mu larga# Eso se consigue poniendo un punto coma al final de la instrucción# Dsqrt@>W El resultado no aparece, pero sin embargo el cálculo se 'a reali"ado9
•
D * El comando 8'o indica las 'ariables con las que se está trabajando9 8'o [our !ariables are9 5 f indice n_punt t_m delta_f f_ma& manc'as t
•
Comandos relacionados con el sistema operati'o 9 3resent 8or)ing director @directorio de trabajo actual cd Cambiar de directorio dir Listado de los arc'i!os del directorio actual delete Borra el arc'i!o geten! Gbtiene los !alors del entorno uni& Ejecuta operacions del sistema, retorno el resultado Ejecuta operaciones del sistema p8d
Estos comandos son mu similares a los análogos de M$0+G$ o .76N# •
,uardar - cargar arci'os de datos # $e emplean los comandos sa!e load, respecti!amente# • para guardar datos9 sa!e Ynombre del fic'eroZ Y!ariableZ 0ascii • para recuperar datos9 load Ynombre del fic'eroZ Y!ariableZ 0ascii 3or ejemplo9 con estas dos órdenes cd a9 ;;
sa!e toto#dat 0ascii se cambia el directorio de trabajo a a9 se guarda all% el contenido de la !ariable en el fic'ero toto#dat con formato te&to @por eso se pone 0ascii#
/o9 informa sobre las !ariables creadas en la sesión de trabajo, incluida ans# /os9 a/ade información sobre las !ariables empleadas9 dimensión, n-mero de elementos, si es compleja o no, memoria utili"ada libre, etc# clear9 borra las !ariables del espacio de trabajo# sa'e nombre9 sal!a la sesión de trabajo en un fic'ero con el nombre Unombre.mat U# load nombre9 recupera en el espacio de trabajo las !ariables que se 'ab%an guardado en el fic'ero U nombre.mat U# A+M676$T1AC67 +E LA A16ABLE$ [ +EL E$3AC6G +E T1ABAG CLEA1 BG11A LA$ A16ABLE$ [ LA$ 5.7C6G7E$ +E LA MEMG16A +6$3 6$.AL6A LA MAT16 G TENTG LGA+ 1 ECA1:A LA$ A16ABLE$ +E$+E EL +6$CG 3ACP CG7$GL6+A LA MEMGE16A +EL E$3AC6G +E T1ABAG $AE $ALA LA$ A16ABLE$ +EL E$3AC6G +E T1ABAG AL +6$CG $6E TAMAG +E LA MAT16 (HG L6$TA LA$ A16ABLE$ ACT.ALE$ (HG$ L6$TA$ LA$ A16ABLE$ ACT.ALE$ , 5G1MA LA1:A MATLAB1C 6 76C6G +E A1CH6G MAE$T1G M056LE 4.6T TE1M67A MATLAB $TA1T.3 EEC.TA M056LE C.A7+G E$ 67GCA+G 3G1 MATLAB (HAT E7L6$TA LG$ A1CH6G$ Q#M E7 EL +6$CG
A0&$A !" L"!A Cómo obtener información sobre los comandos de Matlab.
Este documento es tan sólo una introducción mu resumida0 del lenguaje del manejo de Matlab#, para un manejo más amplio se recomienda consultar los manuales respecti!os# Además, desde dentro de Matlab pueden obtenerse e&plicaciones sobre un tema particular# Ha !arios métodos# •
!l comando elp # 3ara obtener información sobre una determinada función, basta teclear desde la l%nea de comandos 'elp seguido del nombre de la función# 3or ejemplo9
;*
•
'elp round 1G.7+ 1ound to8ards nearest integer# 1G.7+@N rounds t'e elements of N to t'e nearest integers# $ee also 5LGG1, CE6L, 56N# $i se escribe sólo 'elp, se obtiene un %ndice de temas# También puede obtenerse información sobre uno de los temas de esa lista9 as%, 'elp elfun proporciona información sobre las funciones matemáticas elementales# La 'entana de a-uda # 3uede llamarse tecleando 'elp8in o bien escogiendo del men- Help el %tem Help (indo8# $e obtiene una !entana nue!a, 'aciendo doble clic) con el ratón sobre un cap%tulo se pasa a un elenco de los %tems contenidos, que a su !e" pueden escogerse para una e&plicación más detallada# Con los botones Bac) 5or8ard se na!ega 'acia atrás o 'acia adelante# También puede escribirse directamente en la "ona superior i"quierda el nombre del comando deseado9 por ejemplo, para buscar información sobre sqrt
sqrt $quare root $nta&B D sqrt@N +escriptionB D sqrt@N returns t'e square root of eac' element of t'e arra N# 5or t'e elements of N t'at are negati!e or comple&, sqrt@N produces comple& results# 1emar)s$ee sqrtm for t'e matri& square root# E&lessqrt@@0*9*^ ans D ? K ;#>;>*i ? K ;#????i ? ;#???? ;#>;>* En la barra See also aparecen comandos relacionados# La información es la misma que la obtenida con el comando 'elp, pero con la comodidad de presentarse en una !entana aparte en !e" de en la l%nea de comandos# •
La a-uda interacti'a # $e obtiene escogiendo del men- Help el %tem Help +es), o tecleando 'elpdes) en la barra de comandos# $e lan"a el na!egador se obtiene un documento de inicio con un %ndice de temas en 'iperte&to donde están los manuales otras utilidades, como un buscador# 3ara leer el manual, se necesita el programa Acrobat 1eader# La información que se obtiene es muc'o más completa que en los otros dos casos, lo cual puede resultar incon!eniente si uno desea simplemente, por poner un caso, conocer la sinta&is de una función# .na introducción a Matlab más rigurosa, e&tensa comprensi!a que este documento puede encontrarse en el ep%grafe “Getting Started” del Help +es)
Sobre 2acilidades de a-uda - comandos generales elp9 proporciona información en l%nea sobre todos los directorios de MATLAB# 3elp comando9 proporciona información sobre el comando nombrado casesen9 sensibilidad ma-sculasFmin-sculas# ;
/at9 lista arc'i!os #m #mat del directorio de trabajo# si4e matriz 9 dimensiones de una matri" lengt vector 9 longitud de un !ector 5uit9 sale de sesión# e6it9 sale de sesión# C%MA"$%S B7SIC%S Empecemos con algo sencillo9 las operaciones matemáticas elementales# &D*K &D O $i no se asigna el resultado a ninguna !ariable, Matlab lo asigna por defecto a la !ariable ans @anser 9 *K ans D O 3ara saber cuál es el !alor asignado a una determinada !ariable, basta introducir el nombre de la !ariable9 & &D O La notación caracteres especiales bb para las operaciones matem8ticas elementales es la siguiente9 Q F K 0 #Q # )ron #F
e6ponenciación multiplicación di'isión suma resta Multiplicación de arreglos Potencia de arreglos Producto tensorial de9ronec:er $i'isión i45uierda $i'isión de ;>
# ## X ] #^ D DD hD
arreglos Punto decimal $irectorio pariente Continuaicón Comentario Transpuesta nota Transpuesta no con;ugada asignación Igual 5ue $i2erente a
$i se a/ade un punto coma @W al final de la instrucción, la máquina no muestra la respuesta \\DOQ>W pero no por ello deja de reali"arse el cálculo# \\ D *? El orden en que se reali"an las operaciones de una l%nea es el siguiente9 primero, la e&ponenciaciónW luego, las multiplicaciones di!isionesW finalmente, las sumas las restas# $i se quiere for"ar un determinado orden, se deben utili"ar paréntesis, que se e!al-an siempre al principio# 3or ejemplo, para 'allar dos entre tres, *F*K; ans D * @en efecto9 primero se calcula *F* luego se suma ;# *F@*K; ans D ?#SSSV 3rimero se calcula el paréntesis @*K; luego se reali"a la di!isión# Dos observaciones#
El punto decimal es# @no una coma# [ en Matlab, las ma-sculas las min-sculas son distintas# Es decir, N es una !ariable diferente de En Matlab están también definidas algunas funciones elementales# Las funciones, en Matlab, se escriben introduciendo el argumento entre paréntesis a continuación del nombre de la función, sin dejar espacios# 3or ejemplo9 ;O
De&p@? D ; @la función e&p es la e&ponencial# He aqu% una tabla con las 2unciones elementales 9 sin cos tan sec csc cot e&p log log;? sqrt abs real conj round fi& floor ceil sign asin acos atan atan* sin' cos' tan' gamma rat rats imag
air bessel besselj bessel bessel' besseli bessel) beta
seno coseno tangente secante cosecante cotangente e&ponencial logaritmo natural lopgaritmo base ;? ra%" cuadrada !alor absoluto 3arte real Conjugado complejo 1edondea al entero más cercano 1edondea 'acia cero 1edondea 'acia el 0 ∞ 1edondea 'acia el ∞ 5unción signun arcoseno arcocoseno arcotangente Arcotangente en cuarto cuadrantes $eno 'iperbólico Coseno 'iperbólico Tangente 'iperbólica 5unción gamma Apro&imación racional $alida racional 3arte imaginaria 5unciones especiales 5unción de Air 5unción de Bessel 5unción de Bessel de primera clase 5unción de Bessel de segunda clase 5unción de Han)el o de tercera clase 5unción de Bessel modificada de primera clase 5unción de Bessel modificada de segunda clase 5unción beta ;S
betainc betaln ellipj ellip)e erf erfc erfc& erfin! e&pint gamma gammainc gammaln legendre log* po8* cross dot
5unción beta incompleta Logaritmo de la función beta 5unción el%ptica de acobi 6ntegral el%ptica completa 5unción error 5unción error complementaria 5unción error complementaria escalada 5unción in!ersa de error 5unción error e&ponencial 5unción gamma 5unción gamma incompleta Logaritmo de la función gamma 5unción asociada de Legendre +issect n-mero de punto flotante $cale n-mero de punto flotante 3roducto !ectorial 3roducto punto
3ara obtener las funciones trigonométricas in!ersas, basta a/adir una a delante del nombre# [ para las funciones 'iperbólicas, una ' al final# 3or ejemplo, atan'@& es el arcotangente 'iperbólico de &9 "Datan'@* "D ?#O>= K ;#OV?
e0?;S pero \\epsDV eps D V
;V
Gtro ejemplo de función matemática9 la ra%" cuadradaW como puede !erse, trabajar con complejos no da ning-n tipo de problema# La unidad imaginaria se representa en MATLAB como i o j, !ariables con dic'o !alor como predeterminado9 \\sqrt@0> ans D ?K *#????i El usuario puede controlar el n-mero de decimales con que aparece en pantalla el !alor de las !ariables, sin ol!idar que ello no está relacionado con la precisión con la que se 'acen los cálculos, sino con el aspecto con que éstos se muestran9 \\;F ans D ?# \\format long \\;F ans D ?# \\format @o format s'ort X uel!e al formato estándar que es el de > cifras decimales 3ara conocer las !ariables que se 'an usado 'asta el momento9 \\8'o [our !ariables are9 ans eps & o, si se quiere más información @obsér!ese que todas las !ariables son arra!s9 \\8'os 7ame $i"e Btes Class ans ;&; < double arra eps ;&; < double arra & ;&; < double arra ;&; < double arra :rand total is > elements using * btes 3ara des'acerse de una !ariable
;<
\\clear \\8'o [our !ariables are9 ans eps & ariables especiales constantes ans 1espuesta más reciente computer Tipo de computador eps 3recisión relati!a de punto flotante *#**?>e0;S flops Contador de operaciones de punto flotante i, j .nidades imaginarias − ; inf 6nfinito ∞ 7a7 7o es un n-mero nargin 7-mero de entrada de argumentos en las funciones nargout 7-mero de funciones de salida de argumentos en las funciones pi #;>;O=*SOO<= realma& 7-mero de punto flotante más grande realmin 7-mero de punto flotante m%nimo Lectura de entrada de un teclado9 Matlab puede aceptar datos de entrada a tra!és del teclado mediante el comando input# $i se desea leer un n-mero, un enunciado básico ser%a# " D input @]Teclee el radio9^ La parte Teclee el radio# Es un mensaje de solicitud que se e&'ibe en pantalla# Cuando se teclee el !alor del radio se pulse la tec'a return, el dato se guardará en "# También es posible introducir una cadena desde el teclado# .n enunciado básico ser%a9 " D input @]6ndique su nombre# 9^ ]s^ El segundo argumento, ]s^, indica que la entrada del teclado es una cadena# La !ariable " se con!ertirk en una !ariable de arreglo @!ector fila a menos que la cadena sólo contenga un carácter# $e puede introducir una cadena con input sin ]s^ si la cadena se teclea encerrada entre apóstrofos# En este caso, el mensaje de solicitud podr%a ser# " D input @]6ndique su nombre @encerrado en apóstrofos9^ 5ormato de salida9 Es posible imprimir mensajes n-meros con formato si se utili"a fprintf, por ejemplo, fprintf@]El !olumen de la esfera es X;*#Of#n^,!ol Aqu% se incluó entre los apóstrofos la cadena que se !a a e&'ibir, el formato de un n-mero el operador de nue!a l%nea# El estilo del formato debe ser familiar para ;=
quienes conocen el lenguaje C9 El !olumen de la esfera es la cadena que se e&'ibirá, X;*#Of es el formato es similar 5;*#O en 5ortran, n n es el operador de nue!a l%nea que a!an"a en una l%nea la posición en la pantalla# El operador de nue!a l%nea se puede colocar en cualquier lugar de la cadena# 3or -ltimo, !ol es la !ariable que se imprimirá en el formata X;*#Of# $i se omite n, lo que se imprima en seguida aparecerá en la misma l%nea# Escritura en un arc'i!o espec%fico9 Es posible utili"ar el enunciado fprintf para escribir salidas con formato en un arc'i!o# 3ara ello, se inclue el nombre del arc'i!o en el argumentoW por ejemplo, fprintf@]arc'i!o_&^, ]!olumen DX;*#Ofn^, !ol escribirá la salida en el arc'i!o de nombre arc'i!o_ $i no e&iste el arc'i!o, se creará uno nue!oW si e&iste, la salida se ane&ará al final de su contenido# $i a e&iste arc'i!o_&, es posible eliminarlo con rm arc'i!o_& en .ni& o erase arc'i!o_& en (indo8s# (indo8s# Como guardar cargar datos# $i se utili"a sa!e sólo, as%9 sa!e todas las !ariables se guardarán en el arc'i!o por omisión matlab#mat# La orden load es el in!erso de sa!e recupera todas las !ariables guardadas por sa!e# $e puede especificar el nombre de arc'i!o colocándolo después de sa!eW por ejemplo, sa!e nombre_arc'i!o :uarda todas las !ariables en el arc'i!o llamado nombre_arc'i!o#mat# nombre_arc'i!o#mat# Cuando quiera recuperar las !ariables, escriba load nombre_arc'i!o $i sólo desea guardar ciertas !ariables, escribba sus nombres después de nombre_arc'i!oW nombre_arc'i!oW por ejemplo, sa!e nombre_arc'i!o a b c En este ejemplo, a, b c se guardan en el arc'i!o llamado nombre_arc'i!o# 7o separe nombre_arc'i!o las !ariables con una coma# Todas las !ariables se guardan en formato binario de doble precisión# Cuando quiera cargar los datos contenidos en nombre_arc'i!o#mat, nombre_arc'i!o#mat, teclee load nombre_arc'i!o $in nombres de !ariablesW a continuación se recuperarán a, b c#
*?
I"T%$&CCI#" A +!CT%!S 0 MATIC!S +!CT%!S Empecemos creando algo tan simple como un !ector# 6ntrodu"ca cada elemento del !ector @separado por un espacio entre corc'etes as%gnelo a una !ariable# 3or ejemplo, para crear el !ector a, introdu"ca en la !entana de instrucciones de Matlab @para 'acerlo más fácil puede copiar pegar desde el na!egador a Matlab9 a D Y; * > O S = < VZ Matlab deber%a de!ol!er9 a = " # $ % & ' ( ) *
+igamos que desea crear un !ector con elementos entre ? *? separados a incrementos de * @este método se usa frecuentemente para crear un !ector de tiempo9 t D ?9*9*? t= + # % ' ) "+ "# "% "' ") #+
Manipular !ectores es casi tan fácil como crearlos# 3rimero, supongamos que desea a/adir * a cada elemento del !ector ]a^# La instrucción que reali"a este cálculo es9 b D a K * b= $ % & ' * ) "" "+ (
$upongamos a'ora que desea sumar dos !ectores# $i los dos !ectores tienen la misma dimensión es fácil# $encillamente sume los dos !ectores como se indica a continuación9 cDaKb c= % ' ) "+ "# "% #+ ") "'
1estar !ectores de la misma longitud funciona e&actamente igual#
MATIC!S E&isten !arias formas de introducir los elementos de una matri"9 a Listad Listadoo elem elemen ento to a elemen elemento to b :enerarlas a partir partir de sentencias funciones# funciones# c Crea Crearla rlass en arc arc'i 'i!o !oss #m d Cargarlas Cargarlas desde desde arc'i!os arc'i!os de datos datos e&terno e&ternos# s# $i se introducen por listado e&pl%cito de los elementos, los elementos de una misma fila se separan por blancos, , o por comas, ,, las distintas filas se separan mediante el
*;
retorno de carro o por punto coma W# La matri" queda delimitada por corc'etes Y#Z#
! O SW V < =Z ⇒ Matriz de $x$, no se tiliza el pnto ! como al final. AD ; > V
* O <
S =
ADY ; * W > O SW V < =ZW ⇒ matriz $,$/0 1l “2” son para evitar la respesta de Matlab/
A
⇒
para ver el contenido de la matriz.
AD ; > V
* O <
S =
$i quisiéramos e&traer submatrices de A se 'ar%a de la forma siguiente9 para e&traer la submatri" formada por las filas desde la i 'asta la ; columnas desde la : 'asta 'asta la m, pondr%amos9 A)i=;>:=m*
!
⇒
3emos el contenido de la fila.
⇒
3emos emos el contenido de todas las filas de la tercera colmna.
⇒
3emos emos el contenido de todas las filas de la segnda ! tercera
* O
A@9, Ans D S = A@9,*9 colmna.
Ans D * O S < = La traspuesta de A se escribe A? ⇒ Se pide mestre la matriz A ! s traspesta A4. A, A^ **
⇒ Matriz A AD ; * > O S V < = ⇒ Matriz A4A traspesta/ ans D ; > V * O < S = 3odemos igualar una matri" B a la traspuesta de A mediante9
BDA^ BD ; *
> O S
V < =
Los elementos de una matri" pueden ser cualquier e&presión de MATLAB9
!#???? O#???? S#???? V#???? <#???? =#???? ;#V*; ?#S??? #O??? $i quisiera a/adir A1 a la -ltima columna deber%a escribir YA A;^Z ans D ;#???? *#???? #???? ;#V*; >#???? O#???? S#???? ?#S???
*
V#???? <#???? =#???? #O??? 3ara crear un !ector de componentes equiespaciados se emplean los dos puntos9 &D>9*9;? &D > S < ;?
Lo s componentes de x van desde % de # en # 5asta "+.
*?Equi!alentemente, si lo que conocemos del !ector es que la primera coordenada !ale ?, la -ltima *? que tiene ;; en total, escribiremos9 \\!ect*Dlinspace@?,*?,;; !ect* D ? * > S < ;? ;* ;> ;S ;< *? las coordenadas de un !ector se accede sin más que escribir el nombre del !ector , entre paréntesis, su %ndice9 \\!ect*@ ans D > se pueden e&traer sub!ectores, por ejemplo9 \\!ect*@* 9O ansD *>S< o, \\!ect;@ ansD ? * > S < ;? ;* ;> ;S ;< *? \\!DY; * Z
X ector de coordenadas
*>
!D ;* \\8DY> O SZW \\matDY!W8W? ? ;Z
X También es una matri" &
mat D ;* >OS ??; A los elementos de una matri" se accede sin más que escribir el nombre de la matri" , entre paréntesis, los respecti!os %ndices9 \\mat@;, X Elemento en la primera fila tercera columna de la matri" mat ans D
También se puede acceder a un fila o columna completas, \\mat@9,* X $egunda columna de mat ans D * O ? \\mat@*, X $u segunda fila ans D >OS acceder a la matri" como si fuera una columna, \\M@*9V
X Los elementos segundo a séptimo de la matri" como columna
ans D > V * O < o acceder a cualquiera de sus submatrices
*O
\\mat@*9,Y; Z X $ubmatri" formada por los elementos que están en X todas las filas que 'a entre la segunda la tercera X en las columnas primera tercera ans D >S ?; E&isten algunas matrices definidas pre!iamenteW por ejemplo, la matri" identidad, \\ee@O ans D ;???? ?;??? ??;?? ???;? ????; la matri" nula, \\"eros@ ans D ??? ??? ??? [ D ones@n regresa una matri" n&n de ;unos# Aparece un mensaje de error si n no es un escalar o [ D ones@m,n or [ D ones@Ym nZ regresa una matri" m&n de unos# [ D ones@d;,d*,d or [ D ones@Yd; d* dZ regresa un arreglo de unos con dimensiones d;0b0d*0b0d0b0# $e puede conocer el tama/o de una matri" la longitud de un !ector9 \\si"e@mat X +imensiones de la matri" mat @n-mero de filas de columnas ans D \\si"e@! ans D ; \\lengt'@! X Longitud del !ector @n-mero de coordenadas ans D
*S
%P!ACI%"!S C%" MATIC!S Las operaciones entre matrices @ @, @ @ son las 'abituales, solamente 'abrá que cuidar las dimensiones# Con las matrices también funcionan las operaciones matemáticas elementales# As% M D Y; * W> O S WV < =Z MD ;* >OS V<= M#* M* ans D ? S >* SS <; =S ;?* ;*S ;O? $i se quiere operar en los elementos de la matri", uno por uno, se pone un punto antes del operador# $i se quiere ele!ar al cuadrado cada no de los elementos de M , entonces M#* ans D ;>= ;S *O S >= S> <; \\ ADY; * W > O SW V < =Z9 \\ BD A W B
Xentrada de la matri" Xla transpuesta
ans BD ; > V * O < S = \\A#QB ans
X operaciones elemento por elemento
; < *; < *O >< *; >< <; Ejem# \\ &D @?#?9?#*9#?W \\ De&p@0&#Qsin@&W las funciones
X genera un !ector columna Xcalcula que será un !ector, al e!aluar
*V
e&p@0& sin@& se toma a & como !ector, nótese que el producto es elemento elemento a elemento elemento @#QW \\Y&, Z ans D ? ?#*??? ?#>??? ?#S??? ?#?? ;#???? ;#*??? ;#>??? ;#S??? ;#?? *#???? *#*??? *#>??? *#S??? *#?? #????
Xdespliega como tabla &, W ? ?#;S*V ?#*S;? ?#?== ?#** ?#?=S ?#*? ?#*?;< ?#;S;? ?#;*; ?#?<=S ?#?S; ?#?< ?#?*?> ?#??V?
Algunas 2unciones definidas sobre matrices9 det det dete determ rmin inan ante te in! matri" matri" in!ers in!ersaa pol polinomio caracter%stico caracter%stico ] transpuesta 6ara m7s información0 5elp elmat
En MATLAB también funciona la di!isión @ AB @ADB
Multiplicación A;D Y* W VZ A*DY* O W V *
V
A* D * V
O *
<
:uardamos en AE el producto de A1 por A ADA;QA* *<
A D *O ;S ? OO *= SO Multiplicamos A1 por su in!ersa A; in!@A; A;Qin!@A; A; D *
V
ans D ;#>??? 0?#S??? 0?#S??? ?#>??? ans D S 0?#???? ? ;#???? ;
$i'isión AB Es equi!alente a in')A*B, en cuanto a resultado pero no en cuanto al n-mero de operaciones por ser distintos procesos# $i B es un !ector columna AB resuel!e el sistema A&DB A>DY0> OW* =Z, BDYW0SZ A> D 0> O * = BD 0S A>B ans D 0;#*=; 0?#=; in!@A>QB ans D
*=
0;#*=; 0?#=;
$i'isión ADB Equi!ale a Ain')B* A>DY0> OW* =Z,BDYW0SZ B^FA>,B^Qin!@A> Potenciación $i la matri" es cuadrada se puede definir la potencia p de A por AG p A;O E&isten comandos que permiten crear de forma sencilla matrices# 3or ejemplo9 \\diag@! X Matri" diagonal cua diagonal es el !ector ! ans D ;?? ?*? ?? \\diag@diag@M X Matri" diagonal con la diagonal de M# La sentencia diag@M da X el !ector formado por la diagonal de la matri" M ans D ;?? ?O? ??= \\diag@ones@;,>,;Kdiag@ones@;,>,0; X Matri" tridiagonal O&O con ? en la diagonal X principal ; en la sub superdiagonal ans D ?;??? ;?;?? ?;?;? ??;?; ???;? \\tril@M X Matri" formada por la parte triangular inferior de M# ans D ;?? > O ?V < = \\triu@M X Matri" formada por la parte triangular superior de M#
?
ans D ;* ?OS ADY; * > O S V < ?ZW \\ YL, .ZDlu@A
X descomposición de matrices
LD ?#;>*= ;#???? ? ?#OV;> ?#O??? ;#???? ;#???? ? ? .D V#???? <#???? ? ? ?##O??? Gperaciones con !ectores matrices Las funciones matemáticas elementales están definidas de forma que se pueden aplicar sobre arra!s# El resultado es el arra! formado por la aplicación de la función a cada elemento del arra!# As%9 \\log@! ans D ? ?#S=; ;#?=* ?#S*< ?#=>*O ;#*OSS ;#OV?< ;#< #;>;S \\&Dsin@p &D Columns ; t'roug' V ? ?#?=? ?#O
\\!,8
X 1ecordamos los !alores de ! 8
!D ;* 8D >OS \\"D!Q8^ X 3roducto escalar @producto de matrices ;& por &; "D * \\D8^Q! X 3roducto de matrices &; por ;& D Matri" & D > < ;* O ;? ;O S ;* ;< \\!Q8
X Los !ectores ! 8 no se pueden multiplicar
``` Error using Q 6nner matri& dimensions must agree# \\mat
X 1ecordamos el !alor de la matri" mat
También pueden efectuarse multiplicaciones, di!isiones potencias de arra!s, entendiéndolas como elemento a elemento @como, de 'ec'o, se reali"an la suma la resta# El operador utili"ado para ellas es el 'abitual precedido por un puntoW es decir9 \\!#Q8 X ector formado por los productos de las respecti!as coordenadas9 X ans@iD!@iQ8@i ans D > ;? ;< \\8#F! X ector formado por el cociente de cada coordenada de 8 entre la X coordenada correspondiente de !9 ans@iD8@iF!@i ans D >#???? *#O??? *#???? \\mat#* X Matri" cuos elementos son los de mat ele!ados X al cuadrado9 ans@i,jDmat@i,j* ans D ; > = ;S *O S ? ? ;
*
5inalmente, pueden calcularse determinantes9 \\det@mat ans D 0 resol!erse sistemas de ecuaciones lineales con el !ersátil comando 9 \\mat!^ ans D *#SSSV 0O# #??? ee linspace logspace mes'grid ones rand randn "eros 9
diag fliplr flipud res'ape rot=? tril triu 9
compan 'adamard 'an)el 'ilb in!'ilb magic pascal
Matrices elementales Matri" identidad ector espaciados linealmente ector espaciado logaritmicamente Arreglos N e [ para gráficas + Matri" de unos 7-meros aleatorios distribuidos uniformemente 7-meros aleatorios distribuidos normalmente Matri" de ceros ector espaciado regularmente
Manipulación de matrices Crea o e&trae la diagonal 5lip la matri" en el lado i"quierdoFderec'o 5lip la matri" en la parte arribaFabajo Cambia el tama/o 1otal la matri" =? grados E&trae la parte triangular inferior E&trae la parte triangular superior 6nde&a a la matri", rearregla la matri"
Matrices especiales Matri" Companion Matri" de Hadamard Matri" de Han)el Matri" de Hilbert Matri" in!ersa de Hilbert Cuadrado mágico Matri" de pascal
rosser rsf*csf toeplit" !ander 8il)inson
cond det norm null ort' rcond ran) rref trace
c'ol in! lsco! lu nnls pin! qr F o
balance cdf*rdf eig 'ess pol q" rsf*csf sc'ur s!d
3roblema clásico de prueba de eigen!ectores Con!ierte un $c'ur0real a complejo Matri" de Toeplit" Matri" de andemonde Matri" de prueba de eigen!alores de (il)inson
Análisis de matrices 7-mero condicional de la matri" +eterminante ector o norma de la matri" Espacio nulo Grtogonali"ación Estimador rec%proco condicional 7-mero de filas o columans linealmente independientes 5orma escalonada reducida $uma de los elementos de la diagonal
Ecuaciones lineales 5actori"ación de C'oles)i Matri" in!ersa M%nimos cuadrados en la presencia de co!ariancia conocida 5actor desde la eliminación gaussiana M%nimos cuadrados no0negati!os 3seudoin!ersa +escomposición ortogonal triangular $olución de ecuación lineal
Eigen!alores !alores singulares Escalamiento diagonal para mejorar la precisión de los eigen!alores 5orma compleja diagonal para formar bloque diagonal real Eigen!alores eigen!ectores 5orma de Hessenberg 3olinomio caracter%stico Eigen!alores generali"ados# Algoritmo 4 Bloque diagonal real para la forma diagonal compleja +escomposición de $c'ur +escomposición de !alor singular
5unciones matriciales
>
e&pm
Matri" e&ponencial
e±
M0file de la implementación e&ponencial
e&pm*
Matri" e&ponencial !ia series de Talor
e&pm
Matri" e&ponencial !ia eigen!alores eigen!ectores
logm
Matri" logaritmica
sqrtm
Matri" de ra%ces cuadradas
+ariables lógicas. También e&isten !ariables lógicas que toman los !alores ? @falso o ; @!erdadero# 3or ejemplo9 \\abs@!\D* X ector lógico cuas coordenadas !alen ; si la coordenada X correspondiente de ! es \D * ? si no lo es ans D ?;; \\!ectorD!@abs@!\D* X ector formado por la coordenadas de ! que X !erifican la desigualdad !ector D * \\!*DY * ;Z !* D *; \\logicaD!DD!* X Asignación de un !alor lógico @el doble signo igual es el X igual lógico logica D ?;? \\logic*D!hD!* X +istinto @h es el operador de negación logic* D ;?; R\
Gperador relacional ariable lógica O
h &or
all an e&ist find finite isempt isieee isinf isnan issparse isstr
ariable lógica o ariable lógica no ariabale lógica G1
5unciones lógicas erdadero si todos los elementos del !ector son !erdaderos erdadero si cualquier elemento del !ector es !erdadero C'eca si e&iste las funciones o !ariables Encuentra el %ndice de elementos no ceros erdadero para elementos finitos erdadero para matrices !acias erdadero para aritmética de punto flotante erdadero para elementos infinitos erdadero para elementos no un n-mero erdadero para matrices desparramadas erdadero para una cadena de te&to
cloc) cptime date etime tic, toc
5ec'a tiempo 1eloj Tiempo de computo Calendario Tiempo de computo de la función Tiempo de paro de la función
,r82icas de 2unciones. Los datos son e&aminados gráficamente en Matlab usando el comando grap' paper para crear gráficas sobre la pantalla# Ha seis tipos diferentes de grap' paper9 plot loglog semilog& semilog polar mes' bar
:rafica linealmente & e :ráfica con los eje logaritmicos & e :raf%ca smilog &0 @con el eje & logaritmico :rpafuica senu)ig &0 @con el eje logaritmico :ráfica polar $upeficies de malla en tres dimensiones Carta de barras
3otencial de 'erramientas gráficas# $e pueden dibujar los !alores de un !ector frente a otro @de la misma longitud9
,r82icas 6-. ,r82ica de datos tabulados - 2unciones.
S
Cada función acepta los datos de entrada en forma de !ectores matrices automáticamente escala los ejes para acomodarlos
Plot. Crea un dibujo de !ectores o columnas de matrices @de la misma longitud# plot $inta&is9 a plot@ b plot@&, c plot@&,,tipo_l%nea d plot@&;,;,tipo_l%nea_;,&*,*,tipo_l%nea_*, ### , &n,n,tipo_l%nea_n D@0O9?#;9>#W plot@W +ibuja las columnas de contra su %ndice 100
50
0
50
1 0 0
1 5 0 0
10
20
30
40
50
60
70
80
90
100
&D0O9?#;9>W D@&#W plot@&,W
V
100
50
0
5 0
1 0 0
1 5 0 5
4
3
2
1
0
1
2
3
4
A !eces es necesario determinar las coordenadas apro&imadas que tiene un cierto punto de una gráfica# 3ara ello es especialmente -til la instrucción grid, que construe una malla rectangular discontinua sobre el dibujo# En dibujos reali"ados con la instrucción polar, la malla ser%a la 'abitual en coordenadas polares# El resultado de escribir las siguientes instrucciones es la gráfica mostrada en la figura# &D0O9?#;9>W D@&#W plot@&,W \\ &label@&W \\ label@W \\ title@grafica de D&W \\ gridW
<
3 g r a fi c ad ey =x
100
50
0 y
50
1 0 0
1 5 0 5
4
3
2
1
0
1
2
3
4
x
&D@?9?#*9=W alfaD?9OW Dbesselj@alfa,&W Dbesselj@alfa,&W X5unción de Bessel \\ plot@&, \\ &label@&W \\ label@W \\ title@Dbesselj@alfa,&, para alfaD?,;,*,,>, OW y=bessel j ( al f a, x) ,par aal f a=0, 1, 2, 3, 4,y5 1
0. 5
y
0
0 . 5 0
1
2
3
4
5
6
7
8
9
x
=
&;D?9#;9;?W \\ ;Dcos@&;W \\ &*D;#OQ&;W \\ *D*Qcos@&*W \\ &D*Q&;W \\ DQsin@&W \\ plot@&;,;,&*,*,&, plot@&;,;,&*,*,&, 3
2
1
0
1
2
3 0
2
4
6
8
10
12
14
16
18
20
&;D?9#;9;?W ;Dcos@&;W &*D;#OQ&;W *D*Qcos@&*W &D*Q&;W DQsin@&W &DY&; &* &ZW DY; * ZW plot@&, label@W \\ &label@&W
>?
3
2
1
y0
1
2
3 0
2
4
6
8
10 x
12
14
16
18
20
Color de línea= b blue g green r red c can m magenta ello8 ) blac)
!stilo de línea= 0 sólida 9 punteada 0# 3unteada moc'a 0 0 moc'a
Marcadores de estilo= # punto o c%rculo & marca & K más Q estrella s cuadrado d diamante ! triángulo bajo triángulo arriba R triángulo i"quierdo \ triángulo derec'o >;
p pentagrama ' 'e&agrama &;D?9#;9;?W ;Dcos@&;W &*D;#OQ&;W *D*Qcos@&*W &D*Q&;W DQsin@&W &DY&; &* &ZW DY; * ZW plot@&,,00r &label@&W label@W 3
2
1
0
1
2
3 0
2
4
6
8
10
12
14
16
18
20
&;DY09#*9ZW ;D&;#*Krandn@si"e@&;W pDpolfit@&;,;,*W \\ &*D@09#O9W *Dpol!al@p,&*W plot@&;,;,og,&*,*,00cW &label@entradaW label@salidaW title@1uido datoDUoU cur!a fijadaDU00UW
>*
Ru i d od at o =" o "yc ur v afi j a da =" " 9 8 7 6 5 a d i l4 a s
3 2 1 0 1 3
2
1
0 e n t r a d a
1
2
3
tD?9piF*??9*QpiW&Dsin@tW;Dsin@tK?#OW*Dsin@tK;#?W### plot@&,;,r0,&,*,g00W title@Angulo difusoW &label@&Dsin@tW ### label@Dsin@tK
&D0;?9#;9;?W \\ De&p@W \\ plot@&,
>
305
x10 15
10
5
0 10
8
6
4
2
0
2
4
6
8
10
&D0;?9#;9;?W De&p@W semilog@&, 300
10
200
10
100
10
0
10
1 0 0
10
2 0 0
10
3 0 0
10
10
8
6
4
2
0
2
4
6
8
10
Comando9 'old on las subsecuentes l%neas o gráficas se a/aden a la gráfica actual 'old off regresa a las condiciones default 'old mantiene el estado entre 'old on 'old off
>>
&D0*9#;9*W \\ plot@&,sin@&,rW \\ 'old on \\ plot@&,sin@*,00bW \\ plot@&,cos@*,9gW \\ 'old off 1 0. 8 0. 6 0. 4 0. 2 0 0 . 2 0 . 4 0 . 6 0 . 8 1 2
1. 5
1
0. 5
0
0. 5
1
1. 5
2
Algunas !eces se tendrán datos que deseara !isuali"ar sobre la misma gráficaW sin embargo, los !alores en el eje no estarán en el mismo rango# El comando plot, nos auda a graficar este conjunto de datos sobre la misma gráfica# &*D;?9#*9*OW \\ *DO?Q&*W \\ plot@&;,;,0b,&*,*,00gW \\ title@; es la l%nea a"ul, * es la l%nea !erde punteadaW \\ label@W \\ &label@&W
>O
y 1e sl al í n aa zu l ,y 2e sl al í n av e r d ep un t e ad a 1400 1200 1000 800 y 6 00
400 200 0 2 0 0 0
5
10
15
20
25
x
&*D;?9#*9*OW *DO?Q&*W plot@&;,;,&*,*W label@W &label@&W 20
1300
15
1200
10
1100
5
1000
0
900
5
800
10
700
15
600
y
20 0
5
10
15
20
500 25
x
>S
Sistema de ecuaciones paramHtricas. tDY?9#?;9;ZW &D;0tW \\ D;KtW \\ plot@&,W
2 1. 9 1. 8 1. 7 1. 6 1. 5 1. 4 1. 3 1. 2 1. 1 1 0
0. 1
0. 2
0. 3
0. 4
0. 5
0. 6
0. 7
0. 8
0. 9
1
Sistema de coordenadas polares # El comando compass crea flec'as que emanan desde el origen en un sistema de coordenadas polares# La función compass puede ser llamada desde compass@" o compass@u,! donde esta es equi!alente a compass@uKi!# "DY;9;?Z#Qe&p@iQY;9;?ZQSQ@piF;W \\ compass@"W
>V
90
10
120
60 8 6
150
30 4 2
180
0
210
330
240
300 270
La función polar crea una gráfica polar desde datos de magnitud ángulo, toma la forma polar@t'eta, r'o o polar @t'eta, r'o, linetpe_string donde t'eta corresponde al ángulo @en radianes r'o corresponde a la magnitud# $inta&is9 a polar@ángulo,radio b polar@ángulo, radio, tipo_l%nea t'etaD*QpiQY?9#;9;ZW \\ r'oD?#OKcos@t'etaW \\ polar@t'eta,r'o 90
1. 5
120
60 1
150
30 0. 5
180
0
210
330
240
300 270
><
t'etaD*QpiQY?9#?;9;ZW r'oD?#OKcos@t'etaW polar@t'eta,r'o 90
1. 5
120
60 1
150
30 0. 5
180
0
210
330
240
300 270
2plot +ibuja la gráfica de una función# $inta&is9 afplot@función, Yinicio, finalZ bfplot@función, Yinicio, finalZ, n cfplot@función, Yinicio, finalZ, n, ángulo dY&, ZDfplot@función,Yinicio, finalZ D\ plot@&, n0n-mero de puntos ángulo 0 ángulo entre segmentos sucesi!os de la función fplot@sin@&#Qcos@*Q&,Y?9OZQpi
>=
0. 4
0. 2
0
0 . 2
0 . 4
0 . 6
0 . 8
1 0
0. 5
1
1. 5
2
2. 5
3
La función fplot se usa para adaptar el control, concentrando su e!aluación en la región donde los cambios de la función son más grandes# fplot@sin@&Qcos@*Q&,Y? OQpiZ 1 0. 8 0. 6 0. 4 0. 2 0 0 . 2 0 . 4 0 . 6 0 . 8 1 0
5
10
15
Dsin@&#Qcos@*Q&W \\ plot@W
O?
1 0. 8 0. 6 0. 4 0. 2 0 0 . 2 0 . 4 0 . 6 0 . 8 1 0
2
4
6
8
10
12
14
16
&DY?9?#O9OQpiZW \\ Dsin@&#Qcos@*Q&W plot@W 1 0. 8 0. 6 0. 4 0. 2 0 0 . 2 0 . 4 0 . 6 0 . 8 1 0
5
10
15
20
25
30
35
fplot@sin, Y?, piZ 'old on fplot@tan', Y0* *Z
O;
D*??Qsin@&@9#F&@9W Dfun#@&W fplot@func, Y? ?Z, S?, *
El comando e"plot considera un rango de 0* π a * π coloca un t%tulo arriba de la gráfica# e"plot@sin@&Qcos@*Q&
O*
s i n ( x )c os ( 2x ) 1 0. 8 0. 6 0. 4 0. 2 0 0 . 2 0 . 4 0 . 6 0 . 8 1 6
4
2
0 x
2
4
6
MATLAB por default escala los ejes cartesianos, si quisiera !er alguna otra región, entonces se usa el comando a&is que manipula los atributos de los ejes de la gráfica
esumen de la 2unción a6is para $ gr82icas. a&is@Y&min &ma& min ma&Z ejes & e
+etermina los l%mites má&imo m%nimo de los
a&is auto
regresa los ejes escalados al modo default
a&is manual congela la escala a los l%mites actuales, tal si el 'old es puesto en on, las subsecuentes gráficas usaran los mismos l%mites a&is normal Coloca los ejes en estado default restaura los ejes de caja a tama/o lleno, remo!iendo cualquier restricción sobre las unidades de escala# $urte efecto sobre a&is square a&is equal a&is square cuadradas# a&is equal a que sean iguales#
5uer"a los ejes a tener unas dimensiones 5uer"a las unidades de espaciamiento,
a&is ij Coloca el origen de la gráfica en la esquina i"quierda superior# El eje & se escala desde la i"quierda a la derec'a# El eje desde arriba 'acia abajo#
O
a&is & 5uer"a a los ejes usen un sistema cartesiano estándar con el origen en la esquina inferior i"quierda# El eje & ira desde la i"quierda a la derec'a, el eje desde abajo 'acia arriba# a&is tig't !alores m%nimo má&imo de los datos#
5uer"a a los ejes & e tomen los
a&is off
'ace in!isible todas las marcas
a&is on marcas#
Hace !isible las etiquetas
&D0;?9#;9;?W \\ De&p@&#Qsin@&#Q@W plot@&,W \\ &label@&W \\ label@W 6
x10 4 2 0 2 4 6 8 10 12 10
8
6
4
2
0
2
4
6
8
10
&D0;?9#;9;?W De&p@&#Qsin@&#Q@Wplot@&,W \\ plot@&,W \\ &label@&W label@W \\ a&is@Y0;? 0S VZ
O>
6
4
2 y
0
2
4
6 10
8
6
4
2
0
2
x
a&is auto regresa a la grafica anterior# Los l%mites se pueden colocar como una !ariable9 !ariable_nameDa&is &D?9?#;9@ OQpiW plot@&,V#OQsin@&W a&is_lmitsDa&is desired_ma&_&D;?W desired_ma&_D;OW a&is@Ya&is_limits@; desired_ma&_& a&is_limits@ desired_ma&_ZW ne8_limitsDa&is Los a&is l%mites antes de redefinirse son9 a&is_limitsDY? ;S 0<
OO
5 4 3 2 1 0 1 2 3 4 5 5
4
3
2
1
0
1
2
3
4
0. 5
1
1. 5
2
5
&D*Qcos@Y?9;?9S?ZQ@piF;W D*Qsin@Y?9;?9S?ZQ@piF;W plot@&,W \\ a&is@square 2 1. 5 1 0. 5 0 0 . 5 1 1 . 5 2 2
1. 5
1
0. 5
0
&D*Qcos@Y?9;?9S?ZQ@piF;W D>Qsin@Y?9;?9S?ZQ@piF;W plot@&,W a&is@square
OS
4 3 2 1 0 1 2 3 4 2
1. 5
1
0. 5
0
0. 5
1
1. 5
2
0
1
2
3
4
&D*Qcos@Y?9;?9S?ZQ@piF;W D>Qsin@Y?9;?9S?ZQ@piF;W plot@&,W a&is@equal 4 3 2 1 0 1 2 3 4 5
4
3
2
1
5
&D*Qcos@Y?9;?9S?ZQ@piF;W D>Qsin@Y?9;?9S?ZQ@piF;W plot@&,W OV
a&is@tig't 4 3 2 1 0 1 2 3 4 2
1. 5
1
0. 5
0
0. 5
1
1. 5
2
La función sidete&t coloca te&to al lado derec'o de los ejes# tD?9?#?*9*W p'i_?D>OQpiF;O degreeW
O<
Pl otofsi n( 2* p i * t +ph i ) 0 1 0. 8 0. 6 0. 4 0. 2 y
0
0 . 2 0 . 4 0 . 6 0 . 8 1 0
0. 2
0. 4
0. 6
0. 8
1 t
1. 2
1. 4
1. 6
1. 8
2
Cambie a'ora los ejes a&is @Y? 0* *Z Pl otofsi n( 2 * pi * t +phi ) 0 2 1. 5 1 0. 5 y
0
0 . 5 1 1 . 5 2 0
0. 5
1
1. 5 t
2
2. 5
3
3uede colocar te&to iterati!amente con el ratón con la función gte&t# +espués de este comando, cambia el apuntador del ratón desde la flec'a estándar a una cru"ada# 3osición la cru" sobre el lugar en la figura donde se desee colocar el te&to presionando el botón del ratón o cuna tecla sobre su teclado, La cadena de te&to aparecerá justificada a al i"quierda !erticalmente arriba de los datos que fueron seleccionados# gte&t@Este te&to fue colocado con gte&t
O=
Pl oto fsi n( 2* p i * t +phi ) 0 2 1. 5 1 Es t et e xt of u eco l o ca doco ng t e xt 0. 5 y
0
0 . 5 1 1 . 5 2 0
0. 5
1
1. 5 t
2
2. 5
3
La función te&t@&,,^te&t^ es una función de alto ni!el gráfico que puede usarse para a/adir una cadena de caracteres en el punto correspondiente al lugar @&, a la gráfica# &D0*9?#;9*W D0@&K;#*W plot@&,W &label@&9 label@W title@D0@&K;#*W grid on a&is@Y0* * 0O OZW X+etermine el má&imo !alor de Yma&__!alor, ma&__inde&ZDma&@W corresponding_&_!alorD&@ma&__inde&W XColocar un c%rculo rojo en el dato má&imo 'old on plot@corresponding_&_!alor, ma&__!alor, orW 'old off XCrear un !ector cadena our_stringDsprintf@Xg es el punto de dato má&imo, ma&__!alorW XColocar la cadena en la gráfica en el !alor de ma&ima te&t@corresponding_&_!alor, ma&__!alorK?#O,our_stringW El ?#O es para que el te&to no sobrelape la linea#
S?
y=3( x+1) . ˆ 2 5 4 3eselpunt odedat omáxi mo 3 2 1 y0
1 2 3 4 5 2
1. 5
1
0. 5
0 x
0. 5
1
1. 5
2
X5uente de datos9 Economic 1eport of t'e 3resident, ;=#* O#> O#= ># # S#* ;;#? =#; O#< S#O V#V ;;# ;#OZW perc_unemplo_dataDY>#O #< #< #S #O >#= O#= O#S >#= O#S <#O V#V V#? S#? O#< V#?ZW ear_stringsDY;=SOW;=SSW;=SVW;=S<W;=S=W;=V?W;=V;W;=V*W;=VW;=V>W;=VOW ;=VSW;=VVW;=V<W;=V=W;=ZW \\ plot@perc_unemplo_data, cpi_data, orW \\ XEn el siguiente comando de te&to dos propiedades se reali"aron \\ Xel uso de ello muestra una mejor gráfica \\ te&t@perc_unemplo_data, cpi_data, ear_strings, fontsi"e,;?, !erticalalignment,bottomW \\ a&is@Y? ;? ? ;>ZW \\ &label@3ercent .nemplomentW \\ label@3ercent c'ange in C36W
S;
14
1980
12
1979 1974
10
I P C n i e 8 g n a h c t n 6 e c r e P
1975 1978
1969
1971
1968
4
1967 6
1972
1965
2
0 0
1977 1976
1973 1970
1
2
3
4 5 6 7 Per centUnempl oyment
8
9
10
$e puede construir una función de te&to que acepte un arreglo de celdas de cadenas donde cada cadena contiene el te&to para cada l%nea# string_arra@;D]Este será la primara l%nea#^W string_arra@*D]Este se la segunda l%nea#^W string_arra@D] as% sucesi!amente ^W el lugar donde las tres l%neas se posicionaran con el apuntador del ratón# $i conoce e&actamente el lugar donde el bloque de te&to se colocaran, usara te&t@?#O# ?#O, string_arraW El comando legend crea una leenda del tipo de l%nea que se usa en la gráfica asocia a este tipo de l%nea con el la cadena de te&to que se pone# &D?9#;9@*QpiW \\ s&Dsin@&W \\ c&Dcos@&W \\ plot@&,s&,0r,&,c&,00cW \\ a&is@Y? *Qpi 0;#O ;#OZW \\ legend@$en@&,Cos@&W
S*
1. 5 Sen( x) Cos( x) 1
0. 5
0
0 . 5
1
1 . 5 0
1
2
3
4
5
6
$i no esta seguro en que orden se crearon las l%neas o si se tiene solamente pocas l%neas en que colocar la leenda puede usar esta forma de la función legend9 legend@linetpe;, string;, linetpe*, string*,### Esto es probablemente más seguro# 3ara nuestro ejemplo pre!io &D?9#;9@*QpiW s&Dsin@&W c&Dcos@&W plot@&,s&,0r,&,c&,00cW a&is@Y? *Qpi 0;#O ;#OZW legend@0r,$en@&,00c,Cos@&W (arning9 6gnoring e&tra legend entries# Con el ratón se arrastra el cuadro de leenda a la posición seleccionada#
Colocar te6to. Ha !arias formas de colocar te&to en una posición relati!a a la figura en lugar de los ejes $e antepone el prefijo .sando caracteres especiales#
S
S>
plot@?9#;9*Qpi,sin@?9#;9*Qpi &label@tauD? to *pi, 5ont$i"e,;S label@sin@tau,5ont$i"e,;S title@italue of t'e $ine from ? to *pi,5ont$i"e,;S plot@?9#;9*Qpi,sin@?9#;9*Qpi &label@tauD? to *pi, 5ont$i"e,;S label@sin@tau,5ont$i"e,;S title@italue of t'e $ine from ? to *pi,5ont$i"e,;S Va l u eo f t h eSi n ef r o m 0t o2π 1 0. 8 0. 6 0. 4 0. 2
) τ ( n i0 s
0 . 2 0 . 4 0 . 6 0 . 8 1 0
1
2
3
4
τ=0t o2π
5
6
7
&sando subplot para crear mltiples gr82icas. .na forma es usando el comando 'old usando otro comando plot# $in embargo se tiene la limitación de que nada más se esta usando un eje#
SO
La forma más fácil de graficar m-ltiples gráficas es usar el comando subplot, llamando al comando con tres argumentos crea estas subregiones, los primeros dos especifican cuantas regiones 'abrá en términos de filas columnas, el tercer argumento especifica cual región deseará graficar en ella# 3or ejemplo, subplot@m,,n,p subdi!ide la !entana en m&n regiones crea los ejes en la p0esima región siendo estas numeradas de i"quierda a derec'a de arriba abajo# +espués de que se crearon los ejes se usa el comando de graficar# XCrear la forma de datos & e &_squareDY0 0 0ZW _squareDY0 0 0ZW &_circleDQcos@Y?9;?9S?ZQpiF;W _circleDQsin@Y?9;?9S?ZQpiF;W&_triangleDQcos@Y=? *;? ? =?ZQpiF;W &_triangleDQcos@Y=? *;? ? =?ZQpiF;W_triangleDQsin@Y=? *;? ? =?ZQpiF;W _triangleDQsin@Y=? *;? ? =?ZQpiF;W X:rafica el circulo en subregion de la esquina superior i"quierda subplot@*,*,; plot@&_circle,_circle,00gWa&is@Y0> > 0> >ZW a&is@equalW title@CirculoW X:rafica el cuadrado en la subregión superior derec'a subplot@*,*,*W plot@&_square,_square,0rWa&is@Y0> > 0> >ZW a&is@equalW title@CuadradoW X:rafica el triangulo en la subregión inferior i"quierda subplot@*,*, plot@&_triangle,_triangle,9bWa&is@Y0> > 0> >ZW a&is@equalW title@TrianguloW X:rafica la combinacion de graficas en la subregion inferior derec'a subplot@*,*,> plot@&_square,_square,0rW 'old onW \\ plot@&_circle,_circle,00gW plot@&_triangle,_triangle,9bW \\ a&is@Y0> > 0> >ZW a&is@equalW \\ title@Combinacion de graficasW
SS
Ci r cul o
Cuadr ado
4
4
2
2
0
0
2
2
4 5
0
4 5
5
Tr i angul o
5
Co mb i n ac i o nd eg r a fi c a s
4
4
2
2
0
0
2
2
4 5
0
0
4 5
5
0
5
subplot@*,*,;,e"plot@sin@& \\ subplot@*,*,*,e"plot@cos@& \\ subplot@*,;,*,e"plot@sin@&*F&* si n( x)
c o s ( x )
1
1
0. 5
0. 5
0
0
0. 5
0 . 5
1
1 5
0 x
5
5
0 x
5
2 2 si n( x / ) x
1
0. 5
0 6
4
2
0 x
2
4
6
subplot@*,*,,e"plot@sin@& subplot@*,*,>,e"plot@cos@& subplot@*,;,;,e"plot@sin@&*F&* SV
00 subplot@*,*,*,e"plot@sin@& subplot@*,*,>,e"plot@cos@& subplot@;,*,;,e"plot@sin@&*F&* 2 2 si n( x / ) x
si n( x) 1
1 0. 5 0. 9
0
0. 8 0 . 5 0. 7 1 0. 6
5
0 x c o s ( x )
5
5
0 x
5
0. 5 0. 4 1
0. 3
0. 5
0. 2
0
0. 1
0 . 5
0
1 5
0 x
5
El comando scatter genera una grafica de dispersión, esto es, una gráfica de c%rculos en los puntos# &Drand@>?,;W Drand@>?,;W areaD*?K@;9>?W scatter@&,,area bo& on \\ title@5igura9 .na grafica scatter
S<
Fi g ur a :Un ag r a fi c as ca t t e r 0. 9 0. 8 0. 7 0. 6 0. 5 0. 4 0. 3 0. 2 0. 1 0 0
0. 1
0. 2
0. 3
0. 4
0. 5
0. 6
0. 7
0. 8
0. 9
1
,r82icas 28ciles. Cuando no se desea especificar los datos e&pl%citamente para una gráfica, Matlab proporciona los comandos fplot, e"plot, e"polar# El comando fplot definido en el arc'i!o0M# Estas funciones se definen los datos para la !ariable independiente# fplot@'umps,Y0#O,ZW \\ title@5igura9 5plot de la funcion HumpsW \\ &label@& \\ label@'umps@& pause@O fstrDsin@&F@&W e"plot@fstr,Y0;O,;OZ \\ title@Y5igura9 fstrZ pause@O \\ istrD@&0**F@**K@K;*F@*0;W e"plot@istr,Y0* S 0O Z a&is square \\ grid title@Y5igura9 istrZ
S=
Fi g ur a :F pl o td el af u nc i o nHu mp s 100
80
60 ) x ( s p 4 0 m u h
20
0
20 0. 5
0
0. 5
1
1. 5
2
2. 5
3
x
Fi gur a: si n( x) / ( x) 1
0. 8
0. 6
0. 4
0. 2
0
0 . 2 15
10
5
0 x
5
10
15
V?
2 2 2 2 Fi gur a:( x2 / ) ( 2) +( y +1 / ) ( 3) 1
3 2 1 0 y1
2 3 4 5 2
1
0
1
2 x
3
4
5
6
,r82icas de 8reas. La función area genera un área llena, el área entre la l%nea el eje en ? por default se llenara# 3ara cambiar el !alor de para el cual la gráfica se llenara, puede usar la forma area@, min o area @&, , min, donde la min especifica el lugar del cual la grafica se llena &DY?9=ZW DOQsin@&W area@&,,*,facecolor,blueW 5 4 3 2 1 0 1 2 3 4 5 0
1
2
3
4
5
6
7
8
9
V;
Fill. +ibuja el área interior de una cur!a en determinado color $inta&is9 a fill@&,,c b fill@&;,;,c;,###,&n,n,cn tD?9?#O9*QpiW &Dsin@tW fill@t,&,b tD?9?#O9*QpiW &Dsin@tW Dcos@tW fill@,&,r
1 0. 8 0. 6 0. 4 0. 2 0 0 . 2 0 . 4 0 . 6 0 . 8 1 1
0. 8
0. 6
0. 4
0. 2
0
0. 2
0. 4
0. 6
0. 8
1
Colormap. Colorea con sombreado el interior de una cur!a o pol%gono colormap@colorbase donde colorbase es9 gra 'ot cool copper pin) tD?9?#?O9*QpiW &Dsin@tW Dcos@tW colormap@'ot@;?W ### 7ota9 ;? es opcional el rango ?0*OO fill@,&,& XD\ sombreado 'ori"ontal fill@,&, XD\ sombreado !ertical
V*
!lementos de las gr82icas J0 fill +ibuja una l%nea poligonal loglog Escala gráfica log0log plot :ráfica lineal semilog& Escala semi0log semilog Escala semi0log ,r82ica especiales bar :ráfica de barras compass :ráfica compass errorbar :ráfica de error de barras feat'er :ráficas feat'er fplot 5unciones gráficas 'ist Histograma polar :ráficas polares rose :ráfica de 'istogramas de ángulos stairs :ráfica $tairstep Anotación gr82ica grid 1ejilla gte&t 1atón para posicionar te&to te&t Anotación te&to title T%tulo de la gráfica &label Etiqueta del eje & label Etiqueta del eje V
Transformación de coordenadas cart*sp' Cartesiandas a esféricas cartpol Cartesianas a cil%ndricas o polares pol*cart Cil%ndricas o polares a cartesianas sp'*cart Esféricas a cartesianas
!l comando linspace. linspace@first_!alue, last_!alue, number_of_!alue la notación &D@?9?#;9;Qpi crea un arreglo que inicia en ?, incrementa por ?#;, finali"a en ;# Cada elemento en este arreglo se multiplica por π para crear los !alores deseados de Gtra forma es usar el comando linspace# &D@?9?#;9;Qpi Columns ; t'roug' > ? ?#;>* ?#S*< ?#=>*O Columns O t'roug' < ;#*OSS ;#OV?< ;#< #;>;S &Dlinspace@?,pi,;; &D Columns ; t'roug' > ? ?#;>* ?#S*< ?#=>*O Columns O t'roug' < ;#*OSS ;#OV?< ;#<
V>
ans D Columns ; t'roug' > ;#???? ;#O<>= *#O;;= #=<;; Columns O t'roug' < S#?=S ;?#???? ;O#<><= *O#;;<= Columns = t'roug' ;; =#<;?V S#?=OV ;??#???? $e 'a creado un arreglo iniciando en ;? ?, finali"ando en ;?*, conteniendo ;; !alores# Eje# &Dlinspace@?#;,?#=,?W D; #F&W plot@&, grid
3odemos combinar algunas de estas opciones# 3or ejemplo, las siguientes instrucciones dibujan las funciones * cos@ xA cos* @ xA , mostrando la gráfica de la primera en color blanco punteada la de la segunda como una sucesión de puntos representados por estrellas#
VO
Dlinspace@?,*Qpi,;OW
x
;D*Qcos@&W *D@cos@&# *W plot@&,;,89,&,*,Q Es importante destacar que, en la !ersión de estudiante, las opciones de l%nea de punto no son compatibles , por ello, no se pueden usar simultáneamente# $i queremos representar una cur!a discontinua punteada que una distintos puntos representados por cruces, 'emos de dibujar la cur!a dos !eces, con las opciones por separado# 3or ejemplo, &Dlinspace@?,>,;OW De&p@&W plot@&,,0#,&,,K construe una cur!a como la descrita# 3odemos darnos cuenta de que MATLAB colorea los puntos la cur!a de modo distinto, a que las considera como cur!as diferentes#
!;ercicio= 1epresenta las siguientes funciones en los inter!alos con las opciones que se indican, primero por separado después en un mismo dibujo# ;#
f @ xA = e sen@ x A en Y?,
representados por aspas# *# f @ xA = ln@ xA en Y*,SZ, como una l%nea punteada blanca que une los puntos representados por estrellas# *
x # f @ xA = en Y0;,OZ, como una l%nea discontinua a"ul que une los puntos >
representados por c%rculos#
!;ercicio= +ibuja con un solo color la gráfica de la función a tro"os de la sección anterior#
Ejemplo9 \\&DpiQ@0;9?#;9;W \\DQsin@&W \\plot@&, X 3or defecto une los puntos @&@i,@i mediante una poligonal
VS
Como se !e, con pocos puntos la gráfica tiene un aspecto demasiado lineal a tro"os# 3ara Uenga/arU al ojo, basta tomar más puntos# \\&DpiQ@0;9?#?;9;W \\DQsin@&W \\plot@&,
VV
\\fplot@sin@&,Y? *QpiZ X +ibuja la función seno en el inter!alo Y?,*QpiZ
\\'o ld on
X Mantiene en la !entana gráfica los dibujos anteriores dibujarse
\\fplot@cos@&,Y? *QpiZ X +ibuja sobre la gráfica anterior la función cos@&
V<
\\'old off
X Con esto ol!ida los dibujos anteriores X dibuja en una !entana nue!a
\\fplot@&*Qsin@;F&,Y0?#?O ?#?OZ X +ibuja la función &*Qsin@;F&
el !ersátil comando e"plot @se lee como eas! plot que permite dibujar funciones, \\e"plot@e&p@& X +ibuja la función e&ponencial en un inter!alo adecuado a la función
Ejercicio numero ;# 6nciso @a# \\ &D?9?#;9>#QpiW \\ D@sin@&#F@;Kcos@&W \\ plot@&,W \\ &label@Eje de las N \\ label@Eje de las [ \\ title@problema *#; @a \\ gte&t@sin@&F;Kcos@&W
V=
6nciso @b \\ &D?9?#;9>W \\ D;#F;K@&0*#*W \\ plot@&,W \\ title@problema *#; @bW \\ &label@Eje de las NW \\ label@Eje de las [W \\ gte&t@;F;K@&0**W
6nciso @c \\ &D?9?#;9;?W \\ De&p@0&#Q*W \\ plot@&,W \\ title@problema *#; @cW \\ &label@Eje de las NW \\ label@Eje de las [W \\ gte&t@e&p@0&Q&*W
<;
Ejercicio numero *# \\ &D?9?#;9SW \\ ;D@@&0;#Q@&0*#Q@&0>#Q@&0OF@@0;#Q@0*#Q@0>#Q@0OW \\ *D@@&0*#Q@&0#Q@&0>#Q@&0OF@@;0*#Q@;0#Q@;0>#Q@;0OW \\ plot@&,;,&,*W \\ title@3roblema *#W \\ &label@AbscisasW \\ label@GrdenadasW \\ gte&t@@&0;@&0*@&0>@&0OF>W \\ gte&t@@&0*@&0@&0>@&0OF*>W
<*
Ejercicio numero # \\ &D0;9?#;9;W \\ subplot@*,*,;W \\ Dcos@acos@&W \\ plot@&,W \\ title@3roblema *#> @mD;W \\ &label@Eje NW \\ label@Eje [W \\ subplot@*,*,*W \\ Dcos@*#Qacos@&W \\ plot@&,W \\ title@3roblema *#> @mD*W \\ &label@Eje NW \\ label@Eje [W \\ subplot@*,*,W \\ Dcos@#Qacos@&W \\ plot@&,W \\ title@3roblema *#> @mDW \\ &label@Eje NW \\ label@Eje [W \\ subplot@*,*,>W \\ Dcos@>#Qacos@&W \\ plot@&,W \\ title@3roblema *#> @mD>W \\ &label@Eje NW \\ label@Eje [W <
Ejercicio n-mero ># \\ tD?9?#;9>#QpiW \\ &Dsin@0tKtW \\ D;0cos@0tW \\ plot@&,W \\ title@3roblema *#SW \\ &label@AbscisasW \\ label@GrdenadasW \\ gte&t@&Dsin@0tKt, D;0cos@0tW
<>
Ejercicio O# &D?9?#?;9OW C; D ;??Q&W C* D =QQ&W C D =QQ& K ;??Q&W C> D K F& plot@C;,rW 'old onW plot@C*,bW 'old onW plot@C,)W 'old onW plot@C>,cW 'old onW grid onW 'old offW plot@diff@C;,&W grid onW
t D ?9?#;9*?W & D O Q cos @ t K piF* W D ;? Q cos @ t W plot @&, W
&; D 0O9?#;9*#=W &* D #;9?#;9OW cte D W f; D @&;#* 0 =#F@&; 0 W f* D @&*#* 0 =#F@&* 0 W f D cteKW plot @&;,f;,&*,f*,cte,f,oW title @3ractica ; 0 grafica bW &label @alores de &W label @alores de W & D sm @&W D ;W f D @& 0 *#F@&* 0 >W limit @f,&,0* e"plot @f, Y0V, 0*#;ZW 'old onW e"plot @f, Y0;#=, ;#=ZW 'old onW plot @ *, double @limit @f,&,*,roW e"plot @f, Y*#;, >ZW a&is @Y0V > 0O OZW
sms & C; D ;??Q&W C* D =Q&Q&W e"plot@C;W a&is@Y? O ? S??ZW pauseW e"plot@C*W a&is@Y? O ? S??ZW pauseW e"plot@C;KC*W a&is@Y? O ? S??ZW pauseW e"plot@C;W a&is@Y? O ? S??ZW 'old onW e"plot@C;KC*W a&is@Y? O ? S??ZW grid onW pauseW
e"plot@diff@C;,&W a&is@Y? O ? S??ZW 'old onW Xgrid onWX sms & " " D &*K@K;*0> e"plot@" a&is square grid on 2 x2+( y+1) 4=0
6
4
2
y0
2
4
6 6
4
2
0 x
2
4
6
sms & " " D &*K@K*0;S e"plot@",Y0< < 0<
x2y21=0 6
4
2
y0
2
4
6 6
4
2
0 x
2
4
6
sms &W s D @>Q& K SF@&* K Q& K VW int @s e"plot @s pauseW e"plot @int@s sms & " " D sqrt@@&K** K @0* K sqrt@@&0** K @K* 0 ;? scaleD?W
e"plot@",Y0< < 0<
'old on line@Y* ?Z,Y0 ?Z 'old on line@Y;#O ?Z,Y# ?Z 'old on line@Y0* ;#OZ,Y #Z,Color,m 'old on line@Y* ;#OZ,Y0 #Z,Color,m 'old on plot@0*,,)# 'old on plot@?,?,b# 'old on plot@*,0,)# 'old on plot@;#O,#,r# 'old on Xqui!er@?,?,0*,,scale,r X'old on Xqui!er@?,?,*,0,scale,r X'old on 2 2 1/ 2 ( x +4x+13+y 6y ) +. . . 10=0
8 6 4 2 y0
2 4 6 8 8
6
4
2
0 x
2
4
6
8
sms &W f D &@F* g D Q& 0 >
<=
e"plot@f 'old on e"plot@g grid on pause a&is @Y0> S 0*? ;OZ pause a&is @Y0* O 0;O ;*Z pause a&is @Y? O 0O ;?Z pause a&is @Y* O ? ;?Z pause a&is @Y O > ;?Z pause a&is @Y O S ;?Z pause a&is @Y#O >#O V =Z
Polinomios. .n polinomio es una ecuación de la forma 6 @ xA
= an x n + an−; x n−; + ### + a* x * + a; x + a?
3or ejemplo el polinomio x > − ;* x + ? x * + *Ox + ;;S es introducido como p = Y; − ;* ? *O ;;SZ p
= ;
− ;*
?
*O ;;S
aíces. 3ara encontrar las ra%ces de un polinomio, esto es, los !alores para los cuales el polinomio es cero, para ello se utili"a la función roots r D roots@p rD ;;#V>V =?
*#V?*< 0;#**O; K ;#>SV*i 0;#**O; 0 ;#>SV*i 3olinomios son !ectores fila 1a%ces son !ectores columna +adas las ra%ces de un polinomio es posible construir el polinomio asociado, para ello utili"amos el comando pol pp D pol @r pp D ;
0;*
0*#?=e0?;> *O ;;S
pp @abs@ppR;e0;* D ? X cambia el peque/o elemento que sea cero pp D ;
0;*
?
*O
;;S
Con el comando con! se reali"a la multiplicación de dos polinomios, por ejemplo sea a@ xA = x + * x * + x + > b@ xA = x + > x * + = x + ;S 9 a D Y; * >ZW b D Y; > = ;SZW c D con!@a, b cD ; S *? O? VO <> S> Este resultado es
c@ xA
= x S + S x O + *? x > + O? x + VO x * + <> x + S> #
Suma de polinomios # $i ambos polinomios son del mismo orden dDaKb dD *
S
Lo cual es
;*
*?
d @ xA
= * x + S x * + ;* x + *?
Cuando son de diferente orden, el polinomio de orden inferior debe ser puesto del mismo orden con los coeficientes respecti!o cero de tal forma que sea del mismo orden que el polinomio de orden superior# e D c K Y? ?
? dZ =;
eD ;
S
*?
O*
4ue es el polinomio
<;
e@ xA
=S
<>
= x S + S x O + *? x > + O* x + <; x * + =S x + <> #
Con la función M0file la adición es automática sin importar el orden de los polinomios9 function pDmmpadd@a,b XMM3A++ Adición de polinomios X MM3A++ @A, B suma los polinomios A B# if nargin R* error @]7o 'a bastantes argumentos de entrada#^ end aDa@9#^ W Xasegura que las entrada del polinomio se un !ector fila bDb@9#^W naDlengt'@aW Xencuentra la longitud de a b nbDlengt'@bW pDY"eros@;,nb0naZKY"eros@;,na0nb bZW Xa/ade ceros como sea necesario fD mmpadd@c,d fD ; S *? O* <; =S <> g D mmpadd@c,0d gD ; S *? >< S= V* >> 4ue es el polinomio g @ xA = x S + S x O + *? x > + >< x + S= x * + V*x + >> g#
$i'isión de polinomios # Esta operación se reali"a con el comando decon!, Yq, rZ D decon!@c, b qD ;
*
>
?
?
?
?
rD ?
?
?
Este resultado nos dice que b es di!idido entre c dando el polinomio cociente q el resto r f D Y; S *? O* <; =S <>Z Yq, rZ D decon!@f, b =*
qD ;
*
S
?
?
?
?
rD En este caso
8 @ xA
0*
0S
0;*
= x + * x * + x + S el resto es
r @ xA = −* x * − S x − ;* #
$eri'adas e integrales # Con el comando polder diferenciamos el polinomio dado# g Xllamando al polinomio gD ; S *? >< S= V* 'Dpolder@g 'D S ?
;>>
;<
>>
V*
$imilarmente la integral de un polinomio se obtiene con el comando polint# polint@',>> Xregresa la función g desde 'Dpolder@g ansD ; S *? >< S= V* > Con el comando po!al desarrollamos la e!aluación del polinomio para alg-n !alor de pDY; > 0V 0;?ZW Xel polinomio &Dlinspace@0;,W Xpuntos de e!aluación !Dpol!al@p,&W Xe!al-a el polinomio p en los puntos & plot @&,! title@]5igura ;9 &@K>&@*0V&0;?^
Polinomios racionales. Las ra"ones de polinomios se pueden manipular como9 n D Y; 0;? ;??Z X como numerador nD ; 0;? ;?? dD Y;
;?
;?? ?Z Xcomo denominador
"D roots@n Xceros de n@&Fd@& "D O K <#SS?;i =
O
0<#SS?;i
p D roots@d
Xlos polos de n@&Fd@&
p D ? 0O K <#SS?;i 0O 0 <#SS?;i La deri!ada de esta función racional con respecto a & se encuentra usando el comando polder9 Yndd, ddZ D polder@n,d nd D 0;
*?
0;??
0*???
dd D column ; t'roug' S ; *? ?? *???
0;?????
;????
column V ? Aqu% nd dd son las deri!adas de los respecti!os numeradores denominadores# Gtra com-n operación es encontrar la fracción parcial de la e&pansión de los polinomios racional, Yr, p, )Z D residue@n ,d rD =#V=>Oe0;V K ;#;O>Vi =#V=O>e0;V 0 ;#;O>Vi ; p D 0O K <#SS?i 0O 0 <#SS?i ? )D YZ En este caso la función residuo regresa el residuo o fracción parcial r, sus polos asociados p, el termino polinómico directo )# +ebido a que el numerador es de segundo orden es menor que el denominador, no 'a término directo# 3ara este ejemplo la e&pansión de la fracción parcial del polinomio racional es =>
n@ xA d @ xA
=
;#;O>Vi x + O − <#SS?i
+
− ;#;O>Vi ; + x + O + <#SS?i x
+ada esta información el polinomio racional original se encuentra usando residue otra !e"9 Ynn, ddZ D residue @r, p, ) nn D ;
0;?
;
;?
;??
dd D ;??
?
En este caso, la función residue desarrolla dos operaciones que son in!ersas una de otra# con! decon! pol polder polfit pol!al pol!alm residue roots
3olinomios Multiplicación polinomial +i!isión polinomial Construir un polinomio con ra%ces espec%ficas +iferenciación polinomial 5ijar un polinomio a datos E!aluar un polinomio E!aluar un polinomio con argumento matricial 5racción residual 1a%ces de un polinomio
!ncontrando la me;or cur'a. 3ara muc'as aplicaciones en ingenier%a se necesita modelar las relaciones entre conjunto de !ariables# .n método de modelar la relación entre !ariables se llama an8lisis de regresión. .n análisis de regresión es un conjunto de técnicas, gráficas o anal%ticas, para tratar de encontrar la relación entre una !ariable respuesta @obser!ada o medida sujeta a errores que deben ser eliminados, -, una serie de !ariables independientes, N ;, N*, ####, Nn, llamadas !ariables regresoras @asignadas# En Matlab la función polfit encuentra la cur!a por m%nimos cuadrados que mejor se apro&ima a un conjunto de puntos# 3ara ilustrar esto resol!amos el polinomio, usando el siguiente conjunto de puntos9 x = Y?
#; # *
#
#>
#O
#S
#V
#<
#= ;Z W
=O
! = Y −#>>V
;#=V<
#*<
S #;S
V#?<
V#>
V #SS
=#OS
=#><
=#?
;; #*Z
W 3ara usar le comando polfit, debemos fijar el orden del polinomio que deseemos# $e seleccionamos n D ;, estar%amos eligiendo una l%nea recta, esto es llamado una regresión lineal# +e otra forma si elegimos n D *, se encontrará un polinomio cuadrático# nD* p D polfit@&,,n pD 0=#<;?< *?#;*=
0?#?;V
La salida de polfit es un !ector fila de los coeficientes del polinomio# Aqu% la solución es ! @ xA = −=#<;?< x * + *?#;*= x − ?#?;V # 3ara comparar la cur!a solución a los datos dados, 'agamos la gráfica9 &iDlinspace@?,;,;??W iDpol!al@p,&iW plot@&,,^0?^,&i,i,^v] &label@]&^&, label@]Df@&^ title@]5igura *9 Cur!a de segundo orden^ Esta gráfica contiene los datos originales & e , marcando los puntos con ]o^ conectándolos con una l%nea recta# En adición su gráfica e!al-a el polinomio de los datos &i e i usando l%nea ]00^# La elección del orden del polinomio es arbitrario# ppDpolfit@&,,;?W pp#^ X!isuali"a los coeficientes del polinomio como una columna ansD 0>#S>SeK??O *#*=SO*K??S 0>##*=>O#== 0?#>>V La gráfica respecti!a es9 ` ;?Dpol!al@pp,&iW Xe!al-a un polinomio de orden ;? plot @&,,^o^,si,i,^v],&i,;? Xgrafica de los datos =S
&label@]&, label@]Df@&^ title @5igura ;9 cur!as polinómicas de segundo décimo orden^ +atos interpolados +atos gridding 6nterpolación ;0+ 6nterpolación *0+ 6nterpolación ;0+ usando el método 55T
griddata interp; interp* interpft
Integración. En muc'as situaciones es necesario conocer el área bajo una cur!a D s@&, S @ x A =
x
∫ s@ xAdx + c x;
La función 'umps@& e!al-a la función 5-mps @ xA
=
; @ x − ?#A
*
+ ?#?;
+
; @ x − ?#=A *
+ ?#?>
−S
100
80
60 ) x ( s p 4 0 m u h
20
0
20 0
0. 2
0. 4
0. 6
0. 8
1 x
1. 2
1. 4
1. 6
1. 8
2
Esta función tiene ceros en &D0?#* & D ;## La función f"ero proporciona una forma de encontrar la mejor apro&imación a estos ceros# format long X !isuali"a maor precisión & D f"ero @]'umps^,;#
=V
&D ;#*==O>=S<*O<><* 'umps@&
X wque tan cercano es a cero`
ans D ? Y&, !alueZ D f"ero@]'umps^,0?#* &D 0?#;;S;;==S; !alueD <#<<;V<>;=V??;*O*e0?;S Matlab proporciona tres comandos para calcular la integral de una función descrita por los arc'i!os M o funciones en l%nea9 quad, quad;, dblquad# 3ara ilustrar esto, considere la función 'umps@& como se muestra en la figura# La suma de las áreas trape"oidales que mejor se apro&iman a la integral# Claramente como el n-mero de trapecios se incrementa, mejor será el área# .sando !alores tabulados desde la función 'umps@&, el comando de Matlab trap" apro&ima el área usando la apro&imación trape"oidalW &D0;9 #;V9*W D'umps@&W areaDtrap"@&, area D *O#=;V Esto probablemente no es mu e&acto# $in embargo, cuando se usa una mejor discreti"ación, se obtiene una mejor apro&imación, por ejemplo &Dlinspace@0;,*,;??W D'umps@&W format long area D trap"@&,
Xse requiere un espaciamiento lineal
areaD *S#>>V;;=O*>O=S Algunas !eces es de interés obtener la integral como una función de &, tal como, x
∫ f @ x Adx x;
=<
donde &; es un l%mite inferior conocido# La integral definida desde & ; a & se encuentra e!aluando la función en Basándose en la regla trape"oidal, tabulando !alores de la integral acumulati!a usando la función cumtrap", por ejemplo, &D linspace@0;,*,;??W D'umps@&W "Dcumtrap"@&,W si"e@" ansD ; ;?? plot@&,,&," grid on &label@]& label@]'umps@& e integral de 'umps@&^ title@]5igura ;9 6ntegral acumulati!a de 'umps@&^
$i2erenciación. La diferencial describe la pendiente de una función en un punto dado# $i tenemos un conjunto datos, es primero necesario encontrar la mejor cur!a que pase por esos puntos enseguida encontrar la diferencial &DY? #; #* # #> #O #S #V #< #= ;ZW DY0#>>V ;#=V< #*< S#;S V#?< V#> V#SS =#OS nD*W Xorden del polinomio pD polfit@&,,n Xencuentra los coeficientes del polinomio pD 0=#<;?< *?#;*= 0?#?;V &iDlinspace@?,;,;??W iDpol!al@p,&iW Xe!alua el polinomio plot@&,,^0o^,&i,i,^0 0] &label@]&^, label@]Df@&^ title@]5igura*9 cur!a polinomica de segundo orden^
=#><
=#?
;;#*ZW
La deri!ada en este caso se encuentra usando la función deri!ada del polinomio polder9 pdDpolder@p pdD 0;=#S*;V *?#;*= La d! dx
deri!ada
de
! @ x A = −=#<;?< x * + *?#;*= x − ?#?;V
es
= −;=#S*;V x + *?#;*= # +ebido a que la deri!ada de un polinomio es otro
polinomio de un orden menor, la deri!ada también puede ser e!aluada en cualquier punto#
==
Matlab también proporciona un comando para calcular la deri!ada, diff, definiendo la deri!ada como d! dx
= lim
∆ x →?
f ( x + ∆ x ) − f @ xA
∆ x
dpDpol!al@dp,&W Xderi!ada del polinomio para comparación dDdiff@#Fdiff@&W Xcalcula la diferencia usa la di!isión entre arreglos &dD&@;9end0;W plot@&d,d,&,dp,^9^ label@]dFd&^, &label@]&^& title@]5igura9 Apro&imación de la deri!ada por diferencias 'acia adelante +entro del módulo @toolbox de matemática simbólica, se utili"a el programa de cálculo simbólico MA3LE# Con estas 'erramientas, se puede trabajar con funciones,
Comandos para deri'adas e integrales= i. diff(f)09iferencia ! aproximación de derivada/. 9evelve la derivada de la expresión f respecto a la variable independiente por omisión. ii. diff(t,’t’)0 9evelve la derivada de la expresión f respecto a la variable t. iii. diff(f,n)0 9evelve la n-:sima derivada de la expresión f respecto a la variable independiente por omisión. iv. int(f)0integral/. 9evelve la integral de la expresión f respecto a la variable independiente por omisión. v. int(f,’t’)0 9evelve la integral de la expresión f respecto a la variable t. vi. int(f,a,b): 9evelve la integral de la expresión f respecto a la variable independiente por omisión evalada en el intervalo ;a, b<, donde a ! b son constantes. vii. int(f,’t’,a,b): 9evelve la integral de la expresión f respecto a la variable t evalada en el intervalo ;a, b<. viii. int(f,’m’,’n’): 9evelve la integral de la expresión f respecto a la variable independiente por omisión evalada en e l intervalo ;m, n<, donde m ! n son expresiones simbólicas. ix. simplify(f)0simplificación simbólica/. Simplifica f. x. pretty(f)0 impresión ordenada de la expresión simbólica/. mprime la fnción f en na forma ordenada 8e sea f7cil de entender. xi. limit . Saca el l>mite de na fnción xii. factor 0 ?actoriza na expresión 1@emplos0
\\fDsin@& X 5unción sin@& definida mediante una cadena de caracteres fD sin@& calcular deri!adas, \\diff@f ;??
ans D cos@& \\diff@f,* X +eri!ada segunda de f ans D 0sin@& \\ fD&O0SQ&K&*0*W \\ diff @f ans D OQ&>0;
1esultado
o encontrar primiti!as# \\int@log@& X 3rimiti!a de la función logaritmo ans D &Qlog@&0& \\diff@&Qlog@&0& X Comprobación ans D log@&
Calcular la deri!ada de la siguiente función graficar la función obtenida por medio de matlab# x * − ; ! = log;? x 9esarrollo en matlab0
Xderi!ada de una función f@& sms &W Xdeclaración de la !ariable independiente fDlog@@&*0;F&W Xdeclaración de la función deri!aDdiff@f Xderi!ada de f la !ariable es asignada a la !ariable deri!a dDsimplif@deri!a Xse simplifica deri!a a la m%nima e&presión prett @d Ximprime la función de una manera fácil de obser!ar e"plot@fW Xgrafica la función f en dos dimensiones a&is@Y0; O 0; *Z Xla grafica la muestra con los limites de 0; a O en & de X0; a * en ! Al compilar los datos en el programa se obtiene como resltado0
\\ deri!a D
;?;
@*0@&*0;F&*F@&*0;Q& dD @&*K;F&F@&*0; x * + ; x ( x * − ;)
Este código generara una figura en la cual se muestra la grafica de la función f@& que se integro, la solución a la integral de esta función se despliega en la !entana de comandos de matlab# A continación se mestra la grafica obtenida al compilar los datos en el programa0
Se pede apreciar en la parte sperior de la grafica la fnción fx/ denotada en el programa. ambi:n nótese los rangos de los e@es los cales se insertaron con rangos espec>ficos !a mencionados.
Calcule por medio de matlab la integral de la siguiente función9
;?*
e − x
∫ ; + e
− x
dx
3rocedimiento9 Se introdcen los datos en matlab0
Xintegral de una función f@& sms &W Xdeclaración de las !ariables independientes fDe&p@0&F@;Ke&p@0&W Xfunción f@& iDsimplif@int@fW Xsimplificacion de la función prett @i figure Xgeneracion de la !entana de la función e"plot@fW Xtra"ado de la grafica de la función grid onW X'abilitacion de la cuadricula a&is@Y0>#O >#O ? ;Z Xejes de !isuali"ación de 0>#O a >#O en &, Xde ? a ; en Compilando0
\\ 0log@; K e&p@0& Grafica0
Integración trape4oidal. La regla trape"oidal es un método de integración numérica que se basa en la integración de la fórmula de interpolación lineal# $upóngamos que se e!al-a = =
b
∫ f @ xAdx a
Apro&imamos f@& mediante una interpolación lineal
;?
g @ xA
=
b − x b−a
f ; +
x − a b−a
f *
donde
= f @aA f * = f @bA f ;
Entonces, = =
b
b
a
a
5
∫ f @ xAdx ≈ ∫ f @ xAdx = * ( f + f ) ;
*
con 5 =b−a
La ecuación de la integral trape"oidla, puede reescribirse como = =
5
b
∫ f @ xAdx = * ( f + f ) + 1 ;
a
*
donde E representa el error por truncado# La regla trape"oidal se ilustra gráficamente en la figura de abajo#
El área bajo la interpolación lineal g@&, es igual a la integral calculada por la regla trape"oidal, mientras que el área bajo D f@& es el !alor e&acto# 3or tanto, el error E es igual al área entre g@& f@&, es apro&imadamente 1 ≈ −
; ;*
5 f ii
o en forma equi!alente 1 = −
@b − aA ;*n
*
f ii
;?>
donde f es /a ,edoa de f@& em aR&Rb# La ecuación anterior indica que el error es in!ersamente propocioan a n *# ii
La ecuación trape"oidal se puede e&tender a m-ltiples inter!alo# $i la función integrada se representa mediante nK; puntos de datos con puntos de abscisas igualmente espaciados, aplicando repetidamente a cada inter!alo la ecuación, tenemos
= = f∫ x A@ dx = 1 + a * f* + # f+ * f+ * n n+; b
f5 ;
con 5=
b−a n
xi = a + @i − ;A 5 f i = f @ xi A i = ;,*,###, n + ;
$upongamos que f es un arreglo de f i para puntos de abscisas equiespaciadas con un tama/o de inter!alo de '# La regla trape"oidal e&tendida puede escribirse como = = 5 Q @ s-m@ f A − ?#O Q @ f @;A + f @lengt5 @ f AAA
.na forma más cómosa de aplicar la regla trape"oidal es utili"ar trap"@[, trap"@N,[9 D trap"@[ D trap"@N,[ ;?O
+escripción D trap"@[ calcula una apro&imación a la integral de [ !%a el método trape"oidal @con espaciamiento unitario# 3ara calcular la integral para otro espaciamiento, multiplique por el incremento en el espaciamiento# $i [ es un !ector, trap"@[ es la integral de [# $i [ es una matri", trap"@[ es un !ector fila con la integral sobre cada columna# D trap"@N,[ calcula la integral de [ con respecto a N usando la integral trape"oidal# $e puede utili"ar un arc'i!o_M de función definido por el usuario como [# Eje# .n automó!il de masa M D *?? )g !iaja a una !elocidad de ? mFs# La transmisión se pone en neutral en t D ? s# $uponga que la ecuación de la desaceleración después de t D ? es *???-
d-
= −<#;- * − ;*??
dx
+onde u es la !elocidad & es la distancia lineal recorrida por el automó!il desde el lugar en el que se encontraba en t D ?# El primer término de la i"quierda es la fuer"a de aceleración# El primer término de la derec'a es la resistencia aerodinámica, el segundo la resistencia al rodado# Calcule la distancia que recorre el automó!il antes de que la !elocidad se redu"ca a ;O mFs# 6ntegre
?
∫
;O
*???-d-
− <#;- * − ;*??
#
$i tomamos ;O inter!alos @o ;S puntos de datos u i recibe inicialmente los !alores -i = ;O + @i − ;A∆-i ,
donde ∆-i =
? − ;O ;O
i = ;,*,###,;S
= ; # $i definimos f i =
*??-i <#;-i* + ;*??
[ aplicando la integración trape"oidal, ;S x = ∆- ∑ f i − ?#O( f ; + f ;S ) i =;
clear n_puntosD;SW iD;9n_puntosW 'D@?0;OF@n_puntos0;W uD;OK@i0;Q'W fD*???Qu#F@<#;Qu#*K;*??W
;?S
&Dtrap"@u,f &D ;*V#O?>? Comprobando9 sms uW fD*???Qu#F@<#;Qu#*K;*??W int@f,u,;O,? iDsimplif@int@fW Xsimplificacion de la función prett @i ans D *????F<;Qlog@*K;????F<;Qlog@*<0;????F<;Qlog@;0;????F<;Qlog@; \\ *????F<;Qlog@*K;????F<;Qlog@*<0;????F<;Qlog@;0;????F<;Qlog@; ;???? * 00000 log@*V u K >??? <; ans D ;*V#O?S< Eje# $abiendo que la respuesta e&acta es 6 D>#??S==># Analice el efecto del n-mero de inter!alos, n, sobre el error de la regla trape"oidal aplicada a la siguiente integral = =
*
∫ ?
; + e x dx
clearW 6e&actaD>#??S==>W aD?W bD*W fprintf@n 1egla Trape"oidal E&tendidanW fprintf@n n 6 ErrornW nD;W for )D;9S nD*QnW 'D@b0aFnW iD;9nK;W &DaK@i0;Q'W fDsqrt@;Ke&p@&W 6Dtrap"@&,fW ErrorD6e&acta06W fprintf@n X#?f X;?#Of X;?#Ofn,### n, 6, ErrorW ;?V
end 1egla Trape"oidal E&tendida n
6
Error
*
>#?<O< 0?#?VSO=
>
>#?*S;= 0?#?;=;=
<
>#?;; 0?#??>
;S
>#??<;= 0?#??;*?
*
>#??V*= 0?#????
S> \\
>#??V?V 0?#????<
El ejemplo anterior indica que los errores de la regla trape"oidal e&tendida se reducen apro&imadamente la cuarta parte cada !e" que se duplica el n-mero de inter!alos# La integración puede !erificarse con la
1 =
−
@b − aA ;*n
*
f ii#
Conociendo este
comportamiento de los errores podemos eliminar al menos una buena parte de los mismos# $i denotamos del resultado de la regla trape"oidal e&tendida con n inter!alos con 6n aquél con *n inter!alo con 6 *n, entonces = n − = * n 6 debe ser apro&imadamente igual a tres !eces el error de 6 *n# $i restamos el error as% estimado, el resultado deberá 'acerse muc'o más e&acto# La fórmula basada en este principio se llama integración de 1omberg se escribe como = = = * n
;
− ( = n − = *n )
3or otro lado, este resultado es idéntico a la regla ;F de $impson empleando *n inter!alos#
egla de Simpson. Al e!aluar la integral de f@&, podemos considerar un polinomio de interpolación a+b cuadrático @de segundo orden con tres puntos de datros en & ; D a, x* = x = b # *
+enotamos los !alores funcionales en los puntos de datos con f ;, f * f # La regla ;F de $impson se deduce sustituendo este polinomio cuadrático por f@& en la integral9 = =
5
( f ; + > f * + f )
donde 5
=
b−a
*
;?<
$i incluimos el término del error, la ecuación puede escribirse9 = =
5
( f ; + > f * + f ) + 1
donde E es el término del error dado por 1 =
5O =?
f iiii
Lo que indica que el error es proporcional a ' O# El error desaparece si f@& es un polinomio de orden o menor# La regla de $impson e&tendida es una aplicación repetida a un dominio di!idido en un n-mero par de inter!alos# $i denotamos el n-mero total de inter!alos con n @par, la regla ;F de $impson e&tendida se es9 = =
b
∫ f @ xAdx a
5
≈ ( f ; + > f * + * f + > f > + ### + * f n −; + > f n + f n +; ) + 1
donde f i = f ( a + @i − ;A5)
con 5
=
b−a n
El término del error está dado por 1 = −@b − a A
donde
f
es la media de
iiii
f
Eje# E!alue la integral D *, >, < ;S#
5> ;
f iiii
en aR&Rb#
iiii
= =
*
∫ ?
; + e x dx utili"ando la regla ;F de $impson con n
clearW 6e&actaD>#??S==>W aD?W bD*W fprintf@n 1egla ;F de $impsonnW fprintf@n n 6 ErrornW nD;W for )D;9> nD*QnW 'D@b0aFnW iD;9nK;W &DaK@i0;Q'W fDsqrt@;Ke&p@&W ;?=
6D@'FQ@f@;K>Qsum@f@*9*9nKf@nK;W if n\*, 6D6K@'FQ*Qsum@f@9*9nW end ErrorD6e&acta06W fprintf@n X#?f X;?#Of X;?#Ofn,### n, 6, ErrorW end 1egla ;F de $impson n
6
Error
*
>#??V=; 0?#???=*
>
>#??V?O 0?#????S
<
>#??V?? 0?#?????
;S \\
>#??S== 0?#?????
La regla F< de $impson se basa en el polinomio de 6nterpolación de tercer orden está dada por9 = =
donde
5
=
b−a
5 <
( f ; + f * + f + f > ) + 1
, f i = f @a + @i − ;A5A E representa el error# 1 = −
• • • •
5O
f iiii
qDquad@fun,a,b qDquad@fun,a,b,tol qDquad@fun,a,b,tol,trace Yq,fcntZ D quadl@fun,a,b,###
La función quad describe un método numérico usado para encontrar el área de una función, apro&imando la integral de la función desde a a b con un error de ;&;? 0S usando la cuadratura de $impson# fun es una función que puede ser manejada por una función de arc'i!o M0file o una función anon%ma# La función D fun@& deberá aceptar como argumento un !ector & regresar un !ector resultado , la integral se e!al-a en cada elemento de 3ara construir una función que maneje una función anónima# El ejemplo de abajo crea una función anónima que encuentra el cuadrado de un n-mero# Cuando se llama a esta función, MATLAB asigna el !alor que pasara a la !ariable &, entonces usa & en la ecuación9
;;?
sqr D @& *W El operador construe una función manejable para esta función, asigna el manejo a la !ariable de salida sqr# Como con cualquier función manejable, debe ejecutar la función asociada especificando la !ariable que contiene el manejo, seguida por una coma0separa el argumento listad en paréntesis# La sinta&is es f'andle@arg;, arg*, ###, arg7 3ara ejecutar la función sqr definida arriba, escriba a D sqr@O aD *O +ebido a que sqr es una función manejable, puede pasar a este como un argumento a otras funciones# quadl 7umericall e!aluate integral, adapti!e Lobatto quadrature $nta&q D quadl@fun,a,b q D quadl@fun,a,b,tol q D quadl@fun,a,b,tol,trace Yq,fcntZ D quadl@fun,a,b,### +escriptionq D quadl@fun,a,b appro&imates t'e integral of function fun from a to b, to 8it'in an error of ;?0S using recursi!e adapti!e Lobatto quadrature# fun is a function 'andle for eit'er an M0file function or an anonmous function# fun accepts a !ector & and returns a !ector , t'e function fun e!aluated at eac' element of 3arameteri"ing 5unctions Called b 5unction 5unctions, in t'e online MATLAB documentation, e&plains 'o8 to pro!ide addition parameters to t'e function fun, if necessar# q D quadl@fun,a,b,tol uses an absolute error tolerance of tol instead of t'e default, 8'ic' is ;#?e0S# Larger !alues of tol result in fe8er function e!aluations and faster computation, but less accurate results# quadl@fun,a,b,tol,trace 8it' non0"ero trace s'o8s t'e !alues of Yfcnt a b0a qZ during t'e recursion# Yq,fcntZ D quadl@### returns t'e number of function e!aluations# .se arra operators #Q, #F and # in t'e definition of fun so t'at it can be e!aluated 8it' a !ector argument# T'e function quad ma be more efficient 8it' lo8 accuracies or nonsmoot' integrands# E&les3ass M0file function 'andle mfun to quadl9 4 D quadl@mfun,?,*W 8'ere t'e M0file mfun#m is function D mfun@& D ;#F@0*Q&0OW 3ass anonmous function 'andle 5 to quadl9 5 D @& ;#F@0*Q&0OW 4 D quadl@5,?,*W Algorit'mquadl implements a 'ig' order met'od using an adapti!e :aussFLobatto qudrature rule# +iagnosticsquadl ma issue one of t'e follo8ing 8arnings9 Minimum step si"e reac'ed indicates t'at t'e recursi!e inter!al subdi!ision 'as produced a subinter!al 8'ose lengt' is on t'e order of roundoff error in t'e lengt' of t'e original ;;;
inter!al# A nonintegrable singularit is possible# Ma&imum function count e&ceeded indicates t'at t'e integrand 'as been e!aluated more t'an ;?,??? times# A nonintegrable singularit is li)el# 6nfinite or 7ot0a07umber function !alue encountered indicates a floating point o!erflo8 or di!ision b "ero during t'e e!aluation of t'e integrand in t'e interior of t'e inter!al fun D @u *???Qu#F@<#;Qu#*K;*??W areaDquadl@fun, ;O,?,#???; area D ;*V#O?S< sms &W s D @cos@&@;F*W int @s e"plot @s 'old on int@s sms r &W s D sqrt @r* 0 &*W int @s, 0r, r e"plot @int @s, 0r, r sms W s D @* K *QF@ K Q* K >@;FW int @s, ?, ; e"plot @s pauseW e"plot @int @s, ?, ; sms tW s D tQsin@t*W int @s e"plot @s pauseW e"plot @int @s sms rW s D @@r@;F K *>Fr@*FW int @s e"plot @s pauseW e"plot @int @s ;;*
sms &W s D ; 0 abs@&W int @s, 0;, ; e"plot @s pauseW e"plot @int @s, 0;, ; sms &W s D sin @*Q&W int @s, ?, piF* e"plot @s pauseW e"plot @int @s, ?, piF* sms &W s; D SQ& 0 >Q&* K bQ& 0 OW s* D sin@&W s D sqrt@&W int @s; int @s* int @s int @s, a, b int @s, ?, *O numeric @ int@s, ?, *O int @s, ?#O, ?#S numeric @ int@s, ?#O, ?#S e"plot @s* pause e"plot @int@s* fmin fmins fplot f"ero ode* ode>O quad quad< trap"
5unción de funciones M%nimo de una función de una !ariable M%nimo de una función de !arias !ariables :ráfica de funciones Encuentra los ceros de una función de una !ariable 1esuel!e la ecuación diferencial, método inferior 1esuel!e la ecuación diferencial método superior E!al-a numéricamente la integral, método inferior E!al-a numéricamente la integral, método superior 6ntegración numérica usando el método trape"oidal
Introducción de 2unciones e6ternas
;;
3ara introducir la función camp)6*K1D))6.E*G@.1* @ 1D))6.*G@.N*O abrimos un arc'i!o nue!o que llamamos camp.m escribimos las siguientes instrucciones9 function Dcamp@& D;#F@@&0?##*K?#?; K ;#F@@&0?#=#*K?#?>0SW
%ptimi4ación Matlab inclue las siguientes funciones9
2minbnd calcula el m%nimo de una función de una !ariable 2mins calcula el m%nimo de una función de !arias !ariables 24ero calcula los ceros de una función de una !ariable fminbnd Minimi"e a function of one !ariable on a fi&ed inter!al $nta&& D fminbnd@fun,&;,&* & D fminbnd@fun,&;,&*,options Y&,f!alZ D fminbnd@### Y&,f!al,e&itflagZ D fminbnd@### Y&,f!al,e&itflag,outputZ D fminbnd@### +escriptionfminbnd finds t'e minimum of a function of one !ariable 8it'in a fi&ed inter!al# & D fminbnd@fun,&;,&* returns a !alue & t'at is a local minimi"er of t'e function t'at is described in fun in t'e inter!al &; RD & RD &*# fun is a function 'andle for eit'er an M0file function or an anonmous function# 3or ejemplo el m%nimo de la función camp)6* entre ?#O ; se calcula por9 &mDfminbnd@camp,#O,; &m D ?#SV? El !alor de la función en dic'o punto es Dcamp@&m D ;;#*O*< La función camp tiene dos ceros, para calcular el cero pró&imo al punto &D? escribimos9 &";Df"ero@camp,? ;;>
&"; D 0?#;;S para apro&imar el área de la función camp)6* entre ? ; q D quad @camp,?,; qD *=#
C%"T%L $! FL&<% E&isten como en todos los lenguajes comandos para lle!ar el flujo del programa por diferentes caminos, matlab tiene dos comandos para formar la"os 2or - /ile> el condicional i2else, el ruptura de ciclo brea: W
!l ciclo 2or La forma general de un bucle 2or es for ! D e&presion #####sentencias end \\ for i D ;9m for j D ;9n A@i,j D ;F@iKj0;W uno por uno, a end end
Xdesde i D uno 'asta m X desde j D ; 'asta n Xformar los elementos de la matri" A@i, j Xpartir de los %ndices X termina el la"o interior X termina el la"o e&terior
3ara el ciclo for se dan dos recomendaciones, si se conoce el tama/o de las matrices que están in!olucradas dentro del ciclo, el tenerlas definidas antes de entra al la"o, 'ace más rápida la ejecución, [ si es posible reali"ar las operaciones con los ejemplo de manipulación de matrices o por renglones columnas, siempre es preferible a ejecutar el manejo de elemento por elemento en la"os for, por la !elocidad con que se reali"an las operaciones# Ejemplo# Matri4 de +andermonde. Consideremos el !ector tK1 1 E QR, queremos generar la matri" de andermonde, cuas columnas son las potencias de t9
;;O
AD ; 0; ? ? ; ; <; *V S*O ;*O
; 0; ? ? ; ; = *O O
; ; ; ; ;
amos a construirla de dos formas distintas tDY0; ? ; OZW nDlengt'@tW for jD;9n for iD;9n A@i,jDt@i@n0jW end end A Gtra forma distinta A@9,nDones@n,;W for jDn0;90;9; A@9,jDt#QA@9,jK;W end A
!l ciclo /ile El bucle /ile permite que una sentencia o grupo de sentencias sean ejecutadas un n-mero indefinido de !eces bajo el control de una condición lógica# La forma general de un bucle /ile es 8'ile e&presion ##### sentencias end EEM3LG9 A!eriguar cual es el menor entero cuo factorial consta de ;?? digitos# nD;W 8'ile prod@;9nR;#e;?? nDnK;W end n \\ E D "eros@si"e@AW
XE es una matri" con puros
unos del Xmismo tama/o que A \\ 5Deje@si"e@AW ;;S
\\) D ;W \\ 8'ile norm@EK50E,;\?
Xmientras lo que la regresa
la función X norm sea maor que cero, se ejecuta lo \\ EDEK5W \\ 5DAQ5F)W \\ ) D )K;W \\ end \\ 8'ile ;
Xsiguiente# Xsuma de matrices Xproducto de matrices Xtermina el cuerpo de 8'ile X es un la"o de duración
infinita, la Xmanera de romperlo es a tra!és del Xcomando brea)#
!l condicional i2else La sentencia i2 admite anidamientos elsei2 acaba con end# La forma general es9 if condicion ; ####@sentencias elseif condicion * ####@sentencias else ####@sentencias end 3ara salir de un bucle cualquiera, fundamentalmente /ile, se puede usar el comando brea: , que sale del la"o en que estaba# n D input@ntrada de n, negati!o quits#W dato de teclado if nRD?, bread) rompe el ciclo end 8'ile n \ ; if rem@n,* DD ? n D nF* else nDQnK; end end
X$e solicita una entrada de X si el dato fue negati!o se Xtermina el ciclo if Xiniciamos otro ciclo 8'ile Xel caso de que rem@n,*D D ? Xlos demás casos Xtermina el ciclo if Xtermina el ciclo 8'ile
;;V
El siguiente programa ilustra la funcion input para introducir datos por teclada, la sentencia brea: para salir del bucle
Problema cl8sico de Teoría de "meros 9 $e selecciona un entero positi!oW si es par, se di!ide por *, si es impar, se multiplica por se le suma ;# 1epetir el proceso 'asta que se con!ierta en ;# wEs posible que e&ista alg-n entero n para el cual este proceso no tenga fin` Escribir en un arc'i!o las instrucciones siguientes9 8'ile ; disp@El proceso se finali"a con un n-mero negati!o W nDinput@6ntroducir un entero positi!o \ W if nRD?, brea), end 8'ile n\; if rem@n,*DD? nDnF* else nDQnK; end end end Sentencia switch
1eali"a una función análoga a un conjunto i2 ... elsei2 concatenados# $u forma general es9 s8itc' s8itc'_e&presion case case_e⪯, bloque; casecase_e&pr*,case_e&pr,case_e&pr>,##### bloque* ot'er8ise, X opción por defecto# bloque end El resultado de s8itc'_e&presion debe ser un n-mero o una cadena de caracteres, se compara con case_e⪯ si coincide se ejecuta el bloque; de instrucciones# $i coincide con algunos de los !alores case_e&pr*, ###se ejecutan las instrucciones del bloque*# La opción por defecto, bloque, se ejecuta en el caso de no darse ninguno de los anteriores 3oner en un arc'i!o s/itc1.m las instruciones siguientes9
s/itc1.m s8itc' input_name case 0; ;;<
disp@menos unoW case ? disp@ceroW case ; disp@mas ; ot'er8ise disp@otro !alor end Ejecute alguna instrucción como la que sigue input_nameD?, s8itc';
M2iles. $on usados cuando es necesario una secuencia larga de comandos, que resuel!en o anali"an un problema espec%fico# Ha dos tipos de arc'i!os .m • •
arc5ivos de ordenes arc5ivos de fnción
Cuando un arc'i!o script @órdenes es in!ocado, Matlab simplemente ejecuta los comandos encontrados en el arc'i!o, en lugar de esperar por una entrada del teclado# Las declaraciones en un arc'i!o script operan globalmente sobre los datos espacio de trabajo# Los arc'i!os script son -tiles para reali"ar análisis, resol!er problemas, o 'acer dise/os que requieren tal cantidad de secuencias de comandos que son incómodos para 'acerlos interacti!amente# Ejemplo9 X .n arc'i!o m para calcular la serie de 5ibonnacci f D Y; ;Z 8'ile f@iKf@iK;R;?? f@iK*Df@iKf@iK; end plot@f son contenidos en un arc'i!o fibno#m# Tecleando la proposición fibno causará que Matlab ejecute los comandos, calculando los primeros ;??? n-meros de 5ibonnacci, gráficandolos# +espués de la ejecución del arc'i!o completo, las !ariables f e i permanecen en el espacio de trabajo#
Arci'os de 2unción ;;=
+ebe contener la palabra 2unction al principio de la primera l%nea# +ifiere de un arc'i!o de órdenes en que se le pueden pasar argmentos , las !ariables definidas manipuladas dentro del fic'ero son variables locales, de forma que al finali"ar la ejecución del arc'i!o, las !ariables desaparecen del espacio de trabajo, e&cepto si se definen las !ariables como globales, cosa que se desaconseja# Consideremos la función mean de la librer%a MATLAB, incluida en el arc'i!o mean.m function Dmean@& XMean !alor medio# 3ara !ectores Xmean@& regresa el !alor medio# 3ara matrices Xmean@& es un !ector renglon Xconteniendo los !alores promedio de cada columna Ym,nZDsi"e@&W if mDD; mDnW
Xmaneja un !ector renglon aislado
end Dsum@&Fm $i 4 es un !ector que contiene los O? primeros enteros, "D;9O?W El !alor medio de " se obtiene escribiendo mean@" 9 D *O#O??? ans D *O#O???
1epasemos en algunos detalles del arc'i!o mean.m
;*?
;#0 La primera l%nea declara el nombre de la función los argumentos de entrada salida# $in esta l%nea el arc'i!o ser%a un arc'i!o de órdenes en lugar de un arc'i!o función# *#0 El s%mbolo X indica que el resto de la l%nea es un comentario# #0 El primer bloque de l%neas de comentario aparecerán en pantalla si se solicita la auda9 elp mean # +e este modo se crea la auda on-line para los 2iceros .m> colocando te&to en una o más l%neas de comentario, empe"ando por la segunda l%nea del arc'i!o# El comando elp ignora l%neas de comentario que apare"can posteriormente, después de una sentencia ejecutable o después de una l%nea en blanco# >#0 La primera l%nea del 'elp, conocida como l%nea 31, es incluida a !eces en el arc'i!o contents.m, su mensaje es el que aparece cuando se solicita auda mediante el comando loo:2or. O#0 Las !ariables m,n e - son locales a mean> no e&isten en el espacio de trabajo después de finali"ada la ejecución de mean o, s% pre!iamente e&ist%an, no cambian# S#0 7o es necesario colocar los O? primeros enteros en una !ariable con el nombre 6# +e 'ec'o, los 'emos colocado en una !ariable 4# El !ector 4 que conten%a los enteros fue pasado a mean colocado en una !arible local 6# 5unción stat, que calcula también la des!iación estándar9 function Ymean, stde!ZDstat@& Ym,nZDsi"e@&W if mDD; mDnW
Xmaneja un !ector renglon aislado
end meanDsum@&FmW stde!Dsqrt@sum@*Fm0mean#*W stat ilustra que es possible regresar salidas con m-ltiples argumentos# .na función final que calcula el rango de una matri" utili"a argumentos de entrada9 function rDran)@&,tol Xrango de una matri" sDs!d@&W ;*;
if @narginDD; tolDma&@si"e@&Qs@;QepsW
Xmaneja un !ector renglon aislado
end rDsum@s\tolW
Algunas ideas tiles En general, si introducimos el nombre de cualquier cosa a MATLAB, por ejemplo cosa, MATLAB sigue los siguientes pasos9 ;#0 Mira si cosa es una !ariable# *#0 Mira si es una función de MATLAB# #0 Busca en el directorio si es un fic'ero .m >#0 Busca en los directorios especificados en el PAT3 de de MATLAB el fic'ero cosa.m
Funciones 5ue llaman a otras 2unciones Está permitido que en una función llame a otras funciones $e puede pasar nombres de funciones como argumento de una función, aunque re8iere cierto tratamiento con la fnción eval .
Ejemplo9 function 5Dafun@A,f X $i A es una @m,n0matri" f es el nombre de una función X UinternaU, o definida por el usuario, que opera sobre escalares, X entonces esta función de!uel!e una @m,n0matri" 5 con X 5@i,jDf@A@i,j# El nombre de la f debe estar entre comillas, X ejemplo, 5Dafun@A,cos carga 5@i,j con cos@A@i,j# Ym,nZDsi"e@AW for jD;9m for iD;9n 5@i,jDe'al@Yf,@A@i,jZW end end $i fDcos , 5@i,jDe'al@Yf,@A@i,jZW X equi!ale a 5@i,jDcos@A@i,j
ecursi'idad .na función MATLAB puede llamarse a si misma# Ejemplo9 ;**
function normaL;D 2un @ & nDlengt'@&W if nDD; normaL;Dabs@&W else normaL;D 2un @ &@;9n0; Kabs@&@nW end
!co> input> :e-board> pause Mientras se ejecuta un 2icero .m, normalmente, los comandos que contiene no se representan en la pantalla# El comando eco en los 2arci'os .m @eco on induce a que las sentencias sean !istas mientras se ejecutan# Esto es -til para depurar programas o en demostraciones# Ejercicio#0 Hacer dos arc'i!os con las mismas sentencias9 uno con eco on el otro con eco o22 apreciar las diferencias# La función input permite que el usuario introdu"ca datos# n D input@6ntroducir un numero entero Análogo al input, pero mas potente es el comando :e-board # Esta función in!oca el teclado del computador como una orden# Cuando el comando :e-board figura en un 2icero .m , detiene la ejecución del arc'i!o de ordenes da el control al teclado del usuario# Esta situación especial se manifiesta con un doble prompt# Las !ariables pueden ser e&aminadas o cambiadas, todos los comandos de MATLAB son !álidos# El modo )eboard se termina ejecutando el comando return, es decir escribiendo return retrn# pulsando la tecla Es -til para depurar programas# 1stas dos fnciones no se peden tilizar desde BD9
input@; (arning9 6nput command not a!ailable 8'en using MATLAB as Engine )eboard (arning9 Peboard command not a!ailable 8'en using MATLAB as Engine El comando pause detiene la ejecución de un arc'i!o espera que el usuario pulse una tecla cualquiera antes de continuar la ejecuciónW pause)n* detiene la ejecución n segundos#
+ariables globales Grdinariamente, las funciones de MATLAB, definidas por un arc'i!o .m, tienen sus !ariables locales, las cuales están separadas de las de otros arc'i!os, de las del espacio de trabajo# $in embargo, si !arias funciones, posiblemente el espacio de trabajo, declaran un nombre particular como !ariable global, entonces comparten una copia de ;*
esa !ariable# .na asignación a esa !ariable en una función, queda disponible en todas las otras funciones que la declararon como global# 3or una cuestión de estilo, las !ariables globales suelen tener nombre largos con letras ma-sculas, aunque no es necesario# 3or ejemplo9 global ALP3A>B!TA.
Cadenas de te6to Las cadenas de te&to se introducen en MATLAB limitadas por comillas simples @# 3or ejemplo sDHola
X después de escribir una cadena, queda el eco en eco o22
El te&to es almacenado en un !ector que tiene tantos elementos como caracteres# $u tama/o nos lo indica el comando si4e si"e@s Los caracteres son almacenados en sus !alores A$C66 abs muestra esos !alores abs@s La función setstr con!ierte el !ector cuos elementos están en código A$C66 en una cadena# setstr@ans La función disp, que muestra simplemente el te&to en la !ariable, es -til, as% como la función isstr, que detecta cadenas la strcmp, que compara cadenas# $e pueden usar corc'etes para concatenar cadenas obtener otras mas largas sKs> MundoR sDYs, MundoZ ec'o on X $% se desea as%, puesto que después de escribir una cadena, queda el eco en off
Los !alores numéricos son con!ertidos a cadenas mediante sprint2 , numstr e intstr#
Función e'al La función e'al es una potente macro que trabaja con !ariables de te&to# e'al)t* e!alua el te&to contenido en la !ariable de te&to t# $i string es el te&to fuente de una sentencia o e&presión de MATLAB, entonces
;*>
tDstring almacena el te&to en la !ariable t, de modo que si escribimos t produce la impresión del te&to, mientras que e'al)t* interpreta el te&to# EEM3LG9 generación de la matri" de Hilbert de orden n @dado n tD;F@iKj0;W nD for iD;9n for jD;9n a@i,jDe!al@tW end end a $e pueden usar las funciones e'al e input para escoger una de !arias opciones# Construamos > arc'i!os #m9 punt.m, :ic:.m, run.m :ic:.m#, con alg-n contenido# 3or ejemplo,
punt.m QQQQQQ disp@Este es el contenido del arc'i!o punt#m opcionesDYpuntWpassWrun W)ic)ZW )Dinput@Escoger opcion numero9 W e!al@opciones@),9 3uesto que las cadenas colocadas en las filas de una matri" 'an de tener todos la misma longitud, run debe tener un espacio en blanco# En el siguiente ejemplo se muestra como se puede usar el e'al para cargar ;? arc'i!os numerados arci'o1.mat , arci'o.mat , etc#, mediante el comando load9 for iD;9;? e!al@Yload , fic'ero, int*str@iZ end
Como aumentar 'elocidad Las operaciones !ectoriales matriciales en MATLAB son más rápidas que las que se 'acen elemento a elemento# Esto quiere decir que para obtener la má&ima !elocidad es con!eniente !ectori"ar los algoritmos en los arc'i!os #m# 3or tanto es deseable, siempre que sea posible, e&presar los bucles 2or /ile mediante operaciones !ectoriales o matriciales# A continuación escribimos dos secuencias distintas que permiten calcular el seno de ;??; n-meros desde ; comprendidos entre ; ;?
;*O
iD?W for tD?9#?;W;? iDiK;W @iDsin@tW end una !ersión !ectori"ada tD?9#?;9;?W Dsin@tW amos a calcular los tiempos de cálculo de cpu de una otra para lo cual con!iene 'acer dos arc'i!os de órdenes con el siguiente contenido9 format long t?DcputimeW iD?W for tD?9#?;W;? iDiK;W @iDsin@tW end t;Dcputime0t?W disp@YTiempo de cpu @!ersión secuencial9 num*str@t;Z [ para la !ersión !ectori"ada9 format long t?DcputimeW tD?9#?;9;?W Dsin@tW t;Dcputime0t?W disp@YTiempo de cpu @!ersion !ectori"ada9 num*str@t;Z Como puede apreciarse la diferencia en tiempo de ejecución es grande#
brea) else elseif end error for if return 8'ile
input
Control de flujo Termina la ejecución de un la"o .sado con if .sado con if Termina el alcan"e de for, 8'ile e if isuali"a mensjae aborta la función 1epite la consideración un n-mero espec%fico de !eces Consideración condicional 1egresa a in!ocar la función 1epite la consideración un n-mero indefinido de !eces Entrada interacti!as 3rompt usado para entrada ;*S
)eboard menu pause
dbclear dbcont dbdo8n dbquit dbstac) dbstatus dbstep dbstop dbtpe dbup
6n!oca al teclado como si fuera un arc'i!o script :enera un men- de elección para entrada Espera para respuesta del usuario
+ebugging 1emue!e el brea)point 1esume la ejecución Cambia el conte&to del espacio de trabajo $ale del mode debug Lista quien llama a quien Lista todos los brea)point Ejecuta uno o más l%neas +etermina el brea)point Listas los m0files Cambia el conte&to local del espacio de trabajo
Matlab como lenguaje de programación e!al Ejecuta una cadena fe!al Ejecuta una función espec%fica por cadena function A/ade una nue!a función global +efine !ariables globales nargc') alida n-mero de entrada del argumento ec'o Habilita el modo de ejecución de comandos con eco e erifica si e&isten !ariables function +efina una función startup Comien"a un arc'i!o M )eboard Llama al teclado como un arc'i!o M
Las 2unciones. $on arc'i!os que en la primera l%nea la primer palabra que tienen es 2unction, seguido por una definición de !alores que regresara, el nombre de la función de los argumentos que se le pasan, las diferencias con respecto al script es que todas las !ariables definidas dentro de la función son locales, es decir, se destruen al terminar de ser e!aluada la función, otra diferencia importante, es que se le pueden pasar argumentos, es decir, se le dice con que datos trabajara, podemos asignar el resultado, en !ariables# Ejemplo9 La función mean#m function Dmean@& XMEA7 !alor medio o promedio para !ectores XMEA7@& regresa el !alor regresa el !alor medio para matrices ;*V
X MEA7@& es un !ector renglón conteniendo los !alores promedios de cada columna Ym, nZDsi"e@& if m D D ; mD nW Xmaneja un !ector renglón aislado end Dsum@&Fm La e&istencia de este arc'i!o define una nue!a función llamada mean# La nue!a función mean puede ser usada como cualquier otra función de Matlab# 3or ejemplo, si " es un !ector de enteros desde ; a ==, " D ;9==W El !alor medio es determinado tecleando mean@" Lo cual resulta en ansD O? Ejemplo# 5unción stat, que calcula la des!iación estándar# function Ymean, sted!Z Dstat@& Ym, nZ D si"e@&W if m D D ; m D nW end mean D sum@&FmW stde! D sqrt@sum@&9*Fm0mean#*W $tat ilustra que es possible regresar salidas con m-ltiples argumentos#
Arci'os .mat )MAT2ile* Los comandos load sa'e cargan almacenan el contenido del espacio de trabajo en arc'i!os#mat# Tales fic'eros son binarios tienen un formato dependiente de la máquina que los genera, no obstante, pueden ser transportados entre distintas máquinas porque contienen un descriptor en la cabe"era que describe la plataforma que lo grabó# MATLAB lee este descriptor carga el arc'i!o 'aciendo la con!ersión necesaria# 3ara el usuario son directamente transportables#
Programas e6ternos Es posible, con frecuencia interesante, utili"ar programas en C o 5G1T1A7 como funciones MATLAB# Tales programas e&ternos directamente utili"ables por MATLAB ;*<
son llamados M!J2iles# Ha que seguir una serie de instrucciones para lograr esta adecuación de los arc'i!os e&ternos para con!ertirlos en MEN0files, después utili"ar un compilador especial para cada lenguaje finalmente se pueden utili"ar e&actamente como un m0file#
Importación - e6portación de datos $e pueden introducir datos de otros programas en MATLAB# Análogamente, se pueden e&portar datos de MATLAB a otros programas#
Importación de datos de MATLAB El mejor método para importar datos depende de la cantidad el formato de los mismos# ; Introducir los datos como una lista e6plícita de elementos # $i se trata de una cantidad peque/a de datos, es fácil escribirlos en forma e&pl%cita usando corc'etes Y##Z# Este método no es aconsejable para cantidades grandes de datos a que el riesgo de equi!ocaciones es grande# * Crear datos en un arci'o de órdenes .m # $e usa un editor de te&to para crear un arc'i!o de órdenes que introdu"ca los datos como una lista e&pl%cita de elementos# Este método es -til cuando los datos no estan en forma legible por el computador pero se dispone de ellos en alg-n formato# Al igual que en el método anterior tiene la !entaja de poder usar un editor de te&to para cambiar los datos o corregir los errores, a continuación ejecutar el arc'i!o #m para !ol!er a introducir los datos# Cargar los datos de un 2icero flat file ASCII# .n flat file almacena los datos en formato A$C66 con filas de longitud fija, que terminan con retorno de carro, espacios en blanco separando los n-meros, es decir cada fic'ero de este tipo contiene una matri" de datos# Estos arc'i!os pueden ser editados con un editor de te&to normal, pueden ser le%dos directamente en MATLAB usando el comando load# El resultado consiste en almacenar los datos en una !arible cuo nombre es el del arc'i!o# > Leer los datos usando 2open> 2read - otras 2unciones de entradaDsalida de ba;o ni'el# Este método es -til para cargar arc'i!os de datos generados con otras aplicaciones que tienen su propio formato# O $esarrollar un arci'o M!J2ile para leer los datos # Este es el método que usan subrutinas a disponibles para leer datos de arc'i!os de otras aplicaciones C o 5G1T1A7# S $esarrollar programas en Fortran o C para trasladar los datos a un arc'i!o en formato #mat que pueda ser leido por MATLAB con el comando load#
!6portación de datos de MATLAB E&isten !arias formas de e&portar datos de MATLAB para poder utili"arlos por otros programas9 ;*=
; 3ara matrices peque/as, usar el comando diar- para crear un arc'i!o con el contenido de la sesión de trabajo, listar las !ariables de ese arc'i!o# A continuación se puede utili"ar cualquier editor de te&to para manipularlo utili"arlo posteriormente# La salida de diar- inclue todos los comandos de MATLAB usados en la sesión de trabajo, lo cual es -til para su inclusión en documentos memorias# El comando diar- se utili"a de la manera siguiente9 si en un momento dado de la sesión se escribe diar- pepe todo lo que se 'aga posteriormente se guarda en el arc'i!o pepe 'asta que se ejecute el comando diar- o22 # En otra sesión distinta se puede incorporar el contenido del arc'i!o pepe al espacio de trabajo mediante diar- pepe# * Sal'ar los datos en 2ormato ASCII usando el comando sa'e con la opción ascii # 3or ejemplo, ADrand@,>W sa!e pepe#dat A 0ascii crea un arc'i!o A$C66 llamado pepe#dat que contiene la matri" A# Escribir los datos en formato especial utili4ando 2open> 2/rite otras funciones entradaFsalida de bajo ni!el# Este método es -til para escribir datos en arc'i!os con el formato requerido por otras aplicaciones# > $esarrollar un 2icero M!J2ile para escribir los datos# Este es el método de elección de subroutinas a disponibles para escribir arc'i!os de datos en la forma que necesitan otras aplicaciones# O Escribir los datos de salida en un arc'i!o #mat usando el comando sa'e> escribir un arc'i!o en 5ortran o C para trasladar los datos de ese arc'i!o al formato requerido#
Aplicaciones de la programación. Programa para ilustrar los e2ectos gr82icos de una aplicación lineal HDY0 S 0S 0V ? V S S 0 0 ? ? 0SW 0V * ; < ; * 0V 0V 0* 0* 0V 0VZ &DH@;,9WDH@*,9Wplot@&,,o,&,,0W a&is@Y0;? ;? 0;? ;?ZW a&is@squareW disp@La giramos >O grados ADYcos@piF> 0sin@piF>Wsin@piF> cos@piF>Z BDAQHW &DB@;,9WDB@*,9Wplot@&,,o,&,,0W disp@$imetr%a respecto G& ADY; ?W? 0;Z BDAQHW &DB@;,9WDB@*,9Wplot@&,,o,&,,0W disp@$imetr%a respecto G ADY0; ?W? ;Z
;?
BDAQHW &DB@;,9WDB@*,9Wplot@&,,o,&,,0W disp@$imetr%a respecto G ADY0; ?W? 0;Z BDAQHW &DB@;,9WDB@*,9Wplot@&,,o,&,,0W disp@La deformamos ADY?#V ?#W?# ?#VZ BDAQHW &DB@;,9WDB@*,9Wplot@&,,o,&,,0W disp@La deformamos más ADY? ;#;W?#; ?#ZW BDAQHW &DB@;,9WDB@*,9Wplot@&,,o,&,,0W
!JP%".M !ste programa sir'e para e'aluar la 2uncion e6ponencial en la siguiente serie= 1@6@6GD[email protected]..... clc clear 6Kinput)ingrese 6= *( nKinput )ingrese n= *(to2iKe6p)6*( -K1( sumK1( erroKto2isum( disp ) n apro6imacion erro* 2or iK1=n( 2print2) .2 1.1Q2 1.1Q2n >i>sum>erro* -K-6Di( sumKsum@-( erroK))to2isum*Dto2i*1( end P%M!$I%.M !ste programa es diseVado para determinar la nota de un curso 5ue consiste en parciales> traba;os - e6amen 2inal> 5ue al 2inal seran mostrados al acabar el proceso. clc clear sKinput )ingrese el nombre del curso= >s*( tKinput )ingrese el codigo del curso= *( 2pKinput )ingrese el 2actor de peso del parcial= *( 2tKinput )ingrese el 2actor de peso del traba;o= *( 2FKinput )ingrese el 2actor de peso del e6amen 2inal= *( nKinput )ingrese el numero de e6amenes parciales= *( 2or iK1=n ;;
g)i*Kinput )ingrese las notas de los parciales= *( end 6Kinput )ingrese el numero de traba;os= *( 2or ;K1=6 );*Kinput )ingrese las notas de los traba;os= *( end propK)sum)g**Dn( protK)sum)**D6( nFKinput )e6iste la nota nota 2inal )sDn*= >s*( i2 nF KKs p2inKinput)cali2icacion 2inal= *( ppK)2pprop@2tprot@2FnF*D)2p@2t@2F*( else ppK)2pprop@2tprot*D)2p@2t*( end t s pp C%S!"%.M 2unction apro6imadaKcoseno)6>n>tol* !ste programa sir'e para apro6imar la 2uncción 2)6*Kcos)6* por 1)JG*DU@)JGN*DNU)JGO*DOU@)JGW*DWU.... probar con= 6KpiDE nKQ tolK.1 clc serie)1*K1( iK1( disp)iter X!apX !' !'r !ap * /ile iYKn pK))1*Gi*)6G)i**D2acto)i*( serie)i@1*Kserie)i*@p( !' K cos)6*serie)i*( !'rK )cos)6*serie)i**1Dcos)6*( !apK )serie)i@1*serie)i**1Dserie)i@1*( 2print2)iK d E.2 t E.2 t E.2 t E.2n>i>abs)!ap*>abs)!'*>abs)!'r*>abs)!ap** iKi@1( i2 abs)!ap* Y tol brea: end end $!I".M !ste es un programa 5ue sir'e para calcular la deri'ada de -K6GE usar n=1 clc ;*
clear bK1( derKEbG( b1KbGE( nKinput)ingrese n= *( -KE( -)1*KE es la deri'ada e6acta disp) n 2)6* !t* 2or iK1=1=n( K1G)1i*( 2Kb@( 22K2GE( denumK)22b1*D( etK))-denum*D-*1( 2print2) .2 t N.12 t N.N2 t N.N2n>i>>denum>abs)et** end end PAAC.M !ste es un programa 5ue sir'e para gra2icar la ecuacion de la caida un paracaidista en condiciones ideales. recomendacion= usar con t=1> m=OW.1> '=N clc clear tKinput)ingrese el tiempo= *( mKinput)ingrese la masa= *( gK.W( 'Kinput)ingrese la 'elocidad= *( cK==( 2cK ))m.g*.Dc*.1e6p))c.Dm*.t*R'( plot )c>2c>b>c>2c>g*( grid end title)gra2ico de la caida del paracaidista*( 6label) c *( -label)2)c* *( end S&MA.M !ste programa sir'e para calcular la serie in2inita 2)n*Ksum 1DnG> desde 1 asta 1 recomendacion= dar n=1 clc clear nKinput )ingrese n= *( sumK( 2or iK1=n( sumKsum@1DiG( ;
end sum S&MAI.M !ste programa sir'e para calcular la serie in2inita 2)n*Ksum 1DnG> desde 1 asta 1 ecomendacion= dar n=1 clc clear nKinput )ingrese n= *( sumK( 2or iKn=1=1( sumKsum@1DiG( end sum S!"C%S.M !ste es un programa 5ue sir'e para calcular la 2uncion= )sen 16* @ )cos E6*> en di2erentes Inter'alos. clc clear subplot E11 6KQ=.1=Q( 2Ksin)16*@cos)E6*( plot)6>2>b* grid title)gra2ico 1* end subplot E1 61KE=.1=Q( 21Ksin)161*@cos)E61*( plot)61>21>m* grid title)gra2ico * -label) 2)6* K seno de 16 @ coseno de E6 *( end subplot E1E 6KN.=.1=N.E( 2Ksin)16*@cos)E6*( plot)6>2>c*( grid title)gra2ico E* 6label)Inter'alos de Crecimiento*( end ;>
,r82icas tridimensionales. X+efine el rango de datos & \\ &Dlinspace@0Qpi,Qpi,O?W \\ XE!alua la funcion rDcos@&#Qsin@?#OQ&#Qe&p@@*F*??W \\ X5uer"a que el radio minimo sea cero \\ rDr0min@rW \\ plot@r,linspace@?,;,lengt'@rW \\ title@3erfil radialW
Per fi lr a di a l 1 0. 9 0. 8 0. 7 0. 6 0. 5 0. 4 0. 3 0. 2 0. 1 0 0
0. 5
1
1. 5
2
2. 5
3
3. 5
label@"W \\ clinder@rW
;O
1 0. 8 0. 6 0. 4 0. 2 0 4 2
4 2
0
0
2
2 4
4
Plot.E Crea un dibujo de !ectores o columnas de matrices @de la misma longitud# $inta&is9 a plot@&;,;,";, $;, &*,*,"*, $*, donde &n, n, "n son !ectores o matrices $n son caracteres opcionales para especificar color, s%mbolo, Fo tipo de l%nea, plot se usa com-nmente para graficar una función 0 + de una !ariable simple, por ejemplo, tDlinspace@?,;?QpiW plot@sin@t,cos@t,t &label@sen@t, label@cos@t, "label@tW te&t@?,?,?,origenW grid on, title@ HéliceW !Da&isW
;S
Hél i ce
40
30
0 t2
10
0 1
o r i g e n 0. 5
1 0. 5
0
0
0. 5 c o s ( t )
0 . 5 1
1
s e n ( t )
! !D 0;
;
0;
;
?
>?
El comando a&is se e&tiende a 0+ retornando los l%mites del eje0" @? >? como dos elementos adicionales en el eje !ector# Ha una función etiquetada "label etiquetando al eje "# El comando grid enreja la gráfica, el comando bo& crea una caja 0+ alrededor de la gráfica# Los !alores por default para plot son gris off bo& off# La función te&t@&, , ", string colocara un carácter en la posición identificada por la tripleta &, , "# En adición, subplots multiple figure (indo8s aplica directamente a funciones gráficas 0 +# Considere el siguiente ejemplo9 &Dlinspace@?,QpiW Xdatas del eje0& ";Dsin@&W "*Dsin@*Q&W "Dsin@Q&W ;D"eros@si"e@&W Xdespliege a lo largo del eje dando a Dones@si"e@&W Xcada cur!a !alores diferentes del eje0 *DF*W plot@&,;,";,&,*,"*,&,," grid on
;V
&label@eje0&, label@eje0, "label@eje0" title@sen@&, sen@*&, sen@& pause@O plot@&,";,;, &,"*,*,&,", grid on &label@eje0&, label@eje0, "label@eje0" title@sen@&, sen@*&, sen@& sen( x ) ,sen( 2 x) ,sen ( 3x )
1
0. 5 z e j e
0
0 . 5
1 1 10 8
0. 5
6 4
ej ey
0
2 0
ej ex
;<
sen( x ) ,sen( 2 x) ,sen ( 3x )
1 0. 8 0. 6
z e j e
0. 4 0. 2 0 1 0. 5
10 8
0 4
0. 5 ej ey
1
6
2 0
ej ex
Función escalar de dos 'ariables. .na función escalar de dos !ariables, es z = f @ x, ! A
Cada par de !alores de & e producen una !alor "# .na gráfica de " como una función de & e es una superficie en tres dimensiones# 3ara graficar esta superficie en Matlab, los !alores para " son almacenados en una matri"#, " es una matri" de la !ariable dependiente asociada a & e con z @i,9A
= f @ x, ! @iAA
!
z @9, @ A
= f @ x@ @ A, ! A
Esto es, la i0ésima fila de " esta asociada con el i0ésimo elemento de , la j0ésima columna de " esta asociado con el j0ésimo elemento de Cuando "Df@&, puede e&presarse simplemente, es con!eniente usar una operación de arreglo para calcular los !alores de " en una consideración simple# 3ara 'acer esto se requiere que creamos matrices de todos los !alores de & e en la orientación adecuada# Esta orientación es algunas !eces llamada plaid# Matlab proporciona la función mes'grid para desarrollar esta etapa, por ejemplo
;=
&D09W Xselecciona los !alores del eje0& D;9OW X!alores del eje0 YN,[ZDmes'grid@&, ND
0 0 0 0 0
0* 0* 0* 0* 0*
0; 0; 0; 0; 0;
; * > O
; * > O
? ? ? ? ?
; ; ; ; ;
* * * * *
; * > O
; * > O
[D
; * > O
; * > O
; * > O
Como se puede obser!ar, mes'grid duplica & para cada uno de las O filas en # $imilarmente este duplica como una columna para cada una de las V columnas en .na forma fácil de recordar que !ariable es duplicada por mes'grid es pensar como una gráfica *0+# El eje0& !ar%a desde la i"quierda a la derec'a, justamente como la salidas de N de mes'grid# $imilarmente, el eje0 !ar%a desde el fondo 'acia arriba, justamente como la salida de [ en mes'grid# +ada N e [, si z = f @ x, ! A = @ x + ! A * , la matri" de los !alores definen una superficie 0+ esta dada simplemente como \\ D@NK[#* D > ; ? ; > = ;S ; ? ; > = ;S *O ? ; > = ;S *O S ; > = ;S *O S >= > = ;S *O S >= S> Cuando una función no puede e&presarse como una función simple, se debe usar 5or Loops o ('ile Loops para calcular los elementos de # En muc'os casos puede ser posible calcular los elementos de las filas o columnas de # 3or ejemplo, si esto es posible para calcular las filas de , el siguiente fragmento de arc'i!o puede ser -til
;>?
&D``` Xconsideracion que define el !ector de los !alores del eje0& &D``` Xconsideración que define el !ector de los !alores del eje0 n&Dlengt'@&W Xlongitud de & es no# de filas en nDlengt'@W Xlongitud de es no# de columnas en D"eros@n&,nW Xiniciali"acion de la matri" for rD;9n& @comandos preliminares @r,9Duna funcion de &@r define la fila r0ésima de end +e otro modo, si puede calcularse las columnas, el siguiente fragmento de arc'i!o puede ser -til9 &D``` Xconsideracion que define el !ector de los !alores del eje0& &D``` Xconsideración que define el !ector de los !alores del eje0 n&Dlengt'@&W Xlongitud de & es no# de filas en nDlengt'@W Xlongitud de es no# de columnas en D"eros@n&,nW Xiniciali"acion de la matri" for cD;9n @comandos preliminares @9,cDuna funcion de @c & define la columna c0ésima de end xnicamente cuando los elementos de deben calcularse elemento por elemento se 'acen los cálculos requiriendo de un ciclo 5or Loops tal como el siguiente fragmento de arc'i!o# &D``` Xconsideracion que define el !ector de los !alores del eje0& &D``` Xconsideración que define el !ector de los !alores del eje0 n&Dlengt'@&W Xlongitud de & es no# de filas en nDlengt'@W Xlongitud de es no# de columnas en D"eros@n&,nW Xiniciali"acion de la matri" for rD;9n& for cD;9n @comandos preliminares @r,cDuna funcion de @c &@r definiendo el elemento @r,c end end
La instrucción Mes. Mes' puede ser usado para !isuali"ar grandes matrices que son demasiado grandes para imprimirse en formato numérico# También puede usarse para graficar funciones de dos !ariables# La instrucción mes)4* crea una gráfica en perspecti!a tridimensional de los elementos en la matri" "# .na superficie de malla está definida por las coordenadas " de ;>;
puntos arriba de un enrejado rectangular en el plano &0# La gráfica se forma uniendo los puntos adacentes con l%neas rectas con un color proporcional a la altura# Considere el siguiente ejemplo9 YN, [, ZDpea)s@?W mes'@N,[, &label@eje0&, label@eje0, "label@eje0" title@Mes' 3lot de 3ea)s MeshPl otdePeaks
10
5 z e j e
0
5
10 4 2
4 2
0
0
2 ej ey
2 4
4
ej ex
El primer paso 'acia la e&'ibición de una función " D f@&, de dos !ariables es genera las matrices especiales & e que consisten de renglones columnas repetidas, respecti!amente, sobre el dominio de la función# La función puede entonces ser e!aluada graficada directamente# En general mes' acepta argumentos opcionales para controlar el color en la gráfica# mes'@###,C donde C es el color# mes'@###,3ropert7ame,3ropertalue,### Ejemplo#
;>*
YN, [, ZDsp'ere@;*W subplot@;,*,; mes'@N, [,, title@Gpaco 'idden on a&is square off subplot@;,*,* mes'@N,[,, title@Transparente 'idden off a&is square off Opa co
T r a n s p a r e n t e
La esfera de la i"quierda es opaca @las l%neas se ocultan, la esfera de la derec'a es transparente @las l%neas no se ocultan La función mes' tiene dos subfunciones9 mes'c, que es una gráfica con contorno, mes'", que es una gráfica que inclue el plano cero# Considere el siguiente ejemplo YN,[Z D mes'grid@09#;*O9W D pea)s@N,[W mes'c@N,[,W Xgráfica con contorno a&is@Y0 0 0;? OZ pause@O D pea)s@N,[W mes'"@N,[, Xgráfica con plano cero
;>
5
0
5
10 2 0 2 3
2
1
0
1
2
3
10
5
0
5
10 4 2
4 2
0
0
2
2 4
4
La función 8aterfill es idéntico a mes' e&cepto que las l%neas mes' aparecen -nicamente en la dirección0&, YN,[Z D mes'grid@09#;*O9W D pea)s@N,[W (aterfall@N,[, &label@eje0&, label@eje0, "label@eje0" title@gráfica 8aterfall
;>>
gr áfi cawat er f al l
10
5 z e j e
0
5
10 4 2
4 2
0
0
2 ej ey
2 4
4
ej ex
\\ &D09?#;9W \\ D09?#;9W \\ Y&,ZDmes'grid@&,W \\ "D?#*#Qcos@&K#Qe&p@@0*0@#*W \\ mes'@&,,"W \\ title@gráfica pea)sW \\ &label@Eje NW \\ label@Eje [W \\ "label@Eje W
;>O
g r á fi c ap e a ks
1
0. 5 Z e j E
0
0 . 5 4 2
4 2
0
0
2
2 4
Ej eY
4
Ej eX
&D?9?#;9OW \\ D?9?#;9OW \\ Y&,ZDmes'grid@&,W "D?#*#Qcos@&K#Qe&p@@0*0@#*WW \\ contour@&,,"W \\ title@:rafica de ni!elesW \\ &label@Eje NW \\ label@Eje [W \\ gte&t@Ecuacion de la grafica, "D?#*cos@&Ke&p@@0&*0@*W
Gr a fi cad en i v e l e s 5 4. 5 4 3. 5 3 Y e 2. 5 j E
2 2 Ec ua ci o ndel ag r a fi c a,z =0 . 2 co s( x ) +y ex p( ( x ) ( y) )
2 1. 5 1 0. 5 0 0
0. 5
1
1. 5
2
2. 5 Ej eX
3
3. 5
4
4. 5
5
;>S
,r82icas de Super2icie. .na supeficie es una gráfica mes', e&cepto que todo el espacio entre las l%neas, llamadas patc'es, están ocupadas# :ráficas de este tipo se generan usando la función sur2 , por ejemplo, YN, [, Z Dpea)s@?W surf@N,[, &label@eje0&, label@eje0, "label@eje0" title@$uperficie de la gráfica pea)sl Su pe r fi c i ed el ag r á fi cap ea ks l
10
5 z e j e
0
5
10 4 2
4 2
0
0
2 ej ey
2 4
4
ej ex
Gbser!e como esta gráfica es una forma dual de una gráfica mes'# Las l%neas son negras las traectorias tienen color, cuando en un mes' son del color de los ejes las l%neas tiene color# Como en las mes' el color !ar%a a lo largo del eje0" con cada traectoria o l%nea que tiene un color constante# Las gráficas de superficie tiene por defecto gris on# $ombreado#
;>V
Gr á fi c ad el aSu p er fi c i ep e ak sco nso mb r ap l a n a
10
5 z e j e
0
5
10 4 2
4 2
0
0
2
2 4
ej ey
4
ej ex
Gr á fi c ad el aSu pe r fi c i ep ea ksc ons omb r ai n t e r p ol a da
10
5
0
5
10 4 2
4 2
0
0
2
2 4
4
En algunas situaciones puede ser con!eniente remo!er partes de una superficie# En Matlab esto se reali"a considerando los !alores donde no se quiere parte de la gráfica como 7a7# Como 7ans no tiene !alores, toda la función gráfica simplemente ignora los puntos de datos "a", dejando una abertura en la gráfica#
;><
YN, [, Z Dpea)s@?W &DN@;,9W X!ector del eje & D[@9,;W X!ector del eje iDfind@\#<R;#*W Xencuentra el %ndice del eje en la abertura jDfind@&\0#S&R#OW Xencuentra el indice del eje & en la abertura @i,jDnanW Xdetermina los !alores en la abertura como 7a7s surf@N,[, &label@eje0&, label@eje0, "label@eje0" title@:ráfica de superficie con abertura Gr á fi cad es up er fi c i ec onab er t u r a
10
5 z e j e
0
5
10 4 2
4 2
0
0
2 ej ey
2 4
4
ej ex
La función surf tiene dos opciones = sur2c que es una gráfica de la superficie del contorno, sur2l que es una gráfica de superficie con luminosidad, por ejemplo, YN, [, Z Dpea)s@?W surfc@N,[, X:ráfica de superficie con contorno &label@eje0&, label@eje0, "label@eje0" title@:ráfica de superficie con contorno pause@O surfl@N,[, X:rafica de superficie con lu" s'ading interp Xmejor sombra interpolada colormap pin) Xmejor sombra de un color &label@eje0&, label@eje0, "label@eje0" title@:ráfica de superficie con lu"
;>=
Gr á fi c ad esu p er fi c i ec onco n t o r n o
10
5 z e j e
0
5
10 4 2
4 2
0
0
2
2 4
ej ey
4
ej ex
Gr á fi c ad es up er fi c i eco nl u z
10
5 z e j e
0
5
10 4 2
4 2
0
0
2 ej ey
2 4
4
ej ex
Colormap es una función de Matlab para aplicar a diferentes conjunto de colores a una figura# La función sur2norm)J>0>Z* calcula la superficie normal para cada superficie definida por N, [, , gráfica el !ector normal a la superficie en un punto# La superficie normal no normali"ada son !álidas en cada !értice# La forma
;O?
Y7&,7,7"ZDsurfnorm@N,[, calcula la normal 0+ regresas sus componente pero no gráfica la superficie, por ejemplo, YN, [, Z Dpea)s@;OW surfnorm@N,[, &label@eje0&, label@eje0, "label@eje0" title@:ráfica de superficie con normales Gr á fi c ades up e r fi c i ec onn or ma l e s
10
5 z e j e
0
5
10 4 2
4 2
0
0
2 ej ey
2 4
4
ej ex
+atos espaciados irregulares o no0uniformes pueden !isuali"arse usando las funciones trimes> trisur2> 'oronoi, por ejemplo, &Drand@;,O?W Drand@;,O?W "Dpea)s@&,QpiW tDdelauna@&,W trimes'@t,&,," 'idden off title@:rafica triangular mes' pause@O trisurf@t,&,," title@grafica triangular de la superficie pause@O !oronoi@&,,t title@:rafica !oronoi
;O;
Gr a fi c at r i a ng ul a rme sh
10 8 6 4 2 0 2 1 1 0. 8
0. 5
0. 6 0
0. 2
0. 4
0
g r a fi cat r i angul ardel asup er fi ci e
8
6
4
2
0 1 1 0. 8
0. 5
0. 6 0. 4 0
0. 2 0
;O*
Gr a fi c av o r o no i
0. 9 0. 8 0. 7 0. 6 0. 5 0. 4 0. 3 0. 2 0. 1 0. 1
0. 2
0. 3
0. 4
0. 5
0. 6
0 . 7
0. 8
0. 9
3or default las gráficas 0+ las obser!amos en el plano " D ? a un ángulo de ? , arriba del plano & D ? con un ángulo de V#O ?# El ángulo de orientación con respecto al plano "D? lo llamamos la ele!ación el ángulo con respecto al eje & es llamado a"imutal# En gráficas *0+ se tiene una ele!ación de =? o un a"imutal de ?# o
En Matlab, la función 'ie/ cambia el punto de gráfica para todos los tipos *0+ o 0+ 'ie/)a4>el* 'ie/)a4>elR* cambia el punto de !ista al especificado a"imutal a" ele!ación el# Considere el siguiente ejemplo# &D0V#O9#O9V#OW D&W Xcrea un conjunto de datos YN,[ZDmes'grid@&,W 1Dsqrt@N#*K[#*KepsW ;O
Dsin@1#F1W subplot@*,*,; surf@N,[, !ie8@0V#O,? &label@eje0&, label@eje0, "label@eje0" title@A"D0V#O, ElD? subplot@*,*,* surf@N,[, !ie8@0V#OK=?,? &label@eje0&, label@eje0, "label@eje0" title@A"Drotado a O*#O subplot@*,*, surf@N,[, !ie8@0V#OK=?,S? &label@eje0&, label@eje0, "label@eje0" title@El incrementado a S? subplot@*,*,> surf@N,[, !ie8@?,=? &label@eje0&, label@eje0, "label@eje0" title@A"D?, ElD=? Az =3 7. 5 ,El =3 0
Az =r o t a d oa5 2. 5
1
1
z e0 j e
z e0 j e
1 10
1 10
0 10 10 ej ey -
0 ej ex
10
10
0 ej ex
Eli n c r e me n t a d oa60
10 10
0 ej ey
Az=0,El =90 10 5
1
z -0 e j e
y e j e
1 10 10 0 ej ex 10 10
0 ej ey
0 5
10 10
5
0 ej ex
5
10
La función !ie8 puede actuar interacti!amente con el ratón usando la función rotatedEd on, rotated off sale de la interacción#
,r82icas de contorno.
;O>
Las gráficas de contorno muestran l%neas de ele!aación constante, atra!és de la función contour o contourE> respecti!amente, por ejemplo, YN,[,ZDpea)sW contour@N,[,,*? Xgenera *? l%neas de contorno *0+ &label@eje0&, label@eje0, "label@eje0" title@:ráfica de contorno *0+ pause@O contour@N,[,,*? Xlos mismos contornos en 0+ &label@eje0&, label@eje0, "label@eje0" title@:ráfica de contorno 0+ Gr á fi c ad eco n t o r n o2 D 3
2
1 y e0 j e
1
2
3 3
2
1
0 ej ex
1
2
3
Gr á fi c ad ec o nt o r n o3 D
10
5 z e j e
0
5
10 2 0 2 ej ey
3
2
1
0
1
2
3
ej ex
;OO
La función pcolor mapea la altura de un conjunto de colores presenta la misma información que la gráfica de contorno a la misma escala, por ejemplo, pcolor@N,[, s'ading interp Xremue!e la rejilla de l%neas title@:rafica de pseudocolor Gr a fi c ad ep s e ud o c ol o r 3
2
1
0
1
2
3 3
2
1
0
1
2
3
Combiando la idea de pseudocolor con el contorno *0+ se produce un contorno lleno# En Matlab esta gráfica se genera por la función contour2 , por ejemplo, YN,[,ZDpea)sW contourf@N,[,,;* Xgráfica de contorno llena con ;* &label@eje0&, label@eje0, "label@eje0" title@:ráfica de contorno llena
;OS
Gr á fi cadeco nt o r n ol l e na 3
2
1
y e0 j e
1
2
3 3
2
1
0 e j e x
1
2
3
Las l%neas de contorno puede etiquetarse usando la función clabel requieren de una matri" de l%neas un te&to opcional que son retornado por contoru, contourf, contour, por ejemplo, YN,[,ZDpea)sW CDcontour@N,[,,;*W clabel@C title@:ráfica de contorno con etiqueta Gr á fi c ad ec on t o r n oc onet i q ue t a 3
2
1
0
1
2
3 3
2
1
0
1
2
3
;OV
Alternati!amente, cons etiquetas en las l%neas se pueden generar usando dos argumentos# Estas etiquetas aparecen -nicamente donde 'a suficientes espacio, por ejemplo, YN,[,ZDpea)sW YC,'ZDcontour@N,[,,<W clabel@C,' title@:ráfica de contorno con etiquetas en las l%neas Gr á fi cadeco nt o r n oc onet i q ue t a senl a sl í n ea s 3
2
1
0
1
2
3 3
2
1
0
1
2
3
5inalmente, se puede seleccionar que contornos se etiquetan usando el ratón, a/adiendo ]manual^ como -ltimo argumento a clabel
,r82icas especiali4adas E$. Matlab proporciona un n-mero de funciones especiali"adas para graficar# La función ribbon)0* gráfica las columnas de [ como ribbon separadas, ribbon)6>0* gráfica & contra las columnas de [# El anc'o del ribbon puede especificarse usando la sinta&is ribbon)6>0>/idt* , donde el !alor default es ?#VO# Considere el siguiente ejemplo, Dpea)sW ribbon@ title@:ráfica 1ibbon de pea)s
;O<
Gr á fi c aRi b b o nd ep e a k s
10
5
0
5
10 60 50
40
40 2 0 0
1 0
20
30
0
La función 5ui'er)6>->d6>d-* dibuja !ectores direccionales o !ectores de !elocidad @d&, d en los puntos @&,, por ejemplo, YN,[,ZDpea)s@;SW Y+N,+[ZDgradient@,#O,#OW contour@N,[,,;? 'old on qui!er@N,[,+N,+[ 'old off title@:ráfica 4ui!er *0+ Gr á fi c aQu i v e r2 D 3
2
1
0
1
2
3 3
2
1
0
1
2
3
;O=
Las gráficas qui!er tridimensionales de la forma 5ui'erE)6>->6>"6>"->"4* !isuali"an el !ector @7&,7,7" en los puntos @&,,", por ejemplo, YN,[,ZDpea)s@*?W Y7&,7,7"ZDsurfnorm@N,[,W surf@N,[, 'old on qui!er@N,[,,7&,7,7" 'old off title@:ráfica 4ui!er 0+ Gr á fi caQu i v e r3 D
10
5
0
5
10 4 2
4 2
0
0
2
2 4
4
La función 2illE, es el equi!alente 0+ de fill, dibuja l%neas poligoanles en el espacio 0+# 2illE)J>0>Z>C* usa arreglos N, [, como los !értices de los pol%gonos, C especifica el color, por ejemplo, fill@rand@,O,rand@,O,rand@,O,rand@,O grid on title@Cinco triángulos aleatorios
;S?
Ci ncot r i ángul osal eat or i os
1 0. 8 0. 6 0. 4 0. 2 0 1 1 0. 5 0. 4 0
0. 6
0. 8
0. 2 0
El equi!alente0+ de la gráfica discreta de secuencia de datos stem en el espacio 0+, stemE)J>0>Z>C>?2illed?* gráfica los puntos de datos @N,[, con l%neas e&tendidas al plano &0# El argumento opcional C espec%fica el color Fo estilo, el argumento opcional ]filled^ causa que los marcadorese se llenen# StemE)Z* gráfica los puntos en a utomáticamente genera !alores N [# 3or ejemplo, Drand@OW stem@,ro,filledW grid on title@+atos aleatorios en una grafica stem Da t o sa l e at o r i o se nu nagr a fi cast e m
1 0. 8 0. 6 0. 4 0. 2 0 5 4
5 4
3
3
2
2 1
1
;S;
+isuali4ación de 'olumen. Matlab también ofrece funciones de !isuali"ación !ectoriales de !olumen# Estas funciones construen gráficas de cantidades escalares !ectoriales en el espacio 0+# Como ellas construen !ol-menes más que superficies, sus argumentos de entrada son arreglos 0+, uno para cada eje, &, , "# Los puntos en cada arreglo 0+ definen una rejilla de coordenadas o datos# 3ara funciones escalares, cuatro arreglos 0+ se requieren, uno por cada uno de los tres ejes coordenados más uno para el dato escalar en el punto en cuestión# Estos arreglos com-nmente se identifican como N, [, , respecti!amente# 3ara cada función !ectorial, se requieren seis arreglos 0+, uno para cada uno de los tres ejes coordenados más uno para cada componente del !ector en el punto en cuestión# Estos arreglos se identifican como N, [, , ., , (, respecti!amente# Considere la construcción de una función escalar definida sobre el !olumen# 3rimero, los ejes coordenados del !olumen deben ser construidos, por ejemplo, &Dlinspace@0,,;W D;9*?W "D0O9OW YN,[,ZDmes'grid@&,,"W si"e@N
Xpuntos de coordenadas en el eje & Xpuntos de coordenadas en el eje Xpuntos de coordenadas en el eje " Xrejilla de trabajo
ans D *? ; ;; +onde N, [ son arreglos 0+ que definen la rejilla, N contiene & duplicado como lengt@ muc'as páginas como lengt'@"# $imilarmente, [ contiene transpuesta como columnas duplicadas para muc'as columnas como lengt'@& muc'as páginas como lengt'@"# [ contiene " permutado a ;0por0; por lengt'@" !ector duplicado para muc'as filas como lengt'@ muc'as columnas como lengt'@&# Esto es directamente la e&tensión de mes'grid para un sistema 0+# En lo siguiente se necesita definir una función para estos datos, por ejemplo, Dsqrt@N#*Kcos@[#*K#*W A'ora, el arreglo 0+ N, [, , definene una función escalar v = f @ x, ! , z A sobre un !olumen# 3ara !isuali"arlo, obser!emos un peda"o a lo largo de un plano, por ejemplo, slice@N,[,,,Y? Z,YO ;OZ,Y0 OZ &label@eje0& label@eje0 "label@eje0" title@3eda"o de gráfica a tra!és de un !olumen
;S*
Pe d a zodegr á fi c aat r a v é sd eu nv o l u me n
5
z -0 e j e
5 20 15
4 2
10
0
5 ej ey
2 0
4
ej ex
Esta gráfica muestras peda"os sobre planos definidos por & D ?, & D , D O, D ;O, " D 0, " D O, como se muestra por los -ltimos tres argumentos de la función slice# El color de la gráfica es mapeado a los !alores en sobre el peda"o# El peda"o !isuali"ado no necesita ser planos# Ellos pueden ser en cualquier superficie, por ejemplo, &Dlinspace@0,,;W Xpuntos de coordenadas en el eje & D;9*?W Xpuntos de coordenadas en el eje "D0O9OW Xpuntos de coordenadas en el eje " YN,[,ZDmes'grid@&,,"W Dsqrt@N#*Kcos@[#*K#*W Y&s,sZDmes'grid@&,W "sDsin@0&sKsF*W Xsuperficie a usar slice@N,[,,,&s,s,"s &label@eje0& label@eje0 "label@eje0" title@3eda"o de gráfica usando una superficie Aqu% &s, s, "s definen una superficie en el cual se obser!a un peda"o del !olumen#
;S
Pe d a zod eg r á fi c au sa n d ou n as u p er fi c i e
1
0. 5 z e j e
0
0 . 5
1 20 15
4 2
10
0
5 ej ey
2 0
4
ej ex
1egresando al peda"o de gráfica, es posible a/adir l%neas de contorno para seleccionar planos usando la función contourslice, por ejemplo, &Dlinspace@0,,;W D;9*?W "D0O9OW YN,[,ZDmes'grid@&,,"W Dsqrt@N#*Kcos@[#*K#*W
Xpuntos de coordenadas en el eje & Xpuntos de coordenadas en el eje Xpuntos de coordenadas en el eje "
'Dcontourslice@N,[,,,,YO ;OZ,YZW set@',EdgeColor,),Line8idt',;#O &label@eje0& label@eje0 "label@eje0" title@3eda"o de gráfica con contornos seleccionados Aqu% las l%neas de contorno se a/aden en los planos & D , D O, e D;O, las l%neas de contorno son negras su anc'o es de ;#O puntos# Y& " !Z D flo8W ' D contourslice@&,,",!,Y;9=Z,YZ,Y?Z,linspace@0<,*,;?W a&is@Y?,;?,0,,0,ZW daspect@Y;,;,;Z cam!a@*>W camproj perspecti!eW campos@Y0,0;O,OZ
;S>
set@gcf,Color,Y#O,#O,#OZ,1enderer,"buffer set@gca,Color,blac),NColor,8'ite, ### [Color,8'ite,Color,8'ite bo& on
3
2 1 0 1 2 3 2 0 5
6
7
8
9
El siguiente ejemplo dibuja l%neas de contorno a tra!es de una superficie esférica dentro del !olumen, Y&,,"Z D mes'grid@0*9#*9*,0*9#*O9*,0*9#;S9*W ! D Qe&p@0*0#*0"#*W Y&i,i,"iZ D sp'ereW contourslice@&,,",!,&i,i,"i !ie8@
X Crea los datos del !olumen X 3lano del contorno
;SO
1
0. 5
0
0 . 5
1 1 0. 5
1 0. 5
0
0
0. 5
0 . 5 1
1
En adición al peda"o a tra!és del !olumen, la superficie donde los datos escalares del !olumen se 'an especificado pueden graficarse usando la función isosur2ace# Esta función regresa !értices de triángulos en una forma similar a la triangulación +elauna, el resultado esta en la forma requerida por la función patc, que gráfica los triángulos# Considere el siguiente ejemplo, f! D isosurface@N,[,,,iso!alue computes isosurface data from t'e !olume data at t'e isosurface !alue specified in iso!alue# T'at is, t'e isosurface connects points t'at 'a!e t'e specified !alue muc' t'e 8a contour lines connect points of equal ele!ation# T'e arras N, [, and define t'e coordinates for t'e !olume # T'e structure f! contains t'e faces and !ertices of t'e isosurface, 8'ic' ou can pass directl to t'e patc' command# YN,[,,ZDflo8@;W Xobtiene un flujo de datos f!Disosurface@N,[,,,0*W Xencuentra la superficie de !alor 0* subplot@;,*,; pDpatc'@f!W Xgráfica la superficie D0* set@p,5aceColor,Y#O #O #OZ,EdgeColor,Blac)W Xmodifica la traectoria !ie8@,a&is equal tig't, grid on title@:ráfica 6sosurface D* subplot@;,*,* pDpatc'@s'rin)faces@f!,#W Xs'rin) faces al ?X de la original set@p,5aceColor,Y#O #O #OZ,EdgeColor,Blac)W Xmodifica la traectoria !ie8@,a&is equal tig't, grid on title@:ráfica 6sosurface D* $'run)en 5ace
;SS
Gr á fi c aI s os u r f a c eV=2
Gr á fi c aI s o s ur f a c eV=2Sh r u n k enFa c e
2
2
1 0
0
1 2
2
2
2 0 2
4 2
0 2
4 2
Las gráficas precedentes demuestran el uso de la función srin:2aces# Algunas !eces el conjunto de datos contienen muc'os puntos# La función reduce'olume reducepatc representan dos forma para mejora la !isuali"ación de una isosuperficie# La función reduce'olume elimna los datos antes que se forma la isosuperficie, cuando reducepatc elimina traectorias para minimi"ar la distorsión# Considere el siguiente ejemplo, YN, [, , ZDflo8W f!Disosurface@N,[,,,0*W subplot@*,*,; XGriginal pDpatc'@f!W 7pDsi"e@get@p,5aces,;W set@p,5aceColor,Y#O #O #OZ,EdgeColor,Blac)W !ie8@,a&is equal tig't, grid on "label@sprintf@Xd 3atc',7p title@Griginal subplot@*,*,* Xolumen reducido YNr,[r,r,rZDreduce!olume@N,[,,,Y * *ZW f!rDisosurface@Nr,[r,r,r,0*W pDpatc'@f!rW 7pDsi"e@get@p,5aces,;W set@p,5aceColor,Y#O #O #OZ,EdgeColor,Blac)W !ie8@,a&is equal tig't, grid on "label@sprintf@Xd 3atc',7p title@olumen reducido subplot@*,*, XTraectoria reducida pDpatc'@f!W set@p,5aceColor,Y#O #O #OZ,EdgeColor,Blac)W !ie8@,a&is equal tig't, grid on reducepatc'@p,#;O Xmantiene el ;OX de las caras ;SV
7pDsi"e@get@p,5aces,;W "label@sprintf@Xd 3atc',7p title@Traectoria reducida subplot@*,*,> Xolumen traectoria reducida pDpatc'@f!rW set@p,5aceColor,Y#O #O #OZ,EdgeColor,Blac)W !ie8@,a&is equal tig't, grid on reducepatc'@p,#;O Xmantiene el ;OX de las caras 7pDsi"e@get@p,5aces,;W "label@sprintf@Xd 3atc',7p title@olumen traectoria reducida Or i gi nal
h2 c t a P0 6 5 62
h2 c t a P0 8 6 5 32
2
0
2
45 3 12
Tr aye ct o r i ar educ i d a
2 0
2
2
4
Vo l u me nyt r ay ec t o r i ar e du ci d a
2
h2 c t a P0 4 3 2 5-
2
Vo l u me nr e d uc i d o
h c t a0 P 8 92
0
2
45 3 12
2 0
2
2
4
Los datos tridimensionales pueden ser sua!i"ados por filtrandolos usando la función smoottE, por ejemplo, dataDrand@;?,;?,;?W Xdatos aleatorios datasDsmoot'@data,bo&,W Xdatos sua!i"ados subplot@;,*,; Xdatos aleatorios pDpatc'@isosurface@data,#O,5aceColor,Blue,EdgeColor,noneW patc'@isocaps@data,#O,5aceColor,interp,EdgeColor,noneW isonormals@data,p !ie8@W a&is !isd tig't off camlig'tW lig'ting p'ong title@+atos aleatorios subplot@;,*,* Xdatos aleatorios sua!i"ados
;S<
pDpatc'@isosurface@data,#O,5aceColor,Blue,EdgeColor,noneW patc'@isocaps@datas,#O,5aceColor,interp,EdgeColor, noneW isonormals@data,p !ie8@W a&is !isd tig't off camlig'tW lig'ting p'ong title@+atos sua!i"ados
Dat osa l eat o r i os
Da t o ss u av i z a do s
El ejemplo de arriba demuestra el uso de la función isocaps isonormals# La función isocaps crea las caras sobre la superficie e&terior del bloque# La f unción isonormals modifica las propiedades de las traectorias del dibujo tal que el trabajo se ilumina correctamente#
,r82icas 28ciles. Cuando no se tiene tiempo para especificar los datos puntuales e&plicitamente para una gráfica 0+# Matlab proporciona las funciones e4contour> e4contourE> e4mes> e4plotE> e4sur2> sur2c# Estas funciones construen graficas como sus equi!alentes sin el prefijo e4# $in embargo, la entrada de argumentos son funciones definidas por cadenas o s%mbolos matemáticos opcionalmente los limites sobre la cual la gráfica se generara# 6nternamente, las funciones calculan los datos generan la gráfica, por ejemplo, fstrDYQ@;0&#*#Qe&p@0@*0@K;#* ### 0;?Q@&FO00#O#Qe&p@0*0#*### 0;FQe&p@0@&K;#*0#*ZW subplot@*,*,; e"mes'@fstr title@Mes' de 3ea)s@&, subplot@*,*,* e"surf@fstr title@$urf de pea)s@&, subplot@*,*, e"contour@fstr ;S=
title@Contorno de pea)s@&, subplot@*,*,> e"contourf@fstr title@Contornof de pea)s@&, MeshdePeaks( x, y)
Su r fd ep ea ks ( x , y )
10
10
0
0
10
10 2
0
0 2 x
2 y
2
2
2
Co nt o r n ofd ep ea ks ( x , y )
2
2
y0
y0
2
2 0 x
0 2 x
2 y
Co nt o r n od ep ea k s( x , y )
2
0
2
2
0 x
2
&sando el color para describir la cuarta dimensión. Considere la función sen@rFr o sen c que resulta en la superficie sombrero como se muestra en la figura# .na forma para crear este es9 &D0V#O9#O9V#OW YN [ZDmes'grid@&W 1Dsqrt@N#*K[#*KepsW Dsin@1#F1W mes'@
Xdatos Xdatos en el plano Xcrea sombrero
El primer comando define el dominio & sobre el cual será e!aluada la función# La tercera declaración crea una matri" de renglones repetidos +espués se genera el correspondiente , una matri" r es creada que contiene la distancia desde el centro de la matri", lo cual es el origen# 5ormando la función sinc aplicando mes' se muestra la gráfica a continuación9
;V?
1
0. 5
0
0 . 5 40 30
40 30
20
20
10
10 0 0
La gráfica de superficies tales como mes sur2 !ar%an de color a lo largo del eje " a menos que un argumento de color se de, por ejemplo, sur2)J>0>Z* es equi!alente a sur2)J>0>Z>Z*# Aplicando color al eje " produce una l%nea de color pero no proporciona información adicional debido a que el eje " a e&iste# 3ara 'acer un mejor uso del color, se sugiere que el color se use para describir alguna propiedad de los datos no reflejados por los tres ejes# As% se requiere especificar diferentes datos para el argumento del color para función gráfica +# &D0V#O9#O9V#OW YN [ZDmes'grid@&W 1Dsqrt@N#*K[#*KepsW Dsin@1#F1W subplot@*,*,; surf@N,[,, colormap@gra s'ading interp a&is tig't off title@+efault, subplot@*,*,* surf@N,[,,[ s'ading interp a&is tig't off title@Eje [ subplot@*,*, surf@N,[,,N0[ s'ading interp a&is tig't off title@Eje N0 [ subplot@*,*,> surf@N,[,,1
Xdatos Xdatos en el plano Xcrea sombrero Xcolor por default
Xcolor por el eje [
Xcolor por el diagonal
Xcolor por el radio ;V;
s'ading interp a&is tig't off title@1adio Def aul t ,Z
Ej eY
Ej eX-Y
Radi o
subplot@*,*,; surf@N,[,,abs@del*@V colormap@gra s'ading interp a&is tig't off title@Cur!atura subplot@*,*,* Ydd&,ddZDgradient@W surf@N,[,,abs@dd& s'ading interp a&is tig't off title@dFd& subplot@*,*, surf@N,[,,abs@dd s'ading interp a&is tig't off title@dFd subplot@*,*,> d1Dsqrt@dd*Kdd#*W surf@N,[,,abs@d1 s'ading interp a&is tig't off title@d1
XLaplaciano absoluto
Xcalcula el gradiente de la superficie Xpendiente absoluta en la direccion &
Xpendiente absoluta en la direccion
Xpendiente absoluta en radio
;V*
esumen de comandos gr82icos en E dimensiones plotE +ibuja l%neas puntos en dimensiones $inta&is9 a plot@&,," b plot@&,," c plot@&,,",tipo_l%nea d plot@&;,;,";,tipo_l%nea,###,&n,n,"n,tipo_l%nea Ejes de referencia Ej# tD?9?#?O9;?QpiW plot@sin@t,cos@t,t
contour> contourE :enera dibujos compuestos de l%neas de !alores de datos constantes obtenidos de una matri" de entrada $inta&is9 a contour@" b contour@",n c contour@&,," d contour@&,,",n Ej# contour@pee)s contour@pee)s,? contourE Misma función de contour en dimensiones $inta&is9 a contour@" b contour@",n c contour@&,," d contour@&,,",n Ej# contour@pea)s,? mesgrid :enera arreglos N [ para dibujos en dimensiones $inta&is9 a YN,[Z D mes'grid@&, b YN,[Z D mes'grid@& D\ mes'grid@&, Ej# E!alue dibuje la funcion "D&Qe&p@0&*0* sobre el rango 0*RD&RD*, 0*RDRD* YN,[ZDmes'grid@0*9*9*W "DQe&p@0&*0*W ### mes'@ &D0<9?#O,
mes> mesc - mes4 +ibujan una superficie de malla tridimensional, crando una perspecti!a del dibujo, sobre bajo el plano de referencia# $inta&is9 a mes'@&,,",c ;V
b mes'@&,," c mes'@&,,",c d mes'@&,," e mes'@",c f mes'@" g mes'c@### D\ mismo que mes' ' mes'c@### D\ mismo que mes'
mesc A/ade un plano de contorno debajo del dibujo mes4 A/ade un plano de referencia o cortina al dibujo Ejemplo9 Y&,Z D mes'grid@09*9W "Dpea)s@&,W mes'c@&,," Y&,Z D mes'grid@09*9W "Dpea)s@&,W mes'"@&,," sur2> sur2c Crean superficies sombreadas en dimensiones $inta&is9 a surf@&,,",c b surf@&,," c surf@&,,",c d surf@&,," e surf@",c f surf@" g surfc@### D\ misma sinta&is que surf Ej# Y&,ZDmes'grid@09#*9W "Dpea)s@&,W surf@&,," )DOW nD*)0;W Y&,,"ZDsp'ere@nW cD'adamard@*)W### surf@&,,",cW colormap@'ot donde9 adamard 9 matri" 'adamard compuesta de ;s 0;s, empleada en procesamiento de se/ales análisis numérico Ej# @matri" de >Q> ;;;; ; 0; ; 0; ; ; 0; 0; ; 0; 0; ; spere :enera una esfera Y&,,"Z D sp'ere@n n 0 n-mero de meridianos Ej# Y&,,"ZDsp'ere@*?W mes'@&,," o con 9 colormap@'ot sur2l superficie sombreada tridimensioanl con efecto de refle&ión de lu" $inta&is9 a surfl@" b surfl@",s ;V>
c surfl@&,," d surfl@&,,",s s 0 dirección de la lu" Ej# Y&,ZDmes'grid@09?#?;9W "Dpea)s@&,W surfl@&,,"
sading Establece las propiedades de sombreado con color $inta&is s'ading faceted s'ading interp s'ading flat sading 2lat 0 cada segmento de la superficie tiene un !alor constante determinado por el color de los puntos e&tremos del segmento o sus esquinas sading interp 0 el color en cada segmento !aria linealmente e interpolo los !alores e&tremos o esquinas sading 2aceted 0 utili"a sombreado UflatU con l%neas de malla negras superpuestas 3ara el ejemplo anterior, a/adiendo9 s'ading interp posteriormente9 colormap@graW
a6is Escala apariencia de los ejes $inta&is9 a a&is@Y&min, &ma&, min, ma&Z b a&is@Y&min, &ma&, min, ma&, "min, "ma&Z c a&is@auto d a&is@ij e a&is@& f a&is@square g a&is@equal ' a&is@off i a&is@on donde9 a&is@auto reali"a el escalamiento de ejes a su modo de autoescalamiento por default a&is@ij dibuja nue!amente la gráfica# El eje es !ertical es numerado de arriba 'acia abajo# El eje j es 'ori"ontal es numerado de i"quierda a derec'a# a&is@& regresa la forma de ejes ;VO
cartesianos que e&iste por default# El eje & es 'ori"ontal se numera de i"quierda a derec'a# El eje es !ertical se numera de abajo 'acia arriba a&is@square determina que la región de los ejes es cuadrada a&is@equal indica que los factores de escalamiento marcas incrementales a lo largo de los ejes & son iguales# a&is@off desacti!a las etiquetas de los ejes las marcas a&is@on acti!a las etiquetas de los ejes las marcas 3ara el ejemplo -ltimo9 ### a&is@Y0 0 0<
2illE colorea pol%gonos de dimensiones a fill@&,,",c b fill@&;,;,";,###,&n,n,"n Ej# colormap@'ot fill@rand@,>, rand@,>, rand@,>, rand@,> donde9 rand matrices n-meros aleatorios distribuidos uniformemente $inta&is9 a rand@n 0 matri" de n&n b rnad@m,n 0 matri" de m&n Ej# fill@rand@*?, rand@*?, rand@*?, rand@*? load carga en el area de trabajo un arc'i!o @imagen, sonido, datos, etc $inta&is a load arc'i!o b load arc'i!o#e&t donde9 e&t 0 e&tensión Ej# load clo8n image crea un objeto imagen lo despliega $inta&is9 a image@& b image@&,,& c despliega la matri" c como una imagen ;VS
d especifica los l%mites de los datos de la imagen en los ejes & e # En b, & e son !ectores Ej# load clo8n colormap@map image@&
brigten 'ace más brillante o más obscura la imagen $inta&is9 a brig'ten@alfa b brig'ten@map,alfa donde9 ?RalfaR; más brillante 0;RalfaR? más obscuro +el ejemplo anterior9 ### brig'ten@?#S ó brig'ten@0?#S
cl2 borra la figura sound con!ierte un !ector en sonido @en computadoras sparc macintos' $inta&is a sound@ b sound@,5s donde9 5s frecuencia especificada en H" Ej# load train sound@,5s tD@?9lengt'@0;F5sW plot@t,
5unción plot mes' mes'c mes'" slice surf surfc surfl 8aterfall fill s'ading 'idden surfnorm
+escripción :ráficas l%neas puntos en el espacio + $uperficie mes' Mes' con l%neas de contorno Mes' con plano cero isuali"ación !olumétrica :ráfica de superficie s'aded :ráfica de superficie con contornos :ráfica de superficie con l%neas básicas :ráfica con caida +ibuja l%neas poligonales llenas en + Modo de color en sombra 1emue!e las l%neas 'idden $uperficie normal ;VV
a&is ca&is colormap grid bo& 'old subplot daspect pbaspect &lim lim "lim !ie8 !ie8mt& rota rotate ted ddd clablel contour contour cont contou ourc rc campos camta amtarg rget et cam!a camcamproj camorbit campan camdoll camroll cam" cam"oo oom m image pcolor qui!er clinder sp'ere
Apariencia escalamiento de los ejes Ejes escalados con pseudocolor Colores L%neas de rejilla !isibles Ejes de la caja caja !isibles Mantiene la gráfica actual Crea m-ltiples figuras +atos en prop roporción de aspecto Cajas gráficas gráficas proporcionadas Limites del eje & L%mites del eje L%mites del eje " Especificación del punto de !ista + Matri" de de tran ranformación 1ota 1o taci ción ón inte intera ract cti! i!aa de de eje ejess 3one etiquetas a los contornos :ráfica contornos :ráfic fica contornos + Calc Calcul ulaa grá gráfi fica ca de cont contor orno noss @us @usad adoo por por cont contou our r 3osición de la cámara Gbjeti jeti!o !o de la la cá cámara yngulo de !ista de la cámara ector de la cámara 3roección de de la cámara Grbita de la cámara 3an cámara +oll cámara 1oll cámara Acer Ac erca cami mien ento to de la cáma cámara ra +espiega la imagen :ráfica el pseudocolor pseudocolor :ráficas qui!er :enera un cilindro :enera una esfera
wCóm wCómoo se !erá !erá una una matri atri"" iden identi tida dadd como como una una supe superf rfic icie ie de malla alla`` Trate ate mes'@@ee@;># .n método más fácil de genera las matrices & e usadas para la e!aluación de la función de dos !ariables, !er el arc'i!o0m mes'dom#m# También pruebe rot=?, la cual cual gira las matrices en en incrementos de =? grados, flip& flip# flip#
cump cumpro rodd cum cumsum sum ma& mean median min
Análisis de datos 3rod 3roduc ucto to acum acumul ulat ati! i!oo de de ele eleme ment ntos os $uma $uma acum acumul ulat ati! i!aa de de elem elemet etno noss alore más grande alor medio alor mediano alor más peque/o ;V<
prod sort st d sum 'ist table; corr co! spline
3roducto de elementos elementos Grdenación en orden ascendente +es!iaicón estándar $uma de elementos Histograma Estilo de tabla Matri" de correlación Matri" de co!arian"a 6nterpolación c-bica spline
del* diff gra gradie dient
+iferencias finitas Laplaciano di discreto de de ci cinco pu puntos 5unción de apro&imación de deri!ada :ra :radie diente apro apro&i &im mado
corr corrco coef ef co!
con! on! con!* deco decon! n! filter filt filteer* freq req" freq reqs &corr &cor &corr* r*
abs angle cpl& cpl&pa pair ir dft fft fft* ffts fts'ift 'ift idft ifftt ifft* ne&t ne&tpo po8* 8* un8r un8rap ap
Correlación Coef Co efic icie ient ntee de de cor corre rela laci ción ón Matri" de co!arian"a
5iltro con!olución Con!o on!olu lucción ión m-lti -ltipl plic icaació ción polin olinom omia iall Con!ulución bid bidime imensional +eco +e con! n!ol oluc ució iónn di!i di!isi sión ón poli polino nomi mial al 5iltro di digital un unidimensional 5iltr iltroo dig digital ital bidim idimeensio sional nal 1espuesta a lafre frecuencia di digital 1espuesta a la fr frecuencia an analógica 5unción de correlación cru" ru"ada Corr Co rrel elac ació iónn cru cru"a "ada da bidi bidime mens nsio iona nall
Transformada de 5ourier Magnitud compleja yngulo de fase Grde Grdenn de n-m n-mer eros os in in pare paress comp comple lejo joss conj conjug ugad ados os Transformada discreta de fourier Transformada rapida de 5ourier Transformada di discreta de de 5o 5ourier bi bidimensional Mo!i Mo!im mient ientoo de del cer ceroo 'a 'acia el cen centr troo de del es espec pectrto trto Transformada in!ersa Transformada in!ersa rapida de fourier Transformada in!ersa de fourier bidimensional 3ro& 3ro&im imaa pot poten enci ciaa más más alt altaa de de * 1emu 1emue! e!ee el el áng ángul uloo de de fas fasee a tra! tra!és és de fron fronte tera rass de de S? S? o
;V=
colmmd colp colper erm m dmpe dmperm rm rand randpe perm rm smm smmmd md smr smrcm cm
Algoritmos de reorden :rado m% m%nimo de de co columna Grde Grdenn de de col colum umna na basa basado do en cont conteo eo no cero cero +eso +e socm cmpo posi sici ción ón de +u +uma mage ge0M 0Men ende dels lso' o'nn 3erm 3ermut utac ació iónn !ect !ector oria iall alea aleato toria ria :ra :rado de de sim simeetr%a tr%a m%nim %nimoo Grd Grden in!e in!ers rsoo de Cu Cut' t'il ill0 l0Mc McPe Peee
7orma, n-mero de condición rango rango cond condes estt Co Cond ndic ició iónn de de nor norma ma esti estima mada da0; 0; normest 7orma es estima imada0* spran) 1ango estructural
spaugm spaugment ent sppa spparm rmss sumb sumbfa fact ct
Misceláneos $istem $istemaa de de forma forma de m%nimo m%nimoss cuad cuadrad rados os aum aument entado ado Conj Co njun unto to de pará paráme metr tros os de ruti rutina nass de de mat matri rice cess spa spars rsee Anál An ális isis is de fact factor ori" i"ac ació iónn sim simbóli bólica ca
spdi spdiaags spee sprandn spar sparnd nds sm m
find full spars parsee spcon! spcon!ert ert
5unciones de matrices sparse Matr Matri" i" spars parsee form formaada desde sde las las diago iagona nale less Matri" identidad sparse Matri" sparse aleatoria Matr Matri" i" simé simétr tric icaa spa spars rsee ale aleat ator oria ia Con!ersión de sparse a full Encuentra %ndices de entradas no ceros Con!ierte matri" sparse a matri" full Cre Crea una matri atri"" spars arse desd desdee %ndi %ndicces no cero eros Con!ie Con !ierte rte desde desde matri matri"" spars sparsee a format formatoo e&te e&terno rno
Trabajando Trabajando con entradas no ceros de matrices sparse issp isspar arse se erdad rdader eroo si si la la matr matri" i" es spar sparse se nn" 7-mero de entradas no cero non"eros ros Entradas no no ce cero n"ma n"ma&& Cant Cantid idad ad de alma almace cena nami mien ento to loca locali" li"ad adoo para para entr entrad adas as no cero cero spal spallo locc Loca Locali li"a "aci ción ón de memo memori riaa par paraa ent entra rada dass no no cer ceroo spfun Aplicación de de funciones a entradas no no cero spones 1empla"a en entrad radas no no ce cero co con un unos isuali"ando matrices sparse gplo gplott :raf :rafia ia como como en la teor teoria ia gráf gráfic icaa sp isuali"a es estruc ructura de de sp sparsi rsit
;
Creación control de figuras (indo8 clf Borra la figura actual close Cierra la figura figure Crea una figura gcf Gbtiene manejo para la figura actual
a&es a&is ca&is cla gca 'old subplot
Creación control de ejes Crea ejes en posición arbitraria Controla la apariencia escalameinto de los ejes Controla escalameinto pseudocolor Borra los ejes actuales Gbtiene manejo de los ejes actuales Mantiene la gráfica actual Crea ejes en posición tiled Copia almacenamiento +etermina la orientación del papel 6mprime o sal!a la grafia a un arc'i!o Configura la primera local
orient print printopt
getframe mo!ie mo!iein
Mo!imiento animación Gbtiene mo!imento del marco 1egistra mo!imiento del marco 6niciali"a memoria del mo!imiento del marco
ginput is'old
abs e!al num*str int*str setstr sprintf
Comando
Misceláneos Entrada gráfica desde el ratón 1etorna el estado de posición
Te&to cadenas Con!ierte una cadena a sus !alores A$C66 E!al-a una macro de te&to Con!ierte un n-mero a cadena Con!ierte un entero a cadena Establece una bandera indicando que una matri" es una cadena Con!ierte un n-mero a cadena
$escripción
;<;
abs ac)er a&is bode c*dm clf con! ctrb decon! det dimpulse dlqr dlsim dstep eig eps feedbac) figura for format function grid gte&t 'elp 'old if imag impulse input in! jgrid legend lengt'
alor absoluto Calcula la matri" P para ubicar los polos de A0BP, !ea también place Corrige la escala del gráfico actual, !ea también plot, 2igure +ibuja el diagrama de Bode, !ea también logspace, margin, nquist; 3asa del sistema continuo al discreto Borra la figura @use clg en Matlab #O Con!olución @-til para multiplicar polinomios, !ea también decon! Matri" de controlabilidad, !ea también obs! +econ!olución di!isión de polinomios, !ea también con! Halla el determinante de una matri" 1espuesta al impulso de sistemas lineales de tiempo discreto, !ea también dstep +ise/o de reguladores L41 lineales cuadráticos para sistemas de tiempo discreto, !ea también lqr $imulación de sistemas lineales de tiempo discreto, !ea también lsim 1espuesta al escalón de sistemas lineales de tiempo discreto, !ea también stairs Calcula los auto!alores de una matri" Tolerancia numérica del Matlab Cone&ión de dos sistemas por realimentación# Crea una nue!a figura o redefine la figura actual , !ea también subplot, a&is La"o 5or07e&t 5ormato 7umérico @d%gitos significati!os, e&ponentes 3ara arc'i!os0m del tipo función +ibuja la grilla en el gráfico actual Agrega te&to al gráfico actual, !ea también te&t Auda Mantiene el gráfico actual, !ea también figure Ejecuta código condicionalmente +e!uel!e la parte imaginaria de un n-mero complejo, !ea también real 1espuesta al impulso de sistemas lineales de tiempo continuo, !ea también step, lsim, dlsim 3rompt para entrada de usuario 6n!ersa de una matri" :enera grilla de coeficiente de amortiguamiento @"eta tiempo de establecimiento @sigma constantes , !ea también sgrid, sigrid, "grid Leenda en un gráfico Largo de un !ector, !ea también si"e
;<*
linspace lnquist; log loglog logspace lqr lsim margin norm nquist; obs! ones place plot pol poladd pol!al print p"map ran) real rlocfind rlocus roots rscale set series sgrid sigrid si"e
+e!uel!e un !ector linealmente espaciado 3roduce un diagrama de 7quist en escala logar%tmica , !ea también nquist; logaritmo natural, también log;?9 logaritmo com-n :rafica usando doble escala logar%tmica, también semilog&Fsemilog +e!uel!e un !ector logar%tmicamente espaciado +ise/o de reguladores lineales cuadráticos L41 para sistemas continuos, !ea también dlqr $imula un sistema lineal, !ea también step, impulse, dlsim# +e!uel!e margen de ganancia, margen de fase, frecuencias de cruce, !ea también bode 7orma de un !ector :rafica el diagrama de 7quist, !ea también lnquist;# 7ote que este comando reempla"a al comando nquist para obtener diagramas de 7quist más precisos# Matri" de obser!abilidad, !ea también ctrb +e!uel!e un !ector o matri" de unos, !ea también ceros Calcula la matri" P para ubicar los polos de A0BP, !ea también ac)er +ibuja un gráfico, !ea también figure, a&is, subplot# +e!uel!e el polinomio caracter%stico $uma dos polinomios alor numérico de un 3olinomio 6mprime el gráfico actual @a impresora o a arc'i!o postscript Mapa de polos ceros de sistemas lineales Halla la cantidad de renglones o columnas linealmente independientes de una matri" +e!uel!e la parte real de un n-mero complejo, !ea también imag Halla el !alor de ) los polos en el punto seleccionado :rafica el lugar de ra%ces 'alla las ra%ces de un polinomio Encuentra el factor de escala para un sistema con realimentación completa de estados $et@gca,Ntic),&tic)s,[tic),tic)s para controlar el n-mero el espaciado de marcas en los ejes 6ntercone&ión en serie de sistemas lineales que no dependan del tiempo :enera grilla de ra"ón de amortiguación @"eta frecuencia natural @(n constantes , !ea también jgrid, sigrid, "grid :enera grilla de tiempo de establecimiento @sigma constante, !ea también jgrid, sgrid, "grid +e!uel!e la dimensión de un !ector o matri", !ea también lengt'
;<