CODING FUNCTION BISECTION
function bisection
clc
fprintf('<< Program mencari Akar Persamaan dengan Metode Bisection >>\n');
fprintf('********************************************************\n\n');
%proses input
fx =input ('Masukkan f(x) =','s');
b =input ('Masukkan nilai batas bawah (b) =');
a =input ('Masukkan nilai batas atas (a) =');
Es = input('Masukkan nilai Es =');
i_max = input ('Masukkan iterasi maksimal = ');
%inisialisasi
c_sbl = 0;
Era = 1;
iterasi = 1;
%proses perhitungan
while (Era > Es | iterasi > i_max)
fprintf ('Iterasi ke -%d\n', iterasi);
fprintf ('**************\n');
%cari nilai c
c = (a+b)/2;
fprintf (' c = (a+b) / 2\n');
fprintf (' c = (%.2f + %.2f) / 2 \n', a,b);
fprintf (' c = %.4f\n\n',c);
%evaluasi nilai f(b).f(c)
fprintf('Evaluasi nilai f(b).f(c) \n');
[fb x] = feval ('fx_turunan1', fx,b,1);
[fc x] = feval ('fx_turunan1', fx,c,1);
fprintf ('f(x) = %s\n', fx);
fprintf ('f(b) = %.5f\n', fb);
fprintf ('f(c) = %.5f\n', fc);
fbfc = fb * fc;
fprintf ('f(b).f(c) = %.5f x %.5f \n', fb, fc);
fprintf (' = %.6f \n\n', fbfc);
%seleksi fbfc
if (fbfc < 0)
a = c;
fprintf (' karena f(b).f(c) < 0 maka a=c \n');
fprintf (' maka b = %.4f dan a = %.4f \n',b,a);
elseif (fbfc > 0)
b=c;
fprintf (' karena f(b).f(c) > 0 maka b = c \n');
fprintf (' maka b = %.4f dan a = %.4f \n',b,a);
else
fprintf (' karena f(b).f(c) = 0 maka akar = c \n');
fprintf (' maka akar persamaan adalah %.4f \n',c);
break;
end
%hitung nilai Era
Era = abs((c-c_sbl)/c);
fprintf (' Hitung nilai Era \n');
fprintf (' Era = (c baru - c lama) / c baru \n');
fprintf (' = (%.4f - %.4f) / %.4f \n',c,c_sbl,c);
fprintf (' = %.6f\n\n', Era);
if (Era > Es)
fprintf (' Karena Era > Es maka komputasi dilanjutkan..\n\n');
iterasi = iterasi + 1;
c_sbl = c;
else
fprintf (' Karena Era < Es maka komputasi dihentikan..\n');
fprintf (' Akar persamaan = %.6f \n\n',c);
break;
end
end
semoga bermanfaat ya agan",,
Kamis, 21 November 2013
Langganan:
Posting Komentar (Atom)
0 komentar:
Posting Komentar