Vous êtes sur la page 1sur 28

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
3
akar persamaannya
dengan
f ( x) = 2 x
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

Persoalan Akar Persamaan


Te n tu ka n n ila ix ya n g m e m e n u h i
p e rsa m a a n f( x ) = 0 ya itu n ila ix = s,
se d e m ikia n se h in g g a f( s) sa m a d e n g a n
n o l (0 )
Te rd a p a t d u a je n is m e to d e p e n ca ria n a ka r,
ya kn im e to d e te rtu tu p d a n te rb u ka

Metode Tertutup
D ike n a ld e n g a n m e to d e p e n g u ru n g
( b ra cke ttin g m e th o d )
M e n ca ria ka r p e rsa m a a n d id a la m se la n g
[a, b]
S e la n g [ a , b ] d ip a stika n b e risim in im a l
sa tu b u a h a ka r, se h in g g a m e to d e in i
se la lu b e rh a silm e n e m u ka n a ka r
Ite ra sin ya se la lu ko n ve rg e n ( m e n u ju ) ke
a ka r, se h in g g a m e to d e in id ise b u t ju g a
m e to d e ko n ve rg e n

Metode Tertutup
Strategi yang digunakan adalah mengurangi lebar
selang secara sistematis sehingga lebar selang
semakin sempit dan karena itu menuju akar sejati
Dalam sebuah selang, mungkin terdapat lebih dari
satu akar atau tidak ada sama sekali yang
ditunjukkan secara grafik :
Jika f(a)f(b) < 0, maka terdapat akar sebanyak
bilangan ganjil

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 akar persamaan 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 (XY), 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


Te m u ka n a ka r p e rsa m a a n f( x ) = e x - 5x 2
di dalam selang [0,1] dan = 0.00001. e
= 2.71828183

Tabel iterasi pencarian akar f(x) = ex


- 5x2
r

f(a)

f(c)

f(b)

selang baru Lebar selang

0.000000

0.500000

1.000000

1.000000

0.398721

-2.281718

[c,b]

0.500000

0.500000

0.750000

1.000000

0.398721

-0.695500

-2.281718

[a,c]

0.250000

0.500000

0.625000

0.750000

0.398721

-0.084879

-0.695500

[a,c]

0.125000

0.500000

0.562500

0.625000

0.398721

0.173023

-0.084879

[c,b]

0.062500

0.562500

0.593750

0.625000

0.173023

0.048071

-0.084879

[c,b]

0.031250

0.593750

0.609375

0.625000

0.048071

-0.017408

-0.084879

[a,c]

0.015625

0.593750

0.601563

0.609375

0.048071

0.015581

-0.017408

[c,b]

0.007813

0.601563

0.605469

0.609375

0.015581

-0.000851

-0.017408

[a,c]

0.003906

0.601563

0.603516

0.605469

0.015581

0.007380

-0.000851

[c,b]

0.001953

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

Jadi, akar persamaan yang diperoleh adalah


0.605263

Contoh Program di Pascal


Program 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

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

Metode Regula-falsi
K e le m a h a n m e to d e b a g id u a te rle ta k p a d a
la m a n ya w a ktu u n tu k m e n ca p a i
ko n ve rg e n
M e to d e re g u la -fa lsi ( d ise b u t ju g a d e n g a n
m e to d e p o sisip a lsu ) m e m p e rb a iki
ke le m a h a n te rse b u t d e n g a n ca ra
m e m a n fa a tka n n ila if( a ) d a n f( b )
D ib e n tu k g a ris lu ru s ya n g
m e n g h u b u n g ka n titik ( a , f( a )) d a n ( b ,
f( b ))
Pe rp o to n g a n g a ris lu ru s te rse b u t d e n g a n
su m b u X d in ya ta ka n se b a g a ita ksira n
a ka r ya n g d ip e rb a iki

Metode Regula-falsi ..
Pada gambar, gradien
garis AB =
gradien garis BC,
maka :

Contoh Penerapan Metode


Regula-falsi
Te m u ka n a ka r p e rsa m a a n f( x ) = ex - 5x2
di dalam selang [0,1] dan = 0.00001. e
= 2.7182818

Tabel iterasi pencarian akar f(x) = ex 5x2


r

f(a)

f(c)

f(b)

selang baru

Lebar selang

0.000000

0.304718

1.000000

1.000000

0.891976

-2.281718

[c,b]

0.695282

0.304718

0.500129

1.000000

0.891976

0.398287

-2.281718

[c,b]

0.499871

0.500129

0.574417

1.000000

0.398287

0.126319

-2.281718

[c,b]

0.425583

0.574417

0.596742

1.000000

0.126319

0.035686

-2.281718

[c,b]

0.403258

0.596742

0.602952

1.000000

0.035686

0.009750

-2.281718

[c,b]

0.397048

0.602952

0.604641

1.000000

0.009750

0.002639

-2.281718

[c,b]

0.395359

0.604641

0.605098

1.000000

0.002639

0.000713

-2.281718

[c,b]

0.394902

0.605098

0.605222

1.000000

0.000713

0.000192

-2.281718

[c,b]

0.394778

0.605222

0.605255

1.000000

0.000192

0.000052

-2.281718

[c,b]

0.394745

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 MetodeRegula 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 MetodeRegula 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 RegulaFalsi

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

f (a )

f (c )

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

f(b)

Contoh Program Pascal

program 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 Pascal

repeat

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

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

Vous aimerez peut-être aussi