Materi bagian 1 dapat diakses disini Penyelesaian Diferensial Numerik
Metode Euler mempunyai ketelitian yang rendah karena galatnya besar (sebanding dengan h). Buruknya galat ini dapat dikurangi dengan menggunakan metode Heun, yang merupakan perbaikan metode Euler (modified Euler's method). Metode ini melibatkan 2 buah persamaan. Persamaan pertama disebut sebagai persamaan prediktor yang digunakan untuk memprediksi nilai integrasi awal (Persamaan (3.1)). Persamaan kedua disebut sebagai persamaan korektor yang mengoreksi hasil integrasi awal (Persamaan (3.2)). Akurasi integrasi dapat ditingkatkan dengan melakukan koreksi ulang terhadap nilai koreksi semula menggunakan persamaan kedua.
Algoritma Metode Heun:
Tentukan titik awal integrasi x0 dan y0.
Tentukan jumlah iterasi n dan step size h yang digunakan.
Lakukan prediksi nilai awal dengan Persamaan (3.1)
Lakukan koreksi nilai awal menggunakan Persamaan (3.2).
Lakukan koreksi terhadap nilai koreksi yang dihasilkan sebelumnya menggunakan Persamaan (3.2).
Contoh. Selesaikan persamaan diferensial di bawah ini, jika diketahui f(0) = 1 menggunakan h = 0,05 dan n = 100!
Jawab:
Contoh perhitungan secara manual menggunakan metode Heun untuk sekali iterasi adalah sebagai berikut:
Metode Euller yang dimodifikasi digunakan untuk memperbaiki metode Euller sebelumnya. Prinsipnya juga menggunakan deret Taylor:
Dengan menggunakan hanya tiga suku awal dari ruas kanan persamaan. Sebagai pendekatan:
Persamaan (4.2) disubtitusikan ke persamaan (4.1)
Dimana;
Karena y(x0 + h) masih dicari maka yang digunakan adalah y*(x0 + h)
Contoh.
Dengan initial condition: x0 = 1, y0 = 1
Tentukan y untuk x = 1,1 dengan h = 0,1
Jawab:
Dengan menggunakan perumusan (3.1) maka:
Pada metode Euller memanfaatkan deret taylor order 1, Metode Euller yang dimodifikasi memanfaatkan deret taylor order 2, Sedangkan metode Runge-Kutta menggunakan deret Taylor sampai dengan order 4. Perumusan metode Runge-Kutta sebagai berikut:
Dimana:
k0 = h f(xn, yn)
k1 = h f(xn + 0,5h, yn + 0,5 k0)
k2 = h f(xn + 0,5h, yn + 0,5 k1)
k3 = h f(xn + h, yn + k2)
Harga h. ditentukan sendiri oleh pemakai. Semakin kecil harga h semakin kecil nilai kesalahannya.
Contoh.
Persamaan diferensial berikut ini:
Dengan initial condition: x0 = 1, y0 = 1
Tentukan nilai y pada x = 1,2
Jawab:
Pilih nilai h = 0,2
Maka:
dengan:
k0 = h f(x0, y0) = 0,2 [ 2(1)2 + 3(1)2 + 4(1)(1)] = 1,8
k1 = h f(x0 + 0,5h, y0 + 0,5 k0)
= 0,2 f(1+0,1 ; 1+0,9)
= 0,2 [2(1,1)2 + 3(1,9)2 + 4(1,1)(1,9)]
= 4,322
k2 = h f(x0 + 0,5h, y0 + 0,5 k1)
= 0,2 f(1+0,1 ; 1+2,161)
= 0,2 [2(1,1)2 + 3(3,16)2 + 4(1,1)(3,16)]
= 9,25
k3 = h f(x0 + h, y0 + k2)
= 0,2 f(1+0,2 ; 1+9,25)
= 0,2 [2(1,2)2 + 3(10,25)2 + 4(1,2)(10,25)]
= 73,4535
Pertama-tama bukalah aplikasi MATLAB
Buatlah M-File
Tuliskan fungsi yang akan di diferensialkan. Misal
Simpan file, lalu buatlah M-File baru yang terpisah dengan fungsi. Dengan catatan file yang berisi fungsi jangan di close.
Masukan script metode Euler
Kemudian ubah-ubahlah batas bawah, batas atas, dan h sesuai dengan soal. Pada soal yang akan diselesaikan diketahui initial condition : x0 = 1 (masukan sebagai a), y0 =1. Mencari y untuk x = 1,2 (masukan sebagai b) dengan h = 0,2
Lalu tekan “run” otomatis file akan ter-save terlebih dahulu baru dijalankan.
Maka hasilnya akan tampil di “Command window”.
Hasil y = 9 itu adalah hasil dari f(xn, yn) atau turunan dari y ketika dimasukan x0 = 1, dan y0 =1. Lalu y = 2.8 adalah hasil dari y1 = y0 + hf(x0, y0) .
Buat M-File baru
Masukan script metode Heun
Kemudian ubah-ubahlah fungsi, batas bawah (a), batas atas (b), dan h sesuai dengan soal. Pada soal yang akan diselesaikan diketahui f (0) = 1, yang berarti x0 = 0 (masukan sebagai a) dan y0 = 1, menggunakan h = 0,05 dan n = 1 (jumlah data yang diinginkan sebnayak satu).
Lalu tekan “run” otomatis file akan ter-save terlebih dahulu baru dijalankan.
Maka hasilnya akan tampil di “Command window”
Buat M-File baru
Masukan script metode Runge-Kutta
Kemudian ubah-ubahlah fungsi, batas bawah (a), batas atas (b), alpha, dan h sesuai dengan soal. Pada soal yang akan diselesaikan diketahui initial condition: x0 = 1 (masukan sebagai a), y0 = 1 (masukan sebagai alpha). Mencari nilai y untuk x = 1.2 (masukan sebagai b), dengan h = 0,2.
Lalu tekan “run” otomatis file akan ter-save terlebih dahulu baru dijalankan.
Maka hasilnya akan tampil di “Command window”