Jumat, 14 Juni 2013

Program regulafalsi

PROGRAM METODE NUMERIK DENGAN METODE REGULA-FALSI
uses crt;
label ulang;
var
   x1,x2,x3,y1,y2,y3: real;
   i : integer;
   ab : char;
   data1 : real;
begin
     ulang:
     clrscr;
     writeln('Tentukan nilai akar persamaannya f(x)=x^3+x^2-3x-3=0 dengan regulafalsi');
     write('Masukkan nilai x1 = '); readln(x1);
     y1:= x1*x1*x1+x1*x1-3*x1-3;
     writeln('Nilai f(x1) = ', y1:0:4);
     repeat
     begin
           write ('Masukkan 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;
     writeln;
     writeln ('Penyelesaian persamaan karakteristik dengan metode regulafalsi');
     writeln ('--------------------------------------------------------------');
     writeln ('    n      x       f(x)        error        ');
     writeln ('--------------------------------------------------------------');
     repeat
     begin
          i := i+1; x3 := (x2-(y2/(y2-y1))*(x2-x1));
          y3 := x3*x3*x3+x3*x3-3*x3-3;
          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; y2 := y3;
          end
          else
          begin
          x1 := x3; y1 := y3;
          end;
     end;
     until abs(y3) < 1E-08;
     writeln ('---------------------------------------------------------------');
     writeln ('Akar persamaannya = ',x3);
     writeln ('Errornya = ',abs(y3));
     writeln ('---------------------------------------------------------------');
     writeln ('Apakah anda ingin mengulangi (y/t): ');
     readln(ab);
     if (ab='y') or (ab='Y') then
     begin
          goto ulang;
     end;
     end.

Tidak ada komentar:

Posting Komentar