Lapres - B1 - 22031010095 - Reyhan Firmansyah - Modul 1
Lapres - B1 - 22031010095 - Reyhan Firmansyah - Modul 1
SOAL
1. Jelaskan pengertian, tujuan, dan algoritma (langkah pengerjaan) dari metode
persamaan kuadrat, metode setengah interval (bisection), dan interpolasi linear.
Kemudian beri kesimpulan serta berikan alasan metode mana yang paling efektif
untuk digunakan!
2. Explain the derivation of the formula for the linear interpolation method! And
give examples of solving equations using this method! (perhitungan manual,
diketik menggunakan equation).
3. Sebuah reaksi orde dua terjadi dalam reactor model dinamik untuk isothermal dan
volume konstan dengan persamaan
dCA f f 2
= C AF − C A−K C A
dt v v
1
1/ 2
(1−x)(3+ x)
Kp= , 0< X < 1
x (x +1)1/ 2 p1 /2
2
Jawaban
Rumus −b ± √ b 2+ 4 ac x x 1+ x2 Xt = X2 +
x 12= t=¿ ¿
2a 2 f (x ¿¿ 2)
¿
f ( X ¿¿ 2)−f (X ¿¿ 1)¿ ¿
(X 2−X 1 )
3
f(xt)
Metode yang paling efektif adalah metode interpolasi linear karena pada metode
setengah interval atau bisection pengerjaannya kurang efektif. Pada metode bisection
membutuhkan langkah iterasi yang panjang. Pada metode interpolasi linear
konvergensinya sehingga lebih cepat mendapatkan nilai akarnya.
4
2. Sebagai ilustrasi pada metode interpolasi linear adalah sebagai berikut :
5
Contoh soal :
3 2
3 x + 10 x +10 x−5
A. Algoritma
1. Mulai program
2. Mememasukkan nilai persamaan (pers), batas bawah (xb1), batas bawah
(xb2), dan Toleransi (T)
3. Memproses perhitungan persamaan
a. fxb1 = subs(pers, x, xb1)
b. fxb2 = subs(pers, x, xb2)
c. xs = xb2-(fxb2 / (fxb2 - fxb1)) * (xb2 - xb1)
d. fxs = subs(pers, x, xs)
4. Menampilkan nilai batas bawah (xb1), batas bawah (xb2), xs, fxb1,
fxb2, dan fxs
5. Melakukan perulangan (while abs(fxs) > T)
a. Pemilihan kondisi if
1) if (fxb1 * fxs) < 0, maka
a. xb1 = xs
b. fxb1 = fxs
2) Else
a. xb2 = xs
b. fxb2 = fxs
3) Memproses perhitungan
a. xs = xb2-(fxb2 / (fxb2 - fxb1)) * (xb2 - xb1)
b. fxs =subs(pers, x, xs)
4) Menampilkan nilai batas bawah (xb1), batas bawah (xb2), xs,
fxb1, fxb2, dan fxs
6. Program selesai
6
B. Flowchart
7
C. Listing
clear all;
clc;
syms x;
e = 2.71;
disp('---------------------------------------------------------------------------');
disp('Metode Interpolasi Linier');
pers = input('Masukkan persamaan = ');
xb1 = input('Masukkan batas bawah (X1) = ');
fxb1 = subs(pers, x, xb1);
xb2 = input('Masukkan batas atas (X2) = ');
T=input('toleransi= ');
fxb2 = subs(pers, x, xb2);
xs = xb2-(fxb2 / (fxb2 - fxb1)) * (xb2 - xb1);
fxs = subs(pers, x, xs);
disp('====================================================
======================');
disp(' x1 x2 xt f(x1) f(x2) f(xt)');
disp('====================================================
======================');
fprintf('%f\t%f\t%f\t%f\t%f\t%f\n', xb1, xb2, xs, fxb1, fxb2, fxs);
disp('====================================================
======================');
while abs(fxs) > T
if (fxb1 * fxs) < 0
xb1 = xs;
fxb1 = fxs;
else
xb2 = xs;
fxb2 = fxs;
end
xs = xb2-(fxb2 / (fxb2 - fxb1)) * (xb2 - xb1);
8
fxs = subs(pers, x, xs);
fprintf('%f\t%f\t%f\t%f\t%f\t%f\n', xb1, xb2, xs, fxb1, fxb2, fxs);
disp('====================================================
======================');
end
9
D. Hasil run
10
E. Perhitungan Manual
3x3+10x2+10x-5
Iterasi 1
X 1= 1
X2 = 3
3 2
f ( X 1 )=3 ( 1 ) +10 ( 1 ) + 10 (1 )−5=18
11
3 2
f ( X t ) =3 ( 0.401736 ) +10 ( 0.401736 ) +10 ( 0.401736 )−5=0.825788
12
3. Perhitungan konsentrasi CA pada steady state
A. Algoritma
1. Mulai program
2. Mememasukkan nilai NPM (fv), batas bawah (X1), batas bawah (X2),
dan Toleransi (T)
3. Memproses perhitungan persamaan
a. fx1=subs(fca,ca,x1)
b. fx2=subs(fca,ca,x2)
c. xt=x2-((fx2/(fx2-fx1))*(x2-x1))
d. fxt=subs(fca,ca,xt)
4. Menampilkan nilai CA1,CA2,CA3,f(CA1),f(CA2),f(CA3)
5. Melakukan perulangan (while abs (fc)>tol)
a. Pemilihan kondisi if
1) If (fxt*fx1)<0, maka
a. x1=xt;
b. fx1=fxt;
2) Else
a. x2=xt
b. fx2=fxt
3) Memproses perhitungan
a. xt=x2-((fx2/(fx2-fx1))*(x2-x1))
b. fxt=subs(fca,ca,xt)
4) Menampilkan nilai CA1,CA2,CA3,f(CA1),f(CA2),f(CA3)
6. Program selesai
13
B. Flowchart
14
C. Listing
clc;
clear all;
syms x;
disp('================================================
======================================');
disp(' Interpolasi Linear ');
disp('================================================
======================================');
disp('persamaannnya adalah : dca/dt=(f/v)*caf*(f/v)*ca-k*ca^2');
disp('================================================
======================================');
syms ca;
fv=input('Masukkan 3 NPM terakhir = ');
caf=5;
k=1;
fca=(fv*caf)*(fv*ca)-(k*ca^2);
x1=input('Masukkan nilai ca1 perkiraan (X1) = ');
x2=input('Masukkan nilai ca2 perkiraan (X2) = ');
T=input('Masukkan Toleransi = ');
disp('================================================
======================================');
fx1=subs(fca,ca,x1);
fx2=subs(fca,ca,x2);
xt=x2-((fx2/(fx2-fx1))*(x2-x1));
fxt=subs(fca,ca,xt);
disp('================================================
======================================');
disp(' TABEL HASIL PERHITUNGAN
');
disp('================================================
======================================');
15
fprintf('%10s%15s%15s%15s%15s%15s\
n','CA1','CA2','CA3','f(CA1)','f(CA2)','f(CA3)');
fprintf('%11.2f%15.2f%15.2f%15.2f%15.2f%15.2f\
n',x1,x2,xt,fx1,fx2,fxt);
disp('================================================
======================================');
while abs(fxt)>T;
if (fx1*fxt)<0;
x1=xt;
fx1=fxt;
else
x2=xt;
fx2=fxt;
end;
xt=x2-((fx2/(fx2-fx1))*(x2-x1));
fxt=subs(fca,ca,xt);
fprintf('%11.2f%15.2f%15.2f%15.2f%15.2f%15.2f\
n',x1,x2,xt,fx1,fx2,fxt);
disp('================================================
======================================');
end;
D.
16
D. Hasil Run
17
.4. Menentukan nilai ketetapan kesetimbangan dengan metode bisection
A. Algoritma
1. Memulai program
2. Memasukkan nilai batas bawah (b1), nilai batas atas (b2) dan toleransi
(T)
3. Memproses perhitungan :
a. fb1=subs(pers,x,b1)
b. fb2=subs(pers,x,b2)
c. b3=(b1+b2)/2
d. fb3=subs(pers,x,b3)
4. Pemilihan kondisi if
a. If (fb1*fb2)>0
1) Memasukkan nilai batas bawah lain (b1) dan nilai batas atas lain
(b2)
2) Memproses perhitungan :
a. fb1=subs(pers,x,b1)
b. fb2=subs(pers,x,b2)
b. else
1) Memproses perhitungan :
a. b3=(b1+b2)/2
b. fb3=subs(pers,x,b3)
5. Menampilkan nilai dari jumlah iterasi (NO), batas awal (b1), batas atas
(b2), nilai tengah (b3), f(x1), f(x2), f(xt)
6. Menggunakan perulangan (while abs (fxt)>tol)
a. Memproses perhitungan :
1) NO=NO+1
b. if (fb1*fb3)<0
1) Memproses perhitungan :
a. b2=b3
b. fb2=fb3
c. else
1) Memproses perhitungan :
18
a. b1=b3
b. fb1=fb3
d. Memproses perhitungan :
a. b3=(b1+b2)/2;
b. fb3=subs(pers,x,b3);
7. Menampilkan nilai dari jumlah iterasi (NO), batas awal (b1), batas atas
(b2), nilai tengah (b3), f(x1), f(x2), f(xt)
8. Program selesai
19
B. Flowchart
20
C. Listing
21
clear all;
clc;
syms x;
disp('Metode Setengah Interval');
pers = ((1 - x)*sqrt(3 + x))/(x*sqrt(x + 1)*sqrt(5)) - 3.06;
b1=input('batas bawah (x1)=');
b2=input('batas atas (x2)=');
fb1=subs(pers,x,b1);
fb2=subs(pers,x,b2);
b3=(b1+b2)/2;
fb3=subs(pers,x,b3);
T=input('toleransi= ');
if(fb1*fb2)>0
b1=input(['masukkan nilai batas bawah lain=']);
b2=input(['masukkan nilai batas atas lain=']);
fb1=subs(pers,x,b1);
fb2=subs(pers,x,b2);
else
b3=(b1+b2)/2;
fb3=subs(pers,x,b3);
end
disp('---------------------------------------------------------------------------');
disp(['no x1 x2 xt f(x1) f(x2) f(xt) ']);
disp('---------------------------------------------------------------------------');
NO=1;
fprintf('%d\t%f\t%f\t%f\t%f\t%f\t%f\n', NO, b1, b2, b3, fb1, fb2, fb3);
disp('---------------------------------------------------------------------------');
while abs(fb3)>T
NO=NO+1;
if (fb1*fb3)<0
b2=b3;
fb2=fb3;
22
else
b1=b3;
fb1=fb3;
end
b3=(b1+b2)/2;
fb3=subs(pers,x,b3);
fprintf('%d\t%f\t%f\t%f\t%f\t%f\t%f\n', NO, b1, b2, b3, fb1, fb2, fb3);
disp('---------------------------------------------------------------------------');
end
23
D. Hasil Run
24