METODE NUMERIC PENERAPAN METODE BISECTION DALAM DUNIA NYATA




Metode biseksi ini adalah metode untuk mencari akar-akar dari sebuah fungsi dengan cara menghitung nilai fungsi f(x) dari 2 nilai X : (X1,X2) yang diberikan, dan diharapkan nilai f(X1).f(X2)< xmid="(X1+X2)/2." baru =" (Xmid">

Metode numerik untuk mendapatkan harga x untuk f(x) = 0 seperti uraian di pasal 2.1 disebut METODE BISECTION. Tahap pertama proses adalah menetapkan nilai sembarang a dan b sebagai batas segmen nilai fungsi yang dicari. Batasan a dan b memberikan harga bagi fungsi f(x) untuk x = a dan x = b. Langkah selanjutnya adalah memeriksa apakah f(a)×f(b) <>

Dengan rumusan m = (a+b)/2, diperiksa apakah nilai mutlak f(m) <>-6 (batas simpangan kesalahan). Jika benar, nilai x = m adalah solusi yang dicari. Jika tidak terpenuhi, ditetapkan batasan baru dengan mengganti nilai b = m apabila f(a)*f(m) < a =" m"> 0; proses menemukan m baru dilakukan seperti prosedur yang telah dijelaskan.




Metode Bisection adalah salah satu kelas metode Pengelompokan, karena prosedur untuk mendapatkan nilai x untuk f(x) = 0 dilakukan melalui pendekatan kelompok akar. Metode ini tidak sepenuhnya memanfaatkan data f(x) bagi penentuan nilai x. Misalnya, tidak digunakannya ukuran relatif f(a) dan f(b), karena umumnya jika f(a) <>

Penetapan m ini dikenal dengan cara REGULA FALSI dan algoritmanya sama seperti metode Bisection, kecuali mengganti penentuan m dengan rumusan : m =a-[(b-a)x f(b)/f(b)-f(a)




Metode Bisection ini paling sederhana dan paling intractif dari metode pendekatan berturut-turut untuk melokalisasi sebuah persamaan akar f(x) = 0 dalam selang [a,b].

Metode ini didasrkan pada teorema nilai antara untuk fungsi kontinu., yang menyatakan pada suatu selang [a,b] sedemikian sehingga titik-titik ujung f berlawanan tanda, missal f(a) <> 0, harus mengandung suatu akar. Metode ini merupakan pengulangan pembagiduaan selang yang memenuhi teorema di atas. Oleh karena itu metode ini disebut metode bagi dua.

Algoritma Metode Bisection

Asumsi awal yang harus diambil adalah: ‘menebak’ interval awal

[a,b] dimana f(x) adalah kontinu padanya, demikian pula harus

terletak ‘mengapit’ (secara intuitif) nilai akar a, sedemikian rupa

sehingga:

f (a) × f (b) £ 0

Algoritma BISECT(f,a,b,akar,e,iter,itmax,flag)

1. Tebak harga interval [a,b]; tentukan e; dan    itmax

2. Set f0 = f(a); iter = 0; flag = 0;

3. Tentukan atau hitung akar = c := (a + b)/2;    iter = iter + 1;

4. Jika f(af(c) £ 0 maka b = c jika tidak a = c    dan f0 = f(a);

5. Jika (b a) £ e maka flag = 1 jika iter >itmax maka flag = 2;

6. Jika flag = 0 ulangi ke nomor 3;

7. Akar persamaan adalah: akar = (a + b)/2,sebagai akar terbaru;

8. Selesai.

Listing Program Metode Bisection

Diberikan persoalan untuk mengitung akar (akar-akar) persamaan f(x) = 0, sebagai berikut: f (x) ยบ x - e1 x = 0

Listing program sederhana (non-subroutine) dan program dengan subroutine disertakan dalam gambar-gambar 5.2. dan 5.3. di bawah ini, yang ditulis dalam Bahasa FORTRAN 77 (kompatibel dengan Bahasa FORTRAN 90/95).

 

            Bagan Alir Metode Bisection:

 





1.  Pemrograman C Untuk Metode Bisection

Metode Numerik

 

LISTING PROGRAM BISECTION METHODE

( BAHASA PEMROGRAMAN TURBO C)

 

#include

#include

#include

#include

double fx(double x)

{

double coef[]={25.0,0.6};

return poly(x,3,coef);

}

double bisect(double a,double b,double eps)

{

double xl=a,xr=b,epsb,xm,fxl,fxm,abseps;

xm=0.5*(xl+xr);

printf("--------------------------------------------------------------------------------");

printf(" xl xr xm |xm-xl| f(xl) f(xm) f(xl)*f(xm)\n");

printf("--------------------------------------------------------------------------------");

do

{

abseps=fabs(xm-xl);

fxl=fx(xl);

fxm=fx(xm);

epsb=fxl*fxm;

printf("%10.5f%10.5f%10.5f%10.5f%10.5f%10.5f10.5f\n",xl,xr,xm,abseps,fxl,fxm,epsb);

if(epsb<0.0)

xr=xm;

else

xl=xm;

xm=0.5*(xl+xr);

}while(abseps>=eps);

return xm;

}

main()

{

double a=34,b=35,eps=1.0e-5,x,c;

clrscr();

printf(" Penjadwalan Unit Pembangkit dengan Metode Bisection\n ");

printf("\n");

printf("\n");

printf("Nama : Dwiyanto\n");

printf("NIM : 021910201023\n");

printf("Jurusan : Teknik Elektro S1\n");

printf("\n");

printf("Berapa jumlah total beban (MW) ?");

scanf("%f",&c);

printf(“Jika anda ingin mengubah jumlah total beban, silahkan anda ganti nilai awal”);

printf("nilai awal %f dan %f\n",a,b);

printf("Ketelitian %f\n",eps);

x=bisect (a,b,eps);

printf(“Tekan ENTER untuk stop”);

getch();

}

 

2.  Pemrograman Metode Bisection Menggunakan QBasic

CLS

 

SCREEN 0

 

COLOR 3,0,0

 

CLS

 

LOCATE 2,8:PRINT CHR$(201); STRING$(58,205); CHR$(187)

 

FOR I = 3 TO 22

 

LOCATE i, 8: PRINT CHR$(186); STRING$(58,” ”);CHR$(186)

 

NEXT i

 

LOCATE 23,8:PRINT CHR$(200); STRING$(58,205); CHR$(188)

 

COLOR 3,0,0

 

LOCATE 3,12:PRINT “=================================================”

 

LOCATE 4,12:PRINT ” PROGRAM MENCARI AKAR PERSAMAAN “

 

LOCATE 5,12:PRINT “ Oleh : Ferdian Rahabista “

 

LOCATE 6,12:PRINT “ Metode : BISECTION “

 

LOCATE 7,12:PRINT “=================================================”

 

DEF fnz(x) = 3*x^3+4*x-7

 

LOCATE 9,10: PRINT “Bentuk Fungsinya :f(x)=3*x^3+4*x-7”

 

LOCATE 10,10: PRINT “Buat Pendugaan akar ini pada selang [a,b]”

 

btanda = 10

 

WHILE(btanda <> 1)

 

LOCATE 12,10: PRINT “input nilai a = “

 

LOCATE 13,10: PRINT “input nilai b = “

 

LOCATE 14,10: PRINT “input nilai toleransi = “

 

LOCATE 12,10: PRINT “isikan nilai a =”,a

 

LOCATE 13,10: PRINT “isikan nilai b =”,b

 

IF a>b THEN

 

LOCATE 15,15: PRINT “Nilai a harus kurang dari b”

 

INPUT “”,BOM

 

GOTO SATU:

 

END IF

 

LOCATE 14,10: INPUT “inputan nilai toleransi =”,tol

 

 

 

IF tol = 0 THEN

 

LOCATE 15,15: PRINT “Nilai tol harus diisi”

 

INPUT “”,BOM

 

GOTO SATU:

 

END IF

 

h = 01

 

n = ABS((b-a)/h)

 

btanda = 0

 

tanda1 = SGN(fnz(a))

 

FOR i=1 TO n+1

 

tanda2=SGN(fnz(h*(i-1)+a))

 

‘PRINT h*(-1) + a,tanda2

 

If tanda1 <> tanda2 THEN

 

IF tanda1 <> 0 THEN

 

Btanda=btanda+1

 

END IF

tanda1=tanda2

 

END IF

NEXT i

 

IF btanda = 0 THEN

 

LOCATE 16,10: PRINT “pada selang [“; a; “,”;b;”] tidak terdapat”

 

COLOR 18,8,0: LOCATE 18,18: PRINT “mohon inputkan a&b diulang”

 

COLOR 3,0,0

 

ELSE

 

IF btanda > 1 THEN

 

‘LOCATE 16,10: PRINT “pada selang [“;a;”,;b;” : PRINT USING “]”;

 

‘COLOR 18,8,0: LOCATE 18,18: PRINT “mohon inputkan a&b diulang”

 

‘COLOR 3,0,0

 

‘ LOCATE 20,20: INPUT “ulangi dengan menekan <>”,put$

 

‘LOCATE 20,20: PRINT “”

 

END IF

 

ELSE

 

LOCATE 16,10: PRINT “tepat, pada selang [“;a;”,”;b;”: PRINT USING “]”;

 

LOCATE 17,10: PRINT “”

 

COLOR 18,8,0:LOCATE 18,18: PRINT “anda benar memasukkan selang nilai”

 

COLOR 3,0,0

 

LOCATE 20,20: PRINT “isikan nilai toleransi unutk f(x)”

 

END IF

 

WEND

 

COLOR 3,0,0

 

LOCATE 12,10: PRINT USING “nilai a=###.###”;a

 

LOCATE 13,10: PRINT USING “nilai b=###.###”;b

 

LOCATE 14,10: PRINT USING “toleransi=###.###”;tol

 

LOCATE 18,18: PRINT “”

 

LOCATE 20,20: PRINT “”

 

CLS

 

PRINT “mencari akar dengan metode BISECTION”

 

PRINT “bentuk fungsinya : f(x)=3*x^3+4*x-7”

 

PRINT”nilai toleransi tol =”;tol

 

C$=”###:##.##### :##.##### :##.##### :##.##### :##.##### :##.##### :”

 

PRINT “=================================================”

 

PRINT “iter: a : b : f(a) : f(b) : c : f(c) :”

 

PRINT”---------------------------------------------------------------------------------------“

 

Iter=0

 

Y=tol

 

WHILE(ABS(y)>=tol)

 

C=(a+b)/2

 

‘c=a-fnz(a)*(b-a)/(fnz(b)-fnz(a))

 

Y=fnz(c)

 

PRINT USING c$; iter, a, b, fnz(a), fnz(b), c, fnz(c)

 

Iter = iter+1

 

IF(fnz(a)*fnz(c)>0) THEN

 

A = c

 

ELSE

 

b=c

 

END IF

 

WEND

 

PRINT “=================================================”

 

PRINT USING “nilai akar = ##.##### pada x = ##.#####”; fnz(c),c

 

PRINT USING”jumlah iterasi =#### kali”;iter

 

COLOR 3,0,0: PRINT “jika anda telah puas, tekan <>”

 

LG$ = “Y”

 

INPUT “COBA LAGI (Y/T);”,LG$

 

IF LG$ = “Y” OR LG$ = “y” THEN

 

GOTO SATU:

 

ELSE

 

END IF

 

 

 

 

 

 

 

 

 



4 Responses So Far:

Anonim mengatakan...

thanks
kebetulan q lagi cari tentang dasar teori metode biseksi

Anonim mengatakan...
Komentar ini telah dihapus oleh administrator blog.
Anonim mengatakan...

ANGKA2 TAK DA GUNA DIKEHIDUPAN!!!!
DASAR ADMIN MUKE GILE!!
sastro_pedal@rocketmail.com

si Doel blog'z mengatakan...

Saya setuju sama pendpt si Anonim:"ANGKA2 TAK DA GUNA DIKEHIDUPAN!!!!"
Buat apa coba, jual beli gak serumit itu, program kompt gak sy jumpai kyak gt, faktur juga enggak....!!!! TRus Matematika yg RUMIT-RUMIT buat apa,, dimasukkin UN atau UAS pasti rata2 pd mengurangi Nilai rata2 Kita... fuck mtk