Professional Documents
Culture Documents
*
Daniel Fernando Dı́az Pita
May 9, 2020
Ejercicios 1.8
1. Realice a mano y verifique con R los ejercicios 1, 2, 4, 5, 6, 7, 12 y 13, del capı́tulo 2 de Morrison (1990).
1.) Sean:
1 2 −1 3 2 −1 2 0
A = −1 3 −1 B= 2 3 1 C = −1 1
2 2 4 −1 1 3 3 2
Realiza las operaciones matriciales que son definidas:
> A=matrix(c(1,-1,2,2,3,2,-1,-1,4),ncol=3,nrow=3)
> B=matrix(c(3,2,-1,2,3,1,-1,1,3),ncol=3,nrow=3)
> c=matrix(c(2,-1,3,0,1,2),ncol=3,nrow=2)
i. A + B
> A+B
[,1] [,2] [,3]
[1,] 4 4 -2
[2,] 1 6 0
[3,] 1 3 7
ii. A − 2B
> A-2*B
[,1] [,2] [,3]
[1,] -5 -2 1
[2,] -5 -3 -3
[3,] 4 0 -2
t
iii. A + B
> t(A)+B
[,1] [,2] [,3]
[1,] 4 1 1
[2,] 4 6 3
[3,] -2 0 7
iv. A + C Como A ∈ M3×3 y C ∈ M3×2 la suma no esta definida.
v. (A + B)t
> t(A+B)
[,1] [,2] [,3]
[1,] 4 1 1
[2,] 4 6 3
[3,] -2 0 7
* dafdiazpi@unal.edu.co
1
vi. (3B t − 2B)t
> t(3*t(A)-(2*B))
[,1] [,2] [,3]
[1,] -3 2 -1
[2,] -7 3 -5
[3,] 8 4 6
2.) Si
1 2
3 2 1 1 2 12 −5 2
P = 2 5 −1 Q = 1 1 1
4 R =
3 −1
1 −1 3 1 2 12
−2 2
−1
1 2 −2
x = 0 y = 3 z =
−3
−1 2
−4
> P=matrix(c(3,2,1,2,5,-1,1,-1,3),3,3)
> Q=matrix(c(1,1,1,2,1,2,2,1,2,1,4,1),3,4)
> R=matrix(c(1,-5,3,-2,2,2,-1,2),4,2)
> x=c(1,0,-1)
> y=c(2,3,2)
> z=c(-1,-2,-3,-4)
Compute los productos que son definidos:
i. P Q
> P%*%Q
[,1] [,2] [,3] [,4]
[1,] 6 10 10 12
[2,] 6 7 7 21
[3,] 3 7 7 0
ii. P QR
> P%*%Q%*%R
[,1] [,2]
[1,] -38 46
[2,] -50 61
[3,] -11 13
iii. QRt
Producto no definido, Q ∈ M3×4 y Rt ∈ M2×4
iv. yxt
> y%*%t(x)
[,1] [,2] [,3]
[1,] 2 0 -2
[2,] 3 0 -3
[3,] 2 0 -2
v. xt y
> t(x)%*%y
[,1]
[1,] 0
2
vi. xt P x
> t(x)%*%P%*%x
[,1]
[1,] 4
vii. xt P y
> t(x)%*%P%*%y
[,1]
[1,] 9
viii. P (x + y)
> P%*%(x+y)
[,1]
[1,] 16
[2,] 20
[3,] 3
4.) Cual de la siguientes matrices son conmutativas bajo el producto de matrices.
3 1 0 1 1 1 3 0 0 2 1 0
A = 1 2 1 B = 1 1 1 C = 0 3 0D = 1 2 1
0 1 2 1 1 1 0 0 3 0 1 2
> A=matrix(c(3,1,0,1,2,1,0,1,2),3,3)
> B=matrix(c(1,1,1,1,1,1,1,1,1),3,3)
> C=matrix(c(3,0,0,0,3,0,0,0,3),3,3)
> D=matrix(c(2,1,0,1,2,1,0,1,2),3,3)
i. veamos el producto AB y BA 2
> A%*%B ;
[,1] [,2] [,3]
[1,] 4 4 4
[2,] 4 4 4
[3,] 3 3 3
> B%*%A
[,1] [,2] [,3]
[1,] 4 4 3
[2,] 4 4 3
[3,] 4 4 3
A y B no son conmutativas bajo el producto.
3
A y C son matrices conmutativas bajo el producto
v. veamos el producto BD y DB
2
> B%*%D ;
[,1] [,2] [,3]
[1,] 3 4 3
[2,] 3 4 3
[3,] 3 4 3
> D%*%B
[,1] [,2] [,3]
[1,] 3 3 3
[2,] 4 4 4
[3,] 3 3 3
B y D no son matrices conmutativas bajo el producto.
4
> D%*%C
[,1] [,2] [,3]
[1,] 6 3 0
[2,] 3 6 3
[3,] 0 3 6
C y D son matrices conmutativas bajo el producto.
5.) Calcule el determinante de las matrices usando el método mas conveniente.
4 2 0 1 0.8 0.5 5 0 0
(a)5 3 0 (b)0.8 1 0.6 (c)0 3 0
6 9 2 0.5 0.6 1 0 0 1
2 0 1 1 1
2 0 4 0
1 4 −1 0 3 0 5
0 2 3 3 3
(d) 3 12 −3
(e)
1 3 1 0 0
(f )
5 0 1 0
0 35 7 1 3 0 1 0
0 4 0 1
1 3 0 0 1
> a=matrix(c(4,5,6,2,3,9,0,0,2),3,3)
> b=matrix(c(1,0.8,0.5,0.8,1,0.6,0.5,0.6,1),3,3)
> c=matrix(c(5,0,0,0,3,0,0,0,1),3,3)
> d=matrix(c(1,3,0,4,12,35,-1,-3,7),3,3)
> e=matrix(c(2,0,5,0,0,3,0,4,4,0,1,0,0,5,0,1),4,4)
> f=matrix(c(2,0,1,1,1,0,2,3,3,3,1,3,1,0,0,1,3,0,1,0,1,3,0,0,1),5,5)
Calculemos su determinante:
2
> det(a);
[1] 4
> det(b);
[1] 0.23
> det(c);
[1] 15
> det(d);
[1] 0
> det(e);
[1] 306
> det(f)
[1] -56
6.) Calcule la inversa de estas matrices:
4 3 2 1
5 1 −2 a b b 5 0 0 0 3 2 1
(a) 2 6 3 (b) b a b (c)0 8 6 (f )
0
0 2 1
−1 0 3 b b a 0 6 5
0 0 0 1
> a=matrix(c(5,2,-1,1,6,0,-2,3,3),3,3)
> b1=matrix(c(a,b,b,b,a,b,b,b,a),3,3)
> c=matrix(c(5,0,0,0,8,6,0,6,5),3,3)
> d=matrix(c(4,0,0,0,3,3,0,0,2,2,2,0,1,1,1,1),4,4)
5
i. La matriz inversa de (a) es:
> round(solve(a),2)
[,1] [,2] [,3]
[1,] 0.26 -0.04 0.22
[2,] -0.13 0.19 -0.28
[3,] 0.09 -0.01 0.41
> a=matrix(c(1,1,1,1,0,1,-1,1,2,2,2,2,1,0,2,0),4,4)
> b=matrix(c(1,1,2,0,-1,1,2,0,1,3,2,1,3,-1,1,8,6,2,
+ 4,3,0,-5,-2,-3,5,1,1,3,3,0),5,5)
> library(fBasics) # Instalamos la libreria "fBasics" para usar la funcion rk()
El rango de las matrices es :
1 0 2 1 1 0 2 1
1
1 2 0 0
→ 1 0 −1
1 −1 2 2 0 0 0 0
1 1 2 0 0 0 0 0
> rk(a)
[1] 2
Es decir que (a) es de rango 2.
1 2 3 4 5 2 1 1 0 1
1 0 −1 3 1 0 3 8 −5 3
−3
13
2 1 1 0 1
→ 0 0 3
2 2
13 2
0
3 8 −5 3
0
0 0 9 3
−1 2 6 −2 3 0 0 0 0 0
1 1 2 −3 0 0 0 0 0 0
6
> rk(b)
[1] 5
Es decir que (b) es de rango 4.
12.) Identifique cuales de estos vectores son ortogonales o ortonormales, y calcule los ángulos de cada
par de vectores.
"√ √ #
1 1 1 1 2 2
t= , , , u = [1, 0, −1, 0] v= , 0, ,0
2 2 2 2 2 2
> t=c(1/2,1/2,1/2,1/2)
> u=c(1,0,-1,0)
> v=c(sqrt(2)/2,0,sqrt(2)/2,0)
>
>
Verifiquemos cuales son ortonomarles haciendo el producto punto con ellos mismo.
3
> t(t)%*%t;
[,1]
[1,] 1
> t(u)%*%u;
[,1]
[1,] 2
> t(v)%*%v
[,1]
[1,] 1
De lo anterior podemos decir que t, u son vectores ortonormales.
Ahora veamos si son ortogonales entre ellos.
i. Entre t y u
> t(t)%*%u
[,1]
[1,] 0
> # El angulo formado en radianes
> acos((t(t)%*%u)/(sum(t*t)^0.5)*(sum(u*u)^0.5))
[,1]
[1,] 1.570796
> # Convertimos radianes a grados.
> rad2deg(acos(((t(t)%*%u))/((sum(t*t)^0.5)*(sum(u*u)^0.5))))
[,1]
[1,] 90
vemos que el angulo formado entre los vectores t y u es de 90 grados, es decir, los vectores son
ortogonales entre ellos.
ii. Entre t y v
7
> t(t)%*%v
[,1]
[1,] 0.7071068
> cos((t(t)%*%v)/(sum(t*t)^0.5)*(sum(v*v)^0.5))
[,1]
[1,] 0.7602446
> rad2deg(acos(((t(t)%*%v))/((sum(t*t)^0.5)*(sum(v*v)^0.5))))
[,1]
[1,] 45
Es decir que el angulo que forman los vectores t y v es de 45 grados, por lo tanto no son
ortogonales entre ellos.
iii. Entre u y v
> t(u)%*%v
[,1]
[1,] 0
> cos((t(u)%*%v)/(sum(u*u)^0.5)*(sum(v*v)^0.5))
[,1]
[1,] 1
> rad2deg(acos(((t(u)%*%v))/((sum(u*u)^0.5)*(sum(v*v)^0.5))))
[,1]
[1,] 90
El angulo formado por u y v es de 90 grados, por lo tanto los vectores son ortogonales entre
ellos.
NOTA en este punto se utiliza la función rad2deg para convertir los radianes a grados, esta
se define como
> rad2deg<-function(rad) {(rad * 180) / (pi)}
13.) Verifique que la siguiente matriz es ortogonal.
√
3 1
0√
2√2 √2
6
− √4 −√ 22
√4
− 22 4
6
2
2
Para verificarlo vamos a utilizar una propiedad de las matrices ortogonales que dice que si Q es
una matriz ortogonal entonces Qt = Q−1 y QQt = QQ−1 = I.
> Q=matrix(c(sqrt(3)/2,-sqrt(2)/4,-sqrt(2)/4,1/2,sqrt(6)/4,sqrt(6)/4,0,
+ -sqrt(2)/2,sqrt(2)/2),3,3)
Veamos si la Matriz cumple la propiedad.
> round(Q%*%t(Q))
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 0 1 0
[3,] 0 0 1
8
2. Instale R y a partir del manual de introducción conteste
(a) ¿En R hay diferencia entre mayúsculas y minúsculas?
Si, R es un lenguaje de expresiones con sintaxis simple por lo cual A es diferente de a.
(i) ¿Cuáles son los sı́mbolos de comparación en R: menor que, menor o igual, mayor, mayor o igual,
igual y diferente?
< : Menor que
<= : Menor o igual
> : Mayor que
>= : Mayor o igual
== : Igual
!= : Diferente
9
(l) ¿Cuáles son los principales objetos de R?
Los vectores son los objetos principales.
3. Escriba para cada instrucción un comentario resumiendo lo que hace cada función:
(a) >help.start() : Permite el acceso a paginas de ayuda en formato HTLM con hiperlinks, contiene
listas de conceptos de alto nivel.
(c) >misdatos <-read.table(’data.dat’) : Crea un data frame desde un archivo externo en formato de
tabla llamado ”data.dat”
(d) >L2 <- list(A=x, B=y) : Crea una lista con los dos vectores
(e) ts(1:47, frequency = 12, start = c(1959, 2)) : Crea una serie de tiempo
(g) >x <- rpois(40, lambda=5) : Calcula la distribución de densidad de Poisson con el parámetro
lambda el cual es el vector de medias.
(h) >x[x%%2==0] : Sacalos elementos del vector x que cumplen la condición, ser divisible por y con
residuo 0, es decir, los pares.
(i) >x <- rnorm(50) : Genera una distribución normal con 50 cuartiles.
4. Suponga que usted es la consola de R. Responda al frente a cada uno de los comandos:
(a) >0/0
> 0/0
[1] NaN
Not a Number
10
(c) >c(”x”,”y”)[rep(c(1,2,2,1), times=4)] :
> c("x","y")[rep(c(1,2,2,1), times=4)]
[1] "x" "y" "y" "x" "x" "y" "y" "x" "x" "y" "y" "x" "x" "y" "y" "x"
(d) >ls() :
> ls()
[1] "a" "A" "b" "B" "b1" "c" "C"
[8] "d" "D" "e" "f" "labs" "P" "Q"
[15] "R" "rad2deg" "t" "u" "v" "x" "y"
[22] "z"
Da la lista de objetos en el workspace, en esta salen los objetos que se usaron en este documento.
(e) >apropos(”eigen”):
> apropos("eigen")
[1] "eigen" "print.eigen"
Da un vector de caracteres que da los posibles resultados a la búsqueda.
11