0% encontró este documento útil (0 votos)
29 vistas

Tutorial MATLAB

Esta muy bien explicado todo

Cargado por

larata29
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
29 vistas

Tutorial MATLAB

Esta muy bien explicado todo

Cargado por

larata29
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 19

Tutorial de MATLAB para MA45C: Ecolog Microbiana a

Hctor Ram C. e rez 2 de abril de 2007


*

Introduccin a MATLAB o a) Descripcin del ambiente MATLAB. o


Command Window. Esta es la ventana en la que se ejecutan interactivamente las instrucciones de MATLAB y en donde se muestran los posibles resultados, si corresponde. Luego, se puede considerar como la ventana ms a importante de MATLAB. Launch Pad. Ventana de la cual se puede acceder a otros componentes de MATLAB como el Help Browser (o Buscador de ayuda), o las Demos asociadas a distintos tpicos de MATLAB. Esto permite trabajar de una forma o ms dinmica sin pasar por mens o por otros comandos. a a u Workspace Browser. Es el espacio de trabajo de MATLAB donde se nos muestra el conjunto de variables y funciones que actualmente estn denidas a en la memoria de MATLAB, y por lo tanto se puede acceder y trabajar con esta informacin desde el Command Window. o Command History Browser. Permite el acceso a las sentencias que se han ejecutado anteriormente en el Command Window. Esto mediante un doble clic de la sentencia deseada. Tambin se puede acceder a estas sentencias e usando las teclas y . Current Directory Browser. Permite acceder y determinar el directorio actual de MATLAB, el cual se dene a grandes rasgos como el directorio (o
Centro de Modelamiento Matemtico & Departamento de Ingenier Matemtica, a a a Universidad de Chile, Casilla 170-3, Santiago 3, Chile, e-mail: hramirez@dim.uchile.cl
*

carpeta) que MATLAB utiliza para funcionar en la actual sesin. En efeco to, slo se podrn usar los archivos o ejecutar los programas, procedimientos o a y funciones que se encuentran en este directorio o en uno de uso interno de MATLAB que ya se encuentre especicado. Esta ventana tambin permite e ver y trabajar con los archivos que se encuentra en el directorio de trabajo. Observacin 1. El usuario puede incorporar una de sus carpetas como o una carpeta de uso interno de MATLAB, o lo que usualmente se llama incorporar una carpeta al Path de MATLAB. La manera ms fcil de a a hacer esto es mediante el men, siguiendo las opciones: FILE SET PATH. u

b) Acceso al directorio de trabajo.


Estos comandos nos permiten acceder directamente a la carpeta de trabajo o directorio actual desde la ventana Command Window, lo cual se puede ver como una manera alternativa a trabajar con la ventana Current Directory Browser. La mayor de ellos funcionan igual que en el sistema a operativo MS-DOS. dir. Nos muestra todos los archivos del directorio actual. mkdir (Make Directory). Crea un directorio (o carpeta). Por ejemplo: >> mkdir C:\Curso_MATLAB_UDP crea el directorio o carpeta Curso MATLAB UDP en el disco duro C:. cd (Change Directory). Cambia el directorio actual. Por ejemplo: >> cd C:\Curso_MATLAB_UDP cambia el directorio actual al directorio o carpeta Curso MATLAB UDP en el disco duro C:. Observacin 2. El directorio al que se desea cambiar debe existir. o pwd (Print Working Directory). Nos muestra cual es el directorio actual. Por ejemplo: >> pwd ans = C:\Curso_MATLAB_UDP 2

type. Nos muestra el contenido de un archivo. copyle. Copia un archivo. Por ejemplo: >> copyfile sesion_1.m sesion__2.m copia el archivo sesion 1.m en el archivo sesion 2.m dentro del directorio actual. delete. Borra un archivo.

c) Comandos bsicos de asignacin y comparacin. a o o


En esta seccin veremos como usar los operadores relacionales y lgicos o o en MATLAB, estos son los que nos permiten efectuar una o varias comparaciones asignando un grado de verdad a una condicin matemtica. o a Para esto primero debemos establecer la forma de asignar valor a las variables. En MATLAB esto se hace simplemente con el comando =. Por ejemplo: >> a=2 a = 2 asigna el valor 2 a la variable a. Ntese que la variable a no necesita o ser denida previamente. Si en el anterior ejemplo se tipea el s mbolo ; despus de la asignacin, esta ser efectuada pero MATLAB no mostrara e o a ninguna respuesta. El valor de la variable puede ser luego consultado en el Workspace Browser. Los operadores relacionales (o de relacin) son los siguientes: o < menor que, > mayor que, <= menor o igual que, >= mayor o igual que, == igual que, = distinto que. MATLAB asigna un nmero 1 para el valor verdadero y 0 para falso. u Por ejemplo:

>> 1>=2 ans = 0 Los operadores lgicos son denidos como sigue: o & | and (y) or (o) negacin lgica o o

Ejempliquemos su uso. Consideremos la variable a, a la cual le fue asignado anteriormente el valor 2. Se obtiene as que: >> a>0 & ~(a~=2) ans = 1

d) Sentencias lgicas. o
MATLAB nos permite programar rutinas usando sentencias que se ejecutaran si ciertas condiciones son ciertas. Estos comandos funcionan similarmente a cualquier otro lenguaje de programacin y slo su sintaxis es o o levemente distinta. Procederemos a explicar brevemente cada una de ellas. if, elseif, else. Se describe su uso como sigue: if condicion1 rutina1 elseif condicion2 rutina2 %.... elseif condicionN rutinaN else rutina_final end for. Repite un conjunto de sentencias (es decir, una rutina) un nmero preu determinado de veces dada por la primera sentencia. 4

for j=1:n rutina end while. Se ejecuta una rutina mientras la condicin dada en la primera senteno cia sea cierta (es decir tenga valor verdadero). Su sintaxis es la siguiente: while condicion rutina end break. Interrumpe la actual rutina. try...catch...end. Permite gestionar errores que se pueden producir en la ejecucin de un programa. Su sintaxis es: o try rutina1 catch rutina2 end En el caso de que en la primera rutina (rutina1) se produzca un error, MATLAB pasa a ejecutar la segunda rutina (rutina2). Si no se produciera un error en la primera rutina, la segunda rutina no se ejecutar nunca. a

e) Lectura y escritura de variables.


input. Permite imprimir un mensaje en la l nea de comandos de MATLAB y al mismo tiempo recuperar un valor numrico o un texto (o string) que e ha sido ingresado por el usuario. Veamos su modo de uso: >> b=input(ingrese numero ); ingrese numero De este modo MATLAB espera que el usuario ingrese una valor para la variable b. Para recuperar un texto se debe incorporar la opcin s. Por o ejemplo, ejecutando >> nombre=input(Cual es tu nombre? ,s); Cual es tu nombre?

MATLAB espera que el usuario ingrese un texto que identique su nombre, el cual ser guardado en la variable nombre. a display (o disp). Estos comandos nos permiten imprimir en pantalla un mensaje de texto o el valor de una variable. El comando display imprime adems el nombre de la variable mientras que disp no lo hace. Veamos un a ejemplo: >> display(b) b = 4 >> display(Hola) ans = Hola o bien >> disp(b) 4 >> disp(Hola) Hola

f ) Guardar variables y sesiones.


Muchas veces se desea abandonar una sesin de MATLAB pero se deo sea volver a ella ms adelante. Los siguientes comandos nos permiten solua cionar este problema y recuperar la informacin que se ha acumulado en el o workspace. save, load. El primer comando nos permite guardar una sesin mientras que o el segundo nos permite cargar una que ya est guardada. a diary. Almacena en un archivo de texto especicado por el usuario lo que se va haciendo en la sesin. Este comando funciona como sigue: o >> diary nombre_archivo.txt %... >> diary off 6

%... >> diary on As diary o suspende la ejecucin del comando mientras que diary on o lo reanuda. Se puede acceder al archivo de texto donde se guarda la sesin o solamente cuando diary esta en o.

Funciones a) Denicin de funciones y procedimientos. o


Para denir funciones o procedimientos en MATLAB se usa un texto plano que debe terminar en la extensin .m. Una manera simple de editar y o crear un archivo .m es el editor de texto plano que se incluye en MATLAB, y al cual se puede acceder desde su men. u Para crear una funcin se debe tener en cuenta que el archivo .m o debe tener el mismo nombre que el de la funcin. Adems, para poder usar o a la funcin previamente denida se debe guardar el archivo en el directorio o actual (o directorio de trabajo) o bien en algn directorio de uso interno de u MATLAB. Veamos como crear la funcin o f (x) = ex + x2 x + 1. En algn editor de texto plano como el que tiene MATLAB se escribe: u function y=f(x); y=exp(x)+x^2-x+1; y luego se guarda con el nombre f.m. Ejercicio 1. Crear la funcin o g(x) = cos(x) + x3 + x 1, log(x + 1) x, si x 0, si x < 0

De esta misma forma se pueden crear funciones con rutinas ms complia cadas o procedimientos que no necesariamente entregan un valor determinado. La mejor manera de evaluar una funcin previamente denida es usando o el comando feval 7

>> feval(f,0) ans = 2 Un procedimiento es creado mediante un archivo .m cuyo nombre ser el del procedimiento o rutina a ejecutar, y que contendr las instruca a ciones y sentencias a seguir.

b) Funciones predenidas.
MATLAB tiene varias funciones matemticas predenidas. Veamos ala gunas de las ms importantes. a sqrt. ra de un nmero real positivo. z u cos, sin, tan. Representan las funciones trignometricas seno, coseno y tano gente. max, min, sum, mean, sort. Estas funciones se aplican a un conjunto de valores que generalmente son guardados como un vector (esto se vera en detalle en la proxima sesin). o El comando max nos entrega el maximo valor, min el m nimo, sum la suma de todos los valores, mean el promedio y sort ordena los valores de menor a mayor. Ejemplo: >> t=[1 23 3 -5 45]; >> sum(t) ans = 67 >> sort(t) ans = -5 >> min(t) ans =

23

45

-5 >> mean(t) ans = 13.4000 oor, round. El primero nos da el nmero entero menor ms cercano al valor u a real al cual se le aplica. Mientras que el segundo aproxima el valor. >> floor(3.6) ans = 3 >> round(3.6) ans = 4 rand. Genera matrices o vectores cuyas componentes son nmeros aleatorios u entre cero y uno.

c) Grco de funciones. a
El grco de una funcin es una herramienta muy importante en el a o anal matemtico. Explicaremos brevemente los comandos que nos persis a miten realizar un grco. a plot. Este comando nos permite gracar un conjunto de datos de la forma (xi , yi ), i = 1, ..., n.. Para esto se debe trabajar con dos vectores, por ejemplo x e y, que contengan la informacin del eje x e y respectivamente. Veamos o como dibujar la funcin seno en el intervalo [-10, 10] . o >> x=-10:0.1:10; y=sin(x); >> plot(x,y); En este caso hemos creado una grilla de puntos equiespaciados entre -10 y 10, con un paso igual a 0.1, usando el comando :. Esto ha sido nalmente guardado en la variable x. 9

Veamos ahora ciertas opciones que nos permiten individualizar nuestro grco. Se puede dar un nombre a los ejes x e y usando los comandos a >>xlabel(eje x); ylabel(eje y); El tipo de l nea se determina con Tipo de l nea continua (por defecto) guiones punteada guiones y puntos Tipo de marca punto ms a estrella c rculo marca x S mbolo -: -.

Se pueden usar marcas especiales en vez de l neas mediante los cdigos S mbolo . + * o x

Podemos tambin especicar el color del trazado usando los siguientes e cdigos: Color rojo amarillo azul magenta verde blanco negro turquesa S mbolo r y b m g w k c

Por ejemplo, reproduciremos nuevamente el grco anterior con una mara ca de c rculo de color azul. >> plot(x,y,ob); Para dibujar varias funciones al mismo tiempo se debe utilizar una matriz de valores. Este tpico ser estudiado en la proxima clase. Veamos un o a ejemplo: >> A= [sin(x); cos(x)]; >> plot(x,A); 10

Observacin 3. Cuando se calculan los valores, ya sea y o la matriz o A en los ejemplos anteriores, se deben reemplazar las operaciones usuales multiplicacin * divisin / y elevado por las versiones punto o o o componente a componente de estas operaciones .* ./ . . Esto evita errores en el manejo de las dimensiones. Esto ser explicado en profundidad a en la proxima seccin. o fplot. Este comando graca directamente una funcin sin pasar por un grilo laje. Su sintaxis es la siguiente: >> fplot(nombre_funcion,[xmin xmax],opciones); Los valores xmin y xmax nos dan los valores m nimos y mximos del eje x, las opciones de grcos son las mismas que las del comando plot. a subplot. Permite hacer varios grcos al mismo tiempo haciendo divisiones a de la pantalla original. Por ejemplo >> >> >> >> subplot(2,2,1), subplot(2,2,2), subplot(2,2,3); subplot(2,2,4); plot(x,y); plot(x,A); fplot(sin,[-10 10],+g); fplot(f,[-1 1],:k);

divide la pantalla grca en cuatro partes dibujando en cada uno de los a segmentos las funciones correspondientes.

d) Denicin de polinomios. o
La manera ms simple de denir polinomios es a travs de un conjunto de a e valores reales que determinaran los coecientes del polinomio, por ejemplo, los valores del vector t denido anteriormente nos entregan el polinomio t(x) = x4 + 23x3 + 3x2 5x + 45.

e) Comandos para polinomios.


Describamos brevemente los comandos relacionados con el uso de los polinomios. polyval. Permite evaluar un polinomio. Consideremos el vector t denido anteriormente.

11

>> polyval(t,0) ans = 45 roots. Nos entrega las ra ces del polinomio correspondiente. >> roots(t) ans = -22.8554 -1.3873 0.6214 + 1.0164i 0.6214 - 1.0164i polyder. Calcula la derivada de un polinomio. El resultado es un vector donde las componentes son los coecientes del polinomio derivado. >> polyder(t) ans = 4 69 6 -5

Note que el resultado tiene una dimensin menor que el polinomio original. o conv, deconv. Nos entrega la multiplicacin y la divisin usual de polinomios. o o En el caso de la divisin tambin nos entrega el polinomio residuo. Revisemos o e rpidamente su sintaxis. >> q=conv(p,t); >> [q,r]=deconv(p,t); Ejercicio 2. Calcular el producto entre los polinomios t, denido anteriormente, y el polinomio p(x) = 1 x2 + 5x3 + 13x4 6x5 . Ejercicio 3. Calcular el polinomio residuo de la divisin del polinomio p o por el polinomio t. 12

Matrices a) Denicin de Matrices. o


Las matrices se crean introduciendo sus elementos entre corchetes cuadrados [ y ]. Se procede primero por las las cuales se separan por el s mbolo ;. Luego, cada elemento en una la es separado por un espacio o coma. Ilustremos su uso: >> A=[1 2 3; 4 5 6] A = 1 4 2 5 3 6

Los vectores se consideran como casos part culares de matrices donde una de las dimensiones es igual a 1. Existen comandos que tambin permiten denir matrices, por ejemplo e el operador traspuesto denido por la comilla simple . >> A ans = 1 2 3

4 5 6

Los comandos zeros y ones permiten crear matrices de una dimensin asignada por el usuario cuyos elementos son slo ceros y unos, respeco o tivamente. Por ejemplo: >> zeros(1,3) ans = 0 0 0

>> ones(3,2)

13

ans = 1 1 1 1 1 1

El comando diag tiene dos funciones en dependencia si se aplica a un vector o a una matriz. Si se aplica a un vector, este comando nos entrega una matriz diagonal, donde los elementos de la diagonal son las componentes del vector. >> x=[1 3 4]; diag(x) ans = 1 0 0 0 3 0 0 0 4

Si se aplica a una matriz, este comando extrae la diagonal de la matriz y nos da como respuesta un vector columna cuyas componentes son los elementos de esta diagonal. >> diag(A) ans = 1 5 Una manera muy util para denir y crear matrices es el concatenar diferentes submatrices. De esta forma se crea una matriz de un tamao n mayor cuyos bloques corresponden a los valores concatenados. Por ejemplo: >> B=[A ; x] B = 1 4 1 2 5 3 3 6 4 14

crea una nueva matriz B donde sus dos primeras las corresponden a la matriz A, y su tercera la es el vector x. Ejercicio 4. Crear directamente la matriz utilizada en el clculo de la spline a cbica asociada a una malla de 51 puntos equiespaciados donde la distancia u entre los puntos es igual a 1. Esta matriz viene dada por 2 1 1 4 1 .. . . .. . 1 4 1 1 2 Los espacios vac son considerados con el valor 0 y el tamao de la matriz os n es 50. n o Ejercicio 5. Recordando el comando rand enseado en la sesin anterior, crear una matriz de 7 las y 9 columnas cuyas componentes sean enteros entre -5 y 10. Para ver o utilizar en algn clculo el elemento (i, j) de la matriz A u a se debe usar la sintaxis: >> A(i,j)

As tambin podemos ver o utilizar una la o columna completa de una e matriz con el comando :. Veamos un ejemplo de su uso. >> A(1,:) ans = 1 2 3

muestra la primera la de la matriz A. Similarmente, A(:,j) muestra la columna j de la matriz A. Otra aplicacin interesante del comando : nos permite mostrar solo o una parte de cierta la o columna. Ejempliquemos su uso. >> A(:,1:2)

15

ans = 1 4 2 5

muestra las dos primeras columnas de la matriz A. Tambin podemos ver e o utilizar la primera y tercera columna de A de la siguiente forma >> A(:, [1 3]) ans = 1 4 3 6

Finalmente veremos el uso de la variable indicadora end que hace referencia a la ultima la o columna de una matriz. Por ejemplo, >> A(end,:) ans = 4 5 6

muestra la ultima la de la matriz A.

b) Operaciones bsicas sobre matrices. a


MATLAB permite operar con las operaciones matriciales clsicas: + - * a y Para realizar estas operaciones se deben respetar las reglas matemticas . a bsicas sobre las dimensiones de las matrices implicadas en estas operaa ciones. Otro tipo de operaciones aritmticas que se pueden realizar slo con mae o trices o vectores de la misma dimensin son las llamadas operaciones punto o o componente a componente. Como su nombre lo dice, estas operaciones se realizan aritmticamente componente a componente, obteniendo un ree sultado con la misma dimensin que los vectores o matrices a los cuales fue o aplicada la operacin. Ejemplo: o >> y=[2 -1 4]; >> x.*y ans = 16

2 >> x.^y ans =

-3

16

1.0000 >> x./y ans = 0.5000

0.3333

256.0000

-3.0000

1.0000

c) Comandos especiales para matrices.


Procederemos a describir brevemente algunos de los principales comandos matriciales en MATLAB. trace. Calcula la traza de una matriz. det. Calcula el determinante de una matriz cuadrada. size. Calcula el tamao de una matriz. n >> size(A) ans = 2 3

inv. Calcula la inversa de una matriz cuadrada no singular. norm. Calcula la norma (inducida) a una matriz. Existe un segundo parmetro a que nos permite especicar la norma utilizada. Por defecto se usa la norma 2, es decir, la norma inducida euclidiana. >> norm(A) ans = 9.5080 17

>> norm(A,inf) ans = 15 cond. Calcula el condicionamiento de una matriz. pinv. Calcula la pseudo-inversa de una matriz. La pseudo-inversa existe para cualquier matriz, incluso una que no sea cuadrada. >> pinv(A) ans = -0.9444 -0.1111 0.7222 0.4444 0.1111 -0.2222

rank. Calcula el rango de una matriz. Esto es la cantidad de las o columnas linealmente independientes. >> rank(A) ans = 2

d) Factorizacin y descomposicin matricial. o o


Revisaremos ciertos comandos asociados a descomposiciones y factorizaciones de matrices. chol. Realiza la descomposicin de Choleski de una matriz denida positiva. o null. Devuelve una base ortonormal del subespacio nulo o Kernel de una matriz. qr. Nos entrega la descomposicin QR de una matriz. o orth. El resultado es una matriz cuyas columnas son una base ortonormal del espacio generado por las columnas de la matriz a la cual es aplicada esta funcin. o eig. Calcula la descomposicin espectral de una matriz. Ilustremos su uso. o 18

>> C=A*A; >> [Q,D]=eig(C) Q = -0.4082 0.8165 -0.4082 -0.8060 -0.1124 0.5812 0.4287 0.5663 0.7039

D = -0.0000 0 0 0 0.5973 0 0 0 90.4027

Nos da como resultado una matriz ortogonal Q cuyas columnas son los vectores propios de la matriz C y una matriz diagonal D con los valores propios de C. poly. Devuelve un vector con los coecientes del polinomio caracter stico de una matriz cuadrada. lu. Calcula la descomposicin LU de una matriz. Veamos un ejemplo de su o uso. >> [L,U]=lu(C) L = 0.6296 0.8148 1.0000 1.0000 0.5000 0 0 1.0000 0

U = 27.0000 0 0 36.0000 -0.6667 0 45.0000 -1.3333 0

19

También podría gustarte