Transcript
Page 1: Tugas Analisis dan Komputasi Numeris

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

Page 2: Tugas Analisis dan Komputasi Numeris

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.

Page 3: Tugas Analisis dan Komputasi Numeris

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.

Page 4: Tugas Analisis dan Komputasi Numeris

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

Page 5: Tugas Analisis dan Komputasi Numeris

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

Page 6: Tugas Analisis dan Komputasi Numeris

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:

Page 7: Tugas Analisis dan Komputasi Numeris

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:

Page 8: Tugas Analisis dan Komputasi Numeris

>> 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

Page 9: Tugas Analisis dan Komputasi Numeris

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

Page 10: Tugas Analisis dan Komputasi Numeris

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

Page 11: Tugas Analisis dan Komputasi Numeris

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

Page 12: Tugas Analisis dan Komputasi Numeris

jj

» pilihan a = 0

a nol

» pilihan

a = -3

a bukan nol atau satu

» pilihan a = 4

a bukan nol atau satu

Page 13: Tugas Analisis dan Komputasi Numeris

B. Latihan Penyelesaian Persamaan Linear Simultan Menggunakan

Metode Eliminasi Gauss memakai Matlab

Page 14: Tugas Analisis dan Komputasi Numeris

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 :

Page 15: Tugas Analisis dan Komputasi Numeris

[

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 :

Page 16: Tugas Analisis dan Komputasi Numeris

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 𝑚𝑜𝑙

𝑚𝑒𝑛𝑖𝑡⁄

Page 17: Tugas Analisis dan Komputasi Numeris

𝑫 = 𝟒𝟑, 𝟕𝟓 𝒎𝒐𝒍𝒎𝒆𝒏𝒊𝒕⁄

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

Page 18: Tugas Analisis dan Komputasi Numeris

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

Page 19: Tugas Analisis dan Komputasi Numeris

Latihan 2

Page 20: Tugas Analisis dan Komputasi Numeris

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

Page 21: Tugas Analisis dan Komputasi Numeris

Script Matlab dalam command windows untuk menyelesaikan sistem persamaan

ini dalam bentuk matriks adalah sebagai berikut :

Dimana Script untuk Menu GaussPivot adalah

Page 22: Tugas Analisis dan Komputasi Numeris

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𝑂

Page 23: Tugas Analisis dan Komputasi Numeris

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

Page 24: Tugas Analisis dan Komputasi Numeris
Page 25: Tugas Analisis dan Komputasi Numeris
Page 26: Tugas Analisis dan Komputasi Numeris
Page 27: Tugas Analisis dan Komputasi Numeris
Page 28: Tugas Analisis dan Komputasi Numeris
Page 29: Tugas Analisis dan Komputasi Numeris
Page 30: Tugas Analisis dan Komputasi Numeris
Page 31: Tugas Analisis dan Komputasi Numeris
Page 32: Tugas Analisis dan Komputasi Numeris
Page 33: Tugas Analisis dan Komputasi Numeris
Page 34: Tugas Analisis dan Komputasi Numeris
Page 35: Tugas Analisis dan Komputasi Numeris

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

Page 36: Tugas Analisis dan Komputasi Numeris

Script dari Gauss.m

Sehingga Padi yang dibutuhkan adalah 5 Hektar, Jagung 4 Hektar, Ketela 3 Hektar.

Page 37: Tugas Analisis dan Komputasi Numeris

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

Page 38: Tugas Analisis dan Komputasi Numeris

Sehingga x1=3, x2=-2, x3=10, x4=-6 dan x5= 8

Page 39: Tugas Analisis dan Komputasi Numeris

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

Page 40: Tugas Analisis dan Komputasi Numeris

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.