You are on page 1of 7

METODE BISEKSI Listing Program Metode Biseksi :

#include<stdio.h> #include<math.h> #define max 30

double y,xatas,xbawah,e,xr; int n;

double fungsi(double x) {

return (exp(-x)-x);

}

void input(){ printf("Masukkan batas bawah : "); fflush(stdin); scanf("%lf",&xbawah); printf("Masukkan batas atas : "); fflush(stdin); scanf("%lf",&xatas); printf ("Masukkan toleransi: "); fflush(stdin); scanf ("%lf", &e); printf("Masukkan iterasi : "); fflush(stdin); scanf("%d",&n);

}

void biseksi(){ int i=0;

if(fungsi(xatas)*fungsi(xbawah)>0)

printf("tidak ada akar");

else{

do {

i++;

xr=(xbawah+xatas)/2;

y=fungsi(xr); if (fungsi(xbawah)*fungsi(xr)<0) xatas=xr;

else

xbawah = xr; printf ("%-3i\t%-12lg\t%-12lg\t%-12lg\t%-12lf\t%-12lf\n", i, xatas, xbawah, xr, fungsi(xr),fungsi(xbawah)); }while (i<n && fabs(fungsi(xr))>e);

} printf("\n\n"); printf ("Akarnya diantara %lf dan %lf\n", xr,fungsi(xr)); printf("Maka akarnya adalah : %lf\n\n", fabs(fungsi(xr))); printf("Dengan error = %lf\n", fabs(fungsi(xr)));

}

main(){

 

char pilih; puts("\nMETODE BISEKSI\n");

do{ input(); printf("i\txatas\t\txbawah\t\txr\t\tf(xr)\t\tf(xbawah)\n"); printf("\n\n"); biseksi(); fflush(stdin); printf("ingin mengulang ? "); scanf("%c",&pilih); }while (pilih=='y'||pilih=='Y');

}

Coding GNU Plot :

Coding GNU Plot : Output GNU Plot :

Output GNU Plot :

Coding GNU Plot : Output GNU Plot :

Output Program :

Soal f(x) = = exp(-x)-x

Batas bawah 0, Batas Atas 1

Toleransi Error = 0.1

Output Program : Soal f(x) = = exp(-x)-x Batas bawah 0, Batas Atas 1 Toleransi Error

Toleransi Error = 0.01

Output Program : Soal f(x) = = exp(-x)-x Batas bawah 0, Batas Atas 1 Toleransi Error

Toleransi Error = 0.001

Toleransi Error = 0.001 Toleransi Error = 0.0001

Toleransi Error = 0.0001

Toleransi Error = 0.001 Toleransi Error = 0.0001

Pengubahan nilai batas bawah dan batas atas terhadap 20 iterasi (n) Batas bawah 0, Batas Atas 1

Pengubahan nilai batas bawah dan batas atas terhadap 20 iterasi (n) Batas bawah 0, Batas Atas

Batas bawah 0.25, Batas Atas 0.75

Pengubahan nilai batas bawah dan batas atas terhadap 20 iterasi (n) Batas bawah 0, Batas Atas

Batas bawah 0.5, Batas Atas 0.75

Batas bawah 0.5, Batas Atas 0.75 Batas bawah 0.5, Batas Atas 0.6

Batas bawah 0.5, Batas Atas 0.6

Batas bawah 0.5, Batas Atas 0.75 Batas bawah 0.5, Batas Atas 0.6

Hasil Percobaan :

a.

 

Toleransi Error (e)

Jumlah iterasi (N)

0.1

3

0.01

4

0.001

10

0.0001

12

b.

Batas Bawah (xb)

Batas Atas (xa)

Nilai error (F(x) = e)

0

1

0.000007

0.25

0.75

0.000007

  • 0.5 0.75

0.000007

  • 0.5 0.6

0.000069

Analisis Program :

Dari metode biseksi ini akar dapat dicari dengan cara membagi range menjadi dua bagian,

dari dua bagian tersebut dipilih mana bagian yang mengandung akar dan yang tidak akan dibuang. Untuk menentukannya dengan cara mengalikan batas atas dan batas bawah, jika hasilnya kurang dari 0 maka terdapat akar diantara batasan-batasan tersebut. Ini dilakukan secara berulang-ulang hingga diperoleh akar persamaan. Kemudian dihitung hingga hasil kurang dari batas toleransi error atau sampai habis jumlah iterasinya.