Tuesday, 3 April 2012

Penyelesaian Numerik Persamaan Non-Linear (Metode Newton-Raphson)

Assalamu'alaikum warahmatullahi wabarakatuh

Postingan ini merupakan kelanjutan tugas kuliah dari postingan sebelumnya tentang Penyelesaian Numerik Persamaan Non-Linear (Metode Fixed Point Iteration). Pada kesempatan ini saya akan berbagi tentang salah satu metode penyelesaiannya, yaitu dengan Metode Metode Newton-Raphson.

Langkah penyelesaian:
a.  Tentukan x0 , toleransi, dan jumlah iterasi maksimum.
b.  Hitung xbaru  = x - f(x0)/f’(x0).
c.  Jika nilai mutlak (xbaru - x0 ) < toleransi, diperoleh tulisan xbaru sebagai hasil perhitungan; jika tidak, lanjutkan ke langkah berikutnya.
d. Jika jumlah iterasi > iterasi maksimum, akhiri program.
e.  x = xbaru  , dan kembali ke langkah b.

Disini yang saya akan bahas bukanlah materi tentang apa itu metode newton-raphson, berhubung saya tugasnya membuat program, maka yang saya share disini adalah programnya. Saya menggunakan bahasa pemrograman C untuk menemukan solusi dengan metode newton-raphson ini.

Coding program newtonraphson.c untuk kasus f(x) = x^3 + 3*cos(x) - x

// Metode Newton-Raphson 
#include <stdio.h>
#include <conio.h> 
#include <math.h>
#define PHI 3.141592654 



float x0,tol; 
int max_iter; 

float f(float x) 

return x*x*x + 3*cos(x*PHI/180) - x;

float f1(float x) 

   return 3*x*x - 1/3*sin(3*x*PHI/180) - 1; 


int main() 

   int it; 
   float epsilon,xb; 
   printf("Solusi Akar dengan Metode Newton-Raphson\n\n");
   printf("Nilai awal              = "); scanf("%f",&x0); 
   printf("Toleransi (ex: 0.0001)  = "); scanf("%f",&tol); 
   printf("Jumlah iterasi maksimum = "); scanf("%d",&max_iter); 

   it = 0; 
   printf("\nIt.     x        f(x)    epsilon\n"); 
   do 
   { 
      it = it + 1; 
      xb = x0 - f(x0)/f1(x0); 
      epsilon = fabs(xb-x0); 
      printf("%3d  %8.5f  %8.5f  %8.2e\n",it,xb,f(xb),epsilon); 
      x0 = xb; 
   } while(it <= max_iter && epsilon > tol); 
   if(it<=max_iter) 
   { 
      printf("\nToleransi terpenuhi\n"); 
      printf("Hasil akhir = %g\n",xb); 
   } 
   else printf("\nToleransi tidak terpenuhi\n"); 
   getch();


Disini saya menggunakan software Dev-C++ untuk menjalankannya.
Sekian posting program "Penyelesaian Numerik Persamaan Non-Linear (Metode Newton-Raphson)" yang dapat saya bagikan kepada kawan-kawan. Semoga ada manfaatnya! Akhir kata, terima kasih dan ...

Wassalamu'alaikum warahmatullahi wabarakatuh

referensi: http://sutedjo.staff.gunadarma.ac.id/Downloads

2 comments:

  1. bang bleh mnta yang metode biseksi kagak...
    lagi btuh pencerahan ni...

    ReplyDelete
    Replies
    1. boleh-boleh, mampir ke postingan ini aja (http://andi0309.blogspot.com/2012/04/penyelesaian-numerik-persamaan-non.html)

      Delete

Harry Potter - Golden Snitch Angry Birds -  Red Bird