Site Overlay

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.

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

dengan $latex f(x)$ adalah fungsi yang ingin kita cari solusinya, $latex f'(x)$ adalah turunan dari fungsi $latex 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: $latex x^2 + x = cos(x)$

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

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


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

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

untuk n = 1, maka $latex \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 $latex x_n$ yang konstan. Biasanya dengan 5 kali perulangan, sudah bisa mendapatkan nilai $latex x_n$ yang konstan. Nilai akhir $latex x_n$ ini adalah solusi dari persamaan $latex 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 *

 

This site uses Akismet to reduce spam. Learn how your comment data is processed.