TUGAS METODE NUMERIK Terbaru 2018 - Pencarian Akar PNL menggunakan Metode Secant
PENCARIAN AKAR PNL
MENGGUNAKAN METODE
SECANT
YANG DIAPLIKASIKAN
PADA NETBEANS JAVA
Disusun Oleh :
NAMA
|
: I PUTU NGURAH PRAYOGA
|
NIM
|
: 145410091
|
JURUSAN
|
: TEKNIK INFORMATIKA
|
JENJANG
|
: S1
|
STMIK AKAKOM
YOGYAKARTA
2018
A. Teori , Fungsi dan Tujuan
Tujuan metode secant adalah untuk menyelesaikan
masalah yang terdapat pada metode Newton-Raphson yang terkadang sulit
mendapatkan turunan pertama yaitu f‘ (x).
Fungsi metode secant adalah untuk menaksirkan
akar dengan menggunakan diferensi daripada turunan untuk memperkirakan
kemiringan/slope.
Rumus metode secant
adalah : x2 = x1 - f1 * (x1-x0) / (f1-f0).
Fungsi masing-masing variabel :
-
x2 : variabel penampung dari operasi rumus metode
secant.
-
x1 : variabel penampung dari nilai awal x1.
-
x0 : variabel penampung dari nilai awal x2.
-
f0 : variabel penampung dari operasi perhitungan
fungsi x0.
-
f1 : variabel penampung dari operasi perhitungan
fungsi x1.
-
f2 : variabel penampung dari operasi perhitungan
fungsi x2.
-
Func(x) : adalah sebuah method untuk menghitung nilai x
berdasarkan fungsi yang telah dimasukkan f(x).
Iterasi akan
berhenti jika :
-
Nilai tmp
sama dengan 0, karena jika terjadi operasi dengan bilangan 0 hal ini tidak
diperbolehkan.
-
Iterasi mencapai
batas yang dimasukkan (i<=iMax).
-
Nilai galat lebih
kecil dari toleransi error yang dimasukkan.
B. Algoritma
1)
Mulai.
2)
Masukkan fungsi Func(x).
3)
Masukkan torelansi error (e) dan masukkan
iterasi maksimal.
4)
Masukkan nilai x0
dan x1.
5)
Hitung func(x0)
dan func(x1)
sebagai f0 dan f1.
6)
Lakukan iterasi dengan nilai awal i = 1
:
a.
Hitung nilai f1-f0
yang ditampung di variabel tmp. Lalu lakukan seleksi bila nilai tmp tidak sama dengan 0, lakukan
langkah point 5.b , jika nilainya 0 lakukan langkah 5.e .
b.
Hitung galat dengan
rumus : ((x1-x0)/x1)*100/100 dan lakukan seleksi bila nilai galat lebih
besar dari toleransi error maka lakukan langkah point 5.c , jika sama atau
lebih kecil lakukan langkah 5.e .
c.
Hitung nilai : x2 =
x1 - f1 * (x1-x0) / (f1-f0)
Hitung nilai f2 =
func(x2) dan lanjutkan ke langkah 5.d .
d.
Inisiasi nilai f0 =
f1 , f1 = f2, x1 = x0, x1 = x2.
Tambah nilai i++ dan kembali ke
langkah 6.a sampai nilai i sama dengan nilai iterasi maksimal
, bila sudah terpenuhi lakukan langkah 6.e .
e.
Iterasi berhenti dan
lakukan langkah 7.
7)
Cetak nilai i,
result, dan galat.
8)
Selesai.
9)
C. Pembahasan
public Main() {
initComponents();
this.setLocationRelativeTo(null);
txtF.setText("x*x*x+x*x-3*x-3");
}
|
Skrip program akan
dijalankan pertama kali ketika program dijalankan dan akan melakukan letak
posisi program tepat ditengah layar dan menampikan fungsi yang sedang dipakai
kedalam txtF (textfield untuk menampilkan fungsi).
public double func(double x) {
return x*x*x+x*x-3*x-3;
}
|
Skrip diatas adalah
sebuah method func dimana ketika dipanggil akan melakukan perhitungan fungsi yang
telah dimasukkan.
private void
jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
//
TODO add your handling code here:
double x0 =
Double.parseDouble(txtX0.getText());
double x1 =
Double.parseDouble(txtX1.getText());
|
Skrip diatas akan
bekerja ketika tombol hitung ditekan oleh user dan akan melakukan pengambilan
nilai dari textfield x0 dan x1 yang disimpan pada variabel x0 dan x1.
Double e = Double.parseDouble(txtE.getText());
int
iMax = Integer.parseInt(txtI.getText());
double result = 0;
|
Skrip program diatas
untuk mengambil nilai toleransi error dan iterasi maksimal yang masing-masing
disimpan dalam varibale e dan iMax, sedangkan variabel result digunakan untuk
menyimpan hasil akar nantinya.
double f0 = func(x0);
double f1 = func(x1);
double er=100;
|
Sedangkan skrip
program diatas memanggil method func(x) yang berisi nilai x0 dan akan dilakukan
perhitungan fungsi yang dimasukkan tadi, kemudian hasil perhitungan tersebut
disimpan didalam variabel f0, begitupun dengan func(x1).
Variabel er diberi
nilai awal 100, yang nantinya akan diinisiasi dengan nilai-nilai baru hasil
perhitungan galat.
for (int i = 1; i <= iMax; i++) {
double tmp = f1 - f0;
System.out.println(tmp);
if (tmp != 0) {
if (er>e){
double x2 = x1 - f1 * (x1 - x0) / tmp;
double f2 = func(x2);
|
Sedangkan skrip
diatas sampai pada tahap perulangan dimana akan menghitung fungsi, metode
secant dan galat. For akan melakukan perulangan sampai batas iMax (nilai yang
ditentukan user), karena didalamnya ada seleksi if yang digunakan untuk membuat
kondisi seperti : bila nilai tmp (hasil pengurangan nilai f(x1) dan f(x0))
bernilai 0 maka program akan berhenti dikarenakan pembagian dengan bilangan 0
tidak diperbolehkan, selanjutnya adalah mengecek kondisi galat dengan toleransi
error karena ketika galat lebih kecil dari toleransi error maka program akan
berhenti sebelum menyentuh iterasi iMax yang ditentukan.
Selanjutnya adalah
perhitungan metode secant dengan fungsi x1 - f1 * (x1 - x0) / tmp yang kemudian
hasilnya ditampung divariabel x2 yang selanjutnya akan dicari lagi dengan
fungsi f(x2) sebagai f2.
result = x2;
f0 = f1;
f1 = f2;
x0 = x1;
x1 = x2;
|
Skrip program diatas
berisi inisiasi variabel seperti result (untuk menyimpan hasil perhitungan
fungsi metode secant baru) dari nilai x2. Dan nilai-nilai seperti f1 yang
diinisiasi kedalam variabel f0 yang bertujuan untuk nilai-nilai tersebut dapat
dihitung menerus dengan perulangan sampai mencapai kondisi yang diinginkan.
double galat = ((x1-x0)/x1)*100/100;
er= Math.abs(galat);
System.out.println("Galat : "+er);
|
Script program diatas
adalah untuk menghitung galat dan menginisiasi hasil galat kedalam variabel er.
txtArea.setText("Setelah perulangan
ke-"+ i + " didapat akar : " + result
+"\n"+"Dengan Galat : "+er);
|
Script program diatas
untuk menampilkan perulangan ke berapa, akar yang didapat pada perulangan
tersebut beserta galat yang didapat.
D. Keseluruhan Program
E. Ujicoba
1.
Dengan fungsi f(x) :
x3 + x2 - 3x – 3 = 0, ketika diprogram menjadi : x*x*x+x*x-3*x-3
dengan nilai x0 = 1 dan x1 = 2. Iterasi maksimal yang dibolehkan 10 kali dan
toleransi errornya adalah : 0.0001 %. Maka hasil pada program adalah seperti
dibawah ini :
2.
Dengan fungsi f(x) :
2x2 + 5x – 12 = 0, ketika diprogram menjadi : 2*x*x+5*x-12 dengan
nilai x0 = 1 dan x1 = 3. Iterasi maksimal yang diperbolehkan adalah 20 kali dan
toleransi errornya adalah 0%. Maka ketika diprogram hasilnya seperti dibawah
ini :
3.
Dengan fungsi f(x) :
x (5x2 - 12x + 4) = 0, ketika diprogram menjadi : x*(5*x*x-12*x+4)
dengan nilai x0 = -1 dan x1 = 2. Iterasi maksimal yang diperbolehkan adalah 30
kali dan toleransi errornya 0.00001 %. Maka ketika diprogram maka hasilnya
adalah :
4.
Dengan fungsi f(x) :
x2 – x – 2 = 0, ketika diprogram menjadi : x * x – x – 2 dengan
nilai x0 = 0 dan x1 = 3. Iterasi maksimal yang diperbolehkan adalah 20 kali dan
toleransi errornya adalah 0.05 %. Maka ketika diterapkan pada program maka
hasilnya :
Hasil yang didapat
dari percobaan rata-rata sudah mendekati benar.
G. Lampiran
-terlampir
tags: tugas metode numerik akakom, tugas aplikasi metode numerik stmik akakom, metode secant, aplikasi metode numerik, aplikasi metode secant, aplikasi metode numerik akakom, tugas metode numerik, projek akhir metode numerik,
tags: tugas metode numerik akakom, tugas aplikasi metode numerik stmik akakom, metode secant, aplikasi metode numerik, aplikasi metode secant, aplikasi metode numerik akakom, tugas metode numerik, projek akhir metode numerik,
tags : penerapan metode numerik dalam dunia nyata
aplikasi metode numerik dalam kehidupan sehari-hari
jurnal penerapan metode numerik dalam kehidupan sehari-hari
contoh aplikasi yang menggunakan metode numerik
aplikasi metode numerik dalam teknik sipil
modul metode numerik lengkap
materi metode numerik teknik informatika
tugas metode numerik stmik akakom
0 Response to "TUGAS METODE NUMERIK Terbaru 2018 - Pencarian Akar PNL menggunakan Metode Secant"
Posting Komentar