Vous êtes sur la page 1sur 14

ALGEBRA LINEAL EN EL ENTORNO MATLAB MG. SC. ING.

RAFAEL VALENCIA GOYZUETA

ALGEBRA MATRICIAL (MATLAB NUMÉRICO)


EJEMPLOS
16 3 2 13 

Para la matriz A=
5 10 11 8 
9 6 7 12 
 4 15 14 1 

OPERACIÓN ALGEBRAICA SINTAXIS MATLAB

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


A=

Definir la matriz: 16 3 2 13
5 10 11 8
9 6 7 12
4 15 14 1
>> A(end)
Obtener el elemento a44 ans =
1
>> A(end,end)
Obtener el elemento a44 ans =
1
>> A(2,end)
Obtener el elemento a24 ans =
8
>> A(end,2)
Obtener el elemento a42 ans =
GGGGGGGGGGGGGGGGGGGGG
15

Obtener la submatriz >> A(end-3:end) >> A(end-5:end)


Obtener la submatriz
formada por los
formada por los últimos
elementos de la ans = ans =
6 elementos
columna 4. 13 8 12 1 7 14 13 8 12 1
>> A(3 , :)=[]
>> A( [1 2] ,:)
Obtener la submatriz A=
ans = Eliminar la tercera fila s
formada por las dos 16 3 2 13
primeras filas 16 3 2 13
5 10 11 8
5 10 11 8
4 15 14 1

>> A(end-2:end, end- >> C=A([1 3],[3 4])


Obtener la submatriz Obtener la submatriz
1:end)
formada por los formada por los
C=
elementos de las elementos que ocupan
ans = 2 13
últimas tres filas y las posiciones donde se
11 8 7 12
ultimas dos interceptan las filas 1 y
7 12
columnas 3 y las columnas 3 y 4
14 1

>> C=[A;[1 3 5 7]] >> A(:,[1 2])


Añadirle filas y
columnas sin mas C= ans =
Obtener la submatriz
que especificar el 16 3 2 13 16 3
formada por las dos
vector con los 5 10 11 8 5 10
primeras columnas
elementos que se 9 6 7 12 9 6
quiere añadir 4 15 14 1 4 15
1 3 5 7

1
ALGEBRA LINEAL EN EL ENTORNO MATLAB MG. SC. ING. RAFAEL VALENCIA GOYZUETA

Para el vector: V   0.1 0.4 0.3 -0.3 -0.9 0.4 0.1 -0.5 -0.1 -0.3 0.1 0.5 
>> Av= [0.1 0.4 0.3 -0.3 -0.9 0.4 0.1 -0.5 -0.1 -0.3 0.1 0.5]

Av =
0.1000 0.4000 0.3000 -0.3000 -0.9000 0.4000 0.1000 -0.5000 -0.1000 -0.3000 0.1000 0.5000
rrrrr

SINTAXIS MATLAB
Obtener un vector que señala con 1 (uno) donde la >> Av>0.3
condición es verdadera y con 0 (cero) donde la ans =
condición es falsa. 0 1 0 0 0 1 0 0 0 0 0 1

Extraer los elementos del vector Av que satisfacen >> Av(Av>0.3)


la condición (todos los elementos que sean
mayores a tres): ans =
0.4000 0.4000 0.5000

>> An= 1:length(Av);


>> An(Av>0.3)

ans =
Identificar la posición de los elementos que
2 6 12
satisfacen la condición. > 0.3
>> A=find(Av>0.3)

A=
Ggg
2 6 12

Para las matrices: A 


1 2 3 4 
 
1

5 6 7 8   B   : 2 : 2 
>> A=[1 2 3 4;5 6 7 8] >> B=[pi:0.5:2*pi]
A= B=
1 2 3 4 3.1416 3.6416 4.1416 4.6416 5.1416 5.6416 6.1416
5 6 7 8
rrrrrrrrrrrrrrrrrrrrrrrrrrrr

SINTAXIS MATLAB
>> size(A)
ans =
2 4
Determinar el orden de la matriz A, en un vector cuyo primer elemento sea el
>> [filas,columnas]=size(A)
numero de filas y cuyo segundo elemento sea el numero de columnas
filas =
2
columnas =
4

Determinar el orden de la matriz B en un vector cuyo primer elemento sea el >> size(B)
numero de filas y cuyo segundo elemento sea el numero de columnas ans =
1 7
>> length(A)
ans =
Para las matrices A y B. Determinar cuál es mayor, si el numero de filas o el 4
numero de columnas. (este comando devuelve el numero de filas o columnas
cualquiera que sea el mayor) >> length(B)
ans =
7
>> sum(A)
Determinar un vector que contenga la suma todas las columnas de A ans =
Hhhhhhhhhhhhh
6 8 10 12

2
ALGEBRA LINEAL EN EL ENTORNO MATLAB MG. SC. ING. RAFAEL VALENCIA GOYZUETA

 B I 43 
Generar una matriz B 4x3 que sea randomica, a partir de esta construir la matriz A   
 I 43 143 
La matriz randomica La matriz pedida

>> B=rand(4,3) >> A=[B eye(size(B)); eye(size(B)) ones(size(B))]

B= A=
0.9218 0.9355 0.0579 0.9218 0.9355 0.0579 1.0000 0 0
0.7382 0.9169 0.3529 0.7382 0.9169 0.3529 0 1.0000 0
0.1763 0.4103 0.8132 0.1763 0.4103 0.8132 0 0 1.0000
0.4057 0.8936 0.0099 0.4057 0.8936 0.0099 0 0 0
1.0000 0 0 1.0000 1.0000 1.0000
0 1.0000 0 1.0000 1.0000 1.0000
0 0 1.0000 1.0000 1.0000 1.0000
0 0 0 1.0000 1.0000 1.0000
Fffffffffffffffffffffffffff

Con una sola instrucción crear cada una de las siguientes matrices y reemplazar las filas 2, 4, 6, 7 de B por
filas 5, 6, 7, 8 de A.
1 2  8 
 
A 2 3  9  y B  I8 (matriz identidad)
    
 
8 9  15
SINTAXIS MATLAB

>> A=[(1:8)’,(2:9)’,(3:10)’,(4:11)’,(5:12)’,(6:13)’,(7:14)’,(8:15)’]

A=
1 2 3 4 5 6 7 8
2 3 4 5 6 7 8 9
Generamos A con una sola línea de
3 4 5 6 7 8 9 10
comandos
4 5 6 7 8 9 10 11
5 6 7 8 9 10 11 12
6 7 8 9 10 11 12 13
7 8 9 10 11 12 13 14
8 9 10 11 12 13 14 15
>> B=eye(8)
B=
1 0 0 0 0 0 0 0
0 1 0 0 0 0 0 0
Generamos B con una sola línea de 0 0 1 0 0 0 0 0
comandos 0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 1
>> B([2 4 6 7],:)=A(5:6:7:8,:)

B=
1 0 0 0 0 0 0 0
5 6 7 8 9 10 11 12
Reemplazamos las filas 2, 4, 6, 7 de B por
0 0 1 0 0 0 0 0
las filas 5, 6, 7, 8 de A.
6 7 8 9 10 11 12 13
0 0 0 0 1 0 0 0
7 8 9 10 11 12 13 14
8 9 10 11 12 13 14 15
0 0 0 0 0 0 0 1
Ggggggggggggg

3
ALGEBRA LINEAL EN EL ENTORNO MATLAB MG. SC. ING. RAFAEL VALENCIA GOYZUETA

SINTAXIS MATLAB
Construir una matriz 5 × 5 cuyas columnas estén dadas por el
>> B=[1 2 3 4 5]’*ones(1,5)
vector columna:
B=
A  1 2 3 4 5
T
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
5 5 5 5 5
Dado el vector fila, x=rand(1,5) invertir el orden de sus elementos:
SINTAXIS MATLAB

>> x=rand(1,5) Obsérvese que por haber utilizado


Se define la matriz randomica x= paréntesis –en vez de corchetes–
0.9501 0.2311 0.6068 0.4860 0.8913 los valores generados por el
operador (:) afectan a los índices del
Matriz con sus elementos en >> x=x(5:-1:1) vector y no al valor de sus
orden inverso x= elementos.
Ddddddddddddd
0.8913 0.4860 0.6068 0.2311 0.9501

Dada una matriz mágica de orden 3, A=magic(3), invertir el orden de las columnas:

SINTAXIS MATLAB

>> A=magic(3)
Aunque hubiera sido más fácil
Se define la matriz A= utilizar la función fliplr(A), que
8 1 6 es específica para esta
3 5 7 operación. Finalmente, hay
4 9 2 que decir que A(:) representa
>> A(:,3:-1:1) un vector columna con las
columnas de A una detrás de
ans = otra.
Matriz con sus columnas invertidas
6 1 8
7 5 3
2 9 4
ggg

 3 1 0 0 0 0 0
 1 2 1 0 0 0 0
Con una sola línea de instrucciones generar la matriz y 0 1 1 1 0 0 0
con una sola línea de instrucción extraer un vector
A0 0 1 0 1 0 0
columna cuyos elementos sean los elementos de las 3  
0 0 1 1 1
diagonales de A 0 0

0 0 0 0 1 2 1
 0 0 0 0 0 1 3
Definimos la matriz Matriz con elementos de la diagonal
>> A=diag(-3:3)+diag(ones(6,1),1)+diag(-1*ones(6,1),-1)
>>diag(A,1) >> diag(A) diag(A,-1)
ans =
A=
ans = -3 ans =
-3 1 0 0 0 0 0
1 -2 -1
-1 -2 1 0 0 0 0
1 -1 -1
0 -1 -1 1 0 0 0
1 0 -1
0 0 -1 0 1 0 0
1 1 -1
0 0 0 -1 1 1 0
1 2 -1
0 0 0 0 -1 2 1
1 3 -1
Ppppppppppppppp
0 0 0 0 0 -1 3

4
ALGEBRA LINEAL EN EL ENTORNO MATLAB MG. SC. ING. RAFAEL VALENCIA GOYZUETA

1 5 4 6
2 1 3 5 AT 0
Ingresar la matriz A    Crear la matriz C 
1 6 8 4
  0 A
4 8 7 1

Introducimos la matriz La transpuesta La matriz C

>> A=[1 5 4 6;2 1 3 5;1 6 8 4;4 8 7 1] >> A_trans=A’ >> C=[A zeros(4);zeros(4) A_trans]

A= A_trans = C=
1 5 4 6 0 0 0 0
1 5 4 6 1 2 1 4 2 1 3 5 0 0 0 0
2 1 3 5 5 1 6 8 1 6 8 4 0 0 0 0
1 6 8 4 4 3 8 7 4 8 7 1 0 0 0 0
4 8 7 1 6 5 4 1 0 0 0 0 1 2 1 4
0 0 0 0 5 1 6 8
0 0 0 0 4 3 8 7
Sss
0 0 0 0 6 5 4 1
2 6 1 2   5 5
Dadas las matrices: A  , B  , C .
3 9 3 4   5 3
A 0 0 
 Formar la matriz D 66   0 B 0  sin introducir elemento a elemento.
 0 0 C 
 Con una sola instrucción borrar la ultima fila y la ultima columna de D
 Extraer la primera sub matriz 4x4
 Extraer la submatriz M  1,3, 6  2,5 de D
>> A=[2 6; 3 9] B=[1 2; 3 4] C=[-5 5; 5 3]

Generamos las matrices A= B= C=


2 6 1 2 -5 5
3 9 3 4 5 3
GGGGGGGGG

SINTAXIS MATLAB RESPUESTA


D=
0 0 0 0 0 0
0 0 0 0 0 0
Se define la matriz de ceros >> D=zeros(6,6); 0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
D=
2 6 0 0 0 0
>> D(1:2,1:2)=A 3 9 0 0 0 0
Se introducen las tres matrices como submatrices de D >> D(3:4,3:4)=B 0 0 1 2 0 0
>> D(5:6,5:6)=C 0 0 3 4 0 0
0 0 0 0 -5 5
0 0 0 0 5 3
F=
2 6 0 0 0 0
Se elimina la ultima fila y la ultima columna (Se quiere >> F=D;
3 9 0 0 0 0
conservar la matriz D, entonces se asigna el mismo valor a >> F(6,:)=[]
0 0 1 2 0 0
una nueva variable F sobre la que se realizan los cambios)
0 0 3 4 0 0
0 0 0 0 -5 5

5
ALGEBRA LINEAL EN EL ENTORNO MATLAB MG. SC. ING. RAFAEL VALENCIA GOYZUETA

F=
2 6 0 0 0
>> F(:,6)=[] 3 9 0 0 0
0 0 1 2 0
0 0 3 4 0
0 0 0 0 -5
H=
2 6 0 0
Extraer la submatriz 4x4 de la esquina superior izquierda de
>> H=D(1:4,1:4) 3 9 0 0
D:
0 0 1 2
0 0 3 4
K=
Extraer la submatriz M  1,3, 6  2,5 de D : >> K=D([1 3 6],[2 5]) 6 0
0 0
0 5
Para el vector X  16 5 12 36 12 17 29
SINTAXIS MATLAB
>> X=[16 5 12 36 12 17 29]
Definimos la matriz
X=
16 5 12 36 12 17 29
>> sum(rem(X,2)==0)
Cuantos números pares hay en el vector
ans =
4
>> sum(X<20)
Cuantos elementos son menores a 20
ans =
5
Generar la matriz A utilizando el comando spearse.
0 0 0 3
0 0 1 2 
A
3 0 0 1
0 0 0 2 
 
A veces se usan matrices con muchos ceros. MATLAB tiene una forma de trabajar con ellas usando menos bytes con
el comando sparse.
SINTAXIS MATLAB
>>i=[1 2 2 3 3 4];
>>j=[4 3 4 1 4 4];
>>s=[3 -1 2 3 1 -2];
>>m=4;n=4;
Se definen las variables. >>sparse(i,j,s,m,n)
Donde: i,j son los subindices de los elementos no nulos ans =
(i,j son vectores) s es un vector con los valores de los (3,1) 3
elementos no nulos (m,n) es el tamaño de la matriz. (2,3) -1
(1,4) 3
(2,4) 2
(3,4) 1
(4,4) -2
>> full(T)

ans =
Visualiza la matriz 0 0 0 3
0 0 -1 2
3 0 0 1
0 0 0 -2

6
ALGEBRA LINEAL EN EL ENTORNO MATLAB MG. SC. ING. RAFAEL VALENCIA GOYZUETA

PRÁCTICO I
MANIPULACIÓN DE VECTORES
PRIMERA PARTE.
Para el vector X  1 2 3 3 4 6 8 , con el uso EXCLUSIVO de comandos de MATLAB, determine las
siguientes cuestiones:
1 Extraer el penúltimo elemento del vector X 6
2 Cuantos electos impares hay en el vector X. 4
2 Cuantos elementos del vector X son mayores al promedio de sus elementos. 3
4 Agrega un sexto elemento al vector x con un valor de 999
5 Rellenar con 33 las posiciones 1, 5 y 7 del vector X 33 2 3 3 33 6 33
6 Extraer el tercero, cuarto y séptimo elemento del vector X 3 3 8
7 Dado el vector X, obtener el vector Y que tiene los elementos invertidos. 8 6 4 3 3 2 1
8 El promedio de los elementos del vector X, sin considerar el menor elemento. 4.3333
9 El promedio de los elementos del vector X, sin considerar los 2 menores elementos. 1 2 3 3 4 6 8
4.800
10 Formar el vector Y, a partir de los elementos de índice impar del vector X. 1348
11 Cuantos elementos del vector X son impares y múltiplos de 3. 2
12 La suma de los elementos del vector X que son múltiplos de 3. 0 0 3 3 0 6 0
12
13 Obtener el vector Y que tiene los mismos elementos de X, excepto el último. 1 2 3 3 4 6
14 La longitud del rango de los elementos del vector X. 7
ddddddddddd

15 Crea un vector que comienza en el valor a y acaba en el valor b aumentando de 1 en 1. (a:b)

16 Crea un vector que comienza en el valor a y acaba en el valor b aumentando de c en c. (a:c:b)

17 Generar un vector linealmente espaciado entre los valores a y b con c elementos. linspace (a,b,c)

18 Generar un vector linealmente espaciado entre los valores a y b con 100 elementos. linspace (a,b)

19 Generar un vector logarítmicamente espaciado entre los valores 10^a y 10^b con c elementos. logspace (a,b,c)

20 Generar un vector logarítmicamente espaciado entre los valores 10^a y 10^b con 50 elementos. logspace (a,b)

21 Si B=0:2:20, escribe el comando de MATLAB que eleva al cuadrado cada componente de B.

SEGUNDA PARTE. Programación


Elabore un programa en MATLAB que tenga como input (entrada) la variable n>20 (n entero) y tenga como output
(salida) los siguientes vectores:
Vector 1:(1, 2, 3, . . ., n)
Vector 2:(2, 4, 6, . . ., 2n)
Vector 3: Los n/2 primeros elementos del vector 1 y los n/2 últimos elementos del vector 2
Además forme una matriz de 4 filas donde las primeras dos filas serán los primeros n/2 elementos del Vector 1
y Vector 2 respectivamente, y las últimas dos filas serán los últimos n/2 elementos de los Vectores 1 y 2
respectivamente.
Elabore un programa en MATLAB que tenga como input dos vectores y tenga como output lo siguiente:
Un mensaje de velicación si son o no perpendiculares los vectores de entrada
Producto escalar de los vectores de entrada
Producto vectorial de los vectores de entrada
Escriba un programa que tenga como input (entrada) un número del teclado. Mientras este número sea distinto de la
unidad tendrá como output (salida) un vector fila de 3 elementos con las siguientes condiciones:
Si el número es par lo dividirá por 2 y lo colocara como el primer elemento del vector de salida.
Si el número es impar lo multiplicará por 3 y lo colocara como el segundo elemento del vector de salida.
Si el número impar es le sumará 1 y lo colocara como el tercer elemento del vector de salida.

7
ALGEBRA LINEAL EN EL ENTORNO MATLAB MG. SC. ING. RAFAEL VALENCIA GOYZUETA

PRÁCTICO II
INTRODUCCIÓN A MATRICES EN MATLAB
PRIMERA PARTE
Explique que hacen las siguientes funciones y comandos de MATLAB:
1 magic() 6 ones() 11 fix(10*rand( ))
2 vander() 7 spy() 12 floor()
3 hilb() 8 sparse(A) 13 ceil()
4 eyes() 9 trill() 14 pascal()
hhhhhhhhhh
5 zeros() 10 toeplitz(a:b)
1
Explica la diferencia entre los comandos floor, ceil, round y fix.
2 Con una sola orden de MATLAB crea una matriz aleatoria 4x4 de números enteros entre -5 y 5.
3 En una sola instrucción de MATLAB, cambiar todos los valores de la diagonal de una matriz cuadrada 4x4 a cero.
4 En una sola instrucción de MATLAB, sustituir todos los valores de la diagonal de una matriz cuadrada 4x4 por los
elementos de un vector dado.
5 Ordenar los elementos de una matriz del menor al mayor manteniendo su forma (indicación: emplear la orden
reshape).
6 En una sola instrucción de MATLAB, poner a cero todos los elementos negativos de una matriz dada de orden
3x5 dada.
7 En una sola instrucción de MATLAB, poner a cero todos los elementos de una matriz que estén entre -1 y 1. (La
conjunción lógica es &).
8 De tres formas distintas (cada una en una sola instrucción), averiguar el número de elementos de una matriz, de
forma que al final tengamos un numero.
9 Crear una matriz en la que los valores de cada fila coincida con el número de fila.
10 En una matriz dada de 10x10, poner toda la fila 4 a cero.
11 En una matriz dada de 10x10, poner toda la columna 6 a uno.
12 En una matriz dad de 10x10, poner toda la columna 5 iguales al valor de la primera posición.
13 En una matriz dad de 10x10, poner todos sus elementos centrales a cero. Por elemento central se entiende todo
el que no esté en el borde de la matriz.
14 Dada una matriz de 4x4, obtener una matriz B con los elementos de las esquinas
15 Dada una matriz de 4x4, obtener una matriz B eliminando las 2 filas y columnas extremas.
16 Calcular la traza de C = [zeros(2) ones(2);eye(2) magic(2)]

1 2 3
Para la matriz A  2 5 1  , solo con comandos de MATLAB, encontrar las siguientes cuestiones:
 5 2 2
17 La mayor suma de columnas de una matriz A. 896
18 La mayor suma de filas de una matriz A. 9
19 Dada la matriz cuadrada A, hallar la matriz B tal que B*B=A

20 Determinar el minimax1, el mínimo de los máximos de cada columna. 3


21 Determinar el minimax2, el mínimo de los máximos de cada fila. 3
22 Cuantos elementos de la matriz A son menores a su elemento máximo. 7

23 Sumar los elementos de la matriz A, que son menores a su elemento máximo. 13


5 53
24 Determinar los índices de fila de los máximos de cada columna de una matriz A.
3 2 1
3 5 5
25 Determinar los índices de columna de los máximos de cada fila de una matriz A.
3 2 1
26 Determinar los índices del elemento máximo de la matriz A.
27 La suma total de las 2 diagonales de la matriz A. 21
28 Cambiar todos los valores iguales a 2 por -1.

8
ALGEBRA LINEAL EN EL ENTORNO MATLAB MG. SC. ING. RAFAEL VALENCIA GOYZUETA

29 Poner a 0 todas las posiciones de las dos diagonales

SEGUNDA PARTE. Planteo

En la urbanización del Pablito Sion hay 4 bloques de pisos, de 6 plantas cada uno. En cada una de las plantas hay 5
pisos, con un número diferentes de habitaciones cada uno. Todas las puertas número 1 y 2 son pisos de dos
habitaciones, las puertas 3 y 4 son pisos de tres habitaciones y las puertas 5, tiene cuatro habitaciones. Se pide:
Almacenar el número de habitaciones de cada piso en una matriz de forma adecuada
Imprimir bloque por bloque el número de habitaciones de cada piso.
Imprimir el número de habitaciones de todos los pisos de la planta 4 del bloque 2.
Imprimir el número de habitaciones del piso 3 de la planta 2 del bloque 3.
Calcular e imprimir el número total de habitaciones de cada bloque.
Calcular e imprimir el número total de habitaciones de la urbanización.

El mundo de las telecomunicaciones se interesa cada día más por la transmisión de mensajes encriptados que sean
difíciles de desencriptar por otros. Hay muchas formas de encriptar mensajes. A continuación, se describe un método.
Supongamos que se desea encriptar el mensaje: ATTACK NOW

 3 4 
Iniciamos definiendo una matriz A invertible, que sólo la conocen la fuente y el receptor. Por ejemplo: A 
 1 2 
Para la encriptación, se reemplaza cada letra del mensaje por el número que le corresponde a su posición en el
alfabeto y se representa un espacio por 0, esto es:
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

Así, el mensaje que se quiere enviar se ha convertido en una sucesión de números 1, 20, 20,1, 3, 11, 0, 14, 15, 23.
Esta sucesión se puede agrupar en una matriz como la siguiente.
 1 20 3 0 15   1 20 3 0 15   3 4  1 20 3 0 15  77 56 35 56 47 
 20 1 11 14 23  A  20 1 11 14 23   1 2  20 1 11 14 23  39 18 19 28 31 
        

Si a esta ultima matriz se la multiplica por izquierda por A , se tendrá el mensaje encriptado
77, 39,  56,  18, 35, 19, 56, 28, 47, 31
1
Para desencriptar el mensaje, el receptor, debe calcular la matriz A y multiplicar esta matriz por la sucesión de
números recibidos dispuestos en una sucesión de matrices columna de orden 2x1.

77 56 35 56 47   1 2  77 56 35 56 47   1 20 3 0 15 


1 77 56 35 56 47 
 39 18 19 28 31  A 39 18 19 28 31    1 3  39 18 19 28 31   20 1 11 14 23
     2 2    

Utilizando solo los comandos de MATLAB, desencriptar el siguiente mensaje 15 81 -9 39 -1 7 2 52 28 56 -12


18 32 100 -2 8 2 4 11 25 12 60 32 64 37 89 -8 26 15 39 32 64 -9 21 4 14. Si el mensaje ha sido
encriptado con una matriz cuadrada 2x2, utilizando el alfabeto del problema anterior. Además suponiendo que al final
del mensaje aparecen las letras: BMCB. .
Utilizando solo los comandos de MATLAB, desencriptar el siguiente mensaje 1,,9,10,22,24,43,16,37,53,24,
36,56,16,28,44,37,17,34,21,18,20,34,18,31,1,20,20,17,23,23. El mensaje ha sido encriptado mediante la matriz
A  101;011;012 , pero utilizando el alfabeto con la misma asignación anterior, incluyendo la Ñ y eliminando la W.
TERCERA PARTE. Algebra
1. Utilizando el comando sparse de MATLAB, generar las siguientes matrices de 20X20

0 1 0 0  0 0 1 0 0 0  1 
 1 0 1 0  0 0
2 1 0 0  0 0 0 0 0 0
0 1 0 0  2 
0 1  0 1 0
0 0  3 
2 1 0 0 0 0
1 0 1  0
B  0 0 E0 0
0 1 0
A F
  
1 2 1  0 2 0

 
       0 0 0 3 3 
   

 0 0 0 0  0 1
      0 0 0 0 1 n 1

0 0 0 0  2  1 0 0 0 7
0 0 0 0  1 0 0 0 0 0 0 n 

9
ALGEBRA LINEAL EN EL ENTORNO MATLAB MG. SC. ING. RAFAEL VALENCIA GOYZUETA

2. Con una o dos instrucciones como máximo crear la matriz A, luego aplicando operaciones de extracción y
concatenación para crear la matriz C a partir de A y B.
1 2 3 4 5 6 7 8 5 6 7 8 9 10 11 12 
1 1 0 0 0 0 2 3 4 5 6 7 8 9 6 7 8 9 10 11 12 13 
1 1 0 0 0 0 3 4 5 6 7 8 9 10  7 8 9 10 11 12 13 14 
0 0 1 0 0 0
4 5 6 7 8 9 10 11
 8 9 10 11 12 13 14 15

A B  C 
0 0

0 0 0 1
 5 6 7 8 9 10 11 12
 1 2 3 4 5 6 7 8

0 0 0 0 1 1
 6 7 8 9 10 11 12 13  2 3 4 5 6 7 8 9
0 0 0 0 1 1 7 8 9 10 11 12 13 14  3 4 5 6 7 8 9 10 
8  4 
ggggggggggggggggggg
 9 10 11 12 13 14 15   5 6 7 8 9 10 11 

3. Genere las matrices (sin introducir explícitamente sus  Con A y B obtener las matrices D y C con la
elementos): menor cantidad de comandos posibles
5 6 1 1 4 4 4 4
6 5 1 1 3 3 3 3
A 0 0  A 0 BT 
A B D  0  C 0 I 0 
1 6 5  1
, BT
1 0
1
1 1 1
   T 
 1 5 6 
2
 2 2 2
  0 0 
A-1   A 0 B 
A I C
4. Dadas la matrices A  
3
B
11
C
1 11 15 21
Con una sola instrucción crear A   -I C θ
 1 5
  7 2 
  2 0  B θ B

5. Sea 2 2 
x  0,  ,  , 3 , 2 . Con una sola orden de MATLAB crea una matriz cuya primera fila es x , su segunda
x y cuya tercera fila el coseno de cada elemento de x .
fila es el seno de cada elemento de
6. Construye una matriz A   aij  tal que a) ai j  i  j b) cij  cos  i  j  c) Una matriz 5 × 5 cuyo elemento en la

posición  i, j  sea i
j

7. Definir utilizando comandos de MATLAB (es decir no introducir los números uno por uno) dos vectores, de la
siguiente forma:
 El primero formado por los seis primeros números impares
 El segundo formado por los seis primeros números pares de varias formas distintas

2 4 6 8 10 12 
5 9 12 24 93 24 
9 17 24 40 73 60 
Con estos vectores construir la matriz: A  
13 25 36 56 53 84 
 
17 33 48 72 33 108

 21 41 60 88 13 132 

8. Utilizando el comando(:) , Y a partir de ella obtener:


escriba la siguiente matriz:
 La tercera fila.
1 2 3 4 5  La cuarta columna.
6 7 8 9 10 
 El vector formado por los elementos que ocupan las posiciones impares de
 la fila 4.
11 12 13 14 15   El vector formado por los elementos que ocupan las posiciones pares de la
A  columna 1.
16 17 18 19 20   La submatriz formada por los elementos que ocupan las posiciones donde
 21 22 23 24 25  se cruzan las filas 2 y 4 y las columnas 1, 3 y 5.
   La submatriz que se obtiene al suprimir las filas 2 y 4, y las columnas 1 y
 26 27 28 29 30  3.
 El vector formado por los elementos que ocupan las posiciones impares de
la diagonal principal.

I θ 44 
9. Con una sola instrucción genere una matriz 8x8 tal que A=  44 
 θ 44 -I 44 

10
ALGEBRA LINEAL EN EL ENTORNO MATLAB MG. SC. ING. RAFAEL VALENCIA GOYZUETA

CUARTA PARTE. Programación


Elabore un programa en MATLAB que tenga como input una matriz A y tenga como output la velicación si es matriz
simétrica, hermitiana, normal, singular, no-singular.

Elaborar un script que tenga como input (entrada) una matriz dada y que tenga como output (salida) la diagonal de la
matriz de entrada pero recorrida de abajo hacia arriba.

Escriba un programa en MATLAB que haga lo siguiente: Dada una matriz cuadrada A, verifique primero que en efecto
es cuadrada, y que a continuación devuelva la adjunta.
EJEMPLO. MATRICES ELEMENTALES
MATLAB permite realizar operaciones elementales de filas y columnas:
SINTAXIS MATLAB RESPUESTA
A=
5 7 9
Se define una matriz >> A=[5 7 9;2 8 1;9 6 4]
2 8 1
9 6 4
Se multiplica la segunda fila por dos y se reemplaza en la misma A=
5 7 9
>> A(2,:)=2*A(2,:)
2  F2  F2 4 16 2
9 6 4
aux =
5 7 9
Se permutan las dos primeras filas. Para ello se emplea un vector A=
intermedio (aux) que almacenara provisionalmente una fila 2 8 1
>> aux=A(1,:)
mientras realizamos el intercambio 2 8 1
>> A(1,:)=A(2,:)
9 6 4
>> A(2,:)=aux
A=
F1  F2
2 8 1
5 7 9
9 6 4
A la tercera fila le resta la primera fila multiplicada por 2 A=
2 8 1
>> A(3,:)=A(3,:)-2*A(1,:)
2  F2  F3  F3 5 7 9
5 -10 2
Otra forma de realizar estas operaciones es multiplicanda a izquierda por una matriz elemental apropiada.

SINTAXIS MATLAB RESPUESTA

>> P=eye(3); P=
P(1,1)=0; 0 1 0
Se permutan las dos primeras filas. >> P(2,2)=0; 1 0 0
>> P(1,2)=1; 0 0 1
F1  F2 >> P(2,1)=1; ans =
>> P 2 8 1
>> P*A 5 7 9
9 6 4
P2 =
1 0 0
>> P2=eye(3); 0 1 0
A la tercera fila le resta la primera fila por 2
>> P2(3,1)=-2 -2 0 1
>> P2*P*A ans =
2  F2  F3  F3 2 8 1
5 7 9
5 -10 2
Calcular en cada paso la matriz elemental apropiada para cada operación es pesado y repetitivo., para este tipo de
tareas MATLAB permite construir al usuario sus propias funciones para abreviar los cálculos, esto es, empleamos el
modo programado de MATLAB.

11
ALGEBRA LINEAL EN EL ENTORNO MATLAB MG. SC. ING. RAFAEL VALENCIA GOYZUETA

El programa en MATLAB Ingresa por teclado la matriz y llamamos a la función


function p=pij(n,i,j)
>> pij(3,2,1) *A
p=eye(n); % partimos inicialmente de la identidad de orden n
p(i,i)=0;p(j,j)=0; % modificamos los elementos
ans =
necesarios.
2 8 1
p(i,j)=1;p(j,i)=1;
5 7 9
return
9 6 4

2 0 4
Invertir la siguiente matriz por método Gauss Jordan A   4 2 6 
 8 2 16 

SINTAXIS MATLAB
>> B=[2 0 4 1 0 0;4 -2 6 0 1 0;8 2 16 0 0 1]
B=
Se define la matriz aumentada 2 0 4 1 0 0
4 -2 6 0 1 0
8 2 16 0 0 1
>> B(2,:)=-2*B(1,:)+B(2,:)
Se elimina el primer elemento de la fila 2
B=
2 0 4 1 0 0
2  F1  F2  F2 0 -2 -2 -2 1 0
8 2 16 0 0 1
>> B(3,:)=-4*B(1,:)+B(3,:)
Se elimina el primer elemento de la fila 3
B=
2 0 4 1 0 0
4  F1  F3  F3 0 -2 -2 -2 1 0
0 2 0 -4 0 1
>> B(3,:)=B(2,:)+B(3,:)
Se elimina el segundo elemento de la fila 3
B=
2 0 4 1 0 0
F2  F3  F3 0 -2 -2 -2 1 0
0 0 -2 -6 1 1
>> B(1,:)=2*B(3,:)+B(1,:)
Se elimina el tercer elemento de la fila 1
B=
2 0 0 -11 2 2
2  F3  F1  F1 0 -2 -2 -2 1 0
0 0 -2 -6 1 1
>> B(2,:)=-B(3,:)+B(2,:)
Se elimina el tercer elemento de la fila 2 B=
2 0 0 -11 2 2
2  F3  F2  F2 0 -2 0 4 0 -1
0 0 -2 -6 1 1
Se modifica por ½ todas las filas.
>> format rat
1 F  F
2 1 1 >> B
B=
 1  F2  F2 1 0 0 -11/2 1 1
2
0 1 0 -2 0 1/2
  F3  F3
1 0 0 1 3 -1/2 -1/2
2
 11 1 1 
 2 
Se obtiene la matriz identidad y la inversa A   2
1
0  
1
 2
 3 
1

1
 2 2

12
ALGEBRA LINEAL EN EL ENTORNO MATLAB MG. SC. ING. RAFAEL VALENCIA GOYZUETA

TRABAJO PRACTICO III


OPERACIONES ELEMENTALES Y CÁLCULO DE DETERMINANTES
PRIMERA PARTE
Encontrar la inversa de la matriz aplicando Operaciones elementales (Gauss Jordan):
0 1 0 0 0 0 1 0 0 0 0 1 0 0 0
1 0 0 0 0 1 0 0 0 0 1 0 0 0 0
1 A   1 1 0 0 1 3 A   1 1 0 0 1 5 A2 3 0 1 0
 3 2 1 0 0 0 0 0 1 2  1 0 0 0 1
     
0 1 0 1 0 0 0 0 0 1  1 1 1 0 0

1 2 0 1 2  1 2 0 1 5  1 2 1 0 0 
2 3 1 0 1  2 3 1 0 1  0 1 2 1 0 
2 A0 1 2 4 2  4 A0 1 2 4 2  6 A  0 0 1 2 1 
 1 0 4 1 0   1 0 4 1 0  0 0 0 1 1
     
1 2 1 0 1  1 2 1 0 1  0 0 0 0 1

Generar las siguientes matrices en MATLAB (tal como están escritas en la práctica) y hallar la inversa de estas
aplicando para esto los comandos de MATLAB necesarios
 16 26 2

8

54   10 5
13

37

11 
 22 22 22 22 22   7 7 7
  16 
4

2 8 32   4 2 
5 35 8 
 22 22 22 22 22   7 14 7 
1 A 5 4 2 3

10 
3 A1 1 3 3 
 22 22 22 22 22  2 0
7 7 7 
 4 10 6 2 14   1 3 3 
 
 22 22 22 22 22   2 1 
7 7 7 
 21 14 4 5 2   3 2 5 1
    2   
 22  1
22 22 22 22  7 14 7
  13 1 1 1 
 30 3 4 12   2 1 1 2 
  19 59 3 1   10 10 10 10 
  2 
A   20 60 20 12 
A 2 2 2
1 
2 4
 7 2 3 1 1 2 2
 12 15

15

6  
 8 1   10

10

10 10

11 6  2 
 15  2 2 2
15 15 3 

Generar la matriz de cofactores para cada una de las siguientes matrices. Luego encontrar la inversa de las
matrices por el método de la adjunta:

1 2 3 4 3 2 0 1 1 1 4 2 1 3 5 7 
1 4 6 8 0 4 5 1 2 0 3 1  2 5 12 17 
1 A A A 4 A
9 3 0 3 
2 3
1 4 7 1 1 2 4 2 1 1 5 0
1 7
 1 6  2 1 3 4 10 
 3 5   2 3   4 1 2
  
Encontrar la matriz A si es que:
0 1 1 4 3 4
T 3 3 4 5  1 2 2 5
 11 2 7   0 4 6 0 6
2  7 1 4  1 0 0 1 1 1 A
3

3 4
A 7 8 0
2 1
 A 0 1 1   1 0 0 7 1 0
  3 1 7 
1 3 5
 31 2 
0 2
 0 0 0 10  10 0
2    
1 1 
0 13 0
0 0 0 1 1
  0  
 0 0 0 1  0
1 0 2 0 1 1
T
1 2 3 4 1 4 7 11 1 1 1 1
0 3  1 2 1 1  1 1 1 1 1 
0 0 1 1 0

9 1 2
 Adj  A   
1 1 1
A
2 1 4 8
2 A 4 6
0 8 0 0 1 0 4 1
0 1 0 6
0 1 1 1 1 
0
 0 1 0

6
 4
  0 0 1

0
 2 4 7   

13
ALGEBRA LINEAL EN EL ENTORNO MATLAB MG. SC. ING. RAFAEL VALENCIA GOYZUETA

Encontrar el rango de la matriz primero aplicando solo el comando adecuado de MATLAB y luego
escalonando al máximo por operaciones elementales cada una de ellas
1 0 0 1 4 1 1 2 3 4  17 28 45 11 39 
0 1 0 2 5 2 1 1 2 0   24 37 61 13 50 
1 A  0 0 1 3 6 3 A   1 2 1 1 3  5 A   25 7 32 18 11
1 2 3 14 32 
1 5 8 5 12 
 31 12 19 43 55 
     
4 5 6 32 77  3 7 8 9 13   42 13 29 55 68 

3 2 1 2 0 1  5 5 10 15 20  5 0 1 2 0 6 
4 1 0 3 0 2  2 1 1 2 0   4 1 0 3 0 2 
2 A  2 1 2 1 1 3  4 A   1 2 1 1 3  6 A2 1 3 1 1 0 
3 1 3 9 1 6  1 5 8 5 12 
3 1 3 1 1 6 
     
3 1 5 7 2 7  3 7 8 9 13  3 1 5 7 2 1

Generar cada una de las siguientes matrices de usando solo los comandos de MATLAB y calcular su
respectivo determinante:
1 1 1 1  1 1 2 2 2  2 1 2 3 ... 9
1 0 0  0
1 2 1 1  1 2 2 2 2  2 2 3 4 ... 1
0 2 0  0
A  A 
1 1 3 1  1
A 
2 2 3 2  2 A  3 4 5 ... 2
1 0 0 3  0 2 3 4
1 1 1 4  1 2 2 2 4  2     
    
            9 1 2 ... 8
0 0 0 0 15
1 1 1 1 1 12 2 2 2 2 2 10
Calcular los siguientes determinantes Aplicando la regla de Chio:
0 1 1 1 1 1
10 2 0 0 0 1 0 0 2 3
1 0 1 1 1 1
12 10 2 0 0 0 1 1 2 0
1 1 0 1 1 1
1 A  0 12 10 2 0 2 A  0 2 0 1 2 3 A 
1 1 1 0 1 1
0 0 12 10 2 2 1 1 0 0
1 1 1 1 0 1
0 0 0 12 10 0 1 0 1 0
1 1 1 1 1 0
7 1 5 0 0 2 1 1 1 1
0 2 4 0 0 1 3 1 1 1
4 A  1 1 3 0 0 5 A  1 1 4 1 1
4 7 6 2 1 1 1 1 1 1
5 8 3 1 3 1 1 1 1 6

10 2 0 0 0  1 6 5 9 4
12 10 2 0 0  2 6 8 5 3
Realizar las siguientes operaciones si: A   0 12 10 2 0  B5 9 0 7 1
0 0 12 10 2   3 7 5 4 7 
   
0 0 0 12 10  9 7 6 1 3

 E=A T +A -1-2 A+B


T
 

   
T T
 E= A-B-1 + A BT +3A-1 +B2

   
T -1
 E=  AB T -3 A-1B-1 + ABT -AT B

SEGUNDA PARTE.
Preparar tres funciones que efectúen cada una de las tres operaciones elementales sobre una matriz dada.
Elaborar una rutina que, dada una matriz triangular superior, obtenga la correspondiente inversa.

14

Vous aimerez peut-être aussi