Documente Academic
Documente Profesional
Documente Cultură
INTRODUCCIN
MATLAB es un lenguaje de alto nivel (m). Entorno interactivo. Clculo numrico, visualizacin de datos y programacin. Anlisis de datos, desarrollo de algoritmos y creacin de modelos y aplicaciones. Posee funciones matemticas incluidas en su core. Permite construir grficas.
Introduccin
MATLAB es el nombre abreviado de MATriz LABoratory. Es un programa para realizar clculos numricos con vectores y matrices, y por tanto se puede trabajar tambin con nmeros escalares (tanto reales como complejos), con cadenas de caracteres y con otras estructuras de informacin ms complejas.
Introduccin
MATLAB, aparte del clculo matricial y lgebra lineal, tambin puede manejar polinomios, funciones, ecuaciones diferenciales ordinarias, grficos, entre otros. Permite la construccin de herramientas reutilizables: funciones y programas especiales (M-archivos).
Introduccn
ENTORNO DE MATLAB
Los programas se escriben en forma de comandos. Los comandos sern ingresados en la ventana Command window (ventana de comandos). En la ventana Workspace se puede obtener informacin acerca de las variables utilizadas en los programas.
Entorno de trabajo
Se usan los comandos who (lista de variables) o whos (lista de variables + informacin de tamao, tipo y atributos), para obtener informacin adicional de las variables. Para conocer el valor de una variable, se escribe en la lnea de comandos, el nombre de la variable y Enter.
Entorno de trabajo
Operaciones bsicas
Operacin Smbolo Expresin
Suma Resta
Multiplicacin Divisin Potencia
+ * / ^
a+b ab
a*b a/b a^b
Operadores
1. 2.
3.
^ *, /
+, -
Operadores
Operadores relacionales
eq == Igual ne ~= No igual lt < Menor que gt > Mayor que le <= Menor que o igual ge >= Mayor que o igual
Operadores lgicos
&& and || or ~ not
Operadores
Si se quiere evaluar una lnea pero que no escriba la respuesta, basta escribir punto y coma (;) al final de la sentencia. Si la sentencia es demasiado larga para que quepa en una sola lnea se usan tres puntos () y a continuacin Enter para indicar que contina en la lnea siguiente.
Manejo de instrucciones
Ejemplos
>> 5 * a ans = 35
>> who % da una lista de los nombres de las variables usadas Your variables are: a ans b >> whos
% da una lista de las variables usadas ms completa que la anterior
Name a ans b
Attributes
Ejemplos
Matlab no cambia la representacin interna de un nmero cuando se escogen distintos formatos, slo se modifica la forma de visualizarlo.
Formatos de nmeros
Resultado
Formato coma fija con 4 dgitos despus de la coma (es el formato que viene por defecto)
Formato coma fija con 14 o 15 dgitos despus de la coma Formato coma flotante con 4 dgitos despus de la coma Formato coma flotante con 14 o 15 dgitos despus de la coma La mejor entre coma fija o flotante con 4 dgitos despus de la coma La mejor entre coma fija o flotante con 14 o 15 dgitos despus de la coma
format long format short e format long e format short g format long g
Formato de nmeros
Resultado
Notacin cientfica con 4 dgitos despus de la coma y un exponente de 3
Notacin cientfica con 16 dgitos significantes y un exponente de 3 Formato coma fija con 2 dgitos despus de la coma Hexadecimal Aproximacin racional Positivo, negativo o espacio en blanco
3.14159265358979e+000
Formato de nmeros
El ltimo resultado obtenido se almacena en la variable ans. Las variables son sensibles a maysculas y minsculas: MiVariable <> miVariable. Los nombres de las variables:
No deben contener espacios. Deben empezar siempre con una letra. No deben sobrepasar los 63 caracteres. No deben contener caracteres especiales.
Manejo de variables
ans pi eps
Variable
El nmero real positivo ms pequeo que es utilizable El nmero real positivo ms grande que es utilizable
Manejo de variables
Los comentarios se escriben despus del smbolo de tanto por ciento (%), de este modo todo lo que se escriba a continuacin en la misma lnea no ser tomado en cuenta para ejecucin. Se pueden colocar varias rdenes en una lnea si se separan correctamente:
Por comas (,) que hacen que se visualicen los resultados Puntos y comas (;) que suprimen la impresin en pantalla.
Comentarios
Se usa el comando help. Si se desea consultar el funcionamiento de un comando especfico, se usa help <comando a consultar>. F1 para abrir el panel de ayuda. Tambin se puede usar el comando lookfor <palabra> para buscar un tema especfico sobre MATLAB.
Ayuda en MATLAB
Calcular el rea de un tringulo. Calcular el rea de un crculo. Calcular el permetro de una crculo. Resolver las siguientes expresiones, asignado valores a las variables:
4+1*x^21 9 / x + 4 ^ y - 5 * 2 + 9 / -2 + 3 b/2+a-4*5/2 (4 + c) * a ^ 2 1 17 / (2 + x ^ 2) ^ y - 2 * 7 / 2 (3 * x ^ 2 - 4 / 2 * 1) > (3 * x ^ -4 / 2 * 1)
Ejercicios
INSTRUCCIONES DE CONTROL
Son un tipo de instrucciones que nos permiten manejar el flujo de ejecucin de las instrucciones de ingreso de datos y resolucin de operaciones.
input Se utiliza para ingresar tanto variables numricas como alfanumricas. Ejemplo:
Nombre = input(> Cul es tu nombre? , s) > Cul es tu nombre? Natalia [Hola, Nombre] %para imprimir el nombre con un saludo ans = Hola Natalia
input Si la funcin utiliza el parmetro s lo que se ingrese en la lnea de comando ser tratado como un tipo de dato string (cadena de caracteres) Si no se usa el parmetro s lo que se ingrese ser tratado como una expresin numrica, en cuyo caso el programa tratar de resolver.
Numero = input(> Cul es tu edad? ) > Cul es tu edad? 30 Numero = 30
disp Es una funcin que permite desplegar o imprimir los valores de variables del entorno o mensajes (cadenas de caracteres). disp(Ingrese una cifra) disp(Edad)
if else end Evala una condicin, y de cumplirse, se ejecutan ciertos comandos. En caso de no cumplirse la condicin se toma otro camino de ejecucin. Ejemplo:
if Edad >= 18, Mayor de edad, else Menor de edad, end ans = Mayor de edad
if Edad == 18, Igual, elseif Edad > 18, Mayor, else Menor, end
En una oficina se paga a los empleados en funcin del nmero de horas trabajadas en la semana. Si el nmero de horas est entre 1 y 10, el costo por hora es de $10, si el nmero de horas est entre 11 y 25, el costo por hora es de $15. Si el empleado ha trabajado ms de 25 horas, el costo por hora es de $20. Crear un programa que permita calcular el valor que se deber pagar al empleado, ingresando el nmero de horas trabajadas.
Ejercicio
while end Los comandos que se ejecutan en esta sentencia mientras la condicin sea verdadera. Se requiere inicializar las variables que se van a evaluar en la condicin. Se requiere utilizar contadores o variables para cambiar el estado de la condicin y evitar bucles infinitos. Ejemplo:
Ejercicio
for end El bucle for permite realizar un conjunto de instrucciones iguales, variando uno o varios subndices. Ejemplo:
Ejercicio
continue
Cuando se usa esta instruccin en un bucle for o while, se indica al programa que la siguiente lnea que se debe ejecutar es la siguiente iteracin de ese bucle. for i = 1:4 comando1 continue comando2 comando3 end
break
Cuando se use esta instruccin en un bucle for o while, la ejecucin del programa se dirige a la siguiente instruccin despus del end de ese bucle, es decir, se finaliza el bucle. while i < 4 comando1 break comando2 comando3 end otro comando
switch end
Esta instruccin ejecuta un grupo de comandos, basado en el valor de una variable o expresin. Ejemplo:
>> d = input ('Ingrese un nmero entre 1 y 7'); >> switch d, case 1, m = 'Lunes, case 2, m = 'Martes, case 3, m = 'Mircoles, case 4, m = 'Jueves, case 5, m = 'Viernes, case 6, m = 'Sbado, case 7, m = 'Domingo, otherwise, m = 'No existe ese da, end
Ejercicio
Generar la serie de Fibonacci. Determinar el mayor de tres nmeros ingresados. Ingresar diez nmeros y determinar cuntos de ellos son mltiplos de 5. De un men de opciones, seleccionar uno de los siguientes clculos: rea de un crculo, rea de un cuadrado o rea de un hexgono regular.
Prctica
PROGRAMAS Y FUNCIONES
MATLAB acepta comandos directos que son ejecutados para producir el resultado requerido. Estos comandos estn almacenados en archivos con extensin .m llamados scripts. Estos archivos pueden contener llamadas a otros archivos o llamadas a s mismos.
Programas
Por ejemplo, desde MATLAB abrir un archivo .m que se encuentra en la ruta de instalacin:
C:\Program Files\MATLAB\R2008a\toolbox\matlab\general\ who.m
Programas
Por ejemplo: op = 1; while (op ~= 3) disp('1. rea de un crculo.') disp('2. Permetro de un cuadrado.') disp('3. Finalizar.') op = input('Elija una opcin de clculo: '); switch op case 1 r = input('Ingrese el radio: '); area = pi*r^2; fprintf('Resultado: %f \n', area); case 2 l = input('Ingrese el valor del lado: '); perimetro = 4*l; fprintf('Resultado: %f \n', perimetro); case 3 disp('Fin'); otherwise disp('Opcin invlida'); end end
Programas
Las funciones son archivos .m, donde las variables son locales en su entorno y no definidas en el espacio de trabajo. Las funciones toman variables de entrada (argumentos o parmetros) para generar o calcular datos de salida.
Funciones
Por ejemplo, desde MATLAB abrir un archivo .m que se encuentra en la ruta de instalacin:
C:\Program Files\MATLAB\R2008a\toolbox\matlab\datafun\gradi ent.m C:\Program Files\MATLAB\R2008a\toolbox\matlab\polyfun\poly val.m
Funciones
Funciones
Funciones
Por ejemplo:
=
1 (1)2 +0.1
1 (3)2 +0.2
Funciones
5 4 = 2 3 + 6 4
Ejercicios
Realizar un programa o funcin que reciba un nmero entero y devuelva la cantidad de cifras que tiene el nmero (por ejemplo, el nmero 231 tiene 3 cifras). Realizar otra funcin que devuelva la suma de las cifras del nmero (por ejemplo, del nmero 231, la suma de sus cifras es 2+ 3 + 1 = 6).
Ejercicios
Escribir un programa que solicite el tipo de clculo a realizar: combinaciones, permutaciones o variaciones, tanto con repeticin como sin repeticin. Tambin solicita los parmetros necesarios para el clculo. El programa aplica la frmula pertinente y presenta el resultado:
Permutaciones de m elementos: ! Variaciones con repeticin de m elementos tomados de n en n: Variaciones sin repeticin de m elementos tomados de n en ! n: Combinaciones de m elementos tomados de n en n: ! ! Combinaciones con repeticin de m elementos tomados de +1 ! n en n: ! 1 !
! !
Ejercicios
ARREGLOS
Los arreglos son estructuras de datos que permiten almacenar un conjunto homogneo de elementos. Pueden ser declarados en funcin de la disposicin de sus elementos como:
Arreglos unidimensionales: tambin llamados vectores, disponen sus elementos en una fila. Su dimensin es el nmero de elementos de dicha fila.
Definicin de arreglos
Para referirse a un elemento especfico dentro del arreglo, se debe especificar la posicin que ocupa, con respecto a su disposicin, as por ejemplo, en un vector, se especifica el nmero de celda que ocupa en la fila; mientras que en una matriz, se especifica el nmero de fila y columna que ocupa el elemento.
Arreglos bidimensionales: tambin llamados matrices, dispones sus elementos en varias filas y columnas. Su dimensin representa el nmero de filas y columnas que poseen.
Definicin de arreglos
Para crear un vector, se nombra la estructura como una variable normal, y se escriben los valores que se desean almacenar, separados por comas o espacios, y entre corchetes []. Ejemplo:
>> x = [5 7 -2 4 -6] % vector con los elementos separados con espacios x= 5 7 -2 4 -6 >> y = [2,1,3,7] % vector con los elementos separados con comas y= 2137 >> z = [0 1 2,3 4,5] % vector con los elementos separados con espacios y comas en la misma definicin z= 012345
Definicin de arreglos
Para crear una matriz, se escriben los valores de cada fila como si se escribiera un vector, separndolos con punto y coma.
Definicin de arreglos
Para nombrar matrices generalmente se usar letras maysculas, y se usan letras minsculas para vectores y escalares. (Buena prctica)
Definicin de arreglos
(a:b) crea un vector cuyos elementos comienzan en el valor a y acaban en el valor b, aumentando de 1 en 1. (a:c:b) crea un vector cuyos elementos comienzan en el valor a y acaban en el valor b aumentando de c en c. linspace (a,b,c) genera un vector linealmente espaciado entre los valores a y b con c elementos. linspace (a,b) genera un vector linealmente espaciado entre los valores a y b con 100 elementos. logspace (a,b,c) genera un vector logartmicamente espaciado entre los valores 10^a y 10^b con c elementos. logspace (a,b) genera un vector logartmicamente espaciado entre los valores 10^a y 10^b con 50 elementos.
Definicin de arreglos
Ejemplos:
>> (1:7) % crea un vector que comienza en 1, aumenta de 1 en 1 y acaba en 7 ans = 1234567 >> (1:3:10) % crea un vector que comenzando en 1, aumenta de 3 en 3 hasta el 10 ans = 1 4 7 10 >> (1:4:10) % comenzando en 1, aumenta de 4 en 4 hasta el 10 y por eso acaba en 9 ans = 159 >> (50:-7:1) % crea un vector que comenzando en 50, disminuye de 7 en 7 hasta el 1 ans = 50 43 36 29 22 15 8 1
Definicin de arreglos
Ejemplos:
>> linspace (2,6,3) % genera un vector desde el 2 al 6 con 3 elementos equidistantes ans = 246 >> linspace (2,6,4) % genera un vector desde el 2 al 6 con 4 elementos equidistantes ans = 2.0000 3.3333 4.6667 6.0000 >> logspace (0,2,4) % genera un vector logartmicamente espaciado entre 10^0 y 10^2 con 4 elementos ans = 1.0000 4.6416 21.5443 100.0000
Definicin de arreglos
Se pueden crear matrices con el uso de las siguientes instrucciones (tomar en cuenta que m y n deben tomar valores naturales):
zeros (n) crea una matriz cuadrada n x n de ceros. zeros (m,n) crea una matriz m x n de ceros. ones (n) crea una matriz cuadrada n x n de unos. ones (m,n) crea una matriz m x n de unos. rand (n) crea una matriz cuadrada n x n de nmeros aleatorios con distribucin uniforme (0,1). rand (m,n) crea una matriz m x n de nmeros aleatorios con distribucin uniforme (0,1). randn (n) crea una matriz cuadrada n x n de nmeros aleatorios con distribucin normal (0,1). randn (m,n) crea una matriz m x n de nmeros aleatorios con distribucin normal (0,1). eye (n) crea una matriz cuadrada n x n de unos en la diagonal y ceros el resto. eye (m,n) crea una matriz m x n de unos en la diagonal y ceros el resto. magic (n) crea una matriz cuadrada n x n de enteros de modo que sumen lo mismo las filas y las columnas. hilb (n) crea una matriz cuadrada n x n de Hilbert, es decir, los elementos (i,j) responden a la expresin (1/(i+j-1)). invhilb (n) crea una matriz cuadrada n x n que es la inversa de la matriz de Hilbert.
Definicin de arreglos
Ejemplos:
>> zeros (3) % matriz cuadrada 3 x 3 de ceros ans = 000 000 000 >> zeros (2,5) % matriz 2 x 5 de ceros ans = 00000 00000 >> ones (2,3) % matriz de unos ans = 111 111
Definicin de arreglos
Ejemplos:
>> rand (2,4) % matriz de valores aleatorios entre 0 y 1 segn la uniforme (0,1) ans = 0.9355 0.4103 0.0579 0.8132 0.9169 0.8936 0.3529 0.0099 >> randn (2,5) % matriz de valores aleatorios segn la normal (0,1) ans = 0.8156 1.2902 1.1908 -0.0198 -1.6041 0.7119 0.6686 -1.2025 -0.1567 0.2573 >> eye (2) % matriz identidad o unidad ans = 10 01
Definicin de arreglos
Ejemplos:
>> magic (4) % matriz mgica 4 x 4 ans = 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 >> hilb (3) % matriz de Hilbert 3 x 3 ans = 1.0000 0.5000 0.3333 0.5000 0.3333 0.2500 0.3333 0.2500 0.2000 >> invhilb (3) % inversa de la matriz de Hilbert 3 x 3 ans = 9 -36 30 -36 192 -180 30 -180 180
Definicin de arreglos
Smbolo
+ *
Expresin
A+B A-B A*B
Operacin
Suma de matrices Resta de matrices Multiplicacin de matrices
.*
/ ./ \
A .* B
A/B A ./ B A\B
.\
^ .^ ' .'
A .\ B
A^n A .^ B A' A .'
grficamente
la
funcin,
Ejemplo
GRFICOS
Utilidades que permiten generar grficos en funcin de datos ingresados. Principales tipos de construccin de grficos:
Grficos
en
los
ejes
Grficos
Grficos
pie. Representacin en torta. plot3. Representacin en 3D. semilogy. Representacin semilogartmica en el eje y. semilogx. Representacin semilogartmica en el eje x.
x = semilogx(x,y) y = semilogy(x, y) pie(x)
plot3(x,y,z)
Grficos
Grficos
Grficos
Grficos
Grficos
Grficos 3D Se dibujan igual que las funciones en 2D, pero se utilizan las funciones plot2, comet3. Resolver: r(t) = (sen(t), cos(t) t) 0 < t < 8 t=linspace(0,8*pi,2000); plot3(sin(t),cos(t),t),grid on
Grficas
Funciones de la forma z = f(x, y) Al igual que las funciones de una variable, se debe iniciar generando las tablas de valores para las variables x e y. para ello se utiliza el comando meshgrid. 2 2 Resolver: = ( + ) Se genera el mallado: [x,y]=meshgrid(-2:.5:2); Se ejecuta: z=exp(-x.^2-y.^2); Se dibuja: plot3(x,y,z) Tambin se puede utilizar:
Grficos
Cuadrcula: para mostrar o eliminar la grilla del grfico, se utiliza grid on, grid off. Color: en el comando plot se pueden agragar parmetros para definir varias caractersticas, una de ellas es el color, con la instruccin: plot(x,y,r) Ejes: se manipulan con el comando axis.
axis([x1 x2 xa xb]) para que grfica aparezca en la regin x1 <= x <= x2, xa <= x <= xb axis square para que la figura se dibuje en un cuadrado, sin cambiar los rangos de los ejes. axis equal para que los rangos de los ejes sean iguales.
Utilitarios de grficos
Zoom: para agrandar o achicar el grfico se usa zoom on y zoom off respectivamente. Varias grficas en la misma figura: se utiliza el mismo comando plot, pero con ms parmetros plot(x,y,g,x,z,r) Etiquetado: para mostrar mensajes y ttulos en los ejes y en las grficas, se utilizan los comandos:
title(Ttulo de la grfica) xlabel(Etiqueta en el eje de las x) ylabel(Etiqueta en el eje de las y) legend(Leyenda sobre los datos mostrados)
Utilitarios de grficos
Utilitarios de grficos
graficar
una
funcin
por
Utilitarios de grficos
las
Ejercicios
Ejercicios
Ejercicios
MathWorks. MATLAB, the language of technical computing. Retrieved from http://www.mathworks.com Casado Fernndez, M. Manual de MATLAB. Retrieved from http://www.sisoft.ucm.es/Manuales/MATLAB_ r2006b.pdf Gil Rodrguez, M. Introduccin rpida a Matlab y Simulink para ciencia e ingeniera. Retrieved from http://site.ebrary.com/id/10140285?ppg=12
Referencias
Vitutor. Hexgono Regular. Retrieved from http://www.vitutor.net/2/1/5.html Rodrguez del Ro, R. Grficas con Matlab. Recuperado de http://www.docentes.unal.edu.co/mpalus znyk/docs/Graficas%20con%20Matlab%2 0-%20Rodriguez%20del%20Rio.pdf
Referencias