Matrices y Vectores

Post on 16-Feb-2016

241 views 2 download

description

Matrices y vectores matlab

Transcript of 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

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

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

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.

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.

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

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

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

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

Matrices. OperadoresOperadores relacionales

< - Menor que

> - Mayor que

<= - Menor o igual que

>= - Mayor o igual que

== - Igual a

~= - Diferente a

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

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

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

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

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

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

Matrices. Ejemplos de operaciones• Suma

• Multiplicación

• Inversa

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

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

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.

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

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.

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

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

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

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

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:

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

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

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

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.

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

'

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.

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

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

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

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.

Representación exacta

)(001

)(/10

//10

''

2

1

2

1

2

1

tfxx

y

tfmx

xmbmkx

x

0

01/10

//10

DC

mB

mbmkA

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.

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

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.

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

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

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).

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)

Ejercicio• También

y así:

o

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

• En forma matricial:

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

Ejercicio• En nuestro ejemplo:

• Es decir:

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

ecuaciones de variables de estado

• Donde :

• Calcular el vector de estado