












Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
detalla los conceptos básicos para inicio del uso del software MAtlab
Tipo: Apuntes
1 / 20
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!













ISBN: 978-607-02-3578- Diseño de cubierta: D.G. Anahit Indra Ortiz Molina Edición a cargo de: Jit Press, S.A. de C.V. General Santana 253 Col. M. Carrera 07070 México, D.F., Tel. (55) 5794 5198
Queda prohibida la reproducción o transmisión total o parcial del texto o las ilustraciones de la presente obra bajo cualesquiera formas, electrónicas o mecánicas, incluyendo fotocopiado, almacenamiento en algún sistema de recuperación de información, dispositivo de memoria digital o grabado sin el consentimiento previo y por escrito del editor.
Impreso y hecho en México Printed in México
Emprendemos la redaccion de este texto como resultado de que el alfabetismo en MATLAB en las universidades continúa siendo muy bajo y de que la necesidad de emplear las buenas herramientas de cómputo matemático de manera más extendida esté presente.
El material aquí contenido está pensado para estudiantes que desconocen MATLAB, pero que les gustaría introducirse en él de manera autodidácta. También puede ser de utilidad para estudiantes de computación y métodos numéricos ya que los ejemplos y el interés principal es el control de las acciones de la máquina por medio de la sintaxis de MATLAB.
Suponemos que existe un genuino interés o una necesidad en introducirse en esta temática, que se tiene un conocimiento básico de álgebra y que se aceptan los retos con singular alegría.
donde se escriben los comandos, inmediatamente frente al prompt >> (rectángulo punteado) y donde aparecen las respuestas numéricas.
Figura 1.1 Multipaneled desktop en MATLAB.
MATLAB es un lenguaje de programación que interpreta las instrucciones línea por línea, a diferencia de otros lenguajes de programación que compilan el programa total. Esta es una afirmación correcta en parte, ya que como veremos existen las funciones que no se interpretan o incluso programas completos en MATLAB que pueden ser ejecutables. Esta parte se aclarará al ver MEX files y GUI en los capítulos 7 y 8.
Workspace (elipse continua) muestra las variables definidas e información al respecto; en un principio está vacía, pero al definir variables o realizar operaciones se acumulan y se pueden editar. Al hacer doble clic sobre la variable inicia un editor que permite su visualización y edición, siempre que sea menor a 65 536 renglones o columnas. En esta misma área se puede visualizar la carpeta en la que se está trabajando al seleccionar la pestaña correspondiente a Current Directory , MATLAB solo ve el contenido de la carpeta que está seleccionada. Para cambiar el directorio se emplea el acceso rápido (circulo segmentado, arriba al centro).
Command History (rectángulo continuo) lista las acciones solicitadas en Command Window , de la más reciente a la más antigua y se pueden pasar a la zona de trabajo navegando por medio de las flecha en el teclado (arriba y abajo) o haciendo doble clic en la línea histórica deseada.
Start (rectángulo segmentado) es el puerto de entrada a muchas de las funciones de MATLAB, herramientas de trabajo, ayudas y más. Usualmente debe estar preparado para pasar horas de sano entretenimiento en los ejemplos y guías de uso. Cuando se le ha pedido a MATLAB que realice una actividad que toma tiempo, desaparece el prompt y a la derecha de Start aparece la leyenda Busy , que indica la necesidad de tener paciencia. Si
prompt
Start
se desea cancelar el proceso se puede hacer presionando al mismo tiempo las teclas ctrl-c restableciendo el prompt y aparece la leyenda Ready a la derecha de Start.
En cálculo numérico elemental, un camino trivialmente simplista es usar una calculadora cuando la tarea es muy simple, después utilizar Excel si se requiere de gráficas más elaboradas y finalmente C++ cuando se tienen en mente acciones no desarrollas por un programa particular. El salto de una herramienta a la otra puede ser intimidante e incluso limitante. Si quisiéramos que MATLAB estuviera presente en esta evolución, igualmente puede ser una alternativa a cualquiera de las herramientas anteriores. Una de las limitaciones para iniciar a usar MATLAB como calculadora (inicialmente y después el cielo es el límite ) es que no se parece a una. Superando esta diferencia, se puede fácilmente superar las ventajas de Excel como hoja de cálculo y de ahí pasar a usar MATLAB con más provecho.
Si se escribe una expresión válida en el área de Command Window , la respuesta aparece de manera inmediata.
5*3 (presionar la tecla de cambio de línea, enter , )
ans =
15
La multiplicación de dos números se realiza y el resultado se guarda en la variable ans. El prompt indica que está listo para nuevas instrucciones.
3^
ans =
27
La potencia es igualmente evidente, el resultado se escribe en la variable ans, sustituyendo cualquier valor o contenido que tuviera anteriormente.
1/ Warning: Divide by zero.
ans =
Inf
Aquí Inf es la manera de representar ∞, que indica un número más grande que cualquiera que puede ser escrito y que en este caso resulto de intentar dividir el número uno entre cero.
cos(pi/4)
ans =
2.2204e-
MATLAB contiene un enorme material que es imposible dominarlo todo y menos aún recordarlo todo, por lo que es importante aprenda a aprender y recordar de manera eficiente. No es por accidente que al iniciar el programa, la primera línea invite a explorar el material de ayuda que contiene:
To get started, select MATLAB Help or Demos from the Help menu.
El texto subrayado es una liga directa a la ayuda en MATLAB, que abre una ventana como la mostrada en la figura 1.2.
En la figura 1.2 se ve la ventana de ayuda; en el panel izquierdo está el navegador, en el que se puede explorar por contenido, por índice, hacer búsquedas o explorar las demostraciones. Aquí se muestra el navegador por contenido (elipse continua), el libro de MATLAB (elipse segmentada), las funciones por categoría (elipse punteada) y las funciones matemáticas elementales. En el panel derecho se ve la lista de funciones exponenciales, haga doble clic en cualquier nombre en azul para ver la ayuda preparada en cuanto a su definición y uso.
log(x) es logaritmo natural de x log10(x) es el logaritmo base 10 de x atan(x) es el ángulo en radianes cuya tangente es x sinh(x) es el seno hiperbólico de x sqrt(x) raíz cuadrada de x
Algunas palabras reservadas en MATLAB log(x) es el logaritmo natural de x log10(x) es el logaritmo base 10 de x atan(x) es el ángulo en radianes cuya tangente es x sinh(x) es el seno hiperbólico de x sqrt(x) es la raíz cuadrada de x
Figura 1.2 Ventana de ayuda de MATLAB.
Muchas veces no se recuerda o conoce el nombre de la función que hace lo que buscamos, para esas ocasiones la búsqueda alfabética de funciones puede ser útil. Si recordamos el nombre de la función pero no su uso, podemos emplear Command Window y teclear help y el comando del que requiere ayuda, por ejemplo help log y aparece en el Command Window la ayuda al respecto, usualmente simplificada.
Se pueden almacenar las variables usadas en el cálculo de las expresiones
a=exp(1)
a =
Aquí a tiene el valor de la constante de Euler.
c=a*b ??? Undefined function or variable 'b'.
Aquí intentamos guardar en la variable c el resultado de multiplicar el número de Euler (a) por el contenido de b. Como no habíamos definido previamente el valor de b se nos indica. El prompt regresa en espera de una instrucción válida. La multiplicación a*b tiene la notación correcta, (a)(b) no es aceptable como multiplicación, como tampoco
Esta representación es tan común e intuitiva que no abundaremos en ella, pero la representación de este mismo número en base binaria y hexadecimal es interesante de recordar.
375 100010001. 011 1 x 28 1 x 24 1 x 20 0 x 2 ^1 1 x 2 ^2 1 x 2 ^3 D B o
375 111. 6 1 x 162 1 x 161 1 x 160 6 x 16 ^1 D H
Donde los subíndices D, B y H se refieren a decimal, binario y hexadecimal, respectivamente. Binario y hexadecimal son intercambiados fácilmente si agrupamos los binarios en 4 números, partiendo del punto. En este ejemplo: 0001 0001 0001.0110 (^) B, que son 1 1 1.6 (^) H
Decimal Binario Hexadecimal 00 0000 0 01 0001 1 02 0010 2 03 0011 3 04 0100 4 05 0101 5 06 0110 6 07 0111 7 08 1000 8 09 1001 9 10 1010 a 11 1011 b 12 1100 c 13 1101 d 14 1110 e 15 1111 f
MATLAB tiene una representación de los números en notación binaria de 64 bits que cumple la norma IEEE 754 y que es:
( 1 ) s^ 2 (^ ^1022 )( f ), si e = 0 ( 1 ) s^ 2 (^ e ^1023 )( 1 f ), si e = [1, 2046] Representación especial, si e = 2047
donde s representa al signo del número y se representa con un bit 0 o 1.
e representa al exponente del número y se define con 11 bits que cubre del entero decimal 1 al 2046, en cuyo caso se llaman números normales. En caso de que e sea cero su
representación se denomina número subnormal y en tal caso el término (1+ f ) se sustituye sólo por f. En caso de que e sea 2047 se reserva para representaciones especiales tales como NaN o inf.
f representa a la mantisa del número y está formada por 52 bits, lo que produce números
desde el número decimal 2 ^52 al número (^)
52
1
n
n (^) ; también puede ser cero y en tal caso el
número es una potencia de 2.
La siguiente tabla ilustra los números en MATLAB de acuerdo con la norma IEEE 754, en particular los valores para s , e y f.
Nombre Decimal aproximado Hexadecimal s e f -inf --------------------^ fff 0000000000000 1 2047 0 -realmax= (-)(2^1023)(1+ 2^-1+2^-2+…)
-1.797693134862316e+308 (^) ffe fffffffffffff 1 2046
52
1
n
n
(-)(2^1023)(1) -8.988465674311580e+307^ ffe 0000000000000 1 2046 0 -1=(-)(2^0)(1) -1^ bff 0000000000000 1 1023 0 -realmin=(-)(2^- 1022)(1)
-2.225073858507201e-308 (^) 801 0000000000000 1 1 0
0 0 000 0000000000000 0 0 0 eps(0)=(+) (2^-1022)(2^-52)
4.940656458412465e-324 (^) 000 0000000000001 0 0 52 2
realmin=2^-1022 2.225073858507201e-308^ 001 0000000000000 0 1 0 realmin+ eps(realmin)
2.225073858507202e-308 (^) 001 0000000000001 0 1 2 52
1=(+)(2^0)(1) 1 3ff 0000000000000 0 1023 0 3=(+)(2^1)(1+.5) 3 400 8000000000000 0 1024 2 ^1 pi 3.141592653589793^ 400 921fb54442d18 0 1024 0.57079… (+)(2^1023)(1) 8.988465674311580e+307^ 7fe 0000000000000 0 2046 0 realmax= (+)(2^1023)(1+ 2^-1+2^-2+…)
1.797693134862316e+308 (^) 7fe fffffffffffff 0 2046
(^52)
1
n
n
Inf=realmax+ eps(realmax)
--------------------- (^) 7ff 0000000000000 0 2047 0
NaN ---------------------^ fff 8000000000000 (^1 2047).
Los números reales son necesarios para las operaciones aritméticas; y acceder a ellos permite disponer de un continuo de números, que se pueden visualizar como cualquier punto de la recta numérica, no así el conjunto de números que se puede representar en MATLAB, que es diferente en dos aspectos fundamentales:
Por ejemplo los números reales entre 72057594037927932 y 72057594037927944 se representan por el mismo número en MATLAB (4370000000000000 (^) H) =
n
n f n n 1.
El problema es que si desarrollamos el paréntesis, resulta que f ( n ) es cero para cualquier valor de n. MATLAB, sin embargo, realiza las operaciones en el orden de su prioridad, primero potencia, después multiplicación y división y finalmente suma y resta, (los paréntesis tienen preferencia sobre el orden de prioridad). En este caso se sumará n + antes de dividir entre n , después se resta el uno, y todo se multiplica por n , y lo que resulte se resta al uno. Como resultado, entonces, de este orden de operaciones y de la representación numérica, f(n) no vale cero para toda n.
En MATLAB el código para ilustrar la función anterior es el siguiente, donde eps se emplea para aumentar y normalizar la diferencia con el cero.
n=1:500; f=(1-n.((n+1)./n-1))./eps(n); plot(n,f,'')
Figura 1.3 Diferencia artificialmente introducida por MATLAB por el orden de las operaciones, solo las n que son potencias de 2 dan cero para la función f ( n ).
Si se desea guardar las variables se procede por File-Save workspace as y se guarda con el nombre deseado. Para guardar la historia de comandos se procede a seleccionarlos en el panel de Command History y con el botón derecho del ratón se selecciona Create M- File y aparece otra ventana con la historia de los comandos y ahí se puede guardar su contenido en un archivo. Más adelante se verá cómo generar las figuras, las cuales se pueden guardar en formatos muy diversos. *.fig es el formato nativo de MATLAB, es modificable y es el más conveniente ya que guarda los valores que lo generaron. *.eps es postscript y se pueden anexar a documentos Word y la calidad no cambia al cambiar el tamaño. *.jpg es el más común pero la calidad es muy limitada y disminuye rápidamente al cambiar de tamaño. Este comentario se basa en que las imágenes bitmap (como las jpg) fundamentan su calidad en el tamaño del pixel. Las imágenes vectoriales basan su calidad en fórmulas que describen los objetos así que se pueden ampliar o reducir sin alterar la calidad.
a)
e^ e A e
b) (^)
B cos 1
c) (^)
log C e
d) determine qué número del conjunto es primo {0,1,2,3,4,5,6,7,8,9,10,97,99}
Respuestas: a) A =3.8143e+ b) B =1.9106 [rad] c) C =0. d) [2, 3, 5, 7, 97]