| 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
(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