Operasi Aljabar di R

Mengenal Ryacas, Bagaimana Mengerjakan Operasi Aljabar dan Kalkulus Melalui R

DW ADS

Yacas (Yet Another Computer Algebra System) adalah interface dari sistem aljabar komputer yang penggunaannya sangat fleksibel. Dengan Ryacas, Yacas dapat dioperasikan dengan interface R. Ryacas memungkinkan komputer dapat melakukan operasi aljabar di dalam komputer melalui bahasa R.

Mengenal Ryacas

Ryacas, mesin melakukan operasi matematika
Pexels | Sora Shimazaki

Ketika melakukan analisis data, R lebih fokus dalam operasi numerik dibandingkan dengan operasi kalkulus. Namun, seringkali dalam melakukan analisis data, seseorang melakukan pengolahan fungsi seperti mencari fungsi turunan, fungsi hasil integrasi, ekspansi fungsi, dan lain-lain. Package dasar R belum mampu menyelesaikan permasalahan ini. Sehingga, diperkenalkan sebuah package yang dapat melakukan pengolahan fungsi kalkulus, yaitu Ryacas.

Ryacas merupakan sebuah package dalam R yang bisa digunakan untuk melakukan berbagai hal utamanya dalam melakukan pengolahan fungsi yang diselesaikan secara kalkulus. Dalam artikel ini akan dibahas beberapa contoh kasus dalam aljabar dan kalkulus yang dapat diselesaikan dengan package Ryacas, seperti menemukan turunan fungsi, integrasi fungsi, menyelesaikan suatu fungsi, menemukan fungsi ekspansi, pemfaktoran, dan lain-lain. Selain itu, dalam artikel ini juga dibahas bagaimana Ryacas dapat melakukan operasi matriks seperti menemukan kebalikan atau invers dari matriks dengan package Ryacas.

Instalasi Ryacas

Package Ryacas dapat di-install melalui github dengan cara sebagai berikut:

devtools::install_github("r-cas/ryacas")

atau dapat di-install sebagaimana meng-install package dalam R sebagai berikut:

install.packages("Ryacas")
library(Ryacas)

Fungsi as_y() dan as_r()

Fungsi as_y() dalam Ryacas mengubah karakter matriks dalam R ke dalam representasi yacas. Sedangkan sebaliknya, as_r(), mengubah karakter yacas dalam bentuk matriks yang direpresentasikan dalam R.

Untuk lebih jelasnya dapat dilihat pada contoh pembuatan matriks berikut.

mat_A <- matrix(c("1", "4", "3", "5", "2", "2", "4", "9", "5"), byrow = T, nrow=3, ncol=3)

Karena pada mulanya mat_A dibuat dalam bentuk matriks dalam R, maka ketika dipanggil, objek mat_A akan menampilkan format sebagaimana matriks dalam R.

mat_A

Untuk menjadikan objek mat_A menjadi objek yang terepresentasi dalam yacas dan bisa dilakukan operasi di dalam sistem yacas, maka objek tersebut perlu dikonversi ke dalam objek yacas dengan fungsi as_y().

A <- as_y(mat_A)
A

Begitupun jika ingin mengembalikan objek ke dalam representasi R, digunakan fungsi as_r(). Objek ini nanti akan terbaca sebagai matriks dengan nilai-nilai elemen yang bertipe string.

as_r(A)

Fungsi yac_str() dan yac_expr()

Pada dasarnya, penggunaan package Ryacas dalam R dilakukan dengan mengetikkan string instruksi yang menjadi argumen dalam fungsi yac_str() atau yac_expr(). Fungsi yang diketikkan dalam yac_str() akan menghasilkan string fungsi sesuai dengan fungsi Ryacas yang diinstruksikan. Fungsi yac_expr() akan menghasilkan ekspresi R yang bisa digunakan untuk eksekusi selanjutnya jika dibutuhkan. Sementara fungsi eval() akan mengevaluasi sebuah fungsi dan menghasilkan output penyelesaian dari fungsi yang diinginkan. Penggunaan fungsi ini akan dijelaskan lebih rinci pada beberapa contoh kasus yang melibatkan command-command atau perintah-perintah tertentu.

Perintah Expand()

Perintah Expand() digunakan jika ingin melakukan penjabaran fungsi sebagaimana contoh berikut.

yac_str('Expand((x^2+3*x-1)*(x-3))')

## [1] "x^3-10*x+3"

Dari output di atas dapat dilihat bahwa ekspansi dari fungsi (x2 + 3x -1)(x – 3) adalah x3 – 10x + 3.

Perintah Solve()

Jika ingin mencari himpunan penyelesaian dari suatu fungsi, dapat digunakan command Solve() dalam fungsi yac_str() yang mengembalikan string penyelesaian dari fungsi yang dikehendaki.

solve <- yac_str('Solve(x^2-3*x+1 == 0, x)')
solve
## [1] "{x==(Sqrt(5)+3)/2,x==(3-Sqrt(5))/2}"

Dapat diperoleh bahwa penyelesaian dari fungsi x2 – 3x + 1 = 0 adalah x = (sqrt(5) + 3)/2 atau x = (sqrt(5) – 3)/2.

Untuk mendapatkan hasil dalam vektor bukan string, dapat dengan melakukan operasi dengan pipe operator sebagai beirkut.

solve %>% y_rmvars() %>% yac_expr() %>% eval()
## [1] 2.618034 0.381966
Perintah Simplify()

Jika ingin melakukan penyederhanaan dari sebuah fungsi, maka dapat dengan menggunakan command Simplify() seperti contoh berikut:

simplify <- yac_str('Simplify(9*x^3-50*x^2+69*x+2*x^2-2*3^2 == 0)')
simplify
## [1] "3*(3*x^3-16*x^2+23*x-6)==0"

Jadi, penyederhanaan dari fungsi 9x3 – 50x2 + 69x + 2x2 – 2(32) = 0 adalah 3(3x3 – 16x2 + 23x – 6) = 0. Kemudian jika ingin dicari penyelesaian fungsi di atas dengan Solve(), dapat dengan memanfaatkan pipe operator sebagaimana berikut.

simplify %>% y_fn("Solve", "x") %>% y_rmvars() %>% yac_expr() %>% eval()
## [1] 0.3333333 2.0000000 3.0000000
Perintah Factor()

Dengan Ryacas juga dapat dilakukan pemfaktoran dengan menggunakan command Factor() sebagai berikut.

factor <- yac_str('Factor(x^2 - 5*x + 6)==0')
factor
## [1] "(x-2)*(x-3)==0"

Sehingga diperoleh faktorisasi dari x2 – 5x + 6 = 0 adalah (x-2)(x-3) = 0. Kemudian jika ingin dicari penyelesaian dari fungsi di atas dapat dengan mengetikkan sintaks berikut.

factor %>% y_fn('Solve', 'x') %>% y_rmvars() %>% yac_expr() %>% eval()
## [1] 2 3
Perintah D(x)

Turunan fungsi dapat dicari dengan menggunakan prosedur yang sama dengan perintah D() seperti contoh berikut.

derivative <- yac_str('D(x) x^3+3*x^2-7*x+3*x^(1/2)')
derivative
## [1] "3*x^2+6*x+3/(2*Sqrt(x))-7"
Perintah Integrate(x)

Integrasi fungsi juga dapat dilakukan di R dengan menggunakan command Integrate().

yac_str('Integrate(x) 2*x^(1/2)+3*x^3')
## [1] "(4*Sqrt(x)^3)/3+(3*x^4)/4"
Perintah Sum()

Kemudian, jika ingin melakukan operasi penjumlahan berulang, dapat dengan mengetikkan command Sum(), seperti contoh berikut:

yac_str('Sum(x, 1, 10, 2*x^2-17)')
## [1] "600"
Perhitungan Matriks

Selain melakukan operasi bilangan skalar atau fungsi seperti biasa, package Ryacas juga dapat melakukan operasi pada matriks sebagai berikut:

mat_A <- matrix(c("1", "4", "3", "5", "2", "2", "4", "9", "5"), byrow = T, nrow=3, ncol=3)
A <- as_y(mat_A)
A %>% y_print()

Fungsi y_print() digunakan untuk melakukan print atau menampilkan output matriks yang terstruktur sebagaimana penulisan matriks dalam matematika. Dari kode di atas, diperoleh output hasil pembentukan matriks dalam representasi yacas sebagai berikut.

Kemudian, dengan menggunakan command Inverse(), dapat diperoleh kebalikan dari matriks A.

A %>% y_fn('Inverse') %>% yac_str() %>% y_print()

Selain itu dengan command Transpose(), dapat diperoleh putaran atau transpose dari matriks A.

A %>% y_fn('Transpose') %>% yac_str() %>% y_print()

Penutup

Package Ryacas membantu kita ketika ingin melakukan operasi aljabar dan kalkulus dengan menggunakan interface yacas dalam R. Masih banyak yang perlu dipelajari dalam penggunaan command-command di dalam package ini sekaligus pengembangannya yang masih terus dilakukan. Untuk mempelajari lebih lanjut terkait penggunaan package ini, kamu dapat membuka dokumentasi package yang disertakan di bagian referensi.

Sampai jumpa di artikel-artikel selanjutnya! Jika kamu mengalami kesulitan mengenai bagaimana menganalisis data atau menggunakan R, kamu bisa membaca artikel-artikel Exsight lainnya di sini, ya. Atau kamu bisa bertanya langsung melalui laman ini. Jangan lupa jaga kesehatan dan selalu gunakan aplikasi open source ya! Hindari penggunaan aplikasi bajakan. Terima kasih.

Referensi

Andersen, M. M., & Højsgaard, S. (2019). Ryacas: A computer algebra system in R. The Journal of Open Source Software4(42), 1763.

Dokumentasi Yacas

Andersen, M. M. (2019). Major update of Ryacas (R Interface to the Yacas Computer Algebra System). Diakses pada 2 November 2022.

Sstt...
Mau Kiriman Artikel Terbaru Exsight
Tanpa Biaya Langganan? ????

Nama Kamu

Email Kamu

Dapatkan Akses Informasi Terupdate Seputar Dunia Data dan Statistika 🙂

Exsight ADS

Leave a Comment

Hubungi Admin
Halo, selamat datang di Exsight! 👋

Hari ini kita ada DISKON 20% untuk semua transaksi. Klaim sekarang!