Prodi : Teknik Informatika

Lembaga : UIN Maulana Malik Ibrahim Malang

Studi Kasus

Aljabar linier banyak diaplikasikan baik dalam bidang engineering, fisika, sampai dengan statistika. Pada sub-chapter ini penulis akan menjelaskan penerapan aljabar linier pada metode kuadrat terkecil dan aliran massa dalam reaktor. Untuk penerapan lainnya pembaca dapat membaca buku lainnya terkait aljabar linier.

Metode Kuadrat Terkecil

Metode kuadrat terkecil merupakan salah satu aplikasi penerapan aljabar linier yang paling populer. Intuisi dibalik metode ini adalah bagaimana kita meminimalkan jarak antara sejumlah titik dengan garis regresi. Misalkan kita menggambarkan scatterplot antara dua buah variabel. Pola yang terbentuk dari plot tersebut adalah terjadi korelasi positif antara variabel pada sumbu \(x\) dan sumbu \(y\) . Kita ingin menggambarkan garis regresi terbaik yang dapat menangkap seluruh pola tersebut. Garis regresi terbaik terjadi ketika jumlah kuadrat jarak antara titik observasi dan garis regresi yang terbentuk seminimal mungkin.

Untuk lebih memahaminya kita akan melakukan latihan menggunakan dataset trees yang berisi data hasil pengukuran kayu dari pohon yang ditebang. Pada dataset ini terdapat 31 observasi dan 3 buah kolom. Keterangan dari ketiga buah kolom tersebut adalah sebagai berikut:

  • Girth: diameter pohon dalam satuan inch.

  • Height: tinggi pohon dalam satuan feet.

  • Volume: volume kayu dalam satuan cubic feet.

Untuk mengecek 6 observasi pertama dan struktur data, jalankan sintaks berikut:

head(trees)

##   Girth Height Volume
## 1   8.3     70   10.3
## 2   8.6     65   10.3
## 3   8.8     63   10.2
## 4  10.5     72   16.4
## 5  10.7     81   18.8
## 6  10.8     83   19.7

str(trees)

## 'data.frame':    31 obs. of  3 variables:
##  $ Girth : num  8.3 8.6 8.8 10.5 10.7 10.8 11 11 11.1 11.2 ...
##  $ Height: num  70 65 63 72 81 83 66 75 80 75 ...
##  $ Volume: num  10.3 10.3 10.2 16.4 18.8 19.7 15.6 18.2 22.6 19.9 ...

Scatterplot matriks sangat bagus untuk mengecek korelasi antar variabel dalam dataset tersebut. Berikut adalah sintaks untuk membuatnya:



Kita ingin membuat sebuah model linier untuk memprediksi Volume kayu berdasarkan variabel Girth dan Heiht atau volume sebagia fungsi dari variabel Girth dan Heiht. Kita dapat menuliskan relasi antara variabel volume sebagai fungsi dari variabel Girth dan Heiht menggunakan Persamaan (6.40).

dimana \(β0\) merupakan intersep persamaan regresi linier dan nilai ββ lainnya merupakan koefisien dari variabel Girth dan Heiht. Variabel Volume disebut sebagai variabel respon, sedangkan variabel Girth dan Heiht disebut sebagai variabel prediktor.

Metode kuadrat terkecil berusaha memperoleh seluruh koefisien variabel dan intersep dari persamaan regresi linier. Berdasarkan yang telah penulis jelaskan garis regresi terbaik adalah garis yang memiliki nilai kuadrat terkecil jarak antara titik observasi dan garis regresi. Dasar dari metode kuadrat terkecil merupakan persamaan yang relatif sederhana yang ditunjukkan pada Persamaan (6.41).

dimana \(b\) merupakan vektor dari variabel respon (Volume) dan matrik \(A\) merupakan matriks variabel prediktor (variabel Girth dan Heiht).

Untuk menginputkan intercept kedalam persamaan linier kita perlu menmabhakan satu kolom di awal matriks \(A\) yang berisi nilai 1. Berikut adalah sintaks yang digunakan untuk membentuk matriks \(A\) :

# membentuk matriks A
pred <- cbind(intercept=1, Girth=trees$Girth, Height=trees$Height)
head(A)

##      [,1] [,2] [,3]
## [1,]   27    6   -1
## [2,]    6   15    2
## [3,]    1    1   54

Langkah selanjutnya adalah membentuk matriks \(b\) . Berikut adalah sintaks yang digunakan:

resp<- trees$Volume
head(resp)

## [1] 10.3 10.3 10.2 16.4 18.8 19.7

Untuk memperoleh koefisien \(β\) , kita dapat mencarinya dengan cara menyelesaikan Persamaan (6.41). Berikut adalah sintaks yang digunakan:

A <- t(pred) %*% pred
b <- t(pred) %*% resp

Ab <- cbind(A,b)
(x <- gauss_jordan(Ab))

##           intercept Girth Height         
## intercept         1     0      0 -57.9877
## Girth             0     1      0   4.7082
## Height            0     0      1   0.3393

Berdasarkan hasil yang diperoleh, persamaan linier yang terbentuk disajikan pada Persamaan (6.42).

Pembaca juga dapat menggunakan fungsi lain untuk memperoleh nilai koefisien tersebut, seperti: lu_solve()dansolve(). untuk fungsi jacobi() dan gauss_seidel(), kita harus pastikan syarat-syarat terkait metode tersebut. Berikut adalah contoh penyelesaian menggunakan sintaks lainnya:

# metode LU
lu_solve(A,b)

## $P
##      [,1] [,2] [,3]
## [1,]    1    0    0
## [2,]    0    1    0
## [3,]    0    0    1
## 
## $L
##       [,1]  [,2] [,3]
## [1,]  1.00 0.000    0
## [2,] 13.25 1.000    0
## [3,] 76.00 1.054    1
## 
## $U
##           intercept Girth Height
## intercept        31 410.7 2356.0
## Girth             0 295.4  311.5
## Height            0   0.0  889.6
## 
## $result
##          [,1]
## [1,] -57.9877
## [2,]   4.7082
## [3,]   0.3393

# fungsi solve()
solve(A,b)

R juga menyediakan fungsi untuk membentuk model regresi linier. Fungsi yang digunakan adalah lm(). Berikut sintaks yang digunakan untuk membentuk model linier menggunakan fungsi lm():

lm(Volume~Girth+Height, data=trees)

## 
## Call:
## lm(formula = Volume ~ Girth + Height, data = trees)
## 
## Coefficients:
## (Intercept)        Girth       Height  
##     -57.988        4.708        0.339

Aliran Massa Dalam Reaktor

Pada sub-chapter ini penulis akan memberikan penerapan aljabar linier untuk menghitung konsentrasi suatu zat atau parameter lingkungan dalam reaktor yang saling terhubung. Pada contoh kasus kali ini diasumsikan terdapat lima buah reaktor yang saling terhubung satu sama lain sesuai Gambar 6.2. Debit air dan konsentrasi zat pencemar disajikan pula diagram alir tersebut. Diasumsikan kelima buah reaktor tersebut dalam kondisi steady dan volume reaktor diasumsikan sama. Kesetimbangan massa persatuan waktu dalam kondisi steady disajikan pada Persamaan (6.43).

Berdasarkan Gambar 6.2, dapat dibentuk lima buah sistem persamaan linier. Persamaan linier yang terbentuk disajikan sebagai berikut:

Untuk menyelesaiakan sistem persamaan linier tersebut dan memperoleh nilai cc dari masing-masing reaktor, kiat perlu mengubahnya dulu kedalam bentuk matriks \(Ax=b\) . Berikut adalah matriks yang terbentuk:

Kita akan menyelesaikannya dengan menggunakan metode elminasi Gauss-Jordan, dekomposisi LU, iterasi Jacobi, dan iterasi Gauss-Seidel. Untuk dapat menyelesaikannya menggunakan metode-metode tersebut pada R, kita perlu membentuk matriksnya terlebih dahulu:

(A <- matrix(c(6,-3,0,0,-3,
              0,3,-1,-1,-1,
              -1,0,9,-8,0,
              0,0,0,11,0,
              0,0,0,-2,4),nrow=5))

##      [,1] [,2] [,3] [,4] [,5]
## [1,]    6    0   -1    0    0
## [2,]   -3    3    0    0    0
## [3,]    0   -1    9    0    0
## [4,]    0   -1   -8   11   -2
## [5,]   -3   -1    0    0    4

(b <- c(50,0,160,0,0))

## [1]  50   0 160   0   0

Metode Eliminasi Gauss-Jordan

gauss_jordan(cbind(A,b))

##                    b
## [1,] 1 0 0 0 0 11.51
## [2,] 0 1 0 0 0 11.51
## [3,] 0 0 1 0 0 19.06
## [4,] 0 0 0 1 0 17.00
## [5,] 0 0 0 0 1 11.51

Metode Dekomposisi LU

lu_solve(A,b)

## $P
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    0    0    0    0
## [2,]    0    1    0    0    0
## [3,]    0    0    1    0    0
## [4,]    0    0    0    1    0
## [5,]    0    0    0    0    1
## 
## $L
##      [,1]    [,2]     [,3] [,4] [,5]
## [1,]  1.0  0.0000  0.00000    0    0
## [2,] -0.5  1.0000  0.00000    0    0
## [3,]  0.0 -0.3333  1.00000    0    0
## [4,]  0.0 -0.3333 -0.92453    1    0
## [5,] -0.5 -0.3333 -0.07547    0    1
## 
## $U
##      [,1] [,2]       [,3] [,4] [,5]
## [1,]    6    0 -1.000e+00    0    0
## [2,]    0    3 -5.000e-01    0    0
## [3,]    0    0  8.833e+00    0    0
## [4,]    0    0  0.000e+00   11   -2
## [5,]    0    0  1.110e-16    0    4
## 
## $result
## [1] 11.51 11.51 19.06 17.00 11.51

Metode Iterasi Jacobi

jacobi(A,b, maxiter=100)

## $X
##       [,1]
## [1,] 11.51
## [2,] 11.51
## [3,] 19.06
## [4,] 17.00
## [5,] 11.51
## 
## $iter
## [1] 17

Metode Iterasi Gauss-Seidel

gauss_seidel(A,b, maxiter=200)

## $X
##       [,1]
## [1,] 11.51
## [2,] 11.51
## [3,] 19.06
## [4,] 17.00
## [5,] 11.51
## 
## $iter
## [1] 7

Berdasarkan seluruh metode tersebut, diperoleh konsentrasi zat pencemar pada masing-masing reaktor adalah sebagai berikut:

REFERENSI:

https://bookdown.org/moh_rosidi2610/Metode_Numerik/linearaljabar.html#studikasus