Posted by : Widi Dharmawan
Minggu, 01 Juni 2014
Assalamu'alaikum...
Dalam penyelesaian suatu persamaan non linier terdapat beberapa metode diantaranya: metode tabel, metode biseksi, metode regula falsi, metode iterasi sederhana, metode newton raphson dan metode secant. Kali ini saya akan berbagi sebagian ilmu yang telah saya dapat dikuliah maupun praktikum metode numerik, namun kali ini saya hanya membahas mengenai metode secant. Metode Secant adalah metode yang dikembangkan atau dimodifikasi dari metode newton raphson yang mana memerlukan perhitungan turunan fungsi f'(x). telah kita ketahui tidak semua fungsi mudah dicari turunannya, terutama fungsi yang bentuknya rumit, turunan fungsi dapat dihilangkan dengan cara mengganti dengan bentuk lain yang ekivalen.
Dalam pembuatan program dengan metode secant memerlukan algoritma/langkah-langkah yang dasarnya dari teori metode secant itu sendiri. Berikut algoritma metode secant:
package Secant;
import javax.swing.JOptionPane;
public class TugasMScant {
public static void main(String[] args) {
String biln=JOptionPane.showInputDialog("Masukkan Nilai Iterasi: ");
String bila=JOptionPane.showInputDialog("Masukkan Nilai a: ");
String bilb=JOptionPane.showInputDialog("Masukkan Nilai b: ");
int n, aa,bb;
n=Integer.parseInt(biln);
aa=Integer.parseInt(bila);
bb=Integer.parseInt(bilb);
double a=aa, b=bb;
double dx=(b-a)/10, x=(a+b)/2;
double del=1e-6;
x=Secant(n,del,x,dx);
System.out.println("Akar yang didapat: "+x);
}
public static double Secant(int n,double del, double x, double dx){
int k=0;
double x1=x+dx;
while ((Math.abs(dx)>del) && (k<n)){
double d=f(x1)-f(x);
double x2=x1-f(x1)*(x1-x)/d;
x=x1; x1=x2; dx=x1;
k++; }
if (k==n) System.out.println("Konvergensi tidak ditemukan setelah "+n+"iterasi");
return x1;
}
public static double f(double x){
return Math.exp(x)*Math.log(x)-x*x;
}
}
Selamat mencoba, terima kasih.
Wassalamu'alaikum...
#AsyiknyaBerbagi
Dalam penyelesaian suatu persamaan non linier terdapat beberapa metode diantaranya: metode tabel, metode biseksi, metode regula falsi, metode iterasi sederhana, metode newton raphson dan metode secant. Kali ini saya akan berbagi sebagian ilmu yang telah saya dapat dikuliah maupun praktikum metode numerik, namun kali ini saya hanya membahas mengenai metode secant. Metode Secant adalah metode yang dikembangkan atau dimodifikasi dari metode newton raphson yang mana memerlukan perhitungan turunan fungsi f'(x). telah kita ketahui tidak semua fungsi mudah dicari turunannya, terutama fungsi yang bentuknya rumit, turunan fungsi dapat dihilangkan dengan cara mengganti dengan bentuk lain yang ekivalen.
Dalam pembuatan program dengan metode secant memerlukan algoritma/langkah-langkah yang dasarnya dari teori metode secant itu sendiri. Berikut algoritma metode secant:
- Definisikan fungsi F(x)
- Definisikan toleransi error(e) dan iterasi maksimun(n)
- Masukkan dua nilai pendekatan awal yang diantaranya terdapat akar yaitu x0 dan x1, sebaiknya gunakan metode table atau grafis untuk menjamin titik pendekatannya adalah titik pendekatan yang konvergensinya pada akar persamaan yang diharapkan.
- Hitung F(x0) dan F(x1) sebagai y0 dan y1.
- Untuk iterasi I=1 s/d n atau | F(xi) |
- Akar persamaan adalah nilai x yang terakhir.
package Secant;
import javax.swing.JOptionPane;
public class TugasMScant {
public static void main(String[] args) {
String biln=JOptionPane.showInputDialog("Masukkan Nilai Iterasi: ");
String bila=JOptionPane.showInputDialog("Masukkan Nilai a: ");
String bilb=JOptionPane.showInputDialog("Masukkan Nilai b: ");
int n, aa,bb;
n=Integer.parseInt(biln);
aa=Integer.parseInt(bila);
bb=Integer.parseInt(bilb);
double a=aa, b=bb;
double dx=(b-a)/10, x=(a+b)/2;
double del=1e-6;
x=Secant(n,del,x,dx);
System.out.println("Akar yang didapat: "+x);
}
public static double Secant(int n,double del, double x, double dx){
int k=0;
double x1=x+dx;
while ((Math.abs(dx)>del) && (k<n)){
double d=f(x1)-f(x);
double x2=x1-f(x1)*(x1-x)/d;
x=x1; x1=x2; dx=x1;
k++; }
if (k==n) System.out.println("Konvergensi tidak ditemukan setelah "+n+"iterasi");
return x1;
}
public static double f(double x){
return Math.exp(x)*Math.log(x)-x*x;
}
}
Selamat mencoba, terima kasih.
Wassalamu'alaikum...
#AsyiknyaBerbagi
Related Posts :
- Back to Home »
- Kuliah Metode Numerik »
- Metode Secant dengan Java

Mas boleh minta penjelasan per sintak soalnya saya org awam yg pengen tahu
BalasHapusada email mas, supaya nanti saya jelaskan sintak dengan komentar java (//komentar)..
HapusSaya boleh minta penjelasan per sintak kak? email : cca872@gmail.com
Hapusada yang error gan
BalasHapus