aries suharso 0422037701_metode tertutup
TRANSCRIPT
Solusi Sistem Persamaan
Nirlanjar/Non Linear
Menggunakan Metode Tertutup
Aries Suharso, S.Si
NIDN : 0422037701
Pendahuluan
Dalam bidang sains dan rekayasa, kita sering
berhadapan dengan persoalan mencari solusi
persamaan yang disebut akar persamaan (roots
of equation) yang berbentuk f(x) = 0
Persamaan sederhana dapat ditemukan akar
persamaannya dengan menggunakan metode
analitik, seperti
Namun, umumnya persamaan yang akan
dipecahkan berbentuk non linear yang
melibatkan sinus, cosinus, eksponensial, dan
lainnya
Persamaan non linear tidak dapat diselesaikan
secara analitik, sehingga diperlukan metode
numerik
32)( xxf
Persoalan Akar Persamaan
Tentukan nilai x yang memenuhi persamaan f(x)
= 0 yaitu nilai x = s, sedemikian sehingga f(s)
sama dengan nol (0)
Terdapat dua jenis metode pencarian akar, yakni
metode tertutup dan terbuka
Metode Tertutup
Dikenal dengan metode pengurung (bracketting
method)
Mencari akar persamaan di dalam selang [a, b]
Selang [a, b] dipastikan berisi minimal satu buah
akar, sehingga metode ini selalu berhasil
menemukan akar
Iterasinya selalu konvergen (menuju) ke akar,
sehingga metode ini disebut juga metode
konvergen
Metode Tertutup
Strategi yang digunakan adalah mengurangi lebar selangsecara sistematis sehingga lebar selang semakin sempitdan karena itu menuju akar sejati
Dalam sebuah selang, mungkin terdapat lebih dari satuakar atau tidak ada sama sekali yang ditunjukkan secaragrafik :
Jika f(a)f(b) < 0, maka terdapat akar sebanyak bilanganganjil
Metode Tertutup ..
Jika f(a)f(b) > 0, maka terdapat akar
sebanyak bilangan genap atau tidak ada
sama sekali
Syarat cukup keberadaan akar persamaan adalah :
jika f(a)f(b) < 0 dan f(x) menerus dalam selang [a, b], maka paling sedikit terdapat satu buah akarpersamaan f(x) = 0 dalam selang [a, b]
Metode Tertutup ..
Terdapat dua masalah yang terjadi karena ketidaktepatan
pemilihan selang [a, b]
Pertama, jika dalam selang [a, b] terdapat lebih dari satu buah
akar. Sekali metode tertutup digunakan pada selang [a, b],
maka hanya satu buah akar yang berhasil ditemukan
Kedua, jika selang [a, b] tidak memenuhi syarat cukup, yakni
f(a)f(b) < 0, maka adakalanya akar tidak dapat ditemukan
(seharusnya ada)
Dua pendekatan solusi yang digunakan antara lain, pertama
membuat grafik fungsi di bidang kartesian (X-Y), lalu melihat di
mana perpotongannya dengan sumbu X
Kedua, mencetak nilai fungsi pada titik-titik absis yang berjarak
tetap. Jika tanda fungsi berubah pada sebuah selang, maka
dipastikan terdapat satu buah akar di dalamnya
Terdapat dua metode klasik yang tergolong ke dalam metode
tertutup, yakni metode bagidua(bisection) dan metode regula-
falsi
Metode Bagidua
Metode yang selalu membagi dua selang [a, b] pada nilai x
tertentu (x = c), sehingga terdapat dua buah upaselang
berukuran sama, yaitu selang [a, c] dan selang [c, b]
Selang yang akan digunakan pada tahapan berikutnya
adalah upaselang yang mengandung akar, tergantung
pada apakah f(a)f(c) < 0 atau f(c)f(b) < 0
Selang baru dibagi lagi menjadi dua dengan cara sama,
hingga ukuran selang sudah sangat kecil atau memenuhi
salah satu kondisi berikut :
1. Lebar selang <
2. f(c) = 0 atau f(c) < epsilon mesin
3. Galat (error) hampiran akar ((cbaru - clama)/cbaru) <
Metode Bagidua ...
Contoh Penggunaan Metode Bagidua
Temukan akar persamaan f(x) = ex - 5x2 di
dalam selang [0,1] dan = 0.00001. e =
2.71828183
Tabel iterasi pencarian akar f(x) = ex -
5x2
Jadi, akar persamaan yang diperoleh adalah0.605263
r a c b f(a) f(c) f(b) selang baru Lebar selang
0 0.000000 0.500000 1.000000 1.000000 0.398721 -2.281718 [c,b] 0.500000
1 0.500000 0.750000 1.000000 0.398721 -0.695500 -2.281718 [a,c] 0.250000
2 0.500000 0.625000 0.750000 0.398721 -0.084879 -0.695500 [a,c] 0.125000
3 0.500000 0.562500 0.625000 0.398721 0.173023 -0.084879 [c,b] 0.062500
4 0.562500 0.593750 0.625000 0.173023 0.048071 -0.084879 [c,b] 0.031250
5 0.593750 0.609375 0.625000 0.048071 -0.017408 -0.084879 [a,c] 0.015625
6 0.593750 0.601563 0.609375 0.048071 0.015581 -0.017408 [c,b] 0.007813
7 0.601563 0.605469 0.609375 0.015581 -0.000851 -0.017408 [a,c] 0.003906
8 0.601563 0.603516 0.605469 0.015581 0.007380 -0.000851 [c,b] 0.001953
9 0.603516 0.604492 0.605469 0.007380 0.003268 -0.000851 [c,b] 0.000977
10 0.604492 0.604980 0.605469 0.003268 0.001210 -0.000851 [c,b] 0.000488
11 0.604980 0.605225 0.605469 0.001210 0.000179 -0.000851 [c,b] 0.000244
12 0.605225 0.605347 0.605469 0.000179 -0.000336 -0.000851 [a,c] 0.000122
13 0.605225 0.605286 0.605347 0.000179 -0.000078 -0.000336 [a,c] 0.000061
14 0.605225 0.605255 0.605286 0.000179 0.000051 -0.000078 [c,b] 0.000031
15 0.605255 0.605270 0.605286 0.000051 -0.000014 -0.000078 [a,c] 0.000015
16 0.605255 0.605263 0.605270 0.000051 0.000018 -0.000014 [c,b] 0.000008
Contoh Program di PascalProgram Bisection;
Uses crt;
label ulang;
var x1,x2,x3,y1,y2,y3 : real;
i : integer; ab : char;
begin
ulang :
clrscr;
writeln('Tentukan nilai akar dari persamaan f(x)=x^3+x^2-3x-3=0 dengan Metode Biseksi');
write( 'Masukan nilai x1 = ' );
readln( x1 );
y1 := x1 * x1 * x1 * + x1 * x1 - 3 * x1 -3;
writeln(' Nilai f(x1)= ',y1:0:4);
repeat
begin
write( 'Masukan nilai x2 = ');
readln(x2);
y2 := x2 * x2 * x2 + x2 * x2 - 3 * x2 - 3;
write(' Nilai f(x2)= ',y2:0:4);
end;
if (y1*y2)<0 then
Writeln(' Syarat Nilai Ok')
else
Writeln(' Nilai X2 Belum Sesuai');
until ( y1 * y2 ) < 0;
I :=2;
Writeln;
writeln('Penyelesaian Persamaan Dengan Metode Biseksi, Nilai x1= ',x1:0:2,' & x2= ',x2:0:2);
writeln('--------------------------------------------------------------------------');
writeln('n x f(x) error ');
writeln('--------------------------------------------------------------------------');
repeat
begin
i :=i + 1 ; x3 := ( x1 + x2) / 2;
y3 := x3 * x3 * x3 + x3 * x3 - 3 * x3 -3;
if (i mod 10)=0 then readln;
if i<10 then
writeln(' ',i,' :: ',x3,' :: ',y3,' :: ',abs( y3 ),' ::')
else writeln(i,' :: ',x3,' :: ',y3,' :: ',abs( y3 ),' ::');
if ( y1* y3) <0 then
begin
x2 :=x3;
end else begin
x1 := x3;
end;
end;
until abs( y3 )<1E-07;
writeln('-------------------------------------------------------------------------');
writeln('akar persamaanya = ',x3);
writeln('errornya =',abs( y3 ));
writeln('-------------------------------------------------------------------------');
write('Apakah anda ingin mengulanginya (y/t): ');
readln(ab);
if (ab='y') or (ab='Y') then
goto ulang;
end.
Penjelasan Program
Metode bisection disebut juga metode Pembagian Interval atau metode yang digunakan untuk mencari akar-akar persamaan nonlinear melalui proses iterasi dengan persamaan :
Dimana nilai f(Xa) dan nilai f(Xb) harus memenuhi persyaratan f(Xa)*f(Xb)<0
Contoh dan cara penyelesaian:
Carilah penyelesaian dari persamaan nonlinear dibawah ini dengan metode Biseksi:
f(x) = x3 + x2 - 3x - 3 = 0
Penyelesaian:
Langkah 1: Menentukan dua titik nilai f(x) awal, f(x1) dan f(x2) dan harus memenuhi hubungan f(x1)*f(x2)<0. misalkan nilai x1 = 1 dan x2 = 2.
f(x1)= 13 + 12 - 3(1) – 3 = -4
f(x2)= 23 + 22 - 3(2) – 3 = 3
Di dapat F(x1)*f(x2)<0 maka titik penyelesaian berada di antara nilai x1 = 1 dan x2 = 2.
Penjelasan Program
Langkah 2: mencari nilai x3.
Dan f(x3)= 1.53 + 1.52 - 3(1.5) – 3 = -1.875
Langkah 3: Melakukan Iterasi dengan persamaan 2.0 pada hasil langkah 2 nilai f(x3) hasilnya negative, dan untuk memnentukan nilai x4 harus f(xa*f(xb)<10 maka yang memenuhi syarat nilai yang digunakan yaitu x1 dan x3 karena nilai f(x1)*f(x3)<0 maka :
Dan f(x4)= 1.753 + 1.752 - 3(1.75) – 3 = 1.71875
Iterasi selanjutnya mencari nilai x5 dan f(x5) dan begitu seterusnya sampai didapatkan nilai error lebih kecil dari 10-7. Maka dari hasil perhitungan didapatkan nilai x = 1.73205080.
dengan nilai errornya f(x)= 1.2165401131E-08
Metode Regula-falsi
Kelemahan metode bagidua terletak pada
lamanya waktu untuk mencapai konvergen
Metode regula-falsi (disebut juga dengan metode
posisi palsu) memperbaiki kelemahan tersebut
dengan cara memanfaatkan nilai f(a) dan f(b)
Dibentuk garis lurus yang menghubungkan titik
(a, f(a)) dan (b, f(b))
Perpotongan garis lurus tersebut dengan sumbu
X dinyatakan sebagai taksiran akar yang
diperbaiki
Metode Regula-falsi ..
Pada gambar, gradien
garis AB = gradien
garis BC, maka :
Contoh Penerapan Metode Regula-
falsi
Temukan akar persamaan f(x) = ex - 5x2 di
dalam selang [0,1] dan = 0.00001. e =
2.7182818
Tabel iterasi pencarian akar f(x) = ex - 5x2
r a c b f(a) f(c) f(b) selang baru Lebar selang
0 0.000000 0.304718 1.000000 1.000000 0.891976 -2.281718 [c,b] 0.695282
1 0.304718 0.500129 1.000000 0.891976 0.398287 -2.281718 [c,b] 0.499871
2 0.500129 0.574417 1.000000 0.398287 0.126319 -2.281718 [c,b] 0.425583
3 0.574417 0.596742 1.000000 0.126319 0.035686 -2.281718 [c,b] 0.403258
4 0.596742 0.602952 1.000000 0.035686 0.009750 -2.281718 [c,b] 0.397048
5 0.602952 0.604641 1.000000 0.009750 0.002639 -2.281718 [c,b] 0.395359
6 0.604641 0.605098 1.000000 0.002639 0.000713 -2.281718 [c,b] 0.394902
7 0.605098 0.605222 1.000000 0.000713 0.000192 -2.281718 [c,b] 0.394778
8 0.605222 0.605255 1.000000 0.000192 0.000052 -2.281718 [c,b] 0.394745
9 0.605255 0.605264 1.000000 0.000052 0.000014 -2.281718 [c,b] 0.394736
10 0.605264 0.605266 1.000000 0.000014 0.000004 -2.281718 [c,b] 0.394734
11 0.605266 0.605267 1.000000 0.000004 0.000001 -2.281718 [c,b] 0.394733
12 0.605267 0.605267 1.000000 0.000001 0.000000 -2.281718 [c,b] 0.394733
13 0.605267 0.605267 1.000000 0.000000 0.000000 -2.281718 [c,b] 0.394733
14 0.605267 0.605267 1.000000 0.000000 0.000000 -2.281718 [c,b] 0.394733
15 0.605267 0.605267 1.000000 0.000000 0.000000 -2.281718 [c,b] 0.394733
16 0.605267 0.605267 1.000000 0.000000 0.000000 -2.281718 [c,b] 0.394733
17 0.605267 0.605267 1.000000 0.000000 0.000000 -2.281718 [c,b] 0.394733
18 0.605267 0.605267 1.000000 0.000000 0.000000 -2.281718 [c,b] 0.394733
19 0.605267 0.605267 1.000000 0.000000 0.000000 -2.281718 [c,b] 0.394733
20 0.605267 0.605267 1.000000 0.000000 0.000000 -2.281718 [c,b] 0.394733
21 0.605267 0.605267 1.000000 0.000000 -0.000000 -2.281718 [a,c] 0.000000
Stagnant Point pada Metode-
Regula Falsi
Jika kurva fungsi berbentuk cekung (konkaf) di
dalam selang [a, b], maka garis potong selalu
berada di atas atau di bawah kurva
Perhatikan gambar berikut :
Stagnant Point pada Metode-Regula
Falsi
Pada kondisi paling ekstrim, |b-ar| tidak pernah
lebih kecil dari . Hal ini disebabkan, salah satu titik
ujung selang, yakni b selalu bernilai tetap untuk
setiap lelaran (iterasi) r = 0,1, 2, 3, …
Titik ujung selang yang tidak pernah berubah
disebut dengan titik mandek (stagnant point), di
mana :
|br - ar| = |b - ar| untuk r = 0, 1, 2, 3, …
Untuk mengatasi titik mandek, kondisi berhenti
pada metode regula-falsi harus ditambahkan
dengan memeriksa apakah nilai f(c) sudah sangat
kecil sehingga mendekati nol
Perbaikan Metode Regula-
Falsi Untuk mengatasi kemungkinan titik mandek, maka
dilakukan perbaikan terhadap metode regula-falsi
(modified false position method)
Teknik yang digunakan adalah setelah menentukan
selang baru pada setiap akhir lelaran, maka akan
ditentukan mana yang menjadi titik mandek. Lalu,
nilai fungsi pada titik mandek tersebut dibagi dua
dan selanjutnya nilai ini digunakan untuk lelaran
berikutnya
Tabel berikut menunjukkan lelaran pada
persamaan f(x) = ex - 5x2 di dalam selang [0,1],
= 0.00001, dan e = 2.7182818 dengan perbaikan
metode regula-falsi
Tabel Lelaran pada Perbaikan Metode
Regula-Falsi
r a c b f(a) f(c) f(b)
0 0.000000 0.304718 1.000000 1.000000 0.891976 -2.281718
1 0.304718 0.609797 1.000000 0.891976 -0.019205 -1.140859
2 0.304718 0.603367 0.609797 0.891976 0.008005 -0.019205
3 0.603367 0.605259 0.609797 0.008005 0.000035 -0.019205
4 0.605259 0.605275 0.609797 0.000035 -0.000035 -0.009602
5 0.605259 0.605267 0.605275 0.000035 0.000000 -0.000035
Hampiran akar x = 0.605267
Contoh Program Pascalprogram regula_falsi;
uses wincrt;
label ulang;
Var x1,x2,x3,y1,y2,y3 : real;
i : integer;
Ab :char;
data1 : real;
begin
ulang:
clrscr;
writeln('Tentukan nilai akar dari persamaan f(x)=x^3+x^2-3x-3=0 dengan Regula Falsi');
write('Masukan nilai x1 = ');readln(x1);
y1 := x1 * x1 * x1 + x1 * x1 - 3 * x1 - 3;
writeln(' Nilai f(x1)= ',y1:0:4);
repeat
begin
write( 'Masukan nilai x2 = ' ); readln(x2);
y2 := x2 * x2 * x2 + x2 * x2 - 3 * x2 - 3;
write(' Nilai f(x2)= ',y2:0:4);
end;
if (y1*y2)<0 then
Writeln(' Syarat Nilai Ok')
else
Writeln(' Nilai X2 Belum Sesuai');
until ( y1 * y2 ) <0;
writeln;
writeln('Penyelesaian persamaan karekteristik dengan metoda regula falsi');
writeln('----------------------------------------------------------------------');
writeln(' n x f(x) error ');
writeln('----------------------------------------------------------------------');
Contoh Program Pascalrepeat
begin
i:= i + 1; x3 := ( x2-( y2 / ( y2 - y1))*(x2-x1));
y3 := x3 * x3 * x3 + x3 * x3 - 3 * x3 - 3;
if i<10 then
writeln(' ',i,' : ',x3,' : ',y3,' : ',abs(y3),' : ')
else
writeln(i,' : ',x3,' : ',y3,' : ',abs(y3),' : ');
if ( y1 * y3 ) <0 then
begin
x2 := x3 ; y2 := y3 ;
end
else
begin
x1 := x3 ; y1 := y3;
end;
end;
until abs( y3 ) < 1E-08;
writeln('----------------------------------------------------------------------');
writeln('Akar persamaannya= ',x3);
writeln('Errornya=' ,abs( y3 ));
writeln('----------------------------------------------------------------------');
writeln('Apakah anda ingin mengulangi (y/t): ');
readln(ab);
if (ab='y') or (ab='Y') then
goto ulang;
end.
Penjelasan Program
Metode Regula Falsi disebut juga metode Interpolasi Linear yaitu metode yang digunakan untuk mencari akar- akar persamaan nonlinear melalui proses iterasi dengan persamaan :
Contoh dan cara penyelesaian
Carilah penyelesaian dari persamaan nonlinear di bawah ini dengan metode Regula Falsi:
f(x) = x3 + x2 - 3x - 3 = 0
Penyelesaian:
Langkah 1: Menentukan dua titik nilai f(x) awal, f(x1) dan f(x2) dan harus memenuhi hubungan f(x1)*f(x2)<0. misalkan nilai x1 = 1 dan x2 = 2.
f(x1)= 13 + 12 - 3(1) – 3 = -4
f(x2)= 23 + 22 - 3(2) – 3 = 3
Di dapat F(x1)*f(x2)<0 maka titik penyelesaian berada di antara nilai x1 = 1 dan x2 = 2.
Penjelasan Program
Metode Regula Falsi disebut juga metode Interpolasi Linear yaitu metode yang digunakan untuk mencari akar- akar persamaan nonlinear melalui proses iterasi dengan persamaan 2.1:
Contoh dan cara penyelesaian
Carilah penyelesaian dari persamaan nonlinear di bawah ini dengan metode Regula Falsi:
f(x) = x3 + x2 - 3x - 3 = 0
Penyelesaian:
Langkah 1: Menentukan dua titik nilai f(x) awal, f(x1) dan f(x2) dan harus memenuhi hubungan f(x1)*f(x2)<0. misalkan nilai x1 = 1 dan x2 = 2.
f(x1)= 13 + 12 - 3(1) – 3 = -4
f(x2)= 23 + 22 - 3(2) – 3 = 3
Di dapat F(x1)*f(x2)<0 maka titik penyelesaian berada di antara nilai x1 = 1 dan x2 = 2.
Langkah 2: mencari nilai x3 dengan persamaan 2.1:
Dan f(x3)= 1.571423 + 1.57142 2 - 3(1.57142) – 3 = -1.3644314869
Langkah 3: Melakukan Iterasi dengan persamaan 2.1 pada hasil langkah 2 nilai f(x3) hasilnya negative, dan untuk memnentukan nilai x4 harus f(xa*f(xb)<10 maka yang memenuhi syarat nilai yang digunakan yaitu x2 dan x3 karena nilai f(x2)*f(x3)<0 maka :
Dan f(x4= 1.705413 + 1.705412 - 3(1.70541) – 3 = -0.247745
Iterasi selanjutnya mencari nilai x5 dan f(x5) dan begitu seterusnya sampai didapatkan nilai error lebih kecil dari 10-7. Maka dari hasil perhitungan didapatkan nilai x = 1.7320508074.
dengan nilai errornya f(x)= 2.0008883439E-09
Penjelasan Program
Langkah 2: mencari nilai x3 dengan persamaan :
Dan f(x3)= 1.571423 + 1.57142 2 - 3(1.57142) – 3 = -
1.3644314869
Langkah 3: Melakukan Iterasi dengan persamaan 2.1 pada hasil
langkah 2 nilai f(x3) hasilnya negative, dan untuk memnentukan
nilai x4 harus f(xa*f(xb)<10 maka yang memenuhi syarat nilai
yang digunakan yaitu x2 dan x3 karena nilai f(x2)*f(x3)<0 maka :
Dan f(x4= 1.705413 + 1.705412 - 3(1.70541) – 3 = -0.247745
Iterasi selanjutnya mencari nilai x5 dan f(x5) dan begitu
seterusnya sampai didapatkan nilai error lebih kecil dari 10-7.
Maka dari hasil perhitungan didapatkan nilai x =
1.7320508074.
dengan nilai errornya f(x)= 2.0008883439E-09