library(matlib)
G <- matrix(c(1,2,3,2), nrow = 2, ncol = 2)
H <- c(4, 5)
G
##      [,1] [,2]
## [1,]    1    3
## [2,]    2    2
H
## [1] 4 5
solve(G, H)
## [1] 1.75 0.75
plotEqn(G, H)
##   x[1] + 3*x[2]  =  4 
## 2*x[1] + 2*x[2]  =  5

a <- matrix(c(0, -2, -1, 2, 2, 4, 3, -2, 3), nrow = 3, ncol = 3)
b <- c(6, -1, 2)
a
##      [,1] [,2] [,3]
## [1,]    0    2    3
## [2,]   -2    2   -2
## [3,]   -1    4    3
b
## [1]  6 -1  2
solve(a, b)
## [1] -29.0 -16.5  13.0
plotEqn3d(a, b)
C <- matrix(c(0, 9, 4, 4, 5, 7, 3, 8,6, 6, 0, 4, 7, 7, 5, 12), 4, 4)
D <- c(-9, -7, -3, 0)
C
##      [,1] [,2] [,3] [,4]
## [1,]    0    5    6    7
## [2,]    9    7    6    7
## [3,]    4    3    0    5
## [4,]    4    8    4   12
D
## [1] -9 -7 -3  0
showEqn(C, D)
## 0*x1 + 5*x2 + 6*x3  + 7*x4  =  -9 
## 9*x1 + 7*x2 + 6*x3  + 7*x4  =  -7 
## 4*x1 + 3*x2 + 0*x3  + 5*x4  =  -3 
## 4*x1 + 8*x2 + 4*x3 + 12*x4  =   0
echelon(C, D, verbose=TRUE, fractions=TRUE)
## 
## Initial matrix:
##      [,1] [,2] [,3] [,4] [,5]
## [1,]  0    5    6    7   -9  
## [2,]  9    7    6    7   -7  
## [3,]  4    3    0    5   -3  
## [4,]  4    8    4   12    0  
## 
## row: 1 
## 
##  exchange rows 1 and 2 
##      [,1] [,2] [,3] [,4] [,5]
## [1,]  9    7    6    7   -7  
## [2,]  0    5    6    7   -9  
## [3,]  4    3    0    5   -3  
## [4,]  4    8    4   12    0  
## 
##  multiply row 1 by 1/9 
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1  7/9  2/3  7/9 -7/9
## [2,]    0    5    6    7   -9
## [3,]    4    3    0    5   -3
## [4,]    4    8    4   12    0
## 
##  multiply row 1 by 4 and subtract from row 3 
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1  7/9  2/3  7/9 -7/9
## [2,]    0    5    6    7   -9
## [3,]    0 -1/9 -8/3 17/9  1/9
## [4,]    4    8    4   12    0
## 
##  multiply row 1 by 4 and subtract from row 4 
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1  7/9  2/3  7/9 -7/9
## [2,]    0    5    6    7   -9
## [3,]    0 -1/9 -8/3 17/9  1/9
## [4,]    0 44/9  4/3 80/9 28/9
## 
## row: 2 
## 
##  multiply row 2 by 1/5 
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1  7/9  2/3  7/9 -7/9
## [2,]    0    1  6/5  7/5 -9/5
## [3,]    0 -1/9 -8/3 17/9  1/9
## [4,]    0 44/9  4/3 80/9 28/9
## 
##  multiply row 2 by 7/9 and subtract from row 1 
##      [,1]   [,2]   [,3]   [,4]   [,5]  
## [1,]      1      0  -4/15 -14/45  28/45
## [2,]      0      1    6/5    7/5   -9/5
## [3,]      0   -1/9   -8/3   17/9    1/9
## [4,]      0   44/9    4/3   80/9   28/9
## 
##  multiply row 2 by 1/9 and add to row 3 
##      [,1]   [,2]   [,3]   [,4]   [,5]  
## [1,]      1      0  -4/15 -14/45  28/45
## [2,]      0      1    6/5    7/5   -9/5
## [3,]      0      0 -38/15  92/45  -4/45
## [4,]      0   44/9    4/3   80/9   28/9
## 
##  multiply row 2 by 44/9 and subtract from row 4 
##      [,1]   [,2]   [,3]   [,4]   [,5]  
## [1,]      1      0  -4/15 -14/45  28/45
## [2,]      0      1    6/5    7/5   -9/5
## [3,]      0      0 -38/15  92/45  -4/45
## [4,]      0      0 -68/15  92/45 536/45
## 
## row: 3 
## 
##  exchange rows 3 and 4 
##      [,1]   [,2]   [,3]   [,4]   [,5]  
## [1,]      1      0  -4/15 -14/45  28/45
## [2,]      0      1    6/5    7/5   -9/5
## [3,]      0      0 -68/15  92/45 536/45
## [4,]      0      0 -38/15  92/45  -4/45
## 
##  multiply row 3 by -15/68 
##      [,1]    [,2]    [,3]    [,4]    [,5]   
## [1,]       1       0   -4/15  -14/45   28/45
## [2,]       0       1     6/5     7/5    -9/5
## [3,]       0       0       1  -23/51 -134/51
## [4,]       0       0  -38/15   92/45   -4/45
## 
##  multiply row 3 by 4/15 and add to row 1 
##      [,1]    [,2]    [,3]    [,4]    [,5]   
## [1,]       1       0       0  -22/51   -4/51
## [2,]       0       1     6/5     7/5    -9/5
## [3,]       0       0       1  -23/51 -134/51
## [4,]       0       0  -38/15   92/45   -4/45
## 
##  multiply row 3 by 6/5 and subtract from row 2 
##      [,1]    [,2]    [,3]    [,4]    [,5]   
## [1,]       1       0       0  -22/51   -4/51
## [2,]       0       1       0   33/17   23/17
## [3,]       0       0       1  -23/51 -134/51
## [4,]       0       0  -38/15   92/45   -4/45
## 
##  multiply row 3 by 38/15 and add to row 4 
##      [,1]    [,2]    [,3]    [,4]    [,5]   
## [1,]       1       0       0  -22/51   -4/51
## [2,]       0       1       0   33/17   23/17
## [3,]       0       0       1  -23/51 -134/51
## [4,]       0       0       0   46/51 -344/51
## 
## row: 4 
## 
##  multiply row 4 by 51/46 
##      [,1]    [,2]    [,3]    [,4]    [,5]   
## [1,]       1       0       0  -22/51   -4/51
## [2,]       0       1       0   33/17   23/17
## [3,]       0       0       1  -23/51 -134/51
## [4,]       0       0       0       1 -172/23
## 
##  multiply row 4 by 22/51 and add to row 1 
##      [,1]    [,2]    [,3]    [,4]    [,5]   
## [1,]       1       0       0       0  -76/23
## [2,]       0       1       0   33/17   23/17
## [3,]       0       0       1  -23/51 -134/51
## [4,]       0       0       0       1 -172/23
## 
##  multiply row 4 by 33/17 and subtract from row 2 
##      [,1]    [,2]    [,3]    [,4]    [,5]   
## [1,]       1       0       0       0  -76/23
## [2,]       0       1       0       0  365/23
## [3,]       0       0       1  -23/51 -134/51
## [4,]       0       0       0       1 -172/23
## 
##  multiply row 4 by 23/51 and add to row 3 
##      [,1]    [,2]    [,3]    [,4]    [,5]   
## [1,]       1       0       0       0  -76/23
## [2,]       0       1       0       0  365/23
## [3,]       0       0       1       0      -6
## [4,]       0       0       0       1 -172/23