UNIVERSITAS GADJAH MADA Fakultas MIPA Jurusan ILMU

advertisement
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 n1  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
 2Y ( 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  hm1 )
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
Download