Keterangan:
.yang membedakan isi Bolzano dengan Regulafalsi adalah dimana untuk hasil tombol Bolzano (Akarnya) dan Regulafalsi (akarnya)., Liat gambar diatas ini sobat.!
.sangat nampak kan hasil perbedaannya... siiiiph (y)...
procedure TMudawwir12012769.btBolzanoClick(Sender: TObject);
begin
xb:=StrToFloat(eBatasBawah.Text);
xb:=StrToFloat(eBatasAtas.Text);
eiBatas:=StrToFloat(eBatasIterasi.Text);
//menetapkan akar duga awal = xb
AkarDugaAwal := xb;
//mencari nilai fungsi
NilaiFungsiXa := exp (-xa)-xa;
NilaiFungsiXb := exp (-xb)-xb;
//mengecek nilai fungsi akar Duga
if NilaiFungsiXa =0 then //jika xa akar
begin
LbHasil.Items.Add('akarnya='+' '+FloatToStr(xa));
exit;
end
else
if NilaiFungsiXb =0 then //jika xa akar
begin
LbHasil.Items.Add('akarnya='+' '+FloatToStr(xb));
exit;
end
else
if NilaiFungsiXa*NilaiFungsiXb> 0 then //jika xa akar
begin
eBatasBawah.Clear;
eBatasAtas.Clear;
ShowMessage('batas-batasnya salah...segera ganti !');
exit;
end
else
repeat //proses iterasi.....
AkarDuga := (xb+xa)/2;
NilaiFungsiAkar := exp (-AkarDuga)-AkarDuga; //cek nilai fungsi
if NilaiFungsiAkar = 0 then
begin
LbHasil.Items.Add('akarnya='+' '+FloatToStr(AkarDuga));
exit
end
else if NilaiFungsiAkar * NilaiFungsiXb > 0 then xb := AkarDuga
else xa := AkarDuga;
//mencari kesalahan ei....
if akarDuga =0 then //menghindari pembagian dgn nol..
begin
akarDuga := 0.000000001; //ubah menjadi tidak nol....
ei := abs((AkarDuga-AkarDugaAwal)/AkarDuga)*100;
akarDuga := 0; //mengembalikan nilai akarDuga ke nilai semula..
end
else
ei :=abs ((AkarDuga-AkarDugaAwal)/AkarDuga) * 100;
//menampilkan hasil...
LbHasil.Items.Add('Akarnya = '+ ' '+
FormatFloat('#.000000',AkarDuga)+' '+
'kesalahan = '+FormatFloat('#000000',ei));
AkarDugaAwal:=AkarDuga;
Until ei <= eiBatas;
end;
procedure TMudawwir12012769.btexitClick(Sender: TObject);
begin
Application.Terminate;
end;
procedure TMudawwir12012769.btRegulafalsiClick(Sender: TObject);
begin
//mengambil inputan
xb:= StrToFloat(eBatasBawah.Text);
xa:= StrToFloat(eBatasAtas .Text);
eibatas:= StrToFloat(eBatasIterasi.Text);
//menetapkan akar duga awal =xb
akardugaawal:=xb;
//mencari nilai fungsi
NilaiFungsiXa:=exp(-xa)-xa;
NilaiFungsiXb:=exp(-xb)-xb;
//mengecek nilai fungsi akar duga
if NilaiFungsiXa=0 then //jika xa akar
begin
LBHasil.Items.Add('akarnya='+ ' ' + FloatToStr(xa));
exit;
end
else
if NilaiFungsiXb=0 then //jika xb akar
begin
LBHasil.Items.Add('akarnya='+ ' ' + FloatToStr(xb));
exit;
end
else //jika nilai batas bawah dan atas salah
if NilaiFungsiXa*NilaiFungsiXb>0 then
begin
eBatasBawah.Clear;
eBatasAtas.Clear;
ShowMessage('batas-batasnya salah...ganti yang baru!!');
exit;
end
else
repeat //proses iterasi
akarduga:=(xb*NilaiFungsiXa-xa*NilaiFungsiXb)/(NilaiFungsiXa-NilaiFungsiXb);
NilaiFungsiAkar:=exp(-AkarDuga)-AkarDuga; //cek nilai fungsi
if NilaiFungsiAkar=0 then
begin
LBHasil.Items.Add('akarnya = '+' '+FloatToStr(akarduga));
exit;
end
else if NilaiFungsiAkar*NilaiFungsiXb>0 then xb:=AkarDuga
else xa:=AkarDuga;
//mencari kesalahan ei...
if AkarDuga=0 then //menghindari pembagian dgn nol
begin
akarduga:=0.000000001; //ubah menjadi tidak nol...
ei:=abs ((AkarDuga-AkarDugaAwal)/AkarDuga)*100;
AkarDuga:=0; //mengembalikan akarduga ke nilai semula....
end
else
ei:=abs((akarduga-akardugaawal)/akarduga)*100;
//menampilkan hasil...
LBHasil.Items.Add('akarnya='+' '+FormatFloat('#.000000',akarduga)+' '+'kesalahan= '+FormatFloat('#.000000',ei));
akardugaawal:=akarduga;NilaiFungsiXa:=exp(-xa)-xa;NilaiFungsiXb:=exp(-xb)-xb;
until ei<= eibatas;
end;
procedure TMudawwir12012769.btulangClick(Sender: TObject);
begin
Refresh;
eBatasBawah.Clear;
eBatasAtas.Clear;
eBatasIterasi.Clear;
LbHasil.Clear;
end;
end.
mkasih yah bantu bnget ... tapi untuk bentuk java nya gmna ya ?masih bingung dn blm pkai delphi masih diminta pakai java.
BalasHapus