Anda di halaman 1dari 32

Metode Bisection 2.

Persamaan 3xexp(x)=0, untuk 1 x 2


Listing Program //metode bisection . Trisa Apriani #include<stdio.h> #include<math.h> #include<conio.h> float f(float x) { return (3*x) - exp(x); } main() { int i=0; float x1,x2,x3,error,toleransi;

printf("Metode Bisection dengan persamaan (3*x) - exp(x)\n"); printf("Masukkan batas bawah (a) : "); scanf("%f",&x1); printf("Masukkan batas atas (b) printf("Masukkan toleransi : "); scanf("%f",&x2); :"); scanf("%f",&toleransi);

if(f(x1)*f(x2) > 0) { printf("Tidak ada akar antara selang a dan b"); } else { printf("i\t x1\t x2\t x3\t f(x1)\t f(x2)\t f(x3)\t error\n"); do { x3 =(x1+x2)/2; error = (fabs(x2-x1))/2;

printf("%d\t %.4f\t %.4f\t %.4f\t %.4f\t%.4f\t%.4f\t%.4f\n",i,x1,x2,x3,f(x1),f(x2),f(x3),error); if ((f(x1)*f(x2))< 0) { x2=x3; } Else { x1=x3; } i++; } while( error > toleransi); printf("Solusi akar nya adalah : printf("Banyak Iterasi : %d",i); } getch(); return 0; } Tampilan Program %f\n",x3);

3. Persamaan x^2-4x-4-lnx=0, untuk 1 x 2 dan 2 x 4


Listing Program //metode bisection . Trisa Apriani

#include<stdio.h> #include<math.h> #include<conio.h> float f(float x) { return(x*x)-(4*x)-4-log(x); } main() { int i=0; float x1,x2,x3,error,toleransi;

printf("Metode Bisection dengan persamaan x2-4x-4-ln x=0 untuk [1,2] dan [2,4]\n\n"); printf("Masukkan batas bawah (a) : "); scanf("%f",&x1); printf("Masukkan batas atas (b) printf("Masukkan toleransi : "); scanf("%f",&x2); :"); scanf("%f",&toleransi);

if(f(x1)*f(x2) > 0) { printf("Tidak ada akar antara x1 dan x2"); } else { printf("i\t x1\t x2\t x3\t f(x1)\t f(x2)\t f(x3)\t error\n"); do { x3 =(x1+x2)/2; error = (fabs(x2-x1))/2;

printf("%d\t %.4f\t %.4f\t %.4f\t %.4f\t%.4f\t%.4f\t%.4f\n",i,x1,x2,x3,f(x1),f(x2),f(x3),error);

if ((f(x1)*f(x2))< 0) {x2=x3;} Else {x1=x3;} i++; } while( error > toleransi); printf("Solusi akar nya adalah : printf("Banyak Iterasi : %d",i); } getch(); return 0; } Tampilan Program Selang 1 x 2 %f\n",x3);

Selang 2 x 4

4. Persamaan xcosx 2x^3 + 3x 1 =0 untuk 0.2 x 0.3 dan 1.2 x 1.3


Listing Program //metode bisection . Trisa Apriani #include<stdio.h> #include<math.h> #include<conio.h> float f(float x) { return(x*cos(x))-(2*x*x*x)+(3*x)-1; } main() { int i=0; float x1,x2,x3,error,toleransi; printf("Metode Bisection dengan persamaan(x*cos(x))-(2*x*x*x)+(3*x)-1\n"); printf("Masukkan batas bawah (a) : "); scanf("%f",&x1); printf("Masukkan batas atas (b) : "); scanf("%f",&x2); printf("Masukkan toleransi :"); scanf("%f",&toleransi); if(f(x1)*f(x2) > 0) { printf("Tidak ada akar antara x1 dan x2"); } else { printf("i\t x1\t x2\t x3\t f(x1)\t f(x2)\t f(x3)\t error\n"); do { x3 =(x1+x2)/2; error = (fabs(x2-x1))/2; printf("%d\t %.4f\t %.4f\t %.4f\t %.4f\t%.4f\t%.4f\t%.4f\n",i,x1,x2,x3,f(x1),f(x2),f(x3),error); if ((f(x1)*f(x2))< 0) { x2=x3; } else { x1=x3; } i++; } while( error > toleransi); printf("Solusi akar nya adalah : printf("Banyak Iterasi : %d",i); } getch(); return 0; } %f\n",x3);

Tampilan Program Selang 0.2 x 0.3

Selang 1.2 x 1.3

Metode Iterasi Titik Tetap (Fixed Point Iteration) 1. Persamaan x = g1(x1) = x-x^3-4x^2+10
Listing Program //metode iterasi titik tetap Trisa Apriani #include<stdio.h> #include<math.h> #include<conio.h> /*daftar x0 t max_iter variabel = harga awal = toleransi = jumlah iterasi maksimum*/

float x0,t; int max_iter, i; float g(float x) { return x - x*x*x - 4*x*x + 10; } main() { printf("metode iterasi titik tetap untuk persamaan 10\n\n ");

x - x*x*x - 4*x*x +

int it; float epsilon,xb; printf(" Taksiran awal\t\t\t="); scanf("%f",&x0); printf(" Toleransi\t\t\t="); scanf("%f",&t); printf(" jumlah iterasi maksimum\t="); scanf("%d",&max_iter); it = 0; i=0; printf("\niterasi\t do { it=it + 1; xb=g(x0); epsilon=fabs(xb-x0); printf("%d %f %f x0=xb; i++; } while(it<=max_iter && epsilon>t); if(it<=max_iter) { printf("toleransi terpenuhi\n"); printf("hasil akhir = %f\n",xb); printf("banyak iterasi = %d",i); } else printf("Toleransi tidak terpenuhi\n"); getch(); } Tampilan Program

g(x)

f(x)\n");

%f\n",it,x0,xb,epsilon);

2. Persamaan x = g2(x2) = (10/x-4x)^1/2


Listing Program //metode iterasi titik tetap Trisa Apriani #include<stdio.h> #include<math.h> #include<conio.h> /*daftar variabel

x0 = harga awal t = toleransi max_iter = jumlah iterasi maksimum*/ float x0,t; int max_iter, i; float g(float x) { return (sqrt(10/(x) - 4*x)); } main() { printf("metode iterasi titik tetap untuk persamaan 4*x))\n\n "); int it; float epsilon,xb; printf(" Taksiran awal\t\t\t="); scanf("%f",&x0); printf(" Toleransi\t\t\t="); scanf("%f",&t); printf(" jumlah iterasi maksimum\t="); scanf("%d",&max_iter); it = 0; i=0; printf("\niterasi\t do { it=it + 1; xb=g(x0); epsilon=fabs(xb-x0); printf("%d %f %f x0=xb; i++; } while(it<=max_iter && epsilon>t); if(it<=max_iter) { printf("toleransi terpenuhi\n"); printf("hasil akhir = %f\n",xb); printf("banyak iterasi = %d",i); } else printf("Toleransi tidak terpenuhi\n"); getch(); }

sqrt(10/x -

g(x)

f(x)\n");

%f\n",it,x0,xb,epsilon);

Tampilan Program

3. Persamaan x = g3(x3) = (10-x^3)^1/2


Listing Program //metode iterasi titik tetap Trisa Apriani #include<stdio.h> #include<math.h> #include<conio.h>

/*daftar variabel x0 t max_iter = harga awal = toleransi = jumlah iterasi maksimum*/

float x0,t; int max_iter, i; float g(float x) { return (sqrt(10-(x*x*x))/2); }

main() { printf("metode iterasi titik tetap untuk persamaan (sqrt(10-(x*x*x))/2)\n\n ");

int it; float epsilon,xb; printf(" Taksiran awal\t\t\t="); scanf("%f",&x0); printf(" Toleransi\t\t\t="); scanf("%f",&t); printf(" jumlah iterasi maksimum\t="); scanf("%d",&max_iter);

it = 0; i=0; printf("\niterasi\t x g(x) f(x)\n");

do { it=it + 1; xb=g(x0); epsilon=fabs(xb-x0); printf("%d %f x0=xb; i++; } %f %f\n",it,x0,xb,epsilon);

while(it<=max_iter && epsilon>t); if(it<=max_iter) { printf("toleransi terpenuhi\n"); printf("hasil akhir = %f\n",xb); printf("banyak iterasi = %d",i); } else printf("Toleransi tidak terpenuhi\n");

getch();

} Tampilan Program

4. Persamaan x = g4(x) = (10/(4+x))^1/2


Listing Program //metode iterasi titik tetap Trisa Apriani #include<stdio.h> #include<math.h> #include<conio.h> /*daftar variabel x0 t max_iter = harga awal = toleransi = jumlah iterasi maksimum*/

float x0,t; int max_iter, i; float g(float x) { return sqrt(10/(4+x)); }

main() { printf("metode iterasi titik tetap untuk persamaan (sqrt(10/(4+x))\n\n "); int it; float epsilon,xb; printf(" Taksiran awal\t\t\t="); scanf("%f",&x0); printf(" Toleransi\t\t\t="); scanf("%f",&t); printf(" jumlah iterasi maksimum\t="); scanf("%d",&max_iter);

it = 0; i=0; printf("\niterasi\t x g(x) f(x)\n");

do { it=it + 1; xb=g(x0); epsilon=fabs(xb-x0); printf("%d %f x0=xb; i++; } %f %f\n",it,x0,xb,epsilon);

while(it<=max_iter && epsilon>t); if(it<=max_iter) { printf("toleransi terpenuhi\n"); printf("hasil akhir = %f\n",xb); printf("banyak iterasi = %d",i); }

else printf("Toleransi tidak terpenuhi\n");

getch(); } Tampilan Program

Metode Newton Rapshon 1. Persamaan x^3+4x^2-10=0 untuk 1 x 2


Listing Program //Metode Newton Rapshon. Trisa Apriani #include<stdio.h> #include<math.h> #include<conio.h> float f(float x) { return (x*x*x)+(4*x*x)-10; } float df(float x) { return (3*x*x) + (8*x); } main() { int i;

float error,x,fx,dfx,g,fg,dfg,d; printf("metode newton raphson untuk persamaan x^3 + 4x^2 -10\n"); printf("\nMasukkan nilai a : ");scanf("%f", &x); printf("Masukkan nilai error : ");scanf("%f", &error);

fx=f(x); dfx=df(x);

g=x; fg=fx; dfg=dfx; i=0; printf("\nNo\t x\t\t fx\t\t dfx\t\t g\t\t d\n");

do { x=g; fx=fg; dfx=dfg; g=x- (fx/dfx); fg=f(g); dfg=df(g); d=fabs(x-g); i++; printf("%d\t%f\t%f\t%f\t%f\t%f\n",i,x,fx,dfx,g,d); }

while(d>error); printf("Solusi akar pendekatan %f\n", g); printf("\nBanyak Iterasi : %d",i); getch(); return 0; }

Tampilan Program

2. Persamaan 3x-exp(x)=0, untuk 1 x 2


Listing Program //Metode Newton Rapshon. Trisa Apriani #include<stdio.h> #include<math.h> #include<conio.h>

float f(float x) { return 3*x - exp(x); }

float df(float x) { return 3 - exp(x); }

main() { int i; float error,x,fx,dfx,g,fg,dfg,d; printf("metode newton raphson untuk persamaan 3*x - exp(x)\n");

printf("\nMasukkan nilai a : ");scanf("%f", &x); printf("Masukkan nilai error : ");scanf("%f", &error);

fx=f(x); dfx=df(x);

g=x; fg=fx; dfg=dfx; i=0; printf("\nNo\t x\t\t fx\t\t dfx\t\t g\t\t d\n");

do { x=g; fx=fg; dfx=dfg; g=x- (fx/dfx); fg=f(g); dfg=df(g); d=fabs(x-g); i++; printf("%d\t%f\t%f\t%f\t%f\t%f\n",i,x,fx,dfx,g,d); }

while(d>error); printf("Solusi akar pendekatan %f\n", g); printf("\nBanyak Iterasi : %d",i);

getch(); return 0; }

Tampilan Program

3. Persamaan x^2-4x-4-ln(x)=0, untuk 1 x 2 dan 2 x 4


Listing Program //Metode Newton Rapshon. Trisa Apriani #include<stdio.h> #include<math.h> #include<conio.h>

float f(float x) { return (x*x - 4*x - 4 - logf(x)); } float df(float x) { return (2*x - 4 - 1/(x)); } main() { int i; float error,x,fx,dfx,g,fg,dfg,d; printf("metode newton raphson untuk persamaan (x*x - 4*x - 4 logf(x))\n"); printf("\nMasukkan nilai a : ");scanf("%f", &x); printf("Masukkan nilai error : ");scanf("%f", &error);

fx=f(x); dfx=df(x);

g=x; fg=fx; dfg=dfx; i=0; printf("\nNo\t x\t\t fx\t\t dfx\t\t g\t\t d\n");

do { x=g; fx=fg; dfx=dfg; g=x- (fx/dfx); fg=f(g); dfg=df(g); d=fabs(x-g); i++; printf("%d\t%f\t%f\t%f\t%f\t%f\n",i,x,fx,dfx,g,d); }

while(d>error); printf("Solusi akar pendekatan %f\n", g); printf("\nBanyak Iterasi : %d",i);

getch(); return 0; }

Tampilan Program

4. Persamaan xcosx-2x^2+3x-1=0, untuk 0.2 x 0.3 dan 1.2 x 1.3


Listing Program //Metode Newton Rapshon. Trisa Apriani #include<stdio.h> #include<math.h> #include<conio.h>

float f(float x) { return (x*cos(x))-(2*x*x*x)+(3*x)-1; }

float df(float x) { return (cos(x))-(x*sin(x))-(6*x*x)+3; } main() { int i; float error,x,fx,dfx,g,fg,dfg,d; printf("metode newton raphson untuk persamaan 3*x - exp(x)\n");

printf("\nMasukkan nilai a : ");scanf("%f", &x); printf("Masukkan nilai error : ");scanf("%f", &error);

fx=f(x); dfx=df(x);

g=x; fg=fx; dfg=dfx; i=0; printf("\nNo\t x\t\t fx\t\t dfx\t\t g\t\t d\n");

do { x=g; fx=fg; dfx=dfg; g=x- (fx/dfx); fg=f(g); dfg=df(g); d=fabs(x-g); i++; printf("%d\t%f\t%f\t%f\t%f\t%f\n",i,x,fx,dfx,g,d); }

while(d>error); printf("Solusi akar pendekatan %f\n", g); printf("\nBanyak Iterasi : %d",i);

getch(); return 0; }

Tampilan Program

Tugas Akhir 4. Buatlah Tabel perbandingan untuk semua metoda dalam menghasilkan solusi dari persamaan x^2+4x^3-10=0 (Parameter yang digunakan harus sama) Bisection

Regula Falsi

Iterasi titik tetap

Newton Rapshon

Secant

3. Buatlah Summary (tidak lebih dari satu halaman) untuk menganalisa dari semua metode yang telah dikerjakan yaitu metode bisection, iterasi titik tetap, dan metode newton rapshon Summary Dari ketiga metode yang telah dibuat yaitu metode tertutup (Bisection dan Regula falsi) dan metoda terbuka (iterasi titik tetap, newton, dan secant), dapat diambil kesimpulan bahwa terdapat beberapa perbedaan diantara metoda-metoda tersebut. Untuk metoda tertutup kelebihan nya yaitu solusi akar yang didapat selalu konvergen, sedangkan kekurangannya yaitu laju kekonvergenanya lambat. Sedangkan metoda terbuka kelebihannya yaitu laju konvergen cepat dan cukup satu terkaan awal, kelemahannya yaitu untuk turunan dari suatu persamaan harus dicari secara analitis dan solusi akar dapat divergen. Metoda Bisection adalah metoda yang membagi range menjadi 2 bagian, dari dua bagian ini dipilih bagian mana yang mengandung akar dan bagian yang tidak mengandung akar dibuang. Hal ini dilakukan berulang-ulang hingga diperoleh solusi akar persamaan . Metoda Iterasi titik tetap adalah metoda terbuka yang tidak memerlukan selang yang mengurung akar. Yang diperlukan adalah tebakan awal akar atau dua buah tebakan yang tidak perlu mengurung akar. Metoda Fixed Point Iteration atau Metoda Lelaran Tetap kadang-kadang dinamakan Metoda Lelaran Sederhana, Metoda Langsung, atau Metoda Sulih Beruntun. Kadang-kadang lelaran konvergen dan juga kadang-kadang divergen. Kriteria konvergensi: g(x)1 < Kriteria divergensi: g(x)1 >

Metoda Newton Rapshon adalah metode pendekatan yang menggunakan satu titik awal dan mendekatinya dengan memperhatikan slope atau gradien pada titik tersebut. Metode ini tidak dapat digunakan ketika titik pendekatannya berada pada titik ekstrim atau titik puncak, karena pada titik ini nilai F (x) = 0 sehingga nilai penyebut dari
F ( x) F ( x )

sama

dengan nol. Bila titik pendekatan berada pada titik puncak, maka titik selanjutnya akan berada di tak berhingga.

Analisa 1. Metoda Bisection Dalam metode Bisection kita diharuskan menginput dua titik yang ditaksir sebagai terkaan awal yang terdapat akar antara selang batas bawah (x1) dan batas atas (x2). Dan berlaku syarat f(x1)* f(x2) <0, hal ini menyatakan bahwa f(x1) dan f(x2) nya berlawanan tanda. Metode ini membagi dua titik menjadi dua bagian untuk mencari solusi pendekatan akarnya Metode ini menaksir nilai akar hampiran dengan pendekatan membagi dua buah nilai misal x1 dan x2 yang dimana diperkirakan terdapat minimal sebuah akar pada range tersebut. Pembagian tersebut dapat dijabarkan dengan persamaan : x3 = (x1+x2)/2

2. Metoda Iterasi Titik Tetap (Fixed Point Iteration) Dalam metode ini , kita harus menginputkan satu titik terkaan terlebih dahulu.Ide dari metode ini adalah dengan mendefinisikan sebuah fungsi g(x) yang merupakan bentuk lain dari fungsi f(x). metode ini adalah salah satu metode terbuka yang dapat digunakan untuk menyelesaikan persamaan non-linear. Metode ini cukup sederhana yaitu dengan melakukan manipulasi persamaan non-linear yang ada

F(x) = 0, sehingga nilai x berada pada ruas kiri persamaan: x = g(x) F(x) = x2 x 4 = 0 Persamaan F(x) dapat dimanipulasi menjadi : x = ( x2 4 )/ 4

3. Metode Newton Rapshon MetodeNewton-Raphson ( umumnya disebut dengan metode Newton ) merupakan metode penyelesaian persamaan non-linear yang sering digunakan diantara metode lainnnya, karena metode ini memberikan konvergensi yang lebih cepat dibandingkan dengan metode lainnya. Metode Newton ini dapat dijabarkan dengan persamaan sebagai berikut :

Kesimpulan Dalam penyelesaian beberapa persamaan dalam kalkulus ada 2 cara yaitu secara analitik dan secara numerik, Metode analitik digunakan dengan pemikiran yang sangat sulit dan menggunakan sistematika penyelesaian kalkulus, hasil yang didapat pun merupakan nilai sejati atau nilai exact. Sedangkan dalam penyelesaian menggunakan metode numerik yaitu lebih terhadap logika dan penggunaan komputer didalamnya. Hasil yang didapat dengan penyelesaian secara numerik adalah pendekatan terhadap solusi akar pastinya. Apabila ada suatu persamaan yang rumit/kompleks dan tidak bisa diselesaikan secara analitik maka dengan menggunakan metode numeriklah dapat dihasilkan solusinya. Sehingga metode-metode di atas yaitu metode tertutup dan terbuka muncul karena adanya persamaan-persamaan yang rumit untuk diselesaikan. Metode tertutup terdiri dari 2 metode yaitu Bisection dan Regula Falsi, sedangkan Metode terbuka terdiri dari Iterasi titik tetap, Newton rapshon, dan Secant. Metode-metode tersebut dapat dibedakan dari prinsip pencarian akar-akarnya, yaitu pada metode bisection diperlukan dua buah titik selang sebagai terkaan awal, sedangkan pada metode iterasi titik tetap dan metode newton rhapson di gunakan satu buah titik sebagai terkaan awal. Jika fungsinya kontinu dan akarnya ada, metode bisection pasti konvergen, sementara newton rapshon terkadang menghasilkan konvergen namun terkadang pula divergen karena metoda ini merupakan metode terbuka. Dan jika dibandingkan, metode newton raphson lah yang sering digunakan karena kekonvergenannya sangat cepat, sedangkan untuk nilai keakurantannya metode bisection lebih baik dibandingkan dengan metode-metode lainya. Namun tetap saja metode ini memiliki kekurangan yaitu tidak dapat digunakan untuk fungsi yang tidak bersifat kontinu.

Perbedaan perumusan untuk masing-masing metode dapat dilihat sebagai berikut: Metode bisection berlaku syarat f(a) x f(b) <0, hal ini menyatakan bahwa f(a) dan f(b) nya berlawanan tanda. Sedangakan untuk metode iterasi titik tetap adalah dengan menentukan sebuah fungsi f yang merupakan bentuk lain dari fungsi f. Dan untuk metode metode newton-rapshon merupakan metode yang sangat efektif dalam mencari solusi persamaan nonlinear. Metode ini dapat diturunkan menggunakan aproksimasi deret taylor di x=p. Metode ini memilki laju konvergensi yang lebih cepat dibandingkan dengan metode lainnya. Selain menggunakan aproksimasi deret

taylor, metode newton-raphson juga dapat dicari dengan menggunakan pendekatan secara geometri.

Daftar Pustaka 1. Munir,Rinaldi. 2008. Metode Numerik. Bandung: Informatika Bandung. 2. Marlan. 2004. Diktat Kuliah Fisika Komputasi 1. Jurusan fisika UNPAD

METNUM 1 SOLUSI PERSAMAAN NON LINIER

Nama NPM Hari / Tgl. Praktikum Waktu Asisten

: TRISA APRIANI : 140310090037 : Selasa/ 3 Agustus 2010 : 07.30-10.00 WIB : Kang Dwindra

LABORATORIUM KOMPUTASI DAN PEMOGRAMAN JURUSAN FISIKA


FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS PADJADJARAN 2010

LEMBAR PENGESAHAN METNUM 1 SOLUSI PERSAMAAN NON LINIER

Nama NPM Hari / Tgl. Praktikum Waktu Asisten

: TRISA APRIANI : 140310090037 : Selasa/ 3 Agustus 2010 : 07.30-10.00 WIB : Kang Dwindra

PROGRAM

SPEAKEN

PRAKTIKUM

LAP.AKHIR

Jatinangor, 8 Agustus 2010 Asisten,

Anda mungkin juga menyukai