Dosen Pengampu : Prof. Dr. Suhartono, M.Kom
Mata Kuliah : Kalkulus
Prodi : Teknik Informatika
Lembaga : Universitas Islam Negeri Maulana Malik Ibrahim Malang
adalah sebuah persamaan aljabar, yang tiap sukunya mengandung konstanta, atau perkalian konstanta dengan variabel tunggal. Persamaan ini dikatakan linear sebab hubungan matematis ini dapat digambarkan sebagai garis lurus dalam Sistem koordinat Kartesius.
Bentuk umum untuk persamaan linear adalah
y = m x + c .
Dalam hal ini, konstanta m akan menggambarkan gradien garis, dan konstanta c merupakan titik potong garis dengan sumbu-y.
Sistem persamaan linear ini umumnya memiliki dua sifat utama, yakni, Misal l adalah persamaan linear, maka:
Penambahan dan pengurangan bilangan di kedua ruas persamaan l, tidak mengubah solusi persamaan tersebut.
Perkalian bilangan tidak nol di kedua ruas pada persamaan l, tidak mengubah solusi persamaan tersebut.
Sistem persamaan linear adalah persamaan-persamaan linear yang dikorelasikan untuk membentuk suatu sistem. Sistem persamaannya bisa terdiri dari satu variabel
, dua variabel
atau lebih
.
Bentuk umum dari jenis persamaan ini ialah ax + b = 0, dengan syarat a ≠ 0 dan b = konstanta Penyelesaian: x = - b/a.
Langkah-langkah penyelesaian sistem persamaan linear satu variabel :
Langkah pertama adalah menyederhanakan terlebih dahulu operasi yang ada. Berlaku juga dalam operasi pemfaktoran (bertanda kurung).
Gabungkan suku yang di dalamnya terdapat variabel ke dalam satu ruas.
Apabila persamaan mengandung operasi penjumlahan, maka kedua ruas harus dioperasikan dengan memakai operasi pengurangan dengan besar yang sama. Begitu juga sebaliknya.
Apabila persamaan mengandung operasi perkalian, maka kedua ruas harus kita operasikan dengan memakai operasi pembagian dengan besar yang sama dan bukan nol. Begitu juga sebaliknya.
Dahulukan operasi penjumlahan atau pengurangan terlebih dahulu sebelum melakukan pengerjaan operasi perkalian atau pembagian.
Bentuk umum dari jenis persamaan ini adalah ax + by = c, dengan syarat a, b, c adalah bilangan konstanta. Penyelesaian dapat menggunakan metode eliminasi, yakni metode meniadakan atau menghilangkan nilai dari sebuah variabel dan metode subtitusi, yakni mengganti nilai suatu variabel di suatu persamaan dari persamaan lainnya.
Bentuk umum dari persamaan ini adalah ax + by + cz = d, yang mana a, b, c, d adalah konstanta. Penyelesaian persamaan linear tiga variabel dapat menggunakan cara penyelesaian persamaan dua variabel, yakni dengan metode eliminasi seperti yang telah dijelaskan sebelumnya Persamaan linear tiga variabel juga bisa diselesaikan dengan metode subtitusi, integrasi dan determinasi.
dapat diartikan sebagai persamaan yang tidak mengandung syarat seperti persamaan linaer, sehingga persamaan non-linaer dapat merupakan:
Persamaan yang memiliki pangkat selain satu (misal: x2)
Persamaan yang mempunyai produk dua variabel (misal: xy)
Dalam penyelesaian persamaan non-linaer diperlukan akar-akar persamaan non-linaer, dimana akar sebuah persamaan non-linaer f(x)=0 merupakan nilai x yang menyebabkan nilai f(x) sama dengan nol. Dalam hal ini dapat disimpulkan bahwa akar-akar penyelesaian persamaan non-linaer merupakan titik potong antara kurva f(x) dengan sumbu x. Ilustrasi penjelasan tersebut ditampilkan pada Gambar di bawah ini :
Penyelesaian persamaan non-linier
Untuk mengetahui apakah suatu persamaan non-linier memiliki akar-akar penyelesaian atau tidak, diperlukan analisa menggunakan Teorema berikut:
Teorema (root)
Suatu rangex=[a,b]
mempunyai akar bilaf(a)
danf(b)
berlawanan tanda atau memenuhif(a)
.f(b)<0
Untuk memahami teorema tersebut perhatikan ilustrasi pada Gambar di bawah ini :
Ilustrasi teorema Bolzano
Adapun untuk menentukan akar persamaan adalah dengan beberapa metode di bawah ini :
\(1\) \(Metode\) \(Tertutup\)
disebut juga metode bracketing. Disebut sebagai metode tertutup karena dalam pencarian akar-akar persamaan non-linier dilakukan dalam suatu selang [a,b].
\(Metode\) \(Tabel\)
Penyelesaian persamaan non-linier menggunakan metode tabel dilakukan dengan membagi persamaan menjadi beberapa area, dimana untuk x = [a,b] dibagi sebanyak N bagian dan pada masing-masing bagian dihitung nilai f (x) sehingga diperoleh nilai f (x) pada setian N bagian.
Bila nilai f (xk)=0 atau mendekati nol, dimana a ≤ k ≤ b, maka dikatakan bahwa xk adalah penyelesaian persamaan f (x). Bila tidak ditemukan, dicari nilai f (xk) dan f (xk+1) yang berlawanan tanda. Bila tidak ditemukan, maka persamaan tersebut dapat dikatakan tidak mempunyai akar untuk rentang [a,b].
Bila akar persamaan tidak ditemukan, maka ada dua kemungkinan untuk menentukan akar persamaan, yaitu:
Akar persamaan ditentukan oleh nilai mana yang lebih dekat. Bila f (xk) ≤ f (xk+1), maka akarnya xk. Bila f (xk+1) ≤ f (xk), maka akarnya xk+1.
Perlu dicari lagi menggunakan rentang x = [xk,xk+1].
Algoritma Metode Tabel
1.Definisikan fungsi f (x)
2.Tentukan rentang untuk x yang berupa batas bawah a dan batas atas b.
3.Tentukan jumlah pembagi N
4.Hitung step pembagi
h = b + a /N
5.Untuk i = 0 s/d N, hitung:
xi = a + i.h
yi = f (xi)
6.Untuk i = 0 s/d N, dimana
Bila f (x) = 0, maka akarnya xk
Bila f (a) f (b) < 0, maka:
f (xk) ≤ f (xk+1), maka akarnya xk
Bila tidak, xk+1 adalah penyelesaian atau dapat dikatakan penyelesaian berada diantara xk dan xk+1.
Kita dapat membuat suatu fungsi pada R untuk melakukan proses iterasi pada metode Tabel. Fungsi root_table() akan melakukan iterasi berdasarkan step algoritma 1 sampai 5. Berikut adalah sintaks yang digunakan:
root_table <- function(f, a, b, N=20){
h <- abs((a+b)/N)
x <- seq(from=a, to=b, by=h)
fx <- rep(0, N+1)
for(i in 1:(N+1)){
fx[i] <- f(x[i])
}
data <- data.frame(x=x, fx=fx)
return(data)
}
Untuk melihat gambaran lokasi akar, kita dapat pulang mengeplotkan data menggunakan fungsi plot. Plot adalah aplikasi pembuatan grafik yang memudahkan untuk memvisualisasikan rumus matematika.
Untuk mengetahui lokasi akar dengan lebih jelas, kita dapat memperkecil lagi rentang nilai yang dimasukkan dalam fungsi curve()
.
Metode tabel pada dasarnya memiliki kelemahan yaitu cukup sulit untuk memdapatkan error penyelesaian yang cukup kecil, sehingga metode ini jarang sekali digunakan untuk menyelesaikan persamaan non-linier. Namun, metode ini cukup baik digunakan dalam menentukan area penyelesaian sehingga dapat dijadikan acuan metode lain yang lebih baik.
\(Metode\) \(Biseksi\)
Prinsip metode bagi dua adalah mengurung akar fungsi pada interval x=[a,b] atau pada nilai x batas bawah a dan batas atas b. Selanjutnya interval tersebut terus menerus dibagi 2 hingga sekecil mungkin, sehingga nilai hampiran yang dicari dapat ditentukan dengan tingkat toleransi tertentu. Untuk lebih memahami metode biseksi, perhatikan visualisasi pada Gambar berikut :
Ilustrasi metode biseksi
Metode biseksi merupakan metode yang paling mudah dan paling sederhana dibanding metode lainnya. Adapun sifat metode ini antara lain:
Konvergensi lambat
Caranya mudah
Tidak dapat digunakan untuk mencari akar imaginer
Hanya dapat mencari satu akar pada satu siklus.
Algoritma Metode Biseksi
Definisikan fungsi f (x)
Tentukan rentang untuk x yang berupa batas bawah a dan batas atas b.
Tentukan nilai toleransi e dan iterasi maksimum N
Hitung f (a) dan f (b)
Hitung:
\[x=a+b/2\]
Hitung f (x)
Bila f (x).f (a) < 0, maka b = x dan f (b) = f (x). Bila tidak, a = x dan f (a)=f (x)
Bila |b−a| < e atau iterasi maksimum maka proses dihentikan dan didapatkan akar=x , dan bila tidak ulangi langkah 6. Jika sudah diperoleh nilai dibawah nilai toleransi, nilai akar selanjutnya dihitung berdasarkan Persamaan pada opsi 5 dengan nilai a dan b merupakan nilai baru yang diperoleh dari proses iterasi.
Berdasarkan algoritma tersebut, kita dapat menyusun suatu fungsi pada R
yang dapat digunakan untuk melakukan iterasi tersebut. Fungsi root_bisection()
merupakan fungsi yang telah penulis susun untuk melakukan iterasi menggunakan metode biseksi. Berikut adalah sintaks dari fungsi tersebut:
root_bisection <- function(f, a, b, tol=1e-7, N=100){
iter <- 0
fa <- f(a)
fb <- f(b)
while(abs(b-a)>tol){
iter <- iter+1
if(iter>N){
warning("iterations maximum exceeded")
break
}
x <- (a+b)/2
fx <- f(x)
if(fa*fx>0){
a <- x
fa <- fx
} else{
b <- x
fb <- fx
}
}
# iterasi nilai x sebagai return value
root <- (a+b)/2
return(list(`function`=f, root=root, iter=iter))
}
\(Metode\) \(Regula\) \(Falsi\)
Metode regula falsi merupakan metode yang menyerupai metode biseksi, dimana iterasi dilakukan dengan terus melakukan pembaharuan rentang untuk memperoleh akar persamaan. Hal yang membedakan metode ini dengan metode biseksi adalah pencarian akar didasarkan pada slope (kemiringan) dan selisih tinggi dari kedua titik rentang. Titik pendekatan pada metode regula-falsi disajikan pada Persamaan x = f (b).a − f (a).b / f (b) − f (a)
Ilustrasi metode regula falsi
Algoritma Metode Regula Falsi
Definisikan fungsi f (x)
Tentukan rentang untuk x yang berupa batas bawah a dan batas atas b.
Tentukan nilai toleransi e dan iterasi maksimum N
Hitung f (a) dan f (b)
Untuk iterasi i = 1 s/d N
Hitung nilai x berdasarkan Persamaan di atas
Hitung f(x)
Hitung error = |f(x)|
Jika f(x).f(a) <0, maka b=x dan f(b)=f(x). Jika tidak, a = x dan f (a) = f (x).
Fungsi root_rf()
didasarkan pada langkah-langkah di atas. Sintaks fungsi tersebut adalah sebagai berikut:
root_rf <- function(f, a, b, tol=1e-7, N=100){
iter <- 1
fa <- f(a)
fb <- f(b)
x <- ((fb*a)-(fa*b))/(fb-fa)
fx <- f(x)
while(abs(fx)>tol){
iter <- iter+1
if(iter>N){
warning("iterations maximum exceeded")
break
}
if(fa*fx>0){
a <- x
fa <- fx
} else{
b <- x
fb <- fx
}
x <- (fb*a-fa*b)/(fb-fa)
fx <- f(x)
}
# iterasi nilai x sebagai return value
root <- x
return(list(`function`=f, root=root, iter=iter))
}
\(2\) \(Metode\) \(Terbuka\)
Metode terbuka merupakan metode yang menggunakan satu atau dua tebakan awal yang tidak memerlukan rentang sejumlah nilai. Metode terbuka terdiri dari beberapa jenis yaitu metode iterasi titik tetap, metode Newton-Raphson, dan metode Secant.
a) Metode Iterasi Titik Tetap
Ilustrasi metode iterasi titik tetap
Algoritma Metode Iterasi Titik Tetap
Definisikan f (x) dan g (x)
Tentukan nilai toleransi e dan iterasi masimum (N)
Tentukan tebakan awal x0
Untuk iterasi i = 1 s/d N atau f(xiterasi) ≥ e → xi = g(xi−1), Hitung f(xi)
Akar persamaan adalah x terakhir yang diperoleh
Fungsi root_fpi()
dapat digunakan untuk melakukan iterasi dengan argumen fungsi berupa persamaan non-linier, nilai tebakan awal, nilai toleransi, dan jumlah iterasi maksimum. Berikut adalah sintaks fungsi tersebut:
root_fpi <- function(f, x0, tol=1e-7, N=100){
iter <- 1
xold <- x0
xnew <- f(xold)
while(abs(xnew-xold)>tol){
iter <- iter+1
if(iter>N){
stop("No solutions found")
}
xold <- xnew
xnew <- f(xold)
}
root <- xnew
return(list(`function`=f, root=root, iter=iter))
}
Ilustrasi metode Newton-Raphson
Algoritma Metode Newton-Raphson
Definisikan f (x) dan f′(x)
Tentukan nilai toleransi e dan iterasi masimum (N)
Tentukan tebakan awal x0
Hitung f(x0) dan f′(x0)
Untuk iterasi i = 1 s/d N atau |f(x)| ≥ e, hitung x menggunakan Persamaan xn+1 = xn − f (xn) / f′(xn)
Akar persamaan merupakan nilai xi terakhir yang diperoleh.
Fungsi root_newton()
merupakan fungsi yang dibuat menggunakan algoritma di atas. Fungsi tersebut dituliskan pada sintaks berikut:
root_newton <- function(f, fp, x0, tol=1e-7, N=100){
iter <- 0
xold<-x0
xnew <- xold + 10*tol
while(abs(xnew-xold)>tol){
iter <- iter+1
if(iter>N){
stop("No solutions found")
}
xold<-xnew
xnew <- xold - f(xold)/fp(xold)
}
root<-xnew
return(list(`function`=f, root=root, iter=iter))
}
Algoritma Metode Secant
Definisikan f(x) dan f′(x)
Tentukan nilai toleransi e dan iterasi masimum (N)
Tentukan tebakan awal x0 dan x1
Hitung f(x0) dan f(x1)
Untuk iterasi i = 1 s/d N atau |f(x)| ≥ e
Akar persamaan adalah nilai x yang terakhir.
Fungsi root_secant()
merupakan fungsi yang penulis buat untuk melakukan iterasi menggunakan metode Secant. Berikut merupakan sintaks dari fungsi tersebut:
root_secant <- function(f, x, tol=1e-7, N=100){
iter <- 0
xold <- x
fxold <- f(x)
x <- xold+10*tol
while(abs(x-xold)>tol){
iter <- iter+1
if(iter>N)
stop("No solutions found")
fx <- f(x)
xnew <- x - fx*((x-xold)/(fx-fxold))
xold <- x
fxold <- fx
x <- xnew
}
root<-xnew
return(list(`function`=f, root=root, iter=iter))
}
Penutup
Persamaan linier adalah persamaan aljabar derajat 1, tetapi persamaan nonlinier adalah persamaan aljabar derajat 2 atau lebih tinggi.
Meskipun setiap persamaan linier dapat dipecahkan secara analitik, tidak demikian halnya dalam persamaan nonlinier.
Dalam ruang Euclidean berdimensi-n, ruang solusi dari persamaan linier variabel-n adalah bidang hiper, sedangkan persamaan nonlinier variabel n adalah permukaan hiper, yang bukan bidang hiper. (Kuadrat, permukaan kubik, dll.)
Referensi
https://id.wikipedia.org/wiki/Persamaan_linear
https://www.yuksinau.id/sistem-persamaan-linier/
https://bookdown.org/moh_rosidi2610/Metode_Numerik/rootfinding.html
https://websetnet.net/id/meet-plot-aplikasi-plotting-grafik-matematika-untuk-desktop-linux/amp/
https://id.strephonsays.com/linear-equation-and-vs-nonlinear-equation-9933