Universitas : Universitas Islam Negeri Maulana Malik Ibrahim Malang

Prodi : Tehnik Informatika

Persamaan diferensial merupakan persoalan matematis yang sering dijumpai dalam bidang teknik lingkungan. Sering kali suatu persamaan diferensial tidak dapat diselesaikan secara analitik sehingga diperlukan metode numerik untuk menyelesaikannya. Pada Chapter 10, kita akan membahas masalah-masalah dalam persamaan diferensial dan metode penyelesaiannya. Adapun yang akan dibahas pada Chapter 10 kali ini antara lain:

• Initial value problems

• Sistem persamaan diferensial

• Persamaan diferensial parsial ## Initial value problems

Initial value problems merupakan permasalahan yang sering ditemukan pada proses dekomposisi zat kimia atau polutan dalam reaktor. Penyelesaiaan persamaan diferensial biasanya dipersulit dengan tidak tersedianya informasi yang cukup untuk menyelesaikannya.Sebuah persamaan diferensial f ′ (x, . . .) merupakan hasil diferensiasi beberapa fungsi f (x, . . .). Proses penyelesaian persamaan diferensial, dan menemukan nilai f (x, . . .) untuk beberapa nilai x,… tidak dimungkinkan karena integral dari f ′ (x, . . .) hanya digambarkan bentuk umum. Pergeseran vertikal, atas atau bawah, tidak diketahui. Pergeseran vertikal ini menghasilkan konstanta integrasi. Selama proses diferensiasi, nilai apapun dari proses pergeseran vertikal (integrasi) akan hilang sebagai akibat dari eliminasi konstanta yang memiliki turunan 0. Kita biasa melakukannya ketika mengintegrasikan fungsi dengan menambahkan konstanta +C pada proses integrasi ke integral yang tidak terbatas.

Hal ini terkadang bukan menjadi permasalahan sebab jika menemukan nilai integrasi pada suatu batas tertentu syarat +C dibatalkan dan konstanta integrasi tidak diperlukan. Untuk persamaan diferensial biasa, tidak ada pembatalan yang nyaman, yang mengarah ke initial value problems. Initial value problems memberikan nilai f (x0, . . .), di mana x0 biasanya bernilai 0, meski tidak diharuskan. Nilai awal ini memberikan informasi yang cukup untuk menyelesaikan persamaan dan menemukan nilai aktual dari f (x, . . .) untuk sejumlah nilai x. Terdapat beberapa metode yang akan dibahas pada Chapter 10.1, antara lain:

• Metode Euler

• Metode Heun

• Metode Titik Tengah

• Metode Runge-Kutta Orde 4

• Metode multistep linier

10.1.1 Metode Euler

Metode Euler merupakan metode paling sederhana yang diturunkan dari deret Taylor. Penyelesaian initial value problems menggunakan metode Euler dilakukan melalui Persamaan (10.1).

Algoritma Metode Euler

  1. Tentukan titik awal integrasi x0 dan y0.

  2. Tentukan jumlah iterasi n dan step size h yang digunakan.

  3. Lakukan integrasi menggunakan Persamaan (10.1).

Algoritma tersebut, selanjutnya dapat disusun ke dalam sebuah fungsi R. Fungsi tersebut adalah sebagai berikut:

euler <- function(f, x0, y0, h, n){
x <- x0
y <- y0
for(i in 1:n){
y0 <- y0 + h*f(x0, y0)
x0 <- x0 + h
x <- c(x,x0)
y <- c(y, y0)
}
return(data.frame(x=x, y=y))
}

Contoh 10.1. Selesaikan persamaan diferensial di bawah ini, jika diketahui f(0)=1 menggunakan h=0,05 dan n=100!

                                                f'(x, y) = y

                                    
                                                  2x + 1

Jawab:

Penyelesaian secara analitik persamaan tersebut untuk nilai f (0) = 1 sebagai berikut: f (x) = √

                                           2x + 1
                                       

Secara numerik persamaan tersebut dapat diselesaikan sebagai berikut:

iterasi 1

                                       y (0, 5) = 1 + 0, 05 × 1

                                          (2 · 0) + 1 = 1, 05

iterasi 2

                                        y (0, 1) = 1, 05 + 0, 05 × 1

                                         (2 · 0, 05) + 1 = 1.097727
                                         

Kita dapat juga menggunakan fungsi euler() untuk menyelesaikan persamaan tersebut secara numerik. Hasil yang diperoleh selanjutnya diplotkan dengan hasil yang diperoleh menggunakan metode analitik. Berikut adalah sintaks yang digunakan:

# metode numerik
f1 <- function(x,y){y/(2*x+1)}
num <- euler(f1, x0=0, y0=1, h=0.05, n=100)
# metode analitik
f2 <- function(x){sqrt(2*x+1)}
x0 <- 0
y0 <- 1
x <- x0
y <- y0
for(i in 1:100){
y0 <- f2(x0+0.05)
x0 <- x0+0.05
x <- c(x, x0)
y <- c(y, y0)
}
true <- data.frame(x=x, y=y)

Berdasarkan hasil visualisasi dapat dilihat bahwa metode Euler dapat dengan baik memberikan pendekatan nilai integrasi persamaan. Pembaca dapat mencoba untuk melakukan simulasi kembali dengan nilai h yang lebih kecil.

Metode Heun

Metode Heun merupakan salah satu peningkatan dari metode Euler. Metode ini melibatkan 2 buah persamaan. Persamaan pertama disebut sebagai persamaan prediktor yang digunakan untuk memprediksi nilai integrasi awal (Persamaan (10.2)). Persamaan kedua disebut sebagai persamaan korektor yang mengoreksi hasil integrasi awal (Persamaan (10.3)). Metode Heun pada Chapter ini merupakan metode prediktor-korektor satu tahapan. Akurasi integrasi dapat ditingkatkan dengan melakukan koreksi ulang terhadap nilai koreksi semula menggunakan persamaan kedua.

                                  y0i+1 = yi + f (xi, yi) h                                    (10.2)

                         yi+1 = yi + f (xi, yi) + f(xi+1, y0i+1)2h                            (10.3)

Algoritma Metode Heun

  1. Tentukan titik awal integrasi x0 dan y0.

  2. Tentukan jumlah iterasi n dan step size h yang digunakan.

  3. Lakukan prediksi nilai awal dengan Persamaan (10.2).

  4. Lakukan koreksi nilai awal menggunakan Persamaan (10.3).

  5. Lakukan koreksi terhadap nilai koreksi yang dihasilkan sebelumnya menggunakan Persamaan (10.3).

heun <- function(f, x0, y0, h, n, iter=1){
x <- x0
y <- y0
for(i in 1:n){
ypred0 <- f(x0,y0)
ypred1 <- y0 + h*ypred0
ypred2 <- f(x0+h,ypred1)
ykor <- y0 + h*(ypred0+ypred2)/2
if(iter!=1){
for(i in 1:iter)
     ykor <- y0 + h*(ypred0+f(x0+h,ykor))/2
  }
}
y0 <- ykor
x0 <- x0 + h
x <- c(x, x0)
y <- c(y, y0)
}
   return(data.frame(x=x,y=y))
}