Komputasi Numeris: Metode Newton Raphson (1)

Pendahuluan
Metode Newton Raphson diperkenalkan oleh Sir Isaac Newton (1643-1727) dan Joseph Raphson (1648–1715) yang dipergunakan untuk pencarian akar real dari persamaan non linear. Metode Newton Raphson ini memiliki keuntungan dibandingkan metode yang lain seperti Bisection atau Secant karena hanya membutuhkan satu nilai aproksimasi dan jumlah iterasi (konvergensi) yang lebih sedikit terutama jika nilai aproksimasi awal yang dipilih berada "dekat" dengan akar yang akan dicari.

Algoritma

Metode Newton-Raphson memiliki dua macam pendekatan turunan:
1. Geometrical Method
2. Taylor Method (akan dibahas berikutnya)

Geometrical Method.
Metode Newton Raphon dengan metode geometri idenya adalah kita akan menarik garis lurus (linear) yang menyinggung (x0 , f(x0)) dimana x0 adalah aproksimasi awal yang kita tentukan. Perhatikan gambar berikut:
Keterangan:
Garis singgung yang melalui (x0, f(x0)) akan memotong sumbu x di x1. Nilai x1 inilah yang menjadi aproksimasi berikutnya.
Nilai x1 kita peroleh menggunakan formula:


Begitu seterusnya hingga perbedaan nilai x0 dan x1 kurang dari toleransi error yang kita tentukan.
Algoritma metode Newton Raphson dengan metode geometri adalah sebagai berikut:
  1. Mulai
  2. Tentukan nilai aproksimasi awal x0
  3. Cari nilai fx0 dan f'x0
  4. Cari nilai x1 = x0 - (fx0/f'x0)
  5. Cari nilai error  = |x1-x0|
  6. x0 = x1
  7. Jika nilai error > toleransi error maka ulangi langkah 2, jika tidak tampilan x0 sebagai akar persamaan yang dicari
  8. Selesai
Listing Program

Berikut contoh kode program penyelesaian sistem persamaan non linear

dengan metode Newton-Raphson Geometrical Method

//Menulis identitas program
/*
Algoritma Newton Raphson dengan Geometrical Method
Haruno Sajati, S.T., M.Eng.
Program Studi Teknik Informatika
Sekolah Tinggi Teknologi Adisutjipto Yogyakarta

jati@stta.ac.id

*/

//Deklarasi Header
#include<iostream.h>;
#include<math.h>;
 

//Program utama
void main()
{
  float x1,x2,toleransi;
  int iterasi;


  //Step 2: Menentukan aproksimasi awal

  cout << "Masukkan X1 : ";
  cin >> x1;


  toleransi=1;
  iterasi=1;
  x2=0;


  //Step 7: proses perulangan jika error > toleransi error 
  while (toleransi > 0.0001) 
  {
    cout << "Iterasi " << iterasi << endl;
    cout << "X1 = " << x1 << endl;

    //Step 3 dan 4: penentuan aproximasi berikutnya

    x2=x1-((((x1*x1)-(5*x1)+6))/((2*x1)-5));
    cout << "X2 = " << x2 << endl;

    //Step 5: Menghitung nilai error

    toleransi=(x2-x1);
    if (toleransi<0)
    {
      toleransi*=-1;
    }
    cout << "Toleransi = " << toleransi << endl;
    cout << endl;

    
    //Step 6: Perubahan nilai aproksimasi
    x1=x2;

    iterasi++;
  }
  cout << "Akar Persamaan = " << x2 << endl;
}


Berikut tampilan eksekusi programnya:





































Unduh contoh di sini.

Selamat mencoba. Semoga bermanfaat..
Next Post Previous Post
1 Comments
  • Unknown
    Unknown December 31, 2019 at 8:33 AM

    Thanks for sharing
    Sakuramp3

Add Comment
comment url