program biseksi;
uses wincrt;
label ulang;
var
x1,x2,x3,y1,y2,y3 : real;
i : integer;
ab : char;
begin
ulang :
clrscr;
writeln('Tentukan nilai akar dari persamaan f(x)=x^3+x^2-3x-3=0 dengan Metode Biseksi');
write( 'Masukan nilai x1 = ' );
readln( x1 );
y1 := x1 * x1 * x1 + x1 * x1 - 3 * x1 -3;
writeln(' Nilai f(x1)= ',y1:0:4);
repeat
begin
write( 'Masukan nilai x2 = ');
readln(x2);
y2 := x2 * x2 * x2 + x2 * x2 - 3 * x2 - 3;
write(' Nilai f(x2)= ',y2:0:4);
end;
if (y1*y2)<0 then
Writeln(' Syarat Nilai Ok')
else
Writeln(' Nilai X2 Belum Sesuai');
until ( y1 * y2 ) < 0;
I :=2;
Writeln;
writeln('Penyelesaian Persamaan Dengan Metode Biseksi, Nilai x1= ',x1:0:2,' & x2= ',x2:0:2);
writeln('--------------------------------------------------------------------------');
writeln('n x f(x) error ');
writeln('--------------------------------------------------------------------------');
repeat
begin
i :=i + 1 ; x3 := ( x1 + x2) / 2;
y3 := x3 * x3 * x3 + x3 * x3 - 3 * x3 -3;
if (i mod 10)=0 then readln;
if i<10 then
writeln(' ',i,' :: ',x3,' :: ',y3,' :: ',abs( y3 ),' ::')
else writeln(i,' :: ',x3,' :: ',y3,' :: ',abs( y3 ),' ::');
if ( y1* y3) <0 then
begin
x2 :=x3;
end else
begin
x1 := x3;
end;
end;
until abs( y3 )<1E-07;
writeln('-------------------------------------------------------------------------');
writeln('akar persamaanya = ',x3);
writeln('errornya =',abs( y3 ));
writeln('-------------------------------------------------------------------------');
write('Apakah anda ingin mengulanginya (y/t): ');
readln(ab);
if (ab='y') or (ab='Y') then
begin
goto ulang;
end
end.
Minggu, 24 November 2013
Langganan:
Posting Komentar (Atom)
0 komentar:
Posting Komentar