UNIVERSITAS GADJAH MADA FAKULTAS MIPA JURUSAN ILMU KOMPUTER DAN ELEKTRONIKA ILMU KOMPUTER RKPM Rencana Kegiatan Pembelajaran Mingguan Modul Pembelajaran Minggu ke 13,14 PENYELESAIAN NUMERIK PERSAMAAN DIFERENSIAL oleh 1. Drs. G.P. Dalijo, Dipl. Comp. 2. Agus Sihabuddin, S.Si., M.Kom. Didanai dengan dana BOPTN P3-UGM Tahun Anggaran 2012 Desember 2012 PENYELESAIAN NUMERIK PERSAMAAN DIFERENSIAL Bentuk persamaan diferensial sangant penting digunakan dalam model fisika atau biologi, maupun teknik. Dalam hal ini, persamaan diferensial yang akan diselesaikan biasanya berbentuk: y' ( x) f ( x, y( x)), x x0 dengan y(x) adalah fungsi yang akan dicari. Persamaan tersebut dinamakan persamaan diferensial order 1. Adapun bentuk paling sederhana dari persamaan diferensial y’(x) = f(x) dengan f(x) adalah fungsi yang diketahui. Persamaan umum dari persamaan ini adalah: y ( x) f ( x)dx c dengan c sembarang konstan. Persamaan eksak didapatkan jika diberikan nilai y(x) pada suatu titik x 0 sehingga: y(x0) = y0 maka c akan bisa dicari. Persamaan diferensial y’(x) = f(x, y(x)) mempunyai penyelesaian umum yang memuat sembarang konstan c yang bisa dihitung dari titik awal y(x0) = y0. Maka x0 disebut titik awal, y0 disebut nilai awal dan masalah penyelesaian y’(x) = f(x,y(x)), dan Y(x0) = y0 disebut masalah nilai awal. Selain itu, notasi-notasi yang dipergunakan dalam bab ini adalah sebagai berikut: y(x) : penyelesaian sebenarnya terhadap masalah nilai awal y0 : nilai awal y’(x) = f (x, y(x)), x0 ≤ x ≤ b y(x0)=y0 y(x) : penyelesaian hampiran Himpunan titik-titik : x0 < x1 < x2 < ..... <xn = b Mempunyai nilai : xn = x0 + nh. n = 0, 1, ....., n dengan h b x0 n y(xn) = yh(xn) = yn; n = 0, 1, ....., n 8.1 Metode Euler Metode ini merupakan metode paling mudah dalam penyelesaian persamaan diferensial. Akan tetapi, metode ini bukan metode yang efisien. Dari hampiran terhadap derivatif: y ' ( x) 1 y x h y ( x) h Jika diterapkan terhadap masalah awal persamaan difeensial pada titik x = xn y’(xn) = f(xn,y(xn)) didapatkan: 1 y( xn 1) y( xn) f ( xn, y( xn)) h y ( xn 1) y ( xn) hf ( xn, y ( xn)) Maka metode euler dapat dirumuskan sebagai: y n1 yn hf ( xn, yn),0 n n 1 Untuk tebakan awal, digunakan y0 = y0 Secara visual, metode euler dapat diilustrasikan sebagai berikut: Y(x) Y(xn+1) Yn+1 Y(xn) Gambar 8.1 Ilustrasi metode euler Contoh soal: 1. Selesaikan: Y’(x) = -Y(x), Y(0) = 1, untuk h = 0.1 Jawab: y n 1 y n hy n , n 0 y 0 1, x n 0 nh nh Maka : y1 y 0 hy 0 1 (0,1)(1) 0,9 , x1 0,1 y 2 y1 hy1 0,9 (0,1)(0,9) 0,81 , x2 0,2 y 3 y 2 hy 2 0,81 (0,1)(0,81) 0,729 , x3 0,3 y h (1) 0,34867 Penyelesaian sebenarnya adalah: Y ( x) e x y (1) y n (1) e 1 0,348 0,00192 Perhitungan eror: Y ( x1 ) y1 e 0,1 y1 0,004837 Y ( x 2 ) y 2 e 0, 2 y 2 0,001873 Y (1) y n (1) e 1 0,348 0,00192 2. Selesaikan persamaan diferensial: Y ' ( x) Y ( x) x 2 2 , Y (0) 2 x 1 sampai iterasi ke-3 untuk h=0,1 3. Selesaikan persamaan diferensial: Y ' ( x) 1 2 2Y ( x) ,0 x 1, Y (0) 0 dengan h=0,2 1 x2 Jika penyelesaian sebenarnya adalah Y ( x) x , hitung error untuk yn(1) ! 1 x2 Algoritma Metode Euler untuk persamaan diferensial order 1 dapat dirumuskan sebagai berikut: Input Definisi y0, x0 (nilai awal dan titik awal) Xn = b (batas interval) N (jumlah subinterval) fungsi f(x,y(x)) (sisi kanan persamaan diferensial) x := x0, y := y0 h:= (xn - y0) / n for n:=1 to n {y:= y+h f(x,y(x)) x := x0 + nh output: x,y} adapun metode Euler untuk sistem persamaan diferensial dapat dijabarkan sebagai berikut. Terdapat Sistem Persamaan Diferensial: Y1’(x) = f1(x1,y1,y2,.....,yn). Y1(x0) = y10 Y2’(x) = f2(x1,y1,y2,.....,yn). Y2(x0) = y20 . . . yn’(x)=fn(x1,y1,y2,.....,yn). Yn(x0) = yn0 Maka metode euler diterapkan pada tiap persamaan: Ym,0 = ym0; m = 1, ..., n y1, n+1 = y1, n+h f1(xn,y1,n,y2,n,....,yn,n) y2, n+1 = y2, n+h f2 (xn,y1,n,y2,n,...,yn,n) . . yn, n+1 = yn, n+h fn (xn,y1, n, y2, n,......, yn, n) 8.2 Metode Euler Termodifikasi Untuk h yang cukup kecil, metode euler biasanya akurat. Tetap untuk h yang terlalu besar, kadang-kadang metode euler merupakan hampiran yang buruk. Salah satu cara memperbaiki adalah dengan menggunakan titik baru di dekat titik awal dan mengestimasi kemiringan dari rata-rata kemiringan ke-2 titik tersebut. Secara konkret, rumus dari metode euler termodifikasi adalah: y 0 Y0 m1 f ( x n , y n ) m2 f ( x n h, y n hm1 ) y n 1 y n h m1 m2 2 Contoh soal: Selesaikan estimasi untuk y(x) menggunakan metode euler termodifikasi sampai iterasi ke-3, h=0,1. 1. Y ' ( x) Y ( x), Y (0) 1 2. Y ' ( x) Y ( x) x 2 2 , Y (0) 2 x 1 8.3 Metode Titik Tengah Cara lain untuk memperbaiki metode euler adalah dengan mencari hampiran pada titik t i h dan mengambil kemirinagn pada titik ini. 2 Secara konkret, metode ini menggunakan langkah-langkah perhitungan sebagai berikut: y 0 Y0 m1 f ( x n , y n ) hm n m2 f x n , y n 1 2 2 y n 1 y n hm2 Contoh soal: Selesaikan persamaan diferensial berikut menggunakan metode titik tengah sampai iterasi ke-3, h=0,2. 1. Y ' ( x) Y ( x), Y (0) 1 2. Y ' ( x) Y ( x) x 2 2 , Y (0) 2 x 1 8.4 Metode Runge-Kutta Metode ini melakukan beberapa kali perhitungan kemiringan. Metode RungeKutta yang paling sering dipakai melakukan 2x perhitungan kemiringan. y 0 Y0 m1 f ( x n , y n ) m2 f ( x n h, y n hm1 ) y n 1 y n h(1 m1 2 m2 ) dengan α Є (0,1). Perhatikan: Jika α = β = 1 dan 1 2 12 , yang terbentuk adalah metode euler termodifikasi. Jika 1 2 dan 1 0, 2 1 , yang terbentuk adalah metode titik tengah. Untuk memenuhi ketentuan agar error yang terjadi tidak melebihi order 3 (O(h3)), maka pemilihan harus memenuhi persamaan: 1 2 1 , 2 12 , 2 1 2 Dengan demikian: Β = α, 2 1 , 2 1 1 1 2 → Metode Runge-Kutta untuk 2x perhitungan kemiringan. Bentuk umum metode Runge-Kutta yang melibatkan n kali perhitungan kemiringan adalah: y 0 Y0 m1 f ( x n , y n ) m2 f ( x n 2 h, y n 21hm1 ) i 1 mi f ( x n i h, y n h ijmj) j 1 i y n 1 y n h jmj j 1 Metode Runge-Kutta yang sering dipakai adalah metode Runge-Kutta Klasik yang melibatkan 4x perhitungan kemiringan. Bentuknya adalah sebagai berikut: y 0 Y0 m1 f ( x n , y n hm h m2 f x n , y n 1 2 2 hm2 h m3 f x n , y n 2 2 m 4 f ( x n h, y n hm3 ) y n 1 y n h (m1 2m2 2m3 m 4 ) 6 Contoh soal: Selesaikan persamaan diferensial berikut menggunakan metode Runge-Kutta Klasik sampai iterasi ke-3 dengan h=0,1. 1. Y ' ( x) Y ( x), Y (0) 1 Y ( x) x 2 2 2. Y ' ( x) , Y (0) 2 x 1 Perbandingan efisiensi metode Runge-Kutta dibandingkan dengan metode yang lain dapat diperlihatkan dalam tabel sebagai berikut: Tabel 8.1 Perbandingan efisiensi perhitungan beberapa metode penyelesaian numerik persamaan diferensial Metode + x dan : Langkah Error Waktu (s) -6 Euler 1 1 2.000.000 1.4 x 10 342.7 -8 Euler Termodifikasi 4 3 6600 4.9 x 10 2.2 -8 Titik Tengah 3 4 8300 5.0 x 10 2.7 Runge-Kutta Klasik 9 11 80 4.5 x 10-8 0.1 Catatan: Langkah, error, dan waktu dihitung dari penyelesaian terhadap persamaan digital : Y’(x) = 5(x-1)Y(x),Y(0)=5 8.5 Metode Multistep Metode ini mencari solusi dari persamaan: Y ( x n 1 ) Y ( x n ) x n 1 xn yang didapatkan dari: x n 1 xn y ' ( x)dx x n 1 xn f ( x, y ( x)) dx f ( x, y ( x)) dx Metode yang paling sering dipakai adalah Metode Adams – Bassforth. Metode ini biasanya lebih efisien daripada metode Runge-Kutta, terutama jika derivatif f(c,3)) sulit untuk dicari. Rumus dari metode Adams – Bashforth: y n 1 y n h (3 f ( x n , y n ) f ( x n 1 , y n 1 )) 2 Dalam hal ini, y1 harus dicari dari metode yang lain. Agar error yang terjadi berorde sama, ada 2 kemungkinan metode yang dapat dipakai untuk menghitung y1: 1. Menggunakan metode euler 2. Menggunakan metode Runge-Kutta order 2 (midpoint, Euler termidifikasi). Contoh soal: 1. Selesaikan persamaan diferensial menggunakan metode Adams – Basforth sampai iterasi ke-3 dengan h = 0,. Tentukan y1 dengan metode euler termodifikasi Y’(x) = -Y(x), Y(0) = 1 2. Selesaikan persamaan diferensial berikut menggunakan metode Adams – Basforth untuk x = 2.0 dengan h = 0.5. Tentukan y1 dengan metode euler Y’(x) = 5x – 1 – 2 Y(x), Y(0) = 1