Tugas
(M.file dan Penyelesaian Persamaan Linear Simultan)
Disusun Oleh
Nama Npm
Chairul Umam (1415041009)
Fadhlan Pratama M. (1415041016)
Fajar Riza Fahlevi (1415041017)
Nurul Izzati Hanifah (1415041043)
Okta Fiyana (1415041045)
Mata Kuliah : Analisa dan Komputasi Numeris
Dosen Pembimbing : Muhammad Hanif,S.T.,M.T.
JURUSAN TEKNIK KIMIA
FAKULTAS TEKNIK UNIVERSITAS LAMPUNG
BANDAR LAMPUNG
2016
A. Rangkuman m.files
Cara yang paling umum untuk mengoperasikan MATLAB adalah dengan
memasukkan perintah setiap waktu pada command window. M-files menyediakan
sebuah alternatif untuk melakukan operasi yang sangat memperluas kemampuan
memecahkan masalah MATLAB. Sebuah m-file terdiri dari seri-seri pernyataan
yang dapat dijalankan dalam satu waktu. Catatan bahwa istilah “M-file” datang dari
fakta bahwa sebuah file tersimpan dengan sebuah ekstensi .m. M-file terdiri dari
dua yaitu script files dan function files.
M-files dapat berisi program, scripts, persamaan atau data yang dipanggil
selama eksekusi. Jika m-files adalah definisi fungsi, selanjutnya bagian
yang terpenting dari jenis m-file ini adalah baris pertama. Baris
pertama harus mengandung definisi fungsi sehingga MATLAB dapat
menemukan m-files yang dipanggil. M-files tipe ini disebut dengan fungsi m-
files atau fungsi file. Kode yang digunakan untuk mendefinisikan file adalah
sebagai berikut:
function z = file_name(x,y)
‘file_name’ adalah nama sederhana m-file (nama file harus sama dalam definisi
dan nama file. Baris script selanjutnya dalam m-file dapat mendefinisikan
fungsi atau fungsi dan label beberapa variable yang diperlukan.
Command workspace adalah area di dalam memori komputer dimana tersimpan
berbagai parameter dan variabel yang telah didefinisikan pada command line (baik
pada command window ataupun pada m-file) MATLAB. Masing – masing m-file
memiliki workspace khusus yang masing – masing tidak dapat berkomunikasi
sampai kita membuatnya saling berkomunikasi. Salah satu cara untuk
mengkomunikasikan masing – masing workspace tersebut adalah dengan perintah
global.
A. Script Files
Sebuah script file adalah selalu seri-seri dari perintah-perintah MATLAB yang
tersimpan dalam sebuah file. Script file berguna untuk menahan sebuah seri-seri
perintah-perintah yang akan dieksekusi pada lebih dari peristiwa. Script dapat
dieksekusi dengan mengetik nama file pada command window atau dengan memilih
pada pilihan menu pada jendela Edit: Debug, Run.
Hampir seluruh operasi Matlab dilaksanakan melalui script, yang dituliskan
dalam bentuk teks. Script Matlab harus dijalankan dalam program Matlab sebagai
lingkungannya.
Script matlab dapat merupakan urutan perintah, tetapi juga dapat berupa fungsi-
fungsi atau subfungsi. Script Matlab dapat menerima variabel dan menghasilkan
besaran.
Contoh 1. Script File
Problem Statement. Develop a script file to compute the velocity of the free-
falling bungee jumper for the case where the initial velocity is zero.
Solution. Open the editor with the menu selection: File, New, M-file. Type in the
following statements to compute the velocity of the free-falling bungee jumper at
a specific time
[recall Eq. (1.9)]:
g = 9.81; m = 68.1; t = 12; cd = 0.25;
v = sqrt(g * m / cd) * tanh(sqrt(g * cd / m) * t)
Simpan file sebagai scriptdemo.m. Kembali ke command window dan ketik
>>scriptdemo
Hasilnya akan ditampilkan sebagai
v =
50.6175
Demikian, script dieksekusi hanya jika user telah mengetik setiap barisnya di
command window.
Sebagai langkah terakhir, tentukan niai g dengan mengetik
>> g
g =
9.8100
Jadi dapat dilihat bahwa meski pun g terdefinisi dalam script, g menahan
nilainya kembali ke command worspace. Seperti yang akan kita lihat di bagian
berikut, adalah merupakan perbedaan penting antara script dan fungsi.
B. Function Files
Function files adalah M-files yang dimulai dengan kata function. Perbedaannya
dengan script files, adalah function files dapat menerima input argumen-argumen
dan output hasil. Karenanya function files beranalogi dengan fungsi pengguna
terdefinisi dalam bahasa pemrograman seperti Fortan, Visual Basic atau C.
Syntax untuk function files dapat direpresentasikan secara umum sebagai
berikut:
function outvar = funcname(arglist)
% helpcomments
statements
outvar = value;
dimana outvar adalah nama variable output, funcname adalah nama fungsi,
arglist adalah daftar argumen fungsi (sebagai contoh, nilai koma batas yang
lewat ke fungsi), helpcomments adalah teks yang menyediakan kepada user
informasi mengenai fungsi (dapat dipanggil dengan mengetik Help funcname
pada command window), statements dan adalah pernyataan MATLAB yang
menghitung value yang ditugaskan kepada outvar.
Di atas peran function files dalam mendeskripsiskan fungsi, baris pertama
dari helpcomments, yang disebut sebagai H1 line, adalah baris yang dicari oleh
perintah lookfor. Demikian, maka sebaiknya harus disertakan kata kunci
deskriptif yang berhubungan dengan file pada barisini.
M-file harus disimpan sebagai funcname.m. fungsi dapat dijalankan
selanjutnya dengan mengetik funcname pada command window. Catatan bahwa
meski pun MATLAB adalah case-sensitive, sistem opersai komputer yang
digunakan mungkin tidak sensitif. Dimana MATLAB akan membaca nama fungsi
freefall dan Freefall sebagai dua variabel yang berbeda, sedangkan
komputer membacanya sebagai sesuatu yang sama. Sebagai contoh adalah sebagai
berikut
Contoh 2. Function File
Problem Statement. As in Example 3.1, compute the velocity of the free-
falling bungee jumper but now use a function file for the task.
Solution. Type the following statements in the file editor:
function v = freefall(t, m, cd)
% freefall: bungee velocity with second-order drag
% v=freefall(t,m,cd) computes the free-fall velocity
% of an object with second-order drag
% input: % t = time (s)
% m = mass (kg)
% cd = second-order drag coefficient (kg/m)
% output:
% v = downward velocity (m/s)
g = 9.81; % acceleration of gravity
v = sqrt(g * m / cd)*tanh(sqrt(g * cd / m) * t);
Save the file as freefall.m. To invoke the function, return to the command window
and
type in
>> freefall(12,68.1,0.25)
The result will be displayed as
ans =
50.6175
One advantage of a function M-file is that it can be invoked repeatedly for
different argument values. Suppose that you wanted to compute the velocity of a
100-kg jumper after 8 s:
>> freefall(8,100,0.25)
ans =
53.1878
To invoke the help comments type
>> help freefall
which results in the comments being displayed
freefall: bungee velocity with second-order drag
v=freefall(t,m,cd) computes the free-fall velocity
of an object with second-order drag
input:
t = time (s)
m = mass (kg)
cd = second-order drag coefficient (kg/m)
output:
v = downward velocity (m/s)
If at a later date, you forgot the name of this function, but remembered that it
involved bungee jumping, you could enter
>> lookfor bungee
and the following information would be displayed
freefall.m - bungee velocity with second-order drag
Catatan bahwa, pada akhir pada contoh sebelumnya, jika kita sudah mengetik
>> g
maka pesan berikut akan ditampilkan
??? Undefined function or variable ‘g’.
Jadi meski pun g memiliki nilai 9,81 dalam M-file, g tidak akan memiliki
sebuah nilai pada command workspace. Seperti yang menjadi catatan pada akhir
contoh 1, ini adalah perbedaan penting antara fungsi dan script. Variabel dalam
sebuah fungsi dikatakan merupakan local dan dihapus setelah fungsi dieksekusi.
Berbeda dengan fungsi, sebuah variabel dalam script mempertahankan
keberadaannya setelah dieksekusi.
Fungsi M-file dapat menghasilkan lebih dari satu hasil. Dalam beberapa
kasus, variabel mengandung hasil adalah comma-delimited dan ditutup oleh tanda
kurung. Sebagai contoh, fungsi berikut, stats.m, menghitung rata-rata dan standar
deviasi sebuah vektor:
function [mean, stdev] = stats(x)
n = length(x);
mean = sum(x)/n;
stdev = sqrt(sum((x-mean).^2/(n-1)));
Here is an example of how it can be applied:
>> y = [8 5 10 12 6 7.5 4];
>> [m,s] = stats(y)
m =
7.5000
s =
2.8137
Meskipun kita juga akan menggunakan script M-file, fungsi M-file dapat menjadi
alat pemrograman utama.
C. Subfungsi
Fungsi dapat memanggil fungsi. Meski pun sseperti fungsi dapat ada sebagai
M-file yang terpisah, fungsi tersebut juga dapat terdapata dalam M-file tunggal.
Contoh 2 (tanpa komentar) dapat dibagi menjadi dua fungsi dan disimpan sebagai
satu M-file.
function v = freefallsubfunc(t, m, cd)
v = vel(t, m, cd);
end
function v = vel(t, m, cd)
g = 9.81;
v = sqrt(g * m / cd)*tanh(sqrt(g * cd / m) * t);
end
M-file ini dapat disimpan sebagai freefalsubfunc.m. dalam beberapa kasus,
fungsi pertama disebut sebagai main atau primary function. Hanya fungsi yang
dapat diakses di command window dan fungsi-fungsi serta scripts lainnya. Semua
fungsi-fungsi lain (dalam hal ini, vel) mrujuk pada subfungsi.
Sebuah subfungsi hanya dapat diakses kepada fungsi utama dan semua
subfungsi dalam M-file dimana subfungsi tersebut berada. Jika kita menjalankan
freefallsubfunc dari command window, hasilnya akan sama dengan contoh 2:
>> freefallsubfunc(12,68.1,0.25)
ans =
50.6175
Bagaimana pun, jika kita mencoba untuk menjalankan subfunction vel sebuah
pesan eror akan terjadi:
>> vel(12,68.1,.25)
??? Undefined function or method 'vel' for input arguments
of type 'double'.
D. Membuat File Program yang Dapat dieksekusi
File script adalah sebuah file teks biasa dan bisa dibuat menggunakan editor
teks biasa seperti notepad pada windows atau editor edit.exe pada DOS. Tetapi pada
Matlab versi 7.x yang baru, editor khusus telah disediakan. Editor ini dilengkapi
dengan pustaka kata-kata kunci Matlab yang berwarna lain sehingga
memudahkan penyuntingan program.
Untuk mengeksekusi script atau fungsi, tuliskanlah nama fungsi tersebut pada
prompt (»). Jangan gunakan huruf kapital karena nama fungsi di Matlab
diharuskan menggunakan huruf non-kapital.
1. Script: Urutan Perintah
Untuk membuat script biasa, tuliskan perintah-perintah Matlab dengan urutan
yang benar. Script dapat menerima masukan melalui input dari keyboard, tetapi
tidak dapat menerima masukan berupa argumen. Karena itu script hanya digunakan
untuk program-program singkat, atau program induk.
2. Fungsi: Subfungsi Matlab
Fungsi dapat menerima masukan berupa argumen dan dapat pula menerima
masukan dari keyboard, tetapi biasanya pekerjaan ini tidak ditempatkan dalam
fungsi kecuali ada tujuan khusus untuk itu.
Sebuah fungsi harus memiliki header yang ditandai dengan kata-kunci function.
Pada header tersebut terdapat variabel output, nama fungsi dan variabel input.
Nama fungsi disini tidak selalu mencerminkan nama fungsi yang sebenarnya.
Nama fungsi sebenarnya adalah nama file .m yang berisi fungsi tersebut. Walaupun
demikian, nama fungsi pada header sebaiknya sama dengan nama file agar tidak
membingungkan.
Matlab membedakan variabel di luar fungsi dan variabel di dalam fungsi.
Variabel di dalam fungsi bersifat lokal dan hanya berlaku di dalam fungsi. Hal ini
akan dibahas pada sub-bagian lain.
E. Mengatur Alur Program
Ada beberapa perintah Matlab yang dapat digunakan untuk mengatur alur
program antara lain :
1. If.....else
Perintah ini adalah perintah klasik pemrograman. Identik dengan jika ..
maka, perintah ini dapat digunakan untuk menguji suatu kondisi tertentu.
Sintaks dari perintah ini diperlihatkan pada contoh berikut :
% program : test.m a = input('a = ');
if a == 0
disp('a sama dengan nol');
elseif a < 0
disp('a negatif');
else
disp('a positif');
end
»test a = 4a positif
» test
a = -4
a negatif
» test a = 0
a sama dengan nol
2. For
Perintah ini juga merupakan perintah klasik bahasa pemrograman. Fungsi
for adalah
untuk melakukan loop sejumlah urutan yang telah ditentukan. Sintaks dari
perintah ini diperlihatkan pada contoh berikut :
for i=1:10
for j=1:2:10
A(i,j) = (i+j);
end;
end; A
» test
A =
2 0 4 0 6 0 8 0 10 3 0 5 0 7 0 9 0 11 4 0 6 0 8 0 10 0 12 5 0 7 0 9 0 11 0 13 6 0 8 0 10 0 12 0 14 7 0 9 0 11 0 13 0 15 8 0 10 0 12 0 14 0 16 9 0 11 0 13 0 15 0 17 10 0 12 0 14 0 16 0 18 11 0 13 0 15 0 17 0 19
Urutan loop dapat sebuah vektor dengan bilangan-bilangan tertentu seperti contoh
di atas : untuk i urutan dari 1 sampai 10 dengan kenaikan 1, sedangkan untuk j dari
1 sampai 10 dengan kenaikan 2. Jika x = [1 1.3 5.4 2.3 5.5 7], maka for x=x akan
memberikan harga-harga x seperti setiap elemen dalam vektor x : x(1) = 1, x(3) =
5.4 dst.
3. While
Perintah ini akan mengulang perintah-perintah yang diapitnya selama
kondisi pengujinya benar. Di dalam loop harus ada perintah-perintah yang
membuat kondisi penguji menjadi salah, karena kalau tidak loop akan berlangsung
terus. Contoh baik dapat dilihat para perhitungan epsilon mesin Matlab.
% progam : epsilon.m satu = inf;
eps = 1;
while satu > 1
eps = eps/2; % nilai eps semakin
lama semakin kecil
satu = 1 + eps; % satu
suatu saat akan sama dengan 1 end;
eps = eps*2
» epsilon
eps =
2.2204e-016
4. Switch....Case.....Oteherwise
Perintah ini mengarahkan alur program melalui sejumlah pilihan. Perintah ini untuk
menggantikan perintah IF…ELSEIF…ELSE yang bertumpuk.
a = input('a = ');
switch a
case {0}, disp('a nol') case {1}, disp('a satu') otherwise
disp('a bukan nol atau satu');
end;
» pilihan a = 1
a satu
jj
» pilihan a = 0
a nol
» pilihan
a = -3
a bukan nol atau satu
» pilihan a = 4
a bukan nol atau satu
B. Latihan Penyelesaian Persamaan Linear Simultan Menggunakan
Metode Eliminasi Gauss memakai Matlab
Penyelesaian
a. Neraca Massa Overall Semua Komponen
0,07 D1 + 0,18 B1 + 0,15 D2 + 0,24 B2 = 10.5 (1.1)
0,04 D1 + 0,24 B1 + 0,10 D2 + 0,65 B2 = 17.5 (1.2)
0,54 D1 + 0,42 B1 + 0,54 D2 + 0,10 B2 = 28.0 (1.3)
0,35 D1 + 0,16 B1 + 0,21 D2 + 0,01 B2 = 14.0 (1.4)
Ada 4 Persamaan Linear dengan 4 Variabel yang tidak diketahui :
D1, B1, D2, dan B2
Persamaan- persamaan diatas dapat dituliskan kembali dalam bentuk matriks
sebagai berikut :
[
0.07 0.18 0.15 0.240.04 0.24 0.10 0.650.54 0.42 0.54 0.100.35 0.16 0.21 0.01
] [
𝐷1
𝐵1
𝐷2
𝐵2
] = [
10.517.528.014.0
]
Script Matlab dalam command windows untuk menyelesaikan sistem persamaan
ini dalam bentuk matriks adalah sebagai berikut :
dengan D1 =26,25 mol/menit, B1 =17,5 mol/ menit, D2 = 8,75 mol/menit, dan
B2 =17,5 mol /menit
b. Tentukan Laju Aliran Molar dan komposisi aliran D dan B
Laju Aliran dan Komposisi Aliran D
o Laju aliran molar pada aliran D adalah :
𝐷 = 𝐷1 + 𝐵1
𝐷 = 26,25 𝑚𝑜𝑙𝑚𝑒𝑛𝑖𝑡⁄ + 17,5 𝑚𝑜𝑙
𝑚𝑒𝑛𝑖𝑡⁄
𝑫 = 𝟒𝟑, 𝟕𝟓 𝒎𝒐𝒍𝒎𝒆𝒏𝒊𝒕⁄
Jadi aliran molar pada aliran D adalah 43.75 mol/menit
o Komposisi aliran molar Xylene pada aliran D
𝑥𝑑,1𝐷 = 𝑥𝑑1,1𝐷1 + 𝑥𝑏1,1𝐵1
𝑥𝑑,1𝐷 = 0.07(26.25 𝑚𝑜𝑙𝑚𝑒𝑛𝑖𝑡⁄ ) + 0,18(17.5 𝑚𝑜𝑙
𝑚𝑒𝑛𝑖𝑡⁄ )
𝒙𝒅,𝟏𝑫 = 𝟒. 𝟗𝟖𝟕𝟓𝒎𝒐𝒍𝒎𝒆𝒏𝒊𝒕⁄
Jadi komposis molar xylene pada aliran D adalah 4.9875
mol/menit
o Komposisi Styrene pada aliran D
𝑥𝑑,2𝐷 = 𝑥𝑑1,2𝐷1 + 𝑥𝑏1,2𝐵1
𝑥𝑑,2𝐷 = 0.04(26.25 𝑚𝑜𝑙𝑚𝑒𝑛𝑖𝑡⁄ ) + 0,24(17.5 𝑚𝑜𝑙
𝑚𝑒𝑛𝑖𝑡⁄ )
𝒙𝒅,𝟐𝑫 = 𝟓. 𝟐𝟓𝒎𝒐𝒍𝒎𝒆𝒏𝒊𝒕⁄
Jadi aliran molar Styrene pada aliran D adalah 5.25 mol/menit
o Komposisi Toluene pada aliran D
𝑥𝑑,3𝐷 = 𝑥𝑑1,3𝐷1 + 𝑥𝑏1,3𝐵1
𝑥𝑑,3𝐷 = 0.54(26.25 𝑚𝑜𝑙𝑚𝑒𝑛𝑖𝑡⁄ ) + 0,42(17.5 𝑚𝑜𝑙
𝑚𝑒𝑛𝑖𝑡⁄ )
𝒙𝒅,𝟑𝑫 = 𝟐𝟏, 𝟓𝟐𝟓𝒎𝒐𝒍𝒎𝒆𝒏𝒊𝒕⁄
Jadi aliran molar Toluene pada aliran D adalah 21.25 mol/menit
o Komposisi Benzene pada aliran D
𝑥𝑑,4𝐷 = 𝑥𝑑1,4𝐷1 + 𝑥𝑏1,4𝐵1
𝑥𝑑,1𝐷 = 0.35(26.25 𝑚𝑜𝑙𝑚𝑒𝑛𝑖𝑡⁄ ) + 0,16(17.5 𝑚𝑜𝑙
𝑚𝑒𝑛𝑖𝑡⁄ )
𝒙𝒅,𝟏𝑫 = 𝟏𝟏. 𝟗𝟖𝟕𝟓𝒎𝒐𝒍𝒎𝒆𝒏𝒊𝒕⁄
Jadi aliran molar Benzene pada aliran D adalah 11.9875
mol/menit
Laju Aliran dan Komposisi Aliran B
o Laju aliran molar pada aliran B adalah :
𝐵 = 𝐷2 + 𝐵2
𝐵 = 8.75 𝑚𝑜𝑙𝑚𝑒𝑛𝑖𝑡⁄ + 17,5 𝑚𝑜𝑙
𝑚𝑒𝑛𝑖𝑡⁄
𝑩 = 𝟐𝟔, 𝟐𝟓 𝒎𝒐𝒍𝒎𝒆𝒏𝒊𝒕⁄
Jadi aliran molar pada aliran B adalah 26.25 mol/menit
o Komposisi aliran molar Xylene pada aliran B
𝑥𝑏,1𝐵 = 𝑥𝑑2,1𝐷2 + 𝑥𝑏2,1𝐵2
𝑥𝑏,1𝐵 = 0.15(8.75 𝑚𝑜𝑙𝑚𝑒𝑛𝑖𝑡⁄ ) + 0,24(17.5 𝑚𝑜𝑙
𝑚𝑒𝑛𝑖𝑡⁄ )
𝒙𝒅,𝟏𝑩 = 𝟓. 𝟓𝟏𝟐𝟓𝒎𝒐𝒍𝒎𝒆𝒏𝒊𝒕⁄
Jadi aliran molar xylene pada aliran B adalah 5.125 mol/menit
o Komposisi aliran molar Styrene pada aliran B
𝑥𝑏,2𝐵 = 𝑥𝑑2,2𝐷2 + 𝑥𝑏2,2𝐵2
𝑥𝑏,2𝐵 = 0.10(8.75 𝑚𝑜𝑙𝑚𝑒𝑛𝑖𝑡⁄ ) + 0,65(17.5 𝑚𝑜𝑙
𝑚𝑒𝑛𝑖𝑡⁄ )
𝒙𝒃,𝟐𝑩 = 𝟏𝟐, 𝟐𝟓𝒎𝒐𝒍𝒎𝒆𝒏𝒊𝒕⁄
Jadi aliran molar xylene pada aliran B adalah 12.25 mol/menit
o Komposisi aliran molar Toluene pada aliran B
𝑥𝑏,3𝐵 = 𝑥𝑑2,3𝐷2 + 𝑥𝑏2,3𝐵2
𝑥𝑏,3𝐵 = 0.54(8.75 𝑚𝑜𝑙𝑚𝑒𝑛𝑖𝑡⁄ ) + 0,10(17.5 𝑚𝑜𝑙
𝑚𝑒𝑛𝑖𝑡⁄ )
𝒙𝒃,𝟑𝑩 = 𝟔. 𝟒𝟕𝟓 𝒎𝒐𝒍𝒎𝒆𝒏𝒊𝒕⁄
Jadi aliran molar Toluene pada aliran B adalah 6.475 mol/menit
o Komposisi aliran molar Benzene pada aliran B
𝑥𝑏,4𝐵 = 𝑥𝑑2,4𝐷2 + 𝑥𝑏2,4𝐵2
𝑥𝑏,3𝐵 = 0.21(8.75 𝑚𝑜𝑙𝑚𝑒𝑛𝑖𝑡⁄ ) + 0,01(17.5 𝑚𝑜𝑙
𝑚𝑒𝑛𝑖𝑡⁄ )
𝒙𝒃,𝟑𝑩 = 𝟐. 𝟎𝟏𝟐𝟓 𝒎𝒐𝒍𝒎𝒆𝒏𝒊𝒕⁄
Jadi aliran molar Toluene pada aliran B adalah 2.0125
mol/menit
Latihan 2
Bentuk Umum reaksi kimia dalam soal
𝐶𝐻𝑚𝑂𝑛 + 𝑎𝑂2 + 𝑏𝑁𝐻3 → 𝑐𝐶𝐻𝛼𝑂𝛽𝑁𝛿 + 𝑑𝐻2𝑂 + 𝑒𝐶𝑂2
Kesetaraan Karbon 1 = 𝑐 + 𝑒
Kesetaraan Hidrogen 𝑚 + 3𝑏 = 𝑐𝛼 + 2𝑑
Kesetaraan Oksigen 𝑛 + 2𝑎 = 𝑐𝛽 + 𝑑 + 2𝑒
Kesetaraan Nitrogen 𝑏 = 𝑐𝛿
System diatas termasuk 4 persamaan linear 5 variabel. Untuk mendefinisikan
persamaan ke 5, harus ditambah persamaan kelima yaitu Respiratory quotient,
RQ yang didefinisikan seperti 𝑅𝑄 = 𝑒
𝑎
Penyelesaian
a. C6H12O6 bereaksi dengan oksigen dan nitrogen dari bakteri. Sementara hasil dari
reaksi tersebut adalah CH2O0.27N0.25, air dan karbon dioksida dengan RQ = 1,5
Reaksi yang terjadi
𝐶6𝐻12𝑂6 + 𝑎𝑂2 + 𝑏𝑁𝐻3 → 𝑐𝐶𝐻2𝑂0.27𝑁0.25 + 𝑑𝐻2𝑂 + 𝑒𝐶𝑂2
Kesetaraan Karbon 6 = 𝑐 + 𝑒 (1)
Kesetaraan Hidrogen 12 + 3𝑏 = 𝑐2 + 2𝑑 (2)
Kesetaraan Oksigen 6 + 2𝑎 = 𝑐0.27 + 𝑑 + 2𝑒 (3)
Kesetaraan Nitrogen 𝑏 = 𝑐0.25 (4)
Dan 𝑅𝑄 = 𝑒
𝑎= 1.5 (5)
Persamaan diatas adalah sistem persamaan linear dengan 5 variabel yang tidak
diketahui yaitu a, b, c, d, dan e. Persamaan- persamaan diatas dapat disusun
kembali menjadi persamaan linear dengan susunan yang sederhana, susunan
tersebut adalah
0𝑎 + 0𝑏 + 𝑐 + 0𝑑 + 𝑒 = 6 (1.1)
0𝑎 − 3𝑏 + 2𝑐 + 2𝑑 + 0𝑒 = 12 (2.1)
−2𝑎 + 0𝑏 + 0.27𝑐 + 𝑑 + 2𝑒 = 6 (3.1)
0𝑎 − 𝑏 + 0.25𝑐 + 0𝑑 + 0𝑒 = 0 (4.1)
1,5𝑎 + 0𝑏 + 0𝑐 + 0𝑑 − 𝑒 = 0 (5.1)
Persamaan- persamaan diatas dapat dituliskan kembali dalam bentuk matriks
sebagai berikut :
[
0 0 1 0 10 −3 2 2 0
−2 0 0.27 1 20 −1 0.25 0 0
1.5 0 0 0 −1]
[ 𝑎𝑏𝑐𝑑𝑒]
=
612600
Script Matlab dalam command windows untuk menyelesaikan sistem persamaan
ini dalam bentuk matriks adalah sebagai berikut :
Dimana Script untuk Menu GaussPivot adalah
Catatan persamaan linear ini menggunakan pivoting parsil karena di bagian
elemen diagonal matriks terdapat nilai nol
dimana a= 1.3899, b= 0,978, c=3.9152, d=3.5530, e=2.0848. maka persamaan
reaksi akan menjadi
𝐶6𝐻12𝑂6 + 1.3899𝑂2 + 0.978𝑁𝐻3
→ 3.9152𝐶𝐻2𝑂0.27𝑁0.25 + 2.553𝐻2𝑂 + 2.848𝐶𝑂2
b. C6H5COOH atau C7H6O2 dari bakteri pada keadaan anaerobik dimana tidak ada
gas oksigen. Sementara hasil dari reaksi tersebut adalah CH2O0.27N0.25, air dan
karbon dioksida.
Reaksi yang terjadi
𝐶7𝐻6𝑂2 + 𝑏𝑁𝐻3 → 𝑐𝐶𝐻2𝑂0.27𝑁0.25 + 𝑑𝐻2𝑂
Kesetaraan Karbon 7 = 𝑐 (1)
Kesetaraan Hidrogen 6 + 3𝑏 = 2𝑐 + 2𝑑 (2)
Kesetaraan Oksigen 2 = 0.27𝑐 + 𝑑 (3)
Kesetaraan Nitrogen 3𝑏 = 𝑐0.25 (4)
Dimana b= 1.75 c=7 d= 0,25
Maka persamaan reaksi menjadi
𝐶7𝐻6𝑂2 + 1,75𝑁𝐻3 → 7𝐶𝐻2𝑂0.27𝑁0.25 + 0.25𝐻2𝑂
Latihan 3
Selesaikan Persamaan Linear Berikut
𝑥1 + 𝑥2 + 𝑥3 + 𝑥4 + 𝑥5 + 𝑥6 + 𝑥7 + 𝑥8 + 𝑥9 = 17
3𝑥1 + 4𝑥2 + 6𝑥3 + 𝑥4 + 4𝑥5 + 7𝑥6 + 5𝑥7 + 3𝑥8 + 2𝑥9 = 30
5𝑥1 + 6𝑥2 + 7𝑥3 + 8𝑥4 + 𝑥5 + 4𝑥7 + 5𝑥8 + 6𝑥9 = 25
5𝑥1 + 6𝑥2 + 2𝑥3 + 𝑥4 + 9𝑥5 + 8𝑥6 = 15
𝑥1 + 3𝑥2 + 6𝑥3 + 8𝑥4 + 9𝑥5 + 2𝑥6 + 8𝑥7 + 9𝑥8 + 21𝑥9 = 70
10𝑥1 + 2𝑥2 − 3𝑥3 + 5𝑥4 − 4𝑥5 + 5𝑥6 − 6𝑥7 + 8𝑥8 + 9𝑥9 = 40
−2𝑥1 − 6𝑥2 + 7𝑥3 − 3𝑥4 + 𝑥5 − 9𝑥6 + 4𝑥7 − 𝑥8 − 4𝑥9 = 34
2𝑥2 + 4𝑥3 + 5𝑥4 − 9𝑥5 + 2𝑥6 − 2𝑥7 + 𝑥8 + 𝑥9 = 61
9𝑥1 + 5𝑥2 + 3𝑥3 + 9𝑥4 + 3𝑥6 + 4𝑥7 + 5𝑥8 + 6𝑥9 = 85
Penyelesaian
1. Jadikan semua persaman diatas menjadi bentuk matriks
1 1 1 1 1 1 1 1 1 x1 17
3 4 6 1 4 7 5 3 2 x2 30
5 6 7 8 1 0 4 5 6 x3 25
5 6 2 1 9 8 0 0 0 x4 15
1 3 6 8 9 2 8 9 21 x5 = 70
10 2 -3 5 -4 5 -6 8 9 x6 40
-2 -6 7 -3 1 -9 4 -1 -4 x7 34
0 2 4 5 -9 2 -2 1 1 x8 61
9 5 3 9 0 3 4 5 6 x9 85
2. Lalu dapat dibuat script matlab seperti gambar dibawah berikut
Latihan 4
Seorang petani ingin menanam padi, jagung dan ketela di atas tanahnya seluas 12 hektare.
Dengan ketentuan:
Untuk setiap hektare padi membutuhkan 10 kg pupuk urea dan 6 kg pestisida.
Untuk setiap hektare jagung membutuhkan 8 kg pupuk urea dan 4 kg pestisida
Untuk setiap hektare ketela pohon membutuhkan 5 kg pupuk urea dan 3 kg pestisida
Berapa hektare padi, jagung dan ketela yang harus ditanam bila tersedia 97 kg pupuk urea
dan 55 kg pestisida ?
Penyelesaian:
Model persamaan linear
x1 Luas Padi (ha)
x2 Luas Jagung (ha)
x3 Luas Ketela (ha)
Lalu susun persamaan linear seperti dibawah ini
𝑥1 + 𝑥2 + 𝑥3 = 12
10𝑥1 + 8𝑥2 + 5𝑥3 = 97
6𝑥1 + 4𝑥2 + 3𝑥3 = 55
Lalu susun kedalam bentuk matriks
[1 1 110 8 56 4 3
] [
𝑥1
𝑥2
𝑥3
] = [129755
]
Lalu untuk menggunakan matlab bisa dibuat script seperti dibawah ini
Script dari Gauss.m
Sehingga Padi yang dibutuhkan adalah 5 Hektar, Jagung 4 Hektar, Ketela 3 Hektar.
Latihan 5
Tentukan nilai dari masing- Masing Variabel dibawah ini
𝑥1 + 2𝑥2 + 3𝑥3 + 4𝑥4 + 5𝑥5 = 45
−𝑥1 − 2𝑥2 + 3𝑥3 − 4𝑥4 + 6𝑥5 = 103
9𝑥1 + 2𝑥3 + 3𝑥4 = 29
3𝑥1 + 5𝑥2 + 𝑥3 + 2𝑥4 + 10𝑥5 = 77
4𝑥1 + 5𝑥2 + 10𝑥3 + 3𝑥4 − 5𝑥5 = 44
Penyelesaian
𝑥1 + 2𝑥2 + 3𝑥3 + 4𝑥4 + 5𝑥5 = 45
−𝑥1 − 2𝑥2 + 3𝑥3 − 4𝑥4 + 6𝑥5 = 103
9𝑥1 + 2𝑥3 + 3𝑥4 = 29
3𝑥1 + 5𝑥2 + 𝑥3 + 2𝑥4 + 10𝑥5 = 77
4𝑥1 + 5𝑥2 + 10𝑥3 + 3𝑥4 − 5𝑥5 = 44
5 Persamaan diatas merupakan persamaan linear simultan dengan 5 variabel yang tidak
diketahui dan dapat diselesaikan dengan matlab menggunakan Pivoting Eliminasi Gauss
seperti gambar di bawah ini
Sehingga x1=3, x2=-2, x3=10, x4=-6 dan x5= 8
Script GaussPivot.m
Script Gauss.m
Script Gauss.m
function x = GaussPivot(A,b) % GaussPivot(A,b): % Eliimasi Gauss dengan Pivoting Parsil. % input: % A = coefficient matrix % b = right hand side vector % output: % x = solution vector [m,n] = size(A); if m ~= n, error('Matrix A must be square'); end nb = n+1; Aug = [A b]; % forward elimination for k = 1:n-1 % partial pivoting [b, i] = max(abs(Aug(k:n,k))); ipr = i+k-1; if ipr ~= k % pivot the rows Aug([k, ipr],:) = Aug([ipr,k],:); end for i = k+1:n factor = Aug(i,k)/Aug(k,k); Aug(i,k:nb) = Aug(i,k:nb)-factor*Aug(k,k:nb); end end % back substitution x = zeros(n,1); x(n) = Aug(n,nb)/Aug(n,n); for i = n-1:-1:1 x(i) = (Aug(i,nb)-Aug(i,i+1:n)*x(i+1:n))/Aug(i,i); end
function x=Gauss(a,b) %Persamaan untuk gauss ab=[a,b]; [R, C]=size(ab); %R jumlah baris dan C jumlah kolom for j= 1:R-1 %untuk kolom for i = j+1:R %untuk Baris ab(i,j:C)=ab(i,j:C)-ab(i,j)/ab(j,j)*ab(j,j:C); end end x=zeros(R,1); %menolkan segitiga bawah x(R)=ab(R,C)/ab(R,R); %menentukan nilai X for i =R-1:-1:1 x(i)=(ab(i,C)-ab(i,i+1:R)*x(i+1:R))/ab(i,i); end
Sumber:
Chapra, Steven C. 2012. Applied Numerical Methods with MATLAB for Engineers
and Scientist, 3 Ed. Newyork: McGraw-Hill.
Rustamaji, Heri. 2010. Pengantar Aplikasi MATLAB dalam Teknik Kimia. Bandar
Lampung: Jurusan Teknik Kimia Universitas Lampung.