bisection method

23
Tugas Matematika Teknik Oleh: 1. Qusyairi Ridho 0807100775 2. Siska Fitrianingrum 0807100780 3. Yan Hadynoer 0807100786 TINGKAT II TEKNIK RANCANG BANGUN PERALATAN SANDI

Transcript of bisection method

Page 1: bisection method

Tugas Matematika Teknik

Oleh:

1. Qusyairi Ridho 0807100775

2. Siska Fitrianingrum 0807100780

3. Yan Hadynoer 0807100786

TINGKAT II TEKNIK RANCANG BANGUN PERALATAN SANDI

SEKOLAH TINGGI SANDI NEGARA

2010

Page 2: bisection method

A. Pengertian Metode Numerik

Metode numerik adalah teknik dimana masalah matematika

diformulasikan sedemikian rupa sehingga dapat diselesaikan oleh

pengoperasian aritmetika. Dalam penerapan matematis untuk menyelesaikan

persoalan-persoalan perhitungan dan analisis, ada beberapa keadaan dan

metode yang digunakan untuk menghasilkan penyelesaian yang baik adalah :

(1) Bila persoalan merupakan persoalan yang sederhana atau ada theorema

analisa matematika yang dapat digunakan untuk menyelesaikan persoalan

tersebut, maka penyelesaian matematis (metode analitik) adalah

penyelesaian exact yang harus digunakan. Penyelesaian ini menjadi acuan

bagi pemakaian metode pendekatan.

(2) Bila persoalan sudah sangat sulit atau tidak mungkin diselesaiakan secara

matematis (analitik) karena tidak ada theorema analisa matematik yang

dapat digunakan, maka dapat digunakan metode numerik.

(3) Bila persoalan sudah merupakan persoalan yang mempunyai kompleksitas

tinggi, sehingga metode numerikpun tidak dapat menyajikan penyelesaian

dengan baik, maka dapat digunakan metode-metode simulasi.

Perbedaan utama antara metode numerik dengan metode analitik terletak

pada dua hal. Pertama, solusi dengan menggunakan metode numerik selalu

berbentuk angka. Bandingkan dengan metode analitik yang biasanya

menghasilkan solusi dalam bentuk fungsi matematik yang selanjutnya fungsi

mateamtik tersebut dapat dievaluasi untuk menghasilkan nilai dalam bentuk

angka.

Kedua, dengan metode numerik, kita hanya memperoleh solusi yang

menghampiri atau mendekati solusi sejati sehingga solusi numerik dinamakan

juga solusi hampiran (approxomation) atau solusi pendekatan, namun solusi

hampiran dapat dibuat seteliti yang kita inginkan. Solusi hampiran jelas tidak

tepat sama dengan solusi sejati, sehingga ada selisih antara keduanya. Selisih

inilah yang disebut dengan galat (error).

Page 3: bisection method

1. Metode Bagi Dua (Bisection Method)

Prinsip:

Ide awal metode ini adalah metode table, dimana area dibagi menjadi N

bagian. Hanya saja metode biseksi ini membagi range menjadi 2 bagian,

dari dua bagian ini dipilih bagian mana yang mengandung dan bagian yang

tidak mengandung akar dibuang. Hal ini dilakukan berulang-ulang hingga

diperoleh akar persamaan.

Langkah – langkah dalam menyelesaikan Metode Bagi Dua :

Langkah 1 :

Pilih a sebagai batas bawah dan b sebagai batas atas untuk taksiran akar

sehingga terjadi perubahan tanda fungsi dalam selang interval. Atau periksa

apakah benar bahwa :

f(a) . f(b) < 0

Langkah 2 :

Taksiran nilai akar baru yaitu c diperoleh dari :

Langkah 3 :

Menentukan daerah yang berisi akar fungsi:

Jika z merupakan akar fungsi, maka f(x < z) dan f(x > z) saling berbeda

tanda.

Page 4: bisection method

f(a)*f(c) negatif, berarti di antara a & c ada akar fungsi.

f(b)*f(c) positif, berarti di antara b & c tidak ada akar fungsi

Langkah 4 :

Menentukan kapan proses pencarian akar fungsi berhenti. Proses pencarian

akar fungsi dihentikan setelah keakuratan yang diinginkan dicapai, yang

dapat diketahui dari kesalahan relatif semu.

Contoh . Carilah salah satu akar persamaan berikut:

xe-x+1 = 0

disyaratkan bahwa batas kesalahan relatif (εa) =0.001 dengan menggunakan

range x=[−1,0].

Dengan memisalkan bahwa :

(xl) = batas bawah = a

(xu) = batas atas = b

(xr) = nilai tengah = x

Page 5: bisection method

maka diperoleh tabel biseksi sebagai berikut :

Pada iterasi ke 10 diperoleh x = -0.56738 dan f(x) = -0.00066

Untuk menghentikan iterasi, dapat dilakukan dengan menggunakan

toleransi error atau iterasi maksimum.

Catatan :

Dengan menggunakan metode biseksi dengan tolerasi error 0.001

dibutuhkan10 iterasi, semakin teliti (kecil toleransi errornya) maka semakin

bear jumlah iterasi yang dibutuhkan.

Pemrograman bisection Method dengan MATLAB

Berikut source code yang di gunakan:

% ini fungsi dari bisection yang kami gunakan

function rtn=bisec(fx,xa,xb,n)

x=xa; fa=fx(xa);

x=xb; fb=fx(xb);

for i=1:n;

xc=(xa+xb)/2; x=xc; fc=fx(xc);

X=[i,xa,xb,xc,fc];

disp(X);

if fc*fa<0

xb=xc;

Page 6: bisection method

else xa=xc;

end

end

%tampilkan hasil dari bisection

xa

xb

n

r=(xa+xb)/2

end

%tampilkan gambar plot dari bisection

fplot(fx,[0 2]); grid on

%ini fungsi yang kami gunakan ( f(x)= 3x + sin x – e(x) )

fx=inline('3*x+sin(x)-exp(x)');

Tampilan saat running program :

Page 7: bisection method

Hasil dari runnig program:

>> bisec1(fx,0,1,13)

1.0000 0 1.0000 0.5000 0.3307

2.0000 0 0.5000 0.2500 -0.2866

3.0000 0.2500 0.5000 0.3750 0.0363

4.0000 0.2500 0.3750 0.3125 -0.1219

5.0000 0.3125 0.3750 0.3438 -0.0420

6.0000 0.3438 0.3750 0.3594 -0.0026

7.0000 0.3594 0.3750 0.3672 0.0169

8.0000 0.3594 0.3672 0.3633 0.0071

9.0000 0.3594 0.3633 0.3613 0.0023

10.0000 0.3594 0.3613 0.3604 -0.0002

11.0000 0.3604 0.3613 0.3608 0.0010

12.0000 0.3604 0.3608 0.3606 0.0004

13.0000 0.3604 0.3606 0.3605 0.0001

xa = 0.3604

xb = 0.3605

n = 13

r = 0.3604

Page 8: bisection method

2. Metode Newton-Rhapson

Metode Newton-Raphson adalah salah satu metode penyelesaian akar-

akar persamaan non linier f(x), dengan menentukan satu nilai tebakan awal

dari akar yaitu xi.

Grafik Pendekatan Metode Newton-Raphson :

Langkah-langkah penyelesaian Metode Newton-Raphson :

Langkah 1:

Cari f’(x) dan f”(x) dari f(x)

Langkah 2 :

Tentukan titik x0 dan Uji sesuai :

Apakah memenuhi syarat persamaan? Jika tidak, cari nilai xo baru.

Langkah 3 :

Lakukan iterasi dengan persamaan :

Kelemahan Metode Newton-Raphson :

1. Jika fungsi f(x) mempunyai beberapa akar (titik) penyelesaian, akar-akar

penyelesaian tersebut tidak dapat dicari secara bersamaan.

2. Tidak dapat mencari akar kompleks (imajiner).

Page 9: bisection method

3. Tidak bisa mencari akar persamaan yang tidak memenuhi persyaratan

persamaannya, meskipun ada akar penyelesaiannya.

4. Untuk persamaan non linier yang cukup kompleks, pencarian turunan

pertama dan kedua f(x) akan menjadi sulit.

Algoritma Metode Newton-Raphson :

a) Tentukan Xo, toleransi, dan jumlah iterasi maksimum.

b) Hitung Xbaru = x - f'(X0) / f(X0).

c) Jika nilai mutlak (Xbaru - X0) < toleransi, diperoleh tulisan x baru sebagai

hasil perhitungan;

d) jika tidak, lanjutkan ke langkah berikutnya.

e) Jika jumlah iterasi > iterasi maksimum, akhiri program.

f) X = Xbaru, dan kembali ke langkah (b).

Pemrograman Newton-Rhapson Method dengan C++

#include <stdio.h>include <conio.h>#include <math.h>#include <stdlib.h>

#define ACC 0.01#define N 10

int degree;

float coeff[N];void input(void);float F(float);float dF_dx(float);

/********************************************************//***** Finds the root of any linear algebraic any *****//***** order equation by "Newton-Raphson" method *****//********************************************************/

main(){

char ch; do {

input(); printf("\n \n INGIN MELANJUTKAN [y/n] "); fflush(stdin); scanf("%c",&ch);

}while(ch=='Y' || ch=='y');}

Page 10: bisection method

void input(void){

int i,print,loop=0; float ig; float h;

printf("\n MASUKKAN DERAJAT DARI PERSAMAAN DIFFERENTIAL :");

scanf("%d",&degree); print=degree; for(i=0;i<=degree;i++) {

printf("\n MASUKKAN KOEFISIEN PADA DERAJAT : _ [%d\t] = ",print--);

scanf("%f",&coeff[i]); }

printf("\n MASUKKAN TEBAKAN AWAL : _"); scanf("%f",&ig);

if(F(ig)==0) printf("\n %f : ADALAH AKAR DARI PERSAMAANNYA \

n",ig); do

{ h=-(F(ig))/(dF_dx(ig));

ig=ig-h; loop++;

if(loop>=40) exit(0);

}while(fabs(h)>=ACC); printf("\n %f ADALAH AKARNYA ",ig);}

float dF_dx(float x){

int i,deg; float func=0.0;

deg=degree; for(i=0;i<degree;i++)

{ func=func+coeff[i]*deg*pow(x,(deg-1));

deg--; } if(func==0)

return(1); return(func);

}

float F(float x){ int i,deg;

float func=0.0; deg=degree;

for(i=0;i<=degree;i++) {

func=func+coeff[i]*pow(x,deg); deg--;

} return(func);}

Page 11: bisection method

3. Metode Secant

Ketika SMA, kita sring menyelesaikan persamaan kuadrat yaitu berbentuk

f(x) = aX2 + bX + c , misalnya persamaan kuadrat X2 – 9 = 0, maka akar-akarnya

dapat ditentukan dengan persamaan abc maka akar dari X2

– 9 = 0 adalah X1 = 3 dan X2 = -3.

Metode Secant merupakan perbaikan dari Metode Newton, yaitu nilai turunan f(x)

didekati dengan beda hingga (∆)

gambar . Penentuan nilai turunan fungsi dengan metode Secant.

Page 12: bisection method

Dimana ,

Sehingga dalam perrsamaan Newton – Rhapson menjadi :

Algoritmanya sendiri dari metode ini adalah :

1. Tentukan X0, X1, toleransi dan jumlah iterasi maksimum

2. Hitung

3. Jika nilai mutlak (Xbaru - X1) < toleransi, diperoleh tulisan Xbaru sebagai

hasil perhitungan

4. jika tidak, lanjutkan ke langkah berikutnya

5. Jika jumlah iterasi > iterasi maksimum, akhiri program

6. X = Xbaru, dan kembali ke langkah (2)

Contoh 1: hitung akar persamaan dari f(x) = x³ - 3x - 20

Perkiraan awal

X 1= 6, f(6)=178

X 2= 2, f(2)=-18

iterasi pertama:

X3=2.3673469

f(X3)=-13.83464426

iterasi kedua:

X1 = 2 , f(2) = -18

X2 = 2.3673469, f(X2) = -13.83464426

X3 = 2.3673469--13.83464426 f(x3) = 15.40697963

= 3.587438053

Page 13: bisection method

Contoh 2 : Hitung akar persamaan dari y = X3 + X2 – 3X – 3 dengan

menggunakan Metode Secant, diisyaratkan bahwa batas kesalahan

relatif < 0.01%

Kelebihan dari Metode Secant ini dalah dimana sifatnya yang cepat

mendapatkan nilai konvergen namun tidak selalu mendapatkan hasil yang

konvergen terkadang bisa didapatkan hasil yang divergen.

Pemrograman Secant Method dengan MATLAB

Berikut source code yang di gunakan:

Page 14: bisection method

clear x f;

x(1) = 1; x(2) = 2;tol = 0.000001;

f(1) = fi(x(1));f(2) = fi(x(2));

n=2;i=1;

fprintf('tol = %10.8f\n', tol);

fprintf('i  n     x(n-1)     x(n)       f(x(n-1))  f(x(n))    x(n+1)\n');

x(n+1) = x(n)- f(n)*(x(n) - x(n-1))/(f(n)-f(n-1));

fprintf('%g  %g    %9.6f  %9.6f  %9.6f  %9.6f  %9.6f\n',i,n,x(n-1),x(n),

f(n-1),f(n),x(n+1));

while abs((x(n+1) - x(n))/x(n+1)) > tol

   f(n+1) = fi(x(n+1));

   n=n+1;i=i+1;

   x(n+1) = x(n)- f(n)*(x(n) - x(n-1))/(f(n)-f(n-1));

   fprintf('%g  %g    %9.6f  %9.6f  %9.6f  %9.6f  %9.6f\n',i,n,x(n-1),x(n),

f(n-1),f(n),x(n+1));

   %pause;

end;

fprintf('\n|(x(n+1) - x(n))/x(n+1)| = %10.8f <= tol = %10.8f\n', abs((x(n+1)

- x(n))/x(n+1)),tol);

fprintf('Akarnya = %8.6f, banyak iterasi = %g \n',x(n+1),i);

Outputnya adalah:

tol = 0.00000100

i  n     x(n-1)     x(n)       f(x(n-1))  f(x(n))    x(n+1)

1  2     1.000000   2.000000  -4.000000   3.000000   1.571429

2  3     2.000000   1.571429   3.000000  -1.364431   1.705411

3  4     1.571429   1.705411  -1.364431  -0.247745   1.735136

4  5     1.705411   1.735136  -0.247745   0.029255   1.731996

Page 15: bisection method

5  6     1.735136   1.731996   0.029255  -0.000515   1.732051

6  7     1.731996   1.732051  -0.000515  -0.000001   1.732051

 

|(x(n+1) - x(n))/x(n+1)| = 0.00000006 <= tol = 0.00000100

Akarnya = 1.732051, banyak iterasi = 6

4. Metode Regula-Falsi

Seperti telah dijelaskan sebelumnya, Metode Bisection memiliki kelemahan

pokok, yaitu kurang cepat dalam mencapai konvergensi, maka beberapa ahli

metematika telah berusaha menyempurnakan metode tersebut dengan

dirumuskannya Metode Regula-Falsi atau metode posisi palsu atau false point

method.

Metode Regula-Falsi ini memiliki kelebihan dalam pencapaian nilai

konvergensi yang lebih cepat, namun tetap memiliki kepastian atau jaminan

menuju konvergensi. Metode ini juga sering disebut sebagai Metode Interpolasi

Linier. Dengan Metode Regula-Falsi dibuat garis lurus yang menghubungkan

titik( X1 , f(X1) ) dan titik(X0 ,f(X0)). Perpotongan garis tersebut dengan sumbu X

merupakan taksiran akar yang diperbaiki. Garis lurus tadi seolah-olah berlaku

menggantikan kurva f(x) dan memberikan posisi palsu dari akar.

Dengan menggunakan segitiga – segitiga sebangun pada gambar diatas,

perpotongan garis dan sumbu X dapat ditaksir sebagai :

Page 16: bisection method

Yang dapat disederhanakan menjadi :

Persamaan tersebut adalah rumus untuk mencari akar dengan Metode Posisi

Palsu. Nilai XR merupakan nilai taksiran akar, dengan cara yang sama serta

berturut-turut akan diperoleh taksiran akar berikutnya yang lebih baik.

Contoh program untuk mencari akar persamaan non linear menggunakan Metode

Regula-Falsi dalam bahasa C++

Page 17: bisection method

Hasil eksekusi program untuk mencari akar dengan Metode Regula-Falsi

menggunakan bahasa C+ yang dilakukan dalam selang [0,1] , toleransi 10-5 dan

jumlah iterasi maksimum sebanyak 30, adalah sebagai berikut :

Page 18: bisection method