You are on page 1of 32

Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional Dr. Eduardo A. Chvarri V.

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

MATLAB, dichas ventanas pueden tener dferentes apariencias y sentidos.

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.

Nota El formato permanece a menos que otro comando de

Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional Dr. Eduardo A. Chvarri V.

Arreglos, Vectores y Matrices


MATLAB puede automticamente manejar arreglos

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 =

Dr. Eduardo A. Chvarri V.

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,

los valores mostrados deben alinearse apropiadamente.

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.

Uso de comandos en arreglos


El

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.

Acceso a los arreglos


Los valores individuales dentro de un arreglo pueden ser leidas usando index. El valor del index se inicia en 1 para el valor en la esquina superior izquierda y se incrementa hacia abajo lo siguiente muestra los index para una matriz de 4 filas y 3 columnas. :

1 2 3 4

5 6 7 8

9 10 11 12

Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional

Acceso a arreglos (cont)


Asumiendo la matriz C:

Dr. Eduardo A. Chvarri V.

C = 2 3 3 10

4 3 0 13

9 16 8 17

C(2) reporta 3 C(4) reporta 10 C(13) reporta un error!

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

Creacin de Arreglos Operador dos puntos


El operador : es utilizado en varios contextos. Puede ser

Dr. Eduardo A. Chvarri V.

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:0.6:3 ans = 1.0000

1.6000

2.2000

2.8000

Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional Dr. Eduardo A. Chvarri V.

Notas Operaciones con dos puntos


Si diffval es omitido, el valor por defecto es 1:

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

Creacin de arreglos - linspace


Para crear un vector fila con un nmero especificado de

Dr. Eduardo A. Chvarri V.

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

Creacin de arreglos - logspace


Para crear un vector fila con un nmero especfico de

Dr. Eduardo A. Chvarri V.

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.

Caracteres Strings & Ellipsis


Las constantes alfanumricas son encerradas por apstrofes (') >> f = 'Miles ';

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.

Los operadores matemticos en MATLAB pueden ser

utilizados en escalares y arreglos. Operadores comunes en orden de prioridad son:


^ Exponenciacin - Negacin * Multiplicacin y Divisin / \ Divisin inversa + Adicin y Sustraccin 4^2 = 8 -8 = -8 2*pi = 6.2832 pi/4 = 0.7854 6\2 = 0.3333 3+5 = 8 3-5 = -2

Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional

Orden de operaciones
parntesis, entonces por defecto ser:

Dr. Eduardo A. Chvarri V.

El orden de operaciones es colocando primero entre

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.

Todas las operaciones pueden ser usadas con nmeros complejos


x = 2+i*4; (or 2+4i, or 2+j*4, or 2+4j) y = 16; 3 * x = 6.0000 +12.0000i >> x+y ans = 18.0000 + 4.0000i >> x' ans = 2.0000 - 4.0000i

Universidad Nacional Agraria La Molina Departamento de Recursos Hdricos Curso: Hidrulica Computacional

Clculos de Vector-Matriz

Dr. Eduardo A. Chvarri V.

MATLAB puede realizar operaciones con vectores and

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.

El operador ^ se utiliza para multiplicar una misma matriz

un nmero especificado de veces..


Note que en este caso la matriz debe ser cuadrada!

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

Dr. Eduardo A. Chvarri V.

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

tamao o una de las matrces debe ser 1x1

Exponenciacin de arreglos (elevar cada elemento a una

correspondiente potencia en otra matriz) es realizada con .^


Nuevamente, ambas matrices deben tener el mismo tamao o una debe

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

como aquellas funciones son utilizadas:


help elmat listar la creacin de una matriz elemental y la

manipulacin de funciones, incluyendo funciones para conseguir informacin acerca de las matrices. help elfun listar funciones matemticas elementales, incluyendo trigonomtricas, exponenciales, complejas, redondeos, etc.

El comando lookfor buscar archivos de ayuda y puede ser

utilizado si uno conoce el propsito de la funcin pero no el nombre.

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,

ylabel, y los comandos de leyenda.

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.

plot(vel, 'DisplayName', 'vel', 'YDataSource', 'vel'); figure(gcf)

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

Dr. Eduardo A. Chvarri V.

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.

Otros comandos de ploteo


hold on and hold off
hold on le permite al MATLAB el mantener la forma del

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

mxn pequeos ejes y coloca activa la pth.

You might also like