Matrices y Vectores
-
Upload
nelson-bazualdo-guzman -
Category
Documents
-
view
241 -
download
2
description
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