Professional Documents
Culture Documents
Clase 2
Fundamentos y programacin en MATLAB
Para fines estrictamente acadmicos, la presente clase tiene informacin generada por el Dr. Michael R. Gustafson II, Duke University and Prof. Steve Chapra, Tufts University
Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional Dr. Eduardo A. Chvarri V.
Objectivos
Aprender como son asignados los nmeros reales y
complejos a las variables. Aprender como los vectores y matrices son asignados usando asignaciones simples, el operador de color, y las funciones linspace y logspace. Entender las reglas de prioridad para construir expresiones matemticas. Aprender como construir funciones y como aprender ms acerca de las facilidades y ayudas del MATLAB. Aprender como usar vectores para graficar una simple linea basado en una ecuacin.
Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional Dr. Eduardo A. Chvarri V.
El ambiente MATLAB
MATLAB utiliza tres ventanas primarias Ventana de comando [Command window] usada para introducir comandos y datos Ventana(s) Grfica(s) [Graphics window(s)] usada para mostrar ploteos y grficos Ventana de edicin [Edit window] usada para crear y editar archivos M (programas) Dependiendo de su computadora y la versin del
Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional Dr. Eduardo A. Chvarri V.
El ambiente MATLAB
Directorio Ventana de edicin Ventana de Comandos
Historial
Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional Dr. Eduardo A. Chvarri V.
Modo Calculadora
La ventana de comandos del MATLAB puede ser usada
como una calculadora donde se puede tipear la lnea de comandos por linea. MATLAB asignar el resultado en una variable ans Ejemplo: >> 55 - 16 ans = 39
Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional Dr. Eduardo A. Chvarri V.
Variables MATLAB
Mientras se use la variable ans puede ser til para
mejorar los clculos rpidamente. MATLAB permite asignar valores a variables con nombre. El resultado del almacenamiento de los valores en la memoria corresponde al nombre de la variable. MATLAB puede almacenar valores individuales como arreglos y puede almacenar datos numricos y texto (los cuales son actualmente almacenado como numrico). MATLAB no requiere pre-inicializacin de una variable. Si no existe, MATLAB la crear automticamente.
Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional Dr. Eduardo A. Chvarri V.
Escalares
Para asignar un simple valor a una variable,
simplemente se tipea el nombre de la variable, el signo =, y el valor: >> a = 4 a = 4 Ntese que el nombre de las variables deben iniciarse con una letra, aunque ellas pueden contener letras, nmeros y guiones bajos (_)
Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional Dr. Eduardo A. Chvarri V.
Escalar (cont)
Se puede indicar al MATLAB que no reporte el
resultado de un clculo, aadiendo el punto y coma (;) al final de la lnea. Por otra parte, puede indicarsele al MATLAB que reporte el valor almacenado en una variable, tipeando su nombre: >> a a = 4
Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional Dr. Eduardo A. Chvarri V.
Escalares (cont)
Puede utilizarse una variable compleja i (o j) para representar la unidad de un nmero imaginario. Puede indicarle al MATLAB que reporte los valores usando diferentes formatos mediante el comando format. Note que los valores sern almacenados de la misma forma, pero pueden ser mostrados en la pantalla de diferente manera. Algunos ejemplos:
short escalar fijo formato con 5 dgitos long escalar fijo con 15 dgitos para doble (double) y 7
dgitos para simple (single) short eng formato ingenieril con 5 dgitos y una potencia mltiplo de 3.
Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional Dr. Eduardo A. Chvarri V.
Ejemplo de Formatos
>> format short; pi
ans = 3.1416 >> format long; pi ans = 3.14159265358979 >> format short eng; pi ans = 3.1416e+000 >> pi*10000 ans = 31.4159e+003
formato sea utilizado.
Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional Dr. Eduardo A. Chvarri V.
rectangulares de datos para una dimensin se denominan vectores y para dos dimensiones son llamadas matrices. Los arreglos en MATLAB utilizan [ ] Dentro de ellos, los indices son separados por espacios o comas. Las filas son separadas por punto y comas.
Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional
Array Examples
>> a = [1 2 3 4 5 ] a =
1 2 3 >> b = [2;4;6;8;10] b = 2 4 6 8 10
Nota 1 - MATLAB no muestra los brackets Nota 2 Si usa un fondo monoespaciado, tal como un Courier,
Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional Dr. Eduardo A. Chvarri V.
Matrices
Un arreglo 2-D, o matriz de datos se ingresan linea por
linea, con espacios (o comas) separados con filas o punto y coma, separando las filas:
>> A = [1 2 3; 4 5 6; 7 8 9] A = 1 2 3 4 5 6 7 8 9
Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional Dr. Eduardo A. Chvarri V.
operador transpuesta (apostrofe) puede ser utilizado para cambiar el arreglo sobre su diagonal. Por ejemplo, si b es un vector fila, b es un vector columna y contiene la conjugada compleja de b. La ventana de comandos le permite a Usted, separar las filas mediante la accin de la tecla Enter key los archivos script y las funciones le permitirn poner filas en nuevas lineas. El comando who reportar el nombre de las variables utilizadas; whos dar el tamao, memoria, y tipos de datos de los arreglos.
Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional Dr. Eduardo A. Chvarri V.
1 2 3 4
5 6 7 8
9 10 11 12
Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional
C = 2 3 3 10
4 3 0 13
9 16 8 17
Se puede accesar tambin usando fila y columna: C(2,1) reporta 3 C(3,2) reporta 0 C(5,1) reporta un error!
Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional Dr. Eduardo A. Chvarri V.
Creacin de Arreglos
Existen varias formas de crear arreglos: zeros(r,c) crear una matriz de r filas por c columnas de ceros. zeros(n) crear una matriz de n por n de ceros. ones(r,c) crear una matriz de r filas por c columnas de unos ones(n) crear una matriz de n por n de unos help elmat contiene una lista de matrices
elementales.
Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional
utilizado para crear arreglos linealmente espaciados de puntos usando la notacin start:diffval:limit donde start es el primer valor del arreglo, diffval es la diferencia entre valores sucesivos del arreglo,y limit es el lmite para el ltimo valor (no necesariamente es el ltimo valor).
1.6000
2.2000
2.8000
Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional Dr. Eduardo A. Chvarri V.
3 4 5 6 Para crear una serie decreciente, diffval debe ser negativo: >> 5:-1.2:2 ans = 5.0000 3.8000 2.6000 Si start+diffval>limit para una serie creciente o start+diffval<limit para una serie decreciente, retorna una matriz vacia: >>5:2 ans = Empty matrix: 1-by-0 Para crear una columna transpuesta, el apostrofe es afuera del parentesis y no en el valor lmite. SI (3:6) NO 3:6
>>3:6 ans =
Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional
espaciamiento lineal entre dos puntos, se utiliza el comando linspace linspace(x1, x2, n) crear un arreglo con espaciamiento de n entre los puntos x1 y x2 >>linspace(0, 1, 6) ans = 0 0.2000 0.4000 0.6000 0.8000 1.0000 Si n se omite, se crean 100 points. Para generar una columna transpuesta, el apostrofe es al final del comando linspace.
Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional
espaciamientos logaritmicos entre dos nmeros, se usa el comando logspace. logspace(x1, x2, n) crear un arreglo con espaciamiento logartmico de n puntos entre 10x1 y 10x2 >>logspace(-1, 2, 4) ans = 0.1000 1.0000 10.0000 100.0000 Si n se omite, se crean 100 puntos. Para generar una columna transpuesta, el apostrofe va al final del comando logspace.
Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional Dr. Eduardo A. Chvarri V.
>> s = 'Davis' La concatenacin: >> x = [f s] x = Miles Davis Ellipsis (...): Usado para lneas continuas largas >> a = [1 2 3 4 5 ... 6 7 8] a = 1 2 3 4 5 6 7 8 Usted puede piezar cortos strings con ellipsis >> quote = ['Any fool can make a rule,' ... ' and any fool will mind it'] quote = Any fool can make a rule, and any fool will mind it
Operadores Matemticos
Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional Dr. Eduardo A. Chvarri V.
Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional
Orden de operaciones
parntesis, entonces por defecto ser:
y = -4 ^ 2 gives y = -16
Diferente a:
y = (-4) ^ 2 gives y = 16
Nmeros Complejos
>> >> >> ans
Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional Dr. Eduardo A. Chvarri V.
Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional
Clculos de Vector-Matriz
matrices. El operador * para matrices es definido como el producto de matrices (outer product)
El nmero de columnas de la primera matriz, debe ser el mismo
nmero de filas de la segunda matriz. El tamao de la matriz resultante tendr tantas filas como la primera matriz y tantas columnas como la segunda matriz.
Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional
Clculos Elemento-por-Elemento
Existe la posibilidad de realizar los clculos elemento por
elemento en una matriz o vector. El manual del MATLAB llama a esto operaciones con arreglos. MATLAB define .* y ./ (note los puntos) como los operadores de multiplicacin de arreglos y divisin de arreglos.
Para la operacin de arreglos, ambas matrices deben ser del mismo
ser 1x1
Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional Dr. Eduardo A. Chvarri V.
Construyendo Funciones
Existen diversas formas de construir funciones.
La funcin help brinda informacin acerca la existencia y
manipulacin de funciones, incluyendo funciones para conseguir informacin acerca de las matrices. help elfun listar funciones matemticas elementales, incluyendo trigonomtricas, exponenciales, complejas, redondeos, etc.
Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional Dr. Eduardo A. Chvarri V.
Grficos
MATLAB tiene gran capacidad de funciones para construir grficos.
Dos de las funciones primarias son plot (para plotear datos en 2-D) y plot3 (para plotear datos en 3-D). En adicin a los comandos de ploteo, MATLAB le permite etiquetar los grficos con title, xlabel,
Ejemplo de ploteo
title('Velocidad de caida terminal') xlabel('Tiempo (s)'); ylabel('Velocidad (m/s)'); grid on;
Velocidad de caida terminal 60
Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional Dr. Eduardo A. Chvarri V.
50
40
Velocidad (m/s)
30
20
10
6 Tiempo (s)
10
12
Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional
Opciones de ploteo
MATLAB puede utilizar diversos colores, estilo de puntos y estilos de lneas. Ellos se especifican al final del comando plot. Para el caso por defecto, para un simple conjunto de datos, se crea una lnea azul sin puntos. Ejemplos de especificaciones de ploteo:
ro: linea roja discontinua con puntos como circulos. gd diamantes verdes en los puntos sin linea m-- linea magenta discontinua sin simbolos en los
puntos
Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional Dr. Eduardo A. Chvarri V.
ploteo actual y sumar los resultados a futuros comandos de ploteo en el grfico. Esto continua hasta que se ejecute el comando hold off, el cual le dice al MATLAB que limpie el grfico e inicie nuevamente si se da otro comando de ploteo. hold on debe ser usado despus del primer ploteo en una serie.
subplot(m, n, p)
subplot separa la figura de la ventana en un arreglo de