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:
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..
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:
- Mulai
- Tentukan nilai aproksimasi awal x0
- Cari nilai fx0 dan f'x0
- Cari nilai x1 = x0 - (fx0/f'x0)
- Cari nilai error = |x1-x0|
- x0 = x1
- Jika nilai error > toleransi error maka ulangi langkah 2, jika tidak tampilan x0 sebagai akar persamaan yang dicari
- Selesai
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..
Thanks for sharing
Sakuramp3