Capítulo xx. Introducción a MATLAB file• Panel “Command History” En donde se guarda una...

23
Empresa Tema Capítulo xx. Introducción a MATLAB MI. Mario Alfredo Ibarra Carrillo Año 2012

Transcript of Capítulo xx. Introducción a MATLAB file• Panel “Command History” En donde se guarda una...

Page 1: Capítulo xx. Introducción a MATLAB file• Panel “Command History” En donde se guarda una listado de cada linea tecleada en la “command window”. Carpeta de trabajo A la derecha

EmpresaTema

Capítulo xx.

Introducción a MATLAB

MI. Mario Alfredo Ibarra Carrillo Año 2012

Page 2: Capítulo xx. Introducción a MATLAB file• Panel “Command History” En donde se guarda una listado de cada linea tecleada en la “command window”. Carpeta de trabajo A la derecha

EmpresaTema

MATLAB es el nombre abreviado de “MATrix LABoratory” y es un producto software de la empresa MathWorks. MATLAB es un programa para realizar cálculos numéricos con vectores y matrices. Como caso particular puede también trabajar con números escalares −tanto reales como complejos−, con cadenas de caracteres y con otras estructuras de información más complejas. Una de las capacidades más atractivas es la de realizar una amplia variedad de gráficos en dos y tres dimensiones. MATLAB tiene también un lenguaje de programación propio.

Arranque de MATLAB

• En windows: Busque el icono de MATLAB o bien, desde el menú inicio

• En Linux: Desde una terminal teclee “matlab”.

En Linux se ve una pantalla como la siguiente

MI. Mario Alfredo Ibarra Carrillo Año 2012

Page 3: Capítulo xx. Introducción a MATLAB file• Panel “Command History” En donde se guarda una listado de cada linea tecleada en la “command window”. Carpeta de trabajo A la derecha

EmpresaTema

Note todos los páneles que forman el entono de desarrolo de MATLAB:

• Barra de Menú

• Barra de iconos para acceso rápido

• Panel “current folder”

• Panel “details”

• Panel “Comand window” desde donde se teclean las comandos y ecuaciones.

• Panel “Work space” en donde se visualizan las variables.

• Panel “Command History” En donde se guarda una listado de cada linea tecleada en la “command window”.

Carpeta de trabajo

A la derecha del menu de iconos hay una etiqueta “current folder” tal como se ve en la figura siguiente.

Haciendo click en el botón de los tres puntos elija una carpeta en donde desee guardar sus archivos

También es posible cambiar de carpete de trabaja empleando la palabra reservada “cd” en la ventana de comandos:

• “cd ..” sale de la carpeta actual

• cd <carpeta>” entra a la carpeta especificada

MI. Mario Alfredo Ibarra Carrillo Año 2012

Page 4: Capítulo xx. Introducción a MATLAB file• Panel “Command History” En donde se guarda una listado de cada linea tecleada en la “command window”. Carpeta de trabajo A la derecha

EmpresaTema

Básicos de MATLAB

Operaciones ariméticas básicas

Las operaciones aritméticas básicas definidas en MATLAB son:

Ejemplos

MI. Mario Alfredo Ibarra Carrillo Año 2012

Operación aritmética Símbolo de MATLAB (operadores)

suma “+”resta “-”producto “*”división “/”potenciación “^”

Page 5: Capítulo xx. Introducción a MATLAB file• Panel “Command History” En donde se guarda una listado de cada linea tecleada en la “command window”. Carpeta de trabajo A la derecha

EmpresaTema

Formato para exhibir datos numéricos en la ventana de comandos

Especifica el formato numérico en el cual se exibirián los datos numéricos en la ventana de comandos

• format short : coma fija con 4 decimales (defecto)

• format long : coma fija con 15 decimales

• format hex : cifras hexadecimales

• format bank : números con dos cifras decimales

• format short e : notación científica con 4 decimales

• format short g : notación científica o decimal, dependiendo del valor

• format long e : notación científica con 15 decimales

• format long g : notación científica o decimal, dependiendo del valor

• format rat : expresa los números racionales como cocientes de enteros

Ejemplos:

MI. Mario Alfredo Ibarra Carrillo Año 2012

Page 6: Capítulo xx. Introducción a MATLAB file• Panel “Command History” En donde se guarda una listado de cada linea tecleada en la “command window”. Carpeta de trabajo A la derecha

EmpresaTema

Constantes numéricas de MATLAB

Las constantes que se definen por defecto en MATLAB para su uso en diferentes funciones son

• π

• e

Funciones trascendentes

Para ingresar las funciones se debe respetar la sintaxis propia de MATLAB

función Sintaxis en command window

y=x2 y = x^2

y=x3 y = x^3y=√x y = sqrt(x)

y=n√ x y = x^(1/n)

y=sen(x) y= sen(x)y=cos(x) y= cos(x)y=tg (x) y=tan(x)

y=ex y=exp(x)y= ln x y=log(x)y= log

10y=log10(x)

y=∣x∣ y=abs(x)

MI. Mario Alfredo Ibarra Carrillo Año 2012

Page 7: Capítulo xx. Introducción a MATLAB file• Panel “Command History” En donde se guarda una listado de cada linea tecleada en la “command window”. Carpeta de trabajo A la derecha

EmpresaTema

Vectores

Vector renglón

>format short

>x=[1,2,3,4,5]

x =

1 2 3 4 5

>y=rand([1,3])

y =

0.6555 0.1712 0.7060

Vector columna

>format short

>z=[1;2;3;4;5]

z =

1

2

3

4

5

>w=rand([3,1])

w =

0.0318

0.2769

0.0462

MI. Mario Alfredo Ibarra Carrillo Año 2012

Page 8: Capítulo xx. Introducción a MATLAB file• Panel “Command History” En donde se guarda una listado de cada linea tecleada en la “command window”. Carpeta de trabajo A la derecha

EmpresaTema

Producto punto a punto

>format short

>E=[1,1,1,2,3,2,1,1];

>F=[1,2,3,2,1,1,1,1];

>E.*F

ans =

1 2 3 4 3 2 1 1

Cociente punto a punto

>format short

>E=[1,1,1,2,3,2,1,1];

>F=[1,2,3,2,1,1,1,1];

>E./F

ans =

1.0000 0.5000 0.3333 1.0000 3.0000 2.0000 1.0000 1.0000

>2./E

ans =

2.0000 2.0000 2.0000 1.0000 0.6667 1.0000 2.0000 2.0000

Transpuesta de un vector

trasnponer un vector renglón implica expresarlo como vector columna. En el otro caso, transponer un vector columna implica expresarlo como vector renglóin

>format short

>E=[1,,2,3]';

>ans=

1

2

3

MI. Mario Alfredo Ibarra Carrillo Año 2012

Page 9: Capítulo xx. Introducción a MATLAB file• Panel “Command History” En donde se guarda una listado de cada linea tecleada en la “command window”. Carpeta de trabajo A la derecha

EmpresaTema

Producto punto entre dos vectores

>format short

>E=[1,1,1,2,3,2,1,1];

>F=[1,2,3,2,1,1,1,1];

>sum (E.*F)

ans =

17

otra forma de lograr el producto punto es transponiendo el segundo factor para que los vectores se multipliquen cual matrices, es decir, se usa F '

>format short

>E=[1,1,1,2,3,2,1,1]; %dimensiones de 1x8

>F=[1,2,3,2,1,1,1,1]; %dimensiones de 1x8

>E*F' %producto en (1x8) x (8,1) = (1x1)

ans=

17

MI. Mario Alfredo Ibarra Carrillo Año 2012

Page 10: Capítulo xx. Introducción a MATLAB file• Panel “Command History” En donde se guarda una listado de cada linea tecleada en la “command window”. Carpeta de trabajo A la derecha

EmpresaTema

Matrices

Definición de una matriz

Una matriz se define en MATLAB expresándola renglón por renglón, cada uno separado por “;”

>format short

>A=[1 2 3; 4 5 6; 7 8 9 ]

A =

1 2 3

4 5 6

7 8 9

Inversa de matriz

>format short

>A=[1 2 3; 4 5 6; 7 8 9 ];

>inv (A)

ans =

1.0e+16 *

-0.4504 0.9007 -0.4504

0.9007 -1.8014 0.9007

-0.4504 0.9007 -0.4504

MI. Mario Alfredo Ibarra Carrillo Año 2012

Page 11: Capítulo xx. Introducción a MATLAB file• Panel “Command History” En donde se guarda una listado de cada linea tecleada en la “command window”. Carpeta de trabajo A la derecha

EmpresaTema

Zeros (<rows>,<cols>)

Crea una matriz de ceros de rows renglones y de cols columnas”

>format short

>B=zeros(2,2)

B =

0 0

0 0

Ones (<rows>,<cols>)

Crea una matriz de unos de “rows” renglones y de “cols” columnas”

>format short

>B=ones(2,2)

B =

1 1

1 1

eye (<size>)

Crea una matriz identidad de tamaño ¿¿

>format short

>C=eye (2)

C =

1 0

0 1

MI. Mario Alfredo Ibarra Carrillo Año 2012

Page 12: Capítulo xx. Introducción a MATLAB file• Panel “Command History” En donde se guarda una listado de cada linea tecleada en la “command window”. Carpeta de trabajo A la derecha

EmpresaTema

magic(N); N>2

Crea una matriz de NxN con enteros de 1 a N2 con igual suma por renglones, por columnas y por diagonal.

>magic(3)

ans =

8 1 6

3 5 7

4 9 2

MI. Mario Alfredo Ibarra Carrillo Año 2012

Page 13: Capítulo xx. Introducción a MATLAB file• Panel “Command History” En donde se guarda una listado de cada linea tecleada en la “command window”. Carpeta de trabajo A la derecha

EmpresaTema

Polinomios

[matlab61pro.pdf; pg 50]

Para MATLAB un polinomio se puede definir mediante un vector de coeficientes. Por ejemplo, el polinomio:

x4− 8 x2+ 6 x−10=0

Se puede representar mediante el vector [1, 0, -8, 6, -10]. MATLAB puede realizar diversas operaciones sobre éste, como por ejemplo evaluarlo para un determinado valor de x (función polyval()) y calcular las raíces (función roots()):

Las raices de un polinomio (función roots)

Para el polinomio x4− 8 x2+ 6 x−10=0

>pol=[1 0 -8 6 -10];

>roots(pol)

ans =

-3.2800

2.6748

0.3026 + 1.0238i

0.3026 - 1.0238i

MI. Mario Alfredo Ibarra Carrillo Año 2012

Page 14: Capítulo xx. Introducción a MATLAB file• Panel “Command History” En donde se guarda una listado de cada linea tecleada en la “command window”. Carpeta de trabajo A la derecha

EmpresaTema

Evaluación de un polinomio (función polyval)

Producto de polinomio (función conv)

Se desea multiplicar los siguientes polinomios

A=x2−2x+ 4

B=x3+ 3x−4

Para calcular producto de polinomios, MATLAB utiliza una función llamada conv() (de producto de convolución).

>> A=[1 -2 4] ;

>> B=[1 0 3 -4]

>> C=conv(A,B)

C =

1 -2 7 -10 20 -16

Entonces, el polinomio resultante es:

C=x5−2 x4

+ 7 x3−10 x2

+ 20 x−16

MI. Mario Alfredo Ibarra Carrillo Año 2012

Page 15: Capítulo xx. Introducción a MATLAB file• Panel “Command History” En donde se guarda una listado de cada linea tecleada en la “command window”. Carpeta de trabajo A la derecha

EmpresaTema

Cociente de polinomios (función deconv)

Dado el polinomio

N=x5+ 2x3−x−8

Se va a dividir por el siguiente wpolinomio

D=x2−2 x+ 1

>[C,R]=deconv(N,D)

C =

1 2 5 8

R =

0 0 0 0 10 -16

Entonces, el cociente es el polinomio

C=x3+ 2x2+ 5x+ 8

El residuo de la dividsión es:

R=10 x−16

MI. Mario Alfredo Ibarra Carrillo Año 2012

Page 16: Capítulo xx. Introducción a MATLAB file• Panel “Command History” En donde se guarda una listado de cada linea tecleada en la “command window”. Carpeta de trabajo A la derecha

EmpresaTema

Capacidad de cálculo del hardware

Es con grandes matrices o grandes sistemas de ecuaciones como MATLAB obtiene toda la potencia del ordenador. Por ejemplo, las siguientes instrucciones permiten calcular la potencia de cálculo del ordenador en Megaflops (millones de operaciones aritméticas por segundo). En la primera línea se crean tres matrices de tamaño 500×500, las dos primeras con valores aleatorios y la tercera con valores cero. La segunda línea toma tiempos, realiza el producto de matrices, vuelve a tomar tiempos y calcula de modo aproximado el número de millones de operaciones realizadas. La tercera línea calcula los Megaflops por segundo, para lo cual utiliza la función etime() que calcula el tiempo transcurrido entre dos instantes definidos por dos llamadas a la función clock

>n=500; A=rand(n); B=rand(n); C=zeros(n);

>tini=clock; C=B*A; tend=clock; mflops=(2*n^3)/1000000;

>mflops/etime(tend,tini)

Por ejemplo, una laptop con la primera generación de core i7 corriendo ubuntu 11.04 provee a matlab con 1.5316E3 megaflops o bien, 1.5316 giglaflops.

MI. Mario Alfredo Ibarra Carrillo Año 2012

Page 17: Capítulo xx. Introducción a MATLAB file• Panel “Command History” En donde se guarda una listado de cada linea tecleada en la “command window”. Carpeta de trabajo A la derecha

EmpresaTema

Manejo de menoria

Clear

El comando clear sin argumentos borra todas las variables creadas durante la sesión

Clear <variable>, <variable>, ...

Borra las variables especificadas en la lista de varaiables

>g=1;

>h=2;

>m=3;

>clear g

>clear h m

Los efectos del comando clear pueden verse en la “workspace window”

Save

Guardar el estado del sistema en el archivo matlab.mat en la carpeta de trabajo

El comando por sí solo guarda el estado de la sesión de trabajo, es decir, guarda las variables y su contenido, junto con las variables que definen el estado actual de MATLAB.

>> save

Antes de abandonar el programa, se crea en el directorio actual un fichero binario llamado matlab.mat (o matlab) con el estado de la sesión (excepto los gráficos, que por ocupar mucha memoria hay que guardar a parte).

MI. Mario Alfredo Ibarra Carrillo Año 2012

Page 18: Capítulo xx. Introducción a MATLAB file• Panel “Command History” En donde se guarda una listado de cada linea tecleada en la “command window”. Carpeta de trabajo A la derecha

EmpresaTema

Load

Recupera el estado del sistema guardado en el archivo matlab.mat en la carpeta de trabajo

Dicho estado puede recuperarse la siguiente vez que se arranque el programa con el comando:

>> load

Save <filename> <lista de variables>

Guarda en el archivo de usuario las variables especificadas

La siguiente linea guarda las variables A, x e y en un fichero binario llamado filename.mat (o filename).

>> save filename A x y

load <filename>

Recupera las variables almacenadas en el archivo de usuario

Para recuperar las variables almacenadas en el archivo filane.mat se teclea:

>> load filename

clc

“Clear Console” o borrar consola

MI. Mario Alfredo Ibarra Carrillo Año 2012

Page 19: Capítulo xx. Introducción a MATLAB file• Panel “Command History” En donde se guarda una listado de cada linea tecleada en la “command window”. Carpeta de trabajo A la derecha

EmpresaTema

Crear una señal senoidal

Telece los siguiente

>N=100; %100 muestras

>T=3E-3; %3 milisegundos

>Ts=T/N; %periodo de muestreo

>t=0:Ts:T*(1-1/N); %Vector de tiempo muestreado

>f=1000; %frecuencia de la senoide

>y=sin(2*pi*f*t);

Entonces verificamos el tamaño de los vectores creados

>size(t)

ans =

100

>size(y)

ans =

100

MI. Mario Alfredo Ibarra Carrillo Año 2012

Page 20: Capítulo xx. Introducción a MATLAB file• Panel “Command History” En donde se guarda una listado de cada linea tecleada en la “command window”. Carpeta de trabajo A la derecha

EmpresaTema

plot(<variable de ordenadas>)

plot (<variable de abcisas> <variable de ordenadas>)

plot (<variable de abcisas> <variable de ordenadas>,'<color>')

Para la senoide del ejemplo anterior se hace

>plot(t,y)

Si desea especificar un colo para el trazo hacemos

>close %cierra la ventana con la gráfica

>plot(t,y,'r') %Crea una gráfica en color rojo

La gráfica generada puede guardarse en disco mediante menú “file ->save as”. Entonces elija el nombre del archivo y el formato. Los formatos pueden ser

• MATLAB figure *.fig

• Adobe illustrator *.ai,

• EPS file *.eps

• JPEG image *.jpg

• Portable Network Graphics *.png

• TIFF Image *.tif

• etc.

MI. Mario Alfredo Ibarra Carrillo Año 2012

Page 21: Capítulo xx. Introducción a MATLAB file• Panel “Command History” En donde se guarda una listado de cada linea tecleada en la “command window”. Carpeta de trabajo A la derecha

EmpresaTema

Finalmente debe cerrarse la gráfica

>close

Script *.m

En la ventana de comando tecle

>edit senoide

Aparece un cuadro de diálogo que indica que el archivo no existe, es decir

Presione el botón “yes” para crearlos y que se abra el editor de scripts. Entonces teclee el código siguiente:

MI. Mario Alfredo Ibarra Carrillo Año 2012

Page 22: Capítulo xx. Introducción a MATLAB file• Panel “Command History” En donde se guarda una listado de cada linea tecleada en la “command window”. Carpeta de trabajo A la derecha

EmpresaTema

N=100; %100 muestras

T=3E-3; %3 milisegundos

Ts=T/N;%periodo de muestreo

t=0:Ts:T*(1-1/N); %Vector de tiempo muestreado

f=1000; %frecuencia de la senoide

y=sin(2*pi*f*t);

plot(t,y)

Salve el c digo mediante el menú “file->save”ṕ

Ejecute el código en la ventana de comandos tecleando

>senoide

MI. Mario Alfredo Ibarra Carrillo Año 2012

Page 23: Capítulo xx. Introducción a MATLAB file• Panel “Command History” En donde se guarda una listado de cada linea tecleada en la “command window”. Carpeta de trabajo A la derecha

EmpresaTema

Bibliografía

Javier García de Jalón

José Ingnacio Rodrígues

Alfonso Brazález

Aprenda MATLAB 6.1 como si estuvviera en primero

Madrid

Octubre 2001

MI. Mario Alfredo Ibarra Carrillo Año 2012