Anda di halaman 1dari 41

LABORATORIUM TEKNIK KIMIA

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

Metode Akar Persamaan Metode Bisection Metode Interpolasi Linear

Tidak memerlukan Memerlukan iterasi Memerlukan iterasi dalam


iterasi dalam dalam menyelesaikan menyelesaiakn akar
penyelesaian akar persamaan persamaan

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

Mengunakan nilai Mengunakan nilai fungsi


Tidak mengunakan nilai
fungsi (f(x)) dalam (f(x)) dalam penyelesaian,
fungsi (f(x)) dalam
penyelesaian, dan dan harus berlawanan
penyelesaian
harus berlawanan tanda tanda

Penentuan nilai Penentuan nilai tengah


Tidak memerlukan nilai
tengah dari fungsi (f(x)) tengah (xt) dilakukan (xt) tidak dilakukan
dalam penyelesaian dengan cara membagi dengan cara membagi dua
dua range antara x1 range antara x1 dan x2
dan x2
Rumus umum yang
Rumus umum yang Rumus umum yang digunakan untuk
digunakan dalam digunakan dalam penyelesaian :
penyelesaian : penyelesaian : f ( xi+1)
−b ± √ b 2−4 ac x*¿xi+1- (xi+1-
X1,2¿ x 1+ x 2 f ( xi+ 1 )−f ( xi)
2a Xt =
2 xi)
2. PERHITUNGAN SECARA MANUAL
Persamaannya:
9 4 39 3 5
F(x)= x + x + 24 - x 2 - x−3 – 13 =
8 9 2
Menghitung akar-akar persamaan diatas dengan menggunakan metode
bisection
Untuk iterasi ke-1
Batas bawah (X1= - 4) masukkan X1 ke persamaan
9 39 3 5 2
f(-4)= (−4)4 + (−4) + 24 - (−4) - (−4)−3 – 13= - 572,9844
8 9 2
Batas atas (X2 = 3) masukkan X2 ke persamaan
9 39 3 5 2
f(3)= (3)4 + (3) + 24 - ( 3) - (3)−3 – 13= 430,5880
8 9 2
X 1+ X 2 (−4)+3
Mencari Xt = = = -0,5 masukkan Xt ke persamaan
2 2
9 39 3 5 2
f(-0,5)= (−0,5)4 + (−0,5) + 24 - (−0,5) - (−0,5)−3 – 13= 16,8203
8 9 2
Untuk iterasi ke-2
Batas bawah (X1= - 4) masukkan X1 ke persamaan
9 39 3 5 2
f(-4)= (−4)4 + (−4) + 24 - (−4) - (−4)−3 – 13= - 572,9844
8 9 2
Batas atas (X2 = -0,5) masukkan X2 ke persamaan
9 39 3 5 2
f(-0,5)= (−0,5)4 + (−0,5) + 24 - (−0,5) - (−0,5)−3 – 13= 16,8203
8 9 2
X 1+ X 2 (−4)+(−0,5)
Mencari Xt = = = -2,25 masukkan Xt ke persamaan
2 2
9 39 3 5 2
f(-2,25)= (−2,25)4 + (−2,25) + 24 - (−2,25) - (−2,25)−3 – 13=
8 9 2
-120,8141
Untuk iterasi ke-3
Batas bawah (X1= - 2,25) masukkan X1 ke persamaan
9 39 3 5 2
f(-2,25)= (−2,25)4 + (−2,25) + 24 - (−2,25) - (−2,25)−3 – 13=
8 9 2
-120,8141
Batas atas (X2 = -0,5) masukkan X2 ke persamaan
9 39 3 5 2
f(-0,5)= (−0,5)4 + (−0,5) + 24 - (−0,5) - (−0,5)−3 – 13= 16,8203
8 9 2
X 1+ X 2 (−2,25)+(−0,5)
Mencari Xt = = = -1,3750 masukkan Xt ke persamaan
2 2
9 39 3 5 2
f(-1,3750)= (−1,3750)4 + (−1,3750) + 24 - (−1,3750) - (−1,3750)−3 –
8 9 2
13= -23,1155
Iterasi dihentikan saat iterasi ke-17 karena nilai f(xt)nya mendekati nilai toleransi
yaitu 0,001
Untuk iterasi ke-17
Batas bawah (X1= -0,9420) masukkan X1 ke persamaan
9 39 3 5 2
f(-0,9420)= (−0,9420)4 + (−0,9420) + 24 - (−0,9420) - (−0,9420)−3 –
8 9 2
13= -0,0024
Batas atas (X2 = -0,9419) masukkan X2 ke persamaan
9 39 3 5 2
f(-0,9419)= (−0,9419)4 + (−0,9419) + 24 - (−0,9419) - (−0,9419)−3 –
8 9 2
13= - 0,0018
X 1+ X 2 (−0,9420)+(−0,9419)
Mencari Xt = = = -0,0024 masukkan Xt ke
2 2
persamaan
9 39 3 5 2
f(-0,0024)= (−0,0024) 4 + (−0,0024) + 24 - (−0,0024) - (−0,0024)−3 –
8 9 2
13= -0,003
Iterasi ke X1 X2 Xt F(X1) F(X2) F(Xt)
1 -4 3 -0,5 -572,984 430,5880 16,8203
2 -4 -0,5 -2,25 -572,984 16,8203 120,8141
3 -2,25 -0,5 -1,3750 120,8141 16,8203 -23,1155

Menghitung akar-akar persamaan diatas dengan menggunakan metode


Interpolasi Linier
Untuk iterasi ke-1
Batas bawah (X1= - 4) masukkan X1 ke persamaan
9 39 3 5 2
f(-4)= (−4)4 + (−4) + 24 - (−4) - (−4)−3 – 13= - 572,9844
8 9 2
Batas atas (X2 = 3) masukkan X2 ke persamaan
9 39 3 5 2
f(3)= (3)4 + (3) + 24 - ( 3) - (3)−3 – 13= 430,5880
8 9 2
X2 3
Mencari Xt =X2- ( X 2− X 1)=3 - - (3−(−4))= -7 masukkan Xt
X 2−X 1 3−(−4 )
ke persamaan
9 39 3 5 2
f(-7)= (−7)4 + (−7) + 24 - (−7) - (−7)−3 – 13= 1870,7
8 9 2
Untuk iterasi ke-2
Batas bawah (X1= - 7) masukkan X1 ke persamaan
9 39 3 5 2
f(-7)= (−7)4 + (−7) + 24 - (−7) - (−7)−3 – 13= 1870,7
8 9 2
Batas atas (X2 = 3) masukkan X2 ke persamaan
9 39 3 5 2
f(3)= (3)4 + (3) + 24 - ( 3) - (3)−3 – 13= 430,5880
8 9 2
X2 3
Mencari Xt =X2- ( X 2− X 1)=3 - - (3−(−7))= -8,9 masukkan
X 2−X 1 3−(−7)
Xt ke persamaan
9 39 3 5 2
f(-8,9)= (−8,9)4 + (−8,9) + 24 - (−8,9) - (−8,9)−3 – 13= - 2294
8 9 2
Untuk iterasi ke-3
Batas bawah (X1= - 8,9) masukkan X1 ke persamaan
9 39 3 5 2
f(-8,9)= (−8,9)4 + (−8,9) + 24 - (−8,9) - (−8,9)−3 – 13= - 2294
8 9 2
Batas atas (X2 = 3) masukkan X2 ke persamaan
9 39 3 5 2
f(3)= (3)4 + (3) + 24 - ( 3) - (3)−3 – 13= 430,5880
8 9 2
X2 3
Mencari Xt =X2- ( X 2− X 1)=3 - - (3−(−8,9))= -10,6
X 2−X 1 3−(−8,9)
masukkan Xt ke persamaan
9 39 3 5 2
f(-10,6)= (−10,6)4 + (−10,6) + 24 - (−10,6) - (−10,6)−3 – 13= - 1401
8 9 2
Iterasi ke X1 X2 Xt F(X1) F(X2) F(Xt)
1 -4 3 -7 -572,984 430,5880 1870,7
2 -7 3 -8,9 1870,7 430,5880 - 2294
3 -8,9 3 -1,3750 - 2294 430,5880 - 1401

METODE BISECTION DAN INTERPOLASI


ALGORITMA PROGRAM
1. Memulai program
2. Memasukkan batas atas (x1) dan batas bawah (x2)
3. Menghitung dengan akar dari persamaan :
9 39 5
f ( x )= x 4 + x3 +24− x 2−x−3 −13
8 3 2
4. Dari persamaan diatas di hitung selanjutnya dengan persamaan :
a. Untuk menghitung interpolasi:

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

FLOWCHART PROGRAM BISECTION (PASCAL)


Memulai

Masukkan batas bawah (x1), masukkan batas


atas (x2) dan masukkan toleransi (tol)

Repeat

Memproses (fxt), (fx1), (fx2) dengan Tidak


rumus : If
x1:=xt
(9/8*x^4)+(13*x^3)+(24)-(5/2*x^2)-(x^- fx1*fxt<0
3)-(13)
Ya
Ya

x2:=xt

Tidak
Until y<toleransi

Output hasil
persamaan
Metode Bisection

SELESAI
FLOWCHART PROGRAM BISECTION (MATLAB)
Mulai

Masukkan persamaan, batas


atas dan batas bawah dan
toleransi

Fb=subs(F,x,x1);
Fa=subs(F,x,x2);
x3=(x2+x1)/2;

While
Fb*Fa>0 No

Masukkan nilai batas


bawah batas atas

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

3. Menghitung dengan rumus

2 2
27 R T c
a= ( )
64 Pc
−1
RTc
b= ( )
8 Pc
2
b=((R*Tc)/(P));

f=(P + (a / (x2)) x (x - b)-(R x T);


fv1=subs(f,x,v1);
fv2=subs(f,x,v2);
4. Ketika (fv1 x fv2)>0
i. Masukkan nilai v1 lain dan v2 lain

ii. Menghitung dengan rumus fv1=subs(f,x,v1), fv2=subs(f,x,v2);

5. Menghitung dengan rumus

v3=(v1+v2)/2;
fv3=subs(f,x,v3);
Z=(P x v3)/(R x T);
6. Menampilkan tabel dengan literasi=1

7. Ketika abs(fv1 x fv3)>t

i. Literasi=literasi+1;

ii. Jika (fvi x fv3)<0 menghitung dengan rumus v2=v3; fv2=fv3;

iii. Else menghitung dengan rumus v1=v3; fv1=fv3;

iv. Menghitung dengan rumus

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

v3=(v1+v2)/2 atau v3=(v2)-


(fv2*(v2-v1))/(fv2-fv1)
fv3=subs(f,x,v3) Z=(P*v3)/
(R*T)

TIDAK
while abs(fv3)>t

YA
YA
v2=v3
If (fv1*fv3)<0
fv2=fv3
TIDAK

v1=v3
fv1=fv3

Diproses lagi dengan :


v3=(v1+v2)/2 atau v3=(v2)-
(fv2*(v2-v1))/(fv2-fv1)
fv3=subs(f,x,v3
Z=(P*v3)/(R*T)

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)

Anda mungkin juga menyukai