Senin, 06 Mei 2013


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