950 likes | 1.71k Views
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 ).
E N D
InterpolasiPolinom(Bagian 1) BahanKuliah IF4058 TopikKhususInformatika I Oleh; RinaldiMunir (IF-STEI ITB) IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
Pengantar • Solusinyadicaridenganmetodepencocokankurva (curve fitting). • Yaitumencarifungsi yang mencocokkan (fit) titik-titik data didalamtabeltabel. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
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
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
IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
Aplikasiinterpolasipolinom: • Menghampirifungsirumitmenjadilebihsederhana Conntoh: Hitung: f’(x) danf(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
InterpolasiPolinom Persoalan: • Diberikann1 buahtitikberbeda, (x0, y0),(x1, y1),..., (xn, yn). • Tentukanpolinompn(x) yang menginterpolasi (melewati) semuatitik-titiktersebutsedemikianrupasehingga yipn(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
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
Kita dapatmenginterpolasititik data dengan: polinomlanjar, polinomkuadratik, polinomkubik, ataupolinomdariderajat yang lebihtinggi, bergantungpadajumlahtitik data yang tersedia. IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
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
Biladisederhanakanakanlebihlanjut: Contoh: IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
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
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
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
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
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
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
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
PolinomLagrange 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
IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
Untukmengurangigalatakibatpembulatan, polinomp3(x) initidakperludisederhanakanlebihjauh. Kurvay = cos(x) dany = p3(x) diperlihatkanpadaGambarberikut: IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
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
IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
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
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
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
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
yang dalamhalini, IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
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
Nilaiselisihterbagiinidapatdihitungdenganmenggunakantabel yang disebuttabelselisih-terbagi, • misalnyatabelselisih-terbagiuntukempatbuahtitik (n = 3) berikut: IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
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
Contoh: Hitunglahf(9.2) darinilai-nilai (x, y) yang diberikanpadatabeldibawahinidenganpolinom Newton derajat 3. Penyelesaian: IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
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
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
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
IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
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
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
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
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
Kesimpulan: Galatinterpolasi minimum terjadiuntuknilaixdipertengahanselang. Ingatlahkalimatini: Untukmendapatkangalatinterpolasi yang minimum, pilihlahselang [x0, xn] sedemikiansehinggaxterletakditengahselangtersebut IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB
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
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
PenurunanRumusPolinom Newton-Gregory Maju IF4058 Topik Khusus Informatika I: Metode Numerik/Teknik Informatika ITB