Upload
lecong
View
221
Download
0
Embed Size (px)
Citation preview
10
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: 2/)ba(x0 (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 = 0x shg 2/)xa(x 01
Jika akar terletak antara b dan x0 maka f(x0) < 0 a = x0 shg 2/)xb(x 01
… (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 m1 m2
Lokasi akar
11
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.
Jika program tersebut dijalankan dengan tebakan batas kiri a = 0 dan b = 3
12
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:
ab)a(f)b(f
m0
0
(3.3)
dengan titik (b1,0) dan (b0,f(b0)) maka:
01
0bb
)b(f0m
(3.4)
Pers. (3.3) = pers. (3.4)
)a(f)b(f)ab)(b(f
bb0
0001
(3.5)
Dalam bentuk iterasi:
)a(f)b(f)ab)(b(fbb
nn
nnnn1n
(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 b1 b2
(a,f(a))
(b0,f(b0))
13
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.
Jika program tersebut dijalankan maka diperoleh
14
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 )a(fF 0 dan )b(fG 0 dan 00 ac
Untuk N = 0, 1, 2, sampai cukup lakukan:
Hitung FG
FbGac nn
1n
Jika 0)c(f)a(f 1nn maka n1n aa , 1n1n cb , )c(fG 1n
Jika juga 0)c(f)c(f 1nn , maka F = F / 2
Jika tidak, maka 1n1n ca , )c(fF 1n , n1n bb
Jika juga 0)c(f)c(f 1nn , maka G = G / 2 {BISA DIUBAH MISAL 0.9G}
Maka f(x) mempunyai akar dalam selang ]b,a[ 1n1n
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 b1 b2
(a,f(a))
15
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:
16
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(Fx 01 )x(Fx 12 )x(Fx 23 (3.7)
.
. )x(Fx n1n
Kesalahan pada metode iterasi: i1ia xxE (3.8)
Ex: Tentukan akar dari 4x5x)x(f 2 (seperti soal sebelumnya)
Rumus iterasi pertama: 5
4xx
2n
1n
Rumus iterasi kedua: n
n1n x
4x5x
Rumus iterasi ketiga: 4x5x n1n
Program metode iterasi sebagai berikut:
Program iterasi; uses wincrt; var x:array[0..100] of real; b: real; i,n:integer;
17
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.
18
5. METODE AITKEN (PERCEPATAN KONVERGENSI)
Misal akar dari f(x). Dari metode iterasi sederhana diketahui:
)(1 nn xFx
)( F
nn1n xK)x(F)(Fx dengan K < 1 (3.9)
Misal 1ii1i x,x,x 3 akar yang mengaproksimasi nilai akar x = . Maka
)x(Kx 1ii (3.10)
)x(Kx i1i (3.11)
Dengan membagi (3.10) dg (3.11)1
)x(K)x(K
xx
i
1i
1i
i
1ii1i
2i1i
1i xx2x)xx(
x
1i2
2i
1ix
)x(x
(3.12)
Ingat, disini )( ii xFx Tabel yang dibutuhkan adalah tabel selisih berhingga untuk data xi sampai selisih tingkat 2.
1
12
2
11
2
211
21
12
21
21111
12
21111
21
21
12
211
11
211
21111
1111222
112
1
1
1
1
)(
)2()2(
22
2
2
)(2
)()(
)()(
i
ii
i
iiii
i
iiiiiiii
i
iiiiiiiii
i
iii
iii
iii
iiiiii
iiiiii
iii
i
i
i
i
i
i
i
i
xxx
xxxxx
xxxxxxxxx
xxxxxxxxxx
xxxx
xxxxxx
xxxxxx
xxxxxx
xxx
xx
xx
xKxK
xx
19
1i
i
1i2
i
1i
1i
xx
xxx
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.
Jika dijalankan hasilnya sebagai berikut:
20
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
00 xOA (3.13)
)x(fBA 000 (3.14)
01
0
01
000
)()('
AAxf
AABAxf (3.15)
)x('f)x(fAA
0
001
101001 xxOAOAAA
)(')(
0
010 xf
xfxx (3.16)
)(')(
0
001 xf
xfxx (3.17)
21
dengan cara yang sama maka dapat ditentukan x2, x3 dst.
Misal x0 = akar aproksimasi untuk f(x) = 0 sedangkan h = kekeliruan aproksimasi tersebut.
hxx 01 dan 0)x(f 1 (3.18)
Ekspansi dengan deret Taylor:
0...)x("fh)x('hf)x(f)x(f 02
001 (3.19)
Untuk h sangat kecil (supaya aproksimasinya terbaik) maka )x("f 0 diabaikan.
0)x('hf)x(f 00 (3.20)
)x('f)x(fh
0
0 (3.21)
Subst. (3.16) ke (3.13):
)x('f)x(fxx
0
001 (3.22)
Dalam bentuk iterasi menjadi:
)x('f)x(fxx
n
nn1n (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.
22
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. 0xcosxsinx 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 i1-i2i x, x,x adalah 3 buh aproksmasi akar f(x) = 0 sehingga ),y,x( 2i2i ),y,(x 1i1-i dan )y,(x ii terletak pada kurva y = f(x).
CBxAxy 2 (3.24)
CBxAxy 2i2
2i2i (3.25)
CBxAxy 1i2
1i1i (3.26)
CBxAxy i2ii (3.27)
CBA
1 xx
1xx
1xx
yyy
i2 i
1i2
1i
2i2
2i
i
1i
2i
(3.28)
23
0
1111
21
211
22
22
2
iii
iii
iii
xxyxxyxxyxxy
(3.29)
Dapat ditulis dalam bentuk:
1ii1i2i1i
i2i2i
i2i1i2i
i1i y)xx)(xx(
)xx)(xx(y)xx)(xx(
)xx)(xx(y
+
i1ii2ii
1i1i y)xx)(xx(
)xx)(xx(
(3.30)
Jika didefinisikan
)xx()xx(
1ii
i
(3.31)
)xx()xx(
2i1i
1iii
(3.32)
i2i1i
2iii 1
)xx()xx(
(3.33)
maka pers. (3.30) dapat dituliskan:
ii
iii2i1i
2i2i2
i
iiii1i2i2i y
)(yyyyyyy
(3.34)
Dari pers. (3.31) diperoleh:
)xx(xx 1iii (3.35)
Ambil y = 0 pada (3.34) maka
0yg)yyy( iii2
ii1ii2ii (3.36)
dengan
)(yyyg iii2i1i
2i2ii (3.37)
dengan membagi pers. (3.36) dengan 2 maka
0)yyy(g1y1ii1ii2iiiii2
(3.38)
Maka
2/1ii1ii2iiii
2ii
ii
yyy(y4gg
y2
(3.39)
24
ex: Tentukan akar dari pers. 5x3x)x(y 3 yang terletak antara 2 dan 3.
Jawab: dipilih 1x 2i , 2x 1i , 3x i maka 7y 2i , 3y 1i , 13y i sehingga 3x , 1i , 2i dan 44gi .
Dari pers. (3.38) diperoleh:
01244262
5268841
agar pembilangnya terbesar maka dipilih tanda negatif, maka 7403,0 . Pendekatan berikutnya menurut (3.35) )( 11 iiii xxxx :
26,27403,031 ix . Iterasi akan dihentikan jika ii xx 1 8. SOLUSI SYSTEM PERSAMAAN TIDAK LINIER a. Metode iterasi
0)y,x(g0)y,x(f
(3.40)
pers. (3.40) dapat dibentuk menjadi:
)y,x(Gy)y,x(Fx
(3.41)
dengan F dan G memenuhi persyaratan:
1yG
xG
1yF
xF
(3.42)
Misal )y,x( 00 aproksimasi awal
)y,x(Gy
)y,x(Fx
001
001
)y,x(Gy)y,x(Fx
112
112
)y,x(Gy
)y,x(Fx
223
223 (3.43)
dan seterusnya hingga diperoleh n1n xx dan n1n yy . 2. METODE NEWTON RAPHSON
0)y,x(g0)y,x(f
(3.44)
Misal )y,x( 00 aproksimasi awal dari (3.44). Jika )ky,hx( 00 akar dari system pers. tersebut maka:
0)ky,hx(g
0)ky,hx(f
00
00 (3.45)
Ekspansi f dan g menurut deret Taylor menghasilkan:
25
0...yg
kxg
hg
0...yfk
xfhf
000
000
(3.46)
dengan mengabaikan suku-suku berderejat >=2 maka
000
000
g...yg
kxg
h
f...yfk
xfh
(3.47)
maka h, k dikatahui. Hasil aproksimasi yang baru adalah:
hxx 01 , kxy 01 .
Proses diulangi hingga diperoleh n1n xx dan n1n yy .
S O A L 1. Tentukan akar dari pers. (a) 07xxx 23 (b) 018x3
teliti sampai 3 angka decimal dengan metode Muller
2. Gunakan metode Newton-Raphson untuk menyelesaikan pers. (a) 11yx2 (b) ysin34x2
7xy2 xsin34y2
26