1 / 49

Solusi Persamaan Diferensial Biasa (Bag. 1)

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).

rollin
Télécharger la présentation

Solusi Persamaan Diferensial Biasa (Bag. 1)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. SolusiPersamaanDiferensialBiasa(Bag. 1) BahanKuliah IF4058 TopikKhususInformatika I Oleh; RinaldiMunir (IF-STEI ITB) IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  2. Jenis-jenisPersamaanDiferensial • Persamaandiferensialbiasa(PDB) - Ordinary Differential Equations (ODE). PDB adalahpersamaandiferensial yang hanyamempunyaisatupeubahbebas. Peubahbebasbiasanyadisimbolkandenganx. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  3. PersamaanDiferensialParsial(PDP) - Partial Differential Equations (PDE) PDP adalahpersamaandiferensial yang mempunyailebihdarisatupeubahbebas. Turunanfungsiterhadapsetiappeubahbebasdilakukansecaraparsial. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  4. ContohPersamaanDiferensialdalamFisika • HukumteganganKirchoffmenyatakanbahwajumlahaljabardariperubahantegangandisekelilingrangkaiantertutupadalahnol, IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  5. 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

  6. PDB ordesatu yang tidakmengikutibentukbakutersebutharusditulisulangmenjadibentukpersamaanbaku, agar iadapatdiselesaikansecaranumerik. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  7. 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

  8. 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

  9. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  10. 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

  11. 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

  12. 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

  13. 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

  14. 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

  15. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  16. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  17. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  18. 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

  19. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  20. BerdasarkantafsirangeometripadaGambardiatas, kitajugadapatmenurunkanmetode Euler. TinjauGambardibawahini. Gradien (m) garissinggungdixradalah IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  21. 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

  22. 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

  23. TafsiranGeometriMetodeHeun: • GalatMetodeHeun: = O(h3) IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  24. Galatlonggokan: IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  25. 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

  26. 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

  27. 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

  28. 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

  29. 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

  30. Hampiraninidiperolehdenganmenguraikanyr+1disekitarxrsebagaiberikut:Hampiraninidiperolehdenganmenguraikanyr+1disekitarxrsebagaiberikut: • Persamaandiatasmenyiratkanbahwauntukmenghitunghampirannilaiyr+1, kitaperlumenghitungy'(xr), y"(xr) ,…, y(n)(xr). IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  31. 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

  32. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  33. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  34. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  35. Galatmetodederet Taylor IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  36. 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

  37. 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

  38. 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

  39. 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

  40. 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

  41. 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

  42. 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

  43. 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

  44. 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

  45. 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

  46. 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

  47. Contoh: IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  48. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  49. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

More Related