Vectores y Matrices en Matlab

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 39

Introducción a la

programación con
MATLAB
Ing. Paulina Morillo MSc.
Universidad Politécnica Salesiana
Manipulación de Vectores y matrices

INGRESO DE VECTORES Y MATRICES:

Existen diferentes formas de introducir matrices en MATLAB.


En la siguiente actividad aprenderemos algunas.
Manipulación de Vectores y matrices
Actividad 2

Pruebe cada uno de los siguientes ejemplos y respondan las preguntas


a continuación. (Nota: se debe tener cuidado con los espacios en
blanco, porque tienen su significado!)
Matrices y Vectores

 Los vectores pueden ser vectores fila o vectores columna


Vectores fila; los elementos de una misma fila están separados por blancos o
comas,
>> v =[2 3 4]
Vectores columna: los elementos de una misma columna están separados por
intro o por caracteres punto y coma (;).
>> w =[2;3;4;7;9;8]
 La dimensión de un vector se obtiene por el comando length(nombre del
vector)
Matrices y Vectores

Generación de vectores fila:


 Especificando el incremento h de sus componentes v=a:h:b
 Especificando su dimensión n: linspace(a,b,n) (por defecto
n=100)
 Componentes logarítmicamente espaciadas logspace(a,b,n)
(n puntos logarítmicamente espaciados entre 10a y 10b. Por
defecto n=50)
 length(nombre_del_vector) indica el número de filas de la
matriz
 size(nombre_del_vector) indica el número de filas y el
número de columnas
Ingreso de Vectores
Resumen
Acceso a los elementos de un vector o
matriz
Acceso a los elementos de un vector o
matriz
Acceso a los elementos de un vector o
matriz
Acceso a los elementos de un vector o
matriz
Acceso a los elementos de un vector o
matriz
Acceso a los elementos de un vector o
matriz
Matrices y vectores

 Existen funciones en MATLAB como por ejemplo: rand, magic,


eye, etc. Que proporcionan una forma sencilla para crear
matrices con las que se puede experimentar.
 Por ejemplo: magic(3) crea una matriz cuadra de orden n
mágica (las filas y las columnas suman la misma cantidad) con
entradas enteras.
Matrices
Actividad 3

Introduzca las siguientes matrices e indique que funciones realiza


Generación de matrices
predeterminadas
 Generación de una matriz de ceros, zeros(n,m)
 Generación de una matriz de unos, ones(n,m)
 Inicialización de una matriz identidad eye(n,m)
 Generación de una matriz de elementos aleatorios rand(n,m)
 Matrices con diagonal dada diag(v), diag(v,k)
 [X Y] columnas, [X; Y] filas
Operaciones de vectores y matrices
con escalares
v: vector o matriz, k: escalar:

 v+k adición o suma


 v-k sustracción o resta
 v*k multiplicación
 v/k divide cada elemento de v por k
 k./v divide k por cada elemento de v
 v.^k potenciación de cada componente de v a k
 k.^v potenciación k elevado a cada componente de v
Operaciones con vectores y matrices
Las operaciones entre vectores y matrices siguen las reglas del
Algebra lineal
 + adición o suma
 – sustracción o resta
 * multiplicación matricial
 .* producto elemento a elemento
 ^ potenciación
 .^ elevar a una potencia elemento a elemento
 \ división-izquierda
 / división-derecha
 ./ y .\ división elemento a elemento
 matriz traspuesta: B=A’ (en complejos calcula la traspuesta
conjugada, sólo la traspuesta es B=A.’)
Funciones de Matlab para vectores y
matrices
 sum(v) suma los elementos de un vector
 prod(v) producto de los elementos de un vector
 dot(v,w) producto escalar de vectores
 cross(v,w) producto vectorial de vectores
 mean(v) (hace la media)
 diff(v) (vector cuyos elementos son la resta de los elemento de v)
 [y,k]=max(v) valor máximo de las componentes de un vector (k indica la
posición), min(v) (valor mínimo). El valor máximo de una matriz M se
obtendría como max(max(M)) y el mínimo min(min(v))
 Aplicadas algunas de estas funciones a matrices, realizan dichas
operaciones por columnas.
Funciones de Matlab para vectores y
matrices
 [n,m]=size(M) te da el número de filas y columnas
 matriz inversa: B=inv(M), rango: rank(M)
 diag(M): Obtencion de la diagonal de una matriz. sum(diag(M)) calcula la
traza de la matriz A. diag(M,k) busca la k-ésima diagonal.
 norm(M) norma de una matriz (máximo de los valores absolutos de los
elementos de A)
 flipud(M) reordena la matriz, haciendo la simétrica respecto de un eje
horizontal. fliplr(M) ) reordena la matriz, haciendo la simétrica respecto de
un eje vertical
 [V, landa]=eig(M) da una matriz diagonal landa con los autovalores y otra
V cuyas columnas son los autovectores de M
 Otros: max(), min(), median(), std(), numel(), cumsum(), cumprod(), sort()
Funciones de Matlab para vectores y
matrices
Trig: sin, cos, tan, asin, acos, atan, sinh, cosh,
tanh, asinh, acosh, atanh
Rounding: floor, ceil, round, fix
Modular: rem, mod
Exponential: exp, log, log2, log10, sqrt
Primes: factor, primes
Desde la versión 5 de matlab se admiten variables subindicadas
multidimensionalmente
a=ones(2,2,3)

a(:,:,1)= 1 1 a(:,:,2)= 1 1 a(:,:,3)= 1 1


11 11 11

Matrices dispersas o huecas son aquellas que tienen gran cantidad de


elementos nulos

>> a= sparse(i,j,c,m,n)

m indica filas, n columnas, c vector que contiene los elementos no nulos i,j
son dos vectores que indican la posición de cada elemento de c
para visualizar la matriz entera >>full(a)
[i2,j2,c2]=find(a)
Manipulación de Vectores y matrices
Actividad 4

Generar los siguientes vectores en Matlab, sin introducir explícitamente sus


elementos.
Manipulación de Vectores y matrices
Actividad 4

Dadas las siguientes matrices:

Probarlos siguientes comandos:


Actividad 4

Tomar la siguiente matriz dispersa como referencia

 12 4 0 0 0 
 
 7 3 0 0 8 
 0 0 0 0 0 
 
 0 0  13 11 0 
 
 0 0 2 7 4 

Y trabajemos con ella como una matriz dispersa, para ello definimos el
vector de elementos no nulos, el vector definido por las filas y el vector
definido por las columnas
Actividad 4
Ejecutar los siguientes comandos:
m=[12,-4,7,3,-8,-13,11,2,7,-4];
f=[1,1,2,2,2,4,4,5,5,5];
c=[1,2,1,2,5,3,4,3,4,5];
a=sparse(f,c,m,5,5)
full(a)
m1=[12,7,-4,3,-13,2,11,7,-8,-4];
f1=[1,2,1,2,4,5,4,5,2,5];
c1=[1,1,2,2,3,3,4,4,5,5];
b=sparse(f1,c1,m1,5,5];
full(b)
a=sparse(f,c,m)
s=a+b
p=a*b
[f2,c2,m2]=find(p)
e=full(sparse(f2,c2,m2))
Actividad 4
Ejercicio 1 Dados los vectores definidos por
x=(1,4.5,7.8) y=(sen(90),cos(45),0)
Realizar los cálculos siguientes:
x+y;el producto escalar de x e y; calcular el ángulo que forman ambos
vectores; cos(x)
Ejercicio 2 Para un laboratorio se compran los materiales
especificados en la tabla siguiente.
Ref. arti. Precio Cantidad
1520 1146 200
1621 3450 250
1428 6225 150
1429 7100 150
1628 8500 100
Utilizar vectores y el producto de vectores para calcular
el coste de cada producto y el total a pagar (la tabla de
precios no incluye IVA, debiendo por tanto aplicarse un
16% de incremento.
Actividad 4
Ejercicio 3 Dadas las matrices a y b calcular: a+b, a+0, a*b.
Comprobar que el producto de matrices no es conmutativo.
Elegir la submatriz de a formada por la primera columna y la
tercera fila y la submatriz de b formada por la segunda y tercera
columna y calcular el producto

 1 2 3 4 2 1
   
a   2 3 4 b   2 0 4 
 4 2 5  1  2  5
   
Ejercicio 4 Utilizar matrices para construir una tabla
que contenga: En la 1º columna la variable grados
celsius en el intervalo [0 100] con un paso de 2. En la
2º columna su valor en grados fahrenheit y en la 3º
en grados kelvin. ¿Cómo guardarías en un fichero la
tabla anterior?
9 * celsius
 32
5
Actividad 4

Ejercicio 5 Considérese la matriz tridiagonal definida por:

i, s i i  j 
 j, s i i  j  1 
 
aij   1  i , j  n
 j, s i i  j - i 

0, en otro cas o 

Introducir la matriz en el espacio de trabajo como matriz


dispersa para n=10

Ejercicio 6 Genera un vector con el año de


celebración de los juegos olímpicos empezando en Rio
2016 y finalizando en Londres 1948. Con una sola línea
de comando muestra las fechas de uno de cada tres
juego empezando por 1948.
Polinomios

Elementos básicos
𝑝𝑛 𝑥 = 𝑎𝑛 𝑥 𝑛 + 𝑎𝑛−1 𝑥 𝑛−1 +⋯ + 𝑎3 𝑥 3 +𝑎2 𝑥 2 +𝑎1 𝑥 + 𝑎0

Variable: 𝑥
Coeficientes: 𝑎𝑗 , 𝑗 = 0,1,2, … , 𝑛
Grado: 𝑛
Polinomios

Reglas de representación en Matlab

Los coeficientes están ordenados en forma


decrecientes por su grado
Completitud: deben estar TODOS los coeficientes, aún si
su valor =0 (estructura posicional)
Polinomios
 Cálculo de las raíces: roots (da un vector columna, aunque pol1 es un vector fila)
>>raices=roots(pol1) (da un vector columna, aunque pol1 es un vector fila)

 Un polinomio puede ser reconstruido a partir de sus raíces con el comando poly
>> p=poly(raices) (da un vector fila) **

En caso de que el argumento de poly fuera una matriz obtendríamos como resultado el polinomio
característico de la matriz. Así mismo si queremos calcular los autovalores de la matriz bastaría con
calcular las raíces del polinomio característico.

Ejemplo1:
pol2=[2 4 0 1]; % definición del polinomio 2x3+4x2+1
raices=roots(pol2) % cálculo de sus raíces
pol2_n=poly(raices) % reconstrucción del polinomio
real(pol2_n) % ¿qué pasó?
Ejemplo2:
A=[1 2 3 ; 2 3 4; 4 2 5]; p=poly(A) % pol. característico
roots(p) % autovalores de A.
Polinomios
Funciones en Matlab para polinomios

 Calcular el valor de un polinomio p en un punto dado x: polyval


>>y=polyval(p,x)
Ejemplo3:
p=[1 –1 –1 1] % definición del polinomio x3-x2-x+1
polyval(p,2)
Ejemplo4:
x=-2:0.1:2;
Y=polyval(p,x);
Polinomios
Funciones en Matlab para polinomios
 Multiplicar y dividir polinomios: conv(p,q) y deconv(p,q)
Ejemplo5:
>>p1=[1, -2, 1]; p2=[1,1]; p3=conv(p1,p2)
>>p4=deconv(p3,p2)
>>[p4,r]=deconv(p3,p2) % resto de la división
Polinomios
Funciones en Matlab para polinomios
 El comando residue, permite el cálculo del desarrollo en suma de
fracciones simples del cociente p1/p2.
p2 debe tener raíces reales
El formato del comando es: >>[r,p,k] =residue(p1,p2)
donde:
r= vector columna con los numeradores
p= vector columna con las raices del denominador
k= vector fila con los coeficientes del polinomio independiente.
p1( x ) r (1) r (n )
   k(x)
p2( x ) x  p(1) x  p(n )
Polinomios
Funciones en Matlab para polinomios

>>[p1,p2]=residue(r,p,k) hace la operación inversa


Ejemplo6:
 Descomponer en fracciones simples el cociente

x  x 1
3 2
>> p1=[1 1 0 1]
>> p2=[1 –3 0 4] x 3  3x 2  4
>> [r,p,k]=residue(p1,p2)
>> rats(r)
x3  x2  1 35 13 1
   1
x  3 x  4 9( x  2) 3( x  2)
3 2 2
9( x  1)
[pol1,pol2]=residue(r,p,k)
Polinomios
Funciones en Matlab para polinomios

 Calcular la derivada del polinomio: polyder(p)


Ejemplo7:
Dado el polinomio x3+6x2+1 su derivada es
>> p=[1, 6,0,1];
>> d=polyder(p) % es decir 3x2+12x

 Calcular la integral del polinomio: polyint(p)


Actividad 5

Ejercicio 1 Consideremos el polinomio p(x)=x-1. Calcular p(x)3 e


identificar el polinomio obtenido y calcular sus raíces
Ejercicio 2 Según Hill y Lounasmaa, la ecuación de la curva de
inversión del helio es P=-21+5.44T-0.132T2 donde P viene dada en
atmósferas y T en grados Kelvin.
a) Calcular el valor de la presión a una temperatura de –268.25 ºC.
b) Calcular el valor de la temperatura para una presión de 3N/m2.
Nota 1N/m2=9.265e-6 atm.
Ejercicio 3 Calcular al integral

x  2x  1
4
I dx
x 1
Actividad 5

Ejercicio 4
>> format long
>> p=[1 –1 2 –2 1 –1];
>> raices=roots(p)

>> der_p=polyder(p)
>>polyval(der_p,round(raices(2)))

También podría gustarte