Thursday, November 15, 2012

Metode False Position pada Matlab

Asumsi awal yang harus diambil adalah sama seperti pada Metode Bisection, yaitu: ‘menebak’ interval awal [a,b] dimana f(x) adalah kontinu padanya, demikian pula interval tersebut harus terletak ‘mengapit’ (secara intuitif) nilai akar a, sedemikian rupa sehingga:
f (a) × f (b) <= 0
Meskipun pada algoritma berikut masih mengandung beberapa kelemahan, namun secara umum masih sangat menguntungkan untuk dipakai. Perbaikan dan modifikasi secara numeris dilakukan
oleh Brent (Atkinson, 1978),
 Misal fungsi inputnya : e^x-4x=0 dengan error 0.1 dengan interval [0,1]
 berikut algoritmanya dalam program matlab.


f=inline('exp(x)-4*x');
i=1;
err=0.1;
a=0;
b=1;
Tes=(2*b)-a;
xl=Tes;
disp('---------------------metode false position-----------------------')
disp('-----------------------------------------------------------------')
disp('  i      a        b        f(a)      f(b)        x       f(x)    ')
disp('-----------------------------------------------------------------')
while Tes>=err
    x=b-(f(b)*(b-a))/(f(b)-f(a));
    disp(sprintf('%3g %9.5f %9.5f %9.5f %9.5f %9.5f %9.5f',i,a,b,f(a),f(b),x,f(x)))
    if f(a)*f(b)<=0
        b=x;
    else
        a=x;
    end
    i=i+1;
    Tes=abs(xl-x)/xl;
    xl=x;
end
disp(sprintf('Hasil Akar=%11.8f',x))
xg=linspace(-7,7);
yg=f(xg);
plot(xg,yg)
grid on


 berikut hasil iterasinya:

---------------------metode false position-----------------------
-----------------------------------------------------------------
  i             a                b               f(a)             f(b)              x             f(x)   
-----------------------------------------------------------------
  1   0.00000   1.00000   1.00000  -1.28172   0.43827  -0.20305
  2   0.00000   0.43827   1.00000  -0.20305   0.36430  -0.01769
  3   0.00000   0.36430   1.00000  -0.01769   0.35797  -0.00145
 

Hasil Akar= 0.35796588

1 comment:

  1. selamat siang,boleh saya mnita penjelasan program ini bang

    ReplyDelete