1 / 79

Interpolasi Polinom ( Bagian 1)

Interpolasi Polinom ( Bagian 1). Bahan Kuliah IF4058 Topik Khusus Informatika I Oleh ; Rinaldi Munir (IF-STEI ITB). Pengantar. Solusinya dicari dengan metode pencocokan kurva ( curve fitting ).

Download Presentation

Interpolasi Polinom ( Bagian 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. InterpolasiPolinom(Bagian 1) BahanKuliah IF4058 TopikKhususInformatika I Oleh; RinaldiMunir (IF-STEI ITB) IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  2. Pengantar • Solusinyadicaridenganmetodepencocokankurva (curve fitting). • Yaitumencarifungsi yang mencocokkan (fit) titik-titik data didalamtabeltabel. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  3. Pencocokkankurvaadalahsebuahmetode yang mencocokkantitik data dengansebuahkurva (curve fitting) fungsi. • Pencocokankurvadibedakanatasduametode: 1. Regresi Data hasilpengukuranumumnyamengandungderau (noise) ataugalat yang cukupberarti. Karena data initidakteliti, makakurva yang mencocokkantitik data itutidakperlumelaluisemuatitik. Kurvatersebutcukuphanyamewakilikecenderungan (trend) titik data, yaknikurvamengikutipolatitiksebagaisuatukelompok. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  4. 2.Interpolasi Bila data diketahuimempunyaiketelitian yang sangattinggi, makakurvacocokannyadibuatmelaluisetiaptitik. Kita katakandisinibahwakitamenginterpolasititik-titik data dengansebuahfungsi. Bilafungsicocokan yang digunakanberbentukpolinom, polinomtersebutdinamakanpolinominterpolasi. Pekerjaanmenginterpolasititik data dengansebuahpolinomdisebutinterpolasi(dengan)polinom. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

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

  6. Aplikasiinterpolasipolinom: • Menghampirifungsirumitmenjadilebihsederhana Conntoh: Hitung: f’(x) danf(x) dx Perhitungan men jadilebihmudahjika f(x) dihampiridengan polinom p(x). Polinom p(x) diperolehdenganmenginterpolasibeberapatitikdiskritdari f(x) 2. Menggambarkurva (jikahanyadiketahuititik-titikdiskritsaja) IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  7. InterpolasiPolinom Persoalan: • Diberikann1 buahtitikberbeda, (x0, y0),(x1, y1),..., (xn, yn). • Tentukanpolinompn(x) yang menginterpolasi (melewati) semuatitik-titiktersebutsedemikianrupasehingga yipn(xi) untuki 0, 1, 2, …, n • Nilaiyidapatberasaldarifungsif(x) sedemikiansehingga yi= f(xi), atau, yiberasaldarinilaiempiris yang diperolehmelaluipercobaanataupengamatan. • pn(x) disebutfungsihampiranterhadapf(x). IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  8. Setelahpolinominterpolasipn(x) ditemukan, pn(x) dapatdigunakanuntukmenghitungperkiraannilaiydix = a, yaituy = pn(a). • Bergantungpadaletaknya, nilaix = amungkinterletakdidalamrentangtitik-titik data (x0 < a< xn) ataudiluarrentangtitik-titik data (a < x0atau a > xn): • jikax0 < a < xnmakayk= p(xk) disebutnilaiinterpolasi (interpolated value) • jikax0 < xkataux0 < xnmakayk= p(xk) disebutnilaiekstrapolasi (extrapolated value). IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  9. Kita dapatmenginterpolasititik data dengan: polinomlanjar, polinomkuadratik, polinomkubik, ataupolinomdariderajat yang lebihtinggi, bergantungpadajumlahtitik data yang tersedia. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  10. InterpolasiLanjar • Interpolasilanjaradalahinterpolasiduabuahtitikdengansebuahgarislurus. • Misaldiberikanduabuahtitik, (x0, y0) dan(x1, y1). Polinom yang menginterpolasikeduatitikituadalah p1(x) = a0 + a1x y0 = a0 + a1x0 y1 = a0 + a1x1 IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

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

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

  13. InterpolasiKuadratik • Misaldiberikantigabuahtitik data, (x0, y0), (x1, y1),dan (x2, y2). • Polinom yang menginterpolasiketigabuahtitikituadalahpolinomkuadrat yang berbentuk: p2(x) = a0 + a1x + a2x2 • Biladigambar, kurvapolinomkuadratberbentuk parabola IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  14. Polinomp2(x) ditentukandengancaraberikut: • Sulihkan (xi, yi) kedalampersamaan (P.5.8), i = 0, 1, 2. Dari sinidiperolehtigabuahpersamaandengantigabuah parameter yang tidakdiketahui, yaitua0, a1, dana2: a0 + a1x0 + a2x02 = y0 a0 + a1x1 + a2x12 = y1 a0 + a1x2 + a2x22 = y2 • hitunga0, a1, a2darisistempersamaantersebutdenganmetodeeliminasi Gauss. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  15. Contoh: Diberikantitikln(8.0) = 2.0794, ln(9.0) = 2.1972, danln(9.5) = 2.2513. Tentukannilailn(9.2) denganinterpolasikuadratik. Penyelesaian: Sistenpersamaanlanjar yang terbentukadalah a0 + 8.0a1 + 64.00a2 = 2.0794 a0 + 9.0a1 + 81.00a2 = 2.1972 a0 + 9.5a1 + 90.25a2 = 2.2513 Penyelesaiansistempersamaandenganmetodeeliminasi Gauss menghasilkana0 = 0.6762, a1 = 0.2266, dana3 = -0.0064. Polinomkuadratnyaadalah p2(x) = 0.6762 + 0.2266x - 0.0064x2 sehingga p2(9.2) = 2.2192 yang samadengannilaisejatinya (5 angkabena). IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  16. 3. InterpolasiKubik • Misaldiberikanempatbuahtitik data, (x0, y0), (x1, y1),(x2, y2), dan (x3, y3). • Polinom yang menginterpolasikeempatbuahtitikituadalahpolinomkubik yang berbentuk: p3(x) = a0 + a1x + a2x2 + a3x3 IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  17. Polinomp3(x) ditentukandengancaraberikut: • sulihkan (xi,yi) kedalampersamaan (P.5.9) , i = 0, 1, 2, 3. Dari sinidiperolehempatbuahpersamaandenganempatbuah parameter yang tidakdiketahui, yaitua0 , a1 , a2 , dana3: a0 + a1x0 + a2x02 + a3x03 = y0 a0 + a1x1 + a2x12 + a3x13 = y1 a0 + a1x2 + a2x22 + a3x23 = y2 a0 + a1x3 + a2x32 + a3x33 = y3 • hitunga0, a1, a2, dana3darisistempersamaantersebutdenganmetodeeliminasi Gauss. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  18. Dengancara yang samakitadapatmembuatpolinominterpolasiberderajatnuntukn yang lebihtinggi: pn(x) = a0 + a1x + a2x2 + … + anxn asalkantersedia (n+1) buahtitik data. • Denganmenyulihkan (xi, yi) kedalampersmaanpolinomdiatasy = pn(x) untuki = 0, 1, 2, …, n, akandiperoleh nbuahsistempersamaanlanjardalama0, a1, a2, …, an, a0 + a1x0 + a2x02 + ... + anx03 = y0 a0 + a1x1 + a2x12 + ... + anx13 = y1 a0 + a1x2 + a2x22 + ... + anx23 = y2 ... ... a0 + a1xn + a2xn2 + ... + anxn3 = yn • Solusisistempersamaanlanjarinidiperolehdenganmenggunakanmetodeeliminasi Gauss yang sudahandapelajari. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  19. Secaraumum, penentuanpolinominterpolasidengancara yang diuraikandiataskurangdisukai, • karenasistempersamaanlanjar yang diperolehadakemungkinanberkondisiburuk, terutamauntukderajatpolinom yang semakintinggi. • Metodepolinominterpolasi yang banyakdigunakandalamkomputasinumerikadalah: • Polinom Lagrange • Polinom Newton • Polinom Newton-Gregory (kasuskhususdaripolinom Newton) IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

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

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

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

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

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

  25. Untukmengurangigalatakibatpembulatan, polinomp3(x) initidakperludisederhanakanlebihjauh. Kurvay = cos(x) dany = p3(x) diperlihatkanpadaGambarberikut: IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  26. Denganmenggunakanpolinominterpolasip3(x) itukitadapatmenaksirnilaifungsidix = 0.5 sebagaiberikut: p3(0.5) = -2.604167(0.5 - 0.4)(0.5 - 0.8)(0.5 - 1.2) + 7.195789(0.5 - 0.0)(0.5 - 0.8)(0.5 - 1.2) -5.443021(0.5 - 0.0)(0.5 - 0.4)(0.5 - 1.2) + 0.943640(0.5 - 0.0)(0.5 - 0.4)(0.5 - 0.8) = 0.877221 • Sebagaiperbandingan, nilaisejatinyaadalah y = cos(0.5) = 0.877583 IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

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

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

  29. function Lagrange(x:real; n:integer):real; { Menghitung y = pn(x), dengan p(x) adalahpolinom Lagrange derajat n. Titik-titik data telahdisimpandidalamlarik x[0..n] dan y[0..n] } var i, j : integer; pi, L : real; begin L:=0; for i:=0 to n do begin pi:=1; for j:=0 to n do ifi<> j then pi:=pi*(x - x[j])/(x[i] - x[j]); {endfor} L:=L + y[i]*pi; end{for}; Lagrange:=L; end{Lagrange}; IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  30. PolinomNewton Polinom Lagrange kurangdisukaidalampraktekkarenaalasanberikut: • Jumlahkomputasi yang dibutuhkanuntuksatu kali interpolasiadalahbesar. Interpolasiuntuknilaix yang lain memerlukanjumlahkomputasi yang samakarenatidakadabagiankomputasisebelumnya yang dapatdigunakan • Bilajumlahtitik data meningkatataumenurun, hasilkomputasisebelumnyatidakdapatdigunakan. Hal inidisebakanolehtidakadanyahubunganantarapn-1(x) danpn(x) padapolinom Lagrange IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  31. Alternatif: polinom Newton • Polinom Newton dinyatakandalamhubunganrekursifsebagaiberikut: (i) rekurens: pn(x) = pn-1(x) + an(x - x0)(x - x1) … (x - xn-1) (ii) basis: p0(x) = a0 • Jadi, tahapanpembentukanpolinom Newton adalahsebagaiberikut: p1(x) = p0(x) + a1(x - x0) = a0 + a1(x - x0) p2(x) = p1(x) + a2(x - x0)(x - x1) = a0 + a1(x - x0) + a2(x - x0)(x - x1) IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  32. p3(x) = p2(x) + a3(x - x0)(x - x1)(x - x2) = a0 + a1(x - x0) + a2(x - x0)(x - x1) + a3(x - x0)(x - x1)(x - x2) pn(x) = pn-1(x) + an(x - x0)(x - x1) … (x - xn-1) = a0 + a1(x - x0) + a2(x - x0)(x - x1) + a3(x - x0)(x - x1)(x - x2) + … + an(x - x0)(x - x1) … (x - xn-1) • Nilaikonstantaa0, a1, a2, ..., anmerupakannilaiselisih-terbagi, (divided-diffrence) dengannilaimasing-masing: a0 = f(x0) a1 = f [x1, x0] a2 = f [x2, x1, x0]  an = f [xn, xn-1, …, x1, x0] IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

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

  34. Dengandemikianpolinom Newton dapatditulisdalamhubunganrekursifsebagai (i) rekurens: pn(x) = pn-1(x) + (x - x0) (x - x1) … (x - xn-1) f [xn, xn-1, …, x1, x0] (ii) basis: p0(x) = f (x0) • ataudalambentukpolinom yang lengkapsebagaiberikut: pn(x) = f (x0) + (x - x0) f [x1, x0] + (x - x0)(x - x1) f [x2, x1, x0] + (x - x0) (x - x1) … (x - xn-1) f [xn, xn-1, …, x1, x0] IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  35. Nilaiselisihterbagiinidapatdihitungdenganmenggunakantabel yang disebuttabelselisih-terbagi, • misalnyatabelselisih-terbagiuntukempatbuahtitik (n = 3) berikut: IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  36. function Newton(x:real; n:integer):real; {Menghitung y = p(x), dengan p(x) adalahpolinom Newton derajat n. Titik-titik data telahdisimpandidalamlarik x[0..n] dan y[0..n] } var i, k : integer; ST : array[0..30, 0..30] of real; {menyimpantabelselisihterbagi} jumlah, suku: real; begin for k:=0 to n do{ simpan y[k] padakolom 0 darimatriks ST } ST[k,0]:=y[k]; {end for} for k:=1 to n do{buattabelselisihterbagi} fori:=0 to n-k do ST[i,k]:=(ST[i+1,k-1] - ST[i,k-1])/(x[i+k]-x[i]); {end for} {end for} {hitung p(x) } jumlah:=ST[0,0]; fori:=1 to n do begin suku:=ST[0,i]; for k:=0 to i-1 do suku:=suku*(x-x[k]) {end for} jumlah:=jumlah + suku; end; Newton:=jumlah; end; IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  37. Contoh: Hitunglahf(9.2) darinilai-nilai (x, y) yang diberikanpadatabeldibawahinidenganpolinom Newton derajat 3. Penyelesaian: IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  38. Polinom Newton-nya (denganx0 = 8.0 sebagaititik data pertama) adalah: f(x) p3(x) = 2.079442 + 0.117783(x - 8.0) - 0.006433(x - 8.0)x - 9.0) + 0.000411(x - 8.0)(x - 9.0)(x - 9.5) Taksirannilaifungsipadax = 9.2 adalah f(9.2) p3(9.2) = 2.079442 + 0.141340 - 0.001544 - 0.000030 = 2.219208 Nilaisejatif(9.2) = ln(9.2) = 2.219203 (7 angkabena). IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  39. Contoh: Bentuklahpolinom Newton derajatsatu, dua, tiga, danempat yang menghampirifungsif(x) = cos(x) didalamselang [0.0 , 4.0] danjarakantartitikadalah 1.0. Lalu, taksirlahnilaifungsidix = 2.5 denganpolinom Newton derajattiga. Penyelesaian: Denganjarakantartitik 1.0, makatitik yang digunakanadalahpadax0 = 0.0, x1 = 1.0, x2 = 3.0, x3 = 4.0. Tabelselisihterbaginyaadalah: IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  40. Maka, polinom Newton derajat 1, 2, dan 3 denganx0 = 0.0 sebagaititik data pertamaadalah cos(x) p1(x) = 1.0000 - 0.4597(x - 0.0) cos(x) p2(x) = 1.0000 - 0.4597(x - 0.0) - 0.2484(x - 0.0)(x - 1.0) cos(x) p3(x) = 1.0000 - 0.4597(x - 0.0) - 0.2484(x - 0.0)(x - 1.0) + 0.1466(x - 0.0)(x - 1.0)(x - 2.0) cos(x) p4(x) = 1.0000 - 0.4597(x - 0.0) - 0.2484(x - 0.0)(x - 1.0) + 0.1466(x - 0.0)(x - 1.0)(x - 2.0) - 0.0147(x - 0.0)(x - 1.0)(x - 2.0)(x - 3.0) IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

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

  42. Taksirannilaifungsidix = 2.5 denganpolinomderajattigaadalah cos(2.5) p3(2.5) = 1.0000 - 0.4597(2.5 - 0.0) – 0.2484(2.5 - 0.0)(2.5 - 1.0) + 0.1466(2.5 - 0.0)(2.5 - 1.0)(2.5 - 2.0)  -0.8056 Nilaisejatif(2.5) adalah f(2.5) = cos(2.5) = -0.8011 sehinggasolusihampiranmengandunggalatsejatisebesar  = -0.8011 - (-0.8056) = -0.0045 IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  43. KelebihanPolinom Newton • Karenapolinom Newton dibentukdenganmenambahkansatusukutunggaldenganpolinomderajat yang lebihrendah, makainimemudahkanperhitunganpolinomderajat yang lebihtinggidalam program yang sama [CHA91]. Karenaalasanitu, polinom Newton seringdigunakankhususnyapadakasus yang derajatpolinomnyatidakdiketahuiterlebihdahulu. • Penambahansuku-sukupolinomsecaraberuntundapatdijadikankriteriauntukmenentukantercapainyatitikberhenti, yaituapakahpenambahansuku-suku yang lebihtinggitidaklagisecaraberartimemperbaikinilaiinterpolasi, ataumalahanmenjadilebihburuk. • Tabelselisihterbagidapatdipakaiberulang-ulanguntukmemperkirakannilaifungsipadanilaix yang berlainan. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  44. GalatInterpolasiPolinom E(x) = f(x) - pn(x) • Dari rumusdiatas, galatpolinominterpolasi, selainbergantungpadanilaix yang diinterpolasi, jugabergantungpadaturunanfungsisemula. • TinjauQn+1padarumus E(x) Qn+1(x) = (x - x0)(x - x1) ... (x - xn) IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  45. Misalkanx0, x1, …, xnberjaraksama. GrafikfungsiQuntukenamtitik yang berjaraksamaditunjukkanpadaGambar: • BerdasarkanQ6(x) yang berosilasipadaGambardiatasterlihatbahwa: • dititik-titik data xi, nilaiQ6(xi) = 0, sehinggagalatinterpolasi E(xi)=0 • dititiktengahselang, nilaiQ6(x) minimum, sehinggaE(x) juga minimum • dititik-titiksekitarujungselang, Q6(x) besar, sehinggaE(x) jugabesar • bilaukuranselang [x0, x6] semakinbesar, amplitudoosilasimeningkatdengancepat. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  46. Kesimpulan: Galatinterpolasi minimum terjadiuntuknilaixdipertengahanselang. Ingatlahkalimatini: Untukmendapatkangalatinterpolasi yang minimum, pilihlahselang [x0, xn] sedemikiansehinggaxterletakditengahselangtersebut IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

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

  48. PolinomNewton-Gregory • Polinom Newton-Gregory merupakankasuskhususdaripolinom Newton untuktitik-titik yang berjaraksama. • Untuktitik-titik yang berjaraksama, rumuspolinom Newton menjadilebihsederhana. Selainitu, tabelselisih-terbaginya pun lebihmudahdibentuk. Di sinikitamenamakantabeltersebutsebagaitabelselisihsaja. • Adaduamacamtabelselisih, yaitutabelselisihmaju (forward difference) dantabelselisihmundur (backward difference). • Karenaitu, adaduamacampolinom Newton-Gregory, yaitupolinomNewton-Gregory majudanpolinomNewton-Gregory mundur. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  49. Polinom Newton-Gregory Maju • Misalkantabelselisihmaju yang dibentukdari lima buahtitik: • Keterangan: f0 = f(x0) = y0 f1 = f(x1) = y1 f0 = f1 - f0 f1 = f2 - f1 2f0 = f1 - f0 2f1 = f2 - f 3f0 = 2f1 - 2f0 3f1 = 2f2 - 2f1 Bentukumum: n+1fp = n fp+1 - n fp , n = 0, 1, 2, … IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

  50. PenurunanRumusPolinom Newton-Gregory Maju IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB

More Related