Menyelesaikan Akar Persamaan dengan
Metode Tabulasi
Menggunakan Program Pascal
var x,x1,x2,xa,xb,xc,y,y1,y2,ya,yb:real;
i,j,k:integer;
ab:char; mendeskripsikan variabel x,x1,x2 dsb sebagai jenis
variabel real. Sedangkan i,j,k sebgai integer dan ab sebagai karakter.
writeln('Tentukan akar penyelesaian dengan metode
tabulasi dari f(x)=x^3-7x+1');
writeln;
write('Masukkan nilai x1 = ');
readln(x1);
y1 := x1 * x1 * x1 - 7 * x1 + 1;
writeln('
f(',x1:0:2,') = ',y1:0:4);
repeat
mendeskripsikan
persamaan untuk mencari akar penyelesaian, memasukan nilai X1 dan program akan
mencetak X1. Kemudian menentukan spasi-spasi yang ada pada layar apabila nanti
kita akan mencetak program di layar.
Begin memulai
program utama
write('Masukkan nilai x2 = '); masukkan nilai X2
readln(x2);
program akan mencetak nilai X2 yang kita input
y2 := x2 * x2 * x2 - 7 * x2 + 1; persamaan untuk menyelesaikan akar
writeln('
f(',x2:0:2,') = ',y2:0:4); menentukan letak spasi
writeln;
writeln('Syarat (x1 * x2) < 0')
write('x1 * x2 = ',y1 * y2:0:5);
if (y1 * y2) < 0 then write('Nilai OK')
else write('Nilai tidak sesuai');
readln;
end; syarat jika X1
dikali X2 kurang 0 maka nilai diterima sesuai syarat.
until (y1 * y2)
< 0;
clrscr;
k := 0;
repeat
begin
k := k + 1;
if x1 > x2
then begin
xa := x1;
xb := x2;
end jika X1 lebih dari X2 maka xa nilainya sama dengan X1, dan xb akan sama
nilainya dengan X2.
else
begin
xa := x2;
xb := x1;
end;
xc := (xa - xb)
/ 10;
i := 0;
repeat jika tidak sesuai maka xa akan sama dengan X2 sedangkan xb akan sama dengan
X1 dan xc nya akan bernilai xa dikurang xb lalu di bagi 10.
Begin
i := i + 1;
x := xb + xc * i;
ya := x * x * x - 7 * x + 1;
yb := (x - xc) * (x - xc) * (x - xc) - 7 * (x
- xc) + 1;
end; kembali seperti persamaan yang diatas
hanya saja kita ganti nilai X1 nya dengan x dikurang xc dan di kali dengan yang
sama seperti tadi sesuaikan dengan bentuk persamaan yang sampai ya di kali
dengan yb kurang dari 0.
until (ya * yb) < 0;
x1 := x;
x2 := x - xc;
writeln('Tabulasi ke-',k);
writeln('--------------------------------------------------------');
writeln('n x f(x) error ');
writeln('--------------------------------------------------------');
for j := 1 to
9 do kemudian program
akan mencetak untuk tabulasi pertama sampai tabulasi berikutnya sampai akar
penyelsaiannya ketemu dengan 10^-7 (yang paling mendekatin 0).
begin
x := xb + xc *
(j - 1);
y := x * x * x -
7 * x + 1;
writeln('',j,'
::',x,' ::',y,' ::',abs(y),' ::');
end;
for j := 10 to
11 do
begin
x := xb + xc *
(j - 1);
y := x * x * x -
7 * x + 1;
writeln('',j,'
::',x,' ::',y,' ::',abs(y),' ::');
end;
writeln('--------------------------------------------------------');
end;
readln;
until abs(y)
< 10e - 8;
writeln('Akar
pendekatannya adalah x = ',x);
writeln('Error =
',abs(y));
writeln;
write('Apakah
anda ingin mengulangi? (Y/T) : ');
readln(ab);
if (ab = 'y') or
(ab = 'Y') then
begin
goto ulang;
end
end.
Setelah
program selesai maka kita RUN program tersebut, dan outputnya adalah sebagai
berikut:
Jika
kita input kan X1 = 2.5 dan X2 = 2.6 maka sesuai dengan syarat yaitu bila X1
dikali X2 kurang dari 0, dan tabulasi akan keluar sebagai berikut:
Bila
kita belum menemukan akar persamaannya yang mendekati 0 maka kita masukan lagi
angka X1 dan x2 namun diganti dengan akar pendektan yang paling dekat dengan
perubahan.
Tidak ada komentar:
Posting Komentar