821 likes | 2.15k Views
Solusi Persamaan Diferensial Biasa (Bag. 1). Bahan Kuliah IF4058 Topik Khusus Informatika I Oleh ; Rinaldi Munir (IF-STEI ITB). Jenis-jenis Persamaan Diferensial. Persamaan diferensial biasa (PDB) - Ordinary Differential Equations (ODE).
E N D
SolusiPersamaanDiferensialBiasa(Bag. 1) BahanKuliah IF4058 TopikKhususInformatika I Oleh; RinaldiMunir (IF-STEI ITB) IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
Jenis-jenisPersamaanDiferensial • Persamaandiferensialbiasa(PDB) - Ordinary Differential Equations (ODE). PDB adalahpersamaandiferensial yang hanyamempunyaisatupeubahbebas. Peubahbebasbiasanyadisimbolkandenganx. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
PersamaanDiferensialParsial(PDP) - Partial Differential Equations (PDE) PDP adalahpersamaandiferensial yang mempunyailebihdarisatupeubahbebas. Turunanfungsiterhadapsetiappeubahbebasdilakukansecaraparsial. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
ContohPersamaanDiferensialdalamFisika • HukumteganganKirchoffmenyatakanbahwajumlahaljabardariperubahantegangandisekelilingrangkaiantertutupadalahnol, IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
PDB Orde 1 • Bentukbaku PDB ordesatudengannilaiawalditulissebagai y' = f(x, y) dengannilaiawaly(x0) = y0 • Catatan: Kadang-kadangy' ditulissebagaidy/dx. Jadi, y' = dy/dx. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
PDB ordesatu yang tidakmengikutibentukbakutersebutharusditulisulangmenjadibentukpersamaanbaku, agar iadapatdiselesaikansecaranumerik. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
Penyelesaian PDB secaranumerikberartimenghitungnilaifungsidixr+1 = xr + h, denganhadalahukuranlangkah (step) setiaplelaran. • Padametodeanalitik, nilaiawalberfungsiuntukmemperolehsolusi yang unik, sedangkanpadametodenumeriknilaiawal (initial value) berfungsiuntukmemulailelaran. • Terdapatbeberapametodenumerik yang seringdigunakanuntukmenghitungsolusi PDB, yaitu 1. Metode Euler 2. MetodeHeun 3. MetodeDeret Taylor • MetodeRunge-Kutta IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
Metode Euler • Diberikan PDB ordesatu, y' = dy/dx = f(x, y); y(x0) = y0 • Misalkan yr = y(xr) adalahhampirannilaiydixr yang dihitungdenganmetode Euler. Dalamhalini xr = x0 + rh, r = 0,1,2,... n. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
Duasukupertamapersamaan (3), yaitu y(xr+1) = y(xr) + hf(xr, yr) ; r = 0, 1, 2, ..., n menyatakanmetode Euler. • Untukmenyederhanakanpenulisan, persamaanmetode Euler dapatjugaditulislebihsingkatsebagai yr+1 = yr + hfr IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
function y_Euler(x0, y0, b, h:real):real; {menghitungnilai y(b) pada PDB y'=f(x,y); y(x0)=y0 denganmetode Euler } var r, n: integer; x, y: real; begin n:=(b-x0)/h; {jumlahlangkah} y:=y0; {nilaiawal} x:=x0; for r:=1 to n do begin y:=y + h*f(x,y); { hitungsolusi y[xr] } x:=x + h; { hitungtitikberikutnya } end; {for} y_Euler:=y; {y(b)} end; IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
AnalisisGalatMetode Euler • Metode Euler mengandungduamacamgalat, yaitugalatpemotongan (truncation error) dangalatlonggokan (cumulative error). • Galatpemotongandapatlangsungditentukandaripersamaan • Perhatikanbahwanilaipadasetiaplangkah (yr) dipakailagipadalangkahberikutnya (yr+1). • Galatsolusipadalangkahke-r adalahtumpukangalatdarilangkah-langkahsebelumnya. Galat yang terkumpulpadaakhirlangkahke-rinidisebutgalatlonggokan (cumulative error). IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
Jikalangkahdimulaidarix0 = adanberakhirdixn= bmaka total galat yang terkumpulpadasolusiakhir (yn) adalah • Jadi, galatlonggokansebandingdenganh. • Iniberartimetode Euler memberikanhampiransolusi yang buruk, sehinggadalampraktekmetodeinikurangdisukai, namunmetodeinimembantuuntukmemahamigagasandasarmetodepenyelesaian PDB denganorde yang lebihtinggi. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
Contoh: Diketahui PDB dy/dx = x + y dany(0) = 1 Gunakanmetode Euler untukmenghitungy(0,10) denganukuranlangkahh = 0.05 danh = 0.02. Jumlahangkabena = 5. Diketahuisolusisejati PDB tersebutadalahy(x) = ex - x - 1. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
TafsiranGeometriMetodePDB • Pikirkanlahkembalibahwaf(x,y) dalampersamaandiferensialmenyatakangradiengarissinggungkurvadititik(x,y). • Kita mulaimenarikgarissinggungdarititik (x0, y0) dengangradienf(x0, y0) danberhentidititik (x1, y1), dengany1dihitungdaripersamaan Euler. • Selanjutnya, darititik (x1, y1) ditariklagigarisdengangradienf(x1, y1) danberhentidititik (x2, y2), dengany2dihitungdaripersamaan Euler. • Prosesinikitaulangbeberapa kali, misalnyasampailelaranke-n, sehinggahasilnyaadalahgarispatah-patahseperti yang ditunjukkanpadaGambarberikut: IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
BerdasarkantafsirangeometripadaGambardiatas, kitajugadapatmenurunkanmetode Euler. TinjauGambardibawahini. Gradien (m) garissinggungdixradalah IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
MetodeHeun (PerbaikanMetoda Euler) • Metode Euler mempunyaiketelitian yang rendahkarenagalatnyabesar (sebandingdenganh). • BuruknyagalatinidapatdikurangidenganmenggunakanmetodeHeun, yang merupakanperbaikanmetode Euler (modified Euler's method). • PadametodeHeun, solusidarimetode Euler dijadikansebagaisolusiperkiraanawal (predictor). S • Selanjutnya, solusiperkiraanawalinidiperbaikidenganmetodeHeun (corrector). IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
PersamaanHeun: yr+1 = yr+ h/2 [f(xr, yr) + f(xr+1, yr+1)] • Dalampersamandiatas, sukuruaskananmengandungyr+1. Nilaiyr+1iniadalahsolusiperkiraanawal (predictor) yang dihitungdenganmetode Euler. • Karenaitu, persamaanHeundapatditulissebagai Predictor : y(0)r+1 = yr + hf(xr, yr) Corrector : yr+1 = yr + h/2 [f(xr, yr) + f(xr+1, y(0)r+1)] atauditulisdalamsatukesatuan, yr+1 = yr+ h/2[f(xr,yr) + f(xr+1, yr + hf(xr, yr)] IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
TafsiranGeometriMetodeHeun: • GalatMetodeHeun: = O(h3) IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
Galatlonggokan: IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
functiony_Heun(x0, y0, b, h:real):real; {menghitung y(b) denganmetodeHeunpada PDB y'=f(x,y); y(x0)=y0 } var r, n: integer; x, y, y_s : real; begin n:=(b-x0)/h; {jumlahlangkah} y:=y0; {nilaiawal} x:=x0; for r:=1 to n do begin y_s:=y; { y darilangkah r-1 } y:=y + h*f(x,y); { y(xr) dengan Euler } y:=y_s + h/2 * ((f(x,y_s) + f(x+h,y)); { y(xr) dengan Heun } x:=x+1; { titikberikutnya} end; y_Heun:=y; end; IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
Contoh: Diketahui PDB dy/dx = x + y ; y(0) = 1 Hitungy (0.10) denganmetodeHeun (h = 0.02) Penyelesaian: Diketahui f(x, y) = x + y a = x0 = 0; b = 0.10; h = 0.02 makan = (0.10 - 0)/0.02 = 5 (jumlahlangkah) Langkah-langkah: x1 = 0.02 y(0)1 = y0 + hf(x0, y0) = 1 + 0.02(0 + 1) = 1.0200 y(1)1 = y0 + (h/2) [f(x0,y0) + f(x1,y(0)1)] = 1 + (0.02/2) (0 + 1 + 0.02 + 1.0200) = 1.0204 IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
x2 = 0.04 y(0)2 = y1 + hf(x1, y1) = 1.0204 + 0.02 (0.02 + 1.0204) = 1.0412 y(1)2 = y1 + (h/2) [f(x1,y1) + f(x2, y(0)2)] = 1.0204 + (0.02/2) [0.02 + 1.0204 + 0.04 + 1.0412] = 1.0416 … x5 = 0.10 y(0)5 = y4 + hf(x4, y4) y(1)5 = y4 + (h/2) [f(x4,y4) + f(x5,y(0)5)] = 1.1104 Jadi, y (0.10) 1.1104. Bandingkan: Nilaisejati : y(0.10) = 1.1103 Euler (Contoh 8.4) : y(0.10) = 1.1081 Heun (Contoh 8.5) : y(0.10) = 1.1104 lebihbaikdari Euler IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
PerluasanMetodeHeun • MetodeHeundapatdiperluasdenganmeneruskanlelarannyasebagaiberikut: y(0)r+1 = yr + hf(xr, yr) y(1)r+1 = yr+ h/2 [f(xr, yr) + f(xr+1, y(0)r+1)] y(2)r+1 = yr+ h/2 [f(xr, yr) + f(xr+1, y(1)r+1)] y(3)r+1 = yr + h/2 [f(xr, yr) + f(xr+1, y(2)r+1)] .... y(k+1)r+1 = yr + h/2 [f(xr, yr) + f(xr+1, y(k)r+1)] • Kondisiberhentiadalahbilay(k)r+1 - y(k-1)r+1 < IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
MetodeDeret Taylor • Metodederet Taylor adalahmetode yang umumuntukmenurunkanrumus-rumussolusi PDB. • Metode Euler merupakanmetodederet Taylor yang paling sederhana. • Diberikan PDB y'(x) = f(x,y) dengankondisiawaly(x0) = y0 Misalkan yr+1 = y(xr+1), r = 0,1,…,n adalahhampirannilaiy dixr+1. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
Hampiraninidiperolehdenganmenguraikanyr+1disekitarxrsebagaiberikut:Hampiraninidiperolehdenganmenguraikanyr+1disekitarxrsebagaiberikut: • Persamaandiatasmenyiratkanbahwauntukmenghitunghampirannilaiyr+1, kitaperlumenghitungy'(xr), y"(xr) ,…, y(n)(xr). IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
Contoh: Diketahui PDB dy/dx = ½ x - ½ y ; y(0) = 1 Tentukany(0.50) denganmetodederet Taylor ( h = 0.25). IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
Galatmetodederet Taylor IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
MetodeRunge-Kutta • Penyelesaian PDB denganmetodederet Taylor tidakpraktiskarenametodetersebutmembutuhkanperhitunganturunan. • MetodeRunge-Kuttaadalahalternatif lain darimetodederet Taylor yang tidakmembutuhkanperhitunganturunan. • Metodeiniberusahamendapatkanderajatketelitian yang lebihtinggi, dansekaligusmenghindarkankeperluanmencariturunan yang lebihtinggi. • MetodeRunge-Kuttaadalahmetode PDB yang paling popuperkarenabanyakdipakaidalampraktek. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
Bentukumummetoda Range-Kuttaorde-nialah: yr+1 = yr + a1k1 + a2k2 + ... + an kn dengana1, a2, ..., anadalahtetapan, dan k1 = hf(xr, yr) k2 = hf(xr+ p1h, yr + q11k1) k3 = hf (xr + p2h, yr+ q21k1 + q22k2) ... kn = hf(xr+ pn-1h, yr + qn-1,1k1 + qn-1,2 k2 + ... + qn-1, n-1kn-1) IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
Nilaiai, pi, qijdipilihsedemikianrupasehinggameminimumkangalat per langkah, danpersamaandiatasakansamadenganmetodederet Taylor dariordesetinggimungkin.. • Galat per langkahmetodeRunge-Kuttaorde-n: O(hn+1) • GalatlonggokanmetodeRunge-Kuttaorde-n: O(hn) • Ordemetode = n IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
MetodeRunge-KuttaOrdeSatu • MetodeRunge-Kuttaordesatuberbentuk k1 = hf(xr, yr) yr+1 = yr + (a1k1) Galat per langkahmetode R-K ordesatuadalahO(h2). Galatlonggokanmetode R-K ordesatuadalahO(h). • Yang termasukkedalammetodeRunge-Kuttaordesatuialahmetode Euler: k1 = hf(xr, yr) yr+1 = yr + k1 (dalamhalinia1 = 1) IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
MetodeRunge-KuttaOrdeDua • MetodeRunge-Kuttaordeduaberbentuk k1 = hf(xr, yr) k2 = hf(xr+ p1h, yr + q11k1) yr+1 = yr + (a1k1 + a2k2) • Galat per langkahmetodeRunge-KuttaordeduaadalahO(h3). • GalatlonggokanmetodeRunge-KuttaordeduaadalahO(h2). IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
ContohmetodeRunge-KuttaordeduaadalahmetodeHeun, yang dalamhalini a2 = 1/2, a1 = 1/2, p1 = q11 = 1 • DalambentukRunge-Kuttaorde 2, metodeHeundapatditulissebagai k1 = hf(xr,yr) k2 = hf(xr + h, yr + k1) yr+1 = yr + 1/2 (k1 + k2) IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
ContohmetodeRunge-Kuttaordedualainnyaialahmetode Ralston, yang dalamhalini a2 = 2/3 a1 = 1/3, p1 = q11 = 3/4 • sehinggametode Ralston dapatditulisdalambentukRunge-Kuttaordeduasebagai k1 = hf (xr, yr) k2 = hf (xr + 3/4h, yr+ 3/4k1) yr+1 = yr + (1/3k1 + 2/3k2) IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
MetodeRunge-KuttaOrdeTiga • MetodeRunge-Kutta yang terkenaladalahmetodeRunge-KuttaordetigadanmetodeRunge-Kuttaordeempat. • MetodeRunge-Kuttaordetigaberbentuk: k1 = hf (xr, yr) k2 = hf (xr + 1/2h, yr + 1/2k1) k3 = hf (xr + h, yr - k1 + 2k2) yr+1 = yr + 1/6 ( k1 + 4k2 + k3) • Galat per langkahmetode R-K ordetigaadalahO(h4). • Galatlonggokanmetode R-K ordetigaadalahO(h3). IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
function y_RK3(x0, y0, b, h:real):real; {menghitung y(b) denganmetodeRunge-Kuttaordetigapada PDB y'=f(x,y); y(x0)=y0 } var r, n: integer; x, y, k1, k2, k3: real; begin n:=(b - x0)/h; {jumlahlangkah} y:=y0; {nilaiawal} x:=x0; for r:=1 to n do begin k1:=h*f(x, y); k2:=h*f(x + h/2, y + k1/2); k3:=h*f(x + h, y - k1 + 2*k2); y:=y + (k1 + 4*k2 + k3)/6 { nilai y(xr) } x:=x+h; { titikberikutnya} end; y_RK3:=y; end; IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
MetodeRunge-KuttaOrdeEmpat MetodeRunge-Kuttaordeempatadalah k1 = hf (xr, yr) k2 = hf (xr + 1/2h, yr + 1/2k1) k3 = hf (xr + 1/2h, yr+ 1/2k2) k4 = hf (xr + h, yr + k3) yr+1 = yr + 1/6 (k1 + 2k2 + 2k3 + k4) • Galat per langkahmetodeRunge-KuttaordeempatadalahO(h5). • GalatlonggokanmetodeRunge-KuttaordeempatadalahO(h4). IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
function y_RK4(x0, y0, b, h:real):real; {menghitung y(b) denganmetodeRunge-Kuttaordeempatpada PDB y'=f(x,y); y(x0)=y0 } var r, n: integer; x, y, k1, k2, k3, k4: real; begin n:=(b - x0)/h; {jumlahlangkah} y:=y0; {nilaiawal} x:=x0; for r:=1 to n do begin k1:=h*f(x, y); k2:=h*f(x + h/2, y + k1/2); k3:=h*f(x + h/2, y + k2/2); k4:=h*f(x + h, y + k3); y:=y + (k1 + 2*k2 + 2*k3 + k4)/6 { nilai y(xr) } x:=x+h; { titikberikutnya} end; y_RK4:=y; end; IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
Contoh: IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB