680 likes | 1.32k Views
Solusi Persamaan Nirlanjar ( Bagian 1). Bahan Kuliah IF4058 Topik Khusus Informatika I Oleh ; Rinaldi Munir (IF-STEI ITB). Rumusan Masalah. Persoalan : Temukan nilai x yang memenuhi persamaan f ( x ) = 0, yaitu nilai x = s sedemikian sehingga f ( s ) = 0.
E N D
SolusiPersamaanNirlanjar(Bagian 1) BahanKuliah IF4058 TopikKhususInformatika I Oleh; RinaldiMunir (IF-STEI ITB) Rinaldi Munir - Topik Khusus Informatika I
RumusanMasalah • Persoalan: Temukannilaix yang memenuhipersamaan f(x) = 0, yaitunilaix = ssedemikiansehinggaf(s) = 0. • Nilai x = s disebutakarpersamaan f(x) = 0. Rinaldi Munir - Topik Khusus Informatika I
Contohpersoalandalambidangelektronika: Suatuarusosilasidalamrangkaianlistrikdiberikanoleh I = 10e-t sin(2 t) yang dalamhalinit dalamdetik. TentukansemuanilaitsedemikansehinggaI = 2 ampere. Persoalaniniadalahmencarinilaitsedemikiansehingga: 10e-t sin(2 t) – 2 = 0 Rinaldi Munir - Topik Khusus Informatika I
MetodePencarianAkar 1. Metodetertutup(bracketing method) • mencariakardidalamselang [a, b]; • Selang [a, b] sudahdipastikanberisi minimal satubuahakar, • karenaitumetodejenisiniselaluberhasilmenemukanakar.; • Dengankata lain, lelarannyaselalukonvergen (menuju) keakar, • karenaitumetodetertutupkadang-kadangdinamakanjugametodekonvergen. Rinaldi Munir - Topik Khusus Informatika I
2. Metodeterbuka • tidakmemerlukanselang [a, b] yang mengandungakar • mencariakarmelaluisuatulelaran yang dimulaidarisebuahtebakan (guest) awal, • padasetiaplelarankitamenghitunghampiranakar yang baru. • Mungkinsajahampiranakar yang barumendekatiakarsejati (konvergen), ataumungkinjugamenjauhinya (divergen). • Karenaitu, metodeterbukatidakselaluberhasilmenemukanakar, kadang-kadangkonvergen, kadangkalaiadivergen Rinaldi Munir - Topik Khusus Informatika I
MetodeTertutup • Diperlukanselang [a, b] yang mengandung minimal satubuahakar. • Syaratcukupkeberadaanakar: Jikaf(a) f(b) < 0 dan f(x) menerusdidalamselang [a, b], makapaling sedikitterdapatsatubuahakarpersamaanf(x) = 0 didalamselang [a, b]. • Dengankata lain: selang [a, b] harusberbedatandapadanilai-nilaifungsinyasupayaterdapat minimal 1 buahakar. Rinaldi Munir - Topik Khusus Informatika I
Syaratcukupkeberadaanakar Rinaldi Munir - Topik Khusus Informatika I
Kondisi yang mungkinterjadi: • f(a)f(b) < 0, makaterdapatakarsebanyakbilanganganjil • f(a)f(b) > 0, makaterdapatakarsebanyakbilangangenap (termasuktidakadaakar) Rinaldi Munir - Topik Khusus Informatika I
Cara menentukanselang yang cukupkecildanmengandungakar: 1. MembuatgrafikfungsidibidangX-Y, lalumelihatdimanaperpotongannyadengansumbu-X. • Membuattabel yang memuatnilai-nilaifungsipadapadatitik-titikabsis yang berjaraktetap (h). Nilaihdibuatcukupkecil. (lihatcontohberikut) Rinaldi Munir - Topik Khusus Informatika I
Contoh:Tabelnilai-nilaif(x) = ex - 5x2mulaidaria = -0.5 sampaib = 1.4 dengankenaikanabsissebesarh = 0.1 ------------------------------------------- xf(x) ------------------------------------------- -0.50 -0.643469 -0.40 -0.129680 -0.30 0.290818 -0.20 0.618731 -0.10 0.854837 0.00 1.000000 0.10 1.055171 0.20 1.021403 0.30 0.899859 0.40 0.691825 0.50 0.398721 0.60 0.022119 0.70 -0.436247 0.80 -0.974459 0.90 -1.590397 1.00 -2.281718 1.10 -3.045834 1.20 -3.879883 1.30 -4.780703 1.40 -5.744800 -------------------------------------------- Selang-selang yang dapatdipilihdanmengandung akar: [-0.40, -0.30] [0.60, 0.70] [0.50, 0.70] Bisadipilih, tetapicukuplebar [-0.50, -0.20] Bisadipilih, tetapicukuplebar Rinaldi Munir - Topik Khusus Informatika I
MetodeTertutupadadua: • Metodebagidua • Metoderegula-falsi Rinaldi Munir - Topik Khusus Informatika I
MetodeBagidua (bisection method) Rinaldi Munir - Topik Khusus Informatika I
Prosespembagianselang [a, b] denganmetodebagidua Rinaldi Munir - Topik Khusus Informatika I
Kondisiberhentilelarandapatdipilihsalahsatudaritigakriteriaberikut: • Lebarselangbaru: a - b < , yang dalamhaliniadalahnilaitoleransilebarselang yang mengurungakar. • Nilaifungsidihampiranakar: f(c) < , yang dalamhalini adalahnilai yang sangatkecilmendekati 0. • Galatrelatifhampiranakar: (cbaru - clama)/cbaru < , yang dalamhaliniadalahgalatrelatifhampiran yang diinginkan. Rinaldi Munir - Topik Khusus Informatika I
procedureBagiDua(a,b: real); { Mencariakar f(x)=0 didalamselang [a,b] denganmetodebagidua K.Awal : a dan b adalahujung-ujungselangsehingga f(a)*f(b) < 0, nilai a dan b sudahterdefinisi. K.Akhir : Hampiranakartercetakdilayar. } const epsilon1 = 0.000001; {bataslebarselangakhirlelaran} epsilon2 = 0.00000001; {bilangan yang sangatkecil, mendekatinol} begin repeat c:=(a+b)/2; { titiktengah [a,b]} if f(a)*f(c) < 0 then b:=c {selangbaru [a,b]=[a,c]} else a:=c; {selangbaru [a,b]=[c,b]} until (ABS(a-b)< epsilon1) or (f(c)) < epsilon2); { c adalahakarpersamaan } writeln(‘Hampirankar = ‘, x:10:6); End; Rinaldi Munir - Topik Khusus Informatika I
Contoh 1: Temukanakarf(x) = ex - 5x2didalamselang [0, 1] dan = 0.00001. Penyelesaian: Jadi, hampiranakarnyaadalahx = 0.605263 Rinaldi Munir - Topik Khusus Informatika I
Kasus yang MungkinTerjadipadaPenggunaanMetodeBagidua • Jumlahakarlebihdarisatu • Biladalamselang [a, b] terdapatlebihdarisatuakar (banyaknyaakarganjil), hanyasatubuahakar yang dapatditemukan. • Cara mengatasinya: gunakanselang [a,b] yang cukupkecil yang memuathanyasatubuahakar. • Akarganda. • Metodebagiduatidakberhasilmenemukanakarganda. Hal inidisebabkankarenatidakterdapatperbedaantandadiujung-ujungselang yang baru Contoh: f(x) = (x - 3)2 = (x - 3)(x - 3),mempunyaiduaakar yang sama, yaitux = 3. Rinaldi Munir - Topik Khusus Informatika I
Singularitas. Padatitik singular, nilaifungsinyatidakterdefinisi. Bilaselang [a, b] mengandungtitik singular, lelaranmetodebagiduatidakpernahberhenti. Penyebabnya, metodebagiduamenganggaptitik singular sebagaiakarkarenalelarancenderungkonvergen. Yang sebenarnya, titik singular bukanlahakar, melainkanakarsemu Cara mengatasinya: periksanilaif(b) - f(a). Jika f(b) - f(a)konvergenkenol, akar yang dicaripastiakarsejati, tetapijikaf(b) - f(a)divergen, akar yang dicari merupakantitik singular (akarsemu). Rinaldi Munir - Topik Khusus Informatika I
MetodeRegula-Falsi • Kelemahanmetodebagidua: kecepatankonvergensinyasangatlambat. • Kecepatankonvergensidapatditingkatkanbilanilaif(a) danf(b) jugaturutdiperhitungkan. • Logikanya, bilaf(a) lebihdekatkenoldaripadaf(b) tentuakarlebihdekatkex = adaripadakex = b. • Metode yang memanfaatkannilaif(a) danf(b) iniadalahmetoderegula-falsi (bahasa Latin) ataumetodeposisipalsu. (false position method) Rinaldi Munir - Topik Khusus Informatika I
GambarMetodeRegula-falsi gradiengaris AB = gradiengaris BC Rinaldi Munir - Topik Khusus Informatika I
procedureregula_falsi(a, b: real); { Mencariakar f(x)=0 didalamselang [a,b] denganmetoderegulafalsi K.Awal : a dan b adalahujung-ujungselangsehingga f(a)*f(b) < 0, harga a dan b sudahterdefenisi K.Akhir : Hampiranakartercetakdilayar } const epsilon1 = 0.00001; {bataslebarselangakhirlelaran} epsilon2 = 0.000001; {bilangan yang sangatkecil, bisadiganti } begin repeat c:=b-(f(b)*(b-a)/(f(b)-f(a))); if abs(f(c))< epsilon2 then{f(c) = 0, c adalahakar} begin a:=c; b:=c; end else if f(a)*f(c) < 0 then b:=c; {selangbaru [a,b]=[a,c]} else a:=c; {selangbaru [a,b]=[c,b]} until ABS(a-b)< epsilon1; writeln(‘Hampiranakar : ‘, c:10:6); end; Rinaldi Munir - Topik Khusus Informatika I
Secaraumum, lelaranmetoderegula-falsilebihcepatdaripadalelaranmetodebagidua • Tetapi, adakemungkinanlelaranmetdoeregulasilebihlambat • Kasussepertiiniakanterjadibilakurvafungsinyacekung (konkaf) didalamselang [a, b]. • Akibatnya, garispotongnyaselaluterletakdiataskurvaatauatauselaluterletakdibawahkurva. Rinaldi Munir - Topik Khusus Informatika I
Padakondisi yang paling ekstrim, b - artidakpernahlebihkecildari, • sebabsalahsatutitikujungselang, dalamhalinib, selalutetapuntuksetiaplelaranr = 0, 1, 2, .... . • Titikujungselang yang tidakpernahberubahitudinamakantitikmandek (stagnantpoint). • Padatitikmandek, br - ar= b - arr = 0, 1, 2, ... Rinaldi Munir - Topik Khusus Informatika I
Contoh: menghitungakarf(x) = ex - 5x2didalamselang [0, 1] dan = 0.00001. Perhatikanujungselangtidakpernahberubah, sellau [c, b]. Nilai c selalutetap (c adalahtitikmandek/stagnan) Rinaldi Munir - Topik Khusus Informatika I
Untukmengatasihalini, kondisiberhentipadaalgoritmaregula-falsiharuskitatambahdenganmemeriksaapakahnilaif(c) sudahsangatkecilsehinggamendekati nol. • Jadi, kondisipada repeat-until menjadi until (ABS(a-b) < epsilon1) or (ABS(f(c)) < epsilon2) • Bilaperubahaniniditerapkanpadasoalpencarianakardiatasdengan epsilon2 = 0.000001, lelarannyaakanberhentipadar = 12 denganakarx = 0.605267. Rinaldi Munir - Topik Khusus Informatika I
PerbaikanMetodeRegula-Falsi • Tentukantitikujungselang yang tidakberubah (jumlahperulangan > 1) - yang kemudianmenjadititikmandek. • Nilaif padatitikmandekitudigantimenjadisetengahkalinya Rinaldi Munir - Topik Khusus Informatika I
Tabellelaranuntukmenghitungakarf(x) = ex - 5x2didalamselang [0, 1], = 0.00001 dan = 0.000001 denganmetodeperbaikanregula-falsiadalahsebagaiberikut: Rinaldi Munir - Topik Khusus Informatika I
Metode Terbuka • Yang ingindicariadalahx yang memenuhif(x) = 0 • Bentukumumpersamaanlelaranmetodeterbuka: xr+1 = g(xr) ; r = 0, 1, 2, 3, … • Terkalahsebuahnilaiawalx0, laluhitung x1 , x2 , x3, ... yang mudah-mudahankonvergenkeakarsejatissedemikiansehingga f(s) 0 dans f(s) Kondisiberhentilelarandinyatakanbila xr+1 - xr< Rinaldi Munir - Topik Khusus Informatika I
Yang termasukkedalammetodeterbuka: • Metodelelarantitik-tetap (fixed-point iteration) • Metode Newton-Raphson • Metodesecant Rinaldi Munir - Topik Khusus Informatika I
MetodeLelaranTitik-Tetap • Metodeinikadang-kadangdinamakanjugametodelelaransederhana, metodelangsung, ataumetodesulihberuntun. • Susunlahpersamaanf(x) = 0 menjadibentukx = g(x). Lalu, bentuklahmenjadiprosedurlelaran xr+1 = g(xr) ; r = 0, 1, 2, 3, … • Terkalahsebuahnilaiawalx0, laluhitungx1 , x2 , x3, ... yang mudah-mudahankonvergenkeakarsejati. Kondisiberhentilelarandinyatakanbila xr+1 – xr< atau Rinaldi Munir - Topik Khusus Informatika I
Contoh: Carilahakarpersamaanf(x) = x2 – 2x – 3 = 0 denganmetodelelarantitik-tetap. Gunakan = 0.000001. Penyelesaian: Terdapatbeberapakemungkinanprosedurlelaran yang dapatdibentuk. (i) x2 - 2x - 3 = 0 x2 = 2x + 3 x = (2x + 3) Dalamhalini, g(x) = (2x + 3). Prosedurlelarannyaadalah xr+1 = (2xr + 3). Ambilterkaanawalx0=4 Tabellelarannya: Rinaldi Munir - Topik Khusus Informatika I
--------------------------------------------- rxrxr+1 - xr --------------------------------------------- 0 4.000000 - 1 3.316625 0.683375 2 3.103748 0.212877 3 3.034385 0.069362 4 3.011440 0.022945 5 3.003811 0.007629 6 3.001270 0.002541 7 3.000423 0.000847 8 3.000141 0.000282 9 3.000047 0.000094 10 3.000016 0.000031 11 3.000005 0.000010 12 3.000002 0.000003 13 3.000001 0.000001 14 3.000000 0.000000 ------------------------------------------- Hampiranakarx = 3.000000 (konvergenmonoton) Rinaldi Munir - Topik Khusus Informatika I
(ii) x2 - 2x - 3 = 0 x(x-2) = 3 x = 3/(x - 2) Dalamhalini, g(x) = 3/(x - 2). Prosedurlelarannyaadalah xr+1 = 3/(xr - 2) Ambilterkaanawalx0 = 4 Tabellelarannya: Rinaldi Munir - Topik Khusus Informatika I
----------------------------------------- ixrxr+1 - xr ----------------------------------------- 0 4.000000 - 1 1.500000 2.500000 2 -6.000000 7.500000 3 -0.375000 5.625000 4 -1.263158 0.888158 5 -0.919355 0.343803 6 -1.027624 0.108269 7 -0.990876 0.036748 8 -1.003051 0.012175 9 -0.998984 0.004066 10 -1.000339 0.001355 11 -0.999887 0.000452 12 -1.000038 0.000151 13 -0.999987 0.000050 14 -1.000004 0.000017 15 -0.999999 0.000006 16 -1.000000 0.000002 17 -1.000000 0.000001 ----------------------------------------- Hampiranakarx = -1.000000 (konvergenberosilasi) Rinaldi Munir - Topik Khusus Informatika I
(iii) x2 - 2x - 3 = 0 x = (x2 - 3)/2 Prosedurlelarannyaadalahxr+1 = (xr2 - 3)/2. Ambilterkaanawalx0=4 Tabellelarannya: --------------------------------------------------- ixrxr+1 - xr -------------------------------------------------- 0 4.000000 - 1 6.500000 2.500000 2 19.625000 13.125000 3 191.070313 171.445312 4 18252.432159 18061.361847 ... ----------------------------------------------- Ternyatalelarannyadivergen! Rinaldi Munir - Topik Khusus Informatika I
Kadang-kadanglelarankonvergen, kadang-kadangiadivergen. • Adakahsuatu “tanda” bagikitauntukmengetahuikapansuatulelarankonvergendankapandivergen? • TEOREMA 3.2. Misalkang(x) dang'(x) menerusdidalamselang [a,b] = [s-h, s+h] yang mengandungtitiktetapsdannilaiawalx0dipilihdalamselangtersebut. Jikag'(x) < 1 untuksemuax [a, b] makalelaranxr+1 = g(xr) akankonvergenkes. Padakasusini s disebutjugatitikatraktif. Jikag'(x) > 1 untuksemuax [a, b] makalelaranxr+1 = g(xr) akandivergendaris. Rinaldi Munir - Topik Khusus Informatika I
Teorema 3.2 dapatkitasarikansebagaiberikut: Di dalamselangI = [s-h, s+h], denganstitiktetap, • jika 0 < g'(x) < 1 untuksetiapxI, makalelarankonvergenmonoton; • jika -1< g'(x) < 0 untuksetiapxI, makalelarankonvergenbersosilasi; • jikag'(x) > 1 untuksetiapxI, makalelarandivergenmonoton; • jikag'(x) < -1 untuksetiapxI, makalelarandivergrnberosilasi. Rinaldi Munir - Topik Khusus Informatika I
(a) Konvergenmonoton: 0 < g’(x) < 1 (b) Konvergenberosilasi: –1 < g’(x) < 0 (c) Divergenmonoton: g’(x) > 1 (d) Divergenberosilasi: g’(x) < -1 Rinaldi Munir - Topik Khusus Informatika I
Analisis: • Prosedurlelaranpertama Terlihatbahwag'(x)< 1 untukxdisekitartitik-tetaps = 3. Karenaitu, pengambilantebakanawalx0 = 4 akanmenghasilkanlelaran yang konvergensebab Rinaldi Munir - Topik Khusus Informatika I
2. Prosedurlelarankedua: xr+1 = 3/(xr - 2) g(x) = 3/(x-2) g'(x) = -3/(x-2)2 Terlihatbahwag'(x)< 1 untukxdisekitartitik-tetaps = 3. Karenaitu, pengambilantebakanawalx0 = 4 akanmenghasilkanlelaran yang konvergensebab g'(4)=-3/(4-2)2= 0.75 < 1. Rinaldi Munir - Topik Khusus Informatika I
3. Prosedurlelaranketigaxr+1 = (xr2 - 3)/2 g(x) = (x2 - 3)/2 g'(x) = x Terlihatbahwag'(x)> 1 untukxdisekitartitik-tetaps = 3. Karenaitu, pengambilantebakanawalx0 = 4 akanmenghasilkanlelaran yang divergensebab g'(4)=4= 4 > 1. Rinaldi Munir - Topik Khusus Informatika I
Kesimpulan: adaduahal yang mempengaruhikekonvergenanprosedurlelaran: 1. Bentuk formula xr+1 = g(xr) 2. Pemilihantebakanawalx Rinaldi Munir - Topik Khusus Informatika I
Contoh: Gunakanmetodelelarantitik-tetapuntukmencariakarpersamaanx3 - 3x + 1 didalamselang [1, 2] Rinaldi Munir - Topik Khusus Informatika I
Penyelesaian: (i) xr+1 = (xr3 + 1)/3 Tetapi, karenag '(x)=x2> 1 didalamselang [1, 2], makaprosedurlelaraninitidakdigunakan. (ii) xr+1 = -1/(xr2 - 3) Tetapi, karenag'(x)=2x /(x2 - 3)3> 1 didalamselang [1, 2], makaprosedurlelaraninitidakdigunakan. (iii) xr+1 = 3/xr - 1/xr2 Ternyatag '(x)=(-3x + 2)/x3 1 didalamselang [1, 2], yaitu, g '(x) naikdarig '(1) = -1 keg '(2)=-1/2. Jadi, g '(x)lebihkecildari 1 didalamselang [1, 2]. Denganmengambilx = 1.5, prosedurlelarannyakonvergenkeakarx = 1.5320889 sepertipadatabelberikutini. Rinaldi Munir - Topik Khusus Informatika I
--------------------------------------- rx --------------------------------------- 0 1.5 1 1.5555556 2 1.5153061 ... ... 43 1.5320888 44 1.5320889 45 1.5320889 ----------------------------------------- Rinaldi Munir - Topik Khusus Informatika I
4. Prosedurlelarankeempat: xr+1 = (-xr3 + 3)/6 g(x) = (-x3 + 3)/6 g'(x) = -x2/2 Terlihatbahwag'(x)< 1 untukxdisekitartitik-tetaps = 0.48. Pemilihanx0 = 0.5 akanmenjaminlelarankonvergensebabg'(x0)< 1. Untukx0 = 1.5 danx0 = 2.2 memangnilaig'(x0)> 1 tetapilelarannyamasihtetapkonvergen, namunx0 = 2.7 terlalujauhdarititik-tetapsehinggalelarannyadivergen. Rinaldi Munir - Topik Khusus Informatika I
Metode Newton-Raphson • Metode Newton-Raphsonlah yang paling terkenaldan paling banyakdipakaidalamterapansainsdanrekayasa. • Metodeini paling disukaikarenakonvergensinya paling cepatdiantarametodelainnya. • Adaduapendekatandalammenurunkanrumusmetode Newton-Raphson, yaitu: (i) penurunanrumus Newton-Raphsonsecarageometri, (ii) penurunanrumus Newton-Raphsondenganbantuanderet Taylor. Rinaldi Munir - Topik Khusus Informatika I
(a) Penurunanrumus Newton-Raphsonsecarageometri Gradiengarissinggungdixradalah , f '(xr) 0 RinaldiMunir - TopikKhususInformatika I
(b) Penurunanrumus Newton-Raphsondenganbantuanderet Taylor • Uraikanf(xr+1) disekitarxrkedalamderet Taylor: • yang biladipotongsampaisuku orde-2 sajamenjadi f(xr+1) f(xr) + (xr+1 - xr)f '(xr) • dankarenapersoalanmencariakar, makaf(xr+1) = 0, sehingga 0 = f(xr) + (xr+1 - xr) f '(xr) atau , f '(xr) 0 Rinaldi Munir - Topik Khusus Informatika I
Kondisiberhentilelaran Newton-Raphsonadalahbila xr+1 - xr< ataubilamenggunakangalatrelatifhampiran dengandanadalahtoleransigalat yang diinginkan. Rinaldi Munir - Topik Khusus Informatika I