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:
  1. Definisikan fungsi F(x)
  2. Definisikan toleransi error(e) dan iterasi maksimun(n)
  3. 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.
  4. Hitung F(x0) dan F(x1) sebagai y0 dan y1.
  5. Untuk iterasi I=1 s/d n atau | F(xi) |
  6. Akar persamaan adalah nilai x yang terakhir.
Berikut contoh program metode secant dengan menggunakan aplikasi Netbeans dengan bahasa pemograman java.

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

{ 4 komentar... read them below or Comment }

  1. Mas boleh minta penjelasan per sintak soalnya saya org awam yg pengen tahu

    BalasHapus
    Balasan
    1. ada email mas, supaya nanti saya jelaskan sintak dengan komentar java (//komentar)..

      Hapus
    2. Saya boleh minta penjelasan per sintak kak? email : cca872@gmail.com

      Hapus

Welcome to My Blog

Join Us

Diberdayakan oleh Blogger.

Fans Page

Statistik Blog

- Copyright © AsyiknyaBerbagi -Robotic Notes- Powered by Blogger - Designed by Johanes Djogan -