Matrices y Vectores

49
Introducción a Matlab ® Fundamentos y aplicaciones en el estudio e investigación de tecnologías de telecomunicaciones 1 Matlab es una marca registrada de The MathWorks, Inc. 1

description

Matrices y vectores matlab

Transcript of Matrices y Vectores

Page 1: Matrices y Vectores

Introducción a Matlab®

Fundamentos y aplicaciones en el estudio e investigación de

tecnologías de telecomunicaciones

1 Matlab es una marca registrada de The MathWorks, Inc.

1

Page 2: Matrices y Vectores

22/04/2023 José Luis Muñoz Meza 2

Contenido• Generalidades de Matlab• Manejo de matrices y vectores• Generación de Gráficos• Funciones y Programación• Procesamiento básico de señales• Simulación gráfica mediante Simulink• Estudio de casos

Page 3: Matrices y Vectores

22/04/2023 José Luis Muñoz Meza 3

Manejo de matrices y vectores• Matrices y vectores• Vectores y matrices especiales• Caracteres especiales• Operadores• Generación de vectores y matrices• Ejemplos y ejercicios

– Ejercicios simples– Solución de ecuaciones simultáneas– Uso en modelos físicos mediante Variables de estado

Page 4: Matrices y Vectores

Matrices y vectores• En MATLAB todos los datos se consideran matrices.• Un vector puede ser

definido como un vector fila o como un vector columna.

• Un vector de longitud n puede visualizarse como una matriz de tamaño 1xn o nx1.

• Ejercicio:Definir la variable z como la matriz

Verificar su tamaño y espacio en memoria.

Page 5: Matrices y Vectores

Matrices y vectores• Las matrices pueden ser de tamaños

diferentes, sean matrices cuadradas de tamaño NxN o rectangulares MxN.

• Para todos los efectos, los vectores son casos especiales de matrices.

• Ejercicio:Definir las A, B y C. siguientes

Verificar su tamaño y espacio en memoria.

Page 6: Matrices y Vectores

Matrices. Caracteres reservados

• Algunos símbolos tienen una función particular para facilitar la escritura de instrucciones, los de uso más comúnes son los siguientes:[ ] - definir input de vectores y matrices

( )- asignar precedencia en operaciones aritméticas - referir elementos de matrices - pasar argumentos a funciones o subprogramas

= - asignar valores‘ - indica transposición de matrices

;- dentro de [ ] para separar líneas- separar comandos- suprimir impresión

% - indica comentario, el texto que le sigue es ignorado

: - para indicar iteraciones o generar vectores en secuencias

Page 7: Matrices y Vectores

Matrices. Operadores• Todos los operadores realizan operaciones con matrices, de

modo que un escalar puede verse como una matriz 1 x 1 y un vector como una matriz de 1 x n ó de n x 1 según sea el caso Operadores aritméticos

+ - Suma, A + B suma los elementos de A a los correspondientes de B. A y B deben tener el mismo tamaño. Un escalar se le puede sumar a una matriz de cualquier tamaño

-- Resta, A – B resta los elementos de A a los correspondientes de B. A y B deben tener el mismo tamaño. Un escalar se le puede restar a una matriz de cualquier tamaño

*

-Multiplicación de matrices, C = A * B es el producto algebraico lineal de las matrices A y B. Para matrices, el número de columnas de A debe ser igual al número de filas de B. Un escalar se puede multiplicar a una matriz de cualquier tamaño

Page 8: Matrices y Vectores

Matrices. OperadoresOperadores aritméticos

/ - B/A es lo mismo que B * A-1 ; A-1 es la matriz inversa de A, inv(A) y debe ser n x n

\

- A\B, se conoce como división por la izquierda, si A es cuadrada, A\B es casi igual A-1 * B, excepto por la forma de ser calculado.

- Si B es un vector columna de n elementos y A es n x n, entonces X = A\B es la solución al sistema AX = B por el método de eliminación de Gauss

^

- Potencia de matrices. X^p es X elevado a la potencia de p, si p es un escalar.

- Si p es un entero, la potencia se calcular elevando al cuadrado repetidas veces. Si el entero es negativo, se calcula primero la inversa de X

- Si X y p son matrices, MATLAB arroja un error' - A' es la conjugada transpuesta de A

.’ - A.’ es la transpuesta simple de A

Page 9: Matrices y Vectores

Matrices. OperadoresOperadores aritméticos específicos de matrices

.*- A .* B, es la multiplicación elemento por elemento

de las matrices A y B, las cuales deben tener el mismo tamaño

./- A ./ B, es la matriz con elementos A(i,j) / B(i,j). A y B

deben tener el mismo tamaño, al menos que uno sea un escalar

.\- A .\ B, es la matriz con elementos B(i,j) / A(i,j). A y B

deben tener el mismo tamaño, al menos que uno sea un escalar

.^- A .^B, es la matriz con elementos A(i,j) elevados a

la potencia de B(i,j). A y B deben tener el mismo tamaño, al menos que uno sea un escalar

Page 10: Matrices y Vectores

Matrices. OperadoresOperadores relacionales

< - Menor que

> - Mayor que

<= - Menor o igual que

>= - Mayor o igual que

== - Igual a

~= - Diferente a

Page 11: Matrices y Vectores

Generación de vectores y matricesGenerar un vector cuyos elementos son los números del 1 al 8>> v = [1:8]v = 1 2 3 4 5 6 7 8

>> v = 1:8v = 1 2 3 4 5 6 7 8Crear un vector con una parte de v>> u = v(3:6)u = 3 4 5 6

Construir otro vector con elementos de u y v>> w = [v(3:5) u(2:4)]w = 3 4 5 4 5 6

Page 12: Matrices y Vectores

Generación de vectores y matricesGenerar un vector con todos sus elementos iguales a 1>> v = ones (1,4)v = 1 1 1 1

>> v = ones (3,3)v = 1 1 1 1 1 1 1 1 1

Crear un vector con todos sus elementos iguales a cero:>> u = zeros(1,4)u = 0 0 0 0

>> w = zeros(4,4)w = 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Page 13: Matrices y Vectores

Generación de vectores y matrices- Un arreglo nulo (empty array) no contiene elementos y se

expresa como [ ]- Se pueden borrar filas y columnas asignándoles el arreglo nulo

- Si se asignan valores a filas o columnas que no existen aún, matlab completará las celdas con ceros.

>> A(:,2)=[]

A =

7 4 63 3 9 1

>> A(:,3)=[4;3;1]

A =

7 2 4 63 8 3 9 8 1

>> A(:,5) = [14;8;5]

A =

7 2 4 0 14 63 8 3 0 8 9 8 1 0 5

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

A =

7 2 4 63 8 3 9 8 1

Page 14: Matrices y Vectores

Operaciones con matrices• Transpuesta de una matriz>> XX = 15 5 1 2 6 2 3 2 7>> X'ans = 15 2 3 5 6 2 1 2 7

• Matriz inversa>> inv(X)ans = 0.0736 -0.0640 0.0078 -0.0155 0.1977 -0.0543 -0.0271 -0.0291 0.1550

• Determinante>> det(X)ans = 516

Page 15: Matrices y Vectores

Operaciones con matrices• Funciones básicasFunción Descripciónfind(x) Genera un vector conteniendo los índices de los elementos distintos de cero de la matriz

[u, v, w] = find(A) Genera los vectores u y v, conteniendo los índices de las filas y columnas cuyos elementos son distintos de cero. w contiene los valores

length(A) Calcula la longitud deA si es un vector. Si A es una matriz de MxN devuelve el mayor de M y N.

linspace(a, b, n) Crea un vector fila de n elementos, cuyos valores van desde a hasta b, espaciados uniformemente

logspace (a, b, n) Crea un vector fila de n elementos, cuyos valores van desde a hasta b, espaciados logarítmicamente

max(A) Si A es un vector, devuelve el elemento algebraicamente mayor. Si A es una matriz devuelve un vector fila con los elementos mayores de cada columna de A. Si uno o más elementos son números complejos, devuelve los que tienen magnitudes. mayores

min(A) Igual al anterior pero devuelve mínimos

norm(x) Calcula la longitud geométrica del vector x.

size(A) Devuelve un vector [m n] conteniendo los tamaños de la matriz MxN

sort(A) Ordena cada columna de la matriz en forma ascendente y devuelve la matriz resultante

sum(A) Suma los elementos en cada columna de la matriz A y devuelve el vector fila resultante con los resultados obtenidos

Page 16: Matrices y Vectores

Operaciones con matrices• Matriz identidad>> eye(3)ans = 1 0 0 0 1 0 0 0 1

• Polinomios>> % Crear un polinomio dadas sus raices>> p=poly([1 3+5i 3-5i])p = 1 -7 40 -34>> % Calcular las raices de un polinomio x^3 + 12x^2 +45x +50=0>> roots([1 12 45 50])ans = -5.0000 + 0.0000i -5.0000 - 0.0000i -2.0000 >> % multiplicar polinomios>> conv(f,g)>> % dividir polinomios>> [q r] = deconv(num, den)

>> % dividir polinomios>> [q r] = deconv(num, den)>> % evaluar un polinomio>> datos = polyval(polinomio, x)

• Eigen valores y eigenvectores

>> eig(X)ans = 16.6456 6.7869 4.5675

>> [V,D] = eig(X)V = -0.9135 -0.4420 0.4022 -0.2341 0.5912 -0.8856 -0.3327 0.6746 0.2321D = 16.6456 0 0 0 6.7869 0 0 0 4.5675

Page 17: Matrices y Vectores

Matrices. Ejemplos de operaciones• Suma

• Multiplicación

• Inversa

Page 18: Matrices y Vectores

Matrices. Ejemplos de operacionesProducto escalar de vectores de tres elementos>> u(1:3)*v(1:3)'ans = 26

Producto vectorial de vectores de tres elementos>> m = u(1:3)'*v(1:3)ans = 3 6 9 4 8 12 5 10 15

Page 19: Matrices y Vectores

Matrices. Ejemplos de operacionesMultiplicación elemento por elemento de dos matrices

>> X = [1 0 1; 2 1 2; 3 2 3], Y = [3 2 1; 4 1 1;5 2 1]X = 1 0 1 2 1 2 3 2 3Y = 3 2 1 4 1 1 5 2 1>> X.*Yans = 3 0 1 8 1 2 15 4 3

Page 20: Matrices y Vectores

Ejercicios• Ejercicio 1

Suponga que dos buzos empiezan en la superficie y fijan el siguiente sistema de coordenadas: x es al oeste, y al norte y z hacia abajo. El primer buzo nada 20 metros al oeste, luego 12 al norte y se sumerge finalmente 8 metros. El segundo buzo se sumerge 5 metros, luego nada 7 al este y finalmente al norte por 19 mts.

a) Encontrar la distancia entre el punto de partida y la posición del primer buzo..

b) Cuanto tendrá que nadar el primer buzo en cada dirección para llegar al segundo buzo

c) Cuando deberá nadar el primer buzo en línea recta para alcanzar al segundo.

Page 21: Matrices y Vectores

Ejercicios• Solución>> r=[20 12 8];>> w=[-7 19 8];>> dist1=sqrt(sum(r.*r))

dist1 =

24.6577

>> v=w-r

v =

-27 7 0

>> dist2=sqrt(sum(v.*v))

dist2 =

27.8927

Page 22: Matrices y Vectores

Ejercicios• Ejercicio 2

La siguiente expresión corresponde al modelo de la presión arterial durante el sístole, donde t es el tiempo e y es la diferencia de presión en la válvula aórtica:

a) Obtener los valores de la presión arterial entre 0 y 0.5 segundos, con 200 muestras equidistantes de tiempo

b) Graficar y(t) usando la función plot.

Page 23: Matrices y Vectores

Ejercicios• Solución>> t=linspace(0, 0.5, 200);>> size(t)

ans =

1 200

>> y= exp(-8*t).*sin(9.7*t+pi/2);>> plot(t,y)

0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 0.45 0.5-0.2

0

0.2

0.4

0.6

0.8

1

1.2

Page 24: Matrices y Vectores

Ejercicios• La siguiente tabla muestra la distancia recorrida y

tiempo empleado por cinco camiones viajando a lo largo de diferentes rutas:

a) Calcular la velocidad promedio requerida en cada ruta.b) Encontrar la ruta con la mayor velocidad promedio.

1 2 3 4 5Distancia (km.) 850 704 784 592 848

Tiempo (hr.) 10.3 8.2 9.1 7.5 10.1

Page 25: Matrices y Vectores

Ejercicios• Solución>> d=[850 704 784 592 848]

d =

850 704 784 592 848

>> t= [10.3 8.2 9.1 7.5 10.1]

t =

10.3000 8.2000 9.1000 7.5000 10.1000

>> velocidad = d./tvelocidad = 82.5243 85.8537 86.1538 78.9333 83.9604

>> [max_velocidad, ruta] = max(velocidad)

max_velocidad =

86.1538

ruta =

3

Page 26: Matrices y Vectores

Ejercicios• Dadas las matrices

a) Calcular el producto matricial puntob) División derecha punto de A entre Bc) B elevada a la tercera potencia elemento por

elemento

Page 27: Matrices y Vectores

Ejercicios• Calcular el cociente y el residuo de la siguiente

división de polinomios

• Calcular el producto siguiente:

• La función plot (rango, datos) permite crear gráficas simples. Graficar el polinomio siguiente entre 0 y 7:

Page 28: Matrices y Vectores

Solución de ecuaciones simultáneas (Ax=B)

• Si se tiene un sistema de ecuaciones a11x1 + a12x2 = b1

a21x 1+ a22x2= b2

• En forma matricial el sistema anterior y su solución pueden expresarse como:

Ax =B, x=A-1 B

• En MATLAB se escribe como:x = inv(A)*b y puede calcularse más eficientemente mediante x=A\b

>> A=[1 2; 2 3];>> b=[1;2];>> inv(A)*b

ans =

1 0

>> A\b

ans =

1 0

Page 29: Matrices y Vectores

Solución de ecuaciones simultáneas

Ejercicioa Resolver el siguiente

sistema de ecuaciones

Solución>> A=[16 -120 240 -140; -120 1200 -2700 1680; 240 -2700 6480 -4200; -140 1680 -4200 2800]A = 16 -120 240 -140 -120 1200 -2700 1680 240 -2700 6480 -4200 -140 1680 -4200 2800

>> B=[-4 60 -180 140]'B = -4 60 -180 140

>> sol=A\Bsol = 1.0000 1.0000 1.0000 1.0000

Page 30: Matrices y Vectores

Solución de ecuaciones simultáneas

Ejercicio- Se pueden comprar tres libros, uno

de Cálculo (C), uno de Protocolo de Redes (P) y otro de Dispositivos Electrónicos(D) por un total de $146.

- Si sólo se compran los libros de Cálculo y de Dispositivos se necesitarán $87

- Comprar el de Cálculo y el de protocolos resulta en un gasto de $105.

¿Cuánto cuesta cada texto?

Solución• Los coeficientes de las

variables C, P y D se colocan en una matriz y los precios en un vector columna

>> Libros= [1,1,1; 0 1 1; 1 1 0];>> Costos=[146; 87; 105];>> Precios=Libros\Costos

Precios =

59 46 41

Page 31: Matrices y Vectores

Modelos físicos con variables de estado

• El modelo de variables de estado permite describir un sistema mediante n ecuaciones diferenciales de primer orden. – Una forma más amigable para simulación

discreta comparado con una ecuación de entrada/salida de n-ésimo orden.

Page 32: Matrices y Vectores

Variables de estado. Conceptos mínimos• Se emplea el formato vector matriz:

donde y es la ecuación de salida, x es el vector de estado, siendo u la entrada

DuxCyBuxAx

'

Page 33: Matrices y Vectores

Partes de una representación mediante variables de estado

• Variables de estado: un subconjunto de variables del sistema que de ser conocidas en el instante inicial t0 junto con las subsecuentes entradas describe el sistema para cualquier t>t0+

• Ecuaciones de estado: n ecuaciones diferenciales de primer orden linealmente independientes que relacionan las primera-derivadas de las variables de estado con funciones de variables de estado y entradas.

• Ecuaciones de salida: ecuaciones algebraicas que relacionan las variables de estado con las salidas del sistema.

Page 34: Matrices y Vectores

Ejemplo• La ecuación obtenida de un diagrama de cuerpo libre (estática)

es: mh” + bh’ + kh - f(t) = 0 Donde h es distancia , t es tiempo . h' es dh/dt y h” =d2h/dt2

• Sustituyendo las definiciones de los estados (x1=h, x2=dx1/dt) en las ecuaciones resulta en:

mx2’ + bx2 + kx1 - f(t) = 0• Resolviendo para x2’ se obtienen las ecuaciones de estado:

x2' = (-b/m) x2 + (-k/m)x1 + f(t)/m• La salida deseada es para la posición h, por lo tanto:

y = h = x1

Page 35: Matrices y Vectores

Cont…• Luego las derivadas de las variables

de estado se colocan en términos de las mismas variables, los inputs y constantes.

x1' = x2

x2' = (-k/m) x1 + (-b/m) x2 + f(t)/my = x1

Page 36: Matrices y Vectores

En forma Vector-matriz• El vector de estado está compuesto

de dos variables, x y v , por lo tanto la forma el vector-matriz será:

)(

)(''

2

1

2

1

2

1

tfDxx

Cy

tfBxx

Axx

Page 37: Matrices y Vectores

Explicación• La primera fila de A y la primera fila

de B son los coeficientes de la primera ecuación de estados para x1'. De igual forma, la segunda fila de A y la segunda fila de B son los coeficientes de la segunda ecuación de estados para x2'.  C y D son los coeficientes de la ecuación de salida para y.

Page 38: Matrices y Vectores

Representación exacta

)(001

)(/10

//10

''

2

1

2

1

2

1

tfxx

y

tfmx

xmbmkx

x

0

01/10

//10

DC

mB

mbmkA

Page 39: Matrices y Vectores

Introducción de ecuaciones de estado en el entorno de Matlab

• Para ingresar el modelo de variables de estado en Matlab, se emplea la función ss, usando la siguiente sintáxis:

statespace = ss(A, B, C, D)

donde A, B, C, y D corresponden a la forma estándar vector-matrix del modelo variable de estado.

Page 40: Matrices y Vectores

Ejemplo• Dando valores a cada variable, m

= 2, b = 5, y k = 3.>> m = 2;>> b = 5;>> k = 3;>> A = [ 0  1 ; -k/m  -b/m ];>> B = [ 0 ; 1/m ];>> C = [ 1  0 ];>> D = 0;>> statespace_ss = ss(A, B, C, D)

• Esto asigna el modelo espacio estado a la variable statespace_ss.>> statespace_ss = ss(A, B, C, D) a = x1 x2 x1 0 1 x2 -1.5 -2.5 b = u1 x1 0 x2 0.5 c = x1 x2 y1 1 0

d = u1 y1 0Continuos-time model

Page 41: Matrices y Vectores

Extracción de las matrices del modelo de espacio de estado

• Para extraer las matrices a, b, c y d de un modelo espacio estado previamente definido se emplea el comando ssdata.

[a, b, c, d] = ssdata(statespace) donde statespace es el nombre del

sistema.

Page 42: Matrices y Vectores

Ejemplo>> [a b c d ]=ssdata(statespace_ss)

a = 0 1.0000 -1.5000 -2.5000

b = 0 0.5000

c = 1 0

d = 0

Page 43: Matrices y Vectores

Análisis transitorio• Una vez ingresado el modelo es

fácil calcular la respuesta a una entrada de tipo escalón. – Para calcular la respuesta a un función

escalón unitarios, se usa la función step:step(statespace)

Donde statespace es el nombre del sistema.– Para escalones de magnitudes diferentes a

uno:step(u * statespace)

Donde u es la magnitud del escalón y statespace es el nombre del sistema

Page 44: Matrices y Vectores

Ejercicio• Para el circuito de la siguiente figura,

donde las condiciones iniciales son iL(0-)=0, y Vc(0-) = 0.5V, Calcular el Vc(t).

Page 45: Matrices y Vectores

Ejercicio• Usando variables de estado

• Sustituyendo valores y re-arreglando términos: o (eq. 1)

• Definiendo como variables de estado x1=iL y x2=vc

(eq. 2) y (eq. 3)

Page 46: Matrices y Vectores

Ejercicio• También

y así:

o

• Por lo tanto de eq. 1, eq. 2 y eq. 3, obtenemos:

• En forma matricial:

Page 47: Matrices y Vectores

Ejercicio• El sistema de ecuaciones completo de variables de estado será:

• La solución de en el caso donde A es una matriz constante de nxn elementos n≥2 y b es un vector columna con n elementos la solución de:

• Con condiciones iniciales

• Es • Siendo eAT la matriz de transición de estado

)(001

)(04

04/344

''

02

1

02

1

2

1

tuxx

y

tuxx

xx

Page 48: Matrices y Vectores

Ejercicio• En nuestro ejemplo:

• Es decir:

Page 49: Matrices y Vectores

Ejercicio• Un circuito eléctrico se describe mediante un sistema de

ecuaciones de variables de estado

• Donde :

• Calcular el vector de estado