Você está na página 1de 14

PRINCIPIOS DE MATLAB

ANTECEDENTES NECESARIOS PARA EL USO EFECTIVO DE MATLAB COMO SE USA MATLAB.- Por lo general MATLAB se usa en un modo controlado por comandos. Cuando se introducen comandos de una sola linea, MATLAB los procesas de inmediato y despliega los resultados. MATLAB tambien es capaz de ejecutar secuencias de comandos que se almancena en los archivos. Los comandos escritos pueden accesarse despus usando la tecla de flecha hacia arriba. Es posible desplazarse por algunos de los comandos ms recientes y repetir una lnea de comandos especfica.

VARIABLES EN MATLAB.- Una caracterstica conveniente de MATLAB es que no es necesario establecer las dimensiones de las variables antes de usarlas . En MATLAB, las variables se generan automticamente una vez que se usan . (Es posible alterar las dimensiones despus ,si es necesario.). Tales variables permanecen en la memoria hasta que se introduce el comando exit quit. Para obtener una lista de las variables en el rea de trabajo,simplemente escriba el comando who. A continuacion aparecern en la pantalla todas las variables que estan actualmente en el rea de trabajo. El comando clear borrar todas las variables no permanentes del area del trabajo. Si se quiere borrar slo una variabl, por ejemplo x, del rea de trabajo, introduzca el comando clear x. UNA LNEA DE PROGRAMA QUE EMPIEZA CON %.- En este documento , la mayoria de los programas por no decir que todos se escriben con comentarios y notas que explican cada uno de los pasos adoptados al programa. Las lineas de los programas de MATLAB que empieza con un %, son comentarios o notas. La notacion % es similar a REM en BASIC. Las lneas que empieza con % se usan para almacenar los comentarios del programador, es decir expresiones que no se ejecutan.,en otras palabras todo lo que esta despus de % en una lnea de un programa de MATLAB se ignora. Si se requiere de notas o comentarios en ms de una linea de un programa, cada lnea de un programa, cada lnea debe de empezar con un %. De esto se hablara ms adelante acerca de su aplicacin.
1 M.C ALOR AGUILAR C

PRINCIPIOS DE MATLAB

USO DEL OPERADOR PUNTO Y COMA.- El punto y coma se usa para suprimir la impresin. Si el ltimo carcter de un enunciado es un punto y coma, la impresin se suprime; el comando se ejecuta, pero el resultado no se despliega. Esta es una caractersticas til,dado que a veces no es necesario imprimir los resultados intermedios. Asimismo, al introducir una matriz, se usa un punto y coma para indicar el fin de una fila,excepto en la ltima. USO DE OPERADOR DE DOS PUNTOS.- Este operador tiene una funcin importante en MATLAB. Se usa para crear vectores para suscribir matrices y para especificar iteraciones for. INTRODUCCION DE UN ENUNCIADO LARGO QUE NO CABE EN UNA LINEA.- Por lo general, un enunciado termina con un retorno de carro o la tecla <enter>. Si el enunciado que se introduce se demasiado largo para una linea, se usa una elipsis la cul esta formada por tres o ms puntos (),seguida por un retorno de carro. Esto indica que el enunciado continua en la siguiente linea. Un ejemplo es: X = 1.234 + 2.345 + 3.456 + 4.567 + 5.678 + 6.789 + 7.890 + 8.901 - 9.012; Observe que los espacios en blanco a los lados de los signos =, + y - son opcionales. Con frecuencia se incluye para la mejorar la legibilidad. MATLAB es un sistema interactivo basado en matrices para la ayuda en clculos cientficos y de ingeniera. Se pueden resolver problemas numricos relativamente complejos en una fraccin del tiempo que se requerira para hacerlo en C o FORTRAN. El nombre de MATLAB es una abreviatura para MATrix LABoratory. INTRODUCCION DE MATRICES MATLAB trabaja esencialmente con un solo tipo de objeto: una matriz numrica rectangular con entradas posiblemente complejas; todas las variables representan matrices. A veces, las matrices 1x1 se consideran escalares, y las matrices con una sola fila o columna se consideran como vectores. Existen varias formas diferentes para introducir una matriz en MATLAB, ya sea: Introduciendo una lista explcita con elementos, Generndola mediante funciones, Crendola de un archivo .m (ver ms adelante), Cargndola de un archivo de datos externo.
2 M.C ALOR AGUILAR C

PRINCIPIOS DE MATLAB

Por ejemplo, cualquiera de las declaraciones A=[1 2 3; 4 5 6; 7 8 9]; A=[1 2 3 4 5 6 7 8 9]; crea la matriz 3x3 que se espera y la asigna a una variable A. Los elementos en una fila pueden separarse tanto por comas como por espacios en blanco. Cuando alguno de los nmeros debe escribirse en forma exponencial (por ejemplo 2.34e9), deben evitarse los espacios en blanco. La escritura de una matriz grande debe hacerse preferentemente en un archivo .m, donde es ms sencillo corregir errores. Las entradas individuales de una matriz o de un vector se pueden obtener poniendo los ndices entre parntesis de forma usual. Por ejemplo, A(2,3)=10 asigna el elemento 10 a la matriz A en la segunda fila y tercera columna; y x(3)=0 asigna 0 a la tercera coordenada del vector x. Slo se pueden usar como ndices de vectores y de matrices enteros positivos. OPERACIONES CON MATRICES,OPERACIONES A COORDENADAS En MATLAB se dispone de las siguientes operaciones con matrices: + * ^ ' \ / adicin sustraccin multiplicacin potenciacin traspuesta divisin izquierda divisin derecha y

Estas operaciones tambin se aplican a escalares (matrices 1x1). Si los tamaos de las matrices son incompatibles para la operacin matricial se obtiene un mensaje de error, exceptuando el caso en que uno de los componentes sea escalar y el otro una matriz (para la adicin, sustraccin, divisin y multiplicacin). En esta situacin se opera el escalar con cada trmino de la matriz. La "divisin matricial" se utiliza para resolver sistemas de ecuaciones. Si A es una matriz invertible y b es una columna o fila compatible, entonces x=A\b es la solucin de A*x=b y x=b/A es la solucin de x*A=b.
3 M.C ALOR AGUILAR C

PRINCIPIOS DE MATLAB

En la divisin izquierda, si A es cuadrada, se factoriza utilizando eliminacin gaussiana, y se resuelve A*x=b. Si A no es cuadrada, se factoriza utilizando la ortogonalizacin de Householder con pivoteo de columnas. La divisin derecha se define a partir de la izquierda por b/A = (A'\b')'. Operaciones a coordenadas. Las operaciones de adicin y sustraccin operan intrnsicamente a coordenadas pero las otras operaciones dadas antes no: Son operaciones matriciales. Cabe notar que para estas otras operaciones, *, ^, \, y /, puede hacerse que operen a coordenadas precedindolas de un punto. Por ejemplo, tanto [1,2,3,4].*[1,2,3,4] como [1,2,3,4].^2 darn [1,4,9,16]. Esto es bastante til cuando se utilizan grficos en MATLAB. Declaraciones, expresiones y variables; almacenamiento de una sesin. MATLAB es un lenguaje de expresiones; las expresiones que se escriben son interpretadas y evaluadas. Las instrucciones son de la forma: variable = expresin, o simplemente expresin Las expresiones se componen a partir de operadores, funciones y nombres de variables. La evaluacin de una expresin produce una matriz mostrada en pantalla y asignada a la variable, si esta ultima se omite, se almacena en la variable ans. Una expresin termina con un retorno de carro, si se desea seguir en otra lnea basta escribir tres o ms puntos antes del retorno de carro. Si se desea escribir varias instrucciones en una misma lnea, basta separarlas por comas o puntos y comas. Si al final de una expresin aparece un punto y coma, no se muestra el resultado por pantalla pero s se realiza la asignacin. (evita as prdidas de tiempo). MATLAB distingue las letras maysculas de las minsculas. (SuMa no es igual a suma). La instruccin who muestra todas las variables utilizadas en la sesin de trabajo, la instruccin clear borra todas las variables no permanentes. clear nombre_variable borra slo la variable nombre_variable. Almacenamiento de sesiones. Cuando se sale de MATLAB se pierden todas las variables. Para guardarlas, se utiliza save nombre (por defecto matlab.mat). Para recuperarlas, se utiliza la instruccin load nombre. Para obtener una copia de todos los comandos escritos en la sesin, se utiliza la instruccin diary. La orden diary nombre_de_archivo
4 M.C ALOR AGUILAR C

PRINCIPIOS DE MATLAB

hace que todo lo que aparezca a continuacin en pantalla (excepto los grficos) sea escrito en el archivo nombre_de_archivo (por defecto diary) hasta que se escriba diary off; diary on har que se escriba al final del archivo.

Construccin de matrices. eye matriz identidad. zeros matriz de ceros. ones matriz de unos. diag si x es vector, diag(x) crea una matriz diagonal con x en su diagonal; si A es una matriz cuadrada, diag(A) es un vector formado por la diagonal de A. triu parte triangular superior de una matriz. tril parte triangular inferior de una matriz. rand matriz generada aleatoriamente. hilb matriz de Hilbert. magic matriz mgica. toeplitz ver help toeplitz

Ejemplo: zeros(2,3) produce la matriz nula de 2x3, zeros(4) produce la matriz nula de 4x4, si A es matriz, zeros(A) produce la matriz nula de orden igual a A.

Las matrices se pueden construir por bloques (concatenacin). Ejemplo: A=[1 2 3; 4 5 6; 7 8 9]; B=[A, zeros(3,2); zeros(2,3), eye(2)];

Borrando filas y columnas Para borrar la segunda columna de A se utiliza A(:,2)=[]

5 M.C ALOR AGUILAR C

PRINCIPIOS DE MATLAB

Submatrices y el Operador Dos Puntos Los dos puntos, :, es uno de los ms importantes operadores en MATLAB. La expresin: 1:10 genera el vector conteniendo enteros del 1 al 10 1 2 3 4 5 6 7 8 9 10 se puede especifica incrementos, por ejemplo: 100:-7:50 da como resultado: 100 93 86 79 72 65 58 51 Formato: inicio:[incremento:] trmino Ejemplo probar A(2:2:6)=[]; Esta notacin permite acceder a submatrices, por ejemplo A(1:4,3) es el vector columna con las cuatro primeras entradas de la tercera columna de A. Dos puntos sin ms especificacin denotan una fila o columna completa: A(:,3) es la tercera columna de A y A(1:4,:) son las cuatro primeras fila. Se pueden usar como ndices vectores enteros arbitrarios: A(:,[2 4]) est formada por las columnas segunda y cuarta de A.

6 M.C ALOR AGUILAR C

PRINCIPIOS DE MATLAB

Control de Flujo Relaciones. Los operadores relacionales en MATLAB son: < menor que. > mayor que. <= menor o igual que. >= mayor o igual que. == igual. ~= no igual. Operadores Lgicos & y | o ~ no El resultado de una comparacin entrega el escalar 1 0 dependiendo si la relacin es verdadera o falsa. If. La forma general de un bucle if simple es: if relacin instrucciones end Tambin se permiten if anidados, ejemplo: if n<0 paridad = 0; elseif rem(n,2) == 0 paridad = 2; else paridad =1; end Es importante saber cmo funcionan los operadores relacionales en las matrices, cuando se quiere verificar la igualdad entre dos variables, se utiliza if A==B ... Esto es vlido y entrega el resultado esperado cuando A y B son escalares. Pero cuando A y B son matrices, A==B no verifica si A y B son iguales, verifica donde ambas son iguales; es decir, el resultado es otra matriz de 0's y 1's mostrando la igualdad elemento a elemento, entonces A==B es un error.

7 M.C ALOR AGUILAR C

PRINCIPIOS DE MATLAB

Por ejemplo, si se desea ejecutar algo cuando A y B son distintas, hay que recurrir a: if any(any(A~=B)) instruccin end o tambin if A==B else instruccin end La instruccin aparentemente obvia if A~=B, instruccin, end no har lo que se desea ya que se ejecutar si todas las entradas de A son distintas a las de B. (Ver help any y help all). For. Su forma general es for contador=rango instrucciones end Ejemplo: x=[]; for i=1:n x=[x,i^2] end x=[]; for i=n:-1:1, x=[x,i^2], end While. La forma general de un bucle while es while relacin instrucciones end Funciones Escalares Algunas funciones de MATLAB operan esencialmente sobre escalares, aunque lo hacen tambin sobre matrices (elemento a elemento). Las funciones ms comunes entre estas son: sin asin exp abs round cos acos log sqrt floor (natural) tan atan rem sign ceil (resto)
8 M.C ALOR AGUILAR C

PRINCIPIOS DE MATLAB

Funciones Vectoriales Otras funciones de MATLAB operan fundamentalmente sobre vectores (fila o columna), aunque tambin pueden operar sobre matrices m x n (m2) hacindolo en este caso columna a columna produciendo, por tanto, un vector fila que contiene el resultado de su aplicacin a cada columna. max sum median any min prod mean all sort std Funciones Matriciales Las funciones matriciales ms tiles de MATLAB son las siguientes: eig autovalores y autovectores chol factorizacin de Cholesky svd descomposicin en valores singulares inv inversa lu factorizacin LU qr factorizacin QR hess forma de Hessenberg schur descomposicin de Schur rref forma escalonada reducida por filas expm matriz exponencial sqrtm matriz raz cuadrada poly polinomio caracterstico det determinante size tamao norm norma 1, norma 2, norma de Frobenius, norma cond nmero de condicin de la norma 2 rank rango Archivos .m MATLAB puede ejecutar una sucesin de instrucciones almacenadas en archivos de disco. Estos archivos se denominan archivos .m, debido a que su sufijo debe ser m. Para ver el contenido de un archivo .m basta escribir type archivo.m. Hay dos tipos de archivos .m: archivos de instrucciones y archivos de funciones. Archivo de instrucciones. Un archivo de instrucciones consiste en una sucesin de instrucciones normales de MATLAB. Si por ejemplo tenemos el archivo nombre.m, las instrucciones del archivo se pueden ejecutar escribiendo nicamente la instruccin nombre.
9 M.C ALOR AGUILAR C

PRINCIPIOS DE MATLAB

Las variables de un archivo de instrucciones son globales, y por tanto, cambiarn los valores del espacio de trabajo. Los archivos de instrucciones son utilizados a menudo para introducir datos en una matriz grande. Por ejemplo, escribir el archivo datos.m

A=[1 2 3 4 5 6 7 8]; Un archivo .m puede hacer referencia a otros, incluyendo a l mismo. Archivos de funciones. Los archivos de funciones hacen que MATLAB tenga capacidad de crecimiento. Se pueden crear funciones especficas para un problema concreto, y a partir de su introduccin, tendrn el mismo rango que las dems funciones del sistema. Las variables en las funciones son declaradas por defecto como locales. Una variable puede, sin embargo, ser declarada como global (ver help global). Formato: function variable_de_salida=nombre_funcin(arg_1,,arg_n) instrucciones; variable_de_salida = valor; Tambin se puede tener en una funcin argumentos de salida mltiples. Formato: function [salida_1,,salida_m]=nombre_funcin(arg_1,,arg_n) instrucciones; salida_1 = valor_1; salida_m = valor_m; Ejemplo, escribir el archivo randint.m: function a = randint(m,n) % randint matriz entera generada aleatoriamente. % randint(m,n) produce una matriz de mxn con entradas enteras % entre 0 y 9 a = floor(10*rand(m,n));

10 M.C ALOR AGUILAR C

PRINCIPIOS DE MATLAB

Ejemplo 2, caso de mltiples salidas estad.m: function [media, desv] = estad(x) % estad Media y desviacin estndar. Para un vector x, % estad(x) da la media y la desviacin estndar de x. % Para una matriz x, estad(x) da 2 vectores fila conteniendo % resp., la media y la desviacin estndar de cada columna. [m n]=size(x); if m==1 m=n; %caso de un vector fila end media = sum(x)/m; desv = sqrt(sum(x.^2)/m - media.^2) La instruccin de MATLAB [xm, xd]=estad(x), por ejemplo, asignar la media y la desviacin estndar de x a las variables xm y xd, respectivamente. Cuando se dispone de una funcin con argumentos de salida mltiple, se pueden efectuar asignaciones simples. Por ejemplo, xm=estad(x) (sin corchetes alrededor de xm) asignar la media de x a xm. El smbolo % indica que el resto de la lnea es un comentario; MATLAB ignorar el resto de la lnea. Las primeras lneas de comentario, que documentan el archivo, son accesibles con la instruccin help. (Ver help estad, por ejemplo.) El nmero de argumentos de entrada de una funcin se puede conocer con la instruccin nargin, permitiendo asignar por defecto un valor a una variable que se omita. (De igual forma, los argumentos de salida se pueden controlar con nargout). La funcin de MATLAB feval permite evaluar funciones especificadas por un string. Si f es un string conteniendo el nombre de una funcin, entonces feval(f,a1,,an) evala la funcin f con los argumentos dados. Se utiliza dentro de funciones que tienen como argumentos el nombre de otras funciones. Cadenas de texto, mensajes de error, input. Las cadenas de texto se introducen entre comillas simples: s=Hola mundo Las cadenas de texto se muestran con la funcin disp: disp(Hola mundo)
11 M.C ALOR AGUILAR C

PRINCIPIOS DE MATLAB

Los mensajes de error se muestran mejor con la funcin error. error(Lo siento, la matriz debe ser simtrica) En un archivo .m, el usuario puede asignar valores interactivamente con la funcin input. iter=input(Introduzca el nmero de iteraciones: ) la cadena entre comillas se muestra y la ejecucin se detiene mientras el usuario introduce los datos. Tras pulsar el retorno de carro los datos se asignan a la variable iter y contina la ejecucin. Formato de salida. Aunque todos los clculos se efectan en doble precisin, el formato de la salida en pantalla puede ser controlado con las siguientes instrucciones. format short coma fija con 4 decimales (por defecto) format long coma fija con 14 decimales format short e notacin cientfica con 4 decimales format long e notacin cientfica con 15 decimales Una vez que se ordena un formato, se mantiene hasta que se ordena un cambio. Grficos MATLAB puede producir grficos planos y grficos de malla de superficies tridimensionales. Grficos planos. La instruccin plot crea grficos en el plano XY; si x e y son vectores de la misma longitud, la orden plot(x,y) accede a la ventana grfica y realiza un grfico plano de los elementos de x versus los elementos de y. Por ejemplo, probar: x=-4:0.01:4; y=sin(x); plot(x,y); x=-1.5:0.01:1.5; y=exp(-x.^2); plot(x,y); Tambin se pueden hacer grficos de curvas paramtricas: t=0:.001:2*pi; x=cos(3*t); plot(x,y); y=sin(2*t);

La instruccin grid har un cuadriculado en el grfico actual. Pueden ponerse ttulos, comentarios en los ejes o en cualquier otra parte con los siguientes comandos que tienen un string como argumento:

12 M.C ALOR AGUILAR C

PRINCIPIOS DE MATLAB

title xlabel ylabel gtext text

ttulo del grfico comentario en el eje x comentario en el eje y texto posicionado interactivamente texto posicionado mediante coordenadas

Por defecto, los ejes se autoescalan. Para evitarlo se usa el comando axis. Si c=[xmin, xmax, ymin, ymax] es un vector con 4 elementos, entonces axis(c) establece el escalado de ejes a los lmites prescritos. Para volver de nuevo al autoescalado, basta escribir axis. (Ver help axis). Dos formas de obtener dibujos mltiples puede ser: x=0:.01:2*pi; y1=sin(x); y3=sin(4*x); plot(x,y1,x,y2,x,y3); y2=sin(2*x);

o formando una matriz Y conteniendo los valores de las funciones como columnas: x=0:.01:2*pi; sin(4*x)]; plot(x,Y) Y=[sin(x), sin(2*x),

Otra forma es hold. Este comando congela la pantalla grfica actual de forma que los grficos posteriores se sobreimponen en ella. Para desactivarlo, se escribe nuevamente hold. Es posible especificar color, estilo de la lnea y marcadores, como signos + o con crculos, de la forma: plot(x,y,estilo); donde estilo es un string de 1, 2 3 caracteres de longitud, construido por el color, el tipo de lnea y el tipo de marcador. Ver help plot para cambiar los colores o tipo de lneas y puntos. Para imprimir o guardar los grficos, ver help print. Grficos de superficies tridimensionales . MATLAB define una superficie por las coordenadas Z de los puntos sobre un cuadriculado rectangular en el plano XY. Las funciones mesh y surf grafican superficies en tres dimensiones. Los grficos de malla de superficies tridimensionales se hacen con la funcin mesh.

13 M.C ALOR AGUILAR C

PRINCIPIOS DE MATLAB

La instruccin surf muestra las caras de la superficie junto a la malla. De esta forma, la instruccin mesh(Z) crea un grfico tridimensional en perspectiva de la matriz Z. Por ejemplo, probar con mesh(eye(10)). Para dibujar la grfica de una funcin z=f(x,y) sobre un rectngulo, se deben generar las matrices X e Y consistentes en filas y columnas repetidas, respectivamente, sobre el dominio de la funcin. Entonces se utilizan estas matrices para evaluar y graficar la funcin. La funcin meshgrid transforma el dominio especificado por un simple vector o por dos vectores x e y en matrices X e Y para utilizarlas en la evaluacin de la funcin de dos variables. Las filas de X son copias del vector x y las columnas de Y son copias del vector y. Ejemplo: [X,Y]=meshgrid(-8:.5:8); R=sqrt(X.^2+Y.^2)+eps; Z=sin(R)./R; mesh(X,Y,Z); %Probar con surf(X,Y,Z); aqu, R es la distancia desde el origen, que se encuentra al centro de la matriz. Se le suma eps para evitar el error de evaluar 0/0 en el origen. Estos son algunas de las aplicaciones que tiene el MATLAB despus de este breve recorrido sobre las funciones y comandos del MATLAB pasaremos ahora a las explicaciones y desarrollo de cada actividad.

14 M.C ALOR AGUILAR C

Você também pode gostar