PROGARAM BAGI DUA DENGAN f(x)=e^x – 5x^2
- Source code :
import java.text.DecimalFormat; //fungsi untuk membuat nilai desimal
public static double fx(double x)//variabel fx dengan tipe data double barsifat public (artinya fungsi dapat dipanggil kembali di funsi yang lainya) dan bernilai x (tipe data double) yang isinya :
{
double f_x; //Variabel f_x untuk menyimpan fungsi (rumus)
double e=2.718281828459; //Variabel e dengan tipe data double dengan nilai e=2.718281828459;
f_x = (Math.pow(e,x))-(5*Math.pow(x,2)); //math.pow digunakan untuk perpangkatan misal (math.pow(e,x)) artinya e^x
return f_x; //variabel digunakan untuk mengembalikan ke fungsi f_x
}
int i; //Variabel untuk menghitung banyaknya iterasi
DecimalFormat df1=new DecimalFormat(“##0.0000″); //membuat fungsi DecimalFormat untuk menampilkan nilai dalam bentuk Desimal (0,0000)
DecimalFormat df2=new DecimalFormat(“##0″); //membuat fungsi DecimalFormat untuk menampilkan nilai dalam bentuk Desimal (0,0)
double e1=0.0001; //Variabel Batas selang setelah error iterasi dengan tipe data double dengan nilai e1=0,0001
double a,b,c,er; //variabel untuk batas a,b dan c sebagai titik tengah(x) ,er =error dengan tipe data double
double fa,fb,fc; //variabel untuk menyimpan perhitungan fa,fb dan fc atau (fx) dengan tipe data double
c=0; //Deklarasi variabel c dengan nilai = 0
i=0; //Deklarasi variabel i dengan nilai = 0
a=Float.parseFloat(batas_a.getText()); //fungsi untuk mengkoneksikan variabel a dengan variabel batas_a pada form GUI
b=Float.parseFloat(batas_b.getText()); //fungsi untuk mengkoneksikan variabel c dengan variabel batas_b pada form GUI
while((Math.abs(a-b)>e1||(fc>e1))) // fungsi perulanagan menggunakan while dengan syarat ((Math.abs(a-b)>e1||(fc>e1))), math.abs membuat nilai menjadi absolut
{
c=(a+b)/2; // rumus untuk mencari nilai c ((titik tengan (x))
fa=fx(a); // fungsi untuk mencari nilai F(a) (nilai a dimasikan dalam fungsi f(x)) dan disimpan di variabel fa
fx(b); // fungsi untuk mencari nilai F(b) (nilai b dimasikan dalam fungsi f(x)), dan disimpan di variabel fx
fc=fx(c); // fungsi untuk mencari nilai F(x) (nilai a dimasikan dalam fungsi f(x)), dan disimpan di variabel fc
er=(Math.abs(c-b)); // fungsi untuk mencari nilai e=(error), math.abs membuat nilai menjadi absolut (positif)
iterasi.append(+i+”\t”+df1.format(a)+”\t”+df1.format(b)+”\t”+df1.format(c)+”\t”+df1.format(fc)+”\t”+df1.format(er)+”\n”);//coding untuk menampilkan nilai ‘a’, ‘b’ ,’c(x)’,’ f(c)/(f(x))’ dan ‘er’ di variabel iterasi dalam form GUI
if((fa*fc)<0) //jika fa * fc benilai negatif maka
{
b=c; //nilai b diganti dengan nilai c
}
else //jika tidak (positif)
{
a=c; // maka nilai a diganti dengan nilai c
}
i++; //source setiap perulangan, i ditambah 1 dan seterusnya sampai memenuhi syarat ((Math.abs(a-b)>e1||(fc>e1)))
iter1.setText(+(i-1)+”\t”+df1.format(a)+”\t”+df1.format(b)+”\t”+df1.format(c)+”\t”+df1.format(fc)+”\t”+df1.format(er)); //coding untuk menampilkan nilai a, b ,c(x), f(c)/(f(x)) dan er di variabel iter1 dalam form GUI
}
iterasi.append(“======================================================================”+”\n”);//Source Pelengkap (Pemanis Tampilan)
batas_a.requestFocusInWindow(); //Source set fokus pada variabel batas_a
hampiran.setText(df1.format(c)); //Source menampilkan hampiaran terakhir (x) pada variabel hampiran di Form GUI
tot_i.setText(df2.format(i)); //Source menampilkan total iterasi
iter.setText(df2.format(i-1)); //Source menampilkan iterasi yang diambil (x)
}}
Keterangan Nama Variabel setiap kolom :
- 1. batas_a adalah Variabel Kolom Batas Atas
- 2. batas_b adalah Variabel Kolom Batas Bawah
- 3. tot_i adalah Variabel Kolom tottal iterasi
- 4. hampiran adalah Variabel Kolom hampiran terakhir (x)
- 5. iterasi adalah Variabel Kolom perhitungan iterasi
- 6. iter adalah Variabel Kolom iterasi yang di ambil
- 7. iter1 adalah Variabel Kolom ierasi terakhir
Tidak ada komentar:
Posting Komentar