Вы находитесь на странице: 1из 15

MANUAL RPIDO DE MATLAB

RESUMEN
Existe una gran cantidad de libros sobre como se debe utilizar el MATLAB, de igual manera en Internet se puede encontrar informacin muy til sobre el manejo de este programa pero en los dos casos el lector de este libro va a perder tiempo, primero en encontrar la informacin y segundo en hallar las sentencias especificas que en este texto se utilizan en la elaboracin de los programas que aqu se presentan. Por este motivo se presenta un manual rpido de uso del manual, orientado a que el lector comprenda los programas que se desarrollan en cada captulo. MATLAB es un software muy fcil de aprender y muy poderoso ya que cuenta con una gran cantidad de rutinas que facilitan su uso y lo fundamental la graficacin de los resultados en forma elemental. Los programas que se desarrollan en el texto van a ayudar a comprender la teora que se expone, razn por la cual, se recomienda su lectura e implementacin de los mismos.

1.

FORMAS DE TRABAJO

MATLAB proviene de las palabras MAtrix LABoratory es un lenguaje de alta tecnologa que integra en un solo ambiente la programacin y la visualizacin grfica. Existen dos modalidades de trabajo que son la modalidad consola y la modalidad rutina. En la modalidad consola aparece el Prompt (>>) cada vez que se hace una operacin. En esta modalidad los clculos se realizan en forma inmediata por medio de los comandos adecuados. Se pueden escribir matrices, vectores y variables en consola y despus utilizarlos en los programas que se hacen en la otra modalidad. En la modalidad rutina no aparece el prompt >> pero en su lugar cada una de las lneas estn numeradas. Es en esta modalidad donde se realizan los programas y al estar numeradas cada una de las lneas se facilita la correccin de los errores. Una vez que

MANUAL RPIDO DE MATLAB

se realiza el programa se graba con un nombre. MATLAB automticamente a este archivo le asigna la extensin .m Cuando se ejecuta MATLAB se ingresa a la modalidad prompt, a futuro se indicar nicamente >> de aqu se pasa a la modalidad rutina escribiendo la palabra edit o en su defecto utilizando el icono correspondiente para abrir archivos. Tanto en la modalidad consola como en la modalidad rutina, si al final de una sentencia se coloca ; no se imprimen los resultados. Si se omite el punto y coma si aparecern los resultados.

2.

MATRICES Y VECTORES

Dada la siguiente matriz A y el vector B, estas se cargan en MATLAB como se indica a continuacin.

10.5 A= 23.1

23.1 80.2

30.4 19.7

15 B= 20

>> A=[10.5 23.1 30.4; 23.1 80.2 19.7] >> B=[15 ; 20] Despus de cada nmero se deja uno o varios espacios. Una vez que se han dado los datos de una fila se coloca punto y coma (;) con lo cual el programa sabe que a continuacin se tiene una nueva fila Los elementos de una matriz o vector se indican entre [ ].

Una vez que se han definido las matrices y vectores, se pueden realizaras operaciones de la siguiente forma: Para calcular la transpuesta, se escribe el nombre de la matriz o vector y a continuacin el apstrofo que est entre parntesis. (). Para sumar se indican las matrices o vectores y se coloca entre ellas el signo +. Pare restar se indican las matrices o vectores y se coloca entre ellas el signo -. Para multiplicar se indican las matrices o vectores y se coloca entre ellas el signo *. Para invertir una matriz, por ejemplo la matriz A. El comando es inv (A). Para multiplicar un escalar por una matriz se procede en forma similar a la multiplicacin de una matriz.

EJEMPLO 1
Dadas las matrices:

2 A= 1
Encontrar:

4 3

1 B= 2

1 1

3 C= 2

2 6

ROBERTO AGUIAR FALCONI CEINCI-ESPE

i. ii. iii. iv. v.

D = A t . La transpuesta de la matriz A . E = A B . El producto de la matriz A por la matriz B . F = C 1 . La matriz inversa de C . G = A + B . La suma de la matriz A con la matriz B . H = A C . La diferencia de las matrices A con la C .

SOLUCIN

>> A=[ 2 4; 1 3]; B=[ 1 -1; 2 1]; C=[ 3 2; 2 6 ] >> D=A >> E=A*B >> F=inv(C) >> G=A+B >> H=A-C El colocar el punto y coma despus del corchete hace que no se imprima a continuacin la matriz. En este caso no se imprimir las matrices A y B pero si se imprimir la matriz C. Despus de cada sentencia aparece inmediatamente los resultados esperados, as luego de colocar D=A, aparece

2 D= 4

1 3

Los restantes resultados que se obtienen son:

10 E= 7

2 2

0.42857 F = 0.14286

0.14286 0.21429

3 G= 3

3 4

1 H = 1

2 3

Si en el ejemplo, por desconocimiento o descuido, se colocaba: >> E=a*B MATLAB no puede hacer la operacin ya que la matriz a no est definida. De tal manera que en MATLAB se diferencian las minsculas de las maysculas.

3.

SOLUCIN DE ECUACIONES LINEALES

Para resolver un sistema de ecuaciones lineales de la forma A X = B se procede de la siguiente manera: >> X= A\B

EJEMPLO 2
Resolver el siguiente sistema de ecuaciones lineales:

MANUAL RPIDO DE MATLAB

8 2 3
SOLUCIN

2 10 1

3 1 5

X 1 42 X = 50 2 40 X 3

>> A=[8 2 3; 2 10 1; 3 1 5]; B=[ 42; 50; 40]; X= A\B


En este caso no se imprime la matriz A ni el vector B por el (;) . Se pudo haber colocado la matriz A en una lnea, el vector B en otra y el clculo de las incgnitas en otra. La solucin del ejercicio es:

2.00 X = 4.00 6.00

4.

CLCULO AVANZADO CON MATRICES

En este libro se tiene que calcular con cierta frecuencia los valores y vectores propios de una matriz A y tambin el exponencial de una matriz eA. Esto se lo hace con los siguientes comandos: [V,D] = eig ( A ) expm(A) En V vienen los vectores propios y en D los valores propios de A. El comando expm(A) halla el exponencial de la matriz.

EJEMPLO 3
Encontrar los valores y vectores propios de la siguiente matriz A.

5 A= 2 0
SOLUCIN

2 3 1

0 1 1

>> A=[ 5 -2 0; -2 3 -1; 0 -1 1]; [V,D] = eig (A)

0.2149 V = 0.4927 0.8433

0.5049 0.6831 0.5277

0.8360 0.5392 0.1019

ROBERTO AGUIAR FALCONI CEINCI-ESPE

0.4158 D= 0 .0 0 .0

0 .0 2.2943 0 .0

0 .0 0 .0 6.2899

Otra forma de calcular los valores y vectores propios, que ofrece MATLAB es: [V,D] = eig (K,M) K es la matriz de rigidez, M es la matriz de masas. Las dos son de orden (n x n) siendo n el nmero de grados de libertad. En V vienen los modos de vibracin y en D los valores propios con los cuales se obtienen las frecuencias naturales.

EJEMPLO 4
Calcular el exponencial de la siguiente matriz A

4 A= 2
SOLUCIN

2 9

>> A = [ 4 2 ; 2 9]; >> expm(A) ans = 1.0e+004 * 0.1815 0.5096 0.5096 1.4555

En este caso no se le asign el nombre de una matriz al resultado de eA. En este caso MATLAB asigna la respuesta a ans. El clculo del exponencial de una matriz se lo aplica en el Procedimiento de Espacio de Estado, para encontrar la respuesta ssmica de un sistema de n grados de libertad.

5.

CLCULO DE INTEGRALES

MATLAB ofrece varias formas de calcular una integral, en este libro se utiliza la regla del trapecio y su formato de uso es: trapz (X,Y) Donde X es un vector que contiene los puntos discretos X. Por otra parte Y es el nombre del vector que contiene los valores de la funcin Y en los puntos discretos X. Esta modalidad se utiliza cuando los puntos discretos se encuentran espaciados cada unidad.

trapz (Y)

MANUAL RPIDO DE MATLAB

6.

MATRIZ IDENTIDAD Y NULA

MATLAB puede crear matrices de orden (n x n) con 1 solo en la diagonal, con 1 en toda la matriz o con 0 en toda la matriz, de la siguiente manera: A = eye (m) A = ones (m) m es el orden de la matriz A identidad. m es el orden de la matriz A pero en este caso todos los elementos de la matriz son unos. m es el orden de la matriz A que est compuesta por ceros.

A = zeros (m)

7.

FUNCIONES MATEMTICA ELEMENTALES


En la tabla 1 se indican las funciones elementales que ms se utilizan en este libro. Tabla 1 Funciones matemticas elementales. Comentario Funcin Seno trigonomtrico abs (x) Coseno angle (x) Tangente sqrt (x) Seno hiperblico real (x) Coseno hiperblico imag (x) Seno inverso trigon. conj (x) Seno inverso hiperblico exp (x) Logaritmo de base e log10 (x)

Funcin sin (x) cos (x) tan (x) sinh (x) cosh (x) asin (x) asinh (x) log (x)

Comentario Valor absoluto Angulo de fase Raz cuadrada


Parte real del complejo Parte imaginaria Conjugado de complejo Base exponencial e Logaritmo de base 10

8.

GRFICAS EN MATLAB

Nuevamente MATLAB ofrece gran versatilidad para la elaboracin de figuras, aqu nicamente se presentan los comandos con los cuales se obtuvieron las curvas que estn en este texto. Para realizar un simple grfico en dos dimensiones el comando es: plot (x,y) xlabel (Titulo para eje de las x); ylabel (Titulo para eje de las y); title (Titulo de la figura) Previamente se habrn obtenido los vectores x, y. Para realizar varias curvas en un solo grfico, se procede de la siguiente manera: hold off plot (x,y,+) hold on plot (x,z,o) El comando hold on mantiene la grfica para realizar otra curva. Es conveniente apagarla con hold off para que no quede activado este comando. Cuando se construyen varias curvas en una grfica es conveniente dibujar cada una de ellas con un smbolo diferente los mismos que se indican entre . En el ejemplo la primera curva

ROBERTO AGUIAR FALCONI CEINCI-ESPE

se dibujara con el signo ms y la segunda curva con crculo, en este caso se escribi la o no el cero. En la tabla 2 se indican varios smbolos disponibles. Tabla 2 Smbolos disponibles Smbolo Tipo de Marca Lnea-Punto . Lneas entrecortadas : Signo estrella + Marca x O

Tipo de marca Punto


Lneas muy pequeas

Signo ms Crculo

Smbolo -. -* x

En lugar de utilizar smbolos diferentes para construir las curvas se puede utilizar colores, colocando en lugar del smbolo la letra de un color, las mismas que se indican en la tabla 3.

Para presentar varias figuras, se tiene el comando subplot en que se pueden presentar m por n grficas. La sintaxis es: subplot (m,n,k) k es el nmero de la grfica que se dibuja, m y n se refiere a m por n grficas que se quieren dibujar. Tabla 3 Colores disponibles Smbolo Color de lnea Amarillo R Turquesa M Azul G Negro W

Color de lnea Rojo


Magenta

Verde Blanco

Smbolo y C B K

EJEMPLO 5
Encontrar en forma grfica las races de la siguiente ecuacin:

1 + cos p cosh p = 0
SOLUCIN

Esta ecuacin aparece cuando se resuelve una viga en flexin modelado como un sistema continuo. La ecuacin propuesta se puede escribir de la siguiente manera:

cos p =

1 cosh p

Por lo tanto se debe graficar las dos curvas que son: cos p , por una parte, y

1 / cosh p , por otra. Se presenta a continuacin la forma de graficar en la modalidad consola.


>> dx=0.01; >> for i = 1:500 p(i)=i*dx; y(i)=cos(p(i)); z(i)=-1/cosh(p(i)); end >> plot (p,y,r); hold on; plot (p,z,b) En la figura 1 se presentan las curvas que se obtienen:

8 MANUAL RPIDO DE MATLAB

Figura 1 Grfica de dos funciones.

Se puede colocar mayor informacin en el grfico de la figura 1, con el propsito de explicar mejor cuales son las races, esto se lo puede hacer con MATLAB pero es ms fcil realizarlo usando el programa PAINT; en la figura 2 se presenta el resultado final del clculo grfico de las races que ha sido realizado con MATLAB y PAINT.

Figura 2 Races encontradas.

ROBERTO AGUIAR FALCONI CEINCI-ESPE

9.

PROGRAMAS

Si bien en el apartado anterior se realiz un pequeo programa, para dibujar las dos curvas, lo usual es que esto se realice en la modalidad rutina. La primera instruccin de un programa es: function [resultados] = nombre (datos) En resultados vendr el nombre de las variables que contienen los resultados del programa, puede ser una o varias variables o arreglos. El nombre corresponde a la forma de identificar el programa, no hay limitacin en el nmero de letras que se utilicen para el efecto. Por ltimo en datos vienen de consola, la informacin que requiere el programa para su ejecucin. Normalmente se deben colocar datos pero tambin el programa puede pedir los datos por pantalla o a su vez tomarlos de un archivo o se pueden asignar valores de tal forma que no es obligatorio que existan siempre datos. Es conveniente documentar los programas, para el efecto se colocarn comentarios, esto se lo hace con % y a continuacin se indican todos los comentarios que se requieran. Cuando el programa ve % simplemente ignora esa sentencia ya sabe que son comentarios. En una fila de datos se puede tener una o ms sentencias en el ejemplo anterior se escribi tres sentencias en una fila que son: p(i)=i*dx; y(i)=cos(p(i)); z(i)=-1/cosh(p(i)); esto hace que los programas sean ms cortos. Para programar bsicamente se necesita conocer como se escribe un bucle y la forma de escribir las decisiones condicionales. En otras palabras saber el manejo del for y del if.

Bucles

Empiezan con la palabra for y terminan con la palabra end. Luego de un ndice el mismo que va a variar en la forma que el usuario desee. La sintaxis del for es la siguiente: for i = ni:nf .. end Donde ni es el nmero inicial en que empieza el lazo o bucle y nf es el nmero en que termina el bucle. En la forma indicada el ndice i variar de uno en uno. Si se desea otro tipo de variacin la sintaxis en la siguiente: for i = ni,dx,nf .. end En este caso se especifica el incremento dx con el cual va a ir variando el ndice i. Los ., significan que en ese lugar se colocarn las sentencias del programa.

Condicionales La forma ms sencilla de un condicional es la siguiente: if condicin .............. else end

10 MANUAL RPIDO DE MATLAB

Si se cumple la condicin que est al lado del if se ejecutan las lneas que estn a continuacin, caso contrario no se ejecutan estas lneas y se ejecutan las lneas posteriores a else. En este libro se trabaja con los siguientes operadores para los condicionales:

Nombre Mayor que Mayor o igual Igual

Tabla 3 Lista de condicionales Operador Nombre > Menor que >= Menor o igual == No es igual

Operador < >=

La forma general de un condicional es: if condicin .............. elseif else end

En este caso se tiene opcin de hacer varias preguntas adicionales, en este caso solo se ha efectuado una pregunta adicional con elseif pero se pueden hacer tantas como sea necesario.

EJEMPLO 6

Elaborar un programa para encontrar una de las races de un polinomio de tercer grado aplicando el Mtodo de Newton Raphson.

SOLUCIN
La frmula del Mtodo de Newton Raphson es la siguiente:

X i +1 = X i

f (X i ) f ' (X i )
'

Donde f ( X i ) es el valor de la funcin en el punto X i ; f grado de la forma: f ( x ) = ax + bx + cx + d modalidad consola. La ecuacin a programar es:
3 2

(X i )

es el valor de la

derivada en X i . Por facilidad se desarrolla un programa especfico para un polinomio de tercer Los datos a, b, c, d se indicarn en la

ROBERTO AGUIAR FALCONI 11 CEINCI-ESPE

X i +1

a X i3 + bX i2 + cX i + d = Xi 3aX i2 + 2bX i + c

determina X i +1 con este valor se ve si f ( X i +1 ) es menor o igual a una tolerancia, si es menor que se ha elaborado se denomina newtonraphson y se indica a continuacin.

El clculo es iteractivo, ya que se debe imponer un valor inicial de X i y el programa

se hall la raz, caso contrario se continua con el clculo para lo cual X i = X i +1 . El programa

Se destaca que en MATLAB no se puede colocar las tldes en los programas de tal manera que aparecern ciertas palabras con error gramatical.

function [raiz]=newtonraphson(a,b,c,d,xi) % % Calculo de una raiz de un polinomio de tercer grado aplicando el % Metodo de Newton Raphson % % a,b,c,d son datos del polinomio de tercer grado. % xi es dato el valor inicial que el usuario propone. % raiz es una de las raices que se obtienen % tol es el nombre de la tolerancia con la cual se desea calcular. %f es el valor de la funcion en el punto xi tol=0.01;xx=xi; for i=1:100 f=a*xi^3+b*xi^2+c*xi+d; if f <=tol raiz=xx; break else fp=3*a*xi^2+2*b*xi+c;xx=xi-f/fp;xi=xx; end end

Para ver la bondad del programa se encuentran las races del siguiente polinomio.

f ( x) = 2 x 3 5 x 2 + x + 2 = 0
La forma de ejecutar el programa es como sigue: >> [raiz] = newtonraphson (2,-5,1,2,3) El valor de X i inicial propuesto es 3. El programa reporta: raiz = 2.0006 Con relacin al programa es necesario explicar dos sentencias que son: break y continue break Sirve para salir del bucle. En el programa realizado en principio se deba realizar 100 iteracciones ya que el lazo va de 1 a 100 pero con la

12 MANUAL RPIDO DE MATLAB

pregunta que se realiza si f <= tol , no se llega a las 100 iteracciones, es probable que un nmero mucho menor ya se halle la raz. Entonces la forma de salir del lazo es con break. continue Tiene el efecto contrario al break. Se realiza una pregunta dentro de un lazo y si cumple cierta condicin y no se quiere hacer ninguna operacin, nicamente que contine con el bucle, en este caso se coloca continue.

Clculo de races de un polinomio

Se escribi el programa newtonraphson para ilustrar el uso de un bucle y de un condicionante. Para hallar las races de un polinomio MATLAB tiene el comando roots con el cual se hallan todas las races del polinomio. La sintaxis es: R = roots (p) Donde p es un vector que contiene los coeficientes del polinomio y R es el nombre del vector que contiene las races. En lugar de p y R se puede colocar cualquier nombre. Para hallar las races de: f ( x ) = 2 x 5 x + x + 2 = 0 . Se procede de la siguiente manera:
3 2

>> p = [ 2 -5 1 2] >> raiz = roots (p) El programa en el vector raiz reporta todas las races que son: raiz = 2.0000 1.0000 -0.5000 Si se conocen las races de un polinomio y se desea hallar los coeficientes de dicho polinomio el comando que se utiliza es poly ( r ) Donde r es el nombre del vector que contiene las races. Para el ejemplo se tendra: >> r = [ 2 1 -0.5] >> poly (r) El programa reporta: ans = 1.0000 -2.5000 0.5000 1.0000

Que son los coeficientes del polinomio del ejemplo, dividido para 2.

Conforme pasa el tiempo, es probable que se olvide la forma de entrada de datos de un determinado programa o no recuerda que hace el programa. En este caso, en la modalidad consola se escribir help y el nombre del programa. Luego va a aparecer todas las primeras instrucciones que son comentarios.

ROBERTO AGUIAR FALCONI 13 CEINCI-ESPE

10.

ARCHIVO DE DATOS Y RESULTADOS

En el libro se encuentra la respuesta ssmica de varias estructuras ante un acelerograma, de un sismo registrado en el Per el 9 de noviembre de 1974, lo primero que se debe realizar antes de llevar el archivo a MATLAB es eliminar las lneas de comentarios que normalmente traen los archivos y despus darle un nombre con extensin .dat En el libro el archivo de este acelerograma se denomina Peru04.dat. Este archivo debe grabarse en la carpeta de MATLAB denominada WORK. Se destaca que debe ser un archivo ASCII. Para cargar un archivo, la sintaxis es: load datos.dat; Por otra parte, para guardar un archivo de resultados, la sintaxis es: save result.res; En la sintaxis se ha denominado datos y result a los archivos de datos y resultados pero pueden tener cualquier nombre.

11. FACILIDADES DE MATLAB CON MATRICES


MATLAB facilita, la forma de trabajar con matrices y vectores. A continuacin se indican algunas de estas formas:

Creacin de una matriz diagonal

Si en consola o rutina se escribe, por ejemplo: A = diag ( [ 5 4 3 ] ) Se crea la matriz:

5 A= 0 0
Obtencin de una submatriz

0 4 0

0 0 3

Se desea obtener de la matriz A del ejemplo anterior una submatriz que se va a denominar B compuesta por las dos primeras filas y columnas. B = A ( 1:2,1:2) Se crea la submatriz:

5 B= 0

0 4

14 MANUAL RPIDO DE MATLAB

La sintaxis es primero identificar la matriz de la cual se va a obtener la submatriz. Luego entre parntesis se indica la fila inicial : la fila final coma la columna inicial : la columna final Si se desea extraer un elemento de una matriz, se escribe en la notacin clsica. Por ejemplo de la matriz A se desea obtener el nmero 4. A (2,2) ans= 4

Smbolo :

Sirve para denotar todos los elementos de una fila o columna de una matriz. Por ejemplo si se quiere obtener los elementos de la tercera columna de la matriz A. A(:,3) ans= 0 0 3

Mximo y Mnimo de un vector

Para encontrar el valor mximo o mnimo de un vector la sintaxis es: max (A) o min(A). Siendo A. El nombre del vector.

Dimensin de un vector o matriz

Para saber el orden de una matriz o vector la sentencia es length (A) donde A es el nombre de la matriz o vector.

12.

FUNCIONES

Una gran ventaja de MATLAB es que las funciones se pueden trabajar directamente como vectores o matrices. Por ejemplo si se tiene una serie de tiempo que va desde 0 a 1 con incrementos de 0.1, esto se lo obtiene de la siguiente manera: >> t = linspace (0,1,11)

Con lo que se obtiene: t=0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0

La primera cantidad de linspace corresponde al nmero inicial, la segunda al nmero final y la tercera al nmero de valores que se desea, entre los nmeros inicial y final.

ROBERTO AGUIAR FALCONI 15 CEINCI-ESPE Se ha creado t como un vector fila. Esto es muy importante tener en cuenta ya que para graficar funciones se necesita tener un vector columna. En este caso se escribe de la siguiente manera: >> t = linspace (0,1,11) Si se desea obtener el seno para cada uno de los valores de t se procede de la siguiente manera:

>> a=sin(t) Con lo que se halla:

a= 0 0.0998 0.8415 0.1987 0.2955 0.3894 0.4794 0.5646 0.6442 0.7174 0.7833

Se ha presentado un manual rpido de MATLAB que tiene como objetivo que el lector comprenda los programas que en libro se presentan. Con tantas ventajas que ofrece MATLAB, los programas, de aspectos muy complejos como es por ejemplo, el hallar la respuesta en el tiempo de un sistema de mltiples grados de libertad, son muy cortos. Los programas que se desarrollan tienen un gran beneficio ya que ayudan al lector a entender perfectamente el tema que se est exponiendo. Para quienes deseen profundizar ms en MATLAB se les recomienda el libro de Shoichiro Nakamura (1997), Anlisis numrico y visualizacin grfica con MATLAB, 476 p., Prentice-Hall Hispanoamericana S.A., Mxico.

Вам также может понравиться