title: “taller1”
author: “Andres Peraza A”
date: “10/6/2021”
output: html_document

Primer archivo en Markdown

(1)

x<-c(5, 1, 3)
xt <- t(x)

xt
##      [,1] [,2] [,3]
## [1,]    5    1    3
y<-c(-1, 3, 1)

yt<- t(y)
yt
##      [,1] [,2] [,3]
## [1,]   -1    3    1
library(scatterplot3d)
library(plot3D)
x <- c(-5,10)
y <- c(0,5)
z <- c(0,5)
s <- scatterplot3d(x,y,z, color = "white",main = "Ejercicio uno",cex.axis = 0.7,pch = 16,
                    col.grid ="grey", lty.grid = 3, box=FALSE, xlab = "X",ylab = "Y",zlab ="Z", cex.lab = 1 )
pv1 <- s$xyz.convert(0,0,0)
x1<-c(5, 1, 3)
x1xyz <- s$xyz.convert(x1[1],x1[2],x1[3])
A1 <- s$xyz.convert(x1[1],0,0)
A2 <- s$xyz.convert(x1[1],x1[2],0)                 
segments(A1$x,A1$y,A2$x,A2$y,, col ="salmon")
B1 <- s$xyz.convert(0,x1[2],0)
B2 <- s$xyz.convert(x1[1],x1[2],0)
segments(B1$x,B1$y,B2$x, B2$y, col ="salmon")
C1 <- s$xyz.convert(x1[1],x1[2],0)
C2 <- s$xyz.convert(x1[1],x1[2],x1[3])
segments(C1$x,C1$y,C2$x, C2$y, col ="salmon")
arrows2D(pv1$x,pv1$y,x1xyz$x,x1xyz$y,lwd=2, col="light coral", add= T)

pv1 <- s$xyz.convert(0,0,0)
y1<-c(-1, 3, 1)
y1xyz <- s$xyz.convert(y1[1],y1[2],y1[3])
D1 <- s$xyz.convert(y1[1],0,0)
D2 <- s$xyz.convert(y1[1],y1[2],0)                 
segments(D1$x,D1$y,D2$x,D2$y, col ="skyblue 3")
E1 <- s$xyz.convert(0,y1[2],0)
E2 <- s$xyz.convert(y1[1],y1[2],0)
segments(E1$x,E1$y,E2$x, E2$y, col ="skyblue 3")
F1 <- s$xyz.convert(y1[1],y1[2],0)
F2 <- s$xyz.convert(y1[1],y1[2],y1[3])
segments(F1$x,F1$y,F2$x, F2$y, col ="skyblue 3 ")
arrows2D(pv1$x,pv1$y,y1xyz$x,y1xyz$y,lwd=2, col="steelblue",add= T)

1b Longitud o magnitud de un vector (suma al cuadrado de las componentes)

normax= sqrt((x1[1]^2)+(x1[2]^2)+(x1[3]^2))
normax
## [1] 5.91608
normay=sqrt((y1[1]^2)+(y1[2]^2)+(y1[3]^2))
normay
## [1] 3.316625

Angulo entre los dos vectores

#x1*y1
producto <-((x1[1]*y[1])+(x1[2]* y1[2])+(x1[3]*y1[3]))
producto
## [1] 6
calculo <- (producto)/(normax*normay)
calculo
## [1] 0.3057883
angulo <- acos(calculo)
(angulo*180)/pi
## [1] 72.1944

1c

x <- c(3,-5)
y <- c(5,-3)
z <- c(0,0)
s <- scatterplot3d(x,y,z,grid=2,tick.marks = T ,color = "white",main = "Ejercicio uno C",label.tick.marks = T, cex.axis = 0.7,pch = 16,
                   col.grid ="grey", lty.grid = 3, box=FALSE, xlab = "X",ylab = "Y",zlab ="Z", angle= 90,cex.lab = 1 )

ori<- s$xyz.convert(3,1,0)
x2<-c(2, -2, 0)
x2p <- s$xyz.convert(x2[1],x2[2],x2[3])
G1 <- s$xyz.convert(x2[1],0,0)
G2 <- s$xyz.convert(x2[1],x2[2],0)                 
segments(G1$x,G1$y,G2$x,G2$y,, col ="salmon")
H1 <- s$xyz.convert(0,x2[2],0)
H2 <- s$xyz.convert(x2[1],x2[2],0)
segments(H1$x,H1$y,H2$x, H2$y, col ="salmon")
I1 <- s$xyz.convert(x2[1],x2[2],0)
I2 <- s$xyz.convert(x2[1],x2[2],x2[3])
segments(I1$x,I1$y,I2$x, I2$y, col ="salmon")
arrows2D(ori$x,ori$y,x2p$x,x2p$y,lwd=2, col="light coral", add= T)


y2<-c(-2, 2, 0)
y2p<- s$xyz.convert(y2[1],y2[2],y2[3])
J1 <- s$xyz.convert(y2[1],0,0)
J2 <- s$xyz.convert(y2[1],y2[2],0)                 
segments(J1$x,J1$y,J2$x,J2$y, col ="skyblue 3")
K1 <- s$xyz.convert(0,y2[2],0)
K2 <- s$xyz.convert(y2[1],y2[2],0)
segments(K1$x,K1$y,K2$x, K2$y, col ="skyblue 3")
L1 <- s$xyz.convert(y2[1],y2[2],0)
L2 <- s$xyz.convert(y2[1],y2[2],y2[3])
segments(L1$x,L1$y,L2$x, L2$y, col ="skyblue 3 ")
arrows2D(ori$x,ori$y,y2p$x,y2p$y,lwd=2, col="steelblue",add= T)

(2) Forma de matriz (filas x columnas)**

matriz A

A <- matrix(c(-1,4,3,2),ncol = 2,nrow = 2, byrow = F)
A
##      [,1] [,2]
## [1,]   -1    3
## [2,]    4    2

matriz B

B<- matrix(c(4,1,-2,-3,-2,0),ncol= 2,nrow = 3, byrow = F)
B
##      [,1] [,2]
## [1,]    4   -3
## [2,]    1   -2
## [3,]   -2    0

matriz C

C<- matrix(c(5,-4,2),ncol= 1,nrow = 3, byrow = F)
C
##      [,1]
## [1,]    5
## [2,]   -4
## [3,]    2

a)5A

A5= 5*A
A5
##      [,1] [,2]
## [1,]   -5   15
## [2,]   20   10

(b)BA

Se pueden multiplicar porque el número de columnas de B coincide con el número de filas de A*

BA=B%*%A
BA
##      [,1] [,2]
## [1,]  -16    6
## [2,]   -9   -1
## [3,]    2   -6

(c) Editor de Latex https://www.codecogs.com/latex/eqneditor.php?lang=es-es \[ A^{T}* B^{T} \]

AT= t(A)
AT
##      [,1] [,2]
## [1,]   -1    4
## [2,]    3    2
BT= t(B)
BT
##      [,1] [,2] [,3]
## [1,]    4    1   -2
## [2,]   -3   -2    0
prod.ATBT= AT%*%BT
prod.ATBT
##      [,1] [,2] [,3]
## [1,]  -16   -9    2
## [2,]    6   -1   -6

(d) \[ C^{T}* B \]

CT=t(C)
CTB=CT%*%B
CTB
##      [,1] [,2]
## [1,]   12   -7

(e) ES AB DEFINIDO? AB no es una matriz conformable por que el número de A no incide con el número de filas de B, por lo que no es posible decir si es una matriz definida

(3) Matriz A

A3 <- matrix(c(2,1,1,3),ncol = 2,nrow = 2, byrow = F)
A3
##      [,1] [,2]
## [1,]    2    1
## [2,]    1    3

Matriz B

B3<- matrix(c(1,5,4,0,2,3),ncol= 3,nrow = 2, byrow = F)
B3
##      [,1] [,2] [,3]
## [1,]    1    4    2
## [2,]    5    0    3

Matriz C

C3<- matrix(c(1,3,4,2),ncol= 2,nrow = 2, byrow = F)
C3
##      [,1] [,2]
## [1,]    1    4
## [2,]    3    2

(3a) \[ (A^{T})^{T}=A \]

AT=t(A3)
AT
##      [,1] [,2]
## [1,]    2    1
## [2,]    1    3
ATT=t(AT)
ATT
##      [,1] [,2]
## [1,]    2    1
## [2,]    1    3

la matriz es simétrica con valores similares por lo que en este caso se puede decir que la expresión es verdadera

(3b) \[ (C^{T})^{-1}=\left ( C^{-1} \right )^{T} \] la inversa de la transpuesta

CT=t(C3)
CT
##      [,1] [,2]
## [1,]    1    3
## [2,]    4    2
CTIn <- solve(CT)
CTIn
##      [,1] [,2]
## [1,] -0.2  0.3
## [2,]  0.4 -0.1
CIn <- solve(C3)
CIn
##      [,1] [,2]
## [1,] -0.2  0.4
## [2,]  0.3 -0.1
CInT= t(CIn)
CInT
##      [,1] [,2]
## [1,] -0.2  0.3
## [2,]  0.4 -0.1

Las matrices CTIn y CInT son iguales

#(c) $$ (AB){T}=B{T}*A^{T}

$$

B3A3=A3%*%B3
B3A3
##      [,1] [,2] [,3]
## [1,]    7    8    7
## [2,]   16    4   11
TB3A3=t(B3A3)
TB3A3
##      [,1] [,2]
## [1,]    7   16
## [2,]    8    4
## [3,]    7   11
TB3=t(B3)
TA3=t(A3)
TB3TA3=TB3%*%TA3
TB3TA3
##      [,1] [,2]
## [1,]    7   16
## [2,]    8    4
## [3,]    7   11

Las matrices TB3A3 yTB3TA3 son iguales

(4)

Matriz A

AIn <- solve(A3)
AIn
##      [,1] [,2]
## [1,]  0.6 -0.2
## [2,] -0.2  0.4

Matriz B La matriz B no es una matriz cuadrada por lo que no tiene inversa

(a) \[ (A^{T})^{-1}=\left ( A^{-1} \right )^{T} \]

AT=t(A3)
AT
##      [,1] [,2]
## [1,]    2    1
## [2,]    1    3
ATIn <- solve(AT)
ATIn
##      [,1] [,2]
## [1,]  0.6 -0.2
## [2,] -0.2  0.4
AIn <- solve(A3)
AInT=t(AIn)
AInT
##      [,1] [,2]
## [1,]  0.6 -0.2
## [2,] -0.2  0.4

Las matrices ATIn y AInT son iguales

(5) Una matriz ortogonal es una matriz cuadrada con números reales que multiplicada por su traspuesta es igual a la matriz Identidad.

Q <- matrix(c(5/13,-12/13,12/13,5/13),ncol = 2,nrow = 2, byrow = F)
Q
##            [,1]      [,2]
## [1,]  0.3846154 0.9230769
## [2,] -0.9230769 0.3846154
TQ= t(Q)
TQ
##           [,1]       [,2]
## [1,] 0.3846154 -0.9230769
## [2,] 0.9230769  0.3846154
ID= Q%*%TQ
ID
##      [,1] [,2]
## [1,]    1    0
## [2,]    0    1

La multiplicación confirma que la matriz es ortogonal (6)

A6 <- matrix(c(9,-2,-2,6),ncol = 2,nrow = 2, byrow = F)
A6
##      [,1] [,2]
## [1,]    9   -2
## [2,]   -2    6
AT6= t(A6)
AT6
##      [,1] [,2]
## [1,]    9   -2
## [2,]   -2    6
  1. la matriz es cuadrada y simétrica por que es igual a la matriz transpuesta al tener los mismo valores en la columna i que en la fila j

(b)

X1 <- matrix(c(2,3),ncol = 1,nrow = 2, byrow = F)
X1
##      [,1]
## [1,]    2
## [2,]    3
X1T =t(X1)
X1T
##      [,1] [,2]
## [1,]    2    3
X2<- matrix(c(0,3),ncol = 1,nrow =2, byrow = F)
X2T=t(X2)

X3<- matrix(c(-2,-2),ncol = 1,nrow =2, byrow = F)
X3T=t(X3)

caso 1

A6S= (X1T%*%A6)%*%X1
A6S
##      [,1]
## [1,]   66

caso 2

A6s2=(X2T%*%A6)%*%X2
A6s2
##      [,1]
## [1,]   54

caso 3

A6s3=(X3T%*%A6)%*%X3
A6s3
##      [,1]
## [1,]   44

Determinante diferente de 0

det(A6)
## [1] 50

Con los resultados de los tres casos planteados se encuentra valores positivos para cualquier x diferente de cero y con un determinante positivo la matriz cuadrática se define que la matriz es definida positiva

(7) El valor propio (auto valor o eigenvalue) El vector propio (auto vector o eigenvector)

La traza de la matriz ( suma de la diagonal)es igual a la suma de todos los valores propios

El producto de todos los valores propios es igual al determinante de la matriz

(a)

A7 <- matrix(c(9,-2,-2,6),ncol = 2,nrow = 2, byrow = F)
A7
##      [,1] [,2]
## [1,]    9   -2
## [2,]   -2    6
eigenva <- eigen(A7)$values
eigenva
## [1] 10  5
eigenvec<- eigen(A7)$vector
eigenvec
##            [,1]       [,2]
## [1,] -0.8944272 -0.4472136
## [2,]  0.4472136 -0.8944272

(b) Inversa

A7INV <- solve(A7)
A7INV
##      [,1] [,2]
## [1,] 0.12 0.04
## [2,] 0.04 0.18

(c) Autovalores y Autovectores

eigenvaA7INV <- eigen(A7INV)$values
eigenvaA7INV
## [1] 0.2 0.1
eigenvecA7INV<- eigen(A7INV)$vector
eigenvecA7INV
##           [,1]       [,2]
## [1,] 0.4472136 -0.8944272
## [2,] 0.8944272  0.4472136

(8) (a)

A8 <- matrix(c(1,2,2,-2),ncol = 2,nrow = 2, byrow = F)
A8
##      [,1] [,2]
## [1,]    1    2
## [2,]    2   -2
A8Inv <- solve(A8)
A8Inv
##           [,1]       [,2]
## [1,] 0.3333333  0.3333333
## [2,] 0.3333333 -0.1666667

otras funciones para determinar la inversa de una matriz

library(matlib)
inv(A8)
##           [,1]       [,2]
## [1,] 0.3333333  0.3333333
## [2,] 0.3333333 -0.1666667
library(MASS) 
GA8 <- ginv(A8)
GA8
##           [,1]       [,2]
## [1,] 0.3333333  0.3333333
## [2,] 0.3333333 -0.1666667

(b)

eigenvaA8Inv <- eigen(A8Inv)$values
eigenvaA8Inv
## [1]  0.5000000 -0.3333333
eigenvecA8Inv<- eigen(A8Inv)$vector
eigenvecA8Inv
##            [,1]       [,2]
## [1,] -0.8944272  0.4472136
## [2,] -0.4472136 -0.8944272

(10)

A10 <- matrix(c(4,4.001,4.001,4.002),ncol = 2,nrow = 2, byrow = F)
A10
##       [,1]  [,2]
## [1,] 4.000 4.001
## [2,] 4.001 4.002
B10 <- matrix(c(4,4.001,4.001,4.002001),ncol = 2,nrow = 2, byrow = F)
B10
##       [,1]     [,2]
## [1,] 4.000 4.001000
## [2,] 4.001 4.002001
INVA10 <- solve(A10)
INVA10
##          [,1]     [,2]
## [1,] -4002000  4001000
## [2,]  4001000 -4000000
INVB10 <- solve(B10)
INVB10
##          [,1]     [,2]
## [1,]  1334000 -1333667
## [2,] -1333667  1333333
INVB10P3 <- -3*INVB10
INVB10P3
##          [,1]     [,2]
## [1,] -4002001  4001000
## [2,]  4001000 -4000000
INVA10/INVB10P3
##           [,1] [,2]
## [1,] 0.9999997    1
## [2,] 1.0000000    1
ifelse((INVA10)==(INVB10P3),T,F) 
##       [,1]  [,2]
## [1,] FALSE FALSE
## [2,] FALSE FALSE
ifelse(round(INVA10,digits=2) == round(INVB10P3, digits=2),T,F) 
##       [,1]  [,2]
## [1,] FALSE FALSE
## [2,] FALSE FALSE

Se demuestra que los decimales son importantes en los cálculos con matrices y su redondeo pueden resultar en resultados erróneos

(11)

El determinante de una matriz diagonal es igual al producto de los elementos de su diagonal

x <- c(-2,6,4,2)

DX <- diag(x,ncol = 4,nrow = 4)
DX
##      [,1] [,2] [,3] [,4]
## [1,]   -2    0    0    0
## [2,]    0    6    0    0
## [3,]    0    0    4    0
## [4,]    0    0    0    2
DiagProd <- (DX[1,1]*DX[2,2]*DX[3,3]*DX[4,4])
DiagProd
## [1] -96
DXDET <- det(DX)
DXDET
## [1] -96
DiagProd/DXDET
## [1] 1
ifelse(round(DiagProd)== round(DXDET),T,F) 
## [1] TRUE

(12)

x1 <-c(1,2,3) 
x2 <-c(2,1,2)
x3 <-c(3,2,1)
A12 <- cbind(x1,x2,x3)
A12
##      x1 x2 x3
## [1,]  1  2  3
## [2,]  2  1  2
## [3,]  3  2  1
DETA12 <- Det(A12)


evalueA12<-  eigen(A12)$values

evalueA12
## [1]  5.7015621 -0.7015621 -2.0000000
prodevalueA12<- prod(evalueA12)
prodevalueA12
## [1] 8
ifelse(round(DETA12)== round(prodevalueA12),T,F) 
## [1] TRUE

(14) (a) \[\sum ^{-1}\]

x1 <-c(4,0,0) 
x2 <-c(0,9,0)
x3 <-c(0,0,1)
z<- cbind(x1,x2,x3)
z
##      x1 x2 x3
## [1,]  4  0  0
## [2,]  0  9  0
## [3,]  0  0  1
zinv <- solve(z)
zinv
##    [,1]      [,2] [,3]
## x1 0.25 0.0000000    0
## x2 0.00 0.1111111    0
## x3 0.00 0.0000000    1

(b)

eigenvz <- eigen(z)$values
eigenvz
## [1] 9 4 1
eigenVTz <- eigen(z)$vector
eigenVTz
##      [,1] [,2] [,3]
## [1,]    0    1    0
## [2,]    1    0    0
## [3,]    0    0    1

(c)

eigenvzinv <- eigen(zinv)$values
eigenvzinv
## [1] 1.0000000 0.2500000 0.1111111
eigenVTzinv <- eigen(z)$vector
eigenVTzinv
##      [,1] [,2] [,3]
## [1,]    0    1    0
## [2,]    1    0    0
## [3,]    0    0    1

16

x11 <-c(1,-2,3) 
x12 <-c(2,3,1)
x13 <-c(-3,1,2)
A16<- cbind(x11,x12,x13)
A16
##      x11 x12 x13
## [1,]   1   2  -3
## [2,]  -2   3   1
## [3,]   3   1   2
y11 <-c(1,0,2) 
y12 <-c(0,1,2)
y13 <-c(1,2,0)
B16<- cbind(y11,y12,y13)
B16
##      y11 y12 y13
## [1,]   1   0   1
## [2,]   0   1   2
## [3,]   2   2   0
Prod01 <- A16%*%B16

Prod02 <- B16%*%A16

ifelse((Prod01)!=(Prod02),T,F) 
##       y11   y12  y13
## [1,] TRUE  TRUE TRUE
## [2,] TRUE FALSE TRUE
## [3,] TRUE  TRUE TRUE

17

A17 <- matrix(c(2, -1,1,-2,3,-2,-4,4,-3),ncol = 3,nrow = 3, byrow =F)

A17
##      [,1] [,2] [,3]
## [1,]    2   -2   -4
## [2,]   -1    3    4
## [3,]    1   -2   -3

Una matriz idempotente es aquella que Que tiene la propiedad de que al multiplicarse por sí mismo vuelve a obtenerse el mismo elemento

por lo tanto la matrix dada cumple con la condición de acuerdo a la siguiente expresión

AA <- A17%*%A17
ifelse((AA)==(A17),T,F) 
##      [,1] [,2] [,3]
## [1,] TRUE TRUE TRUE
## [2,] TRUE TRUE TRUE
## [3,] TRUE TRUE TRUE

18

A18 <- matrix(c(12,8,8,12,5,6,3,4,-3,4,-1,2,2,6,-1,4),ncol = 4,nrow = 4, byrow =F)
A18
##      [,1] [,2] [,3] [,4]
## [1,]   12    5   -3    2
## [2,]    8    6    4    6
## [3,]    8    3   -1   -1
## [4,]   12    4    2    4
DetA18 <- det(A18)
DetA18
## [1] 616

19 El determinante del producto de dos matrices es igual al producto de los determinantes de cada matriz

A19 <- matrix(c(1,2,3,2,4,1,1,6,2),ncol = 3,nrow = 3, byrow =F)
A19
##      [,1] [,2] [,3]
## [1,]    1    2    1
## [2,]    2    4    6
## [3,]    3    1    2
B19 <- matrix(c(-1,2,3,2,-1,4,-3,4,1),ncol = 3,nrow = 3, byrow =F)
B19
##      [,1] [,2] [,3]
## [1,]   -1    2   -3
## [2,]    2   -1    4
## [3,]    3    4    1
detAB <- det(A19%*%B19)
detAB
## [1] 80
detC <- det(A19)*det(B19)
detC
## [1] 80

20

A20 <- matrix(c(-1,4,4,2,-3,-4,-2,4,5),ncol = 3,nrow = 3, byrow =F)
A20
##      [,1] [,2] [,3]
## [1,]   -1    2   -2
## [2,]    4   -3    4
## [3,]    4   -4    5
A20inv <- solve(A20)
A20inv
##      [,1] [,2] [,3]
## [1,]   -1    2   -2
## [2,]    4   -3    4
## [3,]    4   -4    5
Id=A20%*%A20inv
Id
##      [,1] [,2] [,3]
## [1,]    1    0    0
## [2,]    0    1    0
## [3,]    0    0    1

La Matriz A es una matriz ortogonal

21

A21 <- matrix(c(1,2,1,-1,-1,0,1,0,1),ncol = 3,nrow = 3, byrow =F)
A21
##      [,1] [,2] [,3]
## [1,]    1   -1    1
## [2,]    2   -1    0
## [3,]    1    0    1
A212=A^2
A212
##      [,1] [,2]
## [1,]    1    9
## [2,]   16    4
A21inv=solve(A21)
A21inv
##      [,1] [,2] [,3]
## [1,] -0.5  0.5  0.5
## [2,] -1.0  0.0  1.0
## [3,]  0.5 -0.5  0.5
A213= A21%*%A21
A213
##      [,1] [,2] [,3]
## [1,]    0    0    2
## [2,]    0   -1    2
## [3,]    2   -1    2

\[ A^{2}\neq A^{-1} \] 22

A22 <- matrix(c(2,1,3,1,1,2,3,-1,3,-1,2,4,1,4,5,-3),ncol = 4,nrow = 4, byrow =F)
A22
##      [,1] [,2] [,3] [,4]
## [1,]    2    1    3    1
## [2,]    1    2   -1    4
## [3,]    3    3    2    5
## [4,]    1   -1    4   -3
det(A22)
## [1] 0

La matriz A22 no tiene inversa porque el determinate es 0

qr(A22)$rank
## [1] 2

23

A23 <- matrix(c(1,2,3,1,-3,2,-1,4,3),ncol = 3,nrow = 3, byrow =F)
A23
##      [,1] [,2] [,3]
## [1,]    1    1   -1
## [2,]    2   -3    4
## [3,]    3    2    3
B23<- matrix(c(-1,6,5,-1,12,10,-1,6,5),ncol = 3,nrow = 3, byrow =F)
B23
##      [,1] [,2] [,3]
## [1,]   -1   -1   -1
## [2,]    6   12    6
## [3,]    5   10    5
AB23 <- A23%*%B23
BA23 <- B23%*%A23
qr(AB23)$rank==qr(BA23)$rank
## [1] TRUE

\[ La \:razon \:\: _{r}\left ( AB \right ) \neq \: _{r}\left ( BA \right ) \: es \:falsa \]

24

i24<- matrix(c(6,4,10,16,1,2,3,4,3,6,9,12,8,-1,7,15),ncol =4,nrow =4, byrow =F)
i24
##      [,1] [,2] [,3] [,4]
## [1,]    6    1    3    8
## [2,]    4    2    6   -1
## [3,]   10    3    9    7
## [4,]   16    4   12   15
qr(i24)$rank
## [1] 2
ii24<- matrix(c(1,2,5,2,3,8,3,4,11,4,5,14,5,1,7),ncol =5,nrow =3, byrow =F)
ii24
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    2    3    4    5
## [2,]    2    3    4    5    1
## [3,]    5    8   11   14    7
qr(ii24)$rank
## [1] 2

25

A25<- matrix(c(1,2,3,6,2,4),ncol =3,nrow =2, byrow =F)
A25
##      [,1] [,2] [,3]
## [1,]    1    3    2
## [2,]    2    6    4
g1 <- matrix(c(1,0,0,0,0,0),ncol =2,nrow =3, byrow =F)
g2 <- matrix(c(-42,5,2,-1,3,2),ncol =2,nrow =3, byrow =F)

A25%*%g1%*%A25==A25 
##      [,1] [,2] [,3]
## [1,] TRUE TRUE TRUE
## [2,] TRUE TRUE TRUE
# g1 es una matriz generalizada de A25

A25%*%g2%*%A25==A25 
##      [,1] [,2] [,3]
## [1,] TRUE TRUE TRUE
## [2,] TRUE TRUE TRUE
# g2 es una matriz generalizada de A25