Linear algebra adalah cabang matematika yang mempelajari struktur dan operasi pada vektor dan matriks. Dalam bahasa pemrograman R, terdapat beberapa paket yang menyediakan fungsi dan operasi untuk menerapkan konsep-konsep linear algebra. Salah satu paket yang umum digunakan adalah paket ’MASS’dan “matlib” yang sudah terintegrasi dengan R secara default.
Skalar: Skalar adalah bilangan tunggal yang hanya memiliki besaran (magnitude) tanpa “arah”. Contohnya adalah kecepatan. Skalar dapat direpresentasikan dengan angka tunggal dalam matematika. Misalnya, kecepatan 50 km/jam adalah contoh skalar.
Vektor: Vektor adalah daftar terurut dari skalar yang memiliki besaran (magnitude) dan arah. Contohnya adalah kecepatan dan arah pergerakan. Vektor dapat direpresentasikan dengan menggunakan urutan bilangan atau matriks dalam matematika. Misalnya, vektor kecepatan dalam koordinat dua dimensi dapat direpresentasikan sebagai vektor [3, 4], dengan 3 dan 4 mewakili besaran dalam sumbu x dan y, dan arahnya menunjukkan arah pergerakan.
a <- c(12, 13, 45, 46, 89)
a
## [1] 12 13 45 46 89
Linear Independence (Kemandirian Linear): Dua vektor x dan y dikatakan linear independen jika tidak ada konstanta skalar c sedemikian rupa sehingga x ≠ cy.
Matrix (Matriks): Matriks adalah kumpulan dari skalar/angka-angka. Jika sebuah matriks memiliki n baris dan m kolom, maka kita akan menyebutnya sebagai matriks n×m; dengan demikian, kita bisa menganggap vektor sebagai matriks yang hanya memiliki satu baris atau satu kolom.
library(MASS)
A <- matrix(c(1, 5, 0, 2, 4,-10, 0, -20, 0), nrow = 3, byrow = TRUE)
A
## [,1] [,2] [,3]
## [1,] 1 5 0
## [2,] 2 4 -10
## [3,] 0 -20 0
A <- matrix(c(1, 5, 0, 2, 4,-10, 0, -20, 0), nrow = 3, byrow = FALSE)
A
## [,1] [,2] [,3]
## [1,] 1 2 0
## [2,] 5 4 -20
## [3,] 0 -10 0
Transpose (Transposisi): Transposisi matriks adalah operasi yang menghasilkan matriks baru dengan jumlah kolom dan baris yang dibalik. Dalam transposisi, setiap elemen pada baris matriks asli akan menjadi elemen pada kolom matriks transposisi yang sama, dan sebaliknya.
A <- matrix(c(1, 5, 0, 2, 4,-10), nrow = 3, byrow = FALSE)
A
## [,1] [,2]
## [1,] 1 2
## [2,] 5 4
## [3,] 0 -10
t(A)
## [,1] [,2] [,3]
## [1,] 1 5 0
## [2,] 2 4 -10
A <- matrix(c(1, 5, 0, 2, 4,-10), nrow = 3, byrow = FALSE)
10 * A
## [,1] [,2]
## [1,] 10 20
## [2,] 50 40
## [3,] 0 -100
Multiplication between matrices
A <- matrix(c(1, 5, 0, 2, 4,-10, 0, 1, 0), nrow = 3, byrow = TRUE)
A
## [,1] [,2] [,3]
## [1,] 1 5 0
## [2,] 2 4 -10
## [3,] 0 1 0
B <- matrix(c(1, 1, 1, 3, 5, 7, 0, 2, 0), nrow = 3, byrow = TRUE)
B
## [,1] [,2] [,3]
## [1,] 1 1 1
## [2,] 3 5 7
## [3,] 0 2 0
A %*% B
## [,1] [,2] [,3]
## [1,] 16 26 36
## [2,] 14 2 30
## [3,] 3 5 7
Determinan
A <- matrix(c(1, 5, 0, 2, 4,-10, 0, 1, 0), nrow = 3, byrow = TRUE)
det(A)
## [1] 10
invers dari matrik
A <- matrix(c(1, 5, 0, 2, 4, -10, 0, 1, 0), nrow = 3, byrow = TRUE)
solve(A)
## [,1] [,2] [,3]
## [1,] 1.0 0.0 -5.0
## [2,] 0.0 0.0 1.0
## [3,] 0.2 -0.1 -0.6
fractions(solve(A))
## [,1] [,2] [,3]
## [1,] 1 0 -5
## [2,] 0 0 1
## [3,] 1/5 -1/10 -3/5