You are on page 1of 6

disp("NPM=0906632676");

disp("nilai a,b,c,d merupakan 4 digit nilai terakhir NPM");


disp("maka,");
disp("a = 2, b = 6, c = 7, d = 6");
xl=0.500000, xu=1.500000,
y=18;
disp("~~~~~~~~~~~~~~~~*~~~~~~~~~~~~~~~~");
disp("~~~~~~~~~Metode Bisection~~~~~~~~");
disp("~~~~~~~~~~~~~~~~*~~~~~~~~~~~~~~~~");
xl=0.500000; xu=1.500000; xr1=0;
for i=1:10
fprintf("percobaan ke-%i\n", i);
xr=(xl+xu)/2;
fprintf("x1=%f\n", xl);
fprintf("xu=%f\n", xu);
fprintf("xr=%f\n", xr);
fl=fungsi(7,xl);
fu=fungsi(7,xu);
fr=fungsi(7,xr);
ea=abs((xr-xr1)/xr*100);
fprintf("fl=%f\n", fl);
fprintf("fu=%f\n", fu);
fprintf("fr=%f\n", fr);
fprintf("ea=%f\n\n", ea);
xr1=xr;
if fr<y
xl=xr;
elseif fr>y
xu=xr;
endif
endfor
el=abs(y-fl);
eu=abs(y-fu);
er=abs(y-fr);
if el<eu && el<er
xakhir=xl;
elseif eu<el && eu<er
xakhir=xu;
else
xakhir=xr;
endif
if i==10
fprintf("Iterasi dihentikan karena telah diulang sebanyak 10 kali.\n");

else
fprintf("Iterasi dihentikan karena eror ea lebih kecil dari 0.01.\n");
endif
fprintf("Nilai x yang didapat adalah %f\n\n\n", xakhir);
disp("~~~~~~~~~~~~~~~~*~~~~~~~~~~~~~~~~");
disp("~~~Dengan Metode False Positio~~~");
disp("~~~~~~~~~~~~~~~~*~~~~~~~~~~~~~~~~");
fprintf("\n");
xl=0.500000; xu=1.500000; xr1=0; i=1; ea=100;
while i<=10 && ea>=0.01
fprintf("percobaan ke-%i\n", i);
fl=fungsi(7,xl);
fu=fungsi(7,xu);
xr=(xl*(fu-18)-xu*(fl-18))/(fu-fl);
ea=abs((xr-xr1)/xr*100);
fr=fungsi(7,xr);
fprintf("x1=%f\n", xl);
fprintf("xu=%f\n", xu);
fprintf("xr=%f\n", xr);
fprintf("fl=%f\n", fl);
fprintf("fu=%f\n", fu);
fprintf("fr=%f\n", fr);
fprintf("ea=%f\n\n", ea);
xr1=xr;
if abs(fr-fl)<abs(fu-fr)
xl=xr;
else
xu=xr;
endif
i++;
endwhile
el=abs(y-fl);
eu=abs(y-fu);
er=abs(y-fr);
if el<eu && el<er
xakhir=xl;
elseif eu<el && eu<er
xakhir=xu;
else
xakhir=xr;
endif

if i==10
fprintf("Iterasi dihentikan karena telah diulang sebanyak 10 kali.\n");
else
fprintf("Iterasi dihentikan karena eror ea lebih kecil dari 0.01.\n");
endif
fprintf("Nilai x yang didapat adalah %f\n\n\n", xakhir);

disp("~~~~~~~~~~~~~~~~*~~~~~~~~~~~~~~~~");
disp("~~~~~~~Dengan Metode Secant~~~~~~");
disp("~~~~~~~~~~~~~~~~*~~~~~~~~~~~~~~~~");
fprintf("\n");
xl=0.500000; xu=1.500000,; xr1=0; i=1; ea=100;
while i<=10 && ea>=0.001
fprintf("percobaan ke-%i\n", i);
fl=fungsi(7,xl);
fu=fungsi(7,xu);
xr=(xl*(fu-18)-xu*(fl-18))/(fu-fl);
ea=abs((xr-xr1)/xr*100);
fr=fungsi(7,xr);
fprintf("x%i=%f\n", i-1, xl);
fprintf("x%i=%f\n", i, xu);
fprintf("x%i=%f\n", i+1, xr);
fprintf("f%i=%f\n", i-1, fl);
fprintf("f%i=%f\n", i, fu);
fprintf("f%i=%f\n", i+1, fr);
fprintf("ea=%f\n\n", ea);
xr1=xr;
xl=xu; xu=xr;
i++;
endwhile
el=abs(y-fl);
eu=abs(y-fu);
er=abs(y-fr);
if el<eu && el<er
xakhir=xl;
elseif eu<el && eu<er
xakhir=xu;
else
xakhir=xr;
endif
if i==10

fprintf("Iterasi dihentikan karena telah diulang sebanyak 10 kali.\n");


else
fprintf("Iterasi dihentikan karena eror ea lebih kecil dari 0.01.\n");
endif
fprintf("Nilai x yang didapat adalah %f\n\n\n", xakhir);
disp("~~~~~~~~~~~~~~~~~~*~~~~~~~~~~~~~~~~~");
disp("~~~~~~~Dengan Metode Kombinasi~~~~~~");
disp("~~~~~~~~~~~~~~~~~~*~~~~~~~~~~~~~~~~~");
fprintf("\n");
ea=100;
xa=0.500000; xb=1.500000; xc1=0; ea_b=100;
xd=0.500000; xe=1.500000; xf1=0; i=1; ea_f=100;
xg=0.500000; xh=1.500000; xi1=0; ea_s=100;
while i<=10 && ea>=0.01
fprintf("percobaan ke-%i\n", i)
xc=(xa+xb)/2;
fa=fungsi(7,xa);
fb=fungsi(7,xa);
fc=fungsi(7,xb);
ea_b=abs((xc-xc1)/xc*100);
fd=fungsi(7,xd);
fe=fungsi(7,xe);
xf=(xd*(fe-18)-xe*(fd-18))/(fe-fd);
ea_f=abs((xf-xf1)/xf*100);
ff=fungsi(7,xf);
fg=fungsi(7,xg);
fh=fungsi(7,xh);
xi=(xg*(fh-18)-xh*(fg-18))/(fh-fg);
ea_s=abs((xi-xi1)/xi*100);
fi=fungsi(7,xi);
if ea_s<=ea_b && ea_s<=ea_f
fprintf("Iterasi menggunakan metode secant.\n");
fprintf("x%i=%f\n", i-1, xg);
fprintf("x%i=%f\n", i, xh);
fprintf("x%i=%f\n", i+1, xi);
fprintf("f%i=%f\n", i-1, fg);
fprintf("f%i=%f\n", i, fh);
fprintf("f%i=%f\n", i+1, fi);
fprintf("ea=%f\n\n", ea_s);
ea=ea_s;
f1=fg; f2=fh; f3=fi;
x1=xg; f2=xh; x3=xi;

elseif ea_f<=ea_b && ea_f<=ea_s


fprintf("Iterasi menggunakan metode false position.\n");
fprintf("xl=%f\n", xd);
fprintf("xu=%f\n", xe);
fprintf("xr=%f\n", xf);
fprintf("fl=%f\n", fd);
fprintf("fu=%f\n", fe);
fprintf("fr=%f\n", ff);
fprintf("ea=%f\n\n", ea_f);
ea=ea_f;
f1=fd; f2=fe; f3=ff;
x1=xd; x2=xe; x3=xf;
else
fprintf("Iterasi menggunakan metode bisection.\n");
fprintf("xl=%f\n", xa);
fprintf("xu=%f\n", xb);
fprintf("xr=%f\n", xc);
fprintf("fl=%f\n", fa);
fprintf("fu=%f\n", fb);
fprintf("fr=%f\n", fc);
fprintf("ea=%f\n\n", ea_b);
ea=ea_b;
f1=fa; f2=fb; f3=fc;
x1=xa; x2=xb; x3=xc;
endif
xc1=xc;
if fc<y
xa=xc;
elseif fc>y
xb=xc;
endif
xf1=xf;
if abs(ff-fd)<abs(fe-ff)
xd=xf;
else
xe=xf;
endif
xi1=xi;
xg=xh; xh=xi;
i++;
endwhile
e1=abs(y-f1);
e2=abs(y-f2);
e3=abs(y-f3);
if e1<e2 && e1<e3

xakhir=x1;
elseif e2<e1 && e2<e3
xakhir=x2;
else
xakhir=x3;
endif
if i==10
fprintf("Iterasi dihentikan karena telah diulang sebanyak 10 kali.\n");
else
fprintf("Iterasi dihentikan karena eror ea lebih kecil dari 0.01.\n");
endif
fprintf("Nilai x yang didapat adalah %f\n\n\n", xakhir);

You might also like