You are on page 1of 4

Persamaan tak linear- Bisection method in C

#include<stdio.h>
#include<math.h>
float f(float x)
{
return x + cos(x);
}

main()
{
float a,b,c,T,galat,e,iterasi,akar;
int i;
char jawab;
do
{
jawab = 'y';
i=1;
printf (" ======================================== \n");
printf (" Program Bisection Persamaan Tak Linear\n ");
printf(" -=Versi 1.0=- \n ");
printf (" Programmer :Krisna Febrianto/0608483 \n ");
printf (" Ilmu Komputer - UPI \n ");
printf (" ======================================== \n");
printf("Persamaan Fungsi F(x) = x+cos(x)\n");
printf("Masukan tebakan awal a = "); scanf("%f",&a);
printf("Masukan tebakan awal b = "); scanf("%f",&b);

printf(" f(a)= %f\n",f(a));


printf(" f(b)= %f\n",f(b));
if(f(a)*f(b)<0)
{
printf("Masukan nilai epsilon = ");scanf("%f",&galat);
printf("hitung iterasi ke - ");scanf("%f",&iterasi);
for(i=1;i<=iterasi;i++)
{
e=abs(b-a);
c=(a+b)/2;
T=c+cos(c);
if(f(a)*T<0)
{
b=c;
}
else
{
a=c;
}
if(e<=galat)
{
akar=c;
}
}
printf("Akar persamaan x = %f\n",c);
}
else
{
printf(" maaf proses perhitungan tidak sesuai dengan syarat\n");
}
printf ("Apakah anda ingin mengulangi y/t = ") ; scanf("%s",&jawab);
} while (jawab == 'y');
return 0;
}
Persamaan tak linear- Bisection method in Pascal

Program Bisection;
uses wincrt;

var
m,fx,fa,fb,fc,a,b,c,e,x:real;
iterasi:integer;
jawab : string;

begin
repeat
clrscr;
writeln (' ========================================');
writeln (' Program Bisection Persamaan Tak Linear ');
writeln (' -=Versi 1.0=- ');
writeln (' Programmer :Krisna Febrianto/0608483 ');
writeln (' Ilmu Komputer - UPI ');
writeln (' ========================================');
writeln;
write('Nilai tebakan awal a : ');readln(a);
write('Nilai tebakan awal b : ');readln(b);
write('Nilai epsilon : ');readln(e);
iterasi:=1;
repeat
writeln;
writeln('Iterasi ke ',iterasi);
writeln('Akar pada [',a:10:6,',',b:10:6,']');
c:=(a+b)/2;
{cari fa}
x:=a;
fx:=x+cos(x);;
fa:=fx;
writeln('Nilai f(a)= ',fa:10:6);
{cari fb}
x:=b;
fx:=x+cos(x);
fb:=fx;
writeln('Nilai f(b)= ',fb:10:6);
{cari fc}
x:=c;
fx:=x+cos(x);
fc:=fx;
writeln('Nilai f(c)= ',fc:10:6);
{nilai mutlak}
m:=b-a;
if m<0 then m:=m*-1;
if fa*fc<0 then b:=c
else
a:=c;

iterasi:=iterasi+1;
until m<e;
writeln;
writeln('Hampiran akarnya adalah: ',c:10:6);
writeln;
write ('Apakah anda ingin mengulanginya lagi y/t = '); readln (jawab);
until (jawab = 't');
end.

You might also like