Rabu, 25 Mei 2011

gaus jordan

sekarang metode kedua....
ingat dalam menyelesaikan suatu persamaan linier atau non linier gunakan minimal dua metode
berikut penyelesaian persamaan linier menggunakan metode gaus jordan..soal yang diselesaikan sama dengan soal pada metode gaus
sistem persamaan berkut akan diselesaikan menggunakan  gaus jordan
2X1 + X2 + 3X3 = 11       

4X1 + 3X2 + 10X3 = 28
2X1 + 4X2 + 17X3 = 31
 
 





sehingga didapat
X3 = 1; X2 = 2; X1 = 3
beres dah....
semoga bermanfaat....

gaus

untuk lebih memahami metode penyelesaian sistem persamaan linier ....berikut saya berikan contoh soal buat sob....
sistem persamaan berkut akan diselesaikan menggunakan eleminasi gaus

    2X1 + X2 + 3X3 = 11       
    4X1 + 3X2 + 10X3 = 28
     2X1 + 4X2 + 17X3 = 31

2X3 = 2
X3 = 1



X2 + 4X3 = 6
X2 + (4 * 1) = 6
X2 = 6 – 4 = 2


2X1 + X2 + 3X3 = 11
2X1  + (1 * 2 )  + (3 * 1) = 11
2X1 = 11 – 2 – 3 =6
X1 = 3


Pembuktian
4X1 + 3X2 + 10X3 = 28
(4 * 3) + (3 * 2) + (10 * 1) = 28
12 + 6 + 10 =28
28  = 28

Persamaan Linier

oke...sob..
skarang kita lanjut belajar nih....ke topik..sistem persamaan linier
sistem persamaan linier adalah sistem persamaan dimana pangkat atau derajat masing - masing varibel adalah satu..beda dengan sp non linier....yang pangkat masing - masing variabel minimal ada yang berpangkat dua


pada sistem persamaan linier ini terdapat beberapa metode untuk menyelesaikannya antara lain:
1. metode eleminasi(mudah digunakan apabila jumlah variabel persamaan linier <=3, kalau>3 kepala mulai mumet)
2. metode eleminasi gaus(mudah digunakan apabila jumlah variabel persamaan linier <=6, kalau >6 kepala mumet + mata menjadi kunang - kunang)
3. metode gaus jordan(gak jauh beda ama metode gaus; tapi metode ini langsung memberikan hasil)
4. metode creamer(hampir sama dengan metode eleminasi biasa, hanya berbeda cara penyelesaiannya jika eleminasi biasa menggunakan eleminasi dan substitusi sedangkan creamer menggunakan hukum-hukum matriks)
5. metode gaus siedel(maaf saya tidak bisa memberi gambaran ....karena waktu saya belajar metode ini pikiran saya mumet + mata kunag - kunag)
6. metode operasi baris elementer( sama dengan gaus jordan)
7. metode invers(penyelesaian menggunakan hukum-hukum matriks dan memanfaatkan matrik identitas untuk mencari invers).

ya...itulah 7 metode yang saya ketahui....bisa ketuju2nya....dah lumayan...
intinya sob dari metode ke dua sampai ke tuju itu menggukan matriks dalam penyelesaiannya...dan harus membentuk matriks bujur sangkar agar dapat menyelesaikan sp linier tersebut.

demikian dulu pendahuluan  untuk pembelajaran kita mengenai sistem persamaan linier
semoga bermanfaat.....

source code java penerapan metode Regula Falsi

buat sob2 saya ne... lanjutan materi metode regula falsi
seperti biasa manusia tidak lepas dari kesalahan dan kekurangan ...same as with me...
program ini masih statis.....
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 demoRegulaFalsi{
    public static void main(String[] args){
    int i;
    double xatas, xbawah, x, fxatas, fxbawah, e, fx, fxcoba;
    e=0.001;
    xatas=2;
    xbawah=1;
    fxatas=(xatas * xatas * xatas)+(xatas*xatas)-(3*xatas)-3;
    fxbawah=(xbawah*xbawah*xbawah)+(xbawah*xbawah)-(3*xbawah)-3;   
    outerloop:for(i=1;i<=1000;i++){
        x = xatas - ( (fxatas*xbawah)- ( fxbawah*xatas) ) /(fxatas - fxbawah);
        fx = (x*x*x)+(x*x)-(3*x)-3;
    if(fx<0){
        fxcoba=-(fx);
   
        if(fxcoba<=e){
            System.out.println("nilai f(x)= "+fx);
            System.out.println("akar dari persamaan non-linier tersebut adalah "+x);
            break;
        }else{
            System.out.println("iterasi ke-"+i);
            System.out.println("nilai dari x("+i+")"+x);
            System.out.println("nilai dari fx("+i+")"+fx);
            System.out.println("nilai dari xa("+i+")"+xatas);
            System.out.println("nilai dari xb("+i+")"+xbawah);
            System.out.println("nilai dari f(xa) ke-"+i +fxatas);
            System.out.println("nilai dari f(xb) ke-"+i +fxbawah);
            if ((fx*fxbawah)<0 ){
            xatas=x;
            fxatas=fx;   
            continue outerloop;   
        } else {
            xbawah=x;
            fxbawah=fx;
            continue outerloop;
        }
        }
       
        } else {
                if(fx<=e){
            System.out.println("nilai f(x)= "+fx);
            System.out.println("akar dari persamaan non-linier tersebut adalah "+x);
            break;
        }else{
            System.out.println("iterasi ke-"+i);
            System.out.println("nilai dari x("+i+")"+x);
            System.out.println("nilai dari fx("+i+")"+fx);
            System.out.println("nilai dari xa("+i+")"+xatas);
            System.out.println("nilai dari xb("+i+")"+xbawah);
            System.out.println("nilai dari f(xa) ke-"+i +fxatas);
            System.out.println("nilai dari f(xb) ke-"+i +fxbawah);
                if ((fx*fxbawah)<0 ){
            xatas=x;
            fxatas=fx;   
            continue outerloop;   
        } else {
            xbawah=x;
            fxbawah=fx;
            continue outerloop;
        }
        }
   
           
        }
    }
       
        }
         }
berikut hasil program(capture program)


hasil tersebut memberitahukan bahwa persamaan trseebut tidak dapat diselesaikan...oleh karena itu sob....klo mu ngerjakan sp non-linier jangan menggunakan satu metode ja...gunkan minimal dua....
smoga bermanfaat

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