You are on page 1of 2

Regula falsi

syms x;
f=input('masukkan persamaan f(x): ');
a=input('masukkan nilai a : ');
b=input('masukkan nilai b : ');
et=input('masukkan Error Toleransi : ');
e=abs(b-a);
i=1;
disp(' i      a       b      c     f(a)    f(b)   f(c)    E');
disp('----------------------------------------------------------');
clama=a;
cbaru=b;
while (e > et ) & (clama ~= cbaru);
    fa=subs(f,x,a);
    fb=subs(f,x,b);
    %c=(a+b)/2;
    clama=cbaru;
    c=(fb*a-fa*b)/(fb-fa);
    cbaru=c;
    fc= subs(f,x,c);
    fprintf('%3.0f %6.4f %6.4f %12.10f %7.4f %7.4f %7.4f %7.4f \n', i, a, b,
c, fa, fb, fc, e);
    if fa*fc < 0
       b=c; %geser kiri
    else
       a=c; %geser kanan
    end
    e=abs(b-a);  % menghitung error
    i=i+1;
end

keluaran

regulafalsi
masukkan persamaan f(x): x^2-2*x-2
masukkan nilai a : 2
masukkan nilai b : 3
masukkan Error Toleransi : 0.01
i     a       b      c     f(a)    f(b)   f(c)    E
----------------------------------------------------------
1 2.0000 3.0000 2.6666666667 -2.0000  1.0000 -0.2222  1.0000
2 2.6667 3.0000 2.7272727273 -0.2222  1.0000 -0.0165  0.3333
3 2.7273 3.0000 2.7317073171 -0.0165  1.0000 -0.0012  0.2727
4 2.7317 3.0000 2.7320261438 -0.0012  1.0000 -0.0001  0.2683
5 2.7320 3.0000 2.7320490368 -0.0001  1.0000 -0.0000  0.2680
6 2.7320 3.0000 2.7320506804 -0.0000  1.0000 -0.0000  0.2680
7 2.7321 3.0000 2.7320507984 -0.0000  1.0000 -0.0000  0.2679
8 2.7321 3.0000 2.7320508069 -0.0000  1.0000 -0.0000  0.2679
9 2.7321 3.0000 2.7320508075 -0.0000  1.0000 -0.0000  0.2679
10 2.7321 3.0000 2.7320508076 -0.0000  1.0000 -0.0000  0.2679
11 2.7321 3.0000 2.7320508076 -0.0000  1.0000 -0.0000  0.2679
12 2.7321 3.0000 2.7320508076 -0.0000  1.0000 -0.0000  0.2679
13 2.7321 3.0000 2.7320508076 -0.0000  1.0000 -0.0000  0.2679
14 2.7321 3.0000 2.7320508076 -0.0000  1.0000  0.0000  0.2679
15 2.7321 3.0000 2.7320508076  0.0000  1.0000  0.0000  0.2679

2.

You might also like