programaciÓn (2a parte) matlab. introducciÓn ¿que es matlab? ( matrix laboratory) zsistema basado...

53
PROGRAMACIÓN (2a PARTE) MATLAB

Upload: maria-luisa-soler-castro

Post on 23-Jan-2016

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

PROGRAMACIÓN (2a PARTE)

MATLAB

Page 2: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

INTRODUCCIÓN

¿Que es MATLAB?(MATrix LABoratory)Sistema basado en cálculo matricial Desarrollo de aplicaciones

matemáticas y de ingenieríaIntegra: cálculo, visualización y

programaciónMedio ambiente de fácil uso

Page 3: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

¿Que es MATLAB?

Usos típicos:matemáticas y computacióndesarrollo de algoritmosmodelado, simulación y prototiposanálisis, exploración y visualización

de datosgraficos para ciencias e ingenieríasdesarrollo de aplicaciones (GUI)

Page 4: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

¿Que es MATLAB?

Elemento básico: matrizPermite resolver muchos problemas

técnicosUsando una fracción del tiempo del

usado con C o FortranHerramienta estándar en

universidades (en cursos introductorios y avanzados)

Page 5: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

¿Que es MATLAB?

En la industria, herramienta de investigación desarrollo y análisis

Contiene familias de soluciones de aplicaciones específicas: Toolboxes

Los toolboxes:Colecciones de funciones (archivos-m)Extensiones hacia áreas y

aplicaciones específicas

Page 6: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

¿Que es MATLAB?

Permiten aprender y aplicar tecnología especializada

existen tooboxes en áreas como: procesamiento de señales, sistemas de control, redes neuronales, lógica difusa, wavelets, etc.

Page 7: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

Sistema MATLAB

Lenguaje MATLABMedio ambiente de trabajoManejo de graficosBiblioteca de funciones matemáticasPrograma interfaz de applicaciones

Page 8: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

¿Que es Simulink?

Es un programa compañero de MATLAB

Se maneja gráficamente vía ratónSistema interactivo para simular

sistemas dinámicos Modelar sistemas dibujando

diagramas de bloques en la pantalla y manipularlos dinámicamente

Page 9: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

¿Que es Simulink?

Trabaja con sistemas lineales, no lineales, de tiempo continuo, de tiempo discreto, multivariables y multirate

Blocksets son librerías adicionales de Simulink para aplicaciones

Real-time Workshop es un programa que permite generar código C a partir de los diagramas de bloques y ejecutarlos en sistemas de tiempo real.

Page 10: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

Matrices y Operaciones BásicasUn solo tipo de datos: MATRIZArreglo rectangular de números

Introduciendo Matrices:•Introduciendo una lista de números•Cargandolas de archivos externos•Generandolas usando funciones

Page 11: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

Matrices y Operaciones Básicas

Por ejemplo:

A = [16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1]

Después de oprimir enter, aparecerá:

Page 12: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

Matrices y Operaciones Básicas

A =16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1

Page 13: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

Matrices y Operaciones Básicas

sum(A)

ans =34 34 34 34

Suma el contenido de las columnas

Page 14: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

Matrices y Operaciones Básicas

A’ans =16 5 9 4 3 10 6 15 2 11 7 14 13 8 12 1Que es la matriz transpuesta

Page 15: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

Matrices y Operaciones Básicas

sum(A')'ans =34343434Que es la suma de los renglones

Page 16: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

Matrices y Operaciones Básicas

diag(A)ans =161071

Que es la diagonal principal

Page 17: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

Matrices y Operaciones Básicas

sum(diag(A))ans =34

Que es la suma de los elementos de la diagonal principal

Page 18: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

Matrices y Operaciones Básicas

SubíndicesEl elemento en el renglón i y la columna

j de A se denota como: A(i,j)Así, el elemento A(4,2) es 15De modo que:A(1,4) + A(2,4) + A(3,4) + A(4,4)ans =34 (No es la mejor forma de hacer esto)

Page 19: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

Matrices y Operaciones Básicas

A(8) es otra forma de referirnos al valor 15 almacenado en A(4,2)

Si se tratan de usar índices que excedan las dimensiones de la matriz, como con:

t = A(4,5)Aparecerá el mensaje de error:

Index exceeds matrix dimensions

Page 20: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

Matrices y Operaciones Básicas

Pero si se almacena un valor en un elemento furera de los límites, las dimensiones se incrementan para acomodarlo. Así:

X = A; X(4,5) = 17X =

16 3 2 13 0 5 10 11 8 0 9 6 7 12 0 4 15 14 1 17

Page 21: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

Matrices y Operaciones Básicas

El operador “dos puntos”Es uno de los operadores más

importantes.Funciona de diferentes formas.

Así, 1:10es un vector renglón conteniendo:1 2 3 4 5 6 7 8 9 10

Page 22: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

Matrices y Operaciones Básicas

100:–7:50=100 93 86 79 72 65 58 51

0:pi/4:pi=0 0.7854 1.5708 2.3562 3.1416

Page 23: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

Matrices y Operaciones Básicas

Subíndices que involucran dos puntos, se refieren a porciones de una matriz, así:

A(1:k,j)son los primeros k elementos de la

columna j de A. Así:sum(A(1:4,4))

calcula la suma de los elementos de la cuarta columna (aunque no es la mejor forma de hacer esto)

Page 24: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

Matrices y Operaciones Básicas

Los dos puntos por si mismos se refieren a todos los elementos en un renglón o columna

La palabra end se refiere al último renglón o columna. De modo que:

sum(A(:,end))=34calcula la suma de los elementos de la

última columna

Page 25: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

2. EXPRESIONES

Como la mayoría de los lenguajes de programación

Pero se involucran matrices enteras•Variables•Números•Operadores•Funciones

Page 26: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

2. Expresiones

VariablesNo se requiere algún tipo de declaración

o indicación de dimensionesCuando se encuentra una variable

nueva, se crea automáticamenteSi ya existía la variable, se cambia su

contenido

Page 27: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

2. Expresiones

Por ejemplo:num_students = 25

crea una matriz de 1 por 1

Los nombres de las variables consisten de una letra seguida por cualquier número de letras, dígitos o símbolos.

Page 28: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

2. Expresiones

MATLAB usa solo los primeros 31

caracteres del nombre de una

variable

MATLAB distingue entre letras

mayúsculas y minúsculas

Page 29: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

2. Expresiones

NúmerosMATLAB usa notación decimal

convencionalPuede encabezar a un número un

signo más (+) o menos (-)Notación científica: e para

especificar la potencia de 10Números imaginarios usan i o j

Page 30: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

2. Expresiones

Ejemplos: 3 – 99 0.0001 9.6397238 1.60210e – 20 6.02252e23 1i –3.14159j 3e5i

Todos los números almacenados usan el formato long (IEEE floating-point standard).

Page 31: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

2. Expresiones

Números flotantes: precisión finita de 16 dígitos decimales significativos rango finito de 10 e-308 a 10 e+308

Page 32: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

2. Expresiones

OperadoresLas expresiones usan operadores aritméticos y

reglas de precedencia familiares + Suma – Resta * Multiplicación / División \ División izquierda ^ Potencia ' Transpuesta complejo conjugado

Page 33: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

2. Expresiones

FuncionesMATLAB, gran número de funciones

matemáticas básicasComo: abs, sqrt, exp, and sin.Funciones avanzadas: Bessel and

gamma functions.Con help elfun se obtiene una lista

de funciones elementales

Page 34: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

2. Expresiones

Con:

help specfunhelp elmat

Se obtienen funciones más avanzadas.

Page 35: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

2. Expresiones

Algunas funciones como sqrt ysin, son parte del núcleo de MATLAB (built in) son muy eficientes

detalles computacionales no accesibles

Otras funciones como gamma y sinh, están implementadas en archivos-m Se puede ver el código y aún modificarlo

Page 36: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

2. Expresiones

Varias funciones especiales proporcionan valores constantes útiles:

pi 3.14159265… i unidad imaginaria (también j) eps precisión relativa en p. flotante, 2 e-52 realmin número en p. Flot. más pequeño, 2 e-

1022 realmax número en p. Flot. más grande, 2e1023 Inf Infinito NaN No un número

Page 37: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

2. Expresiones

rho = (1+sqrt(5))/2rho =1.6180

a = abs(3+4i)a =5

Page 38: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

2. Expresiones

z = sqrt(besselk(4/3,rho–i))z =0.3730+ 0.3214i

Page 39: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

huge = exp(log(realmax))huge =1.7977e+308toobig = pi*hugetoobig =Inf

Page 40: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

3. Matrices

Generación de MatricesSe cuenta con 4 funciones para generar matrices:

Z = zeros(2,4)Z =0 0 0 00 0 0 0

Page 41: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

3. Matrices

F = 5*ones(3,3)F =5 5 55 5 55 5 5N = fix(10*rand(1,10))N =4 9 4 4 8 5 2 6 8 0

Page 42: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

3. Matrices

R = randn(4,4)R =1.0668 0.2944 –0.6918 –1.44100.0593 –1.3362 0.8580 0.5711–0.0956 0.7143 1.2540 –0.3999–0.8323 1.6236 –1.5937 0.6900

Page 43: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

3. Matrices

El comando load lee archivos binarios que contienen matrices generadas con anterioridad

El archivo texto tiene que estar organizado como una tabla rectangular de números separadas por espacios

Así, si se tiene el archivo magik.dat, entonces:load magik.dat

lee el archivo y crea una variables magik conteniendo a la matriz.

Page 44: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

3. Matrices

Archivos-MSe pueden crear matrices usando archivos-mPor ejemplo:A = [ ...16.0 3.0 2.0 13.05.0 10.0 11.0 8.09.0 6.0 7.0 12.04.0 15.0 14.0 1.0 ];

Page 45: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

3. Matrices

Almacenandolo en un archivo con nombre magik.m

entonces, al escribir:

magik

se lee el archivo y es creada una variable A que contiene la matriz del ejemplo.

Page 46: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

3. Matrices

ConcatenaciónEs el proceso de unir matrices pequeñas

para formar unas más grandesLos paréntesis cuadrados [] son el

operador de concatenación. Por ejemplo:con la matriz A de 4-por-4 y haciendo:

B = [A A+32; A+48 A+16]Resulta en una matriz de 8X8

Page 47: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

3. Matrices

Borrando renglones y columnasEjemplos: borrar la segunda columna de A.X = A; con lo que X queda:X(:,2) = []X =16 2 135 11 89 7 124 14 1

Page 48: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

3. Matrices

Borrar un solo elemento de una matriz:X(1,2) = []resulta en un error.Usando solo un subíndice, se borra un

elemento o una secuencia de elementos.El elemento resultante es un vector renglón.

Así: X(2:2:10) = []; resulta en:X =16 9 2 7 13 12 1

Page 49: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

3. Matrices

La ventana de comandos

Permite cambiar la fuente

Permite controlar el formato numérico de

los valores desplegados

Se cambia solo la forma en que son

desplegados los números y no la forma en

que se realizan lols cálculos y se salvan

Page 50: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

3. Matrices

Elemplos: x = [4/3 1.2345e–6]

format short1.3333 0.0000format short e1.3333e+000 1.2345e–006format short g1.3333 1.2345e–006

Page 51: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

3. Matrices

format long1.33333333333333 0.00000123450000format long e1.333333333333333e+000

1.234500000000000e–006format long g1.33333333333333 1.2345e–006

Page 52: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

3. Matrices

format bank1.33 0.00format rat4/3 1/810045format hex3ff5555555555555 3eb4b6231abfd271

Page 53: PROGRAMACIÓN (2a PARTE) MATLAB. INTRODUCCIÓN ¿Que es MATLAB? ( MATrix LABoratory) zSistema basado en cálculo matricial zDesarrollo de aplicaciones matemáticas

3. Matrices

Líneas de comando largasEjemplo:s = 1 –1/2 + 1/3 –1/4 + 1/5 – 1/6 + 1/7 ...– 1/8 + 1/9 – 1/10 + 1/11 – 1/12;

Los espacios en blanco entre los números y los signos son opcionales. Solo hacen más fácil la lectura