Anda di halaman 1dari 40

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
pertama

dari

jenis

m-file

ini

adalah

baris

pertama.

Baris

harus mengandung definisi fungsi sehingga MATLAB dapat

menemukan m-files yang dipanggil. M-files tipe ini disebut dengan fungsi mfiles 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 fungsifungsi 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 freefalling 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 freefalling 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
3
4
5
6
7
8
9
10
11

0
0
0
0
0
0
0
0
0
0

4
5
6
7
8
9
10
11
12
13

0
0
0
0
0
0
0
0
0
0

6
7
8
9
10
11
12
13
14
15

0
0
0
0
0
0
0
0
0
0

8
9
10
11
12
13
14
15
16
17

0
0
0
0
0
0
0
0
0
0

10
11
12
13
14
15
16
17
18
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 IFELSEIFELSE 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

pilihan a = 0
a nol
pilihan
a = -3
a bukan nol atau satu
pilihan a = 4
a bukan nol atau satu

jj

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.04
[
0.54
0.35

0.18
0.24
0.42
0.16

0.15
0.10
0.54
0.21

0.24 1
10.5
0.65 1
17.5
][ ] = [
]
0.10 2
28.0
0.01 2
14.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

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

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

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

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
Kesetaraan Hidrogen
Kesetaraan Oksigen
Kesetaraan Nitrogen

1= +
+ 3 = + 2
+ 2 = + + 2
=

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
0 3
2
2
2 0 0.27 1
0 1 0.25 0
[1.5 0
0
0

1 6
0 12
2 =6
0 0
1] [ ] 0

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.38992 + 0.9783
3.91522 0.27 0.25 + 2.5532 + 2.8482

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,753 72 0.27 0.25 + 0.252

Latihan 3
Selesaikan Persamaan Linear Berikut
1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 = 17
31 + 42 + 63 + 4 + 45 + 76 + 57 + 38 + 29 = 30
51 + 62 + 73 + 84 + 5 + 47 + 58 + 69 = 25
51 + 62 + 23 + 4 + 95 + 86 = 15
1 + 32 + 63 + 84 + 95 + 26 + 87 + 98 + 219 = 70
101 + 22 33 + 54 45 + 56 67 + 88 + 99 = 40
21 62 + 73 34 + 5 96 + 47 8 49 = 34
22 + 43 + 54 95 + 26 27 + 8 + 9 = 61
91 + 52 + 33 + 94 + 36 + 47 + 58 + 69 = 85

Penyelesaian
1. Jadikan semua persaman diatas menjadi bentuk matriks
1

x1

17

x2

30

x3

25

x4

15

21

x5 = 70

10

-3

-4

-6

x6

40

-2

-6

-3

-9

-1

-4

x7

34

-9

-2

x8

61

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
101 + 82 + 53 = 97
61 + 42 + 33 = 55
Lalu susun kedalam bentuk matriks

1 1
[10 8
6 4

1 1
12

5] [ 2 ] = [97]
3 3
55

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 + 22 + 33 + 44 + 55 = 45
1 22 + 33 44 + 65 = 103
91 + 23 + 34 = 29
31 + 52 + 3 + 24 + 105 = 77
41 + 52 + 103 + 34 55 = 44

Penyelesaian
1 + 22 + 33 + 44 + 55 = 45
1 22 + 33 44 + 65 = 103
91 + 23 + 34 = 29
31 + 52 + 3 + 24 + 105 = 77
41 + 52 + 103 + 34 55 = 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
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

Script Gauss.m
Script Gauss.m

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.

Anda mungkin juga menyukai