Académique Documents
Professionnel Documents
Culture Documents
lgebra Lineal
Cdigo 1000 003
Introduccin
Ejercicios resueltos
Para ilustrar el uso de MATLAB en el lgebra Lineal, resolveremos algunos problemas tpicos del curso.
Ejemplo 1. Una compaa de construccin ofrece cuatro tipos de casas en una urbanizacin. En la siguiente tabla
se indica el nmero de unidades de concreto, de unidades de madera para cancelera y de unidades de madera para
estructura que requiere una casa de cada tipo
unidades de concreto
unidades de madera para cancelera
unidades de madera para estructura
Casas tipo 1
10
20
10
Casas tipo 2
20
0
20
Casas tipo 3
10
10
30
Casas tipo 4
20
10
0
La compaa dispone de 1600 unidades de concreto, 1200 unidades de madera para cancelera y 1600 unidades de
madera para estructura.
(a) Determinar el nmero de casas de cada tipo que la compaa puede construir utilizando todo el material
disponible.
(b) Calcular el nmero de casas de cada tipo que la compaa debe construir
(i) si desea construir el mnimo de casas de tipo 1.
(ii) si desea al menos 25 casas de tipo 2 y al menos 25 casas de tipo 4.
(a) Definimos las variables
Solucin.
x1
x2
x3
x4
= nmero de casas tipo 1 que la compaa puede construir utilizando todo el material disponible,
= nmero de casas tipo 2 que la compaa puede construir utilizando todo el material disponible,
= nmero de casas tipo 3 que la compaa puede construir utilizando todo el material disponible,
= nmero de casas tipo 4 que la compaa puede construir utilizando todo el material disponible.
Entonces al utilizar todo el material disponible obtenemos el siguiente sistema de ecuaciones lineales
10x1 + 20x2 + 10x3 + 20x4 = 1600
20x1
+ 10x3 + 10x4 = 1200
10x1 + 20x2 + 30x3
= 1600
(1)
Para determinar el nmero de casas de cada tipo que la compaa puede construir utilizando todo el material
disponible hay que resolver el sistema lineal (1). Primero introducimos en MATLAB la matriz A de coeficientes
y el vector b de trminos independientes del siguiente modo:
>> A = [10,20,10,20;
A
10,20,30,0]
=
10
20
10
20
0
20
>> b = [1600;
b
20,0,10,10;
10
10
30
1200;
20
10
0
1600]
1600
1200
1600
>> M = [A
M
b]
=
10
20
10
20
0
20
10
10
30
20
10
0
1600
1200
1600
>> U = rref(M)
U
=
1
0
0
0
1
0
0
0
1
1
1
-1
60
50
0
De lo anterior, tenemos que el sistema lineal tiene infinitas soluciones y adems podemos concluir que
x1 = 60
x2 = 50
x4 ,
x4
x3 = x4 .
Por otro lado, las variables x1 , x2 , x3 y x4 tienen que ser enteros positivos. As
x1 = 60
x4
x2 = 50
x4 ,
60
x4
50
x4
x3 = x4
0.
Por tanto, x4 es un entero entre 0 y 50. Luego si la compaa utiliza todo el material disponible sta debe construir
un nmero de casas de cada tipo que se encuentre en los siguientes rangos
x1 entero entre 10 y 60,
(b) (i) Del literal anterior, el mnimo nmero de casas de tipo 1 es 10 y ste se obtiene cuando el nmero de casas de
tipo 4 es de 50. Por tanto, para que la compaa construya el mnimo de casa tipo 1 se debe tener
x4 = 50,
x3 = 50,
x2 = 0
x1 = 10.
x4
25
x4
25
25
x4
x4
25
x4 = 25.
As,
x4 = 25,
x3 = 25,
x2 = 25
x1 = 35.
X
Ejemplo 2.
>> B = ones(6,6)
B
=
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
>> p = poly(B)
p
=
1.0000
-6.0000
-0.0000
0.0000
65 = 5 (
6).
2 = 6.
E0 = nul ( B
E6 = nul ( B
6I3 ) .
Ahora, para hallar una base para el espacio propio asociado al valor propio de una matriz A de orden n
usamos la instruccin null(A - *eye(n),r). Entonces, en particular,
>> null(B,r)
ans
=
-1
1
0
0
0
0
-1
0
1
0
0
0
-1
0
0
1
0
0
-1
0
0
0
1
0
-1
0
0
0
0
1
1
1
0
0
0
0
7
7
7
7,
7
7
5
2
6
6
6
6
6
6
4
1
0
1
0
0
0
7
7
7
7,
7
7
5
2
6
6
6
6
6
6
4
1
0
0
1
0
0
7
7
7
7,
7
7
5
2
6
6
6
6
6
6
4
1
0
0
0
1
0
7
7
7
7,
7
7
5
2
6
6
6
6
6
6
4
1
0
0
0
0
1
39
>
>
7>
>
7>
>
7=
7 .
7>
7>
>
5>
>
>
;
n,
=
1
1
1
1
1
1
82
>
>
>
6
>
>
>
<6
6
B2 = 6
6
>
>
6
>
>
4
>
>
:
1
1
1
1
1
1
39
>
>
7>
>
7>
>
7=
7 .
7>
7>
>
5>
>
>
;
(d) Para hallar una base ortonormal para E0 , tomamos la matriz C cuyas columnas son los vectores de la base de E0
hallada en el literal 3. Dado que las columnas de C son un conjunto de vectores L. I. en R6 , entonces C admite una
factorizacin QR. As las columnas de Q forman una base ortonormal para E0 . Para obtener C usamos:
>> C = null(B,r)
C
=
-1
1
0
0
0
0
-1
0
1
0
0
0
-1
0
0
1
0
0
-1
0
0
0
1
0
-1
0
0
0
0
1
>> [Q R] = C
Q
=
-0.7071
0.7071
0
0
0
0
-0.4082
-0.4082
0.8165
0
0
0
-0.2887
-0.2887
-0.2887
0.8660
0
0
-0.2236
-0.2236
-0.2236
-0.2236
0.8944
0
-0.1826
-0.1826
-0.1826
-0.1826
-0.1826
0.9129
1.4142
0
0
0
0
0
0.7071
1.2247
0
0
0
0
0.7071
0.4082
1.1547
0
0
0
0.7071
0.4082
0.2887
1.1180
0
0
0.7071
0.4082
0.2887
0.2236
1.0954
0
0.4082
0.4082
0.4082
0.4082
0.4082
0.4082
Las primeras cuatro columnas de Q forman una base ortonormal para E0 y la quinta columna una base ortonormal
para E6 .
Otra forma. La instruccin null(A - *eye(n)) genera una base ortonormal para el espacio propio asociado al
valor propio de una matriz A de orden n n. En particular, la instruccin
>> null(B)
ans
=
-0.9129
0.1826
0.1826
0.1826
0.1826
0.1826
0
0.8944
-0.2236
-0.2236
-0.2236
-0.2236
0
0.0000
0.8660
-0.2887
-0.2887
-0.2887
0
0.0000
0.0000
-0.5774
0.7887
-0.2113
0
0.0000
0.0000
-0.5774
-0.2113
0.7887
=
-0.4082
-0.4082
-0.4082
-0.4082
-0.4082
-0.4082
Considere la matriz
6
6
C=6
6
4
5
2
3
0
0
2
5
2
3
0
3
2
5
2
3
0
3
2
5
2
0
0
3
2
5
7
7
7.
7
5
(b) Halle una base para cada espacio propio asociado a los vectores propios de C.
(c) Halle una base ortonormal para cada espacio propio asociado a los vectores propios de C.
Solucin. (a) Introducimos la matriz C :
>> C = [5,2,-3,0,0;
C
2,5,2,-3,0;
-3,2,5,2,-3;
0,-3,2,5,2;
0,0-3,2,5]
=
5
2
-3
0
0
2
5
2
-3
0
-3
2
5
2
-3
0
-3
2
5
2
0
0
-3
2
5
Para obtener los coeficientes del polinomio caracterstico de C como nmeros racionales, empleamos las siguientes
instrucciones:
6
>> format(rat)
>> p = poly(C)
p
=
1
-25
207
-533
-682
3384
254 + 2073
5332
682 + 3384.
>> format(short)
>> eig(C)
ans =
-2.1041
4.000
4.8036
9.0000
9.3004
Los valores propios de C son
1 =
2.1041,
2 = 4,
3 = 4.8036,
4 = 9
5 = 9.3004.
i I5 )
para
i = 1, 2, 3, 4, 5.
Para hallar una base para cada espacio propio de C usamos la instruccin null(C - i *eye(5)), para i = 1, . . . , 5.
Debemos tener en cuenta que el valor propio no es exacto. Por tanto, para evitar que se generen espacios nulos
triviales, almacenamos los valores propios en un vector que llamaremos vp (nombre arbitrario) y extraemos cada
valor propio con la instruccin vp(i), para i = 1, . . . , 5.
>> vp = eig(C)
>> null(C-vp(2)*eye(5),r)
>> null(C-vp(4)*eye(5),r)
ans =
-1.0000
0.5000
0.0000
-0.5000
1.0000
ans =
-1.0000
-2.0000
-0.0000
2.0000
1.0000
>> null(C-vp(1)*eye(5),r)
>> null(C-vp(3)*eye(5),r)
>> null(C-vp(5)*eye(5),r)
ans =
ans =
ans =
>> vp(3)
ans =
4.8036
1.0000
-1.2388
1.5421
-1.2388
1.0000
1.0000
1.4493
1.0317
1.4493
1.0000
1.0000
-0.1453
-1.5303
-0.1453
1.0000
(c) Para hallar bases ortonormales para los espacios propios de C, usamos la instruccin
>> [P D] = eig(C)
P =
0.3664
-0.4539
0.5651
-0.4539
0.3664
-0.6325
0.3162
-0.0000
-0.3162
0.6325
-0.3710
-0.5377
-0.3828
0.5377
-0.3710
-0.3162
-0.6325
0.0000
0.6325
0.3162
-0.4776
0.0694
0.7309
0.0694
-0.4776
-2.1041
0
0
0
0
0
4.0000
0
0
0
0
0
4.8036
0
0
0
0
0
9.0000
0
0
0
0
0
9.3004
D =
Cada columna de P es un vector propio de C asociado al valor propio correspondiente a la misma columna de D.
Por ejemplo, una base ortonormal para el espacio propio asociado a 1 = 2.1041 es
82
39
0.3664
>
>
>
>
>
>
7>
>
0.4539
<6
6
7=
6 0.5651 7 .
6
7
>
>
>
4 0.4539 5>
>
>
>
>
:
;
0.3664
Ejercicio. Verifique que al normalizar cada una de las bases del paso (b) se obtiene las columnas de la matriz
P.