Metode Newton-Raphson

Referensi : http://en.wikipedia.org/wiki/Newton_Raphson

Referensi di atas cukup lengkap dalam menerangkan apa itu metode Newton-Raphson. Singkatnya, metode Newton Rapshon adalah metode yang digunakan untuk mencari solusi sebuh persamaan menggunakan metode numerik.

\displaystyle x_{n+1} = x_n - \dfrac{f(x_n)}{f'(x_n)}.\,\!

dengan f(x) adalah fungsi yang ingin kita cari solusinya, f'(x) adalah turunan dari fungsi f(x), dan n adalah bilangan asli mulai dari 1. Rumus di atas cukup menggambarkan secara sederhana apa itu metode Newton-Raphson.

Contoh sederhana, kita ingin mencari solusi persamaan: x^2 + x = cos(x)

Fungsi di atas kita ubah menjadi fungsi: f(x) = x^2 + x - cos(x)

Maka turunan dari fungsi di atas adalah f'(x) = 2x + 1 + sin(x)


x_1 = x_0 - \dfrac{f(x_0)}{f'(x_0)}
x_2  = x_1 - \dfrac{f(x_1)}{f'(x_1)}
x_3  = x_2 - \dfrac{f(x_2)}{f'(x_2)} \vdots
x_4  =  \vdots
x_5  =  \vdots

untuk n = 0, maka \displaystyle  x_1 = x_0 - \frac{(x_0^2 + x_0 - cos(x_0)}{2x_0 + 1 + sin(x_0))} dengan nilai awal x_0 = 10 dan akan menghasilkan nilai x_1.

untuk n = 1, maka \displaystyle x_2 = x_1 - \frac{(x_1^2 + x_1 - cos(x_1)}{2x_1 + 1 + sin(x_1)})

Demikian seterusnya cara di atas kita ulangi hingga mendapatkan nilai x_n yang konstan. Biasanya dengan 5 kali perulangan, sudah bisa mendapatkan nilai x_n yang konstan. Nilai akhir x_n ini adalah solusi dari persamaan f(x) kita tadi.

Contoh program dalam c:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
/* 
 * program untuk mencari solusi persamaan 
 * dari fungsi x^2 + x = cos(x)
 * 
 * f(x)  = x^2 + x - cos(x)
 * f(x)' = 2x + 1 + sin(x)
*/
 
#include <stdio.h>
#include <math.h>
#define PHI 3.141592654
 
int main()
{
    int i, loop;
    float init, x;
 
    printf("Masukkan bilangan inisiasi : ");
    scanf("%f", &init);
    x = init;
    printf("Masukkan banyak pengulangan : ");
    scanf("%d", &loop);
 
    for(i = 0; i < loop ; i++){
        x = x - ((x*x + x - cos(x * PHI / 180)) / (2*x + 1 + sin(x * PHI / 180)));
        printf("%f\n", x);
    }
 
    printf("Solusi persamaan x^2 + x = cos(x) adalah x = %f", x);
 
}

Contoh program dalam fortran:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
! program untuk mencari solusi persamaan 
! dari fungsi x^2 + x = cos(x)
 
! f(x)  = x^2 + x - cos(x)
! f(x)' = 2x + 1 + sin(x)
 
 
program newtonRaphson
    integer::i, loop
    real::init, x
    real, parameter::PHI = 3.141592654
 
    write(*, "(A)", advance="NO"), "Masukkan bilangan inisiasi : "
    read*, init
    write(*, "(A)", advance="NO"), "Masukkan banyak looping : "
    read*, loop
 
    x = init
 
    do i = 0, loop
        x = x - ((x**2 + x - cos(x * PHI / 180)) / (2*x + 1 + sin(x * PHI / 180)))
        print*, x
    end do
 
    print*, "Solusi persamaan x^2 + x = cos(x) adalah x = ", x
end program newtonRaphson

2 thoughts on “Metode Newton-Raphson

  1. pak mw tanya klau dengan persamaan f(x)=e^sin(x)=0
    untuk mencari solusi dengan metode bisection bagaimana ya pak?

Leave a Reply

Your email address will not be published. Required fields are marked *