BAB 3
PENYELESAIAN PERSAMAAN NON LINIER
1. METODE BAGI DUA (BISECTION METHOD)
Jika f(x) kontinyu pada a dan b dan f(a).f(b) < 0 maka terdapat paling sedikit 1 akar pada interval tersebut.
Misal f(a) <0 dan f(b)>0
Nilai akar aproksimasi: x0 (ab)/2 (3.1) Jika f(x0) =0, maka x merupakan akar dari f(x).
Jika akar terletak antara a dan x0 maka f(x0) > 0 b = x shg 0 x1 (ax0)/2
Jika akar terletak antara b dan x0 maka f(x0) < 0 a = x0 shg x1 (bx0)/2
… (3.2)
…
Proses terus shg diproleh f(xn) 0.
Program metode biseksi
PROGRAM BISEKSI;
uses wincrt; var
a,b,m,fa,fb,fm : real; i,n : integer; Function F(x:real) : real; begin F:=sqr(x*x)-2*x-5; end; Gambar 3.1 Proses mencari akar dg metode bagi dua b a m2 m1 Lokasi akar
BEGIN
writeln(' Program Biseksi'); write('batas kiri a:');readln(a);
write('batas kanan b:');readln(b);
writeln('---'); writeln(' i a b m fa fb fm '); writeln('---'); i:=0; repeat m:=(a+b)/2; fa:=F(a); fb:=F(b); fm:=F(m); writeln( ' ',i,''); gotoxy(7,i+7); write(a:3:3) ;writeln(' '); gotoxy(15,i+7); write(b:3:3) ;writeln(' '); gotoxy(23,i+7); write(m:3:3) ;writeln(' '); gotoxy(32,i+7); write(fa:11:7);writeln(' '); gotoxy(48,i+7); write(fb:11:7);writeln(' '); gotoxy(61,i+7); write(fm:11:7);writeln(' '); if fm*fb>0 then b:=m else a:=m; i:=i+1;
until abs(fm) <=10e-4;
writeln('---'); writeln;
writeln('Jadi Akar-akarnya =',m:3:3); readln;
END.
Akar yang pertama m14 = 1. Akar yang lain diperoleh dengan memasang a = 2, b =
5 dan m14 =4. Nilai maksimum dari f(m) yang dikehendaki adalah 1.0e-4.
Soal: Gunakan metode biseksi untuk memperoleh akar dari f(x) = xsin(x) yang
terletak antara [1 , 2].
2. METODE POSISI SALAH (REGULA FALSI)
Tujuan: untuk mempercepat proses karena metode bagi dua agak lambat
Lihat garis yang menghubungkan titik (a,f(a)), (b1,0) dan (b0,f(b0)).
Buat gradien garis tersebut dengan dua cara, yaitu yang melalui pasangan (a,f(a)), (b0,f(b0)) dan (b1,0)) , (b0,f(b0))
Dengan menggunakan titik-titik (a,f(a)) dan (b0,f(b0)) maka:
a b ) a ( f ) b ( f m 0 0 (3.3)
dengan titik (b1,0) dan (b0,f(b0)) maka: 0 1 0 b b ) b ( f 0 m (3.4) Pers. (3.3) = pers. (3.4) ) a ( f ) b ( f ) a b )( b ( f b b 0 0 0 0 1 (3.5)
Dalam bentuk iterasi:
) a ( f ) b ( f ) a b )( b ( f b b n n n n n n 1 n (3.6)
Program Regula falsi seperti ditampilkan di bawah ini.
PROGRAM REGULA_FALSI; uses wincrt; var a,b,c,fa,fb,fc : real; Gambar 3.2 Proses mencari akar dg metode regula falsi
b0
a b2 b1
(a,f(a))
i,n : integer; Function F(x:real) : real; begin
F:=sqr(x)-5*x+4; end;
BEGIN
writeln(' PROGRAM REGULA FALSI'); write('batas kiri a:');readln(a);
write('batas kanan b:');readln(b);
writeln('---'); writeln(' i a b c fa fb fc '); writeln('---'); i:=0; repeat fa:=F(a); fb:=F(b); c:=b-fb*(b-a)/(fb-fa)); fc:=F(c);
if fc*fb>0 then b:=c else a:=c; writeln( ' ',i,''); gotoxy(7,i+7); write(a:3:3) ;writeln(' '); gotoxy(15,i+7); write(b:3:3) ;writeln(' '); gotoxy(23,i+7); write(c:3:3) ;writeln(' '); gotoxy(32,i+7); write(fa:11:7);writeln(' '); gotoxy(48,i+7); write(fb:11:7);writeln(' '); gotoxy(61,i+7); write(fc:11:7);writeln(' '); i:=i+1;
until abs(fc) <=1.0e-4;
writeln('---'); writeln;
writeln('Jadi Akar-akarnya =',c:3:3); readln;
END.
Akar pertama b8= 1 dengan mengambil a = 0 dan b = 3 sedang akar kedua b8 = 4
dengan mengambil a = 2 dan b = 5.
Tampak jumlah iterasi untuk metode biseksi = 14 sementara metode regulafalsi 8 sehingga metode regula falsi lebih efektif digunakan jika batas ketelitian yang dikehendaki sama yaitu tinggi f(m) atau f(b) <= 1.0e-4.
3. METODE REGULAFALSI TERMODIFIKASI
Jika diketahui f(x) kontinyu pada selang [a0,b0] sedemikian rupa sehingga
f(a0)f(b0) < 0, maka:
Bentuklah F f(a0) dan Gf(b0) dan c 0 a0 Untuk N = 0, 1, 2, sampai cukup lakukan: Hitung F G F b G a cn 1 n n Jika f(an)f(cn1)0 maka an1 an, bn1 cn1, Gf(cn1) Jika juga f(cn)f(cn1) 0, maka F = F / 2
Jika tidak, maka an1 cn1, F f(cn1), bn1 bn
Jika juga f(cn)f(cn1) 0, maka G = G / 2 {BISA DIUBAH MISAL 0.9G} Maka f(x) mempunyai akar dalam selang [an1,bn1]
Programnya sebagai berikut
PROGRAM REGULA_FALSI_TERMODIFIKASI; uses wincrt;
var
a,b,c,fa,fb,fc,Ge : real; i,n : integer; Function F(x:real) : real; begin F:=sqr(x)-5*x+4; end; b0 a b2 b1 (a,f(a))
BEGIN
writeln(' PROGRAM REGULA FALSI TERMODIFIKASI'); WRITELN('FUNGSI F:=x^2-5x+4');
gotoxy(1,3);write('batas kiri a:');read(a); gotoxy(24,3);write('batas kanan b:');readln(b);
writeln('---'); writeln(' i a b c Fa Fb Fc '); writeln('---'); Fa:=F(a); Fb:=F(b); i:=0; Repeat c:=(a*Fb-b*Fa)/(Fb-Fa); Fc:=F(c); writeln( ' ',i,''); gotoxy(7,i+7); write(a:3:3) ;writeln(' '); gotoxy(15,i+7); write(b:3:3) ;writeln(' '); gotoxy(23,i+7); write(c:3:3) ;writeln(' '); gotoxy(32,i+7); write(fa:11:7);writeln(' '); gotoxy(48,i+7); write(fb:11:7);writeln(' '); gotoxy(61,i+7); write(fc:11:7);writeln(' '); if Fa*Fc <=0 then begin b:=c ; Fa:=Fa/2 end else begin a:=c; Fb:=Fb/2; end; i:=i+1;
until abs(fc) <=1.0e-4;
writeln('---'); writeln;
writeln('Jadi Akar-akarnya =',c:3:3); readln;
END.
Jika program tersebut dijalankan maka hasilnya dengan tebakan awal 0 dn 3 sebagai berikut:
Dengan input 2 dan 5 maka akar yang lain diperoleh = 4 dengan 2 iterasi. Tampak metode regula falsi termodifikasi sangat cepat untuk menampilkan akar.
4. METODE ITERASI SEDERHANA
Yang dibutuhkan pada proses iterasi adalah: a. Aproksimasi untuk x0
b. Rumus iterasi
Jika persamaan f(x) dituliskan dalam bentuk x = F(x) maka diperoleh iterasi secara berturutan: ) x ( F x1 0 ) x ( F x2 1 ) x ( F x3 2 (3.7) . . ) x ( F xn1 n
Kesalahan pada metode iterasi: Ea xi1 xi (3.8)
Ex: Tentukan akar dari f(x) x2 5x4 (seperti soal sebelumnya) Rumus iterasi pertama:
5 4 x x 2 n 1 n
Rumus iterasi kedua:
n n 1 n x 4 x 5 x
Rumus iterasi ketiga: xn1 5xn 4
Program metode iterasi sebagai berikut:
Program iterasi;
uses wincrt;
var x:array[0..100] of real; b: real;
BEGIN clrscr;
writeln('Soalnya: f(x)=sqr(x)-5*x+4');
writeln('Rumus Iterasi: x(i+1)=[x(i)^2+4]/5'); write('tebakan awal x[',i,']:=');readln(x[i]);
writeln('---'); writeln('i x(i) x(i)^2 [x(i)^2+4]/5 x[i+1]-x[i] '); writeln('---'); i:=0; Repeat begin x[i+1]:=(x[i]*x[i]+4)/5; b:= x[i+1]-x[i]; write(i); write(' ',x[i]:4:3); write(' ',x[i]*x[i]:4:5); write(' ',(x[i+1]):5:5); writeln(' ',b:5:7); x[i]:=x[i+1]; i:=i+1; end; until b<=0.00001; writeln('---'); writeln('akarnya adalah:',x[i]:4:6); readln; END.
Jika program tersebut dijalankan dengan mengambil tebakan awal x0 = 0 maka
diperoleh:
Nilai akarnya tidak seeksak metode sebelumnya aau butuh jumlah iterasi yang banyak.
5. METODE AITKEN (PERCEPATAN KONVERGENSI)
Misal akar dari f(x). Dari metode iterasi sederhana diketahui: ) ( 1 n n F x x ) ( F n n 1 n F( ) F(x ) K x x dengan K < 1 (3.9)
Misal xi1,xi,xi1 3 akar yang mengaproksimasi nilai akar x = . Maka ) x ( K xi i1 (3.10) ) x ( K xi 1 i (3.11) Dengan membagi (3.10) dg (3.11)1 ) x ( K ) x ( K x x i 1 i 1 i i 1 i i 1 i 2 i 1 i 1 i x x 2 x ) x x ( x 1 i 2 2 i 1 i x ) x ( x (3.12) Ingat, disini x i F(xi)
Tabel yang dibutuhkan adalah tabel selisih berhingga untuk data xi sampai selisih
tingkat 2. 1
1 2 2 1 1 2 2 1 1 2 1 1 2 2 1 2 1 1 1 1 1 2 2 1 1 1 1 2 1 2 1 1 2 2 1 1 1 1 2 1 1 2 1 1 1 1 1 1 1 1 2 2 2 1 1 2 1 1 1 1 ) ( ) 2 ( ) 2 ( 2 2 2 2 ) ( 2 ) ( ) ( ) ( ) ( i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i i x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x x K x K x x 1 i i 1 i 2 i 1 i 1 i x x x x x x
Program metode Aitken sebagai berikut:
PROGRAM METODE_AITKEN; {ATAU PERCEPATAN KONVERGENSI}
uses wincrt; var x,dx,d2x : array[0..100] of real; i,n : integer; BEGIN clrscr; writeln('f(x):=x^2-5x+4');
write('nilai awal x[0]:');readln(x[0]); n:=2;
writeln('Rumus Iterasi: x[i]:=(x[i-1]^2+4)/5');
writeln('---'); writeln('i x[i] dx[i] d2x[i] ');
writeln('---'); for i:=0 to n do begin x[i]:=(sqr(x[i-1])+4)/5; gotoxy(1,7+2*i); write(i); gotoxy(4,7+2*i); writeln('x[',i,']=',x[i]:3:4); x[i-1]:=x[i]; end; for i:=0 to n-1 do begin dx[i]:=x[i]-x[i-1]; gotoxy(18,6+(2*i)+2); writeln('dx[',i,']=',dx[i]:3:4); end; for i:=0 to n-2 do begin d2x[i]:=dx[i+1]-dx[i]; gotoxy(35,7+(2*i)+2); writeln('d2x[',i,']=',d2x[i]:3:4); end; x[3]:=x[2]-(sqr(dx[1])/d2x[0]); gotoxy(1,13+(2*i)); writeln('---'); gotoxy(1,15+2*i); writeln('x[3]:',x[3]:3:4); END.
Tampak nilai x3 = 0.9956 sudah mendekati akar yang dimaksudkan yaitu 1. Dengan
rumus iterasi yang lain maka akar kedua dapat diperoleh.
6. METODE NEWTON RAPHSON
0 0 x OA (3.13) ) x ( f B A0 0 0 (3.14) 0 1 0 0 1 0 0 0 ) ( ) ( ' A A x f A A B A x f (3.15) ) x ( ' f ) x ( f A A 0 0 0 1 1 0 1 0 0 1A OA OA x x A ) ( ' ) ( 0 0 1 0 x f x f x x (3.16) ) ( ' ) ( 0 0 0 1 x f x f x x (3.17)
dengan cara yang sama maka dapat ditentukan x2, x3 dst.
Misal x0 = akar aproksimasi untuk f(x) = 0 sedangkan h = kekeliruan aproksimasi
tersebut.
h x
x1 0 dan f(x1)0 (3.18)
Ekspansi dengan deret Taylor:
0 ... ) x ( " f h ) x ( ' hf ) x ( f ) x ( f 1 0 0 2 0 (3.19)
Untuk h sangat kecil (supaya aproksimasinya terbaik) maka f"(x0) diabaikan. 0 ) x ( ' hf ) x ( f 0 0 (3.20) ) x ( ' f ) x ( f h 0 0 (3.21) Subst. (3.16) ke (3.13): ) x ( ' f ) x ( f x x 0 0 0 1 (3.22)
Dalam bentuk iterasi menjadi:
) x ( ' f ) x ( f x x n n n 1 n (3.23)
Programnya adalah sebagai berikut:
Program Newton_Raphson; uses wincrt; var x,y,dy:array [0..100] of real; tol:real; i:integer; BEGIN clrscr; writeln('f(x)=x^2-5x+4');
write (' Titik awal x[0]: '); readln (x[0]);
writeln('---'); writeln('i x[i] y(i) dy(i) abs(x[i]-x[i-1])'); writeln('---'); i:=1;
Repeat
y[i-1]:=sqr(x[i-1])-5*x[i-1]+4; {fungsi f(x)} dy[i-1]:=2*x[i-1]-5; {turunan dari f(x)} x[i]:=x[i-1]-(y[i-1]/dy[i-1]);{rumus Newton Raphson} write (i-1 , ' ',x[i-1]:4:4,' ',y[i-1]:4:4,' ',dy[i-1]:4:4); writeln(' ', abs(x[i]-x[i-1]):4:7); tol:=abs(x[i]-x[i-1]); i:=i+1; until i=10; writeln('---'); writeln; writeln('Akarnya= ',x[i-1]:3:3); readln; END.
Jika dijalankan maka hasilnya sebagai berikut:
Tampak sampai iterasi yang ke 4 selisih antara x[i] dan [xi-1] sudah hamper nol sehingga akarnya adalah 1. Akar ang lain dapat dientukan dengan mengambil x[0] yang lain (misalnya 10).
Soal: tentukan akar pers. xsinxcosx 0 dengan metode Newton Raphson.
7. METODE MULLER
Permisalan untuk kurva f(x) adalah kuadratis.
Akar-akar kurva kudratis dianggap merupakan akar dari kurva f(x). Keunggulan: dapat digunakan untuk menghitung akar komplek Misal xi2, xi-1, xi adalah 3 buh aproksmasi akar f(x) = 0 sehingga
), y , x
( i2 i2 (xi-1,yi1), dan (xi,yi) terletak pada kurva y = f(x). C Bx Ax y 2 (3.24) C Bx Ax yi 2 2i 2 i 2 (3.25) C Bx Ax yi1 i21 i1 (3.26) C Bx Ax yi i2 i (3.27) C B A 1 x x 1 x x 1 x x y y y i 2 i 1 i 2 1 i 2 i 2 2 i i 1 i 2 i (3.28)
0 1 1 1 1 2 1 2 1 1 2 2 2 2 2 i i i i i i i i i x x y x x y x x y x x y (3.29)
Dapat ditulis dalam bentuk:
1 i i 1 i 2 i 1 i i 2 i 2 i i 2 i 1 i 2 i i 1 i y ) x x )( x x ( ) x x )( x x ( y ) x x )( x x ( ) x x )( x x ( y + i 1 i i 2 i i 1 i 1 i y ) x x )( x x ( ) x x )( x x ( (3.30) Jika didefinisikan ) x x ( ) x x ( 1 i i i (3.31) ) x x ( ) x x ( 2 i 1 i 1 i i i (3.32) i 2 i 1 i 2 i i i 1 ) x x ( ) x x ( (3.33)
maka pers. (3.30) dapat dituliskan:
i i i i i 2 i 1 i 2 i 2 i 2 i i i i i 1 i 2 i 2 i y ) ( y y y y y y y (3.34)
Dari pers. (3.31) diperoleh: ) x x ( x x i i i1 (3.35)
Ambil y = 0 pada (3.34) maka
0 y g ) y y y ( i 2 i i 1 i i 2 i i i i (3.36) dengan ) ( y y y gi i22i i12i i i i (3.37) dengan membagi pers. (3.36) dengan 2 maka
0 ) y y y ( g 1 y 1 i i 1 i i 2 i i i i i 2 (3.38) Maka
1/2 i i 1 i i 2 i i i i 2 i i i i y y y ( y 4 g g y 2 (3.39)ex: Tentukan akar dari pers. y(x)x3 3x5 yang terletak antara 2 dan 3.
Jawab: dipilih xi2 1, xi1 2, xi 3 maka yi2 7, yi1 3, yi 13 sehingga x 3, i 1, i 2 dan gi 44.
Dari pers. (3.38) diperoleh: 0 12 44 26 2 52 688 4 1
agar pembilangnya terbesar maka dipilih tanda negatif, maka 0,7403. Pendekatan berikutnya menurut (3.35) xi1 xi (xi xi1):
26
,
2
7403
,
0
3
1
ix
.Iterasi akan dihentikan jika xi1xi
8. SOLUSI SYSTEM PERSAMAAN TIDAK LINIER
a. Metode iterasi 0 ) y , x ( g 0 ) y , x ( f (3.40) pers. (3.40) dapat dibentuk menjadi:
) y , x ( G y ) y , x ( F x (3.41) dengan F dan G memenuhi persyaratan:
1 y G x G 1 y F x F (3.42)
Misal (x0,y0) aproksimasi awal
) y , x ( G y ) y , x ( F x 0 0 1 0 0 1 ) y , x ( G y ) y , x ( F x 1 1 2 1 1 2 ) y , x ( G y ) y , x ( F x 2 2 3 2 2 3 (3.43)
dan seterusnya hingga diperoleh xn1 xn dan yn1 yn.
2. METODE NEWTON RAPHSON
0 ) y , x ( g 0 ) y , x ( f (3.44) Misal (x0,y0) aproksimasi awal dari (3.44). Jika (x0 h,y0 k) akar dari system pers. tersebut maka:
0 ) k y , h x ( g 0 ) k y , h x ( f 0 0 0 0 (3.45)
0 ... y g k x g h g 0 ... y f k x f h f 0 0 0 0 0 0 (3.46)
dengan mengabaikan suku-suku berderejat >=2 maka
0 0 0 0 0 0 g ... y g k x g h f ... y f k x f h (3.47)
maka h, k dikatahui. Hasil aproksimasi yang baru adalah: h
x
x1 0 , y1 x0 k.
Proses diulangi hingga diperoleh xn1 xn dan yn1 yn.
S O A L
1. Tentukan akar dari pers.
(a) x3 x2 x70 (b) x3180
teliti sampai 3 angka decimal dengan metode Muller
2. Gunakan metode Newton-Raphson untuk menyelesaikan pers. (a) x2 y 11 (b) x2 43siny
7 x