buku pemrograman komputer
TRANSCRIPT
-
8/10/2019 Buku Pemrograman Komputer
1/242
Adrian Nur
Y.C. Danarto
Bregas Siswahjono T.S.
Paryanto
Jurusan Teknik Kimia Fakultas Teknik
Universitas Sebelas Maret
Surakarta
-
8/10/2019 Buku Pemrograman Komputer
2/242
LEMBAR PENGESAHAN
1. Judul buku ajar : Penyelesaian Numeris dalamTeknik Kimia dengan Matlab
2. Tim Penyusun : Adrian Nur, S.T., M.T.Y.C. Danarto, S.T., M.T.
Bregas Siswahjono T.S., S.T., M.T.
Ir. Paryanto, M.S.
3. Waktu penulisan : 4 ( empat ) bulan.
4. Biaya : Rp. 5.000.000,- ( lima juta rupiah ).
Surakarta, 15 November 2005
Mengetahui,
Ketua Pelaksana Kegiatan SP4 Ketua Tim PenyusunJurusan Teknik Kimia UNS
Fadilah, ST., MT. Adrian Nur, ST., MT.
NIP 132 258 062 NIP 132 282 191
Mengetahui/Menyetujui,Pembantu Rektor I UNS Dekan Fakultas Teknik UNS
Dr. Ravik Karsidi, MS Ir. Sumaryoto, MT.NIP 130 906 766 NIP 131 471 452
-
8/10/2019 Buku Pemrograman Komputer
3/242
Adrian Nur
Y.C. Danarto
Bregas Siswahjono T.S.
Paryanto
Jurusan Teknik Kimia Fakultas Teknik
Universitas Sebelas Maret
Surakarta
-
8/10/2019 Buku Pemrograman Komputer
4/242
Penyelesaian Numeris dalam
Teknik Kimia dengan Matlab
Oleh : Adrian Nur
Y.C.. Danarto
Bregas Siswahjono T.S.
Paryanto
vi + 252 hlm. ; 15,5 x 23 cm
10 9 8 7 6 5 4 3 2 1
Hak Cipta @ 2005 pada penulisDilarang memperbanyak sebagian atau seluruh isi buku ini dalam
bentuk apapun, tanpa izin dari penulis
Edisi PertamaEdisi pertama, Cetakan pertama, November 2005
Jurusan Teknik Kimia Fakultas Teknik
Universitas Sebelas Maret
Surakarta
-
8/10/2019 Buku Pemrograman Komputer
5/242
KATA PENGANTAR
Penggunaan MATLAB dalam penyelesaian persoalan dalam teknik
kimia bukanlah hal yang baru. Namun penggunaan MATLAB tersebut sangatterbatas dan tanpa memperhatikan pengetahuan numeris yang digunakan.
Buku ini menyajikan penggunaan bahasa pemrograman MATLAB
untuk penyelesaian persoalan-persoalan dalam teknik kimia secara numeris. Bab
awal buku berisi pengantar pemrograman dengan menggunakan MATLAB. Bab-
bab selanjutnya diikuti dengan penyelesaian secara numeris berurutan :
persamaan aljabar linier, persamaan aljabar non linier, integral, pencocokan
kurva, optimasi, persamaan differensial ordiner, dan persamaan differensialparsial. Setiap bab berisi tentang metode-metode numeris yang digunakan,
fungsi-fungsi MATLAB, contoh-contoh problem teknik kimia, dan program-
program penyelesaiannya beserta keluaran program.Para mahasiswa sangat diharapkan menambah pengetahuan tentang
pemanfaatan MATLAB dari berbagai buku dan internet yang diantaranya
tercantum dalam daftar pustaka. Kerajinan dan ketekunan yang disertai doaakan membawa keberhasilan.
Terima kasih tak lupa ditujukan kepada istri dan anak-anak tercinta
yang rela kehilangan waktu bersama suami/ayahnya selama penyusunan buku
ini. Buku ini tidak dapat tersusun tanpa bantuan teman-teman sejawat yang
memberikan kritik dan komentar berguna. Segala kritik dan saran untukperbaikan buku ini masih sangat kami harapkan.
Tim Penulis
-
8/10/2019 Buku Pemrograman Komputer
6/242
iv
-
8/10/2019 Buku Pemrograman Komputer
7/242
DAFTAR ISI
Kata Pengantar iii
Daftar Isi v
I. PENGANTAR PEMOGRAMAN MATLAB 1
1.1. Fungsi Umum Matlab 2
1.2. Tipe Data 91.3. M-File 16
II. PERSAMAAN ALJABAR LINIER 23
2.1. Metode Eliminasi Gauss 23
2.2. Metode Inversi Matriks 31
2.3. Metode Dekomposisi LU 36
III. PERSAMAAN ALJABAR NON LINIER 43
3.1. Metode Bagidua (Bisection) 43
3.2. Metode Newton-Raphson 48
3.3. Fungsi fzero 52
IV. INTEGRAL NUMERIS 75
4.1. Aturan Trapesium 764.2. Aturan Simpson 80
4.3. Kuadratur Gauss 85
-
8/10/2019 Buku Pemrograman Komputer
8/242
vi
V. PENCOCOKAN KURVA 99
5.1. Regresi Kuadrat Terkecil 100
5.1.1. Regresi Linier 1015.1.2. Regresi Polinomial 112
5.1.3. Regresi Multivariabel 119
5.2. Interpolasi 121
5.2.1. Interpolasi Satu Dimensi 1225.2.2. Interpolasi Spline 1275.2.3. Interpolasi Dua Dimensi 131
VI. OPTIMASI 133
6.1. Pemograman Linier 1336.2. Metode Golden Section 136
6.3. Optimasi Multivariabel 146
VII. PERSAMAAN DIFFERENSIAL ORDINER 169
7.1. Masalah Harga Awal 170
7.1.1. Metode Euler 1707.1.2. Metode Runge-Kutta 173
7.1.3. Metode Prediktor-Korektor 174
7.1.4. Fungsi ode 1767.2. Masalah Harga Batas 206
7.2.1. Metode Shooting 207
7.2.2. Metode Beda Hingga (finite difference) 212
VIII. PERSAMAAN DIFFERENSIAL PARSIAL 227
8.1. Persamaan Differensial Eliptik 228
8.1.1. Persamaan Laplace 228
8.1.2. Persamaan Poisson 236
8.2. Persamaan Differensial Parabolik 2378.2.1. Metode Eksplisit 237
8.2.2. Metode Implisit 247
Daftar Pustaka 251
-
8/10/2019 Buku Pemrograman Komputer
9/242
-
8/10/2019 Buku Pemrograman Komputer
10/242
-
8/10/2019 Buku Pemrograman Komputer
11/242
3
MATLAB Command Window/Editor merupakan jendela yang dibuka
pertama kali setiap kali MATLAB dijalankan.
Pada jendela ini dapat dilakukan akses-akses ke perintah-perintah
MATLAB dengan mengetikkan ekspresi MATLAB, seperti mengakses help
window, helpdesk, demo, dan lain-lainnya.
Jika variabel-variabel dan perintah-perintah pada layar command
window yang sedang aktif akan disimpan, maka dapat dilakukan dengan
menggunakan perintah diary. Sebagai contoh, jika ingin menyimpan output
m =1 2 34 5 6
di direktori c:\coba dengan nama file data1.txt, maka dapat dilakukan dengan
mengetik :
m=[1 2 3;4 5 6]m =
1 2 34 5 6
diary 'c:\coba\data1.txt'
Apapun yang tertulis di command window setelah perintah ini akan disimpan
sampai kita menutup file ini dengan mengetikkan :
diary off
Command Windows juga digunakan untuk memanggil tool MATLAB
seperti editor, debugger, atau fungsi. Window ini dicirikan dengan adanya
prompt (>>) yang menyatakan MATLAB siap menerima perintah. Perintah dapat
berupa fungsi-fungsi pengaturan file (seperti perintah DOS/UNIX) maupun
fungsi-fungsi bawaan (toolbox) MATLAB. Berikut ini beberapa fungsi
pengaturan file dalam MATLAB:
dir atau ls: digunakan untuk mehhat isi dari sebuah direktori aktif.
cd : digunakan untuk melakukan perpindahan dari direktori aktif
ke direktori lainnya.
pwd : digunakan untuk melihat direktori yang sedang aktif.
-
8/10/2019 Buku Pemrograman Komputer
12/242
4
mkdir : digunakan untuk membuat sebuah direktori.
what : digunakan untuk melihat nama m-file (yang akan dibahas ke-
mudian) dalam direktori aktif.
who : digunakan untuk mehhat variabel yang sedang aktif.
whos : digunakan untuk menampilkan nama setiap variabel yang
sedang aktif.
delete : digunakan untuk menghapus file.
clear : digunakan untuk menghapus variabel.
clc : digunakan untuk membersihkan layar.
doc : digunakan untuk melihat dokumentasi The MathWorks, Inc.
dalam format ht ml secara online.
demo : digunakan untuk menampilkan demo yang disediakan oleh
MATLAB.
b. MATLAB Editor/Debugger (Editor M-File/Pencarian. Kesalahan)
Jendela ini merupakan toolyang disediakan oleh MATLAB versi. 5 ke
atas yang berfungsi sebagai editor script MATLAB (M-File). Walaupun
sebenarnya script ini dalam pernrograman MATLAB dapat saja menggunakan
editor lain seperti Notepad, Wordpad, bahkan Word. Untuk mengakses window
M-File ini dapat dilakukan dengan cara:
1. Memilih File kemudian pilih New,
2. Pilih M-File, maka MATLAB akan menampilkan editor window.
Selain cara di atas, untuk menampilkan editor M-File ini dapat juga
dilakukan dengan mengetik: >> edit
c. Figure Windows (Jendela gambar)
Window ini adalah hasil visualisasi script MATLAB. Namun
MATLAB memberi kemudahan bagi pemrogram untuk mengedit window ini
sekaligus memberikan program khusus untuk itu sehingga window ini selain
berfungsi sebagai visualisasi output dapat juga sekaligus menjadi media input
yang interaktif.
-
8/10/2019 Buku Pemrograman Komputer
13/242
5
Coba anda ketikkan script berikut ini pada command window dan
perhatikan hasilnya tergambar padafigure window.
x=0:2:360; y=sin(x*pi/180); plot(x,y)
d. MATLAB Help Window
MATLAB menyediakan sistem help yang dapat diakses dengan
perintah help. Misalnya, untuk mernperoleh informasi mengenai fungsi sin, coba
anda ketikkan
help sin
dan kernudian menekan enter. Di layar akan muncul informasi dalam bentuk teks
pada layar MATLAB yaitu:
SIN Sine.SIN(X) is the sine of the elements of X.
Overloaded methodshelp sym/sin.m
Untuk mengetahui penggunaan perintah plot, cobalah ketikkan:
help plot
Selain helpdalam bentuk seperti di atas, MATLAB juga menyediakan
demonstrasi kemampuan MATLAB dengan mengetikkan
demo
Untuk memperoleh informasi tentang konsep-konsep dasar bahasa
MATLAB, dapat dilakukan dengan perintah
intro
Bentuk helpyang lain adalahHelp Windowyaitu dengan mengetikkan
helpwinInformasi selengkapnya dapat diperoleh dengan mengklik dua kali salah satu
baris yang ada di MATLABHelp Window atau dapat juga dengan mengetikkan
informasi yang diinginkan pada kotak di sebelah kiri atas MATLAB Help
Window.
Help yang lain lagi adalah dalam bentuk Help Desk. Anda bisa
mencoba sendiri menampilkanHelp Deskdengan mengetikkan perintah
helpdesk
dan anda akan dapatkan berbagai kemudahan dalam memperoleh informasi yang
diinginkan.
-
8/10/2019 Buku Pemrograman Komputer
14/242
-
8/10/2019 Buku Pemrograman Komputer
15/242
7
help elfun
MENYIMPAN DAN MEMANGGIL DATA
Untuk menyimpan data gunakan menu File lalu pilih Save Workspace
As. Untuk memanggil data gunakan pilihan Load WorkSpace As atau Open pada
menu File. Sedangkan untuk import data, pada MATLAB versi 6 ke atas pilih
Import Data. MATLAB juga menyediakan dua perintah - save dan load - yang
jauh lebih fleksibel. Perintah save digunakan untuk menyimpan satu atau lebih
variabel dalam file format sesuai dengan yang diinginkan.
Contoh:
clear all
x=1:10; y=10:10:10:100; % membuat array baru
save
menyimpan semua varlabel MATLAB dalam format biner di file MATLAB.mat
save data
menyimpan semua variabel MATLAB dalam format biner di file data.mat
save data x
menyimpan variabel x dalam format biner di file data.mat
save data x y /ascii
menyimpan variabel x dan y dalam format biner di file data dalam format ASCII.
Untuk membuka data gunakan perintah load.
Contoh:
load data.mat
OPERATOR LOGIKA DAN RELASIONAL
MATLAB menyediakan operasi logika dan relasional, hal ini
diperlukan untuk menjawab pertanyaan benar atau salah. Salah satu manfaat
yang penting dari kemampuan ini adalah untuk mengontrolurutan eksekusi
sederetan perintah MATLAB (biasanya dalam M-File) berdasarkan hasil
pertanyaan benar/salah.
Sebagai masukan pada sernua ekspresi relasi dan logika, MATLAB
menganggap sernua angka tidak nol sebagai benar dan nol sebagai salah. Hasil
-
8/10/2019 Buku Pemrograman Komputer
16/242
8
sernua ekspresi relasi dan logika adalah satu untuk benar dan nol untuk salah
dengan tipe array logika, yaitu hasilnya mernuat bilangan 1 dan 0 yang tidak saja
dapat digunakan untuk statemen matematika akan tetapi dapat juga digunakan
untuk pengalamatan.
Operator relasi MATLAB menunjukkan perbandingan:
OPERATOR
RELASIDISKRIPSI
< Kurang dari
> Lebih dari
= Lebih dari atau sama dengan
= Sama dengan
~= Tidak sama dengan
Operator relasi MATLAB dapat digunakan untuk membandingkan dua array
yang berukuran sama atau untuk membandingkan array dengan skalar.
Operator logika menyediakan cara imtuk menggabung atau menegasi ekspresi
relasi.
Operator-operator logika dalam MATLAB adalah:
OPERATOR
LOGIKADISKRIPSI
& AND
| OR
~ NOT
Untuk lebih jelasnya anda bisa mengetikkan :
help +
kemudian tekan enter.
SUMBER-SUMBER INFORMASI MATLAB DI INTERNET
Untuk lebih mendalami MATLAB, di bawah ini terdapat beberapa situs
yang bisa dimanfaatkan.
-
8/10/2019 Buku Pemrograman Komputer
17/242
9
1. http://www.mathworks.com/ pada situs ini bisa didapatkan informasi
tentang produk baru MATLAB seperti buku dan lain-lainnya.
2. Newsgroup MATLAB:
news://salukinews.siu.edu/comp.softsys.MATLAB/
3. http://dir.yahoo.com/science/mathematics/software/matlab/
merupakan sumber informasi tentang MATLAB dan langkah awal untuk
memperoleh website MATLAB lainnya.
4. http://www.cse.uiuc.edu/cse301/matlab.html situs ini merupakan situs
University of Illinois di Champaign-Urbana yang menyediakan beberapa link
untuk MATLAB di Internet
5. http://www.eece.maine.edu/mm
1.2. TIPE DATA
MATLAB mengenal 3 tipe data yaitu string, skalar, dan matriks.
merupakan matriks yang hanya memiliki satu baris. MATLAB juga memiliki
banyak fungsi bawaan (build in) untuk memanipulasi tipe data tersebut. Berikut
ini merupakan beberapa contoh yang menjelaskan ketiga tipe data di atas.
String
String dalam MATLAB adalah tipe data yang terdiri dari huruf-huruf
dan/atau nilai-nilai ASCII yang ditampilkan representasinya. String adalah teks
yang diawali dan diakhiri dengan tanda (......).
Contoh:
g='selamat datang'g =selamat datang size(g)ans =
1 14 whosName Size Bytes Classans 1x2 16 double arrayg 1x14 28 char array
Grand total is 16 elements using 44 bytes
-
8/10/2019 Buku Pemrograman Komputer
18/242
10
Setiap karakter dalam suatu string adalah satu elernen dalam array, dengan setiap
elemennya berukuran 2 byte.
Untuk melihat representasi ASCII karakter string dapat dilakukan
dengan operasi aritmetik terhadap string atau mengkonversikannya
menggunakan fungsi double.
Contoh:
double(g)ans =Columns 1 through 12115 101 108 97 109 97 116 32 100 97 116
97Columns 13 through 14110 103
abs(g)ans =Columns 1 through 12115 101 108 97 109 97 116 32 100 97 116
97Columns 13 through 14110 103
Fungsi charuntuk menampilkan karakter dengan nilai ASCII tertentu char(115)ans =s
Karena string merupakan array numerik dengan atribut khusus, string dapat
dimanipulasi menggunakan sernua metode manipulasi array yang tersedia, dalam
MATLAB.
t=g(1:5)t =selamKata selam dapat dibalik dengan cara:
t=g(5:-1:1)t =males
Angka -1 ditengah menunjukkan perhitungan mundur dari 5 sampai 1.
Untuk menampilkan dalam format kolom gunakan operator transpose ()
t=g(1:5)'t =selam
-
8/10/2019 Buku Pemrograman Komputer
19/242
11
Fungsi-fungsi string yang lain adalah:
Fungsi input
nama=input('Nama :','s')Nama : jojonnama =jojon
Fungsi disp
Fungsi disp memungkinkan untuk menampilkan string tanpa
menampilkan nama variabelnya.
disp(nama)jojon
atau
disp('jojon')
jojon
Syarat menggunakan dispadalah variabelnya harus berupa strings, jadi
jika ingin menampilkan sebuah angka, terlebih dahulu. merubahnya ke dalam
bentuk strings dengan menggunakan fungsi num2stro. Fungsi num2stro
menghasilkan string, meskipun terlihat seperti angka (skalar). Perhatikan contoh
berikut.
c=234c =
234 h=num2str(c)h =234 double(h)ans =
50 51 52 h+2ans =
52 53 54
Jelas bahwa h+2 bukan 236, karena h mewakili nilai ASCII dari string 2, 3 dan 4
yaitu masing-masing 50, 51 dan 52
Skalar
Skalar adalah sebuah bilangan tunggal yang secara matriks berukuran
1x1. Operasi skalar merupakan dasar matematika. Kalkulator biasa melakukan
perhitungan skalar. Tentu saja MATLAB bisa melakukan dengan lebih baik.
-
8/10/2019 Buku Pemrograman Komputer
20/242
-
8/10/2019 Buku Pemrograman Komputer
21/242
13
atau
x=linspace(0,pi,11)
Fungsi linspacedidefinisikan sebagai :
linspace(nilai_pertama, nilai_akhir, jumlah_elemen)
Dalam MATLAB elemen-elemen array diakses menggunakan subcript;
misaInya x(1) adalah elemen pertama x, x(2) adalah elemen kedua x, dan
seterusnya.
Tabel berikut menunjukkan operasi-operasi array dasar.
Data ilustrasi: a=[a1 a2 ... an], b=[b1 b2 ... bn], c=
Penambahan skalar a+c=[ a1+c a2+c . . . an+c]
Perkalian skalar a*c=[ a1*c a2*c . . . an*c]
Penambahan array a+b=[ a1+b1 a2+b2 . . . an+bn]
Perkalian array a. *b=[ a1*b1 a2+b2 . . . an+bn]
Pembagian kanan array a. / b=[ a1/ b1 a2/ b2 . . . an/ bn]
Pembagian kiri array a. \ b=[ a1/ b1 a2/ b2 . . . an/ bn]
Pemangkatan array a. c=[ a1 c a2 c . . . an c]
c. a=[ c a1 c a2 . . . c an]
a. b=[ a1 b1 a2 b2 . . . an bn]
Matriks
Matriks merupakan bentuk utama MATLAB. Seperti haInya array,
matriks juga didefenisikan elemen demi elemen. Untuk memahami operasi
matriks dasar, perhatikan contoh-contoh berikut ini.
a=[1 2 3] %penentuan matriks aa =
1 2 3 b=[1 2 1; 3 2 1; 2 1 3] %penentuan matriks bb =
1 2 13 2 12 1 3
-
8/10/2019 Buku Pemrograman Komputer
22/242
-
8/10/2019 Buku Pemrograman Komputer
23/242
-
8/10/2019 Buku Pemrograman Komputer
24/242
-
8/10/2019 Buku Pemrograman Komputer
25/242
-
8/10/2019 Buku Pemrograman Komputer
26/242
18
melibatkan pemanggilan ke fungsi M-File yang lain, fungsi M-File yang
dipanggil itu juga akan dikompilasi ke dalam memori.
3. Sembilan baris komentar yang pertama merupakan teks help yang
ditampilkan. Jika anda meminta help, misalnya
>>help fhitung
menampilkan 9 baris komentar pertama fungsi fhitung. Baris komentar yang
paling atas disebut baris H1, merupakan baris yang dicari oleh perintah
lookfor.
4. Setiap fungsi memiliki ruang kerja sendiri yang berbeda dengan ruang kerja
MATLAB. Satu-satunya hubungan antara ruang kerja MATLAB dengan
variabel-variabel dalam fungsi adalah variabel-variabel input dan output
fungsi. Jika suatu fungsi mengubah nilai dalam bentuk suatu variabel input,
perubahan itu hanya tampak dalam fungsi dan tidak mempengaruhi ruang
kerja MATLAB.
5. Jika suatu fungsi dipanggil, jumlah argument input dan output yang
digunakan hanya terdapat dalam fungsi tersebut.
6. Fungsi dapat berbagi variabel dengan fungsi lain, ruang ke.ja MATLAB,
dan pemanggilan rekursi untuk dirinya sendiri jika variabelnya
dideklarasikan sebagal variabel global.
7. Fungsi M-File berhenti dieksekusi dan kernbali ke prompt jika telah
mencapal akhir M-File atau jika menemui perintah return. Perintah return
merupakan cara sederhana untuk menghentikan fungsi sebelum mencapai
akhir M-File.
8. Fungsi M-File dapat mernuat lebih dari sebuah fungsi.
Jika perintah MATLAB tidak diakhiri dengan titik koma, hasil perintah
serta nama variabelnya akan ditampilkan kembali dalam command window.
Supaya tampilannya lebih bagus, untuk menampilkan nama variabel digunakan
perintah disp. Perintah echo onmembuat perintah-perintah yang dibuat di M-
File akan ditampilkan kembali di command window, sedangkan echo off
-
8/10/2019 Buku Pemrograman Komputer
27/242
19
berfungsi sebaliknya. Perintah inputmemungkinkan untuk meminta input dari
pemakai saat M-File dijalankan.
Secara umum fungsi M-File didefinisikan menggunakan command
function. Sintaks standar untuk command function adalah:
function[output1,output2,...]=NamaFunction(inputl,input2,..)
Untuk memberi keterangan mengenai maksud dan tujuan M-File yang
kita buat, agar orang lain juga paham dengan M-File tersebut, perlu adanya suatu
keterangan (help) dan untuk membuatnya dapat dilakukan dengan menggunakan
command % dari MATLAB.
Contoh 12
function [x,y]=gerak_parabola(sudut,V0,g,t);%[x,y]=gerak_parabola(sudut,V0,g,t)%Menghitung jarak (x, m) dan tinggi (y, m)%sebagai fungsi sudut lemparan (dalam radian),%kecepatan awal (V0, m/detik),%percepatan gravitasi (g, m/detik^2)%dan waktu (t, detik)x=V0*cos(sudut)*t;
y=V0*sin(sudut)*t-g/2*t.^2;
Jika kita menginginkan keterangan tentang M-file tersebut, kita ketikkan pada
Command Window:
help gerak_parabola
Setelah ditekan enter muncul:
[x,y]=gerak_parabola(sudut,V0,g,t)Menghitung jarak (x, m) dan tinggi (y, m)sebagai fungsi sudut lemparan (dalam radian),kecepatan awal (V0, m/detik),percepatan gravitasi (g, m/detik^2)dan waktu (t, detik)
Menjalankan M-File
Untuk memanggil atau mengeksekusi M File, yang perlu dilakukan
adalah dengan memindahkan path search dari MATLAB compiler. Pada
dasarnya, proses eksekusi compilerMATLAB adalah dengan mencan command
atau definisi operator yang ada dan mengeksekusi definisi scriptatau operator
pertama yang ditulis dan ditemui direktori MATLAB (di direkton bin atau
toolbox).
-
8/10/2019 Buku Pemrograman Komputer
28/242
20
Set Path dapat dilakukan dengan cara membuka menu pull down di
MATLAB command editor, pilih File kemudian pilih Set Path. Dari menu
tersebut arahkan current directoryke direktori tempat di mana disimpan script
yang ingin dieksekusi dengan cara mengetikkan atau browsing directory ke
tempat penyimpanan scriptyang akan dieksekusi.
Ada beberapa cara menjalankan fungsi M-File. Misalkan fungsi
gerak_parabola (contoh 12) dapat dijalankan dengan cara, antara lain:
[jarak,tinggi]=gerak_parabola(pi/4,40,9.8,1)x =
28.2843y =
23.3843
atau bisa juga variabel waktunya bertipe array
[jarak,tinggi]=gerak_parabola(pi/4,40,9.8,[1:3])jarak =
28.2843 56.5685 84.8528tinggi =23.3843 36.9685 40.7528
Hal ini dimungkinkan karena kita menggunakan operator pemangkatan dengan
dot (titik)
y=V0*sin(sudut)*t-g/2*t.^2;
Bukan
y=V0*sin(sudut)*t-g/2*t^2;
atau dengan perintah feval
[x,y]=feval('gerak_parabola',pi/4,40,9.8,1)
x =28.2843
y =23.3843
Bentuk umum perintah fevaladalah
feval('namafungsi', input1,input2,...)
Perlu diketahui, MATLAB juga mempunyai command inline yang
digunakan untuk mendefinisikan atau menuliskan suatu fungsi pada command
window.
-
8/10/2019 Buku Pemrograman Komputer
29/242
21
Contoh 13
g=inline('6-x 2')g =
Inline function:g(x) = 6-x^2
g(2)
ans =2
Contoh 14
radius=inline('sqrt(x^2+y 2)','x','y')radius =
Inline function:radius(x,y) = sqrt(x^2+y^2)
radius(2,3)ans =
3.6056
-
8/10/2019 Buku Pemrograman Komputer
30/242
2PERSAMAAN ALJABAR
LINIER
Persamaan umum persamaan aljabar linier simultan adalah:
a11x1+ a12x2+ . . . + a1nxn= b1
a21x1+ a22x2+ . . . + a2nxn= b2
.
.
.
an1x1+ an2x2+ . . . + annxn= bn
dengan a adalah koefisien konstanta dan b adalah konstanta.
2.1. METODE ELIMINASI GAUSS
Teknik yang dilakukan dalam metode ini meliputi kombinasi persamaan
agar mengeliminasi yang tidak diketahui dan solusi melalui substitusi balik.
Langkah-langkah penyelesaian dengan eliminasi Gauss secara umum adalah :
-
8/10/2019 Buku Pemrograman Komputer
31/242
24
3
2
1
333231
232221
131211
b
b
b
|
|
|
aaa
aaa
aaa
''3
'
2
1
''33
'
23
'
22
131211
b
b
b
|
|
|
a
aa
aaa
''33
''3
3a
bx = ,
( )'22
3'23
'2
2a
xabx
= ,
( )11
31321211
a
xaxabx
= .
Persamaan dasar
a11x1+ a12x2+ a13x3= b1 .... (2.1)
a21x1+ a22x2+ a23x3= b2 .... (2.2)
a31x1+ a32x2+ a33x3= b3 .... (2.3)
Normalisasi pers. (2.1) dengan cara membagi a11
x1+11a
1a12x2+
11a
1a13x3=
11a
1b1 .... (2.4)
Eliminasi a21pers. (2.2) dengan cara :
[Pers.(2.2) - a21 x Pers.(2.4)]
=
+
1
11
212313
11
2123212
11
2122 b
a
abxa
a
aaxa
a
aa
'23
'232
'22 bxaxa =+ .... (2.5)
Eliminasi a31pers. (2.3) dengan cara :
[Pers.(2.3) - a31x Pers.(2.4)]
=
+
1
11
313313
11
3133212
11
3132 b
a
abxa
a
aaxa
a
aa
-
8/10/2019 Buku Pemrograman Komputer
32/242
-
8/10/2019 Buku Pemrograman Komputer
33/242
26
% Eliminasi Gaussfor k=1:n
for i=k+1:nm(i,k)=A(i,k)/A(k,k);for j=k:n
A(i,j)=A(i,j)-m(i,k)*A(k,j);endB(i)=B(i)-m(i,k)*B(k);
endend
% Substitusi Balikx(n)=B(n)/A(n,n);for i=n-1:-1:1
sum=B(i);for k=i+1:n
sum=sum-A(i,k)*x(k);endx(i)=sum/A(i,i);
end
Contoh 2.1. Campuran Batubara
Unit utilitas penyediaan energi membutuhkan batubara dengan kadar sulfur 0,61
%, phospor 0,043 % dan abu 1,8 %. Ada 4 tipe batubara yang tersedia dengan
komposisi yang dapat dilihat di tabel. Tentukan campuran ke empat tipe batubara
tersebut !
Tipe % S % P % abu
1 0,2 0,05 2
2 1,0 0,06 3
3 0,5 0,03 1
4 0,7 0,03 1
Basis untuk 1 kg batubara campuranx1 + x2 + x3 + x4 = 1
0,2x1 + x2 + 0,5x3 + 0,7x4 = 0,61
0,05x1 + 0,06x2 + 0,03x3 + 0,03x4 = 0,043
2x1 + 3x2 + x3 + x4 = 1,8
Proses penskalaan
x1 + x2 + x3 + x4 = 1
2x1 + 10x2 + 5x3 + 7x4 = 6,1
5x1 + 6x2 + 3x3 + 3x4 = 4,3
-
8/10/2019 Buku Pemrograman Komputer
34/242
27
2x1 + 3x2 + x3 + x4 = 1,8
Program penyelesaian dengan eliminasi Gauss
% Campuran Batubara% Hasil Penyusunan Persamaan Aljabar Linier% x1 + x2 + x3 + x4 = 1
% 2x1 + 10x2 + 5x3 + 7x4 = 6.1% 5x1 + 6x2 + 3x3 + 3x4 = 4.3% 2x1 + 3x2 + x3 + x4 = 1.8% Penyelesaian dilakukan dengan Eliminasi Gauss%% --------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% ********************************************************
clear allclc
% Penyusunan Matriks AA = [1 1 1 1
2 10 5 75 6 3 32 3 1 1];
% Penyusunan Matriks BB = [1 6.1 4.3 1.8]';
n = 4; % Orde matriks
x = elimgauss(A,B,n);
disp(' ')disp('Fraksi masing-masing type batubara')disp('----------------------------------')x1 = x(1)x2 = x(2)x3 = x(3)x4 = x(4)
Keluaran program
Fraksi masing-masing type batubara----------------------------------x1 =
0.2000x2 =
0.3000x3 =
0.4000x4 =
0.1000
Sehingga batubara type 1 = 20 %
type 2 = 30 %
type 3 = 40 %
type 4 = 10 %
-
8/10/2019 Buku Pemrograman Komputer
35/242
28
Contoh 2.2. Komposisi Fraksi Mol Senyawa Hidrokarbon
Tiga senyawa hidrokarbon berada dalam suatu tabung, dengan tekanan 2 atm dan
berada dalam keadaan kesetimbangan fase cair-gas. Hitunglah komposisi fraksi
mol cairan ketiga gas tersebut, dengan data-data dan rumus di bawah ini.
xi= 1 (2.2.1)
yi= 1 (2.2.2)
yiPT= xiPio (2.2.3)
H1 x1+ H2 x2+ H3 x3= H (2.2.4)
dengan xi = fraksi mol cairan komponen i
yi = fraksi mol gas komponen i
Pio= tekanan uap murni komponen i
PT= tekanan total
Hi = panas pencampuran komponen iH = panas pencampuran total
Data-data P10= 5/2 atm, P2
0= 5/3 atm, P30= 5/4 atm
H1= 20 kcal, H2= 30 kcal, H3= 55 kcal
PT= 2 atm, H = 30 kcal
Susunlah menjadi persamaan aljabar linier terlebih dahulu dan selesaikan!
Penyelesaian :
Persamaan (2.2.1)
x1+ x2+ x3= 1
Substitusi persamaan (2.2.3) ke persamaan (2.2.2)
T
O1
P
Px1 +
T
O2
P
Px2 +
T
O3
P
Px3= 1
5/4 x1+ 5/6 x2+ 5/8 x3=1
30 x1+ 20 x2+ 15 x1= 24 (2.2.5)
Persamaan (2.2.4)
20 x1+ 30 x2+ 55 x3= 30 (2.2.6)
Persamaan aljabar simultan
-
8/10/2019 Buku Pemrograman Komputer
36/242
29
x1+ x2+ x3= 1 (2.2.1)
30 x1+ 20 x2+ 15 x1= 24 (2.2.5)
20 x1+ 30 x2+ 55 x3= 30 (2.2.6)
Selanjutnya diselesaikan dengan Matlab
% Komposisi Fraksi Mol Senyawa Hidrokarbon% Tekanan uap murni komponen 5/2 atm, 5/3 atm, 5/4 atm% Entaphi panas pencampuran 20 kcal, 30 kcal, 55 kcal% Tekanan total = 2 atm;% Entalphi total 30 kcal;% Penyelesaian dilakukan dengan Eliminasi Gauss%% ---------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% ***************************************************************
clear allclc
% Data-dataP = [5/2 5/3 5/4]; % atm
H = [20 30 55]; % kcalPt = 2; % atmHt = 30; % kcal
% Penyusunan Matriks AA = [1 1 1
P(1)/Pt P(2)/Pt P(3)/PtH(1) H(2) H(3)];
% Penyusunan Matriks BB = [1 1 Ht]';
n = 3; % Orde matriks
x = elimgauss(A,B,n);
disp(' ')disp('Fraksi Mol masing-masing komponen')disp('---------------------------------')
x1 = x(1)x2 = x(2)x3 = x(3)
Keluaran program tersebut adalahFraksi Mol masing-masing komponen---------------------------------x1 =
0.5000x2 =
0.3000x3 =
0.2000
-
8/10/2019 Buku Pemrograman Komputer
37/242
30
2.2. METODE INVERSI MATRIKS
Persamaan umum persamaan aljabar linier simultan dapat dituliskan dalam
bentuk matriks sebagai berikut
nn3n2n1n
n3333231
n2232221
n1131211
a...aaa
.
a...aaa
a...aaa
a...aaa
n
3
2
1
x
.
x
x
x
=
n
3
2
1
b
.
b
b
b
. (2.9)
A x = B
Suatu matriks jika dikalikan dengan matriks identitas maka akan dihasilkan
matriks itu sendiri. Matriks identitasadalah matriks bujursangkar yang terdiri
dari bilangan 0 pada setiap elemennya kecuali pada diagonal matriks yangmempunyai bilangan 1.
Contoh matriks identitas 3 x 3
100
010
001
= I
Jika matriks identitas tersebut dikalikan dengan matriks lain maka akan
dihasilkan matriks itu sendiri. Contohnya jika matriks tersebut dikalikan dengan
B yaitu suatu matriks yang berukuran 1 x 3.
100
010
001
3
2
1
b
b
b
=
3
2
1
b
b
b
I B = B
Inversi matriks A adalah jika inversi matriks A tersebut dikalikan dengan A
maka akan diperoleh matriks identitas.
A-1
A = I
Penyelesaian persamaan linier simultan dengan inversi matriks adalah
-
8/10/2019 Buku Pemrograman Komputer
38/242
31
A x = B
A-1
A x = A-1
B
I x = A-1
B
x = A-1
B (2.10)
Inversi matriks A ukuran 2 x 2
2221
1211aaaa dapat ditentukan dengan cara
A-1=
1121
1222
21122211 aa
aa
aaaa
1
Matlab dengan mudah dapat menentukan inversi suatu matriks dengan
menggunakan fungsi inv.
Contoh 2.3. Konstanta Kecepatan Reaksi Phase Gas Nitrit Oksida dengan
Oksigen
Data konstanta kecepatan reaksi phase gas nitrit oksida dengan oksigen
T, K 10-9
k , cc/ (mol det)
300 7,1
413 4,0
564 2,8
Jika k sesuai dengan persamaan k = A Tmexp (-E/T)
Tentukan A, m, dan E
Penyelesaian
k = A Tmexp (-E/T)
ln k = ln A + m ln T E/T
Dari data-data di atas
22,68336 = ln A + 5,70378 m 0,00333 E
22,10956 = ln A + 6,02345 m 0,00242 E
21,75289 = ln A + 6,33505 m 0,00177 E
untuk ln A = x1
m = x2
-
8/10/2019 Buku Pemrograman Komputer
39/242
32
E = x3
x1+ 5,70378 x2 0,00333 x3= 22,68336
x1+ 6,02345 x2 0,00242 x3= 22,10956
x1+ 6,33505 x2 0,00177 x3= 21,75289
Dalam bentuk matriks
=
75289,21
10956,22
68336,22
x
x
x
00177,033505,61
00242,002345,61
00333,070378,51
3
2
1
Program penyelesaian dengan Matlab
% Konstanta Kecepatan Reaksi Phase Gas Nitrit Oksida dg Oksigen% k = A T^m exp(-E/T)% ln k = ln A + m ln T + (-E)/T% Penyelesaian dilakukan dengan Inversi Matriks%
% -------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% *************************************************************
clear allclc
% Data-dataT = [ 300 413 564]; % Kk = [ 7.1 4.0 2.8]*10^9; % cc/(mol.det)
% Penyusunan Matriks AAAA = [ 1 log(T(1)) 1/T(1)
1 log(T(2)) 1/T(2)1 log(T(3)) 1/T(3)];
% Penyusunan Matriks BB
BB = log(k);
CC = inv(AA)*BB';
disp(' ')disp('Parameter konstanta kecepatan reaksi')disp('------------------------------------')A = exp(CC(1))m = CC(2)E = -CC(3)
Keluaran program di atas adalah
Parameter konstata kecepatan reaksi-----------------------------------
-
8/10/2019 Buku Pemrograman Komputer
40/242
33
A =1.3509e+007
m =0.6064
E =-841.6950
sehingga persamaan konstanta kecepatan reaksinya adalah
k = 1,3509.107T0,6064exp(841,6950/T)
Contoh 2.4. Parameter Transfer Massa
Hubungan parameter-parameter transfer massa dapat dinyatakan sebagai
kelompok tak berdimensi (KTD) sebagai berikut:
3K
e
2KSp
1e
pf
D
VdK
D
dak
=
Sh = K1 (Re)K2(Sc)K3
Tentukan K1, K2, dan K3dengan data-data berikut:Sh
(Sherwood)
Re
(Reynold)
Sc
(Schmidt)
1 43,7 10800 0,6
2 21,5 5290 0,6
3 24,2 3120 1,8
Penyelesaian
Sh = K1(Re)K2(Sc)K3
log (Sh) = log (K1) + K2log (Re) + K3log (Sc)
Dari tabel-tabel di atas, diperoleh
1,64048 = x1+ 4,03342 x2 0,22185 x3
1,33244 = x1+ 3,72346 x2 0,22185 x3
1,38382 = x1+ 3,49415 x2+ 0,25527 x3
disusun dalam bentuk matriks
-
8/10/2019 Buku Pemrograman Komputer
41/242
34
=
38382,1
33244,1
64048,1
x
x
x
25527,049415,31
22185,072346,31
22185,003342,41
3
2
1
Program Penyelesaian
% Parameter Transfer Massa% Sh=k1*(Re)^k2*(Sc)^k3% log(Sh) = log(k1) + k2*log(Re) + k3*log(Sc)% Penyelesaian dilakukan dengan Inversi Matriks%% ---------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% ***************************************************************
clear allclc
% Data-dataSh = [43.7 21.5 24.2];Re = [10800 5290 3120];Sc = [0.6 0.6 1.8];
% Penyusunan Matriks AA = [1 log10(Re(1)) log10(Sc(1))
1 log10(Re(2)) log10(Sc(2))1 log10(Re(3)) log10(Sc(3))];
% Penyusunan Matriks BB = [log10(Sh(1))
log10(Sh(2))log10(Sh(3))]
k = A\B;disp(' ')disp('Konstanta Parameter Transfer Massa ')disp('-----------------------------------')k1 = 10^k(1)k2 = k(2)k3 = k(3)
Keluaran Program
Konstanta Parameter Transfer Massa-----------------------------------
k1 =0.0058
k2 =0.9938
k3 =0.5853
Persamaan hubungan parameter-parameter transfer massa menjadi :
Sh = 0,0058 (Re)0,9938(Sc)0,5853
-
8/10/2019 Buku Pemrograman Komputer
42/242
35
2.3. METODE DEKOMPOSISI LU
Modifikasi metode eliminasi yang lain adalah metode dekomposisi LU.
Metode ini similar dengan metode eliminasi Gauss. Matriks koefisien konstanta
diubah menjadi 2 matriks lain, yaitu L dan U; dengan L adalah matriks
triangular bawah dengan diagonal 1 dan Uadalah matriks triangular atas.
A = LU (2.11)
Konsep dasar metode dekomposisi LU adalah
A x = b
L U x = L b*
U x = b* (2.12)
Matriks Adidekomposisi menjadi matriks Ldan U. Matriks Lhasil dekomposisi
Adigunakan untuk mendekomposisikan matriks b, sehingga diperoleh matriks
b*. Jika matriks U dikalikan dengan matriks x akan diperoleh matriks b*.
Selanjutnya x diperoleh dengan substitusi balik karena U adalah matriks
triangular bawah.
Contoh 2.5. Neraca Massa Steady State pada Kolom Distilasi Bertingkat
Xylena, styrena, toluena, dan benzena dipisahkan dengan kolom distilasi seperti
ditunjukkan pada gambar 2.1.
Tentukan kecepatan alir D1, D2, B1, B2, D, dan B.
-
8/10/2019 Buku Pemrograman Komputer
43/242
36
#1
#2
#3
F = 70 mol/menit
D
B
D2
B2
B1
D1
15 % Xylena
25 % Styrena
40 % Toluena
20 % Benzena
7 % Xylena
4 % Styrena
54 % Toluena
35 % Benzena
18 % Xylena
24 % Styrena
42 % Toluena
16 % Benzena
15 % Xylena
10 % Styrena
54 % Toluena
21 % Benzena
24 % Xylena
65 % Styrena
10 % Toluena
1 % Benzena
Gambar 2.1. Distilasi Bertingkat
Program Matlab% Neraca Massa Steady State pada Kolom Distilasi Bertingkat% Xylena, styrena, toluena, dan benzena% dipisahkan dengan kolom distilasi bertingkat%% Penyelesaian dilakukan dengan Dekomposisi LU%% ---------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% ***************************************************************
clear allclc
-
8/10/2019 Buku Pemrograman Komputer
44/242
37
% Penyusunan Matriks AA = [0.07 0.18 0.15 0.24
0.04 0.24 0.10 0.650.54 0.42 0.54 0.10.35 0.16 0.21 0.01];
% Penyusunan Matriks BB = [0.15*70 0.25*70 0.40*70 0.20*70]';
disp(' ')disp('Penyelesaian untuk D1 B1 D2 B2 adalah : ')
% Dekomposisi Matriks A[L,U] = lu(A);
% Membentuk Matriks B*Bstar = inv(L)*B;
% Menentukan Matriks xX = inv(U)*Bstar
disp('Umpan kolom 2')D1 = X(1);B1 = X(2);D = D1 + B1X_Dx = (A(1,1)*D1+A(1,2)*B1)/DX_Ds = (A(2,1)*D1+A(2,2)*B1)/D
X_Dt = (A(3,1)*D1+A(3,2)*B1)/DX_Db = (A(4,1)*D1+A(4,2)*B1)/D
disp('Umpan kolom 3')D2 = X(3);B2 = X(4);B = D2 + B2X_Dx = (A(1,3)*D2+A(1,4)*B2)/BX_Ds = (A(2,3)*D2+A(2,4)*B2)/BX_Dt = (A(3,3)*D2+A(3,4)*B2)/BX_Db = (A(4,3)*D2+A(4,4)*B2)/B
Keluaran program :
Penyelesaian untuk D1 B1 D2 B2 adalah :
X =
26.250017.50008.7500
17.5000
Umpan kolom 2D =
43.7500X_Dx =
0.1140X_Ds =
0.1200X_Dt =
0.4920X_Db =
0.2740
Umpan kolom 3
-
8/10/2019 Buku Pemrograman Komputer
45/242
38
B =26.2500
X_Dx =0.2100
X_Ds =0.4667
X_Dt =0.2467
X_Db =0.0767
Contoh 2.6. Persamaan Virial
Selain hubungan gas ideal yang telah dikenal, ada banyak persamaan lain yang
menghubungkan volume dan tekanan gas. Salah satunya adalah persamaan virial
PV = a + bP + cP2
Untuk mengevaluasi konstanta-konstanta a, b, dan c, telah dilakukan
percobaan dengan data sebagai berikut :
P (atm) V (L/mol)
1 4
2 9/2
3 16/3
Susunlah data-data di atas menjadi persamaan aljabar linier simultan
dan selesaikan.
Program Matlab
% Persamaan Virial% PV = a + bP + cP^2% Untuk mengevaluasi konstanta-konstanta a, b, dan c,% telah dilakukan percobaan dengan data-data di bawah ini%
% ---------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% ***************************************************************
clear allclc
% Data-dataP = [1 2 3]; % atmV = [4 9/2 16/3]; % L/mol
% Matriks AA = [1 P(1) (P(1))^2
1 P(2) (P(2))^21 P(3) (P(3))^2];
% Matriks BB = [P(1)*V(1)
-
8/10/2019 Buku Pemrograman Komputer
46/242
39
P(2)*V(2)P(3)*V(3)];
C = A\B;
disp(' ')disp('Konstanta persamaan virial adalah : ')disp('------------------------------------')a = C(1)b = C(2)c = C(3)
Keluaran Program
Konstanta persamaan virial adalah :------------------------------------
a =1
b =2
c =1
Contoh 2.7. Persamaan Kecepatan Reaksi
Untuk kecepatan reaksi,= baa CCkr , dengan data ditunjukkan pada
tabel.
Tentukan persamaan kecepatan reaksi tersebut !
Ca Cb r
0,7 0,2 0,4567
0,9 0,3 1,0707
1,6 0,2 2,5917
Penyelesaian dengan Program Matlab
clear allclcecho on% Persamaan Virial% ra=k*(Ca)^a*(Cb)^b% log(ra) = log(k) + a*log(Ca) + b*log(Cb)% Untuk mengevaluasi konstanta-konstanta a, b, dan k,% telah dilakukan percobaan dengan data-data di bawah ini%% ---------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% ***************************************************************echo off
-
8/10/2019 Buku Pemrograman Komputer
47/242
40
% Data-dataCa = [0.7 0.9 1.6];Cb = [0.2 0.3 0.2];ra = [0.4567 1.0707 2.5917];
% Matriks AA = [1 log10(Ca(1)) log10(Cb(1))
1 log10(Ca(2)) log10(Cb(2))1 log10(Ca(3)) log10(Cb(3))];
% Matriks BB = [log10(ra(1))
log10(ra(2))log10(ra(3))];
konst = A\B;disp(' ')disp('Konstanta adalah : ')disp('-------------------')k = 10^konst(1)a = konst(2)b = konst(3)
Keluaran Program
% Persamaan Virial% ra=k*(Ca)^a*(Cb)^b
% log(ra) = log(k) + a*log(Ca) + b*log(Cb)% Untuk mengevaluasi konstanta-konstanta a, b, dan k,% telah dilakukan percobaan dengan data-data di bawah ini%% ---------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% ***************************************************************echo off
Konstanta adalah :-------------------k =
3.4990
a =2.1000
b = 0.7998
-
8/10/2019 Buku Pemrograman Komputer
48/242
3PERSAMAAN ALJABAR
NON LINIER
Suatu penyelesaian persamaan aljabar non linier adalah menentukan nilai
x, sehingga suatu fungsi x, f(x) akan sama dengan nol.
Contoh, f(x) = e-x x, maka yang ingin diketahui adalah berapakah nilai x,
sehingga f(x) = 0.
Secara umum ada 2 metode yang digunakan, yaitu metode akolade dan metode
terbuka.
Metode akolade adalah metode yang menggunakan 2 titik awal tebakan, yang
kedua titik tersebut harus mengapit jawaban yang dimaksud. Termasuk metode
ini adalah metode Bisection (bagi dua).
Berbeda dengan metode akolade, metode terbuka hanya menggunakan satu
tebakan awal. Termasuk metode ini adalah metode Newton-Raphson.
3.1. METODE BISECTION (BAGIDUA)
Pada metode Bisection, mula-mula diperkirakan suatu interval sehingga
akar persamaan yang akan diperoleh berada pada interval tersebut. Selanjutnya
-
8/10/2019 Buku Pemrograman Komputer
49/242
44
dicari nilai f(x) dari kedua titik dan dari titik tengah interval. Dengan
menganalisa nilai f(x) ketiga titik maka kita dapat membuang setengah interval
dalam setiap langkahnya.
Langkah penyelesaian :
1. Tentukan interval perkiraan awal, misalkan antara xAdan xB
2. Hitung f(xA) dan f(xB)
3. Interval yang benar akan menghasilkan f(xA) dan f(xB) pada daerah yang
berbeda (sebelah kanan dan kiri akar persamaan yang dicari)
xA xB
Akar persamaan
Gambar 3.1. Kurva Akar-akar Persamaan
Uji apakah [f(xA)]x[f(xB)] < 0. Jika salah, maka ulangi langkah (1) dan
(2).
4. Hitung xM, yaitu titik tengah interval
xM=2
xx BA + . (3.1)
5. Hitung f(xM)
a. Jika [f(xA)]x[f(xM)] > 0, maka xAbaru = xMdan xBtetap
-
8/10/2019 Buku Pemrograman Komputer
50/242
45
xA xBxM= xA bar u
Gambar 3.2. Penentuan xAdan xBbaru jika [f(xA)]x[f(xM)] > 0
b. Jika [f(xA)]x[f(xM)] < 0, maka xAtetap dan xBbaru = xM
xA xB
xM= xA Baru
Gambar 3.3. Penentuan xAdan xBbaru jika [f(xA)]x[f(xM)] < 0
6. Uji apakah f(xm) < Toleransi. Jika tidak, ulangi langkah (4) untuk
menentukan xmyang baru.
Contoh 3.1. Konversi untuk disosiasi H2O
Uap air didisosiasikan (dipecah) menjadi H2 dan O2 pada tekanan 0,2 atm
sebagai berikut:
H2O H2+ O2
Fraksi molekul (x) dari H2O dapat dinyatakan sebagai berikut:
( ) ( )x2p2
x1
xkp +
=
Jika kp= 0,4568 tentukanlah x yang memenuhi persamaan di atas.
-
8/10/2019 Buku Pemrograman Komputer
51/242
46
Program matlab untuk metode bagidua :
% Persamaan aljabar non linier%% Penyelesaian dilakukan dengan Metode Bagidua (bisection)%% --------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% **************************************************************clcclear all
disp 'Masukkan Perkiraan Batas Bawah dan Batas Atas 'xa=input('batas bawah = ');xb=input('batas atas = ');fa = contoh31(xa);fb = contoh31(xb);
x=[xa:(xb-xa)/50:xb];plot(x,contoh31(x));xlabel('x')ylabel('f(x)')grid on
while fa*fb > 0disp 'Tebakan salah, ganti batas atas dan/atau batas bawah'disp 'Perhatikan grafik!! Perkirakan nilai x untuk f(x)
mendekati nol'xa=input('batas bawah = ');xb=input('batas atas = ');fa=contoh31(xa);fb=contoh31(xb);
endtol=0.000001;
xm=(xa+xb)/2;fm=contoh31(xm);while abs(xa-xb)>tol
xm=(xa+xb)/2;fm=contoh31(xm);if fa*fm H2 + 1/2 O2% x / 2p% kp = ------- / -----% (1 - x) \/ (2 + x)% p = 0,2 atm% kp = 0,4568
% Nama File : contoh31.m% Surakarta, Oktober 2005% ---------------------------------------------------------------
-
8/10/2019 Buku Pemrograman Komputer
52/242
47
p = 0.2; %atmkp = 0.4568;f_x = x./(1-x).*sqrt(2*p./(2+x))-kp;
Dalam memberikan masukan untuk batas bawah dan atas, secara teori nilai
konversi berkisar antara 0 0,99. Untuk x = 1, nilai kpakan tak terdefinisi.
Keluaran program :
Masukkan Perkiraan Batas Bawah dan Batas Atasbatas bawah = 0batas atas = 0.99f(x)=0 untuk x = 0.53487
Contoh 3.2. Faktor Kompresibilitas Gas Ideal
Hubungan faktor kompresibilitas gas ideal dalam bentuk
3
32
y1
yyy1z
+=
dengan y = b/4v, untuk b adalah koreksi van der Waals dan v adalah volum
molar. Jika z = 0,892 berapakah y ?
Penyelesaian dilakukan dengan program bisection yaitu dengan mengganti
fungsi disosiasi H2O dengan fungsi untuk persoalan faktor kompresibilitas gas
ideal.
function f_y = contoh32(y)% Faktor Kompresibilitas Gas Ideal% 1 - y + y^2 - y^3% z = -------------------% 1 - y^3% z = 0,896
% Nama File : contoh32.m% Surakarta, Oktober 2005% --------------------------------------------------------------
z = 0.892;f_y = (1-y+y.^2-y. 3)-z.*(1-y.^3);
Secara umum ada 3 nilai yang memenuhi persamaan di atas karena f(y)
merupakan persamaan orde 3. Tetapi nilai untuk y yang tepat adalah antara 0 1.
Masukkan Perkiraan Batas Bawah dan Batas Atas
-
8/10/2019 Buku Pemrograman Komputer
53/242
48
batas bawah = 0batas atas = 1f(x)=0 untuk x = 0.1229
3.2. METODE NEWTON-RAHPSON
Metode Newton-Raphson adalah metode yang paling populer untuk
mencari akar-akar suatu persamaan aljabar non linier. Metode ini merupakan
metode terbuka, yaitu hanya menggunakan satu tebakan awal. Jika suatu tebakan
awal adalah xi, maka garis singgung titik xipada f(xi), dapat diperluas sampai
memotong sumbu x. Titik potong garis tersebut pada sumbu x kemudian menjadi
perbaikan tebakan awal, xi+1.
xi
Akar per samaanf ( xi )
xi +1
f ( xi +1)Garissinggung
Gambar 3.4. Menentukan Akar-Akar Persamaan dengan Newton Raphson
Slope (kemiringan) garis singgung pada titik x i adalah turunan pertama fungsi
f(x), didekati dengan
f(x) =1ii
i
xx
0)x(f
+
xi+1= xi-)x('f
)x(f
i
i .(3.2)
Langkah penyelesaian
1. Tentukan tebakan awal xi
2. Hitung f(xi) dan f(xi)
3. Hitung xi+1dengan persamaan (26)
4. Uji apakah | xi+1- xi| < toleransi atau
-
8/10/2019 Buku Pemrograman Komputer
54/242
49
| f(xi) | < toleransi,
Jika ya, maka selesai.
Jika tidak, xibaru = xi+1, ulangi langkah (2)
Adakalanya f(x) sulit dicari dengan analitis. Untuk itu dapat dilakukan
pendekatan secara numeris
f(x)=
+2
)x(f)x(f 00 . (3.3)
dengan adalah bilangan yang kecil.
Persamaan di atas banyak digunakan untuk penyelesaian akar-akar persamaan
aljabar non linier dengan pemograman komputer.
Secara umum metode Newton-Raphson adalah metode yang sangat efisien.
Tetapi metode ini mempunyai beberapa kelemahan untuk kasus-kasus tertentu,
seperti konvergen yang sangat perlahan, atau bahkan bersifat divergen.
Contoh 3.3. Temperatur Dew Point untuk Campuran Benzena dan Toluena
Tentukan temperatur dew point (Titik Embun) dan komposisi liquid dari suatu
campuran gas benzena dan toluena pada tekanan 1 atm (760 mmHg). Komposisi
uap adalah 0,77 fraksi mol benzena dan 0,23 fraksi mol toluena.
Campuran gas dan liquid diasumsikan sebagai campuran ideal. Kondisi
kesetimbangan sesuai dengan Hukum Roult-Dalton, yiP=xiPiO Tekanan uap
murni dihitung dengan persamaanCT
BAplog O
+= untuk pOdalam mmHg
dan T dalam OC
Program Metode Newton-Raphson
Benzena Toluena
A 6,89745 6,95334
B 1206,35 1343,94
C 220,237 219,377
-
8/10/2019 Buku Pemrograman Komputer
55/242
50
% Persamaan aljabar non linier%% Penyelesaian dilakukan dengan Metode Newton-Raphson%% ---------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% ***************************************************************
clcclear allxnew=input(' Nilai untuk tebakan awal = ');xold=0;tol=0.0001;eps=0.0001;
disp ' x-old f(x-old) 'while abs(xnew-xold)>tol
xold=xnew;fxold=contoh33(xold);t=[' 'num2str(xold) ' 'num2str(fxold) ];disp (t)fmin=contoh33(xold-eps);fplus=contoh33(xold+eps);dfx=(fplus-fmin)/2/eps;xnew=xold-fxold/dfx;
endt=['akar persamaan, x = 'num2str(xold) ' f(x) = 'num2str(fxold)];
disp(t)
Proram penyelesaian
function fT=contoh33(T)% Temperatur Dew Point untuk Campuran Benzena dan Toluena% Komposisi uap y1 = 0,77 dan y2 = 0,33% Tekanan uap murni% o ( B )% Pi = 10^( A + ------- )% ( (T + C) )% Hukum Roult-Dalton% yi * P% xi = --------% o% Pi% x1 + x2 = 1
% Nama File : contoh33.m% Surakarta, Oktober 2005% ---------------------------------------------------------------
P=760; % Konversi dari atm ke mmHgy1=0.77;y2=0.23;p1o=10^(6.89745-1206.35/(T+220.237));p2o=10^(6.95334-1343.94/(T+219.377));x1=y1*P/p1o;x2=y2*P/p2o;fT=x1+x2-1;
Keluaran program
Nilai untuk tebakan awal = 85x-old f(x-old)
-
8/10/2019 Buku Pemrograman Komputer
56/242
51
85 0.1702989.639 0.01405390.0946 0.000117690.0985 8.4065e-009
akar persamaan, x = 90.0985 f(x) = 8.4065e-009
Sehingga T = 90,0985 OC
Contoh 3.4. Hubungan Faktor Friksi suatu Pelarut dengan Bilangan
Reynolds
Hubungan faktor friksi untuk aliran suatu pelarut dengan bilangan Reynolds (Re)
secara empiris adalah
( )
+
=
k
6,514fReln
k
1
f
1
dengan k = konsentrasi larutan dan f adalah faktor friksi. Tentukanlah f, jika Re
= 3750 dan k=0,28
Program penyelesaian dengan Metode Newton-Raphson. Karena bekerja pada
bilangan yang lebih kecil, toleransi dapat kita turunkan sampai 10-7.
function f_f = contoh34(f)% Hubungan faktor friksi suatu pelarut dengan bil Reynolds% 1 1 5,6% ------- = --- ln [ Re*sqrt(f) ] + [ 14 - ----- ]% sqrt(f) k k% Re = 3750% k = 0,28
% Nama File : contoh34.m% Surakarta, Oktober 2005
% ---------------------------------------------------------------
Re = 3750;k = 0.28;f_f = ((1/k)*log(Re*sqrt(f))+(14-5.6/k))*sqrt(f)-1;
Keluaran program
Nilai untuk tebakan awal = 0.01x-old f(x-old)0.01 0.516760.0044847 -0.0801520.005105 -0.00207440.0051219 -1.4377e-006
akar persamaan, x = 0.0051219 f(x) = -1.4377e-006
-
8/10/2019 Buku Pemrograman Komputer
57/242
52
sehingga f = 0,0051219
3.3. FUNGSI fz ro
Matlab mempunyai suatu fungsi untuk menyelesaikan persamaan aljabarnon linier. Fungsi ini disebut dengan fzero. Fungsi ini terdiri dari beberapa
metode yang dipadukan untuk menyelesaikan berbagai persoalan secara cepat
dan tepat. Penggunaan fungsi fzeroadalah :
x = fzero(nama_fungsi,xo, tol, trace)
dengan :
nama_fungsi adalah nama suatu fungsi yang berisi persamaan yang
akan dicari nilai nol-nya.
xoadalah nilai perkiraan awal
tol adalah ketepatan penyelesaian jika trace mempunyai nilai lebihdari 1.
traceadalah jumlah iterasi yang dilakukan.
Dua parameter terdepan harus diisi, sehingga alternatif untuk menggunakan
fungsi ini adalah
x = fzero(nama_fungsi,xo)
Contoh 3.5. Persamaan Peng-Robinson
Untuk menghitung volum CO2pada tekanan 1.104kPa dan temperatur 3400K,
dapat digunakan persamaan EOS (equation of state) Peng-Robinson
( ) )bV(bbVVa
bV
RTP
++
=
dengan a = 364,61 m6kPa/(kgmol)2 dan b = 0,02664 m3/kgmol
R=8,3137 m3kPa/kgmol K. Tentukanlah V dengan tebakan awal V, gunakan
EOS gas ideal (PV=RT)
% Persamaan Peng-Robinson%% Penyelesaian dilakukan dengan fungsi fzero%% ---------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret
-
8/10/2019 Buku Pemrograman Komputer
58/242
53
% ***************************************************************
% Data-data
clear allclcglobal R T PR=8.3137; % m^3.kPa/(kgmol.K)T=340; % KP=10^4; % kPa
% Sebagai nilai tebakan V digunakan pers Gas IdealVo=R*T/P;
% Penentuan nilai V dengan fungsi fzeroV=fzero('F35',Vo)
Fungsi penyelesaian Peng-Robinson
function fV=F35(V)% Persamaan Peng-Robinson
% R.T a% P = ------ - -------------------% V - b V(V + b) + b(V - b)% Parameter utk CO2
% Nama File : F35.m% Surakarta, Oktober 2005% ---------------------------------------------------------------global R T P
%Parameter Peng-Robinson untuk CO2a=364.61;b=0.02664;
fV=R*T/(V-b)-a/(V*(V+b)+b*(V-b))-P;
Keluaran program
V =
1.6792e-001
Sehingga volum molar CO2adalah 0,16792 m3/kgmol
Contoh 3.6. Penurunan temperatur karena pelepasan panas
Suatu campuran gas mempunyai kapasitas panas
Cp = 7,053 + 1,2242.10-3T 2,6124.10-7T2
T dalam oF dan Cp dalam Btu/lbmol oF. Jika panas yang dilepaskan
untuk menurunkan temperatur campuran gas panas tersebut dari 550oF adalah
2616 Btu/lbmol gas sampai temperatur berapakah campuran gas tersebut dapat
didinginkan.
-
8/10/2019 Buku Pemrograman Komputer
59/242
54
=T
To
dtCpq
Sampai berapakah campuran gas tersebut dapat didinginkan ?
function fT=contoh36(T)
% Penurunan temperatur karena pelepasan panas% Cp = 7,053 + 1,2242.10(-3) T - 2,6124.10(-7) T^2% q = integral(cp dT)% Data% q = -2616 BTU/lbmol% To = 550 oF
% Nama File : contoh36.m% Surakarta, Oktober 2005% ---------------------------------------------------------------
q = -2616; % BTU/lbmolTo = 550; % oF
% Integral secara analitisfT=7.053*(T-To)+1.2242*10 -3/2*(T^2-To 2)...
-2.6124*10^-7/3*(T^3-To^3)-q;
Fungsi tersebut dapat dijalankan dari jendela command>> T = fzero('contoh36',150)
T =
1.9992e+002
Sehingga temperatur gas adalah 199,92 OF.
Contoh-contoh lain
Contoh 3.7. Debit Aliran dengan Pompa pada Pipa
Suatu cairan akan dialirkan dari tangki 1 ke tangki 2 melalui pipa berdiameter D,
dengan bantuan pompa. Panjang ekuivalen pipa, Le. Dari persamaan Bernoulli
antara titik 1 dan titik 2 diperoleh persamaan berikut :
0H2.g.D
f.Le.vzz m
2
12 =+
faktor friksi didekati dengan persamaan empiris :
0,215Re
0,0596f= dengan
.v.DRe=
-
8/10/2019 Buku Pemrograman Komputer
60/242
55
Karakteristik pompa sentrifugal yang dapat dipakai berupa hubungan antara head
pompa ( Hm, cm) dengan debit ( Q, cm3/dtk) dapat didekati dengan persamaan :
Hm= 3718,5 2,34967.Q + 7,8474.10-4.Q2 9,5812.10-8.Q3
Debit aliran dihitung dengan persamaan :
.vD.4
Q 2=
Data-data yang diketahui : = 1 g/cm3; = 0,01 g/cm.dtk; g = 981 cm/dtk
2; z1=
300 cm; z2= 800 cm; D = 4 cm; Le = 20.000 cm. Hitung berapa kecepatan aliran
dalam pipa (v) dan debitnya (Q).
Penyelesaian Program Matlab
% Debit Aliran dengan Pompa pada Pipa%% ---------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% ***************************************************************
clear allclcglobal rho myu g z2 z1 D Le
% Data-datarho=1; % Densitas, g/cm^3myu=0.01; % Viskositas, g/cm.dtkg=981; % grafitasi, cm/dtk^2z1=300; % tinggi titik 1, cmz2=800; % tinggi titik 2, cmD=4; % diameter pipa, cmLe=20000; % panjang ekivalen, cm
% Perhitunganvhit=fzero(@F37,200)Qhit=pi/4*D^2*vhit
Program terkait
function fv = F37(v)% Langkah perhitungan% tebak v ---> hitung bil. Reynold ---> hitung faktor friksi% ---> hitung debit ---> hitung head pompa --->% hitung pers. Bernoulli% f Le v^2% z2 - z1 + -------- - Hm = 0% 2 g D
% Nama File : F37.m% Surakarta, Oktober 2005% ---------------------------------------------------------------
global rho myu g z2 z1 D Le
Re=rho*v*D/myu; % Perhitungan Bil. Reynoldf=0.0596/Re^0.215; % Perhitungan faktor friksi
-
8/10/2019 Buku Pemrograman Komputer
61/242
56
Q=pi/4*D^2*v; % Perhitungan DebitHm=3718.5-2.3496*Q+7.8474e-4*Q^2-9.5812e-8*Q^3;
% Perhitungan head pompafv=z2-z1+f*Le*v^2/(2*g*D)-Hm; % Persamaan Bernoulli
Keluaran program
vhit =227.6735
Qhit =2.8610e+003
Terhitung kecepatan aliran 227,6735 cm/detik dengan debit 2.861 cm3/detik.
Contoh 3.8. Reaktor Adiabatis untuk Reaksi Eksotermis Fase Gas
Reaksi eksotermis fasa gas A + 2B C dijalankan dalam reaktor adiabatik.
Umpan berjumlah Fo gmol/j dan bersuhu TFmempunyai komposisi : 25 % A
dan 75 % B. Tekanan sepanjang reaktor tetap P atm. Ingin dicari nilai konversi A
pada kesetimbangan (z). Konversi kesetimbangan dapat dihitung dengan
persamaan :
Tkesetimbangan- Tneraca panas= 0
Dari neraca panas diperoleh persamaan :
0,25.C0,5.z).C(0,75z).C-0,25.(1
H0,25.z.-TT
pCpBpA
F
RF ++
=
dengan :
)T).(T2.CC(CHH refFpBpApCo
R
F
R +=
Dari kesetimbangan diperoleh :
=
AKln
BT
dengan2
BA
C
.PP
PK=
.P0,5.z)(1
0,25.zP
.P0,5.z)(1
0,5.z)(0,75P
.P0,5.z)(1
z)0,25.(1P
C
B
A
=
=
=
-
8/10/2019 Buku Pemrograman Komputer
62/242
57
Data-data yang diketahui : HRo= - 20.000 cal/gmol; TF= 400 K; P = 20 atm;
Tref = 298 K; A = 8.10-6 atm; B = 4500 K; CpA = 7 cal/mol.K; CpB = 8
cal/gmol.K; CpC= 12 cal/gmol.K
Program Matlab
% Reaktor Adiabatis untuk Reaksi Eksotermis Fase Gas
% Reaksi A + 2B --> C%% ---------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% ***************************************************************
global dHr Tf P Tref A B Cpa Cpb Cpc
% Data-datadHr=-20000; % Panas reaksi, kal/gmolTf=400; P=20; % Temperatur umpan, KTref=298; % Temperatur referensi, K% Parameter temperatur kesetimbanganA=8e-6; % atmB=4500; % K% Kapasitas panasCpa=7; % kal/mol.K
Cpb=8; % kal/mol.KCpc=12; % kal/mol.K
% Perhitungan konversi kesetimbangankonversi=fzero(@F38,0.6)
Program terkait
function fz = F38(z)% Langkah perhitungan% tebak konversi kesetimbangan z ---> hitung tekanan parsial% komponen a, b, dan c ---> hitung panas reaksi% ---> hitung temperatur reaktor ---> hitung temperatur% kesetimbangan ---> bandingkan T reaktor dan T ktmbgn% T kesetimbangan - T reaktor = 0%
% Nama File : F38.m
% Surakarta, Oktober 2005% ---------------------------------------------------------------
global dHr Tf P Tref A B Cpa Cpb Cpc
% Perhitungan tekanan parsial komponenPa=0.25*(1-z)*P/(1-0.5*z);Pb=(0.75-0.5*z)*P/(1-0.5*z);Pc=0.25*z*P/(1-0.5*z);
% Panas reaksidHrf=dHr+(Cpc-Cpa-2*Cpb)*(Tf-Tref);
% Temperatur reaktorT=Tf-0.25*z*dHrf/(0.25*(1-z)*Cpa+(0.75-0.5*z)*Cpb+0.25*z*Cpc);
% Temperatur kesetimbanganK=Pc/Pa/Pb^2;Tstb=B/log(K/A);
-
8/10/2019 Buku Pemrograman Komputer
63/242
58
fz=Tstb-T;
Keluaran program
konversi =0.4143
Contoh 3.9. Temperatur Titik Embun untuk Campuran Benzena, Toluena,
dan Ortho-xylena
Campuran uap dengan fraksi mol benzene (A) = 0,4; toluene (B) = 0,3; dan
ortho-xylene (C) = 0,3; didinginkan pada tekanan tetap Pt = 76 cmHg. Ingin
dicari pada suhu berapa (K) pengembunan terjadi. Sistem mengikuti hukum
Roult-Dalton. Harga tekanan uap murni mengikuti persamaan
=T
376414,95expPoA
=T
449716,07expPoB
=
T493416,27expPoC
Pengembunan terjadi jika
01P
.Pty
P
.Pty
P
.Ptyo
C
C
o
B
B
o
A
A =++
Penyelesaian
% Temperatur Titik Embun untuk Campuran Benzena,% Toluena, dan Ortho-xylena% ---------------------------------------------------------------% Surakarta, Oktober 2005
% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% ***************************************************************
global ya yb yc Pt
% Data-data tekanan parsialya=0.4; yb=0.3; yc=0.3;
% Tekanan total, cmHgPt=76;
% Perhitungan temperaturT=fzero(@F39,300)
Program terkait
-
8/10/2019 Buku Pemrograman Komputer
64/242
59
function fT=F39(T)% Tekanan uap murni% o ( B )% Pi = 10^( A + --- )% ( T )% Hukum Roult-Dalton% yi * P% xi = --------% o% Pi% x1 + x2 + x3 = 1
% Nama File : F39.m% Surakarta, Oktober 2005% ---------------------------------------------------------------
global ya yb yc PtPao=exp(14.95-3764/T);Pbo=exp(16.07-4497/T);Pco=exp(16.27-4934/T);fT=Pt*(ya/Pao+yb/Pbo+yc/Pco)-1;
Keluaran program
T =390.2252
Temperatur titik embun 390,2252 K
Contoh 3.10. Terminal Velocity untuk Partikel Jatuh dalam Fluida
Partikel berbentuk bola yang bergerak dalam suatu fluida mempunyai terminal
velocity sebagai berikut :
( )
=
D
pp
tC3
Dg4v (3.10.1)
dengan vt adalah terminal velocity (m/detik), g adalah percepatan grafitasi (=
9,80665 m/detik2), padalah densitas partikel (kg/m3), adalah densitas fluida
(kg/m3), Dpadalah diameter partikel bola (m) dan CDadalah koefisien drag (tak
berdimensi).
Koefisien drag partikel bola untuk terminal velocity bervariasi dengan bilangan
Reynolds (Re) sebagai berikut :
1,0ReuntukRe
24CD
-
8/10/2019 Buku Pemrograman Komputer
65/242
60
CD= 0,44 untuk 1000< Re 35000
CD= 0,19 8.104/Re untuk 35000 Re
dengan
= tp
vDRe dan adalah viskositas (Pa detik atau kg/mdetik)
Tentukan terminal velocity untuk partikel batubara dengan P= 1800 kg/m3dan
Dp= 0,208.10-3m yang jatuh dalam air pada T = 298,15 K dengan = 994,6
kg/m3dan = 8,931.10-4kg/mdetik.
Penyelesaian
Tebak vthitung ReTentukan CDCek vtdengan persamaan (3.10.1 )
Program Matlab
function fv_t = contoh310(v_t)% Terminal Velocity untuk Partikel Jatuh dalam Fluida% Tebak vt --> hitung Re --> Tentukan CD --> Cek vt% / 4.g.(rhop - rho).Dp% vt = / -------------------
% \/ 3.CD.rho
% Nama File : contoh310.m% Surakarta, Oktober 2005% ---------------------------------------------------------------
% Data-datarho_p = 1800; %kg/m^3D_p = 0.208*10^-3; %mT = 298.15; %Krho = 994.6; %kg/m^3mu = 8.931*10^-4; %kg/m/sg = 9.80665; %m/s^2
% Menghitung bilangan ReynoldRe = D_p*v_t*rho/mu;
% Menentukan koef. drag (CD)if Re < 0.1
C_D = 24/Re;elseif Re < 1000
C_D = 24*(1+0.14*Re^0.7)/Re;elseif Re < 350000;
C_D = 0.44;else
C_D = 0.19-80000/Re;end
% Membandingkan vt awal dan vt perhitunganfv_t = v_t^2*(3*C_D*rho)-4*g*(rho_p-rho)*D_p;
Perintah dari jendela commanddan hasilnya :>> v_t_tebakan = 0.2;>> v_t = fzero('contoh310',v_t_tebakan)
v_t =
-
8/10/2019 Buku Pemrograman Komputer
66/242
61
1.5782e-002
Sehingga vtadalah 0,015782 m/detik
Contoh 3.11. Volum Molar dan Faktor Kompressibilitas untuk
Persamaan van der Waals
Hukum gas ideal dapat menunjukkan hubungan tekanan, volum, dan temperatur
(PVT) hanya pada tekanan gas rendah (mendekati tekanan atmosfer). Untuk
tekanan tinggi persamaan yang harus digunakan lebih kompleks daripada hukum
gas ideal tersebut. Perhitungan volum molar dan faktor kompressibilitas
menggunakan persamaan yang lebih kompleks yang memerlukan penyelesaian
secara numeris. Salah satu persamaan yang dapat digunakan adalah persamaan
van der Waals
( )
C
C
C
2C
2
2
P8
RTb
P
TR
64
27adengan
RTbV
V
aP
=
=
=
+
dengan
P = tekanan (atm)
V = volum molar (L/gmol)
T = temperatur (K)
R = konstanta gas = 0,08206 atmL/gmolK
TC = temperatur kritis (405,5 K untuk ammonia)
PC = tekanan kritis (111,3 atm untuk ammonia)
Tekanan tereduksi dinyatakan sebagaiC
rP
PP=
Faktor kompressibilitas dinyatakan sebagaiRT
PVZ=
a. Tentukan volum molar dan faktor kompressibilitas untuk gas ammonia pada
tekanan P = 56 atm dan temperatur T = 450 K menggunakan persamaan van
der Waals !
b. Ulangi perhitungan untuk Pr= 1, 2, 4, 10, dan 20 !
-
8/10/2019 Buku Pemrograman Komputer
67/242
62
c. Bagaimanakah hubungan faktor kompressibilitas untuk berbagai nilai Pr?
Penyelesaian
% Volum Molar dan Faktor Kompressibilitas utk Pers van der Waals% Varibel berubah P% Pr = -----
% Pr% Dari data-data yang ada% Hitung P% Hitung V dengan terlebih dahulu menebak V,% lalu hitung dengan pers. van der Waals% Hitung Z P.V% Z = ------% R.T% ---------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% ***************************************************************
clear allformat short eglobal P a b R T
% Data-data
Pc = 111.3; % atmTc = 405.5; % KR = 0.08206; % atm.L/gmol.KT = 450; % KP = 56; % atmPr = [P/Pc 1 2 4 10 20];a = 27/64*R^2*Tc 2/Pc;b = R*Tc/(8*Pc);
% Perhitunganfor j = 1:6
P = Pc*Pr(j);Vtebak = R*T/P;V = fzero('waals',Vtebak);z = P*V/(R*T);hasil(j,1)=Pr(j);hasil(j,2)=V;hasil(j,3)=P*V/(R*T);
end
% Menampilkan hasil perhitungandisp(' Pr Volum molar faktor Z')disp(hasil)plot(hasil(:,1),hasil(:,3))title('Faktor Kompresibilitas vs Tekanan Tereduksi')xlabel('Tekanan Tereduksi')ylabel('Faktor Kompresibilitas')
Fungsi van der Waals
function f_V = waals(V)% Persamaan van der Waals% [ a ]% [ P + ------ ] ( V - b ) = RT% [ V^2 ]% Parameter utk ammonia
-
8/10/2019 Buku Pemrograman Komputer
68/242
63
% Nama File : waals.m% Surakarta, Oktober 2005% ---------------------------------------------------------------global P a b R T
% Modifikasi persamaan van der Waalsf_V = P*V^3-P*b*V^2-R*T*V^2+a*V-a*b;
Hasil perhitungan
Gambar 3.5. Keluaran Program Contoh 3.11
>> Pr Volum molar faktor Z
5.0314e-001 5.7489e-001 8.7183e-0011.0000e+000 2.3351e-001 7.0381e-0012.0000e+000 7.7268e-002 4.6578e-0014.0000e+000 6.0654e-002 7.3126e-0011.0000e+001 5.0875e-002 1.5334e+0002.0000e+001 4.6175e-002 2.7835e+000
Contoh 3.12. Temperatur Batang Konduktor sebagai Fungsi Arus
Suatu batang konduktor berdiameter D dan hambatan elektrik per satuan
panjang RL. Batang tersebut mula-mula berada pada kesetimbangan termal
dengan udara di sekitarnya. Aliran listrik I dilewatkan melalui batang tersebut.
Untuk diameter batang yang kecil, dapat diasumsikan bahwa temperatur
sepanjang batang seragam, dengan temperatur sebagai fungsi waktu T(t).
Faktork
ompresibilitas
-
8/10/2019 Buku Pemrograman Komputer
69/242
64
Neraca energi pada batang logam
Eacc= Eg Eout
Ecc= kecepatan energi tersimpan pada batang logam
Eg= kecepatan pembangkitan energi dalam batang karena panas hambatan
Eout = kecepatan aliran energi total keluar dari batang karena konveksi dan radiasi
D, diameter
I, kuat arus
L, panjang pipa
T lingkungan
Panas yang dilepaskan
Gambar 3.6. Batang Konduktor
Energi dalam batang sepanjang waktu
Ecv= cVdt
dT
Eg= I2RLL
Dengan RL adalah hambatan per satuan panjang dan satuan persamaan di atas
adalah (amp)2ohm.
Eout= hA(T - T) + A(T4 T4sur)
Dengan A adalah luas permukaan perpindahan panas
Tadalah temperatur fluida
Tsuradalah temperatur lingkungan karena perpindahan panas radiasi
= emisivitas material
= konstanta Stefan boltzmann = 5,67.108W/m2-K4
Substitusi ke persamaan
cVdt
dT= I2RLL - hA(T - T) + A(T
4 T4sur)
-
8/10/2019 Buku Pemrograman Komputer
70/242
65
dengan
A = DL
V = D2L/4
Kondisi awal T(0) = T0
Jika arus mula-mula adalah nol, kemudian temperatur awal T0maka didapatkanpersamaan
hA(T - T) + A(T04 T4sur) = 0
jika Tdan Tsursama, maka T0= T= Tsur.
D = 1 mm
= 0,8
RL= 0,4 ohm/m
h = 100 W/m2K
T= Tsur= 25oC
% Temperatur Batang Konduktor sebagai Fungsi Arus Listrik%% ---------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% ***************************************************************
clear allglobal D emiss R_L sig h Tinf Tsur IsqD = 0.001; % Diameter kawat (m)emiss = 0.8; % EmisivitasR_L = 0.4; % Risistansi per satuan panjang (ohm/m)sig = 5.67e-8; % Konstanta Stefan-Bolzmann (W/m^2K^4)h = 100; % Koefisien transfer panas (W/m^2K)Tinf = 25+273.15; % Temperatur fluida (K)Tsur = Tinf; % Temperatur lingkungan untuk radiasi (K)
NI = 21;I = linspace(0,10,NI);Tss = zeros(size(I));Isq = I(1)*I(1);Tg = Tinf;Tss(1) = fzero('neracaenergi',Tg);
% Perhitungan Temperaturfor n=2:NI
Isq = I(n)*I(n);Tss(n) = fzero('neracaenergi',Tss(n-1));
endTssa = Tinf +I.*I*R_L/(h*pi*D);
% Plot hasil perhitunganplot(I,Tss-273.15,'k',I,Tssa-273.15,'k-.','LineWidth',2), grid onrr = axis; rr(3) = 0; axis(rr);title('Temperatur Konduktor Steady State vs Arus')
-
8/10/2019 Buku Pemrograman Komputer
71/242
66
xlabel('Arus (amps)'), ylabel('Temperatur Steady State (C)')legend('T(ss) dengan radiasi','T(ss) tanpa radiasi')
% Perhitungan neraca energiA = pi*D;gen = I.*I.*R_L;conv = h*A*(Tss-Tinf);rad = emiss*sig*A*(Tss.^4-Tsur^4);bal = (gen-conv-rad);
% Menampilkan hasilfprintf(1,'\n\n')fprintf(1,' HASIL PERHITUNGAN \n')fprintf(1,' Parameter perancangan \n')fprintf(1,' Diameter kawat (m) = %8.3f \n',D)fprintf(1,' Emisivitas = %8.3f\n',emiss)fprintf(1,' Resistansi (ohm/m) = %8.3f\n',R_L)fprintf(1,' Konstanta Stefan-Bolzmann (W/m^2K^4)= %9.2e\n',sig)fprintf(1,' Koefisien Transfer Panas (W/m^2K) = %8.3f \n',h)fprintf(1,' Temperatur Fluida (C) = %8f\n',Tinf-273.15)fprintf(1,' Temperatur Lingkungan (C) = %8f\n',Tsur-273.15)fprintf(1,'\n')fprintf(1,' Komponen Neraca Energi vs Arus \n')fprintf(1,' I Energi yg Muncul Konveksi Radiasi Neraca
Temperatur \n')fprintf(1,' (A) (W/m) (W/m) (W/m) (W/m)C \n')for n = 1:NIfprintf(1,' %4.1f %8.2f %8.2f %8.2f %8.4f %8.2f\n',...
I(n),gen(n),conv(n),rad(n),bal(n),Tss(n)-273)end
Fungsi neraca energi
function F=neracaenergi(T)% Neraca Energi pada Batangan Konduktor% keadaan steady state% input - output = akumulasi% panas arus listrik - panas konveksi - panas radiasi = 0
% Nama File : neracaenergi.m% Surakarta, Oktober 2005% ---------------------------------------------------------------
global D emiss R_L sig h Tinf Tsur Isq
A = pi*D;% Panas yang dibangkitkan arus listrikgen = Isq*R_L;
% Panas konveksiconv = h*A*(T-Tinf);
% Panas radiasirad = emiss*sig*A*(T^4-Tsur^4);
% Neraca energiF = (gen-conv-rad);
-
8/10/2019 Buku Pemrograman Komputer
72/242
67
Keluaran program
HASIL PERHITUNGANParameter perancangan
Diameter kawat (m) = 0.001Emisivitas = 0.800Resistansi (ohm/m) = 0.400Konstanta Stefan-Bolzmann (W/m^2K^4)= 5.67e-008Koefisien Transfer Panas (W/m^2K) = 100.000
Temperatur Fluida (C) = 25.000000Temperatur Lingkungan (C) = 25.000000
Komponen Neraca Energi vs ArusI Energi yg Muncul Konveksi Radiasi Neraca Temperatur(A) (W/m) (W/m) (W/m) (W/m) C0.0 0.00 0.00 0.00 0.0000 25.150.5 0.10 0.10 0.00 0.0000 25.451.0 0.40 0.38 0.02 0.0000 26.361.5 0.90 0.86 0.04 -0.0000 27.882.0 1.60 1.52 0.08 0.0000 30.002.5 2.50 2.38 0.12 0.0000 32.733.0 3.60 3.43 0.17 0.0000 36.063.5 4.90 4.66 0.24 0.0000 39.984.0 6.40 6.08 0.32 -0.0000 44.504.5 8.10 7.68 0.42 -0.0000 49.605.0 10.00 9.47 0.53 -0.0000 55.305.5 12.10 11.44 0.66 -0.0000 61.576.0 14.40 13.59 0.81 -0.0000 68.41
6.5 16.90 15.92 0.98 0.0000 75.817.0 19.60 18.42 1.18 0.0000 83.777.5 22.50 21.09 1.41 0.0000 92.288.0 25.60 23.93 1.67 0.0000 101.328.5 28.90 26.93 1.97 -0.0000 110.889.0 32.40 30.09 2.31 -0.0000 120.949.5 36.10 33.41 2.69 -0.0000 131.5010.0 40.00 36.88 3.12 0.0000 142.53
-
8/10/2019 Buku Pemrograman Komputer
73/242
-
8/10/2019 Buku Pemrograman Komputer
74/242
69
Neraca energi pada sistem pada keadaan steady :
g2
vz
phhh
g2
vz
p 221
2LRA
21
11 ++
=+++
Tidak ada peralatan mekanik, sehingga hA= hR= 0, kecepatan pada permukaan
nol, dan p1= p2.
L21
22 hzzg2
v=
untuk kasus di atas, h + L = z1 z2, dan V = v2. hLditentukan dengan persamaan
g2D
LVfh
2
L=
Persamaan menjadi
g2D
LVfLh
g2
V 22+=
( )
+
+=
D
Lf1
Lhg2V2
Konstanta gravitasional 32,2 ft/detik2. Faktor friksi, f, untuk aliran turbulen
didekati dengan korelasi Swamee-Jain.
2
9,010 Re
74,5
7,3
D/log
25,0f
+
=
/D adalah kekasaran relatif dan Re adalah bilangan Reynold, Re = VD/
Tentukan bagaimana kecepatan bervariasi sebagai fungsi panjang pipa L dan
diameter D.
Asumsikan fluida adalah air pada 60O
F (= 1,21 x 10-5
ft2
/detik). Tangki cukup
besar dan air keluar melalui pipa besi Sch 40 (= 1,5 x 10-4ft). h = 5 ft.
Plotkan V(L) dengan kisaran 1/12 ft < L < 20 ft.
Ukuran pipa Sch 40
Pipa 1/2 D1= 0,0518 ft
Pipa 1 D2= 0,0874 ft
Pipa 1 D3= 0,1342 ft
Pemograman Matlab
-
8/10/2019 Buku Pemrograman Komputer
75/242
-
8/10/2019 Buku Pemrograman Komputer
76/242
-
8/10/2019 Buku Pemrograman Komputer
77/242
4 INTEGRAL NUMERIS
Secara matematis integrasi dinyatakan oleh :
=b
a
dx)x(fI . (4.1)
yang dinyatakan sebagai integrasi fungsi f(x) terhadap variabel x, yang
dievaluasikan antara batas x = a sampai x = b. Persamaan tersebut adalah jumlah
total f(x) dx yang meliputi bentangan dari x = a hingga x = b. Gambar 4.1
menunjukkan sebuah manifestasi grafik konsep tersebut.
f (x)
x
a b
Gambar 4.1. Konsep Integrasi
Integrasi adalah menentukan luas di bawah kurva f(x) antara x = a dan x = b.
-
8/10/2019 Buku Pemrograman Komputer
78/242
76
4.1. ATURAN TRAPESIUM
Aturan trapesium dapat digunakan untuk penyelesaian integral secara numeris .
Caranya adalah dengan membagi bentangan x = a sampai x = b menjadi bagian-
bagian yang lebih kecil yang besarnya masing-masing sebesar x berjumlah nbuah. Jumlah interval n semakin besar, hasil integrasi secara numeris akan
semakin baik.
f (x)
x
a bDx
Gambar 4.2. Konsep Dasar Aturan Trapesium
Masing-masing bagian dianggap berbentuk trapesium, sehingga luas masing-
masing bagian adalah x tinggi x jumlah sisi sejajar. Harga integral diperoleh
dari jumlah luasan total dari masing-masing bagian.
b
a
dx)x(f ( ) ( ) ( ))b(f)x(f2x
......)x(f)x(f2
x
)x(f)a(f2
x1n211 +
+++
++
=
[ ])b(f)x(f2......)x(f2)x(f2)a(f2
x1n21 +++++
=
[ ])b(f)x(f2......)x(f2)x(f2)a(fn2
)ab(1n21 +++++
=
.(4.2)
Dalam Matlab, metode perhitungan integrasi dengan aturan trapesium dapat
menggunakan fungsi trapz.
-
8/10/2019 Buku Pemrograman Komputer
79/242
77
Penggunaan fungsi trapzadalah
Z = trapz(x,y)
yang menghitung integral y terhadap x menggunakan metode trapesium. x dan y
merupakan vektor yang sama panjang.
Contoh 4.1. Distilasi Batch di Laboratorium
Sebuah distilasi dijalankan secara batch mula-mula diisi 20 lbmol umpan dengan
fraksi mol umpan cair benzena xF = 0,32.Umpan kemudian dialirkan dengan
kecepatan 10 lbmol/jam, dan input panas diatur agar isi destilasi tetap 20 lbmol.
Tentukan waktu yang dibutuhkan untuk memperoleh destilat dengan fraksi mol
fase uap yD= 0,4.
Hubungan fraksi mol fase uap y dan fase cair x dianggap sesuai dengan Hukum
Roult, dengan = 2,48.
Gambar 4.3. Distilasi Batch di Laboratorium
Penyelesaian
Neraca massa total
F D =dt
dM = 0
D = F = 10 lbmol/jam
-
8/10/2019 Buku Pemrograman Komputer
80/242
78
Neraca massa benzena
F xF D yD=dt
dxM w
dt =w
DF
dxyDxF
M
Hukum Roult untuk kesetimbangan
yD=w
w
x)1(1
x
pada yD= 0,4 akan diperoleh xw= 0,21
Sehingga penyelesaian persamaan adalah
=xw
xwo
wDF
dxyDxF
Mt
dengan yDmengikuti kesetimbangan Roult.
Program penyelesaian% Distilasi Batch di laboratorium% Distilasi secara batch%% xwn [ M ]% t = Integral [------------- ] dxw% xwo [ F xf - D yd ]% yd adalah fraksi mol benzena pada destilat% xw adalah fraksi mol benzena pada labu destilasi% Hubungan yd dan xw mengikuti Hukum Roult% alpha xw% yd = --------------------% 1 - (alpha - 1)xw%%% ---------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik
% Universitas Sebelas Maret% ***************************************************************
% Data-dataF = 10 ; %laju alir umpan, lbmol/jamD = F ; %laju alir destilat, lbmol/jamM = 20 ; %massa labu destilasi, lbmolxf = 0.32; %fraksi mol benzena pada umpanxwo = xf ; %fraksi mol benzena pada labu destilasi mula-mulaalpha = 2.48; %konstanta Roultydn = 0.4; %fraksi mol benzena pada destilat akhir
% Perhitungan xwn dr pers. Hukum Roultxwn = ydn/(alpha-(alpha-1)*ydn);
% Nilai-nilai xwn = 100; %jumlah intervalxw=linspace(xwn,xwo,n);
-
8/10/2019 Buku Pemrograman Komputer
81/242
79
% Nilai t pada berbagai xwyd = alpha.*xw./(1+(alpha-1).*xw);ti=-M./(F.*xf-D.*yd);
% Jumlah t pada seluruh bagiant=trapz(xw,ti)
Diperoleh t = 1,5394 jam
Contoh 4.2. Kecepatan accelerometer
Accelerometer adalah alat yang digunakan untuk mengukur kecepatan suatu
benda. Alat ini mengintegrasikan sinyal percepatan untuk menghasilkan suatu
perkiraan jarak tempuh. Hubungan waktu (detik) dengan percepatan (m/detik2)
ditunjukkan pada tabel di bawah.
Perkirakan kecepatan pada 1, 2, , 10 detik
Penyelesaian
v(10) = 10
0
a(t) dt + v(0) = 10
0
a(t) dt
Program Matlab
% Kecepatan accelerometer% Hubungan waktu (t) dengan percepatan a (m^2/detik)% ditunjukkan pada tabel% Kecepatan secara numeris% v = int ( a dt)%% ---------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% ***************************************************************
% Data-datat=[0:10]; % detika=[0 2 4 7 11 17 24 32 41 48 51]; % m^2/detik
v(1)=0; % keadaan awal
% Perhitungan secara numeris
Waktu
(detik)0 1 2 3 4 5 6 7 8 9 10
Percepatan
(m/detik2)
0 2 4 7 11 17 24 32 41 48 51
-
8/10/2019 Buku Pemrograman Komputer
82/242
80
for k=[2:11]v(k)=trapz(t(1:k),a(1:k));
end
% Cetak Hasildisp(' ')disp(' t(detik) v(m/detik)')disp([t' v' ])
Keluaran Program
t(detik) v(m/detik)0 0
1.0000 1.00002.0000 4.00003.0000 9.50004.0000 18.50005.0000 32.50006.0000 53.00007.0000 81.00008.0000 117.50009.0000 162.0000
10.0000 211.5000
4.2. ATURAN SIMPSON
Aturan Simpson berdasarkan pada penggunaan pendekatan polinomial kuadratik
suatu fungsi f(x) pada sepasang sub-interval.
Integrasi polinomial kuadratik melalui titik (x0, f0), (x1, f1), dan (x2, f2) dengan f0
= f(x0), f1= f(x1), dan f2=f(x2) mengikuti persamaan berikut :
( )2101x
0x
ff4f3
hdx)x(f ++= .(4.3.)
-
8/10/2019 Buku Pemrograman Komputer
83/242
81
f (x)
x
x0 x2x1
h
f(x0)
f(x1)
f(x2)
Gambar 4.4. Konsep Dasar Aturan Simpson
Aplikasi aturan Simpson pada seluruh pasangan interval dalam kisaran x0sampai
xn
b
a
dx)x(f ( ) ( ) ( )n21n22n2432210 ffx4f3
h......ff4f
3
hff4f
3
h+++++++++=
[ ])f)f......ff(2)f......ff(4f3
hn22n2421n2310 +++++++++=
.(4.4)
Untuk menggambarkan penggunaan aturan Simpson, akan ditampilkan dua
alternatif yaitu fungsi simp1 dan simp2.
simp1 menggunakan vektor koefisien v dan vektor fungsi nilai y serta
mengalikan kedua vektor. simp2 menggunakan aturan Simpson secara
konvensional (menggunakan loop).
Alternatif 1
function q = simp1(func,a,b,m)% Integrasi Numeris%% Penyelesaian dilakukan dengan Aturan Simpson% Menggunakan vektor% q = simp1(func,a,b,m)% integrasi fungsi func dr a sampai b dg m pembagian%% Nama File : simp1.m% Surakarta, Oktober 2005
-
8/10/2019 Buku Pemrograman Komputer
84/242
82
% ---------------------------------------------------------------
if (m/2)~= floor(m/2)disp('m harus genap '); break
end
h = (b-a)/m;x = [a:h:b];y = feval(func,x);
v = 2*ones(m+1,1);v2 = 2*ones(m/2,1);v(2:2:m) = v(2:2:m) + v2;v(1) = 1;v(m+1) = 1;
q = y*v;q = q*h/3;
Alternatif 2
function q = simp1(func,a,b,m)% Integrasi Numeris%% Penyelesaian dilakukan dengan Aturan Simpson% Menggunakan loop% q = simp2(func,a,b,m)% integrasi fungsi func dr a sampai b dg m pembagian%% Nama File : simp2.m% Surakarta, Oktober 2005% ---------------------------------------------------------------
if (m/2)~= floor(m/2)disp('m harus genap '); break
end
h = (b-a)/m;s = 0;y1 = feval(func,a);
for j = 2:2:mx = a+(j-1)*h;ym = feval(func,x);x = a+j*h;yh = feval(func,x);s = s+y1+4*ym+yh;y1=yh;
end
q = s*h/3;
Contoh 4.3 Program Penggunaan Aturan Simpson
Kedua alternatif aturan Simpson tersebut digunakan untuk menyelesaikan
dxxy
1
0
7=
fungsi persamaan tersebut dalam Matlab diberi nama f43
-
8/10/2019 Buku Pemrograman Komputer
85/242
83
function fv = f43(x)% Fungsi pangkat sederhana% f(x) = x^7%% Nama File : F43.m% Surakarta, Oktober 2005% ---------------------------------------------------------------
fv = x.^7;
Berikut program yang digunakan untuk menguji simp1
% Integrasi Numeris dg Aturan Simpson% menggunakan vektor% integral x^7 dari 0 sampai 1%% ---------------------------------------------------------------% Surakarta, Oktober 2005% Jurusan Teknik Kimia, Fak. Teknik% Universitas Sebelas Maret% ***************************************************************
n = 2; i = 1;t = clock;disp(' n nilai integral')while n
-
8/10/2019 Buku Pemrograman Komputer
86/242
-
8/10/2019 Buku Pemrograman Komputer
87/242
-
8/10/2019 Buku Pemrograman Komputer
88/242
86
f (x)
x
f (x)
x
(a)
(b)
Gambar 4.5. Konsep Dasar Kuadratur Gauss
Penyelesaian 4 persamaan di atas memberikan
c1= c2= 1 x1= -3
1 x2=
3
1
sehingga
=1
1
dx)x(fI = f
3
1+ f
3
1
Prosedur yang sama dapat dilakukan dengan penggunaan titik yang lebih banyak.
-
8/10/2019 Buku Pemrograman Komputer
89/242
87
Fungsi Matlab quad dan quad8 menggunakan konsep kuadratur
Gauss. Kedua fungsi pengintegralan beroperasi dengan cara yang sama.
Keduanya mengevaluasi nilai fungsi yang akan diintegralkan pada interval
apapun yang diperlukan untuk memperoleh hasil yang tepat. Bahkan keduanya
cenderung untuk membuat perkiraan tingkat tinggi daripada menggunakan
trapezoid sederhana. quad8 lebih teliti dari quad.
Tabel 4.1. Faktor Bobot c dan Argumen Fungsi x
untuk Kuadratur Gauss
Titik Faktor Bobot Argumen Fungsi
2 c1 = 1, 000000000 x1 = - 0, 577350269
c2 = 1, 000000000 x2 = 0, 577350269
3 c1 = 0, 555555556 x1 = - 0, 774596669
c2 = 0, 888888889 x2 = 0
c3 = 0, 555555556 x3 = 0, 774596669
4 c1 = 0, 347854845 x1 = - 0, 861136312
c2 = 0, 652145155 x2 = -0, 339981044
c3 = 0, 652145155 x3 = 0, 339981044
c4 = 0, 347854845 x4 = 0, 861136312
5 c1 = 0, 236926885 x1 = - 0, 906179846
c2 = 0, 478628670 x2 = -0, 538469310
c3 = 0, 568888889 x3 = 0
c4 = 0, 478628670 x4 = 0, 538469310
c5 = 0, 236926885 x5 = 0, 906179846
6 c1 = 0, 171324492 x1 = - 0, 932469514
c2 = 0, 360761573 x2 = -0, 661209386
c3 = 0, 467913935 x3 = -0, 238619186
c4 = 0, 467913935 x4 = 0, 238619186
c5 = 0, 360761573 x5 = 0, 661209386
c6 = 0, 171324492 x6 = 0, 932469514
Contoh 4.4. Program Penggunaan fungsi qu d .
% Integrasi Nume