FAKULTAS TEKNIK
UPN “VETERAN” JAWA TIMUR Nama : KELOMPOK 4
NPM/Semester : -/ IV
Praktikum : MATEMATIKA TEKNIK Sesi : A1
Percobaan : AKAR-AKAR PERSAMAAN, Paralel :A
METODE BISECTION DAN
METODE INTERPOLASI LINIER
Tanggal : 21 FEBRUARI 2020
Pembimbing : IR. L. URIP WIDODO MT LAPORAN RESMI
SOAL !
1. Jelaskan secara rinci perbedaan dari persamaan Akar-akar kuadrat, Metode
Bisection dan Interpolasi Linier (dalam bentuk tabel)!
2. Selesaikan persamaan berikut dengan metode bisection dan interpolasi linear
secara manual (3 iterasi) dan menggunakan aplikasi matlab dan pascal
(algoritma, flowchart, listing, hasil run)!
3 4
2 4x 2 252
a. f ( x )= √ 81+ +16 x−x + x −¿12 (kelompok 1)
12 9
6 2 5 4 6
f ( x )= x + x + −5 x −30
b. 12 2 6 (kelompok 2)
10
56 5 28 4 2 3 3
c. f ( x )= x − x −x + x + 13 (kelompok 3)
4 7 9
9 4 39 3 5 2 −3
d. f ( x )= x + x +24− x −x −13 (kelompok 4)
8 3 2
−1
5 4 28 3 7 3
e. f ( x )= x + x +13− x2 − x 2 +12 (kelompok 5)
13 10 10 5
−1
2 7
f. f ( x )= x 4 −12 x 3 + x−2−8 x 3 −√3 125 (kelompok 6)
4 10
7 4 5 3 7 2 x −2
g. f ( x )= x − x + x +12 −8 x (kelompok 7)
4 10 10
3. Diketahui persamaan Van Der Waals sebagai berikut :
a
( P+
v2)( v −b )=RT
Dimana :
2 2 −1
27 R T c RTc
a=
64 Pc ( ) ( )
; b=
8 Pc
2
(kelompok 1-4)
R2 T 2c RTc
−1
a=4 /16 ( )
Pc
3
; b=
Pc
(kelompok 5-7)
Pv
Z=
RT
v=¿ Volume molar, L/mol
T =¿ suhu, K
R=¿ konstanta gas universal = 0.08206 atm.L/mol.K
T c =¿ suhu kritis, K (405.5 K untuk Amonia)
Pc =¿ tekanan kritis, atm (111.3 atm untuk Amonia)
Hitung volume molar dan faktor kompresibilitas(Z) untuk gas amonia
menggunakan persamaan keadaan Van Der Waals diatas, dengan ketentuan :
a. Kelompok 1&5 : kondisi tekanan 56 atm dan suhu 177oC
b. Kelompok 2&6 : kondisi tekanan 60 atm dan suhu 250oC
c. Kelompok 3&7 : kondisi tekanan 45 atm dan suhu 150oC
d. Kelompok 4: kondisi tekanan 65 atm dan suhu 275oC
(diselesaikan dengan metode bisection dan interpolasi linear pada aplikasi
Matlab dan pascal beserta algoritma, flowchart, listing, dan hasil run).
JAWAB!
1. PERBEDAAN AKAR-AKAR KUADRAT,METODE BISECTION DAN
INTERPOLASI LINIER
Memerlukan nilai x
Tidak memerlukan nilai Memerlukan nilai x awal
awal (x1 dan x2) untuk
x awal (x1 dan x2) dalam (x1 dan x2) untuk dalam
dalam menyelesaikan
penyelesaiannya menyelesaikan persamaan
persamaan
f ( x i+1 )
x ¿= xi +1− ( x i+ 1−xi )
f ( x i+1 )−f ( x i )
b. Untuk menghitung Bisection :
x 1+ x 2
xt=
2
5. Melakukan perulangan xt<toleransi
6. Menampilkan hasil x1,x2,xt,fx1,fx2,fxt
7. Selesai
Repeat
x2:=xt
Tidak
Until y<toleransi
Output hasil
persamaan
Metode Bisection
SELESAI
FLOWCHART PROGRAM BISECTION (MATLAB)
Mulai
Fb=subs(F,x,x1);
Fa=subs(F,x,x2);
x3=(x2+x1)/2;
While
Fb*Fa>0 No
Fx2=subs(F,x,x2);
Fx1=subs(F,x,x1);
x3=(x2+x1)/2;
Fx3=subs(F,x,x3);
Yes
Output
no,x2,x1,x3.fx
2,fx3,danfx1
1
1
No While
Abs(fx3)>tol
Yes
If x1=x3;
Fx2*fx3<0 Fx1=Fx3;
No
x2=x3; Yes
Fx2=Fx3;
Yes
x3=(x2+x1)/2;
Fx3=subs(F,x,x3);
Output
no,x2,x1,x3.f
x2,fx3,danfx1
Selesai
LISTING PROGRAM BISECTION (PASCAL)
program BISECTION;
uses crt;
var x1,x2,xt,fx1,fx2,fxt,pers,tol,y,fx,x:real;
begin
clrscr;
begin
writeln('====================================================
================');
writeln('Persamaan Kuadrat : (9/8*x^4)+(13*x^3)+(24)-(5/2*x^2)-(x^-3)-(13)');
writeln('====================================================
================');
write('Masukkan Batas Bawah :');readln(x1);
write('masukkan Batas Atas :');readln(x2);
write('Masukkan Toleransi :');readln(tol);
writeln('====================================================
======');
writeln(' x1 x2 xt fx1 fx2 fxt');
writeln('====================================================
======');
repeat
xt:=(x1+x2)/2;
fxt:=(9/8*xt*xt*xt*xt)+(13*xt*xt*xt)+(24)-(5/2*xt*xt)-(1/(xt*xt*xt))-13;
fx1:=(9/8*x1*x1*x1*x1)+(13*x1*x1*x1)+(24)-(5/2*x1*x1)-(1/(x1*x1*x1))-13;
fx2:=(9/8*x2*x2*x2*x2)+(13*x2*x2*x2)+(24)-(5/2*x2*x2)-(1/(x2*x2*x2))-13;
x:=xt;
fx:=(9/8*x*x*x*x)+(13*x*x*x)+(24)-(5/2*x*x)-(1/(x*x*x))-13;
fxt:=fx;
y:=x2-x1;
writeln(' ',x1:4:4,' ',x2:4:4,' ',xt:4:4,' ',fx1:4:4,' ',fx2:4:4,' ',fxt:4:4);
if y<0 then y:=y*(-1);
if fx1*fxt<0 then x2:=xt
else
x1:=xt;
until y<tol;
end;
readln;
end.
HASIL RUN PROGRAM BISECTION (PASCAL)
LISTING PROGRAM BISECTION (MATLAB)
clear all;
clc;
syms x;
disp('__________________________________________');
disp(' METODE SETENGAH INTERVAL ');
disp('__________________________________________');
disp('***************************');
disp(' PERSAMAAN KUADRAT');
f=(9/8*x^4)+(13*x^3)+(24)-(5/2*x^2)-(x^-3)-(13);
disp([,f]);
x1=input('Masukkan Batas Bawah = ');
x2=input('Masukkan Batas Atas = ');
tol=input('Masukkan Toleransi = ');
fx1=subs(f,x,x1);
fx2=subs(f,x,x2);
xt=(x1+x2)/2;
fxt=subs(f,x,xt);
no=1;
while(x1*x2)>0
x1=input(['masukkan nilai batas bawah lain=']);
x2=input(['masukkan nilai batas atas lain=']);
fx1=subs(f,x,x2);
fx2=subs(f,x,x1);
xt=(x1+x2)/2;
fxt=subs(f,x,xt);
end
disp('------------------------------------------------------------------------------');
disp([' no x1 x2 xt fx1 fx2 fxt ']);
no=1;
disp([no' x1' x2' xt' fx1' fx2' fxt']);
while abs(fxt)>tol
no=no+1;
if (fx1*fxt)<0
x2=xt;
fx2=fxt;
else
x1=xt;
fx1=fxt;
end
xt=(x1+x2)/2;
fxt=subs(f,x,xt);
disp([no' x1' x2' xt' fx1' fx2' fxt']);
end
HASIL RUN PROGRAM BISECTION (MATLAB)
LISTING PROGRAM INTERPOLASI LINIER (PASCAL)
program interpolasi_linier;
uses crt;
var iterasi,g,x,fx,a,b,c,fa,fb,fc:real;
pil:char;
const e=2.71;
eps=0.9;
begin
clrscr;
writeln('===================================================='
);
writeln(' PROGRAM INTERPOLASI LINIER');
writeln('===================================================='
);
writeln('F(x) = (81^0.5)+(4*x^3/12)+(16*x)+(-x^2)+(252*(x^4)/9)-12');
write('Masukkan x1 =');readln(a);
write('Masukkan x2 =');readln(b);
writeln(' a b c fa fb fc');
writeln('---------------------------------------------------');
repeat
x:=a;
fa:=(9)+(4*x*x*x/12)+(16*x)-(x*x)+(((252)/9)*x*x*x*x)-(12);
fa:=fx;
x:=b;
fx:=(9)+(4*x*x*x/12)+(16*x)-(x*x)+(((252)/9)*x*x*x*x)-(12);
fb:=fx;
c:=b-(fb*(b-a))/(fb-fa);
x:=c;
fx:=(9)+(4*x*x*x/12)+(16*x)-(x*x)+(((252)/9)*x*x*x*X)-(12);
fc:=fx;
g:=b-a;
writeln(a:2:2,b:10:2,c:10:2,fa:10:2,fb:10:2,fc:10:2);
readln;
if g<0 then g:=g*-1;
if fa*fc<0 then b:=c
else
a:=c
until g<eps;
readln;
readln;
end.
HASIL RUN PROGRAM INTERPOLASI LINIER (PASCAL)
LISTING PROGRAM INTERPOLASI LINIER (MATLAB)
clear all;
clc;
syms x;
disp('__________________________________________');
disp(' METODE INTERPOLASI LINIER ');
disp('__________________________________________');
disp('***************************');
disp(' PERSAMAAN KUADRAT');
f=(9/8*x^4)+(13*x^3)+(24)-(5/2*x^2)-(x^-3)-(13);
disp([,f]);
x1=input('Masukkan Batas Bawah = ');
x2=input('Masukkan Batas Atas = ');
tol=100;
fx1=subs(f,x,x1);
fx2=subs(f,x,x2);
xt=x1-(fx2*(x2-x1))/(fx2-fx1);
fxt=subs(f,x,xt);
no=1;
while(x1*x2)>0
x1=input(['masukkan nilai batas bawah lain=']);
x2=input(['masukkan nilai batas atas lain=']);
fx1=subs(f,x,x2);
fx2=subs(f,x,x1);
xt=x1-(fx2*(x2-x1))/(fx2-fx1);
fxt=subs(f,x,xt);
end
disp('----------------------------------------------------------------------------');
disp([' no x1 x2 xt fx1 fx2 fxt ']);
disp('----------------------------------------------------------------------------');
no=1;
disp([no' x1' x2' xt' fx1' fx2' fxt']);
while abs(fxt)>tol
no=no+1;
if (fx1*fxt)<0
x2=xt;
fx2=fxt;
else
x1=xt;
fx1=fxt;
end
xt=x1-(fx2*(x2-x1))/(fx2-fx1);
fxt=subs(f,x,xt);
disp([no' x1' x2' xt' fx1' fx2' fxt']);
end
HASIL RUN PROGRAM INTERPOLASI LINIER (MATLAB)
3. PROGRAM PERHITUNGAN VAN DER WALLS
ALGORITMA VAN DER WALLS BISECTION
1. Mulai
2. Masukkan nilai temperatur kritis, nilai tekanan kritis, nilai volume molar
pertama dan kedua, nilai temperatur yang diinginkan dan tekanan, nilai
toleransi
2 2
27 R T c
a= ( )
64 Pc
−1
RTc
b= ( )
8 Pc
2
b=((R*Tc)/(P));
v3=(v1+v2)/2;
fv3=subs(f,x,v3);
Z=(P x v3)/(R x T);
6. Menampilkan tabel dengan literasi=1
i. Literasi=literasi+1;
v3=(v1+v2)/2;
fv3=subs(f,x,v3);
Z=(P x v3)/(R x T)
8. Menampilkan tabel persamaan Van Der Waals
9. Selesai
FLOWCHART VAN DER WALLS BISECTION
Mulai
Memasukkan
data Tc, Pc, v1,
v2, T dan P
Diproses dengan :
a=(4/16*(((R^2)*(Tc^2))/Pc)^1/3)
b=((R*Tc)/(P))
f=(P+(a/(x^2)))*(x-b)-(R*T);
fv1=subs(f,x,v1)
fv2=subs(f,x,v2)
TIDAK Memasukkan
fv1=subs(f,x,v1)
while (fv1*fv2)>0 nilai v1 dan v2
lainnya fv2=subs(f,x,v2)
YA
TIDAK
while abs(fv3)>t
YA
YA
v2=v3
If (fv1*fv3)<0
fv2=fv3
TIDAK
v1=v3
fv1=fv3
Menampilkan
hasil volume
molar (fv3)
Selesai
LISTING PROGRAM VAN DER WALL BISECTION (PASCAL)
program vdw_bisection;
uses crt;
var Tc,Pc,v1,v2,T,P,tol,a,b,f,fv1,fv2,v3,fv3,Z,v,y,:real;
const R=0.08206;
begin
clrscr;
begin
writeln('====================================================
=======================');
writeln(' Persamaan Van Der Waals metode Bisection');
writeln('====================================================
=======================');
write('masukkan nilai temperatur kritis = ');readln(Tc);
write('masukkan nilai dari tekanan kritis = ');readln(Pc);
write('Masukkan nilai Volume molar pertama = ');readln(v1);
write('Masukkan nilai Volume molar kedua = ');readln(v2);
write('Masukkan nilai temperatur yang diinginkan = ');readln(T);
write('Masukkan nilai tekanan yang diinginkan = ');readln(P);
write('Masukkan toleransi = ');readln(tol);
writeln('--------------------------------------------------------------------------------------');
writeln(' V.molar1 V.molar2 V.molar3 f(x1) f(x2) f(x3) z');
writeln('--------------------------------------------------------------------------------------');
repeat
v3:=(v1+v2)/2;
a:=(27*(R*R)*(Tc*Tc))/(64*Pc);
b:=1/sqrt((R*Tc)/(8*Pc));
fv1:=(P+(a/(v1*v1)))*(v1-b)-(R*T);
fv2:=(P+(a/(v2*v2)))*(v2-b)-(R*T);
fv3:=(P+(a/(v3*v3)))*(v3-b)-(R*T);
Z:=(P*v3)/(R*T);
y:=v2-v1;
if y<0 then y:=y*-1;
if (fv1*fv3)<0 then
begin
v2:=v3;
fv2:=fv3;
end
else
begin
v1:=v3;
fv1:=fv3;
end;
writeln(' ',v1:4:4,' ',v2:4:4,' ',v3:4:4,' ',fv1:4:4,' ',fv2:4:4,'
',fv3:4:4,' ',Z:4:4);
until y<tol
end;
readln;
end.
HASIL RUN PROGRAM VAN DER WALLS BISECTION (PASCAL)
LISTING PROGRAM VAN DER WALLS BISECTION (MATLAB)
clear all;
clc;
syms v
R=0.08206;
disp
('=========================================================
==================');
disp(' Persamaan Van Der Waals metode Bisection');
disp
('=========================================================
==================');
Tc=input('masukkan nilai temperatur kritis = ');
Pc=input('masukkan nilai dari tekanan kritis = ');
v1=input('Masukkan nilai Volume molar pertama = ');
v2=input('Masukkan nilai Volume molar kedua = ');
T=input ('Masukkan nilai temperatur yang diinginkan = ');
P=input ('Masukkan nilai tekanan yang diinginkan = ');
t=input ('Masukkan toleransi = ');
a=(27*(R^2)*(Tc^2))/(64*Pc);
b=((R*Tc)/(8*Pc))^(-0.5);
f=(P+(a/(v^2)))*(v-b)-(R*T);
fv1=subs(f,v,v1);
fv2=subs(f,v,v2);
while (fv1*fv2)>0
v1=input('Masukkan Nilai v1 lain = ');
v2=input('Masukkan Nilai v2 lain = ');
fv1=subs(f,v,v1);
fv2=subs(f,v,v2);
end
v3=(v1+v2)/2;
fv3=subs(f,v,v3);
Z=(P*v3)/(R*T);
disp
('--------------------------------------------------------------------------------------');
disp(' I V.molar1 V.molar2 V.molar3 f(x1) f(x2) f(x3)
z');
disp
('--------------------------------------------------------------------------------------');
literasi=1;
fprintf('%3.0f%10.4f%12.4f%12.4f%15.4f%12.4f%12.4f
%10.4f\n',literasi,v1,v2,v3,fv1,fv2,fv3,Z);
while abs(fv3)>t
literasi = literasi+1;
if (fv1*fv3)<0
v2=v3; fv2=fv3;
else
v1=v3; fv1=fv3;
end
v3=(v1+v2)/2;
fv3=subs(f,v,v3);
Z=(P*v3)/(R*T);
fprintf('%3.0f%10.4f%12.4f%12.4f%15.4f%12.4f%12.4f
%10.4f\n',literasi,v1,v2,v3,fv1,fv2,fv3,Z);
end
disp
('----------------------------------------------------------------------------------------');
HASIL RUN PROGRAM VAN DER WALLS BISECTION (MATLAB)
LISTING PROGRAM VAN DER WALLS INTERPOLASI (PASCAL)
program vdw_bisection;
uses crt;
var Tc,Pc,v1,v2,T,P,tol,a,b,f,fv1,fv2,v3,fv3,Z,y:real;
const R=0.08206;
begin
clrscr;
begin
writeln('====================================================
=======================');
writeln(' Persamaan Van Der Waals metode Interpolasi Linier');
writeln('====================================================
=======================');
write('masukkan nilai temperatur kritis = ');readln(Tc);
write('masukkan nilai dari tekanan kritis = ');readln(Pc);
write('Masukkan nilai Volume molar pertama = ');readln(v1);
write('Masukkan nilai Volume molar kedua = ');readln(v2);
write('Masukkan nilai temperatur yang diinginkan = ');readln(T);
write('Masukkan nilai tekanan yang diinginkan = ');readln(P);
write('Masukkan toleransi = ');readln(tol);
writeln('--------------------------------------------------------------------------------------');
writeln(' V.molar1 V.molar2 V.molar3 f(x1) f(x2) f(x3) z');
writeln('--------------------------------------------------------------------------------------');
repeat
a:=(27*(R*R)*(Tc*Tc))/(64*Pc);
b:=1/sqrt((R*Tc)/(8*Pc));
fv1:=(P+(a/(v1*v1)))*(v1-b)-(R*T);
fv2:=(P+(a/(v2*v2)))*(v2-b)-(R*T);
v3:=v2-(fv2*(v2-v1))/(fv2-fv1);
fv3:=(P+(a/(v3*v3)))*(v3-b)-(R*T);
Z:=(P*v3)/(R*T);
y:=v2-v1;
writeln(' ',v1:2:4,' ',v2:4:4,' ',v3:4:4,' ',fv1:4:4,' ',fv2:4:4,'
',fv3:4:4,' ',Z:4:4);
if y<0 then y:=y*-1;
if (fv1*fv3)<0 then
begin
v2:=v3;
fv2:=fv3;
end
else
begin
v1:=v3;
fv1:=fv3;
end;
until y>=tol
end;
readln;
end.
HASIL RUN PROGRAM VAN DER WALLS INTERPOLASI (PASCAL)
LISTING PROGRAM VAN DER WALLS INTERPOLASI (MATLAB)
clear all;
clc;
syms v;
R=0.08206;
disp('------------------------------------------------------------------');
disp(' Persamaan Van Der Walls Metode Interpolasi Linier ');
disp('------------------------------------------------------------------');
Tc=input('masukkan nilai temperatur kritis = ');
Pc=input('masukkan nilai dari tekanan kritis = ');
v1=input('Masukkan nilai Volume molar pertama = ');
v2=input('Masukkan nilai Volume molar kedua = ');
T=input ('Masukkan nilai temperatur yang diinginkan = ');
P=input ('Masukkan nilai tekanan yang diinginkan = ');
t=input ('Masukkan toleransi = ');
a=(27*(R^2)*(Tc^2))/(64*Pc);
b=((R*Tc)/(8*Pc))^(-0.5);
fp=(P+(a/(v^2)))*(v-b)-(R*T);
f1=subs(fp,v,v1);
f2=subs(fp,v,v2);
v3=v2-(f2*(v2-v1))/(f2-f1);
f3=subs(fp,v,v3);
Z=(P*v3)/(R*T);
no=1;
disp('----------------------------------------------------------------------------------------');
disp(' I V.molar1 V.molar2 V.molar3 f(x1) f(x2) f(x3) z');
disp('----------------------------------------------------------------------------------------');
fprintf('%3.0f%10.4f%12.4f%12.4f%15.4f%12.4f%12.4f
%10.4f\n',no,v1,v2,v3,f1,f2,f3,Z);
while abs(f3)>t
no=no+1;
if (f1*f3)<0
v1=v3;
f1=f3;
else
v2=v3;
f2=f3;
end
v3=v2-(f2*(v2-v1))/(f2-f1);
f3=subs(fp,v,v3);
Z=(P*v3)/(R*T);
fprintf('%3.0f%10.4f%12.4f%12.4f%15.4f%12.4f%12.4f
%10.4f\n',no,v1,v2,v3,f1,f2,f3,Z);
end
HASIL RUN PROGRAM VAN DER WALLS INTERPOLASI (MATLAB)