Source code metode Biseksi menggunakan CPP
#include
#include
#include
float b_ats, c, b_bwh, f_a, f_c, f_b,tol_error,massa,wktu,kcptn,g;
int iterasi_max;
char back;
float f(float x)
{
return g*massa/x*(1-exp(-(x/massa)*wktu))-kcptn ;
}
void main()
{
int i;
float e;
printf("\n METODE BISEKSI\n");
do {
printf("\n");
printf(" Input Nilai Batas Bawah = ");
scanf("%f",&b_bwh);
printf(" Input Nilai Batas atas = ");
scanf("%f",&b_ats);
printf(" Input NilaiToleransi error = ");
scanf("%f",&tol_error);
printf(" Jumlah Iterasi Maksimum = ");
scanf("%d",&iterasi_max);
i=0;
massa=68.1;
kcptn=40;
wktu=10;
g=9.8;
f_b=f(b_bwh);
f_a=f(b_ats);
if(f_b*f_a>0)
printf(" <==> Maka, Nilai f(b) x f(a)>0 \n");
else
{
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf(" i a b f(a) f(b) c f(c) Epsilon\n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
do
{
for(i=0;i<=iterasi_max;i++) { c=(b_ats+b_bwh)/2; f_c=f(c); e=fabs(b_ats-b_bwh); printf(" %3d %8.5f %8.5f %8.5f %8.5f %8.5f %8.5f %8.5f\n", i,b_ats,b_bwh,f_a,f_b,c,f_c,e); if(f_b*f_c <=0) {b_ats=c; f_a=f_c;} else {b_bwh=c; f_b=f_c; } } } while(i<=iterasi_max && e>tol_error);
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
printf("\n");
if(i<=iterasi_max)
{
printf(" Nilai Toleransi terpenuhi\n");
printf(" Hasil Akhir = %g\n",c);
}
else printf(" Nilai Toleransi Error tidak terpenuhi\n");
}
printf(" -Azizul Hakim Prabowo-");
printf("\n*******************************************
printf(" Ingin Melakukan Perhitungan kembali (Y/T) ? ");
fflush(stdin);
scanf("%s",&back);
printf("*********************************************
}
while(back=='Y'||back=='y');
}
Tidak ada komentar:
Posting Komentar