Rabu, 25 Mei 2011

Metode Regula Falsi

Sistem Persamaan Non-Linier:
1. Metode Regula Falsi
    Metode Regula Falsi merupakan salah satu metode tertutup untuk menentukan solusi akar dari
persamaan non-linier, dengan prinsip utama sebagai berikut:
a. Menggunakan garis scan(garis lurus yang menghubungkan 2 koordinat nilai awal terhadap kurva) untuk mende
kati akar persamaan non-linier.
b. Taksiran nilai akar selanjutnya meruupakan titik potong garis scan dengan sumbu X.

Algoritma:
1. tentukan nilali awal a dan b
2. cek knvergensu nilai f(a) dan f(b)
    a. jika randa f(a) tidak sama dengan tanda f(b) nilai awal dapat digunakan untuk iterasi selanjutnya
    b. jika tanda f(a) sama dengan tanda f(b), pilih nilai awal yang baru
3. lakukan iterasi
4. Hitunglah nilai tengah (c) antara a dan b, dimana c = a + w(b-a) dengan w = f(a) / (f(a) - f(b))
5. cek konvergensi nilai c
    a. jika terdapatXtol, bandingkan Xtol dengan Erc, Erc = (Cn - Cn-1) / Cn
    b. Jika terdapat Ftol bandingkan Ftol dengan F(Cn)
    c.Jika nilai Cn-1 dan Cn konstan
    d. Jika nilai f(Cn) = 0
6. jika belum konvergen juga, tentukan nilai awal baru dengan cara :
    a. Jika tanda f(C) sama dengan tanda f(a) maka c akan menggantikan a
    b. Jika tanda f(C) sama dengan tanda f(b) maka c akan mengantikan b
contoh soal.
Dengan menggunakan Metode Regula Falsi, tentukan salah satu akar dari persamaan f(x) =
x^3 + X^2 - 3x - 3 = 0. jika diketahui nilai awal x = 1 dan x = 2 serta ketelitian 3 desimal.
jawab:
cek nilai awal
x = 1, f(1) = (1)^3 + (1)^2 - 3*(1) - 3 = -4
x = 1, f(1) = (2)^3 + (2)^2 - 3*(2) - 3 = 3
karena tanda f(x) pertama tidak sama dengan f(x) kedua, jadi nilai awal dapat digunakan untuk
iterasi selanjutnya.
berikut hasil perhitungan disajikan dalam bentuk tabel
oopss...
maaf sob....saya mles ngitung...sob hitung lanjutin ja ya....
ntar ada source javax...di blog ini...in other to esier...hehehe
latihan bahasa inggris dikit...
semoga bermanfaat.....

source code java penerapan metode Secant

buat sob2 saya ne...
source code ketiga yaitu source code untuk metode regula falsi
seperti biasa manusia tidak lepas dari kesalahan dan kekurangan ...same as with me...
program ini masih statis..... n kyaknya da yg salah tolong diperbaiki
silahkan buat sobat yang ingin mengupgrade source yang saya buat....
kotak masuk email saya selalu menunggu untuk diisi upgradetan dari sob....
maaf ne....bahasanya sekarang agak gak beraturan..
langsung ja source code nua

public class demoSecant{
    public static void main(String[] args){
        double e, x1, x2, x0, fx1,fx2,fx0;
        x0=1.0;
        x1=2.0;
        e=0.001;
        System.out.println("\t\tProgram Demo Metode Secant");
        System.out.println("\t\t\tOleh Waskita");
        System.out.println("\t\t\tVersi 1.0");
        System.out.println();
        for(int i=1;i<=4;i++){
        fx0 = (x0*x0*x0) + 2*(x0*x0) -3* x0 - 3;
        fx1 = (x1*x1*x1) + 2*(x1*x1) -3* x1 - 3;
        x2 = x1 - ( fx1 *((x0 - x1)/(fx0 - fx1)));
        fx2 = (x2*x2*x2) + 2*(x2*x2) - 3*x2 - 3;
        System.out.println("iterasi ke-"+i);
        System.out.println("nilai x0 = "+x0);
        System.out.println("nilai x1 = "+x1);
        System.out.println("nilai x2 = "+x2);
        System.out.println("nilai fx0 = "+fx0);
        System.out.println("nilai fx1 = "+fx1);
        System.out.println("nilai fx2 = "+fx2);
        System.out.println();
        if(fx2<0){
            fx2=-1*fx2;
            if(fx2<=e){
            System.out.println("akar telah ditemukan");
            break;
            }else {
                x0 = x1;
                x1 = x2;
                }
             if(fx2<=e){
            System.out.println("akar telah ditemukan");
            break;
            } else {
                x0 = x1;
                x1 = x2;
                }
                        }
            }
        }
}

berikut hasil program(capture)

source code java penerapan metode Newton-Rahpson

oke sob....ni source code java untuk menerapkan metode Newton Raphson
maaf ne sob...hehehe ...programnya memiliki kekurangan ..pertama masih statis dan sobat
harus hitung sendiri turunan persamaan non-Liniernya...
klo sobat da yang bisa ngerubah source codenya supaya dinamis trima kasih...soure codex bisa
dikirim ke e mail saya ...dah tertera kok di blog ni...
langsung aja ne source codenya

public class newtonraphson{
    public static void main (String[] args){
        double a,x;
        double fa,fat,e;
        int i;
        // memasukkan nilai terkaan awal
        a=1;
        //memasukkan nilai error toleransi
        e=0.001;
        System.out.println("\t\t\tProgram Newton- Raphson");
        System.out.println("\t\t\t\tV 1.0");
        //melakukan dengan batas 100 kali perulangan
        for ( i=0;i<=1000;i++){
        fa= (a*a*a)+(a*a)-10;
            //menghitung nilai turunan
        fat=(3*a*a)+(2*a);
        System.out.println("Nilai dari X("+i+") \t= "+a);   
        a = a-(fa/fat);
        System.out.println("Nilai dari fx \t\t= "+fa);
        System.out.println("Nilai dari fx aksen \t= "+fat);
        if (fa<0 ){
            fa=(-fa);
            if (fa<=e){
                break;
                }
            } else{
                if(fa<=e){
                    break;
                    }
                }
        System.out.println("");
                    }   
        }
    }
berikut hasil(capture program)


Senin, 23 Mei 2011

Metode Newton-Raphson

Newton-Raphson
Merupakan salah satu metode solusi penccarian akar suatu persamaan non-linier, yang memiliki ciri utama yaitu
memanfaatkan turunan dari sutau fungsi yang akan diselesaikan.

Algoritma Newton-Raphson:
1. Menentukan suatau persamaan non-linier / f(X).
2. memberikan nilai error toleransi(e) dan batasan pengulangan(ulang)
3. Memberikan nilai terkaan awal(X0)
4. mencari turunan dari persamaan non-linier tersebut / f(X)'.
5. mulai dari awal perulangan( j=1 sampai ulang  lakukan :
    a. hitung nilai f(Xj) jika nilai f(Xj) < e maka Xj merupakan solusi akar persamaan non-linier tersebut
    b. jika nilai f(Xj) > e maka hitung :
        Xj+1 = Xj - f(Xj) / f(Xj)'.
        b.1 hitung nilai f(Xj+1)
        b.2 jika nilai f(Xj+1) < e maka Xj+1 merupakan solusi akar persamaan
cotoh soal.
carilah solusi penyelesaian sistem persamaan non-linier berikut f(x) = X^3 + X^2 - 10 dengan nilai terkaan awal x = 1 dan e = 0,00001
jawab:
langkah 1 : f(x) =   X^3 + X^2 - 10;
langkah 2 : e = 0,00001;
langkah 3 : nilai terkaan awal x = 1;
langkah 4 : mencari turunan dari persamaan non-linier tersebut / f(X)' = f(x)' = 3X^2 + 2X;
langkah 5 a: f(1) = 1 + 1 - 10 = -8;
               b: tidak memenuhi nilai e,
    x1 = x - ( f(x) / f(x)' ) = 1 - -8/(3*(1) + 2*(1)) = 1 - 8/5 = -3/5
    hasil untuk penyelesaian ini saya sajikan dalam bentuk tabel
x(ke-)   x                          f(x)                       f(x)'
 0         1                          1                           5       
 1        2,6                        14,336                  25,48
 2        2,03736263736    2,60762612          16,52726482
 3        1,8795854            0,17311821          14,35769467
 4        1,867527882        0,0009641            14, 1980

jadi akar penyelesaian dari persamaan non-linier tersebut adalah x = 1,867527882.
catatan: membandingkan nilai f(x) terhadap nilai e (error toleransi ) bukan berarti membandingkan besar kecil tetapi berapa angka dibelakang koma untuk mendekati anggka nol.

Metode Secant

Metode Secant
Merupakan kombinasi antara Regula falsi dan Newton
serta tidak perlu menghitung turuna fungsi

Algoritma
1.tentukan persamaan non-linier yang akan diselesaikan
2. tentukan nilai awal x0 dan x1
3. tentukan nilai error toleransi dan batas pengulangan
4. hitung nilai f(x0) dan f(x1)
5. cari nilai x2
dengan rumus x2 = x1 - f(x1) * ( (x1 -x0) / ( f(x1) - f(x0) )
6. hitung nilai f(x2)
7. jika nilai f(x2) mendekati nilai error toleransi(e) atau mencapai batas akhir perulangan
    7a. jika ya x2 adalah dari persamaan non-linier tersebut
    7b. jika tidak x0 = x1 dan x1 = x2 ulangi dari langkah ke 4.

Contoh soal.
Tentukan salah satu akar dari persamaan non-linier f(x) = x^3 + x^2 - 3x - 3 = 0
dengan x0 = 1 , x1 = 2 dan error toleransi(e) = 0,001
jawab
f(x) = x^3 + x^2 - 3x - 3 = 0
x0 = 1, x1 = 2
f(x0) = (1)^3 + (1)^2 - 3(1)^2 - 3 = -4
f(x1) = (2)^3 + (2)^2 - 3(2)^2 - 3 = 3
x2 = x1 - f(x1)*( (x1 - x0)  / (f(x1) - f(x0) ))
     = 2 - 3* ((2-1)/(f(3 - -4)) = 1,7142
f(x2) = (1,7142)^3 + (1,7142)^2 - 3(1,7142)^2 - 3 = - 0,16659
nilai f(x2) belum memenuhi nilai error toleransi
x0 = x1 = 2; x1 = x2 = 1,7142
f(x0) = 3; f(x1) = -0,16659
x2 =  x1 - f(x1)*( (x1 - x0)  / (f(x1) - f(x0) ))
     = 1,7142 - -0,16659* ((2 - 1,7142)/(f( -0.16659 - 3)) = 1,6992
f(x2) = (1,6992)^3 + (1,6992)^2 - 3(1,6992)^2 - 3 = - 0,304253
nilai f(x2) belum memenuhi nilai error toleransi
x0 = x1 = 1,7142; x1 = x2 = 1,6992
f(x0) = -0,16659; f(x1) = -0,304253
x2 =  x1 - f(x1)*( (x1 - x0)  / (f(x1) - f(x0) ))
     = 1,6992 - -0,304253* ((1,6992 - 1,7142)/(( -0.304253 - -0,16992)) = -1,7323516
f(x2) =(1,7323516)^3 + (1,7323516)^2 - 3(1,7323516)^2 - 3 = - 0,0004785
nilai f(x2) memenuhi nilai error toleransi;
jadi salah satu akar penyelesaian dari persamaan non-linier tersebut adalah
-1,7323516