Nama : Renata Amalia Putri

NIM : 220605110074

Kelas : B

Mata Kuliah : Linear Algebra

Dosen Pengampu : Prof. Dr. Suhartono, M.kom

Jurusan : Teknik Informatika

Instansi : UIN Maulana Malik Ibrahim Malang


Pada bahasa R telah menyediakan fungsi Solve() untuk menyelesaikan permasalahan sistem persamaan linear. Berikut ini adalah contoh penulisan fungsi Solve().

library(ISLR)
library(matlib)

Pada matriks di bawah ini dengan baris adalah 2 dan kolom juga 2. Untuk variabel b yaitu hasil dari setiap perhitungan baris dari matriks.

A <- matrix(c(1,2,1,1), nrow = 2, ncol = 2)
b <- c(4,5)
A
##      [,1] [,2]
## [1,]    1    1
## [2,]    2    1
b
## [1] 4 5

Untuk mengetahui nilai x dari setiap variabel x menggunakan fungsi Solve(A,b) berikut ini :

Solve(A,b)
## x1    =  1 
##   x2  =  3

Sekarang adalah bagaimana cara mengvisualisasi atau memplot geometri dari sistem persamaan linear di atas.

plotEqn(A, b)
##   x[1] + x[2]  =  4 
## 2*x[1] + x[2]  =  5

Pada gambar di aats kedua garis yang didefinisikan oleh dua persamaan berpotongan di satu titik (1,3) yaitu lingkaran pada gambar.

A <- matrix(c(0, -2, -1, 2, 3, 3, 3, -2, 4), nrow = 3, ncol = 3)
b <- c(6, -3, 1)
A
##      [,1] [,2] [,3]
## [1,]    0    2    3
## [2,]   -2    3   -2
## [3,]   -1    3    4
b
## [1]  6 -3  1
Solve(A,b)
## x1      =   8.36363636 
##   x2    =   4.09090909 
##     x3  =  -0.72727273
plotEqn3d(A,b)

Selanjutnya adalah visualisai geometri dari sistem persamaan linier jika menggunakan tiga variabel. Di dalam argumen fungsi, “xlim” digunakan untuk mengatur rentang dari sumbu x dan “ylim” digunakan untuk mengatur rentang sumbu y. Bisa melihat visualisasinya dengan menahan tombol dari mouse lalu putar gambar, sehingga dapat melihat persamaan linearnya berpotongan satu sama lain.

plotEqn3d(A,b, xlim=c(0,4), ylim=c(0,4))
A <- matrix(c(1,0,1,0,1,0,0,1,0,1,1,0,0,1,0,1), nrow=4, ncol=4)
b <- c(475, 489, 542, 422)
A
##      [,1] [,2] [,3] [,4]
## [1,]    1    1    0    0
## [2,]    0    0    1    1
## [3,]    1    0    1    0
## [4,]    0    1    0    1
b
## [1] 475 489 542 422
Solve(A,b)
## x1     - 1*x4  =   53 
##   x2     + x4  =  422 
##     x3   + x4  =  489 
##             0  =    0
A <- matrix(c(1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 ,
0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 ,
0 , 0 , 0 , 0 , 0 , 1), nrow = 11, ncol = 18, byrow = TRUE)
b <- c(1298, 1948, 465, 605, 451, 338, 260, 183, 282, 127, 535)
Solve(A,b)
## x1                    - 1*x11 - 1*x12 - 1*x13 - 1*x14 - 1*x15 - 1*x16 - 1*x17 - 1*x18  =  -1483 
##   x2                    + x11                                                          =    605 
##     x3                          + x12                                                  =    451 
##       x4                                + x13                                          =    338 
##         x5                                      + x14                                  =    260 
##           x6                                            + x15                          =    183 
##             x7                                                  + x16                  =    282 
##               x8                                                        + x17          =    127 
##                 x9                                                              + x18  =    535 
##                   x10   + x11   + x12   + x13   + x14   + x15   + x16   + x17   + x18  =   1948 
##                                                                                     0  =      0

Dalam argumen fungsi matrix() mendefinisikan dari entri baris demi baris. Ini menandakan bahwa elemen matriks diisi dari baris pertama dan baris kedua hingga seterusnya.

Selanjutnya, menggunakan fungsi showEqn() dalam sistem persamaan linear, seperti berikut ini.

A <- matrix(c(0, -1, 1, 0, 1, 1, 0, 1, 3, -4, 2, 0, -1, 0, 4, -4), 4, 4)
b <- c(1, 1, 5, -2)
showEqn(A, b)
##  0*x1 + 1*x2 + 3*x3 - 1*x4  =   1 
## -1*x1 + 1*x2 - 4*x3 + 0*x4  =   1 
##  1*x1 + 0*x2 + 2*x3 + 4*x4  =   5 
##  0*x1 + 1*x2 + 0*x3 - 4*x4  =  -2

Setelah itu, menggunakan fungsi echelon() sehingga dapat melihat bagaimana penghapusan Gaussian bekerja. Sebagai contoh seperti di bawah ini:

echelon(A,b, verbose=TRUE, fractions=TRUE)
## 
## Initial matrix:
##      [,1] [,2] [,3] [,4] [,5]
## [1,]  0    1    3   -1    1  
## [2,] -1    1   -4    0    1  
## [3,]  1    0    2    4    5  
## [4,]  0    1    0   -4   -2  
## 
## row: 1 
## 
##  exchange rows 1 and 2 
##      [,1] [,2] [,3] [,4] [,5]
## [1,] -1    1   -4    0    1  
## [2,]  0    1    3   -1    1  
## [3,]  1    0    2    4    5  
## [4,]  0    1    0   -4   -2  
## 
##  multiply row 1 by -1 
##      [,1] [,2] [,3] [,4] [,5]
## [1,]  1   -1    4    0   -1  
## [2,]  0    1    3   -1    1  
## [3,]  1    0    2    4    5  
## [4,]  0    1    0   -4   -2  
## 
##  subtract row 1 from row 3 
##      [,1] [,2] [,3] [,4] [,5]
## [1,]  1   -1    4    0   -1  
## [2,]  0    1    3   -1    1  
## [3,]  0    1   -2    4    6  
## [4,]  0    1    0   -4   -2  
## 
## row: 2 
## 
##  multiply row 2 by 1 and add to row 1 
##      [,1] [,2] [,3] [,4] [,5]
## [1,]  1    0    7   -1    0  
## [2,]  0    1    3   -1    1  
## [3,]  0    1   -2    4    6  
## [4,]  0    1    0   -4   -2  
## 
##  subtract row 2 from row 3 
##      [,1] [,2] [,3] [,4] [,5]
## [1,]  1    0    7   -1    0  
## [2,]  0    1    3   -1    1  
## [3,]  0    0   -5    5    5  
## [4,]  0    1    0   -4   -2  
## 
##  subtract row 2 from row 4 
##      [,1] [,2] [,3] [,4] [,5]
## [1,]  1    0    7   -1    0  
## [2,]  0    1    3   -1    1  
## [3,]  0    0   -5    5    5  
## [4,]  0    0   -3   -3   -3  
## 
## row: 3 
## 
##  multiply row 3 by -1/5 
##      [,1] [,2] [,3] [,4] [,5]
## [1,]  1    0    7   -1    0  
## [2,]  0    1    3   -1    1  
## [3,]  0    0    1   -1   -1  
## [4,]  0    0   -3   -3   -3  
## 
##  multiply row 3 by 7 and subtract from row 1 
##      [,1] [,2] [,3] [,4] [,5]
## [1,]  1    0    0    6    7  
## [2,]  0    1    3   -1    1  
## [3,]  0    0    1   -1   -1  
## [4,]  0    0   -3   -3   -3  
## 
##  multiply row 3 by 3 and subtract from row 2 
##      [,1] [,2] [,3] [,4] [,5]
## [1,]  1    0    0    6    7  
## [2,]  0    1    0    2    4  
## [3,]  0    0    1   -1   -1  
## [4,]  0    0   -3   -3   -3  
## 
##  multiply row 3 by 3 and add to row 4 
##      [,1] [,2] [,3] [,4] [,5]
## [1,]  1    0    0    6    7  
## [2,]  0    1    0    2    4  
## [3,]  0    0    1   -1   -1  
## [4,]  0    0    0   -6   -6  
## 
## row: 4 
## 
##  multiply row 4 by -1/6 
##      [,1] [,2] [,3] [,4] [,5]
## [1,]  1    0    0    6    7  
## [2,]  0    1    0    2    4  
## [3,]  0    0    1   -1   -1  
## [4,]  0    0    0    1    1  
## 
##  multiply row 4 by 6 and subtract from row 1 
##      [,1] [,2] [,3] [,4] [,5]
## [1,]  1    0    0    0    1  
## [2,]  0    1    0    2    4  
## [3,]  0    0    1   -1   -1  
## [4,]  0    0    0    1    1  
## 
##  multiply row 4 by 2 and subtract from row 2 
##      [,1] [,2] [,3] [,4] [,5]
## [1,]  1    0    0    0    1  
## [2,]  0    1    0    0    2  
## [3,]  0    0    1   -1   -1  
## [4,]  0    0    0    1    1  
## 
##  multiply row 4 by 1 and add to row 3 
##      [,1] [,2] [,3] [,4] [,5]
## [1,] 1    0    0    0    1   
## [2,] 0    1    0    0    2   
## [3,] 0    0    1    0    0   
## [4,] 0    0    0    1    1
A <- matrix(c(0, -9, 4, 3, 5, 7, 3, 7, 4, 5, 0, 4, 7, 7, 5, 11), 4, 4)
b <- c(-9, -15, -1, 0)
showEqn(A, b)
##  0*x1 + 5*x2 + 4*x3  + 7*x4  =   -9 
## -9*x1 + 7*x2 + 5*x3  + 7*x4  =  -15 
##  4*x1 + 3*x2 + 0*x3  + 5*x4  =   -1 
##  3*x1 + 7*x2 + 4*x3 + 11*x4  =    0

Menggunakan package matlib untuk membuat matriks koefisien dan vektor ruas kanan persamaan sistem linear.

A <- matrix(c(0, -9, 4, 3, 5, 7, 3, 7, 4, 5, 0, 4, 7, 7, 5, 11), 4, 4)
b <- c(-9, -15, -1, 14)

Lalu, menggunakan fungsi showEqn() sehingga dapat melihat sistem persamaan linear.

showEqn(A,b)
##  0*x1 + 5*x2 + 4*x3  + 7*x4  =   -9 
## -9*x1 + 7*x2 + 5*x3  + 7*x4  =  -15 
##  4*x1 + 3*x2 + 0*x3  + 5*x4  =   -1 
##  3*x1 + 7*x2 + 4*x3 + 11*x4  =   14

Fungsi C()

Di bahasa pemrograman R dapat membuat suatu matriks dengan menggunakan fungsi c(), seperti berikut ini:

v <- c(907,220,625,502)
v
## [1] 907 220 625 502

Dan ketika menggunakan tanda “:” pada R maka hasil yang diperoleh yaitu suatu matriks yang urut dengan batas yang ditentukan.

v <- 10:50
v
##  [1] 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
## [26] 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50

Sekarang, menunjukkan cara lain untuk membuat matriks dari menggabungkan vektor baris atau vektor kolom. Pertama, cara membuat matriks dengan menggabungkan vektor dengan fungsi rbind(). Disini, didefinisikan r1 dan r2 sebagai vektor baris pertama da vektor baris kedua matriks. Dalam R dapat mendefinisikan sebagai:

r1 <- c(1,1,1,1)
r2 <- c(1,2,3,4)
M <- rbind(r1,r2)
M
##    [,1] [,2] [,3] [,4]
## r1    1    1    1    1
## r2    1    2    3    4
c1 <- c(2,5)
c2 <- c(2,6)
c3 <- c(2,7)
c4 <- c(2,8)
M <- cbind(c1,c2,c3,c4)
M
##      c1 c2 c3 c4
## [1,]  2  2  2  2
## [2,]  5  6  7  8

    Daftar Pustaka
    

Yoshida, Ruriko. (2021). Linear Algebra and Its Applications with R. CRC Press.