Senin, 29 April 2013

Komputasi Numerik_Metode Biseksi

DEFINISI:
Pada Metode Biseksi, kita setiap kali iterasi membagi dua interval yang memuat Akar Fungsi, sampai lebar interval mencapai suatu bilangan yang bcrada dalam toleransi kita. Diasumsikan bahwa hanya satu Akar terdapat dalam interval [x0,x1]. Maka berlaku f(x0)*f(xl) <= o. Tanda = berbaku bila xO atau x1 merupakan Akar.
Metode Biseksi menjamin bahwa ia selalu berhasil mcnemukan Akar yang kita cari. laTitik tengah dari interval, yang kita sebut x2, adalah x2 = (xO + x1)/2. Harga Fungsi di x2 dapat dihitung. Apabila f(x0)*f(x2) <= 0, maka Akar akan berada pada interval [x0,x2]. Tanda = berbaku bila f(x2) = 0, yakni bila x2 temyata merupakan Akar. Dalam hal f(x0)*f(x2) > 0, Akar akan berada dalam interval [x2,x1]. selalu konvergen. Namun satu kelemahan metode ini, ia bekerja dengan sangat lambat. Ia selalu mencari titik tengah X2 sebagai titik ujung interval berikutnya. Ia tak memandang bahwa sebenarya Akar telah berada dekat sekali dengan X0 ataupun X1 .
SOAL: berikut adalah soal dari dosen yakni : x3+x2-3x-3
HITUNG MANUAL: Jika dicari dengan hitung manual sampai iterasi 3 akan seperti berikut ini;
* iterasi1*
batas atas(a) = 1;
batas bawah(b) = 2;
c= (a+b)/2=> (1+2) /2=> 1,5 ;
f(a) =(1.1.1)+(1.1)+(-3.1)-3=>-4, ;
f(b) =(2.2.2)+(2.2)+(-3.2)-3=>3;
f(c)=(1,5.1,5.1,5)+(1,5.1,5)+(-3.1,5)-3=>-1,875;
if f(a)*f(c) >0 then a=c, sehingga posisi xa:= 1,5; xb:=2

* iterasi2*
batas atas(a) = 1,5;
batas bawah(b) = 2;
c= (a+b)/2=> (1,5+2) /2=> 1,75 ;
f(c) =(1,75.1,75.1,75)+(1,75.1,75)+(-3.1,75)-3=>0,171875,;
f(b) =(2.2.2)+(2.2)+(-3.2)-3=>3;
f(a)=(1,5.1,5.1,5)+(1,5.1,5)+(-3.1,5)-3=>-1,875;
if f(a)*f(c) <=0 then b=c, sehingga posisi xa:= 1,5; xb:=1,75
* iterasi3* 
batas atas(a) = 1,5;
batas bawah(b) = 1,75;
c= (a+b)/2=> (1,5+1,75 /2=> 1,625 ;
f(b) =(1,75.1,75.1,75)+(1,75.1,75)+(-3.1,75)-3=>0,171875,;
f(c) =(1,625.1,625.1,625)+(1,625.1,625)+(-3.1,625)-3=>-0,943;
f(a)=(1,5.1,5.1,5)+(1,5.1,5)+(-3.1,5)-3=>-1,875;
if f(a)*f(c) >0 then a=c, sehingga posisi xa:= 1,625; xb:=1,75
 

ALGORITMA:
Algoritma Metode Biseksi :
(1) Definisikan fungsi f(x) yang akan dicari akarnya yakni ax^3,bx^2,cx, dan d
(2) Tentukan nilai a dan b yakni batas atas dan bawah
(3) Tentukan iterasi maksimum N
(4) Hitung c =(a + b)/2
(5) 
Hitung f(a) dan f(b)dan f(c)
(7) Bila f(c).f(a)<=0 maka b=c dan f(b)=f(c), bila tidak a=c dan f(a)=f(c)
FLOWCHART:

 CODE:  

program hitung;
uses crt;
label awal;
var a,b,c,d:real;x,y,h,i,j,k:longint; fa,fb,fc:real;o:char;
begin
awal:
    clrscr;
      writeln ('PROGRAM HITUNG METODE BISEKSI ');
      write (' '); readln;
       write ('inputkan nilai AX^3 : ');readln(h);
       write ('inputkan nilai BX^2 : ');readln(i);
        write ('inputkan nilai CX  : ');readln(j);
        write ('inputkan nilai D   : ');readln(k);
          write ('inputkan nilai batas atas   : ');readln(a);
            write ('inputkan nilai batas bawah   : ');readln(b);
     write ('inputkan jumlah iterasi?: ');readln(y);
     clrscr;
     textcolor (white) ;for x:= 1 to y do
      begin
     c:=(a+b)/2;
        gotoxy (3,3);writeln ('no');
          gotoxy (6,3);writeln ('nilai xa');
            gotoxy (64,3);writeln ('nilai xb');
             gotoxy (35,3);writeln ('nilai f(b)');
                          gotoxy (20,3);writeln ('nilai f(a)');
          gotoxy (48,3);writeln ('nilai f(c)');
      gotoxy (3,x+4);writeln (x);
     fb:=( h* (b*b*b))+(i*(b*b))+(j*b)+k;
     fa:=( h* (a*a*a))+(i*(a*a))+(j*a)+k;
     fc:=(h*(c*c*c))+(i*(c*c))+(j*c)+k;
    textcolor (white); if (fa*fc<=0) then
     b:=c else
            a:=c;
       gotoxy (6,x+4);writeln(a:5:9);
        gotoxy (20,x+4);writeln(fa:5:9);
          gotoxy (35,x+4);writeln(fb:5:9);
            gotoxy (48,x+4);writeln(fc:5:9);
              gotoxy (64,x+4);writeln(b:5:9) ;
           end;  readln;
     write ('mau lanjut lagi tekan(y/t) ?: ');readln(o);
     if o='y'then goto awal;
END.

HASIL: no     xa      fa     fb    fc               xb
               1     1,5     -4    3    -1,875           2
               2     ......   ......  ......  ......        ......
               3     ......   ......   ......  ......           ......, dst

PROGRAM:<< DOWNLOAD PROGRAM .EXE>>

Tidak ada komentar:

Posting Komentar