loading...
loading...

Thursday, June 9, 2016

Coding METODE NEWTON RAPHSON C++



METODE NEWTON RAPHSON

Metode Newton Raphson juga digunakan untuk menyelesaikan persamaan non linear f(x).
Rumus  penyelesaian  Xn1=Xn−f Xn/ f 'Xn ... 2a
Sedangkan persamaan non linear dapat diselesaikan jika memenuhi syarat sbb :
∣f x1. f ''x1/f 'x1.f 'x1∣ < 1 ... 2b
dimana  X1 adalah titik awal yang ditentukan sebelum melakukan iterasi.
 Keterbatasan dari metode ini adalah :
1. jika fungsi f(x) mempunyai beberapa titik penyelesaian, maka akar­akar penyelesaian tersebut  tidak dapat dicari secara bersamaan.
2. Tidak dapat mencari akar imajiner(kompleks).
3. Tidak dapat mencari akar persamaan yang tidak memenuhi syarat persamaan 2b, meskipun  sebenarnya persamaan memiliki akar persamaan. 4. Untuk persamaan yang sangat kompleks, pencarian turunan pertama dan kedua sangatlah sulit.
Berikut algoritma Metode Newton Raphson :
1. Mencari turunan pertama dan kedua dari persamaan yang ada.
 2. Menentukan nilai   X1 sebagai nilai perkiraan awal dan kemudian mengecek apakah  memenuhi persyaratan persamaan 2b.
3. Jika memenuhi, maka iterasi dilakukan untuk mencari nilai  Xn .
4. Begitu seterusnya hingga antara  Xn−1−Xn = 0 atau <= nilai e (error). Nilai error ini dapat  ditentukan sendiri.

Contoh : Carilah persamaan non linear di bawah ini dengan Metode Newton Raphson : f x=ex−3x2=0
Langkah pertama, mencari turunan persamaan tersebut

 f 'x=ex−6x
f ''x=ex−6
 Langkah kedua, menentukan nilai  X1 , misalnya
 X1 = 1.
f(1) =  e3−312=−0.281718
 f'(1) =  e3−61=−3.281718
f''(1) =  e3−6=−3.281718
jadi
∣f x1. f ''x1/f 'x1.f 'x1∣=0.0858451

karena syarat dipenuhi maka proses iterasi dapat dilanjutkan.
Langkah ketiga, melakukan iterasi persamaan 2a untuk mencari
Xn jika e (error) =  Ex10−7 .
x2=x1−f x1/ f 'x1=0.9141155
x1−x2=0.0858845
Langkah keempat, karena selisih x lebih besar dari e dan bukan 0 maka x3=x2−f x2/ f 'x2=0.910018
x2−x3=0.0040975
dst.
 hingga selisihnya sama dengan nol atau lebih kecil dari e.

berikut adalah contoh koding C++ nya


#include <cstdlib>
#include <iostream>
#include <math.h>

using namespace std;

double f(double x) //for the function x^4 - 10
{
       return (x*x*x*x - x - 10);
}

double ff(double x) //Differentiating function f(x)
{
    return (4*x*x*x - 1);
}

void NR(double aerr, int maxitr, double a)
{
     int i = 0;
     double b, prev;
     while (i <= maxitr)
     {
           b = a - (f(a))/ff(a);
           cout << "Iter " << i << ": x = " << b << endl;
           i++;
           if (fabs(b - a) < aerr)
              break;
           a = b;
     }
    
}

int main()
{
    double aerr, a, b;
    int maxitr;
    cout << "Enter aerr, maxitr, a." << endl;
    cin >> aerr;
    cin >> maxitr;
    cin >> a;
    NR(aerr, maxitr, a);
    
    system("PAUSE");
    return EXIT_SUCCESS;
}


www.ayeey.com www.resepkuekeringku.com www.desainrumahnya.com www.yayasanbabysitterku.com www.luvne.com www.cicicookies.com www.tipscantiknya.com www.mbepp.com www.kumpulanrumusnya.com www.trikcantik.net

0 comments:

Post a Comment