LABORATORIUM S1 MATEMATIKA
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS SUMATERA UTARA
MEDAN
2021
TUJUAN
1. Metode Biseksi
Secara analitik, untuk mencari akar persamaan kuadrat sangat mudah, bisa
dengan cara faktorisasi atau menggunakan persamaan roots of a quadratic
function yang lebih dikenal sebagai rumus ABC. Tetapi bagaimana dengan
mencari akar polinomial yang berderajat tinggi lebih dari dua. Jelas sekali
cukup sulit mencari akarnya dengan metode analitik.
Jika metode analitik susah dilakukan maka perlu metode numerik. Salah satu
metode numerik untuk mencari solusi akar pada persamaan polinomial adalah
metode bisection (atau dalam bahasa indonesia metode bagi paruh). Metode
ini bisa mencari akar polinomial real derajat berapa saja. Metode Bisection
merupakan metode mencari akar suatu fungsi dengan menetapkan batas
interval di mana di dalam interval tersebut memuat nilai akar yang dicari.
Nanti interval ini dibagi dua kemudian diambil interval baru yang masih
memuat nilai akar. Proses pembagian ini dilakukan terus menerus sehingga
batas interval mendekati nilai akar.
Rumus nilai x untuk metode biseksi adalah
a+b
x=
2
Algoritma metode Biseksi:
1. Definisikan fungsi f (x)
2. Tentukan rentang untuk xyang beruppa batas bawah a dan batas atas b
3. Tentukan nilai toleransi edan iterasi maksimum N
4. Hitung f (a) dan f (b)
5. Untuk iterasi i=1s/d N
a. Hitung nilai xberdasarkan persamaan diatas
b. Hitung f (x)
c. Hitung error =¿ f ( x )∨¿
d. Jika f ( x ) ⋅ f ( a ) < 0 maka b=x dan f ( b )=f (x). Jika tidak, a=x dan
f ( a )=f (x)
e. jika error < e atau |b−a|<e, maka proses iterasi berhenti. Jika tidak,
lanjutkan
6. Akar persamaan adalah x
1. Biseksi
Source Code:
clear;
clc;
disp('----------------------------------------------------');
disp('Program BISEKSI by Muhammad Alfan Irsyadi Hutagalung');
disp('----------------------------------------------------');
g = input ('Masukkan Fungsi f(x) : ', 's');
f = inline(g,'x');
e = input('error : ');
a = input('a : ');
b = input('b : ');
n = input('iterasi maks: ');
i=1;
x= (a+b)/2;
T = table;
if f(a)*f(b)>0
disp('Tidak ada akar, karena f(a) dan f(b) memiliki tanda
yang sama');
else
hold on;
xx = linspace(a-(b-a)*2/10, b+(b-a)*2/10);
plot(xx, f(xx), '-g');
plot([a a], [f(a) 0], '-ro');
plot([b b], [f(b) 0], '-ro');
i=i+1;
if f(a)*f(x) < 0
b=x;
else
a=x;
end
end
grid on;
axis on;
xL = xlim;
yL = ylim;
line([0 0], yL); %x-axis
line(xL, [0 0]); %y-axis
line([x x], yL, 'Color', 'red', 'LineStyle', '--');
T(i,:) = {i a b x f(a) f(x)};
T.Properties.VariableNames = {'i', 'a', 'b' 'x' 'fa' 'fx'};
disp(T);
title(g);
hold off;
fprintf('\nHampiran akar fungsi %s adalah %g\n', g, x);
end
Output:
Plot
2. Regula Falsi
Source Code:
clear;
clc;
disp('----------------------------------------------------');
disp('Metode Regula Falsi');
disp('by Muhammad Alfan Irsyadi Hutagalung');
disp('----------------------------------------------------');
g = input ('Masukkan Fungsi f(x) : ', 's');
f = inline(g,'x');
e = input('error : ');
a = input('a : ');
b = input('b : ');
n = input('iterasi maks: ');
i=1;
x= (f(b)*a-f(a)*b)/(f(b)-f(a));
T = table;
if f(a)*f(b)>0
disp('Tidak ada akar, karena f(a) dan f(b) memiliki tanda
yang sama');
else
hold on;
xx = linspace(a-(b-a)*2/10, b+(b-a)*2/10);
plot(xx, f(xx), '-g');
plot([a a], [f(a) 0], '-ro');
plot([b b], [f(b) 0], '-ro');
i=i+1;
if f(a)*f(x) < 0
b=x;
else
a=x;
end
end
grid on;
axis on;
xL = xlim;
yL = ylim;
line([0 0], yL); %x-axis
line(xL, [0 0]); %y-axis
line([x x], yL, 'Color', 'red', 'LineStyle', '--'); %y-
axis
T(i,:) = {i a b x f(a) f(b) f(x)};
T.Properties.VariableNames = {'i', 'a', 'b' 'x' 'fa' 'fb'
'fx'};
disp(T);
title(g);
hold off;
fprintf('\nHampiran akar fungsi %s adalah %g\n', g, x);
end
Output:
Plot:
Dari algoritma dan source code dari kedua metode tersebut terlihat sama, akan
tetapi berbeda dengan pengambilan nilai x nya. Untuk metode Biseksi, kita
a+b
gunakan rumus x= sedangkan untuk metode Regula Falsi, menggunakan
2
f ( b ) ⋅a−f ( a ) ⋅ b
rumus x= . Untuk pengambilan titik-titik a dan b terbaru. Kita
f ( b )−f ( a )
lihat apakah f ( x ) ⋅ f ( a ) < 0 , atau dari analisis geometri jika f (x) dan f (a) berbeda
tanda, maka b akan diperbaru menjadi x, sehingga b=x ↔ f ( b )=f (x). Sebaliknya,
maka a=x ↔ f ( a )=f ( x ). Pada program Biseksi diatas, untuk menghitung
hampiran akar dari fungsi f ( x )=x e−x +1,
kita ambil ϵ < 0.000 01; a=−1 ; b=0 ; N =20
Iterasi 1: a 1=−1dan b 1=0
a1 +b1 −1+0 −1
x 1= = = =−0.5. sekarang akan kita hitung untuk f ( x 1 )dan f ( a1 ) .
2 2 2
→ f ( x 1 )=f (−0.5 )=0.17564 dan f ( a1 )=f (−1 )=−1.7183. Kita tahu bahwa f ( x 1 )